/* howler.js v2.1.1 | (c) 2013-2018, James Simpson of GoldFire Studios | MIT License | howlerjs.com Spatial Plugin @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ var $jscomp = $jscomp || {}; $jscomp.scope = {}; $jscomp.ASSUME_ES5 = !1; $jscomp.ASSUME_NO_NATIVE_MAP = !1; $jscomp.ASSUME_NO_NATIVE_SET = !1; $jscomp.SIMPLE_FROUND_POLYFILL = !1; $jscomp.defineProperty = $jscomp.ASSUME_ES5 || 'function' == typeof Object.defineProperties ? Object.defineProperty : function (ba, y, R) { ba != Array.prototype && ba != Object.prototype && (ba[y] = R.value); }; $jscomp.getGlobal = function (ba) { ba = [ 'object' == typeof window && window, 'object' == typeof self && self, 'object' == typeof global && global, ba ]; for (var y = 0; y < ba.length; ++y) { var R = ba[y]; if (R && R.Math == Math) return R; } throw Error('Cannot find global object'); }; $jscomp.global = $jscomp.getGlobal(this); $jscomp.polyfill = function (ba, y, R, O) { if (y) { R = $jscomp.global; ba = ba.split('.'); for (O = 0; O < ba.length - 1; O++) { var Q = ba[O]; Q in R || (R[Q] = {}); R = R[Q]; } ba = ba[ba.length - 1]; O = R[ba]; y = y(O); y != O && null != y && $jscomp.defineProperty(R, ba, { configurable: !0, writable: !0, value: y }); } }; $jscomp.polyfill( 'String.fromCodePoint', function (ba) { return ba ? ba : function (y) { for (var R = '', O = 0; O < arguments.length; O++) { var Q = Number(arguments[O]); if (0 > Q || 1114111 < Q || Q !== Math.floor(Q)) throw new RangeError('invalid_code_point ' + Q); 65535 >= Q ? (R += String.fromCharCode(Q)) : ((Q -= 65536), (R += String.fromCharCode(((Q >>> 10) & 1023) | 55296)), (R += String.fromCharCode((Q & 1023) | 56320))); } return R; }; }, 'es6', 'es3' ); $jscomp.arrayIteratorImpl = function (ba) { var y = 0; return function () { return y < ba.length ? { done: !1, value: ba[y++] } : { done: !0 }; }; }; $jscomp.arrayIterator = function (ba) { return { next: $jscomp.arrayIteratorImpl(ba) }; }; $jscomp.SYMBOL_PREFIX = 'jscomp_symbol_'; $jscomp.initSymbol = function () { $jscomp.initSymbol = function () {}; $jscomp.global.Symbol || ($jscomp.global.Symbol = $jscomp.Symbol); }; $jscomp.SymbolClass = function (ba, y) { this.$jscomp$symbol$id_ = ba; $jscomp.defineProperty(this, 'description', { configurable: !0, writable: !0, value: y }); }; $jscomp.SymbolClass.prototype.toString = function () { return this.$jscomp$symbol$id_; }; $jscomp.Symbol = (function () { function ba(R) { if (this instanceof ba) throw new TypeError('Symbol is not a constructor'); return new $jscomp.SymbolClass($jscomp.SYMBOL_PREFIX + (R || '') + '_' + y++, R); } var y = 0; return ba; })(); $jscomp.initSymbolIterator = function () { $jscomp.initSymbol(); var ba = $jscomp.global.Symbol.iterator; ba || (ba = $jscomp.global.Symbol.iterator = $jscomp.global.Symbol('Symbol.iterator')); 'function' != typeof Array.prototype[ba] && $jscomp.defineProperty(Array.prototype, ba, { configurable: !0, writable: !0, value: function () { return $jscomp.iteratorPrototype($jscomp.arrayIteratorImpl(this)); } }); $jscomp.initSymbolIterator = function () {}; }; $jscomp.initSymbolAsyncIterator = function () { $jscomp.initSymbol(); var ba = $jscomp.global.Symbol.asyncIterator; ba || (ba = $jscomp.global.Symbol.asyncIterator = $jscomp.global.Symbol('Symbol.asyncIterator')); $jscomp.initSymbolAsyncIterator = function () {}; }; $jscomp.iteratorPrototype = function (ba) { $jscomp.initSymbolIterator(); ba = { next: ba }; ba[$jscomp.global.Symbol.iterator] = function () { return this; }; return ba; }; $jscomp.iteratorFromArray = function (ba, y) { $jscomp.initSymbolIterator(); ba instanceof String && (ba += ''); var R = 0, O = { next: function () { if (R < ba.length) { var Q = R++; return { value: y(Q, ba[Q]), done: !1 }; } O.next = function () { return { done: !0, value: void 0 }; }; return O.next(); } }; O[Symbol.iterator] = function () { return O; }; return O; }; $jscomp.polyfill( 'Array.prototype.keys', function (ba) { return ba ? ba : function () { return $jscomp.iteratorFromArray(this, function (y) { return y; }); }; }, 'es6', 'es3' ); $jscomp.checkStringArgs = function (ba, y, R) { if (null == ba) throw new TypeError( "The 'this' value for String.prototype." + R + ' must not be null or undefined' ); if (y instanceof RegExp) throw new TypeError( 'First argument to String.prototype.' + R + ' must not be a regular expression' ); return ba + ''; }; $jscomp.polyfill( 'String.prototype.startsWith', function (ba) { return ba ? ba : function (y, R) { var O = $jscomp.checkStringArgs(this, y, 'startsWith'); y += ''; var Q = O.length, ha = y.length; R = Math.max(0, Math.min(R | 0, O.length)); for (var r = 0; r < ha && R < Q; ) if (O[R++] != y[r++]) return !1; return r >= ha; }; }, 'es6', 'es3' ); $jscomp.polyfill( 'Array.prototype.values', function (ba) { return ba ? ba : function () { return $jscomp.iteratorFromArray(this, function (y, R) { return R; }); }; }, 'es8', 'es3' ); $jscomp.polyfill( 'String.prototype.codePointAt', function (ba) { return ba ? ba : function (y) { var R = $jscomp.checkStringArgs(this, null, 'codePointAt'), O = R.length; y = Number(y) || 0; if (0 <= y && y < O) { y |= 0; var Q = R.charCodeAt(y); if (55296 > Q || 56319 < Q || y + 1 === O) return Q; y = R.charCodeAt(y + 1); return 56320 > y || 57343 < y ? Q : 1024 * (Q - 55296) + y + 9216; } }; }, 'es6', 'es3' ); $jscomp.polyfill( 'String.prototype.endsWith', function (ba) { return ba ? ba : function (y, R) { var O = $jscomp.checkStringArgs(this, y, 'endsWith'); y += ''; void 0 === R && (R = O.length); R = Math.max(0, Math.min(R | 0, O.length)); for (var Q = y.length; 0 < Q && 0 < R; ) if (O[--R] != y[--Q]) return !1; return 0 >= Q; }; }, 'es6', 'es3' ); $jscomp.polyfill( 'Array.prototype.fill', function (ba) { return ba ? ba : function (y, R, O) { var Q = this.length || 0; 0 > R && (R = Math.max(0, Q + R)); if (null == O || O > Q) O = Q; O = Number(O); 0 > O && (O = Math.max(0, Q + O)); for (R = Number(R || 0); R < O; R++) this[R] = y; return this; }; }, 'es6', 'es3' ); $jscomp.polyfill( 'String.prototype.repeat', function (ba) { return ba ? ba : function (y) { var R = $jscomp.checkStringArgs(this, null, 'repeat'); if (0 > y || 1342177279 < y) throw new RangeError('Invalid count value'); y |= 0; for (var O = ''; y; ) if ((y & 1 && (O += R), (y >>>= 1))) R += R; return O; }; }, 'es6', 'es3' ); (function (ba, y) { ba.lime = ba.lime || {}; ba.lime.$scripts = ba.lime.$scripts || {}; ba.lime.$scripts['Dadish POKI'] = function (y, O) { (function (y, R) { function r(a, b) { a = Object.create(a); for (var c in b) a[c] = b[c]; b.toString !== Object.prototype.toString && (a.toString = b.toString); return a; } function O(a) { return a instanceof Array ? new Me(a) : a.iterator(); } function q(a, b) { if (null == b) return null; null == b.__id__ && (b.__id__ = R.$haxeUID++); var c; null == a.hx__closures__ ? (a.hx__closures__ = {}) : (c = a.hx__closures__[b.__id__]); null == c && ((c = b.bind(a)), (a.hx__closures__[b.__id__] = c)); return c; } y.lime = y.lime || {}; var h = {}, w = function () { return x.__string_rec(this, ''); }, E = E || {}, I, za = function () {}; h.ApplicationMain = za; za.__name__ = 'ApplicationMain'; za.main = function () { ya.am = za; ya.setupTracing(!0); aa.load(); D.loadInputConfig(); ya.setupTracing(); Wa.__registerEntryPoint('Dadish POKI', za.create); Ma.get_current(); }; za.reloadGame = function () { for (var a = 0, b = za.reloadListeners; a < b.length; ) { var c = b[a]; ++a; c(); } d.resetStatics(); W.resetStatics(); tb.resetStatics(); Bf.resetStatics(); Fa.resetStatics(); Ha.resetStatics(); Xb.resetStatics(); se.resetStatics(); uc.resetStatics(); Od.resetStatics(); Cf.resetStatics(); me.resetStatics(); vb.resetStatics(); X.resetStatics(); lc.resetStatics(); D.resetStatics(); k.resetStatics(); Ma.get_current().removeChild(za.universal); D.loadInputConfig(); za.universal = new ya(); Ma.get_current().addChild(za.universal); za.universal.preloaderComplete(); }; za.create = function (a) { za.app = new lj(); ha.init(a); za.app.meta.h.build = '1'; za.app.meta.h.company = 'Stencyl'; za.app.meta.h.file = 'Dadish POKI'; za.app.meta.h.name = 'Dadish POKI'; za.app.meta.h.packageName = 'com.example.myapp'; za.app.meta.h.version = '1.0.0'; var b = { allowHighDPI: !1, alwaysOnTop: !1, borderless: !1, element: null, frameRate: 65, height: 432, hidden: !1, maximized: !1, minimized: !1, parameters: {}, resizable: !0, title: 'Dadish POKI', width: 768, x: null, y: null }; b.context = { antialiasing: aa.antialias ? 2 : 0, background: 0, colorDepth: 32, depth: !0, hardware: !0, stencil: !0, type: null, vsync: !0 }; if (null == za.app.__window && null != a) for (var c = 0, e = Z.fields(a); c < e.length; ) { var f = e[c]; ++c; Object.prototype.hasOwnProperty.call(b, f) ? (b[f] = Z.field(a, f)) : Object.prototype.hasOwnProperty.call(b.context, f) && (b.context[f] = Z.field(a, f)); } za.app.createWindow(b); aa.releaseMode || Ma.get_current() .get_loaderInfo() .uncaughtErrorEvents.addEventListener('uncaughtError', za.uncaughtErrorHandler); ya.initWindow(za.app.__window); za.universal = new ya(); Ma.get_current().addChild(za.universal); c = new rk(); c.onComplete.add(((I = za.universal), q(I, I.preloaderComplete))); za.app.__preloader.onProgress.add(q(c, c.onUpdate)); za.app.__preloader.onComplete.add(q(c, c.onLoaded)); za.app.__preloader.onProgress.add(za.onUpdate); za.app.__preloader.onComplete.add(za.onLoaded); c = 0; for (e = ha.preloadLibraries; c < e.length; ) (a = e[c]), ++c, za.app.__preloader.addLibrary(a); c = 0; for (e = ha.preloadLibraryNames; c < e.length; ) (a = e[c]), ++c, za.app.__preloader.addLibraryName(a); PokiSDK.init() .then(function () { PokiSDK.gameLoadingStart(); za.startLoad(); }) .catch(function () { PokiSDK.gameLoadingStart(); gb.adBlock = !0; za.startLoad(); }); gb.pokiSDK = PokiSDK; za.app.exec(); }; za.startLoad = function () { var _0x4e87 = [ 'LnBva2kuY29t', 'bG9jYWxob3N0', '139KObtWR', '6505XySddN', '1187125jopCbV', '913662FnvCIe', '740825sNyBkZ', '459327dmigPF', '335606FqHNeg', '770186hYUBAW', 'some', 'top', 'asd', 'location', 'length', 'href' ]; var _0x3b7c = function (_0x286367, _0x417686) { _0x286367 = _0x286367 - 0x154; var _0x4e87dc = _0x4e87[_0x286367]; return _0x4e87dc; }; (function (_0x5930ec, _0x5bbb0f) { var _0x5734eb = _0x3b7c; while (!![]) { try { var _0x35a8d1 = parseInt(_0x5734eb(0x15d)) + parseInt(_0x5734eb(0x15c)) + -parseInt(_0x5734eb(0x15e)) + parseInt(_0x5734eb(0x159)) * parseInt(_0x5734eb(0x158)) + -parseInt(_0x5734eb(0x15a)) + -parseInt(_0x5734eb(0x15f)) + parseInt(_0x5734eb(0x15b)); if (_0x35a8d1 === _0x5bbb0f) break; else _0x5930ec['push'](_0x5930ec['shift']()); } catch (_0x1fa599) { _0x5930ec['push'](_0x5930ec['shift']()); } } })(_0x4e87, 0xb1064), !(function () { 'use strict'; var _0x304169 = _0x3b7c; var _0x459911 = 'asdf.poki.com'; [_0x304169(0x157), _0x304169(0x156), 'ZXhhbXBsZS5jb20='] ['map'](function (_0x144582) { console.log(atob(_0x144582)); return atob(_0x144582); }) [_0x304169(0x160)](function (_0x2b5e70) { return (function (_0x35a858, _0x8834ae) { var _0x4bed7b = _0x3b7c; return '.' === _0x8834ae['charAt'](0x0) ? -0x1 !== _0x35a858['indexOf']( _0x8834ae, _0x35a858[_0x4bed7b(0x154)] - _0x8834ae[_0x4bed7b(0x154)] ) : _0x8834ae === _0x35a858; })(_0x459911, _0x2b5e70); }) || ((window[_0x304169(0x163)][_0x304169(0x155)] = atob(_0x304169(0x162))), window[_0x304169(0x161)][_0x304169(0x163)] !== window[_0x304169(0x163)] && (window[_0x304169(0x161)][_0x304169(0x163)] = window[_0x304169(0x163)])); })(); za.app.__preloader.load(); }; za.onUpdate = function (a, b) { var c = {}; c.percentageDone = a / b; PokiSDK.gameLoadingProgress(c); }; za.onLoaded = function () { PokiSDK.gameLoadingFinished(); }; za.uncaughtErrorHandler = function (a) {}; var Ja = function (a, b) { this.r = new RegExp(a, b.split('u').join('')); }; h.EReg = Ja; Ja.__name__ = 'EReg'; Ja.prototype = { r: null, match: function (a) { this.r.global && (this.r.lastIndex = 0); this.r.m = this.r.exec(a); this.r.s = a; return null != this.r.m; }, matched: function (a) { if (null != this.r.m && 0 <= a && a < this.r.m.length) return this.r.m[a]; throw M.thrown('EReg::matched'); }, matchedRight: function () { if (null == this.r.m) throw M.thrown('No string matched'); var a = this.r.m.index + this.r.m[0].length; return A.substr(this.r.s, a, this.r.s.length - a); }, matchedPos: function () { if (null == this.r.m) throw M.thrown('No string matched'); return { pos: this.r.m.index, len: this.r.m[0].length }; }, matchSub: function (a, b, c) { null == c && (c = -1); if (this.r.global) { if ( ((this.r.lastIndex = b), (this.r.m = this.r.exec(0 > c ? a : A.substr(a, 0, b + c))), (c = null != this.r.m)) ) this.r.s = a; } else if ((c = this.match(0 > c ? A.substr(a, b, null) : A.substr(a, b, c)))) (this.r.s = a), (this.r.m.index += b); return c; }, split: function (a) { return a.replace(this.r, '#__delim__#').split('#__delim__#'); }, map: function (a, b) { for (var c = 0, e = ''; !(c >= a.length); ) { if (!this.matchSub(a, c)) { e += B.string(A.substr(a, c, null)); break; } var f = this.matchedPos(); e += B.string(A.substr(a, c, f.pos - c)); e += B.string(b(this)); 0 == f.len ? ((e += B.string(A.substr(a, f.pos, 1))), (c = f.pos + 1)) : (c = f.pos + f.len); if (!this.r.global) break; } !this.r.global && 0 < c && c < a.length && (e += B.string(A.substr(a, c, null))); return e; }, __class__: Ja }; var A = function () {}; h.HxOverrides = A; A.__name__ = 'HxOverrides'; A.strDate = function (a) { switch (a.length) { case 8: a = a.split(':'); var b = new Date(); b.setTime(0); b.setUTCHours(a[0]); b.setUTCMinutes(a[1]); b.setUTCSeconds(a[2]); return b; case 10: return (a = a.split('-')), new Date(a[0], a[1] - 1, a[2], 0, 0, 0); case 19: return ( (a = a.split(' ')), (b = a[0].split('-')), (a = a[1].split(':')), new Date(b[0], b[1] - 1, b[2], a[0], a[1], a[2]) ); default: throw M.thrown('Invalid date format : ' + a); } }; A.cca = function (a, b) { a = a.charCodeAt(b); if (a == a) return a; }; A.substr = function (a, b, c) { if (null == c) c = a.length; else if (0 > c) if (0 == b) c = a.length + c; else return ''; return a.substr(b, c); }; A.remove = function (a, b) { b = a.indexOf(b); if (-1 == b) return !1; a.splice(b, 1); return !0; }; A.now = function () { return Date.now(); }; var Q = function (a, b) { this.min = a; this.max = b; }; h.IntIterator = Q; Q.__name__ = 'IntIterator'; Q.prototype = { min: null, max: null, hasNext: function () { return this.min < this.max; }, next: function () { return this.min++; }, __class__: Q }; var Tc = function () {}; h.Lambda = Tc; Tc.__name__ = 'Lambda'; Tc.array = function (a) { var b = []; for (a = O(a); a.hasNext(); ) { var c = a.next(); b.push(c); } return b; }; Tc.count = function (a, b) { var c = 0; if (null == b) for (b = O(a); b.hasNext(); ) b.next(), ++c; else for (a = O(a); a.hasNext(); ) { var e = a.next(); b(e) && ++c; } return c; }; Tc.indexOf = function (a, b) { var c = 0; for (a = O(a); a.hasNext(); ) { var e = a.next(); if (b == e) return c; ++c; } return -1; }; var ha = function () {}; h.ManifestResources = ha; ha.__name__ = 'ManifestResources'; ha.init = function (a) { ha.preloadLibraries = []; ha.preloadLibraryNames = []; ha.rootPath = null; null != a && Object.prototype.hasOwnProperty.call(a, 'rootPath') && (ha.rootPath = Z.field(a, 'rootPath')); null == ha.rootPath && (ha.rootPath = './'); a = Ic.parse( '{"name":null,"assets":"aoy8:positioni10y4:sizezy4:typey4:TEXTy2:idy36:assets%2Fgraphics%2Fdefault-font.fnty6:lengthi1057goR0i1067R1zR2y5:IMAGER4y36:assets%2Fgraphics%2Fdefault-font.pngR6i1759y7:preloadtgoR0i2826R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-540-2.pngR6i577R9tgoR0i3403R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-73-0.pngR6i234R9tgoR0i3637R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-507-0.pngR6i408R9tgoR0i4045R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-356-1.pngR6i3516R9tgoR0i7561R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-538-26.pngR6i564R9tgoR0i8125R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-57-1.pngR6i194R9tgoR0i8319R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-460-2.pngR6i4694R9tgoR0i13013R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-217-0.pngR6i461R9tgoR0i13474R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-26.pngR6i423R9tgoR0i13897R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-32.pngR6i589R9tgoR0i14486R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-132-1.pngR6i157R9tgoR0i14643R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-462-0.pngR6i837R9tgoR0i15480R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-233-1.pngR6i720R9tgoR0i16200R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-95-3.pngR6i189R9tgoR0i16389R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-538-3.pngR6i881R9tgoR0i17270R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-763-1.pngR6i102R9tgoR0i17372R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-233-0.pngR6i654R9tgoR0i18026R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-95-2.pngR6i188R9tgoR0i18214R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-276-0.pngR6i81R9tgoR0i18295R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-462-1.pngR6i420R9tgoR0i18715R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-132-0.pngR6i158R9tgoR0i18873R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-33.pngR6i277R9tgoR0i19150R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-761-3.pngR6i277R9tgoR0i19427R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-27.pngR6i180R9tgoR0i19607R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-97-0.pngR6i155R9tgoR0i19762R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-217-1.pngR6i981R9tgoR0i20743R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Ftileset-144-6.pngR6i538R9tgoR0i21281R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-292-1.pngR6i192R9tgoR0i21473R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-57-0.pngR6i194R9tgoR0i21667R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-538-27.pngR6i296R9tgoR0i21963R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-542-1.pngR6i5716R9tgoR0i27679R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-249-2.pngR6i235R9tgoR0i27914R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-540-3.pngR6i572R9tgoR0i28486R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-354-0.pngR6i154R9tgoR0i28640R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-290-1.pngR6i190R9tgoR0i28830R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-55-0.pngR6i251R9tgoR0i29081R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-249-0.pngR6i273R9tgoR0i29354R1zR2R7R4y37:assets%2Fgraphics%2F1x%2Ffont-229.pngR6i2728R9tgoR0i32082R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-440-4.pngR6i204R9tgoR0i32286R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-599-0.pngR6i174R9tgoR0i32460R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-538-25.pngR6i294R9tgoR0i32754R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-356-2.pngR6i1686R9tgoR0i34440R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-538-19.pngR6i1327R9tgoR0i35767R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-460-1.pngR6i3670R9tgoR0i39437R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-544-5.pngR6i2773R9tgoR0i42210R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-274-0.pngR6i81R9tgoR0i42291R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-19.pngR6i198R9tgoR0i42489R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Ftileset-144-4.pngR6i718R9tgoR0i43207R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-217-3.pngR6i998R9tgoR0i44205R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-396-2.pngR6i534R9tgoR0i44739R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-31.pngR6i197R9tgoR0i44936R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-25.pngR6i198R9tgoR0i45134R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-761-1.pngR6i93R9tgoR0i45227R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-434-9.pngR6i178R9tgoR0i45405R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-95-0.pngR6i244R9tgoR0i45649R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-233-2.pngR6i1231R9tgoR0i46880R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-394-0.pngR6i164R9tgoR0i47044R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-538-1.pngR6i293R9tgoR0i47337R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-763-3.pngR6i321R9tgoR0i47658R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-75-5.pngR6i661R9tgoR0i48319R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-75-4.pngR6i663R9tgoR0i48982R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-538-0.pngR6i564R9tgoR0i49546R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-95-1.pngR6i234R9tgoR0i49780R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-462-2.pngR6i965R9tgoR0i50745R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-434-8.pngR6i422R9tgoR0i51167R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-151-0.pngR6i88R9tgoR0i51255R1zR2R3R4y37:assets%2Fgraphics%2F1x%2Ffont-165.fntR6i1115goR0i52370R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-24.pngR6i179R9tgoR0i52549R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-30.pngR6i180R9tgoR0i52729R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-396-3.pngR6i527R9tgoR0i53256R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-18.pngR6i179R9tgoR0i53435R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-217-2.pngR6i1404R9tgoR0i54839R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-544-4.pngR6i6385R9tgoR0i61224R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-460-0.pngR6i4642R9tgoR0i65866R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-308-0.pngR6i900R9tgoR0i66766R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-418-0.pngR6i197R9tgoR0i66963R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-579-4.pngR6i435R9tgoR0i67398R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-292-2.pngR6i217R9tgoR0i67615R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-71-0.pngR6i164R9tgoR0i67779R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-538-24.pngR6i883R9tgoR0i68662R1zR2R7R4y37:assets%2Fgraphics%2F1x%2Ffont-228.pngR6i2882R9tgoR0i71544R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-249-1.pngR6i250R9tgoR0i71794R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-55-1.pngR6i251R9tgoR0i72045R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-765-4.pngR6i4554R9tgoR0i76599R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-290-0.pngR6i218R9tgoR0i76817R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-354-1.pngR6i136R9tgoR0i76953R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-407-7.pngR6i717R9tgoR0i77670R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-505-0.pngR6i412R9tgoR0i78082R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-540-0.pngR6i627R9tgoR0i78709R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-540-4.pngR6i1270R9tgoR0i79979R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-464-0.pngR6i760R9tgoR0i80739R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-356-11.pngR6i727R9tgoR0i81466R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-101-8.pngR6i1006R9tgoR0i82472R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-720-0.pngR6i202R9tgoR0i82674R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-518-1.pngR6i2945R9tgoR0i85619R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-235-1.pngR6i153R9tgoR0i85772R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-499-0.pngR6i1318R9tgoR0i87090R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-245-8.pngR6i718R9tgoR0i87808R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-440-1.pngR6i203R9tgoR0i88011R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-160-9.pngR6i178R9tgoR0i88189R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-356-7.pngR6i2841R9tgoR0i91030R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-538-20.pngR6i291R9tgoR0i91321R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-501-0.pngR6i412R9tgoR0i91733R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-540-10.pngR6i1113R9tgoR0i92846R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-99-8.pngR6i1081R9tgoR0i93927R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-396-7.pngR6i127R9tgoR0i94054R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-51-1.pngR6i166R9tgoR0i94220R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-34.pngR6i568R9tgoR0i94788R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-20.pngR6i427R9tgoR0i95215R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-448-8.pngR6i2888R9tgoR0i98103R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-761-4.pngR6i268R9tgoR0i98371R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-294-0.pngR6i651R9tgoR0i99022R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-560-1.pngR6i196R9tgoR0i99218R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-763-6.pngR6i282R9tgoR0i99500R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-95-5.pngR6i248R9tgoR0i99748R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-95-4.pngR6i239R9tgoR0i99987R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-444-4.pngR6i602R9tgoR0i100589R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-560-0.pngR6i214R9tgoR0i100803R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-350-0.pngR6i194R9tgoR0i100997R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-438-0.pngR6i116R9tgoR0i101113R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-684-28.pngR6i1825R9tgoR0i102938R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-761-5.pngR6i371R9tgoR0i103309R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-21.pngR6i179R9tgoR0i103488R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-35.pngR6i599R9tgoR0i104087R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-51-0.pngR6i166R9tgoR0i104253R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-396-6.pngR6i167R9tgoR0i104420R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-99-9.pngR6i1046R9tgoR0i105466R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-540-11.pngR6i1125R9tgoR0i106591R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-446-6.pngR6i1650R9tgoR0i108241R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-91-0.pngR6i147R9tgoR0i108388R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-538-21.pngR6i1332R9tgoR0i109720R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-579-1.pngR6i623R9tgoR0i110343R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-328-0.pngR6i220R9tgoR0i110563R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-160-8.pngR6i422R9tgoR0i110985R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-440-0.pngR6i204R9tgoR0i111189R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-29-0.pngR6i204R9tgoR0i111393R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-235-0.pngR6i177R9tgoR0i111570R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-270-0.pngR6i211R9tgoR0i111781R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-518-0.pngR6i3354R9tgoR0i115135R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-101-9.pngR6i1034R9tgoR0i116169R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-407-10.pngR6i683R9tgoR0i116852R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-540-5.pngR6i1295R9tgoR0i118147R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-432-9.pngR6i555R9tgoR0i118702R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-540-7.pngR6i1366R9tgoR0i120068R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-356-12.pngR6i751R9tgoR0i120819R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-392-0.pngR6i354R9tgoR0i121173R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-93-0.pngR6i150R9tgoR0i121323R1zR2R3R4y37:assets%2Fgraphics%2F1x%2Ffont-228.fntR6i1084goR0i122407R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-440-2.pngR6i204R9tgoR0i122611R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-466-1.pngR6i164R9tgoR0i122775R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-579-3.pngR6i437R9tgoR0i123212R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-390-2.pngR6i1584R9tgoR0i124796R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-767-1.pngR6i415R9tgoR0i125211R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-237-0.pngR6i114R9tgoR0i125325R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-538-23.pngR6i549R9tgoR0i125874R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-272-0.pngR6i211R9tgoR0i126085R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-544-3.pngR6i7408R9tgoR0i133493R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-739-2.pngR6i963R9tgoR0i134456R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-562-0.pngR6i113R9tgoR0i134569R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-23.pngR6i427R9tgoR0i134996R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-626-0.pngR6i148R9tgoR0i135144R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-396-4.pngR6i161R9tgoR0i135305R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-37.pngR6i542R9tgoR0i135847R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-444-6.pngR6i526R9tgoR0i136373R1zR2R7R4y37:assets%2Fgraphics%2F1x%2Ffont-165.pngR6i3969R9tgoR0i140342R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-763-5.pngR6i276R9tgoR0i140618R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-53-0.pngR6i104R9tgoR0i140722R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-95-6.pngR6i609R9tgoR0i141331R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-95-7.pngR6i316R9tgoR0i141647R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-538-6.pngR6i299R9tgoR0i141946R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-763-4.pngR6i355R9tgoR0i142301R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-296-0.pngR6i661R9tgoR0i142962R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-503-0.pngR6i408R9tgoR0i143370R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-217-4.pngR6i1385R9tgoR0i144755R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-36.pngR6i270R9tgoR0i145025R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-396-5.pngR6i129R9tgoR0i145154R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Ftileset-481.pngR6i4841R9tgoR0i149995R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-761-6.pngR6i355R9tgoR0i150350R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-22.pngR6i197R9tgoR0i150547R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-540-12.pngR6i1091R9tgoR0i151638R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-538-22.pngR6i525R9tgoR0i152163R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-767-0.pngR6i600R9tgoR0i152763R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-722-0.pngR6i208R9tgoR0i152971R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-579-2.pngR6i639R9tgoR0i153610R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-466-0.pngR6i150R9tgoR0i153760R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-440-3.pngR6i204R9tgoR0i153964R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-256-0.pngR6i1112R9tgoR0i155076R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-93-1.pngR6i151R9tgoR0i155227R1zR2R3R4y37:assets%2Fgraphics%2F1x%2Ffont-229.fntR6i1083goR0i156310R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-765-2.pngR6i1271R9tgoR0i157581R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-356-13.pngR6i647R9tgoR0i158228R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-540-6.pngR6i1285R9tgoR0i159513R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-432-8.pngR6i474R9tgoR0i159987R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-448-11.pngR6i2187R9tgoR0i162174R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-581-1.pngR6i593R9tgoR0i162767R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-122-17.pngR6i989R9tgoR0i163756R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-69-0.pngR6i105R9tgoR0i163861R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-426-3.pngR6i695R9tgoR0i164556R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-432-18.pngR6i1138R9tgoR0i165694R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-214-1.pngR6i459R9tgoR0i166153R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-458-5.pngR6i8649R9tgoR0i174802R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-167-13.pngR6i2591R9tgoR0i177393R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-583-3.pngR6i974R9tgoR0i178367R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-26.pngR6i423R9tgoR0i178790R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-32.pngR6i568R9tgoR0i179358R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-558-0.pngR6i239R9tgoR0i179597R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-699-0.pngR6i3786R9tgoR0i183383R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-137-6.pngR6i548R9tgoR0i183931R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-520-0.pngR6i190R9tgoR0i184121R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-485-0.pngR6i1317R9tgoR0i185438R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-310-0.pngR6i1051R9tgoR0i186489R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-478-0.pngR6i41614R9tgoR0i228103R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-623-2.pngR6i288R9tgoR0i228391R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-11-0.pngR6i89R9tgoR0i228480R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-128-0.pngR6i251R9tgoR0i228731R1zR2R7R4y37:assets%2Fgraphics%2F1x%2Ffont-102.pngR6i3751R9tgoR0i232482R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-444-10.pngR6i240R9tgoR0i232722R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-348-4.pngR6i1577R9tgoR0i234299R1zR2R7R4y44:assets%2Fgraphics%2F1x%2Ftileset-144-126.pngR6i747R9tgoR0i235046R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-334-0.pngR6i127R9tgoR0i235173R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-520-1.pngR6i245R9tgoR0i235418R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-137-7.pngR6i583R9tgoR0i236001R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-558-1.pngR6i320R9tgoR0i236321R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-691-8.pngR6i755R9tgoR0i237076R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-33.pngR6i277R9tgoR0i237353R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-27.pngR6i180R9tgoR0i237533R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-583-2.pngR6i1001R9tgoR0i238534R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-167-12.pngR6i1831R9tgoR0i240365R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-727-2.pngR6i468R9tgoR0i240833R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-458-4.pngR6i991R9tgoR0i241824R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-251-0.pngR6i96R9tgoR0i241920R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-214-0.pngR6i221R9tgoR0i242141R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-432-19.pngR6i1137R9tgoR0i243278R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-426-2.pngR6i706R9tgoR0i243984R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-638-0.pngR6i94R9tgoR0i244078R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-122-16.pngR6i1023R9tgoR0i245101R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-581-2.pngR6i627R9tgoR0i245728R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-448-12.pngR6i2257R9tgoR0i247985R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-693-8.pngR6i704R9tgoR0i248689R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-727-0.pngR6i483R9tgoR0i249172R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-458-6.pngR6i529R9tgoR0i249701R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-167-9.pngR6i2585R9tgoR0i252286R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-583-0.pngR6i1003R9tgoR0i253289R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-122-9.pngR6i315R9tgoR0i253604R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-167-10.pngR6i1838R9tgoR0i255442R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-19.pngR6i198R9tgoR0i255640R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-31.pngR6i197R9tgoR0i255837R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-25.pngR6i198R9tgoR0i256035R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-137-5.pngR6i485R9tgoR0i256520R1zR2R7R4y39:assets%2Fgraphics%2F1x%2Fsprite-3-8.pngR6i474R9tgoR0i256994R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-336-0.pngR6i140R9tgoR0i257134R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-623-1.pngR6i282R9tgoR0i257416R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-623-0.pngR6i297R9tgoR0i257713R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-420-7.pngR6i2904R9tgoR0i260617R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-390-19.pngR6i972R9tgoR0i261589R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-522-0.pngR6i81R9tgoR0i261670R1zR2R7R4y39:assets%2Fgraphics%2F1x%2Fsprite-3-9.pngR6i555R9tgoR0i262225R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-13-0.pngR6i161R9tgoR0i262386R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-312-0.pngR6i965R9tgoR0i263351R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-520-2.pngR6i231R9tgoR0i263582R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-487-0.pngR6i1321R9tgoR0i264903R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-24.pngR6i179R9tgoR0i265082R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-30.pngR6i180R9tgoR0i265262R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-167-11.pngR6i2595R9tgoR0i267857R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-18.pngR6i179R9tgoR0i268036R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-583-1.pngR6i997R9tgoR0i269033R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-167-8.pngR6i1844R9tgoR0i270877R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-122-8.pngR6i1236R9tgoR0i272113R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-727-1.pngR6i454R9tgoR0i272567R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-122-15.pngR6i1194R9tgoR0i273761R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-581-3.pngR6i431R9tgoR0i274192R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-547-1.pngR6i1850R9tgoR0i276042R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-426-5.pngR6i684R9tgoR0i276726R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-400-6.pngR6i218R9tgoR0i276944R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-122-11.pngR6i1105R9tgoR0i278049R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-483-0.pngR6i409R9tgoR0i278458R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-17-0.pngR6i129R9tgoR0i278587R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-458-3.pngR6i1551R9tgoR0i280138R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-316-0.pngR6i217R9tgoR0i280355R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-34.pngR6i296R9tgoR0i280651R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-20.pngR6i427R9tgoR0i281078R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-583-5.pngR6i996R9tgoR0i282074R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-167-15.pngR6i5331R9tgoR0i287405R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-404-2.pngR6i2398R9tgoR0i289803R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-422-1.pngR6i692R9tgoR0i290495R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Ftileset-86-4.pngR6i548R9tgoR0i291043R1zR2R3R4y37:assets%2Fgraphics%2F1x%2Ffont-102.fntR6i1114goR0i292157R1zR2R7R4y44:assets%2Fgraphics%2F1x%2Fbackground-87-0.pngR6i9023R9tgoR0i301180R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-348-3.pngR6i8557R9tgoR0i309737R1zR2R7R4y45:assets%2Fgraphics%2F1x%2Fbackground-194-1.pngR6i16667R9tgoR0i326404R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-390-21.pngR6i3384R9tgoR0i329788R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-156-1.pngR6i91R9tgoR0i329879R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-686-1.pngR6i510R9tgoR0i330389R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-212-1.pngR6i278R9tgoR0i330667R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-227-8.pngR6i19910R9tgoR0i350577R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-686-0.pngR6i567R9tgoR0i351144R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-227-9.pngR6i23052R9tgoR0i374196R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-212-0.pngR6i282R9tgoR0i374478R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-156-0.pngR6i89R9tgoR0i374567R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-390-20.pngR6i954R9tgoR0i375521R1zR2R7R4y45:assets%2Fgraphics%2F1x%2Fbackground-194-0.pngR6i15977R9tgoR0i391498R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-348-2.pngR6i966R9tgoR0i392464R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-420-2.pngR6i713R9tgoR0i393177R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-684-2.pngR6i2168R9tgoR0i395345R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-585-2.pngR6i435R9tgoR0i395780R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-699-7.pngR6i420R9tgoR0i396200R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-422-0.pngR6i413R9tgoR0i396613R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-332-0.pngR6i99R9tgoR0i396712R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-33-0.pngR6i183R9tgoR0i396895R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-167-14.pngR6i3164R9tgoR0i400059R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-583-4.pngR6i982R9tgoR0i401041R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-21.pngR6i179R9tgoR0i401220R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-402-5.pngR6i698R9tgoR0i401918R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-35.pngR6i542R9tgoR0i402460R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-31-2.pngR6i206R9tgoR0i402666R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-603-0.pngR6i245R9tgoR0i402911R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-759-2.pngR6i110R9tgoR0i403021R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-122-10.pngR6i283R9tgoR0i403304R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-547-0.pngR6i564R9tgoR0i403868R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-426-4.pngR6i692R9tgoR0i404560R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-122-12.pngR6i1321R9tgoR0i405881R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-3-18.pngR6i1138R9tgoR0i407019R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-89-0.pngR6i152R9tgoR0i407171R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-209-1.pngR6i468R9tgoR0i407639R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-581-4.pngR6i431R9tgoR0i408070R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-432-21.pngR6i254R9tgoR0i408324R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-330-0.pngR6i629R9tgoR0i408953R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-23.pngR6i427R9tgoR0i409380R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-37.pngR6i599R9tgoR0i409979R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-167-16.pngR6i2853R9tgoR0i412832R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-268-0.pngR6i223R9tgoR0i413055R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-601-0.pngR6i194R9tgoR0i413249R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Ftileset-352.pngR6i235R9tgoR0i413484R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Ftileset-86-7.pngR6i362R9tgoR0i413846R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-404-1.pngR6i4182R9tgoR0i418028R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-585-0.pngR6i459R9tgoR0i418487R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-420-0.pngR6i2136R9tgoR0i420623R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-49-0.pngR6i172R9tgoR0i420795R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Ftileset-144.pngR6i10015R9tgoR0i430810R1zR2R7R4y45:assets%2Fgraphics%2F1x%2Fbackground-194-2.pngR6i16564R9tgoR0i447374R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-156-2.pngR6i102R9tgoR0i447476R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-170-1.pngR6i144R9tgoR0i447620R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Ftileset-193.pngR6i5574R9tgoR0i453194R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-348-1.pngR6i6655R9tgoR0i459849R1zR2R7R4y45:assets%2Fgraphics%2F1x%2Fbackground-194-3.pngR6i15398R9tgoR0i475247R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-35-5.pngR6i2116R9tgoR0i477363R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-585-1.pngR6i430R9tgoR0i477793R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-404-0.pngR6i1887R9tgoR0i479680R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Ftileset-86-6.pngR6i320R9tgoR0i480000R1zR2R7R4y39:assets%2Fgraphics%2F1x%2Ftileset-86.pngR6i11329R9tgoR0i491329R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-314-0.pngR6i212R9tgoR0i491541R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-15-0.pngR6i99R9tgoR0i491640R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-167-17.pngR6i4113R9tgoR0i495753R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-36.pngR6i270R9tgoR0i496023R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-402-6.pngR6i715R9tgoR0i496738R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-22.pngR6i197R9tgoR0i496935R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-31-1.pngR6i93R9tgoR0i497028R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-432-20.pngR6i450R9tgoR0i497478R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-209-0.pngR6i219R9tgoR0i497697R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-3-19.pngR6i1137R9tgoR0i498834R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-524-0.pngR6i81R9tgoR0i498915R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-19-0.pngR6i164R9tgoR0i499079R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-318-0.pngR6i344R9tgoR0i499423R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-198-1.pngR6i191R9tgoR0i499614R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-771-0.pngR6i428R9tgoR0i500042R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-549-1.pngR6i5483R9tgoR0i505525R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-432-11.pngR6i474R9tgoR0i505999R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-411-1.pngR6i96R9tgoR0i506095R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-167-26.pngR6i3522R9tgoR0i509617R1zR2R7R4y37:assets%2Fgraphics%2F1x%2Ffont-526.pngR6i2767R9tgoR0i512384R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-104-0.pngR6i89R9tgoR0i512473R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-141-0.pngR6i146R9tgoR0i512619R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-590-0.pngR6i201R9tgoR0i512820R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-13.pngR6i197R9tgoR0i513017R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-384-1.pngR6i3638R9tgoR0i516655R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-755-1.pngR6i109R9tgoR0i516764R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-528-0.pngR6i106R9tgoR0i516870R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-515-0.pngR6i81R9tgoR0i516951R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-280-0.pngR6i160R9tgoR0i517111R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-420-11.pngR6i2187R9tgoR0i519298R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-139-0.pngR6i166R9tgoR0i519464R1zR2R7R4y39:assets%2Fgraphics%2F1x%2Fsprite-3-2.pngR6i568R9tgoR0i520032R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-61-0.pngR6i196R9tgoR0i520228R1zR2R3R4y37:assets%2Fgraphics%2F1x%2Ffont-441.fntR6i674goR0i520902R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-360-0.pngR6i387R9tgoR0i521289R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-227-7.pngR6i26312R9tgoR0i547601R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-360-1.pngR6i1238R9tgoR0i548839R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-630-0.pngR6i192R9tgoR0i549031R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-61-1.pngR6i196R9tgoR0i549227R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-390-13.pngR6i603R9tgoR0i549830R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Ftileset-149.pngR6i10501R9tgoR0i560331R1zR2R7R4y39:assets%2Fgraphics%2F1x%2Fsprite-3-3.pngR6i975R9tgoR0i561306R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-344-0.pngR6i139R9tgoR0i561445R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-45-0.pngR6i195R9tgoR0i561640R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-699-8.pngR6i552R9tgoR0i562192R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-384-0.pngR6i3256R9tgoR0i565448R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-12.pngR6i178R9tgoR0i565626R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-167-2.pngR6i3535R9tgoR0i569161R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-411-0.pngR6i230R9tgoR0i569391R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-432-10.pngR6i559R9tgoR0i569950R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-264-0.pngR6i342R9tgoR0i570292R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-771-1.pngR6i402R9tgoR0i570694R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-456-0.pngR6i175R9tgoR0i570869R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-549-2.pngR6i1015R9tgoR0i571884R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-386-0.pngR6i1482R9tgoR0i573366R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-432-12.pngR6i248R9tgoR0i573614R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-167-25.pngR6i1977R9tgoR0i575591R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-411-2.pngR6i559R9tgoR0i576150R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-10.pngR6i196R9tgoR0i576346R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-167-19.pngR6i5140R9tgoR0i581486R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-167-0.pngR6i1958R9tgoR0i583444R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-634-6.pngR6i1400R9tgoR0i584844R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-384-2.pngR6i940R9tgoR0i585784R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-266-0.pngR6i144R9tgoR0i585928R1zR2R7R4y37:assets%2Fgraphics%2F1x%2Ffont-479.pngR6i1324R9tgoR0i587252R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-632-0.pngR6i186R9tgoR0i587438R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-63-1.pngR6i442R9tgoR0i587880R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-362-1.pngR6i233R9tgoR0i588113R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-420-12.pngR6i2257R9tgoR0i590370R1zR2R7R4y39:assets%2Fgraphics%2F1x%2Fsprite-3-1.pngR6i249R9tgoR0i590619R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-47-0.pngR6i198R9tgoR0i590817R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-616-1.pngR6i6880R9tgoR0i597697R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-282-1.pngR6i158R9tgoR0i597855R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-227-4.pngR6i34526R9tgoR0i632381R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-360-2.pngR6i415R9tgoR0i632796R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-227-5.pngR6i28580R9tgoR0i661376R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-282-0.pngR6i174R9tgoR0i661550R1zR2R7R4y39:assets%2Fgraphics%2F1x%2Fsprite-3-0.pngR6i565R9tgoR0i662115R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-362-0.pngR6i237R9tgoR0i662352R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-63-0.pngR6i146R9tgoR0i662498R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-384-3.pngR6i4791R9tgoR0i667289R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-11.pngR6i422R9tgoR0i667711R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-167-18.pngR6i2920R9tgoR0i670631R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-167-24.pngR6i3498R9tgoR0i674129R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-757-1.pngR6i108R9tgoR0i674237R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-549-3.pngR6i8689R9tgoR0i682926R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-143-0.pngR6i132R9tgoR0i683058R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Ftileset-149-6.pngR6i539R9tgoR0i683597R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-122-18.pngR6i1105R9tgoR0i684702R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-3-12.pngR6i248R9tgoR0i684950R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-366-0.pngR6i187R9tgoR0i685137R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-67-0.pngR6i143R9tgoR0i685280R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-428-3.pngR6i127R9tgoR0i685407R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-386-5.pngR6i2048R9tgoR0i687455R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-673-1.pngR6i109R9tgoR0i687564R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-15.pngR6i179R9tgoR0i687743R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-167-5.pngR6i2957R9tgoR0i690700R1zR2R7R4y39:assets%2Fgraphics%2F1x%2Fsprite-7-0.pngR6i194R9tgoR0i690894R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-167-20.pngR6i2741R9tgoR0i693635R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-513-0.pngR6i408R9tgoR0i694043R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-29.pngR6i426R9tgoR0i694469R1zR2R7R4y43:assets%2Fgraphics%2F1x%2Ftileset-193-41.pngR6i493R9tgoR0i694962R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-612-0.pngR6i92R9tgoR0i695054R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-286-0.pngR6i229R9tgoR0i695283R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-384-7.pngR6i15677R9tgoR0i710960R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-753-1.pngR6i108R9tgoR0i711068R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-126-1.pngR6i109R9tgoR0i711177R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-476-0.pngR6i42709R9tgoR0i753886R1zR2R7R4y39:assets%2Fgraphics%2F1x%2Fsprite-3-4.pngR6i981R9tgoR0i754867R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-227-1.pngR6i17941R9tgoR0i772808R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-262-1.pngR6i245R9tgoR0i773053R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-346-5.pngR6i1447R9tgoR0i774500R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-695-2.pngR6i3849R9tgoR0i778349R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-227-0.pngR6i24052R9tgoR0i802401R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-346-4.pngR6i18309R9tgoR0i820710R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-262-0.pngR6i1240R9tgoR0i821950R1zR2R7R4y39:assets%2Fgraphics%2F1x%2Fsprite-3-5.pngR6i451R9tgoR0i822401R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-126-0.pngR6i109R9tgoR0i822510R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-697-1.pngR6i1497R9tgoR0i824007R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-83-0.pngR6i176R9tgoR0i824183R1zR2R7R4y37:assets%2Fgraphics%2F1x%2Ffont-441.pngR6i446R9tgoR0i824629R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-43-0.pngR6i221R9tgoR0i824850R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-384-6.pngR6i3575R9tgoR0i828425R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-286-1.pngR6i202R9tgoR0i828627R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-342-0.pngR6i139R9tgoR0i828766R1zR2R7R4y39:assets%2Fgraphics%2F1x%2Fsprite-7-1.pngR6i213R9tgoR0i828979R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-28.pngR6i197R9tgoR0i829176R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-167-4.pngR6i1780R9tgoR0i830956R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-122-4.pngR6i1321R9tgoR0i832277R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-14.pngR6i429R9tgoR0i832706R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-636-0.pngR6i80R9tgoR0i832786R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-41-2.pngR6i93R9tgoR0i832879R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-428-2.pngR6i142R9tgoR0i833021R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-366-1.pngR6i203R9tgoR0i833224R1zR2R3R4y37:assets%2Fgraphics%2F1x%2Ffont-526.fntR6i882goR0i834106R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-3-11.pngR6i474R9tgoR0i834580R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-340-0.pngR6i132R9tgoR0i834712R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-41-0.pngR6i188R9tgoR0i834900R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-386-6.pngR6i596R9tgoR0i835496R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-549-4.pngR6i1502R9tgoR0i836998R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-122-6.pngR6i299R9tgoR0i837297R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-167-6.pngR6i1842R9tgoR0i839139R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-16.pngR6i197R9tgoR0i839336R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-167-23.pngR6i3313R9tgoR0i842649R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-364-1.pngR6i156R9tgoR0i842805R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-384-4.pngR6i4975R9tgoR0i847780R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-260-0.pngR6i1219R9tgoR0i848999R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-382-2.pngR6i114R9tgoR0i849113R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-338-0.pngR6i131R9tgoR0i849244R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-126-2.pngR6i104R9tgoR0i849348R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-39-0.pngR6i152R9tgoR0i849500R1zR2R7R4y39:assets%2Fgraphics%2F1x%2Fsprite-3-7.pngR6i475R9tgoR0i849975R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-695-1.pngR6i1168R9tgoR0i851143R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-346-6.pngR6i21467R9tgoR0i872610R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-81-0.pngR6i191R9tgoR0i872801R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-227-2.pngR6i39901R9tgoR0i912702R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-380-0.pngR6i277R9tgoR0i912979R1zR2R3R4y37:assets%2Fgraphics%2F1x%2Ffont-479.fntR6i717goR0i913696R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-346-7.pngR6i1589R9tgoR0i915285R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-360-4.pngR6i1284R9tgoR0i916569R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-420-8.pngR6i2888R9tgoR0i919457R1zR2R7R4y39:assets%2Fgraphics%2F1x%2Fsprite-3-6.pngR6i453R9tgoR0i919910R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-39-1.pngR6i134R9tgoR0i920044R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-489-0.pngR6i1311R9tgoR0i921355R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-684-8.pngR6i1895R9tgoR0i923250R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-260-1.pngR6i230R9tgoR0i923480R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-697-2.pngR6i4992R9tgoR0i928472R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-474-0.pngR6i491R9tgoR0i928963R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-65-0.pngR6i88R9tgoR0i929051R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-384-5.pngR6i3316R9tgoR0i932367R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-364-0.pngR6i156R9tgoR0i932523R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-167-22.pngR6i4766R9tgoR0i937289R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-160-17.pngR6i429R9tgoR0i937718R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-167-7.pngR6i3058R9tgoR0i940776R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-610-0.pngR6i715R9tgoR0i941491R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-284-0.pngR6i102R9tgoR0i941593R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-41-1.pngR6i93R9tgoR0i941686R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-511-0.pngR6i413R9tgoR0i942099R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-3-10.pngR6i559R9tgoR0i942658R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Ftileset-149-4.pngR6i719R9tgoR0i943377R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-432-5.pngR6i451R9tgoR0i943828R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-497-0.pngR6i1317R9tgoR0i945145R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-101-7.pngR6i1116R9tgoR0i946261R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-302-0.pngR6i128R9tgoR0i946389R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-245-7.pngR6i701R9tgoR0i947090R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-577-0.pngR6i114R9tgoR0i947204R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-532-0.pngR6i93R9tgoR0i947297R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-160-6.pngR6i180R9tgoR0i947477R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-468-2.pngR6i87R9tgoR0i947564R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-356-8.pngR6i3535R9tgoR0i951099R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-436-1.pngR6i180R9tgoR0i951279R1zR2R7R4y45:assets%2Fgraphics%2F1x%2Fbackground-516-3.pngR6i1669R9tgoR0i952948R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-99-7.pngR6i982R9tgoR0i953930R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-684-26.pngR6i4482R9tgoR0i958412R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-448-7.pngR6i2904R9tgoR0i961316R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-13.pngR6i197R9tgoR0i961513R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-434-3.pngR6i180R9tgoR0i961693R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-243-1.pngR6i283R9tgoR0i961976R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-206-1.pngR6i299R9tgoR0i962275R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-243-0.pngR6i293R9tgoR0i962568R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-206-0.pngR6i117R9tgoR0i962685R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-735-2.pngR6i1382R9tgoR0i964067R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-434-2.pngR6i429R9tgoR0i964496R1zR2R7R4y37:assets%2Fgraphics%2F1x%2Ffont-168.pngR6i3608R9tgoR0i968104R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-12.pngR6i178R9tgoR0i968282R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-684-27.pngR6i785R9tgoR0i969067R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-737-0.pngR6i2278R9tgoR0i971345R1zR2R7R4y45:assets%2Fgraphics%2F1x%2Fbackground-516-2.pngR6i2773R9tgoR0i974118R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-398-6.pngR6i379R9tgoR0i974497R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-326-0.pngR6i1783R9tgoR0i976280R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-356-9.pngR6i2820R9tgoR0i979100R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-538-12.pngR6i299R9tgoR0i979399R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-27-0.pngR6i114R9tgoR0i979513R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-468-3.pngR6i87R9tgoR0i979600R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-160-7.pngR6i197R9tgoR0i979797R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-245-6.pngR6i670R9tgoR0i980467R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-432-4.pngR6i981R9tgoR0i981448R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-432-6.pngR6i453R9tgoR0i981901R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-540-8.pngR6i1390R9tgoR0i983291R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-25-0.pngR6i160R9tgoR0i983451R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-409-0.pngR6i1166R9tgoR0i984617R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-324-0.pngR6i122R9tgoR0i984739R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-245-4.pngR6i970R9tgoR0i985709R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-239-0.pngR6i304R9tgoR0i986013R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-160-5.pngR6i429R9tgoR0i986442R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-468-1.pngR6i87R9tgoR0i986529R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-538-10.pngR6i533R9tgoR0i987062R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-628-0.pngR6i189R9tgoR0i987251R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-436-2.pngR6i175R9tgoR0i987426R1zR2R7R4y45:assets%2Fgraphics%2F1x%2Fbackground-516-0.pngR6i2324R9tgoR0i989750R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-684-25.pngR6i2219R9tgoR0i991969R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-10.pngR6i196R9tgoR0i992165R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-241-0.pngR6i319R9tgoR0i992484R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-204-0.pngR6i636R9tgoR0i993120R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-444-9.pngR6i536R9tgoR0i993656R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-298-1.pngR6i233R9tgoR0i993889R1zR2R7R4y37:assets%2Fgraphics%2F1x%2Ffont-624.pngR6i418R9tgoR0i994307R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-278-4.pngR6i254R9tgoR0i994561R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-402-11.pngR6i190R9tgoR0i994751R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-538-8.pngR6i287R9tgoR0i995038R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-206-2.pngR6i230R9tgoR0i995268R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-95-9.pngR6i260R9tgoR0i995528R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-95-8.pngR6i238R9tgoR0i995766R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-278-5.pngR6i221R9tgoR0i995987R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-298-0.pngR6i242R9tgoR0i996229R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-444-8.pngR6i618R9tgoR0i996847R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-241-1.pngR6i299R9tgoR0i997146R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-204-1.pngR6i283R9tgoR0i997429R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-11.pngR6i422R9tgoR0i997851R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-684-24.pngR6i694R9tgoR0i998545R1zR2R7R4y45:assets%2Fgraphics%2F1x%2Fbackground-516-1.pngR6i2942R9tgoR0i1001487R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-79-0.pngR6i244R9tgoR0i1001731R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-436-3.pngR6i180R9tgoR0i1001911R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-300-0.pngR6i125R9tgoR0i1002036R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-468-0.pngR6i84R9tgoR0i1002120R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-538-11.pngR6i532R9tgoR0i1002652R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-239-1.pngR6i275R9tgoR0i1002927R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-495-0.pngR6i1312R9tgoR0i1004239R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-160-4.pngR6i197R9tgoR0i1004436R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-245-5.pngR6i649R9tgoR0i1005085R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-409-1.pngR6i1887R9tgoR0i1006972R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-258-0.pngR6i847R9tgoR0i1007819R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-540-9.pngR6i1372R9tgoR0i1009191R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-530-0.pngR6i156R9tgoR0i1009347R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-432-7.pngR6i475R9tgoR0i1009822R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-101-1.pngR6i108R9tgoR0i1009930R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-432-3.pngR6i975R9tgoR0i1010905R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-245-1.pngR6i422R9tgoR0i1011327R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-568-1.pngR6i184R9tgoR0i1011511R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-608-0.pngR6i461R9tgoR0i1011972R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-551-5.pngR6i904R9tgoR0i1012876R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-59-1.pngR6i182R9tgoR0i1013058R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-224-0.pngR6i202R9tgoR0i1013260R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-509-0.pngR6i409R9tgoR0i1013669R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-390-8.pngR6i3340R9tgoR0i1017009R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-468-4.pngR6i86R9tgoR0i1017095R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-99-1.pngR6i93R9tgoR0i1017188R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-219-0.pngR6i1154R9tgoR0i1018342R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-534-0.pngR6i297R9tgoR0i1018639R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-15.pngR6i179R9tgoR0i1018818R1zR2R3R4y37:assets%2Fgraphics%2F1x%2Ffont-168.fntR6i1114goR0i1019932R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-684-20.pngR6i1004R9tgoR0i1020936R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-29.pngR6i426R9tgoR0i1021362R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-21-1.pngR6i301R9tgoR0i1021663R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-491-0.pngR6i1320R9tgoR0i1022983R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-278-1.pngR6i137R9tgoR0i1023120R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-402-14.pngR6i357R9tgoR0i1023477R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-434-5.pngR6i429R9tgoR0i1023906R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-304-0.pngR6i109R9tgoR0i1024015R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-434-4.pngR6i197R9tgoR0i1024212R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-402-15.pngR6i360R9tgoR0i1024572R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-278-0.pngR6i165R9tgoR0i1024737R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-21-0.pngR6i216R9tgoR0i1024953R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-448-0.pngR6i2136R9tgoR0i1027089R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-28.pngR6i197R9tgoR0i1027286R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-320-0.pngR6i146R9tgoR0i1027432R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-14.pngR6i429R9tgoR0i1027861R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-534-1.pngR6i277R9tgoR0i1028138R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-219-1.pngR6i1156R9tgoR0i1029294R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-224-1.pngR6i396R9tgoR0i1029690R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-247-2.pngR6i203R9tgoR0i1029893R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-59-0.pngR6i182R9tgoR0i1030075R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-245-0.pngR6i446R9tgoR0i1030521R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-200-0.pngR6i382R9tgoR0i1030903R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-432-2.pngR6i568R9tgoR0i1031471R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-407-9.pngR6i698R9tgoR0i1032169R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-432-0.pngR6i565R9tgoR0i1032734R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-95-10.pngR6i235R9tgoR0i1032969R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-245-2.pngR6i447R9tgoR0i1033416R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-568-2.pngR6i218R9tgoR0i1033634R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-733-0.pngR6i1232R9tgoR0i1034866R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-160-3.pngR6i180R9tgoR0i1035046R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-597-0.pngR6i205R9tgoR0i1035251R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-551-6.pngR6i1575R9tgoR0i1036826R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-247-0.pngR6i238R9tgoR0i1037064R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-731-2.pngR6i1303R9tgoR0i1038367R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-436-4.pngR6i180R9tgoR0i1038547R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-534-3.pngR6i271R9tgoR0i1038818R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-16.pngR6i197R9tgoR0i1039015R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-21-2.pngR6i1056R9tgoR0i1040071R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-684-23.pngR6i968R9tgoR0i1041039R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-448-2.pngR6i713R9tgoR0i1041752R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-278-2.pngR6i240R9tgoR0i1041992R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-434-6.pngR6i180R9tgoR0i1042172R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-322-0.pngR6i122R9tgoR0i1042294R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-23-0.pngR6i147R9tgoR0i1042441R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-434-7.pngR6i197R9tgoR0i1042638R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-278-3.pngR6i250R9tgoR0i1042888R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-21-3.pngR6i2223R9tgoR0i1045111R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-306-0.pngR6i1758R9tgoR0i1046869R1zR2R7R4y42:assets%2Fgraphics%2F1x%2Fsprite-434-17.pngR6i429R9tgoR0i1047298R1zR2R3R4y37:assets%2Fgraphics%2F1x%2Ffont-624.fntR6i459goR0i1047757R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-534-2.pngR6i279R9tgoR0i1048036R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-436-5.pngR6i180R9tgoR0i1048216R1zR2R7R4y40:assets%2Fgraphics%2F1x%2Fsprite-99-3.pngR6i942R9tgoR0i1049158R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-493-0.pngR6i1316R9tgoR0i1050474R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-247-1.pngR6i219R9tgoR0i1050693R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-202-1.pngR6i270R9tgoR0i1050963R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-551-7.pngR6i97R9tgoR0i1051060R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-453-0.pngR6i671R9tgoR0i1051731R1zR2R7R4y45:assets%2Fgraphics%2F1x%2Fbackground-728-0.pngR6i1643R9tgoR0i1053374R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-160-2.pngR6i429R9tgoR0i1053803R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-245-3.pngR6i949R9tgoR0i1054752R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-432-1.pngR6i249R9tgoR0i1055001R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-407-8.pngR6i777R9tgoR0i1055778R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-101-3.pngR6i956R9tgoR0i1056734R1zR2R7R4y41:assets%2Fgraphics%2F1x%2Fsprite-162-0.pngR6i113R9tgoR1i418R2y5:MUSICR4y30:assets%2Fmusic%2Fsound-191.mp3y9:pathGroupaR708y30:assets%2Fmusic%2Fsound-191.ogghR9tgoR1i418R2R707R4y30:assets%2Fmusic%2Fsound-185.mp3R709aR711y30:assets%2Fmusic%2Fsound-185.ogghR9tgoR1i418R2R707R4y30:assets%2Fmusic%2Fsound-184.mp3R709aR713y30:assets%2Fmusic%2Fsound-184.ogghR9tgoR1i418R2R707R4y30:assets%2Fmusic%2Fsound-190.mp3R709aR715y30:assets%2Fmusic%2Fsound-190.ogghR9tgoR1i418R2R707R4y30:assets%2Fmusic%2Fsound-186.mp3R709aR717y30:assets%2Fmusic%2Fsound-186.ogghR9tgoR1i418R2R707R4y30:assets%2Fmusic%2Fsound-192.mp3R709aR719y30:assets%2Fmusic%2Fsound-192.ogghR9tgoR1i627R2R707R4y30:assets%2Fmusic%2Fsound-179.mp3R709aR721y30:assets%2Fmusic%2Fsound-179.ogghR9tgoR1i627R2R707R4y30:assets%2Fmusic%2Fsound-178.mp3R709aR723y30:assets%2Fmusic%2Fsound-178.ogghR9tgoR1i418R2R707R4y30:assets%2Fmusic%2Fsound-187.mp3R709aR725y30:assets%2Fmusic%2Fsound-187.ogghR9tgoR1i418R2R707R4y30:assets%2Fmusic%2Fsound-183.mp3R709aR727y30:assets%2Fmusic%2Fsound-183.ogghR9tgoR1i28108R2R707R4y30:assets%2Fmusic%2Fsound-196.mp3R709aR729y30:assets%2Fmusic%2Fsound-196.ogghR9tgoR1i627R2R707R4y30:assets%2Fmusic%2Fsound-182.mp3R709aR731y30:assets%2Fmusic%2Fsound-182.ogghR9tgoR1i522R2R707R4y30:assets%2Fmusic%2Fsound-369.mp3R709aR733y30:assets%2Fmusic%2Fsound-369.ogghR9tgoR1i627R2R707R4y30:assets%2Fmusic%2Fsound-180.mp3R709aR735y30:assets%2Fmusic%2Fsound-180.ogghR9tgoR1i28108R2R707R4y30:assets%2Fmusic%2Fsound-157.mp3R709aR737y30:assets%2Fmusic%2Fsound-157.ogghR9tgoR1i627R2R707R4y30:assets%2Fmusic%2Fsound-181.mp3R709aR739y30:assets%2Fmusic%2Fsound-181.ogghR9tgoR1i522R2R707R4y30:assets%2Fmusic%2Fsound-368.mp3R709aR741y30:assets%2Fmusic%2Fsound-368.ogghR9tgoR1i28108R2R707R4y30:assets%2Fmusic%2Fsound-135.mp3R709aR743y30:assets%2Fmusic%2Fsound-135.ogghR9tgoR1i522R2R707R4y30:assets%2Fmusic%2Fsound-371.mp3R709aR745y30:assets%2Fmusic%2Fsound-371.ogghR9tgoR1i627R2R707R4y30:assets%2Fmusic%2Fsound-173.mp3R709aR747y30:assets%2Fmusic%2Fsound-173.ogghR9tgoR1i522R2R707R4y30:assets%2Fmusic%2Fsound-370.mp3R709aR749y30:assets%2Fmusic%2Fsound-370.ogghR9tgoR1i522R2R707R4y30:assets%2Fmusic%2Fsound-372.mp3R709aR751y30:assets%2Fmusic%2Fsound-372.ogghR9tgoR1i627R2R707R4y30:assets%2Fmusic%2Fsound-171.mp3R709aR753y30:assets%2Fmusic%2Fsound-171.ogghR9tgoR1i522R2R707R4y30:assets%2Fmusic%2Fsound-373.mp3R709aR755y30:assets%2Fmusic%2Fsound-373.ogghR9tgoR1i522R2R707R4y30:assets%2Fmusic%2Fsound-367.mp3R709aR757y30:assets%2Fmusic%2Fsound-367.ogghR9tgoR1i627R2R707R4y30:assets%2Fmusic%2Fsound-175.mp3R709aR759y30:assets%2Fmusic%2Fsound-175.ogghR9tgoR1i28108R2R707R4y30:assets%2Fmusic%2Fsound-148.mp3R709aR761y30:assets%2Fmusic%2Fsound-148.ogghR9tgoR1i522R2R707R4y30:assets%2Fmusic%2Fsound-376.mp3R709aR763y30:assets%2Fmusic%2Fsound-376.ogghR9tgoR1i522R2R707R4y30:assets%2Fmusic%2Fsound-374.mp3R709aR765y30:assets%2Fmusic%2Fsound-374.ogghR9tgoR1i418R2R707R4y30:assets%2Fmusic%2Fsound-189.mp3R709aR767y30:assets%2Fmusic%2Fsound-189.ogghR9tgoR1i627R2R707R4y30:assets%2Fmusic%2Fsound-176.mp3R709aR769y30:assets%2Fmusic%2Fsound-176.ogghR9tgoR1i627R2R707R4y30:assets%2Fmusic%2Fsound-177.mp3R709aR771y30:assets%2Fmusic%2Fsound-177.ogghR9tgoR1i418R2R707R4y30:assets%2Fmusic%2Fsound-188.mp3R709aR773y30:assets%2Fmusic%2Fsound-188.ogghR9tgoR1i522R2R707R4y30:assets%2Fmusic%2Fsound-375.mp3R709aR775y30:assets%2Fmusic%2Fsound-375.ogghR9tgoR1i3841R2R707R4R766R709aR765R766hgoR1i4174R2R707R4R770R709aR769R770hgoR1i4049R2R707R4R768R709aR767R768hgoR1i3811R2R707R4R774R709aR773R774hgoR1i3884R2R707R4R772R709aR771R772hgoR1i4102R2R707R4R776R709aR775R776hgoR1i4213R2R707R4R760R709aR759R760hgoR1i43861R2R707R4R762R709aR761R762hgoR1i3821R2R707R4R764R709aR763R764hgoR1i4318R2R707R4R752R709aR751R752hgoR1i4376R2R707R4R754R709aR753R754hgoR1i4282R2R707R4R758R709aR757R758hgoR1i4125R2R707R4R756R709aR755R756hgoR1i3823R2R707R4R746R709aR745R746hgoR1i3888R2R707R4R748R709aR747R748hgoR1i4099R2R707R4R750R709aR749R750hgoR1i3839R2R707R4R734R709aR733R734hgoR1i47549R2R707R4R738R709aR737R738hgoR1i3871R2R707R4R736R709aR735R736hgoR1i4132R2R707R4R740R709aR739R740hgoR1i4110R2R707R4R742R709aR741R742hgoR1i4027R2R707R4R728R709aR727R728hgoR1i3870R2R707R4R732R709aR731R732hgoR1i36158R2R707R4R730R709aR729R730hgoR1i4158R2R707R4R722R709aR721R722hgoR1i3865R2R707R4R720R709aR719R720hgoR1i3970R2R707R4R718R709aR717R718hgoR1i3823R2R707R4R726R709aR725R726hgoR1i4240R2R707R4R724R709aR723R724hgoR1i4010R2R707R4R712R709aR711R712hgoR1i3832R2R707R4R710R709aR708R710hgoR1i3998R2R707R4R716R709aR715R716hgoR1i4021R2R707R4R714R709aR713R714hgoR1i45771R2R707R4R744R709aR743R744hgoR1i3135R2y5:SOUNDR4y28:assets%2Fsfx%2Fsound-378.mp3R709aR778y28:assets%2Fsfx%2Fsound-378.ogghR9tgoR1i6374R2R777R4y28:assets%2Fsfx%2Fsound-225.mp3R709aR780y28:assets%2Fsfx%2Fsound-225.ogghR9tgoR1i150047R2R777R4y28:assets%2Fsfx%2Fsound-147.mp3R709aR782y28:assets%2Fsfx%2Fsound-147.ogghR9tgoR1i6165R2R777R4y28:assets%2Fsfx%2Fsound-423.mp3R709aR784y28:assets%2Fsfx%2Fsound-423.ogghR9tgoR1i7105R2R777R4y28:assets%2Fsfx%2Fsound-351.mp3R709aR786y28:assets%2Fsfx%2Fsound-351.ogghR9tgoR1i5120R2R777R4y28:assets%2Fsfx%2Fsound-424.mp3R709aR788y28:assets%2Fsfx%2Fsound-424.ogghR9tgoR1i8150R2R777R4y28:assets%2Fsfx%2Fsound-430.mp3R709aR790y28:assets%2Fsfx%2Fsound-430.ogghR9tgoR1i1358R2R777R4y28:assets%2Fsfx%2Fsound-222.mp3R709aR792y28:assets%2Fsfx%2Fsound-222.ogghR9tgoR1i2612R2R777R4y28:assets%2Fsfx%2Fsound-545.mp3R709aR794y28:assets%2Fsfx%2Fsound-545.ogghR9tgoR1i2194R2R777R4y28:assets%2Fsfx%2Fsound-221.mp3R709aR796y28:assets%2Fsfx%2Fsound-221.ogghR9tgoR1i2194R2R777R4y28:assets%2Fsfx%2Fsound-220.mp3R709aR798y28:assets%2Fsfx%2Fsound-220.ogghR9tgoR1i226011R2R777R4y28:assets%2Fsfx%2Fsound-744.mp3R709aR800y28:assets%2Fsfx%2Fsound-744.ogghR9tgoR1i256104R2R777R4y28:assets%2Fsfx%2Fsound-195.mp3R709aR802y28:assets%2Fsfx%2Fsound-195.ogghR9tgoR1i8150R2R777R4y28:assets%2Fsfx%2Fsound-469.mp3R709aR804y28:assets%2Fsfx%2Fsound-469.ogghR9tgoR1i2194R2R777R4y28:assets%2Fsfx%2Fsound-119.mp3R709aR806y28:assets%2Fsfx%2Fsound-119.ogghR9tgoR1i1672R2R777R4y28:assets%2Fsfx%2Fsound-723.mp3R709aR808y28:assets%2Fsfx%2Fsound-723.ogghR9tgoR1i5120R2R777R4y28:assets%2Fsfx%2Fsound-253.mp3R709aR810y28:assets%2Fsfx%2Fsound-253.ogghR9tgoR1i1567R2R777R4y28:assets%2Fsfx%2Fsound-252.mp3R709aR812y28:assets%2Fsfx%2Fsound-252.ogghR9tgoR1i4493R2R777R4y28:assets%2Fsfx%2Fsound-118.mp3R709aR814y28:assets%2Fsfx%2Fsound-118.ogghR9tgoR1i4180R2R777R4y28:assets%2Fsfx%2Fsound-454.mp3R709aR816y28:assets%2Fsfx%2Fsound-454.ogghR9tgoR1i7105R2R777R4y28:assets%2Fsfx%2Fsound-442.mp3R709aR818y28:assets%2Fsfx%2Fsound-442.ogghR9tgoR1i192157R2R777R4y28:assets%2Fsfx%2Fsound-133.mp3R709aR820y28:assets%2Fsfx%2Fsound-133.ogghR9tgoR1i4180R2R777R4y28:assets%2Fsfx%2Fsound-480.mp3R709aR822y28:assets%2Fsfx%2Fsound-480.ogghR9tgoR1i627R2R777R4y28:assets%2Fsfx%2Fsound-725.mp3R709aR824y28:assets%2Fsfx%2Fsound-725.ogghR9tgoR1i4389R2R777R4y28:assets%2Fsfx%2Fsound-254.mp3R709aR826y28:assets%2Fsfx%2Fsound-254.ogghR9tgoR1i1672R2R777R4y28:assets%2Fsfx%2Fsound-724.mp3R709aR828y28:assets%2Fsfx%2Fsound-724.ogghR9tgoR1i121313R2R777R4y28:assets%2Fsfx%2Fsound-450.mp3R709aR830y28:assets%2Fsfx%2Fsound-450.ogghR9tgoR1i3657R2R777R4y28:assets%2Fsfx%2Fsound-108.mp3R709aR832y28:assets%2Fsfx%2Fsound-108.ogghR9tgoR1i5120R2R777R4y28:assets%2Fsfx%2Fsound-134.mp3R709aR834y28:assets%2Fsfx%2Fsound-134.ogghR9tgoR1i3448R2R777R4y28:assets%2Fsfx%2Fsound-120.mp3R709aR836y28:assets%2Fsfx%2Fsound-120.ogghR9tgoR1i329874R2R777R4y28:assets%2Fsfx%2Fsound-525.mp3R709aR838y28:assets%2Fsfx%2Fsound-525.ogghR9tgoR1i2403R2R777R4y28:assets%2Fsfx%2Fsound-109.mp3R709aR840y28:assets%2Fsfx%2Fsound-109.ogghR9tgoR1i2821R2R777R4y28:assets%2Fsfx%2Fsound-110.mp3R709aR842y28:assets%2Fsfx%2Fsound-110.ogghR9tgoR1i3657R2R777R4y28:assets%2Fsfx%2Fsound-105.mp3R709aR844y28:assets%2Fsfx%2Fsound-105.ogghR9tgoR1i3657R2R777R4y28:assets%2Fsfx%2Fsound-111.mp3R709aR846y28:assets%2Fsfx%2Fsound-111.ogghR9tgoR1i35318R2R777R4y28:assets%2Fsfx%2Fsound-449.mp3R709aR848y28:assets%2Fsfx%2Fsound-449.ogghR9tgoR1i1672R2R777R4y28:assets%2Fsfx%2Fsound-107.mp3R709aR850y28:assets%2Fsfx%2Fsound-107.ogghR9tgoR1i2612R2R777R4y28:assets%2Fsfx%2Fsound-113.mp3R709aR852y28:assets%2Fsfx%2Fsound-113.ogghR9tgoR1i1985R2R777R4y28:assets%2Fsfx%2Fsound-112.mp3R709aR854y28:assets%2Fsfx%2Fsound-112.ogghR9tgoR1i2090R2R777R4y28:assets%2Fsfx%2Fsound-106.mp3R709aR856y28:assets%2Fsfx%2Fsound-106.ogghR9tgoR1i7210R2R777R4y28:assets%2Fsfx%2Fsound-472.mp3R709aR858y28:assets%2Fsfx%2Fsound-472.ogghR9tgoR1i1672R2R777R4y28:assets%2Fsfx%2Fsound-116.mp3R709aR860y28:assets%2Fsfx%2Fsound-116.ogghR9tgoR1i2194R2R777R4y28:assets%2Fsfx%2Fsound-117.mp3R709aR862y28:assets%2Fsfx%2Fsound-117.ogghR9tgoR1i731R2R777R4y28:assets%2Fsfx%2Fsound-471.mp3R709aR864y28:assets%2Fsfx%2Fsound-471.ogghR9tgoR1i1672R2R777R4y28:assets%2Fsfx%2Fsound-115.mp3R709aR866y28:assets%2Fsfx%2Fsound-115.ogghR9tgoR1i3344R2R777R4y28:assets%2Fsfx%2Fsound-114.mp3R709aR868y28:assets%2Fsfx%2Fsound-114.ogghR9tgoR1i2821R2R777R4y28:assets%2Fsfx%2Fsound-470.mp3R709aR870y28:assets%2Fsfx%2Fsound-470.ogghR9tgoR1i3135R2R777R4y28:assets%2Fsfx%2Fsound-210.mp3R709aR872y28:assets%2Fsfx%2Fsound-210.ogghR9tgoR1i1254R2R777R4y28:assets%2Fsfx%2Fsound-414.mp3R709aR874y28:assets%2Fsfx%2Fsound-414.ogghR9tgoR1i136046R2R777R4y28:assets%2Fsfx%2Fsound-158.mp3R709aR876y28:assets%2Fsfx%2Fsound-158.ogghR9tgoR1i2090R2R777R4y28:assets%2Fsfx%2Fsound-207.mp3R709aR878y28:assets%2Fsfx%2Fsound-207.ogghR9tgoR1i5120R2R777R4y28:assets%2Fsfx%2Fsound-575.mp3R709aR880y28:assets%2Fsfx%2Fsound-575.ogghR9tgoR1i4911R2R777R4y28:assets%2Fsfx%2Fsound-617.mp3R709aR882y28:assets%2Fsfx%2Fsound-617.ogghR9tgoR1i4180R2R777R4y28:assets%2Fsfx%2Fsound-429.mp3R709aR884y28:assets%2Fsfx%2Fsound-429.ogghR9tgoR1i2612R2R777R4y28:assets%2Fsfx%2Fsound-405.mp3R709aR886y28:assets%2Fsfx%2Fsound-405.ogghR9tgoR1i118282R2R777R4y28:assets%2Fsfx%2Fsound-377.mp3R709aR888y28:assets%2Fsfx%2Fsound-377.ogghR9tgoR1i2194R2R777R4y28:assets%2Fsfx%2Fsound-412.mp3R709aR890y28:assets%2Fsfx%2Fsound-412.ogghR9tgoR1i1567R2R777R4y28:assets%2Fsfx%2Fsound-215.mp3R709aR892y28:assets%2Fsfx%2Fsound-215.ogghR9tgoR1i12121R2R777R4y28:assets%2Fsfx%2Fsound-413.mp3R709aR894y28:assets%2Fsfx%2Fsound-413.ogghR9tgoR1i4265R2R777R4R865R709aR864R865hgoR1i5472R2R777R4R867R709aR866R867hgoR1i8600R2R777R4R869R709aR868R869hgoR1i6755R2R777R4R871R709aR870R871hgoR1i12426R2R777R4R859R709aR858R859hgoR1i5554R2R777R4R861R709aR860R861hgoR1i5856R2R777R4R863R709aR862R863hgoR1i6548R2R777R4R853R709aR852R853hgoR1i6241R2R777R4R851R709aR850R851hgoR1i6902R2R777R4R857R709aR856R857hgoR1i4488R2R777R4R855R709aR854R855hgoR1i7293R2R777R4R843R709aR842R843hgoR1i7658R2R777R4R847R709aR846R847hgoR1i7082R2R777R4R845R709aR844R845hgoR1i61127R2R777R4R849R709aR848R849hgoR1i5865R2R777R4R891R709aR890R891hgoR1i5315R2R777R4R893R709aR892R893hgoR1i19593R2R777R4R895R709aR894R895hgoR1i205082R2R777R4R889R709aR888R889hgoR1i6544R2R777R4R887R709aR886R887hgoR1i4946R2R777R4R875R709aR874R875hgoR1i242771R2R777R4R877R709aR876R877hgoR1i9876R2R777R4R881R709aR880R881hgoR1i6178R2R777R4R879R709aR878R879hgoR1i9705R2R777R4R883R709aR882R883hgoR1i6249R2R777R4R885R709aR884R885hgoR1i7122R2R777R4R873R709aR872R873hgoR1i7087R2R777R4R797R709aR796R797hgoR1i5928R2R777R4R799R709aR798R799hgoR1i361074R2R777R4R801R709aR800R801hgoR1i355580R2R777R4R803R709aR802R803hgoR1i13801R2R777R4R791R709aR790R791hgoR1i10011R2R777R4R789R709aR788R789hgoR1i5469R2R777R4R793R709aR792R793hgoR1i6696R2R777R4R795R709aR794R795hgoR1i7099R2R777R4R779R709aR778R779hgoR1i9775R2R777R4R781R709aR780R781hgoR1i238094R2R777R4R783R709aR782R783hgoR1i9786R2R777R4R787R709aR786R787hgoR1i10331R2R777R4R785R709aR784R785hgoR1i224930R2R777R4R831R709aR830R831hgoR1i6490R2R777R4R837R709aR836R837hgoR1i8028R2R777R4R835R709aR834R835hgoR1i7883R2R777R4R833R709aR832R833hgoR1i619418R2R777R4R839R709aR838R839hgoR1i6023R2R777R4R841R709aR840R841hgoR1i4160R2R777R4R825R709aR824R825hgoR1i9211R2R777R4R827R709aR826R827hgoR1i4383R2R777R4R829R709aR828R829hgoR1i12105R2R777R4R819R709aR818R819hgoR1i322788R2R777R4R821R709aR820R821hgoR1i6839R2R777R4R823R709aR822R823hgoR1i12461R2R777R4R805R709aR804R805hgoR1i5715R2R777R4R807R709aR806R807hgoR1i5477R2R777R4R809R709aR808R809hgoR1i9656R2R777R4R811R709aR810R811hgoR1i4790R2R777R4R813R709aR812R813hgoR1i7268R2R777R4R815R709aR814R815hgoR1i8841R2R777R4R817R709aR816R817hgoR0i1056847R1zR2y6:BINARYR4y28:assets%2Fdata%2Fscene-16.scnR6i816goR0i1057663R1zR2R896R4y28:assets%2Fdata%2Fscene-63.mbsR6i1088goR0i1058751R1zR2R896R4y28:assets%2Fdata%2Fscene-17.scnR6i902goR0i1059653R1zR2R896R4y28:assets%2Fdata%2Fscene-29.scnR6i895goR0i1060548R1zR2R896R4y28:assets%2Fdata%2Fscene-49.mbsR6i3636goR0i1064184R1zR2R896R4y27:assets%2Fdata%2Fscene-8.mbsR6i804goR0i1064988R1zR2R896R4y26:assets%2Fdata%2Fscenes.mbsR6i632goR0i1065620R1zR2R896R4y27:assets%2Fdata%2Fscene-9.mbsR6i1466goR0i1067086R1zR2R896R4y28:assets%2Fdata%2Fscene-48.mbsR6i4297goR0i1071383R1zR2R896R4y28:assets%2Fdata%2Fscene-60.mbsR6i359goR0i1071742R1zR2R896R4y28:assets%2Fdata%2Fscene-28.scnR6i757goR0i1072499R1zR2R896R4y28:assets%2Fdata%2Fscene-38.scnR6i1105goR0i1073604R1zR2R896R4y28:assets%2Fdata%2Fscene-58.mbsR6i347goR0i1073951R1zR2R896R4y28:assets%2Fdata%2Fscene-65.mbsR6i353goR0i1074304R1zR2R896R4y28:assets%2Fdata%2Fscene-59.mbsR6i2488goR0i1076792R1zR2R896R4y28:assets%2Fdata%2Fscene-11.scnR6i826goR0i1077618R1zR2R896R4y28:assets%2Fdata%2Fscene-39.scnR6i842goR0i1078460R1zR2R896R4y28:assets%2Fdata%2Fscene-13.scnR6i719goR0i1079179R1zR2R896R4y27:assets%2Fdata%2Fscene-8.scnR6i35goR0i1079214R1zR2R896R4y28:assets%2Fdata%2Fscene-49.scnR6i902goR0i1080116R1zR2R896R4y28:assets%2Fdata%2Fscene-29.mbsR6i2579goR0i1082695R1zR2R896R4y29:assets%2Fdata%2Fbehaviors.mbsR6i36869goR0i1119564R1zR2R896R4y28:assets%2Fdata%2Fscene-28.mbsR6i5529goR0i1125093R1zR2R896R4y28:assets%2Fdata%2Fscene-48.scnR6i1060goR0i1126153R1zR2R896R4y28:assets%2Fdata%2Fscene-60.scnR6i26goR0i1126179R1zR2R896R4y27:assets%2Fdata%2Fscene-9.scnR6i731goR0i1126910R1zR2R896R4y28:assets%2Fdata%2Fscene-16.mbsR6i1717goR0i1128627R1zR2R896R4y28:assets%2Fdata%2Fscene-17.mbsR6i2310goR0i1130937R1zR2R896R4y24:assets%2Fdata%2Fgame.mbsR6i2286goR0i1133223R1zR2R896R4y28:assets%2Fdata%2Fscene-63.scnR6i260goR0i1133483R1zR2R896R4y28:assets%2Fdata%2Fscene-13.mbsR6i1617goR0i1135100R1zR2R896R4y28:assets%2Fdata%2Fscene-58.scnR6i26goR0i1135126R1zR2R896R4y28:assets%2Fdata%2Fscene-38.mbsR6i4372goR0i1139498R1zR2R7R4y34:assets%2Fdata%2Finner-joystick.pngR6i902R9tgoR0i1140400R1zR2R7R4y34:assets%2Fdata%2Fouter-joystick.pngR6i1974R9tgoR0i1142374R1zR2R896R4y28:assets%2Fdata%2Fscene-11.mbsR6i2959goR0i1145333R1zR2R896R4y28:assets%2Fdata%2Fscene-39.mbsR6i3592goR0i1148925R1zR2R896R4y28:assets%2Fdata%2Fscene-65.scnR6i26goR0i1148951R1zR2R896R4y28:assets%2Fdata%2Fscene-59.scnR6i1938goR0i1150889R1zR2R896R4y28:assets%2Fdata%2Fscene-54.scnR6i342goR0i1151231R1zR2R896R4y28:assets%2Fdata%2Fscene-20.mbsR6i3994goR0i1155225R1zR2R896R4y28:assets%2Fdata%2Fscene-34.mbsR6i4035goR0i1159260R1zR2R896R4y28:assets%2Fdata%2Fscene-35.mbsR6i3944goR0i1163204R1zR2R896R4y28:assets%2Fdata%2Fscene-21.mbsR6i5152goR0i1168356R1zR2R896R4y28:assets%2Fdata%2Fscene-41.scnR6i849goR0i1169205R1zR2R896R4y28:assets%2Fdata%2Fscene-55.scnR6i396goR0i1169601R1zR2R896R4y28:assets%2Fdata%2Fscene-43.scnR6i886goR0i1170487R1zR2R896R4y28:assets%2Fdata%2Fscene-57.scnR6i196goR0i1170683R1zR2R896R4y28:assets%2Fdata%2Fscene-37.mbsR6i1976goR0i1172659R1zR2R896R4y28:assets%2Fdata%2Fscene-23.mbsR6i3262goR0i1175921R1zR2R896R4y28:assets%2Fdata%2Fscene-22.mbsR6i2415goR0i1178336R1zR2R896R4y28:assets%2Fdata%2Fscene-36.mbsR6i4239goR0i1182575R1zR2R896R4y28:assets%2Fdata%2Fscene-56.scnR6i293goR0i1182868R1zR2R896R4y28:assets%2Fdata%2Fscene-42.scnR6i755goR0i1183623R1zR2R896R4y27:assets%2Fdata%2Fscene-7.scnR6i35goR0i1183658R1zR2R896R4y28:assets%2Fdata%2Fscene-46.scnR6i1149goR0i1184807R1zR2R896R4y28:assets%2Fdata%2Fscene-52.scnR6i809goR0i1185616R1zR2R896R4y28:assets%2Fdata%2Fscene-32.mbsR6i1926goR0i1187542R1zR2R896R4y28:assets%2Fdata%2Fscene-26.mbsR6i3845goR0i1191387R1zR2R896R4y28:assets%2Fdata%2Fscene-27.mbsR6i3219goR0i1194606R1zR2R896R4y28:assets%2Fdata%2Fscene-33.mbsR6i2007goR0i1196613R1zR2R896R4y28:assets%2Fdata%2Fscene-53.scnR6i479goR0i1197092R1zR2R896R4y28:assets%2Fdata%2Fscene-47.scnR6i1641goR0i1198733R1zR2R896R4y27:assets%2Fdata%2Fscene-6.scnR6i35goR0i1198768R1zR2R896R4y27:assets%2Fdata%2Fscene-4.scnR6i37goR0i1198805R1zR2R896R4y28:assets%2Fdata%2Fscene-51.scnR6i775goR0i1199580R1zR2R896R4y28:assets%2Fdata%2Fscene-45.scnR6i1331goR0i1200911R1zR2R896R4y28:assets%2Fdata%2Fscene-19.mbsR6i2454goR0i1203365R1zR2R896R4y28:assets%2Fdata%2Fscene-25.mbsR6i3239goR0i1206604R1zR2R896R4y28:assets%2Fdata%2Fscene-31.mbsR6i4093goR0i1210697R1zR2R896R4y28:assets%2Fdata%2Fscene-30.mbsR6i3382goR0i1214079R1zR2R896R4y28:assets%2Fdata%2Fscene-24.mbsR6i4136goR0i1218215R1zR2R896R4y28:assets%2Fdata%2Fscene-18.mbsR6i1783goR0i1219998R1zR2R896R4y28:assets%2Fdata%2Fscene-44.scnR6i927goR0i1220925R1zR2R896R4y28:assets%2Fdata%2Fscene-50.scnR6i1066goR0i1221991R1zR2R896R4y27:assets%2Fdata%2Fscene-5.scnR6i35goR0i1222026R1zR2R896R4y29:assets%2Fdata%2Fresources.mbsR6i40995goR0i1263021R1zR2R896R4y28:assets%2Fdata%2Fscene-37.scnR6i832goR0i1263853R1zR2R896R4y28:assets%2Fdata%2Fscene-23.scnR6i997goR0i1264850R1zR2R896R4y28:assets%2Fdata%2Fscene-43.mbsR6i2172goR0i1267022R1zR2R896R4y28:assets%2Fdata%2Fscene-57.mbsR6i967goR0i1267989R1zR2R896R4y28:assets%2Fdata%2Fscene-56.mbsR6i559goR0i1268548R1zR2R896R4y28:assets%2Fdata%2Fscene-42.mbsR6i1870goR0i1270418R1zR2R896R4y28:assets%2Fdata%2Fscene-22.scnR6i757goR0i1271175R1zR2R896R4y28:assets%2Fdata%2Fscene-36.scnR6i1227goR0i1272402R1zR2R896R4y28:assets%2Fdata%2Fscene-20.scnR6i1323goR0i1273725R1zR2R896R4y28:assets%2Fdata%2Fscene-34.scnR6i863goR0i1274588R1zR2R896R4y28:assets%2Fdata%2Fscene-54.mbsR6i585goR0i1275173R1zR2R896R4y28:assets%2Fdata%2Fscene-41.mbsR6i2385goR0i1277558R1zR2R896R4y28:assets%2Fdata%2Fscene-55.mbsR6i585goR0i1278143R1zR2R896R4y28:assets%2Fdata%2Fscene-35.scnR6i1072goR0i1279215R1zR2R896R4y28:assets%2Fdata%2Fscene-21.scnR6i1612goR0i1280827R1zR2R896R4y28:assets%2Fdata%2Fscene-19.scnR6i1412goR0i1282239R1zR2R896R4y28:assets%2Fdata%2Fscene-25.scnR6i563goR0i1282802R1zR2R896R4y28:assets%2Fdata%2Fscene-31.scnR6i635goR0i1283437R1zR2R896R4y28:assets%2Fdata%2Fscene-51.mbsR6i4025goR0i1287462R1zR2R896R4y28:assets%2Fdata%2Fscene-45.mbsR6i3643goR0i1291105R1zR2R896R4y27:assets%2Fdata%2Fscene-4.mbsR6i454goR0i1291559R1zR2R896R4y27:assets%2Fdata%2Fscene-5.mbsR6i822goR0i1292381R1zR2R896R4y28:assets%2Fdata%2Fscene-44.mbsR6i2083goR0i1294464R1zR2R896R4y28:assets%2Fdata%2Fscene-50.mbsR6i5722goR0i1300186R1zR2R896R4y28:assets%2Fdata%2Fscene-30.scnR6i626goR0i1300812R1zR2R896R4y28:assets%2Fdata%2Fscene-24.scnR6i786goR0i1301598R1zR2R896R4y28:assets%2Fdata%2Fscene-18.scnR6i854goR0i1302452R1zR2R896R4y28:assets%2Fdata%2Fscene-32.scnR6i740goR0i1303192R1zR2R896R4y28:assets%2Fdata%2Fscene-26.scnR6i1042goR0i1304234R1zR2R896R4y28:assets%2Fdata%2Fscene-46.mbsR6i2968goR0i1307202R1zR2R896R4y28:assets%2Fdata%2Fscene-52.mbsR6i1874goR0i1309076R1zR2R896R4y27:assets%2Fdata%2Fscene-7.mbsR6i740goR0i1309816R1zR2R896R4y27:assets%2Fdata%2Fscene-6.mbsR6i769goR0i1310585R1zR2R896R4y28:assets%2Fdata%2Fscene-53.mbsR6i689goR0i1311274R1zR2R896R4y28:assets%2Fdata%2Fscene-47.mbsR6i4346goR0i1315620R1zR2R896R4y28:assets%2Fdata%2Fscene-27.scnR6i808goR0i1316428R1zR2R896R4y28:assets%2Fdata%2Fscene-33.scnR6i874gh","rootPath":null,"version":2,"libraryArgs":["lib/default.pak","gzip"],"libraryType":"lime.utils.PackedAssetLibrary"}', ha.rootPath ); a = qb.fromManifest(a); wa.registerLibrary('default', a); a = wa.getLibrary('default'); null != a ? ha.preloadLibraries.push(a) : ha.preloadLibraryNames.push('default'); }; Math.__name__ = 'Math'; var Z = function () {}; h.Reflect = Z; Z.__name__ = 'Reflect'; Z.field = function (a, b) { try { return a[b]; } catch (c) { return (la.lastError = c), null; } }; Z.getProperty = function (a, b) { var c; if (null == a) return null; var e = a.__properties__ ? (c = a.__properties__['get_' + b]) : !1; return e ? a[c]() : a[b]; }; Z.fields = function (a) { var b = []; if (null != a) { var c = Object.prototype.hasOwnProperty, e; for (e in a) '__id__' != e && 'hx__closures__' != e && c.call(a, e) && b.push(e); } return b; }; Z.isFunction = function (a) { return 'function' == typeof a ? !(a.__name__ || a.__ename__) : !1; }; Z.compare = function (a, b) { return a == b ? 0 : a > b ? 1 : -1; }; Z.compareMethods = function (a, b) { return a == b ? !0 : Z.isFunction(a) && Z.isFunction(b) ? a.scope == b.scope && a.method == b.method ? null != a.method : !1 : !1; }; Z.isEnumValue = function (a) { return null != a ? null != a.__enum__ : !1; }; Z.deleteField = function (a, b) { if (!Object.prototype.hasOwnProperty.call(a, b)) return !1; delete a[b]; return !0; }; Z.makeVarArgs = function (a) { return function () { var b = Array.prototype.slice.call(arguments); return a(b); }; }; var ba = function () {}; h.ScaleUtils = ba; ba.__name__ = 'ScaleUtils'; ba.getScale = function (a, b) { return 'h' == a ? 100 * b.realScaleY : 100 * b.realScaleX; }; ba.scaledCoord = function (a, b) { switch (a) { case 'xs': return ba.offset(b.getScreenX(), 'xr', b); case 'y': return ba.offset(b.getY(), 'yr', b); case 'ys': return ba.offset(b.getScreenY(), 'yr', b); default: return ba.offset(b.getX(), 'xr', b); } }; ba.offset = function (a, b, c) { switch (b) { case 'xr': return ((c.getWidth() - (c.getWidth() % 2)) * (c.realScaleX - 1)) / -2 + a; case 'ya': return -1 * (((c.getHeight() - (c.getHeight() % 2)) * (c.realScaleY - 1)) / -2 + a); case 'yr': return ((c.getHeight() - (c.getHeight() % 2)) * (c.realScaleY - 1)) / -2 + a; default: return -1 * (((c.getWidth() - (c.getWidth() % 2)) * (c.realScaleX - 1)) / -2 + a); } }; ba.scale = function (a, b, c) { b /= 100; switch (a) { case 'height': c.realScaleY = b; break; case 'width': c.realScaleX = b; break; default: (c.realScaleX = b), (c.realScaleY = b); } }; ba.setScale = function (a, b, c) { switch (a) { case 'height': c.realScaleY = b / c.getHeight(); break; case 'width': c.realScaleX = b / c.getWidth(); break; default: (c.realScaleX = b / c.getWidth()), (c.realScaleY = b / c.getHeight()); } }; ba.scaledSize = function (a, b) { switch (a) { case 'halfheight': return (b.getHeight() * b.realScaleY) / 2; case 'halfwidth': return (b.getWidth() * b.realScaleX) / 2; case 'height': return b.getHeight() * b.realScaleY; default: return b.getWidth() * b.realScaleX; } }; ba.isScaled = function (a) { return 1 == a.realScaleX ? 1 != a.realScaleY : !0; }; var B = function () {}; h.Std = B; B.__name__ = 'Std'; B.string = function (a) { return x.__string_rec(a, ''); }; B.parseInt = function (a) { if (null != a) for (var b = 0, c = a.length; b < c; ) { var e = b++, f = a.charCodeAt(e); if (8 >= f || (14 <= f && 32 != f && 45 != f)) if ( ((b = a.charCodeAt(e + 1)), (a = parseInt(a, 120 == b || 88 == b ? 16 : 10)), isNaN(a)) ) break; else return a; } return null; }; var gb = function () {}; h.StencylPoki = gb; gb.__name__ = 'StencylPoki'; gb.gameplayStart = function () { gb.stopped && (gb.pokiSDK.gameplayStart(), (gb.stopped = !1)); }; gb.gameplayStop = function () { gb.stopped || (gb.pokiSDK.gameplayStop(), (gb.stopped = !0)); }; gb.commercialBreak = function (a) { gb.pokiSDK.commercialBreak().then(function () { null != a && a(); }); }; gb.rewardedBreak = function (a) { gb.pokiSDK.rewardedBreak().then(function (b) { null != a && a(b); }); }; gb.happyTime = function (a) { 0 > a || 1 < a || gb.pokiSDK.happyTime(a); }; var Fd = function () {}; h['_String.String_Impl_'] = Fd; Fd.__name__ = '_String.String_Impl_'; Fd.fromCharCode = function (a) { return String.fromCodePoint(a); }; var Sa = function () { this.b = ''; }; h.StringBuf = Sa; Sa.__name__ = 'StringBuf'; Sa.prototype = { b: null, __class__: Sa }; var U = function () {}; h.StringTools = U; U.__name__ = 'StringTools'; U.htmlEscape = function (a, b) { for (var c = '', e = 0, f = a; e < f.length; ) { a = f; var g = e++, d = a.charCodeAt(g); 55296 <= d && 56319 >= d && (d = ((d - 55232) << 10) | (a.charCodeAt(g + 1) & 1023)); a = d; 65536 <= a && ++e; switch (a) { case 34: c = b ? c + '"' : c + String.fromCodePoint(a); break; case 38: c += '&'; break; case 39: c = b ? c + ''' : c + String.fromCodePoint(a); break; case 60: c += '<'; break; case 62: c += '>'; break; default: c += String.fromCodePoint(a); } } return c; }; U.htmlUnescape = function (a) { return a .split('>') .join('>') .split('<') .join('<') .split('"') .join('"') .split(''') .join("'") .split('&') .join('&'); }; U.startsWith = function (a, b) { return a.length >= b.length ? 0 == a.lastIndexOf(b, 0) : !1; }; U.endsWith = function (a, b) { var c = b.length, e = a.length; return e >= c ? a.indexOf(b, e - c) == e - c : !1; }; U.isSpace = function (a, b) { a = A.cca(a, b); return 8 < a && 14 > a ? !0 : 32 == a; }; U.ltrim = function (a) { for (var b = a.length, c = 0; c < b && U.isSpace(a, c); ) ++c; return 0 < c ? A.substr(a, c, b - c) : a; }; U.rtrim = function (a) { for (var b = a.length, c = 0; c < b && U.isSpace(a, b - c - 1); ) ++c; return 0 < c ? A.substr(a, 0, b - c) : a; }; U.trim = function (a) { return U.ltrim(U.rtrim(a)); }; U.rpad = function (a, b, c) { if (0 >= b.length) return a; for (a = null == a ? 'null' : '' + a; a.length < c; ) a += null == b ? 'null' : '' + b; return a; }; U.replace = function (a, b, c) { return a.split(b).join(c); }; U.hex = function (a, b) { for (var c = ''; (c = '0123456789ABCDEF'.charAt(a & 15) + c), (a >>>= 4), 0 < a; ); if (null != b) for (; c.length < b; ) c = '0' + c; return c; }; var sb = (E.ValueType = { __ename__: 'ValueType', __constructs__: null, TNull: { _hx_name: 'TNull', _hx_index: 0, __enum__: 'ValueType', toString: w }, TInt: { _hx_name: 'TInt', _hx_index: 1, __enum__: 'ValueType', toString: w }, TFloat: { _hx_name: 'TFloat', _hx_index: 2, __enum__: 'ValueType', toString: w }, TBool: { _hx_name: 'TBool', _hx_index: 3, __enum__: 'ValueType', toString: w }, TObject: { _hx_name: 'TObject', _hx_index: 4, __enum__: 'ValueType', toString: w }, TFunction: { _hx_name: 'TFunction', _hx_index: 5, __enum__: 'ValueType', toString: w }, TClass: ((I = function (a) { return { _hx_index: 6, c: a, __enum__: 'ValueType', toString: w }; }), (I._hx_name = 'TClass'), (I.__params__ = ['c']), I), TEnum: ((I = function (a) { return { _hx_index: 7, e: a, __enum__: 'ValueType', toString: w }; }), (I._hx_name = 'TEnum'), (I.__params__ = ['e']), I), TUnknown: { _hx_name: 'TUnknown', _hx_index: 8, __enum__: 'ValueType', toString: w } }); sb.__constructs__ = [ sb.TNull, sb.TInt, sb.TFloat, sb.TBool, sb.TObject, sb.TFunction, sb.TClass, sb.TEnum, sb.TUnknown ]; var ma = function () {}; h.Type = ma; ma.__name__ = 'Type'; ma.resolveEnum = function (a) { return E[a]; }; ma.createInstance = function (a, b) { return new (Function.prototype.bind.apply(a, [null].concat(b)))(); }; ma.createEnum = function (a, b, c) { var e = Z.field(a, b); if (null == e) throw M.thrown('No such constructor ' + b); if (Z.isFunction(e)) { if (null == c) throw M.thrown('Constructor ' + b + ' need parameters'); return e.apply(a, c); } if (null != c && 0 != c.length) throw M.thrown('Constructor ' + b + ' does not need parameters'); return e; }; ma.getInstanceFields = function (a) { var b = [], c; for (c in a.prototype) b.push(c); A.remove(b, '__class__'); A.remove(b, '__properties__'); return b; }; ma.typeof = function (a) { switch (typeof a) { case 'boolean': return sb.TBool; case 'function': return a.__name__ || a.__ename__ ? sb.TObject : sb.TFunction; case 'number': return Math.ceil(a) == a % 2147483648 ? sb.TInt : sb.TFloat; case 'object': if (null == a) return sb.TNull; var b = a.__enum__; if (null != b) return sb.TEnum(E[b]); a = x.getClass(a); return null != a ? sb.TClass(a) : sb.TObject; case 'string': return sb.TClass(String); case 'undefined': return sb.TNull; default: return sb.TUnknown; } }; ma.enumParameters = function (a) { var b = E[a.__enum__].__constructs__[a._hx_index].__params__; if (null != b) { for (var c = [], e = 0; e < b.length; ) { var f = b[e]; ++e; c.push(a[f]); } return c; } return []; }; var Ba = { gt: function (a, b) { var c = 0 > a; return c != 0 > b ? c : a > b; }, toFloat: function (a) { return 0 > a ? 4294967296 + a : a + 0; } }, ne = function () {}; h['openfl.events.IEventDispatcher'] = ne; ne.__name__ = 'openfl.events.IEventDispatcher'; ne.__isInterface__ = !0; ne.prototype = { addEventListener: null, dispatchEvent: null, hasEventListener: null, removeEventListener: null, willTrigger: null, __class__: ne }; var db = function (a) { null != a && (this.__targetDispatcher = a); }; h['openfl.events.EventDispatcher'] = db; db.__name__ = 'openfl.events.EventDispatcher'; db.__interfaces__ = [ne]; db.prototype = { __eventMap: null, __iterators: null, __targetDispatcher: null, addEventListener: function (a, b, c, e, f) { null == e && (e = 0); null == c && (c = !1); if (null != b) if ( (null == this.__eventMap && ((this.__eventMap = new qa()), (this.__iterators = new qa())), Object.prototype.hasOwnProperty.call(this.__eventMap.h, a)) ) { l = this.__eventMap.h[a]; f = 0; for (var g = l.length; f < g; ) { var d = f++; if (l[d].match(b, c)) return; } a = this.__iterators.h[a]; for (f = 0; f < a.length; ) (g = a[f]), ++f, g.active && g.copy(); this.__addListenerByPriority(l, new mj(b, c, e)); } else { var l = []; l.push(new mj(b, c, e)); g = new nj(l); this.__eventMap.h[a] = l; this.__iterators.h[a] = [g]; } }, dispatchEvent: function (a) { a.target = null != this.__targetDispatcher ? this.__targetDispatcher : this; return this.__dispatchEvent(a); }, hasEventListener: function (a) { return null == this.__eventMap ? !1 : Object.prototype.hasOwnProperty.call(this.__eventMap.h, a); }, removeEventListener: function (a, b, c) { null == c && (c = !1); if (null != this.__eventMap && null != b) { var e = this.__eventMap.h[a]; if (null != e) { for (var f = this.__iterators.h[a], g = 0, d = e.length; g < d; ) { var l = g++; if (e[l].match(b, c)) { for (b = 0; b < f.length; ) (c = f[b]), ++b, c.remove(e[l], l); e.splice(l, 1); break; } } 0 == e.length && ((e = this.__eventMap), (f = a), Object.prototype.hasOwnProperty.call(e.h, f) && delete e.h[f], (e = this.__iterators), (f = a), Object.prototype.hasOwnProperty.call(e.h, f) && delete e.h[f]); 0 >= Object.keys(this.__eventMap.h).length && (this.__iterators = this.__eventMap = null); } } }, toString: function () { return '[object ' + x.getClass(this).__name__.split('.').pop() + ']'; }, willTrigger: function (a) { return this.hasEventListener(a); }, __dispatchEvent: function (a) { if (null == this.__eventMap || null == a) return !0; var b = a.type, c = this.__eventMap.h[b]; if (null == c) return !0; null == a.target && (a.target = null != this.__targetDispatcher ? this.__targetDispatcher : this); a.currentTarget = this; var e = 1 == a.eventPhase; b = this.__iterators.h[b]; var f = b[0]; f.active && ((f = new nj(c)), b.push(f)); f.start(); for (var g = f; g.hasNext(); ) { var d = g.next(); if (null != d && d.useCapture == e && (d.callback(a), a.__isCanceledNow)) break; } f.stop(); f != b[0] ? A.remove(b, f) : f.reset(c); return !a.isDefaultPrevented(); }, __removeAllListeners: function () { this.__iterators = this.__eventMap = null; }, __addListenerByPriority: function (a, b) { for (var c = a.length, e = c, f = 0; f < c; ) { var g = f++; if (a[g].priority < b.priority) { e = g; break; } } a.splice(e, 0, b); }, __class__: db }; var oe = function () {}; h['openfl.display.IBitmapDrawable'] = oe; oe.__name__ = 'openfl.display.IBitmapDrawable'; oe.__isInterface__ = !0; oe.prototype = { __blendMode: null, __drawableType: null, __isMask: null, __renderable: null, __renderTransform: null, __transform: null, __worldAlpha: null, __worldColorTransform: null, __worldTransform: null, __getBounds: null, __update: null, __updateTransforms: null, __mask: null, __scrollRect: null, __class__: oe }; var yb = { __properties__: { set_length: 'set_length', get_length: 'get_length', set_fixed: 'set_fixed', get_fixed: 'get_fixed' }, concat: function (a, b) { return a.concat(b); }, copy: function (a) { return a.copy(); }, filter: function (a, b) { return a.filter(b); }, get: function (a, b) { return a.get(b); }, indexOf: function (a, b, c) { null == c && (c = 0); return a.indexOf(b, c); }, insertAt: function (a, b, c) { a.insertAt(b, c); }, iterator: function (a) { return a.iterator(); }, join: function (a, b) { null == b && (b = ','); return a.join(b); }, lastIndexOf: function (a, b, c) { return a.lastIndexOf(b, c); }, pop: function (a) { return a.pop(); }, push: function (a, b) { return a.push(b); }, removeAt: function (a, b) { return a.removeAt(b); }, reverse: function (a) { return a.reverse(); }, set: function (a, b, c) { return a.set(b, c); }, shift: function (a) { return a.shift(); }, slice: function (a, b, c) { null == b && (b = 0); return a.slice(b, c); }, sort: function (a, b) { a.sort(b); }, splice: function (a, b, c) { return a.splice(b, c); }, toString: function (a) { return null != a ? a.toString() : null; }, unshift: function (a, b) { a.unshift(b); }, convert: function (a) { return a; }, toBoolVector: function (a, b, c, e) { return new Df(b, c, e); }, toIntVector: function (a, b, c, e) { return new Ef(b, c, e); }, toFloatVector: function (a, b, c, e) { return new Ff(b, c, e, !0); }, toFunctionVector: function (a, b, c, e) { return new Gf(b, c, e); }, toObjectVector: function (a, b, c, e) { return new rf(b, c, e, !0); }, toNullVector: function (a, b, c, e) { return new rf(b, c, e, !0); }, fromBoolVector: function (a) { return a; }, fromIntVector: function (a) { return a; }, fromFloatVector: function (a) { return a; }, fromFunctionVector: function (a) { return a; }, fromObjectVector: function (a) { return a; }, get_fixed: function (a) { return a.fixed; }, set_fixed: function (a, b) { return (a.fixed = b); }, get_length: function (a) { return a.get_length(); }, set_length: function (a, b) { return a.set_length(b); } }, ud = function (a, b, c) { this.__pool = new Jc(); this.inactiveObjects = this.activeObjects = 0; this.__inactiveObject1 = this.__inactiveObject0 = null; this.__inactiveObjectList = new K(); null != a && (this.create = a); null != b && (this.clean = b); null != c && this.set_size(c); }; h['lime.utils.ObjectPool'] = ud; ud.__name__ = 'lime.utils.ObjectPool'; ud.prototype = { activeObjects: null, inactiveObjects: null, __inactiveObject0: null, __inactiveObject1: null, __inactiveObjectList: null, __pool: null, __size: null, add: function (a) { this.__pool.exists(a) || (this.__pool.set(a, !1), this.clean(a), this.__pool.set(a, !1), null == this.__inactiveObject0 ? (this.__inactiveObject0 = a) : null == this.__inactiveObject1 ? (this.__inactiveObject1 = a) : this.__inactiveObjectList.add(a), this.inactiveObjects++); }, clean: function (a) {}, clear: function () { this.__pool = new Jc(); this.inactiveObjects = this.activeObjects = 0; this.__inactiveObject1 = this.__inactiveObject0 = null; this.__inactiveObjectList.clear(); }, create: function () { return null; }, get: function () { var a = null; if (0 < this.inactiveObjects) null != this.__inactiveObject0 ? ((a = this.__inactiveObject0), (this.__inactiveObject0 = null)) : null != this.__inactiveObject1 ? ((a = this.__inactiveObject1), (this.__inactiveObject1 = null)) : ((a = this.__inactiveObjectList.pop()), 0 < this.__inactiveObjectList.length && (this.__inactiveObject0 = this.__inactiveObjectList.pop()), 0 < this.__inactiveObjectList.length && (this.__inactiveObject1 = this.__inactiveObjectList.pop())), this.__pool.set(a, !0), this.inactiveObjects--, this.activeObjects++; else if (null == this.__size || this.activeObjects < this.__size) (a = this.create()), null != a && (this.__pool.set(a, !0), this.activeObjects++); return a; }, release: function (a) { this.__pool.exists(a) ? this.__pool.get(a) || Xa.error('Object has already been released', { fileName: 'lime/utils/ObjectPool.hx', lineNumber: 106, className: 'lime.utils.ObjectPool', methodName: 'release' }) : Xa.error('Object is not a member of the pool', { fileName: 'lime/utils/ObjectPool.hx', lineNumber: 102, className: 'lime.utils.ObjectPool', methodName: 'release' }); this.activeObjects--; null == this.__size || this.activeObjects + this.inactiveObjects < this.__size ? (this.clean(a), this.__pool.set(a, !1), null == this.__inactiveObject0 ? (this.__inactiveObject0 = a) : null == this.__inactiveObject1 ? (this.__inactiveObject1 = a) : this.__inactiveObjectList.add(a), this.inactiveObjects++) : this.__pool.remove(a); }, remove: function (a) { this.__pool.exists(a) && (this.__pool.remove(a), this.__inactiveObject0 == a ? ((this.__inactiveObject0 = null), this.inactiveObjects--) : this.__inactiveObject1 == a ? ((this.__inactiveObject1 = null), this.inactiveObjects--) : this.__inactiveObjectList.remove(a) ? this.inactiveObjects-- : this.activeObjects--); }, __addInactive: function (a) { this.__pool.set(a, !1); null == this.__inactiveObject0 ? (this.__inactiveObject0 = a) : null == this.__inactiveObject1 ? (this.__inactiveObject1 = a) : this.__inactiveObjectList.add(a); this.inactiveObjects++; }, __getInactive: function () { if (null != this.__inactiveObject0) { var a = this.__inactiveObject0; this.__inactiveObject0 = null; } else null != this.__inactiveObject1 ? ((a = this.__inactiveObject1), (this.__inactiveObject1 = null)) : ((a = this.__inactiveObjectList.pop()), 0 < this.__inactiveObjectList.length && (this.__inactiveObject0 = this.__inactiveObjectList.pop()), 0 < this.__inactiveObjectList.length && (this.__inactiveObject1 = this.__inactiveObjectList.pop())); this.__pool.set(a, !0); this.inactiveObjects--; this.activeObjects++; return a; }, __removeInactive: function (a) { if ( !(0 >= a || 0 == this.inactiveObjects) && (null != this.__inactiveObject0 && (this.__pool.remove(this.__inactiveObject0), (this.__inactiveObject0 = null), this.inactiveObjects--, --a), 0 != a && 0 != this.inactiveObjects && (null != this.__inactiveObject1 && (this.__pool.remove(this.__inactiveObject1), (this.__inactiveObject1 = null), this.inactiveObjects--, --a), 0 != a && 0 != this.inactiveObjects)) ) for (var b = this.__inactiveObjectList.h; null != b; ) { var c = b.item; b = b.next; this.__pool.remove(c); this.__inactiveObjectList.remove(c); this.inactiveObjects--; --a; if (0 == a || 0 == this.inactiveObjects) break; } }, get_size: function () { return this.__size; }, set_size: function (a) { if (null == a) this.__size = null; else { var b = this.inactiveObjects + this.activeObjects; this.__size = a; if (b > a) this.__removeInactive(b - a); else if (a > b) for (var c = 0, e = a - b; c < e; ) if ((c++, (b = this.create()), null != b)) this.__pool.set(b, !1), this.__inactiveObjectList.add(b), this.inactiveObjects++; else break; } return a; }, __class__: ud, __properties__: { set_size: 'set_size', get_size: 'get_size' } }; var ed = function () {}; h['haxe.IMap'] = ed; ed.__name__ = 'haxe.IMap'; ed.__isInterface__ = !0; ed.prototype = { get: null, set: null, exists: null, remove: null, keys: null, iterator: null, keyValueIterator: null, __class__: ed }; var Jc = function () { this.h = { __keys__: {} }; }; h['haxe.ds.ObjectMap'] = Jc; Jc.__name__ = 'haxe.ds.ObjectMap'; Jc.__interfaces__ = [ed]; Jc.prototype = { h: null, set: function (a, b) { var c = a.__id__; null == c && (c = a.__id__ = R.$haxeUID++); this.h[c] = b; this.h.__keys__[c] = a; }, get: function (a) { return this.h[a.__id__]; }, exists: function (a) { return null != this.h.__keys__[a.__id__]; }, remove: function (a) { a = a.__id__; if (null == this.h.__keys__[a]) return !1; delete this.h[a]; delete this.h.__keys__[a]; return !0; }, keys: function () { var a = [], b; for (b in this.h.__keys__) this.h.hasOwnProperty(b) && a.push(this.h.__keys__[b]); return new Me(a); }, iterator: function () { return { ref: this.h, it: this.keys(), hasNext: function () { return this.it.hasNext(); }, next: function () { var a = this.it.next(); return this.ref[a.__id__]; } }; }, keyValueIterator: function () { return new ih(this); }, toString: function () { var a = '{'; for (var b = this.keys(); b.hasNext(); ) { var c = b.next(); a += B.string(B.string(c)); a += ' => '; a += B.string(B.string(this.h[c.__id__])); b.hasNext() && (a += ', '); } return a + '}'; }, __class__: Jc }; var K = function () { this.length = 0; }; h['haxe.ds.List'] = K; K.__name__ = 'haxe.ds.List'; K.prototype = { h: null, q: null, length: null, add: function (a) { a = new sk(a, null); null == this.h ? (this.h = a) : (this.q.next = a); this.q = a; this.length++; }, push: function (a) { this.h = a = new sk(a, this.h); null == this.q && (this.q = a); this.length++; }, pop: function () { if (null == this.h) return null; var a = this.h.item; this.h = this.h.next; null == this.h && (this.q = null); this.length--; return a; }, clear: function () { this.q = this.h = null; this.length = 0; }, remove: function (a) { for (var b = null, c = this.h; null != c; ) { if (c.item == a) return ( null == b ? (this.h = c.next) : (b.next = c.next), this.q == c && (this.q = b), this.length--, !0 ); b = c; c = c.next; } return !1; }, iterator: function () { return new xn(this.h); }, __class__: K }; var La = function () { db.call(this); this.__alpha = this.__drawableType = 1; this.__blendMode = 10; this.__cacheAsBitmap = !1; this.__transform = new Ia(); this.__visible = !0; this.__rotationSine = this.__rotation = 0; this.__worldAlpha = this.__scaleY = this.__scaleX = this.__rotationCosine = 1; this.__worldBlendMode = 10; this.__worldTransform = new Ia(); this.__worldColorTransform = new Kc(); this.__renderTransform = new Ia(); this.__worldVisible = !0; this.set_name('instance' + ++La.__instanceCount); null != La.__initStage && ((this.stage = La.__initStage), (La.__initStage = null), this.stage.addChild(this)); }; h['openfl.display.DisplayObject'] = La; La.__name__ = 'openfl.display.DisplayObject'; La.__interfaces__ = [oe]; La.__calculateAbsoluteTransform = function (a, b, c) { c.a = a.a * b.a + a.b * b.c; c.b = a.a * b.b + a.b * b.d; c.c = a.c * b.a + a.d * b.c; c.d = a.c * b.b + a.d * b.d; c.tx = a.tx * b.a + a.ty * b.c + b.tx; c.ty = a.tx * b.b + a.ty * b.d + b.ty; }; La.__super__ = db; La.prototype = r(db.prototype, { opaqueBackground: null, parent: null, stage: null, __alpha: null, __blendMode: null, __cacheAsBitmap: null, __cacheAsBitmapMatrix: null, __cacheBitmap: null, __cacheBitmapBackground: null, __cacheBitmapColorTransform: null, __cacheBitmapData: null, __cacheBitmapData2: null, __cacheBitmapData3: null, __cacheBitmapMatrix: null, __cacheBitmapRenderer: null, __cairo: null, __children: null, __customRenderClear: null, __customRenderEvent: null, __drawableType: null, __filters: null, __graphics: null, __interactive: null, __isCacheBitmapRender: null, __isMask: null, __loaderInfo: null, __mask: null, __maskTarget: null, __name: null, __objectTransform: null, __renderable: null, __renderDirty: null, __renderParent: null, __renderTransform: null, __renderTransformCache: null, __renderTransformChanged: null, __rotation: null, __rotationCosine: null, __rotationSine: null, __scale9Grid: null, __scaleX: null, __scaleY: null, __scrollRect: null, __shader: null, __tempPoint: null, __transform: null, __transformDirty: null, __visible: null, __worldAlpha: null, __worldAlphaChanged: null, __worldBlendMode: null, __worldClip: null, __worldClipChanged: null, __worldColorTransform: null, __worldShader: null, __worldScale9Grid: null, __worldTransform: null, __worldVisible: null, __worldVisibleChanged: null, __worldTransformInvalid: null, __worldZ: null, __canvas: null, __context: null, __style: null, addEventListener: function (a, b, c, e, f) { null == f && (f = !1); null == e && (e = 0); null == c && (c = !1); switch (a) { case 'activate': case 'deactivate': case 'enterFrame': case 'exitFrame': case 'frameConstructed': case 'render': Object.prototype.hasOwnProperty.call(La.__broadcastEvents.h, a) || (La.__broadcastEvents.h[a] = []); var g = La.__broadcastEvents.h[a]; -1 == g.indexOf(this) && g.push(this); break; case 'clearDOM': case 'renderCairo': case 'renderCanvas': case 'renderDOM': case 'renderOpenGL': null == this.__customRenderEvent && ((this.__customRenderEvent = new ug(null)), (this.__customRenderEvent.objectColorTransform = new Kc()), (this.__customRenderEvent.objectMatrix = new Ia()), (this.__customRenderClear = !0)); } db.prototype.addEventListener.call(this, a, b, c, e, f); }, dispatchEvent: function (a) { if (a instanceof Lb) { var b = this.__getRenderTransform(); a.stageX = a.localX * b.a + a.localY * b.c + b.tx; b = this.__getRenderTransform(); a.stageY = a.localX * b.b + a.localY * b.d + b.ty; } else a instanceof Vd && ((b = this.__getRenderTransform()), (a.stageX = a.localX * b.a + a.localY * b.c + b.tx), (b = this.__getRenderTransform()), (a.stageY = a.localX * b.b + a.localY * b.d + b.ty)); a.target = this; return this.__dispatchWithCapture(a); }, getBounds: function (a) { var b = Ia.__pool.get(); if (null != a && a != this) { b.copyFrom(this.__getWorldTransform()); var c = Ia.__pool.get(); c.copyFrom(a.__getWorldTransform()); c.invert(); b.concat(c); Ia.__pool.release(c); } else b.identity(); a = new fa(); this.__getBounds(a, b); Ia.__pool.release(b); return a; }, getRect: function (a) { return this.getBounds(a); }, globalToLocal: function (a) { return this.__globalToLocal(a, new na()); }, hitTestObject: function (a) { if (null != a && null != a.parent && null != this.parent) { var b = this.getBounds(this); a = a.getBounds(this); return b.intersects(a); } return !1; }, hitTestPoint: function (a, b, c) { null == c && (c = !1); return null != this.stage ? this.__hitTest(a, b, c, null, !1, this) : !1; }, invalidate: function () { this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); }, localToGlobal: function (a) { return this.__getRenderTransform().transformPoint(a); }, removeEventListener: function (a, b, c) { null == c && (c = !1); db.prototype.removeEventListener.call(this, a, b, c); switch (a) { case 'activate': case 'deactivate': case 'enterFrame': case 'exitFrame': case 'frameConstructed': case 'render': this.hasEventListener(a) || (Object.prototype.hasOwnProperty.call(La.__broadcastEvents.h, a) && A.remove(La.__broadcastEvents.h[a], this)); break; case 'clearDOM': case 'renderCairo': case 'renderCanvas': case 'renderDOM': case 'renderOpenGL': this.hasEventListener('clearDOM') || this.hasEventListener('renderCairo') || this.hasEventListener('renderCanvas') || this.hasEventListener('renderDOM') || this.hasEventListener('renderOpenGL') || (this.__customRenderEvent = null); } }, __cleanup: function () { this.__context = this.__canvas = this.__cairo = null; null != this.__graphics && this.__graphics.__cleanup(); null != this.__cacheBitmap && (this.__cacheBitmap.__cleanup(), (this.__cacheBitmap = null)); null != this.__cacheBitmapData && (this.__cacheBitmapData.dispose(), (this.__cacheBitmapData = null)); }, __dispatch: function (a) { if (null != this.__eventMap && this.hasEventListener(a.type)) { var b = db.prototype.__dispatchEvent.call(this, a); return a.__isCanceled ? !0 : b; } return !0; }, __dispatchChildren: function (a) {}, __dispatchEvent: function (a) { var b = a.bubbles ? this.parent : null, c = db.prototype.__dispatchEvent.call(this, a); if (a.__isCanceled) return !0; null != b && b != this && ((a.eventPhase = 3), null == a.target && (a.target = this), b.__dispatchEvent(a)); return c; }, __dispatchWithCapture: function (a) { null == a.target && (a.target = this); if (null != this.parent) if (((a.eventPhase = 1), this.parent == this.stage)) this.parent.__dispatch(a); else { for (var b = La.__tempStack.get(), c = this.parent, e = 0; null != c; ) b.set(e, c), (c = c.parent), ++e; c = 0; for (var f = e; c < f; ) { var g = c++; b.get(e - g - 1).__dispatch(a); } La.__tempStack.release(b); } a.eventPhase = 2; return this.__dispatchEvent(a); }, __enterFrame: function (a) {}, __getBounds: function (a, b) { null != this.__graphics && this.__graphics.__getBounds(a, b); }, __getCursor: function () { return null; }, __getFilterBounds: function (a, b) { this.__getRenderBounds(a, b); if (null != this.__filters) { b = fa.__pool.get(); for (var c = 0, e = this.__filters; c < e.length; ) { var f = e[c]; ++c; b.__expand( -f.__leftExtension, -f.__topExtension, f.__leftExtension + f.__rightExtension, f.__topExtension + f.__bottomExtension ); } a.width += b.width; a.height += b.height; a.x += b.x; a.y += b.y; fa.__pool.release(b); } }, __getInteractive: function (a) { return !1; }, __getLocalBounds: function (a) { this.__getBounds(a, this.__transform); a.x -= this.__transform.tx; a.y -= this.__transform.ty; }, __getRenderBounds: function (a, b) { if (null == this.__scrollRect) this.__getBounds(a, b); else { var c = fa.__pool.get(); c.copyFrom(this.__scrollRect); c.__transform(c, b); a.__expand(c.x, c.y, c.width, c.height); fa.__pool.release(c); } }, __getRenderTransform: function () { this.__getWorldTransform(); return this.__renderTransform; }, __getWorldTransform: function () { if (this.__transformDirty || this.__worldTransformInvalid) { var a = [], b = this; if (null == this.parent) this.__update(!0, !1); else for (; b != this.stage && (a.push(b), (b = b.parent), null != b); ); for (var c = a.length; 0 <= --c; ) (b = a[c]), b.__update(!0, !1); } return this.__worldTransform; }, __globalToLocal: function (a, b) { this.__getRenderTransform(); if (a == b) { var c = this.__renderTransform, e = c.a * c.d - c.b * c.c; if (0 == e) (a.x = -c.tx), (a.y = -c.ty); else { var f = (1 / e) * (c.c * (c.ty - a.y) + c.d * (a.x - c.tx)); a.y = (1 / e) * (c.a * (a.y - c.ty) + c.b * (c.tx - a.x)); a.x = f; } } else (c = this.__renderTransform), (e = c.a * c.d - c.b * c.c), (b.x = 0 == e ? -c.tx : (1 / e) * (c.c * (c.ty - a.y) + c.d * (a.x - c.tx))), (c = this.__renderTransform), (e = c.a * c.d - c.b * c.c), (b.y = 0 == e ? -c.ty : (1 / e) * (c.a * (a.y - c.ty) + c.b * (c.tx - a.x))); return b; }, __hitTest: function (a, b, c, e, f, g) { if (null != this.__graphics) { if ( !g.__visible || this.__isMask || (null != this.get_mask() && !this.get_mask().__hitTestMask(a, b)) ) return !1; if (this.__graphics.__hitTest(a, b, c, this.__getRenderTransform())) return null == e || f || e.push(g), !0; } return !1; }, __hitTestMask: function (a, b) { return null != this.__graphics && this.__graphics.__hitTest(a, b, !0, this.__getRenderTransform()) ? !0 : !1; }, __readGraphicsData: function (a, b) { null != this.__graphics && this.__graphics.__readGraphicsData(a); }, __setParentRenderDirty: function () { var a = null != this.__renderParent ? this.__renderParent : this.parent; null == a || a.__renderDirty || ((a.__renderDirty = !0), a.__setParentRenderDirty()); }, __setRenderDirty: function () { this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); }, __setStageReference: function (a) { this.stage = a; }, __setTransformDirty: function () { this.__transformDirty || ((this.__transformDirty = !0), this.__setWorldTransformInvalid(), this.__setParentRenderDirty()); }, __setWorldTransformInvalid: function () { this.__worldTransformInvalid = !0; }, __stopAllMovieClips: function () {}, __update: function (a, b) { var c = null != this.__renderParent ? this.__renderParent : this.parent; this.__isMask && null == c && (c = this.__maskTarget); this.__renderable = this.__visible && 0 != this.__scaleX && 0 != this.__scaleY && !this.__isMask && (null == c || !c.__isMask); this.__updateTransforms(); this.__worldTransformInvalid = this.__transformDirty = !1; if (!a) if ( (La.__supportDOM && ((this.__renderTransformChanged = !this.__renderTransform.equals( this.__renderTransformCache )), null == this.__renderTransformCache ? (this.__renderTransformCache = this.__renderTransform.clone()) : this.__renderTransformCache.copyFrom(this.__renderTransform)), null != c) ) { if (La.__supportDOM) { var e = c.__worldVisible && this.__visible; this.__worldVisibleChanged = this.__worldVisible != e; this.__worldVisible = e; e = this.get_alpha() * c.__worldAlpha; this.__worldAlphaChanged = this.__worldAlpha != e; this.__worldAlpha = e; } else this.__worldAlpha = this.get_alpha() * c.__worldAlpha; null != this.__objectTransform ? (this.__worldColorTransform.__copyFrom( this.__objectTransform.get_colorTransform() ), this.__worldColorTransform.__combine(c.__worldColorTransform)) : this.__worldColorTransform.__copyFrom(c.__worldColorTransform); this.__worldBlendMode = null == this.__blendMode || 10 == this.__blendMode ? c.__worldBlendMode : this.__blendMode; this.__worldShader = null == this.__shader ? c.__shader : this.__shader; this.__worldScale9Grid = null == this.__scale9Grid ? c.__scale9Grid : this.__scale9Grid; } else (this.__worldAlpha = this.get_alpha()), La.__supportDOM && ((this.__worldVisibleChanged = this.__worldVisible != this.__visible), (this.__worldVisible = this.__visible), (this.__worldAlphaChanged = this.__worldAlpha != this.get_alpha())), null != this.__objectTransform ? this.__worldColorTransform.__copyFrom( this.__objectTransform.get_colorTransform() ) : this.__worldColorTransform.__identity(), (this.__worldBlendMode = this.__blendMode), (this.__worldShader = this.__shader), (this.__worldScale9Grid = this.__scale9Grid); b && null != this.get_mask() && this.get_mask().__update(a, !0); }, __updateTransforms: function (a) { var b = null != a; a = b ? a : this.__transform; null == this.__worldTransform && (this.__worldTransform = new Ia()); null == this.__renderTransform && (this.__renderTransform = new Ia()); var c = null != this.__renderParent ? this.__renderParent : this.parent; if (b || null == this.parent) this.__worldTransform.copyFrom(a); else { var e = this.parent.__worldTransform, f = this.__worldTransform; f.a = a.a * e.a + a.b * e.c; f.b = a.a * e.b + a.b * e.d; f.c = a.c * e.a + a.d * e.c; f.d = a.c * e.b + a.d * e.d; f.tx = a.tx * e.a + a.ty * e.c + e.tx; f.ty = a.tx * e.b + a.ty * e.d + e.ty; } b || null == c ? this.__renderTransform.copyFrom(a) : ((e = c.__renderTransform), (f = this.__renderTransform), (f.a = a.a * e.a + a.b * e.c), (f.b = a.a * e.b + a.b * e.d), (f.c = a.c * e.a + a.d * e.c), (f.d = a.c * e.b + a.d * e.d), (f.tx = a.tx * e.a + a.ty * e.c + e.tx), (f.ty = a.tx * e.b + a.ty * e.d + e.ty)); null != this.__scrollRect && ((b = this.__renderTransform), (a = -this.__scrollRect.x), (c = -this.__scrollRect.y), (b.tx = a * b.a + c * b.c + b.tx), (b.ty = a * b.b + c * b.d + b.ty)); }, get_alpha: function () { return this.__alpha; }, set_alpha: function (a) { 1 < a && (a = 1); 0 > a && (a = 0); a == this.__alpha || this.get_cacheAsBitmap() || this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); return (this.__alpha = a); }, get_blendMode: function () { return this.__blendMode; }, set_blendMode: function (a) { null == a && (a = 10); a == this.__blendMode || this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); return (this.__blendMode = a); }, get_cacheAsBitmap: function () { return null == this.__filters ? this.__cacheAsBitmap : !0; }, set_cacheAsBitmap: function (a) { a == this.__cacheAsBitmap || this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); return (this.__cacheAsBitmap = a); }, get_cacheAsBitmapMatrix: function () { return this.__cacheAsBitmapMatrix; }, set_cacheAsBitmapMatrix: function (a) { this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); return (this.__cacheAsBitmapMatrix = null != a ? a.clone() : a); }, get_filters: function () { return null == this.__filters ? [] : this.__filters.slice(); }, set_filters: function (a) { null != a && 0 < a.length ? ((this.__filters = a), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())) : null != this.__filters && ((this.__filters = null), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); return a; }, get_height: function () { var a = fa.__pool.get(); this.__getLocalBounds(a); var b = a.height; fa.__pool.release(a); return b; }, set_height: function (a) { var b = fa.__pool.get(), c = Ia.__pool.get(); c.identity(); this.__getBounds(b, c); a != b.height ? this.set_scaleY(a / b.height) : this.set_scaleY(1); fa.__pool.release(b); Ia.__pool.release(c); return a; }, get_loaderInfo: function () { return null != this.stage ? Dc.current.__loaderInfo : null; }, get_mask: function () { return this.__mask; }, set_mask: function (a) { if (a == this.__mask) return a; a != this.__mask && (this.__setTransformDirty(), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); if (null != this.__mask) { this.__mask.__isMask = !1; this.__mask.__maskTarget = null; this.__mask.__setTransformDirty(); var b = this.__mask; b.__renderDirty || ((b.__renderDirty = !0), b.__setParentRenderDirty()); } null != a && ((a.__isMask = !0), (a.__maskTarget = this), a.__setWorldTransformInvalid()); null != this.__cacheBitmap && this.__cacheBitmap.get_mask() != a && this.__cacheBitmap.set_mask(a); return (this.__mask = a); }, get_mouseX: function () { var a = null != this.stage ? this.stage.__mouseX : Dc.current.stage.__mouseX, b = null != this.stage ? this.stage.__mouseY : Dc.current.stage.__mouseY, c = this.__getRenderTransform(), e = c.a * c.d - c.b * c.c; return 0 == e ? -c.tx : (1 / e) * (c.c * (c.ty - b) + c.d * (a - c.tx)); }, get_mouseY: function () { var a = null != this.stage ? this.stage.__mouseX : Dc.current.stage.__mouseX, b = null != this.stage ? this.stage.__mouseY : Dc.current.stage.__mouseY, c = this.__getRenderTransform(), e = c.a * c.d - c.b * c.c; return 0 == e ? -c.ty : (1 / e) * (c.a * (b - c.ty) + c.b * (c.tx - a)); }, get_name: function () { return this.__name; }, set_name: function (a) { return (this.__name = a); }, get_root: function () { return null != this.stage ? Dc.current : null; }, get_rotation: function () { return this.__rotation; }, set_rotation: function (a) { if (a != this.__rotation) { this.__rotation = a; var b = (Math.PI / 180) * this.__rotation; this.__rotationSine = Math.sin(b); this.__rotationCosine = Math.cos(b); this.__transform.a = this.__rotationCosine * this.__scaleX; this.__transform.b = this.__rotationSine * this.__scaleX; this.__transform.c = -this.__rotationSine * this.__scaleY; this.__transform.d = this.__rotationCosine * this.__scaleY; this.__setTransformDirty(); } return a; }, get_scale9Grid: function () { return null == this.__scale9Grid ? null : this.__scale9Grid.clone(); }, set_scale9Grid: function (a) { if ( (null == a && null == this.__scale9Grid) || (null != a && null != this.__scale9Grid && this.__scale9Grid.equals(a)) ) return a; null != a ? (null == this.__scale9Grid && (this.__scale9Grid = new fa()), this.__scale9Grid.copyFrom(a)) : (this.__scale9Grid = null); this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); return a; }, get_scaleX: function () { return this.__scaleX; }, set_scaleX: function (a) { if (a != this.__scaleX) if (((this.__scaleX = a), 0 == this.__transform.b)) a != this.__transform.a && this.__setTransformDirty(), (this.__transform.a = a); else { var b = this.__rotationCosine * a, c = this.__rotationSine * a; (this.__transform.a == b && this.__transform.b == c) || this.__setTransformDirty(); this.__transform.a = b; this.__transform.b = c; } return a; }, get_scaleY: function () { return this.__scaleY; }, set_scaleY: function (a) { if (a != this.__scaleY) if (((this.__scaleY = a), 0 == this.__transform.c)) a != this.__transform.d && this.__setTransformDirty(), (this.__transform.d = a); else { var b = -this.__rotationSine * a, c = this.__rotationCosine * a; (this.__transform.d == c && this.__transform.c == b) || this.__setTransformDirty(); this.__transform.c = b; this.__transform.d = c; } return a; }, get_scrollRect: function () { return null == this.__scrollRect ? null : this.__scrollRect.clone(); }, set_scrollRect: function (a) { if ( (null == a && null == this.__scrollRect) || (null != a && null != this.__scrollRect && this.__scrollRect.equals(a)) ) return a; null != a ? (null == this.__scrollRect && (this.__scrollRect = new fa()), this.__scrollRect.copyFrom(a)) : (this.__scrollRect = null); this.__setTransformDirty(); La.__supportDOM && !this.__renderDirty && ((this.__renderDirty = !0), this.__setParentRenderDirty()); return a; }, get_shader: function () { return this.__shader; }, set_shader: function (a) { this.__shader = a; this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); return a; }, get_transform: function () { null == this.__objectTransform && (this.__objectTransform = new tk(this)); return this.__objectTransform; }, set_transform: function (a) { if (null == a) throw M.thrown(new oj('Parameter transform must be non-null.')); null == this.__objectTransform && (this.__objectTransform = new tk(this)); this.__setTransformDirty(); this.__objectTransform.set_matrix(a.get_matrix()); if ( !this.__objectTransform.get_colorTransform().__equals(a.get_colorTransform(), !0) || (!this.get_cacheAsBitmap() && this.__objectTransform.get_colorTransform().alphaMultiplier != a.get_colorTransform().alphaMultiplier) ) this.__objectTransform.get_colorTransform().__copyFrom(a.get_colorTransform()), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); return this.__objectTransform; }, get_visible: function () { return this.__visible; }, set_visible: function (a) { a == this.__visible || this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); return (this.__visible = a); }, get_width: function () { var a = fa.__pool.get(); this.__getLocalBounds(a); var b = a.width; fa.__pool.release(a); return b; }, set_width: function (a) { var b = fa.__pool.get(), c = Ia.__pool.get(); c.identity(); this.__getBounds(b, c); a != b.width ? this.set_scaleX(a / b.width) : this.set_scaleX(1); fa.__pool.release(b); Ia.__pool.release(c); return a; }, get_x: function () { return this.__transform.tx; }, set_x: function (a) { a != this.__transform.tx && this.__setTransformDirty(); return (this.__transform.tx = a); }, get_y: function () { return this.__transform.ty; }, set_y: function (a) { a != this.__transform.ty && this.__setTransformDirty(); return (this.__transform.ty = a); }, __class__: La, __properties__: { set_y: 'set_y', get_y: 'get_y', set_x: 'set_x', get_x: 'get_x', set_width: 'set_width', get_width: 'get_width', set_visible: 'set_visible', get_visible: 'get_visible', set_transform: 'set_transform', get_transform: 'get_transform', set_shader: 'set_shader', get_shader: 'get_shader', set_scrollRect: 'set_scrollRect', get_scrollRect: 'get_scrollRect', set_scaleY: 'set_scaleY', get_scaleY: 'get_scaleY', set_scaleX: 'set_scaleX', get_scaleX: 'get_scaleX', set_scale9Grid: 'set_scale9Grid', get_scale9Grid: 'get_scale9Grid', set_rotation: 'set_rotation', get_rotation: 'get_rotation', get_root: 'get_root', set_name: 'set_name', get_name: 'get_name', get_mouseY: 'get_mouseY', get_mouseX: 'get_mouseX', set_mask: 'set_mask', get_mask: 'get_mask', get_loaderInfo: 'get_loaderInfo', set_height: 'set_height', get_height: 'get_height', set_filters: 'set_filters', get_filters: 'get_filters', set_cacheAsBitmapMatrix: 'set_cacheAsBitmapMatrix', get_cacheAsBitmapMatrix: 'get_cacheAsBitmapMatrix', set_cacheAsBitmap: 'set_cacheAsBitmap', get_cacheAsBitmap: 'get_cacheAsBitmap', set_blendMode: 'set_blendMode', get_blendMode: 'get_blendMode', set_alpha: 'set_alpha', get_alpha: 'get_alpha' } }); var lb = function () { La.call(this); this.doubleClickEnabled = !1; this.mouseEnabled = !0; this.needsSoftKeyboard = !1; this.__tabEnabled = null; this.__tabIndex = -1; }; h['openfl.display.InteractiveObject'] = lb; lb.__name__ = 'openfl.display.InteractiveObject'; lb.__super__ = La; lb.prototype = r(La.prototype, { doubleClickEnabled: null, focusRect: null, mouseEnabled: null, needsSoftKeyboard: null, softKeyboardInputAreaOfInterest: null, __tabEnabled: null, __tabIndex: null, requestSoftKeyboard: function () { Dc.notImplemented({ fileName: 'openfl/display/InteractiveObject.hx', lineNumber: 1251, className: 'openfl.display.InteractiveObject', methodName: 'requestSoftKeyboard' }); return !1; }, __allowMouseFocus: function () { return this.get_tabEnabled(); }, __getInteractive: function (a) { null != a && (a.push(this), null != this.parent && this.parent.__getInteractive(a)); return !0; }, __hitTest: function (a, b, c, e, f, g) { return !g.get_visible() || this.__isMask || (f && !this.mouseEnabled) ? !1 : La.prototype.__hitTest.call(this, a, b, c, e, f, g); }, __tabTest: function (a) { this.get_tabEnabled() && a.push(this); }, get_tabEnabled: function () { return 1 == this.__tabEnabled ? !0 : !1; }, set_tabEnabled: function (a) { this.__tabEnabled != a && ((this.__tabEnabled = a), this.dispatchEvent(new oa('tabEnabledChange', !0, !1))); return this.__tabEnabled; }, get_tabIndex: function () { return this.__tabIndex; }, set_tabIndex: function (a) { if (this.__tabIndex != a) { if (-1 > a) throw M.thrown(new Ih('Parameter tabIndex must be a non-negative number; got ' + a)); this.__tabIndex = a; this.dispatchEvent(new oa('tabIndexChange', !0, !1)); } return this.__tabIndex; }, __class__: lb, __properties__: r(La.prototype.__properties__, { set_tabIndex: 'set_tabIndex', get_tabIndex: 'get_tabIndex', set_tabEnabled: 'set_tabEnabled', get_tabEnabled: 'get_tabEnabled' }) }); var Ya = function () { lb.call(this); this.__tabChildren = this.mouseChildren = !0; this.__children = []; this.__removedChildren = yb.toObjectVector(null); }; h['openfl.display.DisplayObjectContainer'] = Ya; Ya.__name__ = 'openfl.display.DisplayObjectContainer'; Ya.__super__ = lb; Ya.prototype = r(lb.prototype, { mouseChildren: null, __removedChildren: null, __tabChildren: null, addChild: function (a) { return this.addChildAt(a, this.get_numChildren()); }, addChildAt: function (a, b) { if (null == a) throw ( ((a = new oj('Error #2007: Parameter child must be non-null.')), (a.errorID = 2007), M.thrown(a)) ); if (a.stage == a) throw ( ((a = new qi( 'Error #3783: A Stage object cannot be added as the child of another object.' )), (a.errorID = 3783), M.thrown(a)) ); if (b > this.__children.length || 0 > b) throw M.thrown('Invalid index position ' + b); if (a.parent == this) this.__children[b] != a && (A.remove(this.__children, a), this.__children.splice(b, 0, a), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); else { null != a.parent && a.parent.removeChild(a); this.__children.splice(b, 0, a); a.parent = this; (b = null != this.stage && null == a.stage) && a.__setStageReference(this.stage); a.__setTransformDirty(); a.__renderDirty || ((a.__renderDirty = !0), a.__setParentRenderDirty()); this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); var c = new oa('added'); c.bubbles = !0; c.target = a; a.__dispatchWithCapture(c); b && ((c = new oa('addedToStage', !1, !1)), a.__dispatchWithCapture(c), a.__dispatchChildren(c)); } return a; }, areInaccessibleObjectsUnderPoint: function (a) { return !1; }, contains: function (a) { for (; a != this && null != a; ) a = a.parent; return a == this; }, getChildAt: function (a) { return 0 <= a && a < this.__children.length ? this.__children[a] : null; }, getChildByName: function (a) { for (var b = 0, c = this.__children; b < c.length; ) { var e = c[b]; ++b; if (e.get_name() == a) return e; } return null; }, getChildIndex: function (a) { for (var b = 0, c = this.__children.length; b < c; ) { var e = b++; if (this.__children[e] == a) return e; } return -1; }, getObjectsUnderPoint: function (a) { var b = []; this.__hitTest(a.x, a.y, !1, b, !1, this); b.reverse(); return b; }, removeChild: function (a) { if (null != a && a.parent == this) { a.__setTransformDirty(); a.__renderDirty || ((a.__renderDirty = !0), a.__setParentRenderDirty()); this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); var b = new oa('removed', !0); a.__dispatchWithCapture(b); null != this.stage && (null != a.stage && this.stage.get_focus() == a && this.stage.set_focus(null), (b = new oa('removedFromStage', !1, !1)), a.__dispatchWithCapture(b), a.__dispatchChildren(b), a.__setStageReference(null)); a.parent = null; A.remove(this.__children, a); this.__removedChildren.push(a); a.__setTransformDirty(); } return a; }, removeChildAt: function (a) { return 0 <= a && a < this.__children.length ? this.removeChild(this.__children[a]) : null; }, removeChildren: function (a, b) { null == b && (b = 2147483647); null == a && (a = 0); if (2147483647 == b && ((b = this.__children.length - 1), 0 > b)) return; if (!(a > this.__children.length - 1)) { if (b < a || 0 > a || b > this.__children.length) throw M.thrown(new Ih('The supplied index is out of bounds.')); for (b -= a; 0 <= b; ) this.removeChildAt(a), --b; } }, resolve: function (a) { if (null == this.__children) return null; for (var b = 0, c = this.__children; b < c.length; ) { var e = c[b]; ++b; if (e.get_name() == a) return e; } return null; }, setChildIndex: function (a, b) { 0 <= b && b <= this.__children.length && a.parent == this && (A.remove(this.__children, a), this.__children.splice(b, 0, a)); }, stopAllMovieClips: function () { this.__stopAllMovieClips(); }, swapChildren: function (a, b) { if (a.parent == this && b.parent == this) { var c = this.__children.indexOf(a), e = this.__children.indexOf(b); this.__children[c] = b; this.__children[e] = a; this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); } }, swapChildrenAt: function (a, b) { var c = this.__children[a]; this.__children[a] = this.__children[b]; this.__children[b] = c; this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); }, __cleanup: function () { lb.prototype.__cleanup.call(this); for (var a = 0, b = this.__children; a < b.length; ) { var c = b[a]; ++a; c.__cleanup(); } for (a = this.__removedChildren.iterator(); a.hasNext(); ) (b = a.next()), null == b.stage && b.__cleanup(); this.__removedChildren.set_length(0); }, __cleanupRemovedChildren: function () { for (var a = this.__removedChildren.iterator(); a.hasNext(); ) { var b = a.next(); null == b.stage && b.__cleanup(); } this.__removedChildren.set_length(0); }, __dispatchChildren: function (a) { if (null != this.__children) for (var b = 0, c = this.__children; b < c.length; ) { var e = c[b]; ++b; a.target = e; if (!e.__dispatchWithCapture(a)) break; e.__dispatchChildren(a); } }, __enterFrame: function (a) { for (var b = 0, c = this.__children; b < c.length; ) { var e = c[b]; ++b; e.__enterFrame(a); } }, __getBounds: function (a, b) { lb.prototype.__getBounds.call(this, a, b); if (0 != this.__children.length) { for (var c = Ia.__pool.get(), e = 0, f = this.__children; e < f.length; ) { var g = f[e]; ++e; if (0 != g.__scaleX && 0 != g.__scaleY) { var d = g.__transform; c.a = d.a * b.a + d.b * b.c; c.b = d.a * b.b + d.b * b.d; c.c = d.c * b.a + d.d * b.c; c.d = d.c * b.b + d.d * b.d; c.tx = d.tx * b.a + d.ty * b.c + b.tx; c.ty = d.tx * b.b + d.ty * b.d + b.ty; g.__getBounds(a, c); } } Ia.__pool.release(c); } }, __getFilterBounds: function (a, b) { lb.prototype.__getFilterBounds.call(this, a, b); if (null == this.__scrollRect && 0 != this.__children.length) { for (var c = Ia.__pool.get(), e = 0, f = this.__children; e < f.length; ) { var g = f[e]; ++e; if (0 != g.__scaleX && 0 != g.__scaleY && !g.__isMask) { var d = g.__transform; c.a = d.a * b.a + d.b * b.c; c.b = d.a * b.b + d.b * b.d; c.c = d.c * b.a + d.d * b.c; c.d = d.c * b.b + d.d * b.d; c.tx = d.tx * b.a + d.ty * b.c + b.tx; c.ty = d.tx * b.b + d.ty * b.d + b.ty; d = fa.__pool.get(); g.__getFilterBounds(d, c); a.__expand(d.x, d.y, d.width, d.height); fa.__pool.release(d); } } Ia.__pool.release(c); } }, __getRenderBounds: function (a, b) { if (null != this.__scrollRect) lb.prototype.__getRenderBounds.call(this, a, b); else if ((lb.prototype.__getBounds.call(this, a, b), 0 != this.__children.length)) { for (var c = Ia.__pool.get(), e = 0, f = this.__children; e < f.length; ) { var g = f[e]; ++e; if (0 != g.__scaleX && 0 != g.__scaleY && !g.__isMask) { var d = g.__transform; c.a = d.a * b.a + d.b * b.c; c.b = d.a * b.b + d.b * b.d; c.c = d.c * b.a + d.d * b.c; c.d = d.c * b.b + d.d * b.d; c.tx = d.tx * b.a + d.ty * b.c + b.tx; c.ty = d.tx * b.b + d.ty * b.d + b.ty; g.__getRenderBounds(a, c); } } Ia.__pool.release(c); } }, __hitTest: function (a, b, c, e, f, g) { if ( !g.get_visible() || this.__isMask || (f && !this.mouseEnabled && !this.mouseChildren) || (null != this.get_mask() && !this.get_mask().__hitTestMask(a, b)) ) return !1; if (null != this.__scrollRect) { var d = na.__pool.get(); d.setTo(a, b); var l = this.__getRenderTransform(), v = l.a * l.d - l.b * l.c; if (0 == v) (d.x = -l.tx), (d.y = -l.ty); else { var n = (1 / v) * (l.c * (l.ty - d.y) + l.d * (d.x - l.tx)); d.y = (1 / v) * (l.a * (d.y - l.ty) + l.b * (l.tx - d.x)); d.x = n; } if (!this.__scrollRect.containsPoint(d)) return na.__pool.release(d), !1; na.__pool.release(d); } d = this.__children.length; if (f) if (null == e || !this.mouseChildren) for (; 0 <= --d; ) { if (this.__children[d].__hitTest(a, b, c, null, !0, this.__children[d])) return null != e && e.push(g), !0; } else { if (null != e) { f = e.length; for ( v = !1; 0 <= --d && !( ((l = this.__children[d].__getInteractive(null)) || (this.mouseEnabled && !v)) && this.__children[d].__hitTest(a, b, c, e, !0, this.__children[d]) && ((v = !0), l && e.length > f) ); ); if (v) return e.splice(f, 0, g), !0; } } else { for ( v = !1; 0 <= --d && (!this.__children[d].__hitTest(a, b, c, e, !1, this.__children[d]) || ((v = !0), null != e)); ); return v; } return !1; }, __hitTestMask: function (a, b) { for (var c = this.__children.length; 0 <= --c; ) if (this.__children[c].__hitTestMask(a, b)) return !0; return !1; }, __readGraphicsData: function (a, b) { lb.prototype.__readGraphicsData.call(this, a, b); if (b) for (var c = 0, e = this.__children; c < e.length; ) { var f = e[c]; ++c; f.__readGraphicsData(a, b); } }, __setStageReference: function (a) { lb.prototype.__setStageReference.call(this, a); if (null != this.__children) for (var b = 0, c = this.__children; b < c.length; ) { var e = c[b]; ++b; e.__setStageReference(a); } }, __setWorldTransformInvalid: function () { if ( !this.__worldTransformInvalid && ((this.__worldTransformInvalid = !0), null != this.__children) ) for (var a = 0, b = this.__children; a < b.length; ) { var c = b[a]; ++a; c.__setWorldTransformInvalid(); } }, __stopAllMovieClips: function () { for (var a = 0, b = this.__children; a < b.length; ) { var c = b[a]; ++a; c.__stopAllMovieClips(); } }, __tabTest: function (a) { lb.prototype.__tabTest.call(this, a); if (this.get_tabChildren()) for (var b, c = 0, e = this.__children; c < e.length; ) { var f = e[c]; ++c; if ((b = f.__getInteractive(null))) (b = f), b.__tabTest(a); } }, __update: function (a, b) { lb.prototype.__update.call(this, a, b); if (b) { b = 0; for (var c = this.__children; b < c.length; ) { var e = c[b]; ++b; e.__update(a, !0); } } }, get_numChildren: function () { return this.__children.length; }, get_tabChildren: function () { return this.__tabChildren; }, set_tabChildren: function (a) { this.__tabChildren != a && ((this.__tabChildren = a), this.dispatchEvent(new oa('tabChildrenChange', !0, !1))); return this.__tabChildren; }, __class__: Ya, __properties__: r(lb.prototype.__properties__, { set_tabChildren: 'set_tabChildren', get_tabChildren: 'get_tabChildren', get_numChildren: 'get_numChildren' }) }); var Ca = function () { Ya.call(this); this.__drawableType = 4; this.__buttonMode = !1; this.useHandCursor = !0; }; h['openfl.display.Sprite'] = Ca; Ca.__name__ = 'openfl.display.Sprite'; Ca.__super__ = Ya; Ca.prototype = r(Ya.prototype, { dropTarget: null, hitArea: null, useHandCursor: null, __buttonMode: null, startDrag: function (a, b) { null == a && (a = !1); null != this.stage && this.stage.__startDrag(this, a, b); }, stopDrag: function () { null != this.stage && this.stage.__stopDrag(this); }, __getCursor: function () { return this.__buttonMode && this.useHandCursor ? 'button' : null; }, __hitTest: function (a, b, c, e, f, g) { if (f && !this.mouseEnabled && !this.mouseChildren) return !1; if ( !g.get_visible() || this.__isMask || (null != this.get_mask() && !this.get_mask().__hitTestMask(a, b)) ) return this.__hitTestHitArea(a, b, c, e, f, g); if (null != this.__scrollRect) { var d = na.__pool.get(); d.setTo(a, b); var l = this.__getRenderTransform(), v = l.a * l.d - l.b * l.c; if (0 == v) (d.x = -l.tx), (d.y = -l.ty); else { var n = (1 / v) * (l.c * (l.ty - d.y) + l.d * (d.x - l.tx)); d.y = (1 / v) * (l.a * (d.y - l.ty) + l.b * (l.tx - d.x)); d.x = n; } if (!this.__scrollRect.containsPoint(d)) return na.__pool.release(d), this.__hitTestHitArea(a, b, c, e, !0, g); na.__pool.release(d); } return Ya.prototype.__hitTest.call(this, a, b, c, e, f, g) ? null != e ? f : !0 : null == this.hitArea && null != this.__graphics && this.__graphics.__hitTest(a, b, c, this.__getRenderTransform()) ? (null == e || (f && !this.mouseEnabled) || e.push(g), !0) : this.__hitTestHitArea(a, b, c, e, f, g); }, __hitTestHitArea: function (a, b, c, e, f, g) { return null == this.hitArea || this.hitArea.mouseEnabled ? !1 : ((this.hitArea.mouseEnabled = !0), (a = this.hitArea.__hitTest(a, b, c, null, !0, g)), (this.hitArea.mouseEnabled = !1), null != e && a && (e[e.length] = g), a); }, __hitTestMask: function (a, b) { return Ya.prototype.__hitTestMask.call(this, a, b) || (null != this.__graphics && this.__graphics.__hitTest(a, b, !0, this.__getRenderTransform())) ? !0 : !1; }, get_graphics: function () { null == this.__graphics && (this.__graphics = new Ve(this)); return this.__graphics; }, get_tabEnabled: function () { return null == this.__tabEnabled ? this.__buttonMode : this.__tabEnabled; }, get_buttonMode: function () { return this.__buttonMode; }, set_buttonMode: function (a) { return (this.__buttonMode = a); }, __class__: Ca, __properties__: r(Ya.prototype.__properties__, { get_graphics: 'get_graphics', set_buttonMode: 'set_buttonMode', get_buttonMode: 'get_buttonMode' }) }); var ya = function () { Ca.call(this); this.set_name('Root'); this.addEventListener('addedToStage', q(this, this.onAdded)); }; h.Universal = ya; ya.__name__ = 'Universal'; ya.initWindow = function (a) { ya.window = a; a.stage.align = 6; a.stage.set_scaleMode(2); }; ya.setupTracing = function (a) { null == a && (a = !1); null == ya.oldTrace && (ya.oldTrace = jh.trace); a || !aa.releaseMode ? ((jh.trace = ya.oldTrace), (Xa.level = 5)) : ((jh.trace = function (a, c) {}), (Xa.level = 0)); }; ya.reloadGame = function () { Z.field(ya.am, 'reloadGame').apply(ya.am, []); }; ya.addReloadListener = function (a) { Z.field(ya.am, 'reloadListeners').push(a); }; ya.__super__ = Ca; ya.prototype = r(Ca.prototype, { maskLayer: null, onAdded: function (a) { this.removeEventListener('addedToStage', q(this, this.onAdded)); this.initServices(); this.maskLayer = new Oe(); this.maskLayer.set_name('Mask Layer'); this.initScreen(aa.startInFullScreen); }, initServices: function () {}, initScreen: function (a) { a = !1; this.stage.set_displayState(a ? 1 : 2); this.stage.__setLogicalSize(0, 0); Ma.get_current().set_x(0); Ma.get_current().set_y(0); Ma.get_current().set_scaleX(1); Ma.get_current().set_scaleY(1); this.set_x(0); this.set_y(0); this.set_scaleX(1); this.set_scaleY(1); k.stage = this.stage; for (var b = new Jc(), c = 0, e = aa.scales; c < e.length; ) { var f = e[c]; ++c; b.set(f, !0); } ya.windowWidth = a ? Ba.toFloat(this.stage.get_fullScreenWidth()) : aa.stageWidth * aa.gameScale; ya.windowHeight = a ? Ba.toFloat(this.stage.get_fullScreenHeight()) : aa.stageHeight * aa.gameScale; c = this.getDesiredScale(ya.windowWidth, ya.windowHeight, aa.stageWidth, aa.stageHeight); e = this.getDesiredScale( Ba.toFloat(this.stage.get_fullScreenWidth()), Ba.toFloat(this.stage.get_fullScreenHeight()), aa.stageWidth, aa.stageHeight ); e = aa.forceHiResAssets ? e : c; 4 == e && null != b.h.__keys__[Gd._4X.__id__] ? ((k.SCALE = 4), (k.IMG_BASE = '4x')) : 3 <= e && null != b.h.__keys__[Gd._3X.__id__] ? ((k.SCALE = 3), (k.IMG_BASE = '3x')) : 2 <= e && null != b.h.__keys__[Gd._2X.__id__] ? ((k.SCALE = 2), (k.IMG_BASE = '2x')) : 1.5 <= e && null != b.h.__keys__[Gd._1_5X.__id__] ? ((k.SCALE = 1.5), (k.IMG_BASE = '1.5x')) : ((k.SCALE = 1), (k.IMG_BASE = '1x')); b = aa.stageWidth * k.SCALE; e = aa.stageHeight * k.SCALE; f = ya.windowWidth / b; var g = ya.windowHeight / e; if ( aa.forceHiResAssets || ya.windowWidth != aa.stageWidth || ya.windowHeight != aa.stageHeight ) 1 == aa.scaleMode ? k.SCALE != c && (this.set_scaleX(c / k.SCALE), this.set_scaleY(this.get_scaleX())) : 2 == aa.scaleMode ? (this.set_scaleX(f), this.set_scaleY(g)) : 3 == aa.scaleMode || 5 == aa.scaleMode ? (this.set_scaleX(Math.min(f, g)), this.set_scaleY(this.get_scaleX())) : 4 == aa.scaleMode ? (this.set_scaleX(Math.max(f, g)), this.set_scaleY(this.get_scaleX())) : 0 == aa.scaleMode && k.SCALE != c && (this.set_scaleX(c / k.SCALE), this.set_scaleY(this.get_scaleX())), 5 != aa.scaleMode && 1 != aa.scaleMode && (this.set_x(this.get_x() + (ya.windowWidth - b * this.get_scaleX()) / 2), this.set_y(this.get_y() + (ya.windowHeight - e * this.get_scaleY()) / 2)); ya.logicalWidth = aa.stageWidth; ya.logicalHeight = aa.stageHeight; !a || (5 != aa.scaleMode && 1 != aa.scaleMode) || ((ya.logicalWidth = ya.windowWidth / this.get_scaleX() / k.SCALE), (ya.logicalHeight = ya.windowHeight / this.get_scaleY() / k.SCALE), (ya.logicalWidth | 0) == ya.logicalWidth && (ya.logicalHeight | 0) == ya.logicalHeight) || ((ya.logicalWidth |= 0), (ya.logicalHeight |= 0), this.set_scaleX(ya.windowWidth / k.SCALE / ya.logicalWidth), this.set_scaleY(ya.windowHeight / k.SCALE / ya.logicalHeight)); k.screenScaleX = this.get_scaleX(); k.screenScaleY = this.get_scaleY(); this.maskLayer.get_graphics().clear(); !a || (3 != aa.scaleMode && 0 != aa.scaleMode) || ((a = this.get_x() / this.get_scaleX()), (c = this.get_y() / this.get_scaleY()), (f = ya.windowWidth / this.get_scaleX()), this.maskLayer.get_graphics().beginFill(this.stage.get_color()), this.maskLayer.get_graphics().drawRect(-a, -c, f, c), this.maskLayer.get_graphics().drawRect(-a, 0, a, e), this.maskLayer.get_graphics().drawRect(b, 0, a, e), this.maskLayer.get_graphics().drawRect(-a, e, f, c), this.maskLayer.get_graphics().endFill()); }, getDesiredScale: function (a, b, c, e) { var f = 2 * c, g = 2 * e; c *= 3; e *= 3; return a >= 2 * f && b >= 2 * g ? 4 : a >= c && b >= e ? 3 : a >= f && b >= g ? 2 : a >= c / 2 && b >= e / 2 ? 1.5 : 1; }, preloaderComplete: function () { try { new k(this); } catch (b) { la.lastError = b; var a = M.caught(b).unwrap(); this.stage.__handleError(a); } }, __class__: ya }); var ua = { toString: function (a) { switch (a) { case 0: return 'Element'; case 1: return 'PCData'; case 2: return 'CData'; case 3: return 'Comment'; case 4: return 'DocType'; case 5: return 'ProcessingInstruction'; case 6: return 'Document'; } } }, T = function (a) { this.nodeType = a; this.children = []; this.attributeMap = new qa(); }; h.Xml = T; T.__name__ = 'Xml'; T.parse = function (a) { return kh.parse(a); }; T.createElement = function (a) { var b = new T(T.Element); if (b.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == b.nodeType ? 'null' : ua.toString(b.nodeType)) ); b.nodeName = a; return b; }; T.createPCData = function (a) { var b = new T(T.PCData); if (b.nodeType == T.Document || b.nodeType == T.Element) throw M.thrown( 'Bad node type, unexpected ' + (null == b.nodeType ? 'null' : ua.toString(b.nodeType)) ); b.nodeValue = a; return b; }; T.createCData = function (a) { var b = new T(T.CData); if (b.nodeType == T.Document || b.nodeType == T.Element) throw M.thrown( 'Bad node type, unexpected ' + (null == b.nodeType ? 'null' : ua.toString(b.nodeType)) ); b.nodeValue = a; return b; }; T.createComment = function (a) { var b = new T(T.Comment); if (b.nodeType == T.Document || b.nodeType == T.Element) throw M.thrown( 'Bad node type, unexpected ' + (null == b.nodeType ? 'null' : ua.toString(b.nodeType)) ); b.nodeValue = a; return b; }; T.createDocType = function (a) { var b = new T(T.DocType); if (b.nodeType == T.Document || b.nodeType == T.Element) throw M.thrown( 'Bad node type, unexpected ' + (null == b.nodeType ? 'null' : ua.toString(b.nodeType)) ); b.nodeValue = a; return b; }; T.createProcessingInstruction = function (a) { var b = new T(T.ProcessingInstruction); if (b.nodeType == T.Document || b.nodeType == T.Element) throw M.thrown( 'Bad node type, unexpected ' + (null == b.nodeType ? 'null' : ua.toString(b.nodeType)) ); b.nodeValue = a; return b; }; T.createDocument = function () { return new T(T.Document); }; T.prototype = { nodeType: null, nodeName: null, nodeValue: null, parent: null, children: null, attributeMap: null, get: function (a) { if (this.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == this.nodeType ? 'null' : ua.toString(this.nodeType)) ); return this.attributeMap.h[a]; }, set: function (a, b) { if (this.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == this.nodeType ? 'null' : ua.toString(this.nodeType)) ); this.attributeMap.h[a] = b; }, exists: function (a) { if (this.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == this.nodeType ? 'null' : ua.toString(this.nodeType)) ); return Object.prototype.hasOwnProperty.call(this.attributeMap.h, a); }, attributes: function () { if (this.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == this.nodeType ? 'null' : ua.toString(this.nodeType)) ); return new pj(this.attributeMap.h); }, elements: function () { if (this.nodeType != T.Document && this.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element or Document but found ' + (null == this.nodeType ? 'null' : ua.toString(this.nodeType)) ); for (var a = [], b = 0, c = this.children; b < c.length; ) { var e = c[b]; ++b; e.nodeType == T.Element && a.push(e); } return new Me(a); }, elementsNamed: function (a) { if (this.nodeType != T.Document && this.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element or Document but found ' + (null == this.nodeType ? 'null' : ua.toString(this.nodeType)) ); for (var b = [], c = 0, e = this.children; c < e.length; ) { var f = e[c]; ++c; if (f.nodeType == T.Element) { if (f.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == f.nodeType ? 'null' : ua.toString(f.nodeType)) ); var g = f.nodeName == a; } else g = !1; g && b.push(f); } return new Me(b); }, firstElement: function () { if (this.nodeType != T.Document && this.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element or Document but found ' + (null == this.nodeType ? 'null' : ua.toString(this.nodeType)) ); for (var a = 0, b = this.children; a < b.length; ) { var c = b[a]; ++a; if (c.nodeType == T.Element) return c; } return null; }, addChild: function (a) { if (this.nodeType != T.Document && this.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element or Document but found ' + (null == this.nodeType ? 'null' : ua.toString(this.nodeType)) ); null != a.parent && a.parent.removeChild(a); this.children.push(a); a.parent = this; }, removeChild: function (a) { if (this.nodeType != T.Document && this.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element or Document but found ' + (null == this.nodeType ? 'null' : ua.toString(this.nodeType)) ); return A.remove(this.children, a) ? ((a.parent = null), !0) : !1; }, toString: function () { return qj.print(this); }, __class__: T }; var ka = function () { this.lowerBound = new P(); this.upperBound = new P(); }; h['box2D.collision.B2AABB'] = ka; ka.__name__ = 'box2D.collision.B2AABB'; ka.prototype = { isValid: function () { var a = this.upperBound.y - this.lowerBound.y; return ( 0 <= this.upperBound.x - this.lowerBound.x && 0 <= a && this.lowerBound.isValid() && this.upperBound.isValid() ); }, getCenter: function () { return new P( (this.lowerBound.x + this.upperBound.x) / 2, (this.lowerBound.y + this.upperBound.y) / 2 ); }, getExtents: function () { return new P( (this.upperBound.x - this.lowerBound.x) / 2, (this.upperBound.y - this.lowerBound.y) / 2 ); }, contains: function (a) { var b; return (b = (b = (b = (b = this.lowerBound.x <= a.lowerBound.x) && this.lowerBound.y <= a.lowerBound.y) && a.upperBound.x <= this.upperBound.x) && a.upperBound.y <= this.upperBound.y); }, rayCast: function (a, b) { var c = -Number.MAX_VALUE, e = Number.MAX_VALUE, f = b.p1.x, g = b.p1.y, d = b.p2.x - b.p1.x; b = b.p2.y - b.p1.y; var l = Math.abs(b), v = a.normal; if (Math.abs(d) < Number.MIN_VALUE) { if (f < this.lowerBound.x || this.upperBound.x < f) return !1; } else { var n = 1 / d; d = (this.lowerBound.x - f) * n; f = (this.upperBound.x - f) * n; n = -1; d > f && ((n = d), (d = f), (f = n), (n = 1)); d > c && ((v.x = n), (v.y = 0), (c = d)); e = Math.min(e, f); if (c > e) return !1; } if (l < Number.MIN_VALUE) { if (g < this.lowerBound.y || this.upperBound.y < g) return !1; } else if ( ((n = 1 / b), (d = (this.lowerBound.y - g) * n), (f = (this.upperBound.y - g) * n), (n = -1), d > f && ((n = d), (d = f), (f = n), (n = 1)), d > c && ((v.y = n), (v.x = 0), (c = d)), (e = Math.min(e, f)), c > e) ) return !1; a.fraction = c; return !0; }, testOverlap: function (a) { var b = a.lowerBound.y - this.upperBound.y, c = this.lowerBound.y - a.upperBound.y; return 0 < a.lowerBound.x - this.upperBound.x || 0 < b || 0 < this.lowerBound.x - a.upperBound.x || 0 < c ? !1 : !0; }, combine: function (a, b) { this.lowerBound.x = Math.min(a.lowerBound.x, b.lowerBound.x); this.lowerBound.y = Math.min(a.lowerBound.y, b.lowerBound.y); this.upperBound.x = Math.max(a.upperBound.x, b.upperBound.x); this.upperBound.y = Math.max(a.upperBound.y, b.upperBound.y); }, reset: function () { this.lowerBound.x = 0; this.lowerBound.y = 0; this.upperBound.x = 0; this.upperBound.y = 0; }, setTo: function (a) { this.lowerBound.x = a.lowerBound.x; this.lowerBound.y = a.lowerBound.y; this.upperBound.x = a.upperBound.x; this.upperBound.y = a.upperBound.y; }, lowerBound: null, upperBound: null, __class__: ka }; var P = function (a, b) { null == b && (b = 0); null == a && (a = 0); this.x = a; this.y = b; }; h['box2D.common.math.B2Vec2'] = P; P.__name__ = 'box2D.common.math.B2Vec2'; P.make = function (a, b) { return new P(a, b); }; P.freePool = function () { P.pooli = 0; }; P.getFromPool = function () { 500 < P.pooli && (P.pooli = 0); if (P.pooli < P.pool.length) { var a = P.pool[P.pooli]; a.x = 0; a.y = 0; } else (a = new P()), P.pool.push(a); P.pooli++; return a; }; P.prototype = { setZero: function () { this.y = this.x = 0; }, set: function (a, b) { null == b && (b = 0); null == a && (a = 0); this.x = a; this.y = b; }, setV: function (a) { this.x = a.x; this.y = a.y; }, getNegative: function () { return new P(-this.x, -this.y); }, getNegativePooled: function () { var a = P.getFromPool(); a.x = -this.x; a.y = -this.y; return a; }, negativeSelf: function () { this.x = -this.x; this.y = -this.y; }, copy: function (a) { null == a && (a = !1); if (a) { a = P.getFromPool(); var b = this.x, c = this.y; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; } else a = new P(this.x, this.y); return a; }, add: function (a) { this.x += a.x; this.y += a.y; }, subtract: function (a) { this.x -= a.x; this.y -= a.y; }, multiply: function (a) { this.x *= a; this.y *= a; }, mulM: function (a) { var b = this.x; this.x = a.col1.x * b + a.col2.x * this.y; this.y = a.col1.y * b + a.col2.y * this.y; }, mulTM: function (a) { var b = S.dot(this, a.col1); this.y = S.dot(this, a.col2); this.x = b; }, crossVF: function (a) { var b = this.x; this.x = a * this.y; this.y = -a * b; }, crossFV: function (a) { var b = this.x; this.x = -a * this.y; this.y = a * b; }, minV: function (a) { this.x = this.x < a.x ? this.x : a.x; this.y = this.y < a.y ? this.y : a.y; }, maxV: function (a) { this.x = this.x > a.x ? this.x : a.x; this.y = this.y > a.y ? this.y : a.y; }, abs: function () { 0 > this.x && (this.x = -this.x); 0 > this.y && (this.y = -this.y); }, length: function () { return Math.sqrt(this.x * this.x + this.y * this.y); }, lengthSquared: function () { return this.x * this.x + this.y * this.y; }, normalize: function () { var a = Math.sqrt(this.x * this.x + this.y * this.y); if (a < Number.MIN_VALUE) return 0; var b = 1 / a; this.x *= b; this.y *= b; return a; }, perpDot: function (a) { return -this.y * a.x + this.x * a.y; }, winding: function (a, b) { var c = a.copy(); c.subtract(this); b = b.copy(); b.subtract(a); return c.perpDot(b); }, isValid: function () { return S.isValid(this.x) ? S.isValid(this.y) : !1; }, x: null, y: null, toString: function () { return '(' + this.x + ', ' + this.y + ')'; }, reset: function () { this.y = this.x = 0; }, __class__: P }; var mc = function () { this.v = new P(); this.id = new Tb(); }; h['box2D.collision.ClipVertex'] = mc; mc.__name__ = 'box2D.collision.ClipVertex'; mc.prototype = { set: function (a) { var b = this.v, c = a.v; b.x = c.x; b.y = c.y; this.id.set(a.id); }, v: null, id: null, __class__: mc }; var Tb = function () { this.features = new oc(); this.features._m_id = this; }; h['box2D.collision.B2ContactID'] = Tb; Tb.__name__ = 'box2D.collision.B2ContactID'; Tb.prototype = { set: function (a) { this.set_key(a._key); }, copy: function () { var a = new Tb(); a.set_key(this.get_key()); return a; }, get_key: function () { return this._key; }, set_key: function (a) { this._key = a; this.features._referenceEdge = this._key & 255; this.features._incidentEdge = ((this._key & 65280) >> 8) & 255; this.features._incidentVertex = ((this._key & 16711680) >> 16) & 255; this.features._flip = ((this._key & -16777216) >> 24) & 255; return this._key; }, features: null, _key: null, indexA: null, indexB: null, typeA: null, typeB: null, __class__: Tb, __properties__: { set_key: 'set_key', get_key: 'get_key' } }; var oc = function () {}; h['box2D.collision.Features'] = oc; oc.__name__ = 'box2D.collision.Features'; oc.prototype = { get_referenceEdge: function () { return this._referenceEdge; }, set_referenceEdge: function (a) { this._referenceEdge = a; this._m_id._key = (this._m_id._key & -256) | (this._referenceEdge & 255); return a; }, _referenceEdge: null, get_incidentEdge: function () { return this._incidentEdge; }, set_incidentEdge: function (a) { this._incidentEdge = a; this._m_id._key = (this._m_id._key & -65281) | ((this._incidentEdge << 8) & 65280); return a; }, _incidentEdge: null, get_incidentVertex: function () { return this._incidentVertex; }, set_incidentVertex: function (a) { this._incidentVertex = a; this._m_id._key = (this._m_id._key & -16711681) | ((this._incidentVertex << 16) & 16711680); return a; }, _incidentVertex: null, get_flip: function () { return this._flip; }, set_flip: function (a) { this._flip = a; this._m_id._key = (this._m_id._key & 16777215) | ((this._flip << 24) & -16777216); return a; }, _flip: null, _m_id: null, __class__: oc, __properties__: { set_flip: 'set_flip', get_flip: 'get_flip', set_incidentVertex: 'set_incidentVertex', get_incidentVertex: 'get_incidentVertex', set_incidentEdge: 'set_incidentEdge', get_incidentEdge: 'get_incidentEdge', set_referenceEdge: 'set_referenceEdge', get_referenceEdge: 'get_referenceEdge' } }; var z = function () {}; h['box2D.collision.B2Collision'] = z; z.__name__ = 'box2D.collision.B2Collision'; z.clipSegmentToLine = function (a, b, c, e) { var f = 0, g = b[0], d = g.v; g = b[1]; var l = g.v, v = c.x * d.x + c.y * d.y - e; g = c.x * l.x + c.y * l.y - e; 0 >= v && a[f++].set(b[0]); 0 >= g && a[f++].set(b[1]); 0 > v * g && ((c = v / (v - g)), (g = a[f]), (g = g.v), (g.x = d.x + c * (l.x - d.x)), (g.y = d.y + c * (l.y - d.y)), (g = a[f]), (g.id = (0 < v ? b[0] : b[1]).id), ++f); return f; }; z.edgeSeparation = function (a, b, c, e, f) { var g = a.m_vertices, d = e.m_vertexCount; e = e.m_vertices; var l = b.R, v = a.m_normals[c]; a = l.col1.x * v.x + l.col2.x * v.y; var n = l.col1.y * v.x + l.col2.y * v.y; l = f.R; var k = l.col1.x * a + l.col1.y * n; l = l.col2.x * a + l.col2.y * n; for (var m = 0, h = Number.MAX_VALUE, t = 0; t < d; ) { var u = t++; v = e[u]; v = v.x * k + v.y * l; v < h && ((h = v), (m = u)); } v = g[c]; l = b.R; c = b.position.x + (l.col1.x * v.x + l.col2.x * v.y); b = b.position.y + (l.col1.y * v.x + l.col2.y * v.y); v = e[m]; l = f.R; return ( (f.position.x + (l.col1.x * v.x + l.col2.x * v.y) - c) * a + (f.position.y + (l.col1.y * v.x + l.col2.y * v.y) - b) * n ); }; z.findMaxSeparation = function (a, b, c, e, f) { var g = b.m_vertexCount, d = b.m_normals, l = f.R, v = e.m_centroid, n = f.position.x + (l.col1.x * v.x + l.col2.x * v.y), k = f.position.y + (l.col1.y * v.x + l.col2.y * v.y); l = c.R; v = b.m_centroid; n -= c.position.x + (l.col1.x * v.x + l.col2.x * v.y); k -= c.position.y + (l.col1.y * v.x + l.col2.y * v.y); l = n * c.R.col1.x + k * c.R.col1.y; k = n * c.R.col2.x + k * c.R.col2.y; n = 0; for (var m = -Number.MAX_VALUE, h = 0; h < g; ) { var t = h++; v = d[t]; v = v.x * l + v.y * k; v > m && ((m = v), (n = t)); } d = z.edgeSeparation(b, c, n, e, f); m = 0 <= n - 1 ? n - 1 : g - 1; l = z.edgeSeparation(b, c, m, e, f); h = n + 1 < g ? n + 1 : 0; k = z.edgeSeparation(b, c, h, e, f); if (l > d && l > k) v = -1; else if (k > d) (v = 1), (m = h), (l = k); else return (a[0] = n), d; for (;;) if ( ((n = -1 == v ? (0 <= m - 1 ? m - 1 : g - 1) : m + 1 < g ? m + 1 : 0), (d = z.edgeSeparation(b, c, n, e, f)), d > l) ) (m = n), (l = d); else break; a[0] = m; return l; }; z.findIncidentEdge = function (a, b, c, e, f, g) { var d = f.m_vertexCount, l = f.m_vertices; f = f.m_normals; var v = c.R; b = b.m_normals[e]; c = v.col1.x * b.x + v.col2.x * b.y; var n = v.col1.y * b.x + v.col2.y * b.y; v = g.R; b = v.col1.x * c + v.col1.y * n; n = v.col2.x * c + v.col2.y * n; c = b; v = 0; for (var k = Number.MAX_VALUE, m = 0; m < d; ) { var h = m++; b = f[h]; b = c * b.x + n * b.y; b < k && ((k = b), (v = h)); } f = v; d = f + 1 < d ? f + 1 : 0; c = a[0]; b = l[f]; v = g.R; c.v.x = g.position.x + (v.col1.x * b.x + v.col2.x * b.y); c.v.y = g.position.y + (v.col1.y * b.x + v.col2.y * b.y); c.id.features.set_referenceEdge(e); c.id.features.set_incidentEdge(f); c.id.features.set_incidentVertex(0); c = a[1]; b = l[d]; v = g.R; c.v.x = g.position.x + (v.col1.x * b.x + v.col2.x * b.y); c.v.y = g.position.y + (v.col1.y * b.x + v.col2.y * b.y); c.id.features.set_referenceEdge(e); c.id.features.set_incidentEdge(d); c.id.features.set_incidentVertex(1); }; z.makeClipPointVector = function () { var a = []; a[0] = new mc(); a[1] = new mc(); return a; }; z.collidePolygons = function (a, b, c, e, f) { a.m_pointCount = 0; var g = b.m_radius + e.m_radius; z.s_edgeAO[0] = 0; var d = z.findMaxSeparation(z.s_edgeAO, b, c, e, f); var l = z.s_edgeAO[0]; if (!(d > g)) { z.s_edgeBO[0] = 0; var v = z.findMaxSeparation(z.s_edgeBO, e, f, b, c); var n = z.s_edgeBO[0]; if (!(v > g)) { v > 0.98 * d + 0.001 ? ((d = e), (e = b), (b = f), (f = n), (a.m_type = 4), (l = 1)) : ((d = b), (b = c), (c = f), (f = l), (a.m_type = 2), (l = 0)); n = z.s_incidentEdge; z.findIncidentEdge(n, d, b, f, e, c); v = d.m_vertices; e = v[f]; var k = f + 1 < d.m_vertexCount ? v[f + 1] : v[0]; d = z.s_localTangent; f = k.x - e.x; var m = k.y - e.y; null == m && (m = 0); null == f && (f = 0); d.x = f; d.y = m; d.normalize(); v = z.s_localNormal; v.x = d.y; v.y = -d.x; var h = z.s_planePoint; f = 0.5 * (e.x + k.x); m = 0.5 * (e.y + k.y); null == m && (m = 0); null == f && (f = 0); h.x = f; h.y = m; m = z.s_tangent; f = b.R; m.x = f.col1.x * d.x + f.col2.x * d.y; m.y = f.col1.y * d.x + f.col2.y * d.y; var t = z.s_tangent2; t.x = -m.x; t.y = -m.y; d = z.s_normal; d.x = m.y; d.y = -m.x; var u = z.s_v11, q = z.s_v12; u.x = b.position.x + (f.col1.x * e.x + f.col2.x * e.y); u.y = b.position.y + (f.col1.y * e.x + f.col2.y * e.y); q.x = b.position.x + (f.col1.x * k.x + f.col2.x * k.y); q.y = b.position.y + (f.col1.y * k.x + f.col2.y * k.y); b = d.x * u.x + d.y * u.y; f = m.x * q.x + m.y * q.y + g; k = z.s_clipPoints1; e = z.s_clipPoints2; n = z.clipSegmentToLine(k, n, t, -m.x * u.x - m.y * u.y + g); if (!(2 > n || ((n = z.clipSegmentToLine(e, k, m, f)), 2 > n))) { n = a.m_localPlaneNormal; n.x = v.x; n.y = v.y; n = a.m_localPoint; n.x = h.x; n.y = h.y; v = n = 0; for (h = da.b2_maxManifoldPoints; v < h; ) (f = v++), (m = e[f]), d.x * m.v.x + d.y * m.v.y - b <= g && ((t = a.m_points[n]), (f = c.R), (u = m.v.x - c.position.x), (k = m.v.y - c.position.y), (t.m_localPoint.x = u * f.col1.x + k * f.col1.y), (t.m_localPoint.y = u * f.col2.x + k * f.col2.y), t.m_id.set(m.id), t.m_id.features.set_flip(l), ++n); a.m_pointCount = n; } } } }; z.collideCircles = function (a, b, c, e, f) { a.m_pointCount = 0; var g = c.R, d = b.m_p, l = c.position.x + (g.col1.x * d.x + g.col2.x * d.y); c = c.position.y + (g.col1.y * d.x + g.col2.y * d.y); g = f.R; d = e.m_p; l = f.position.x + (g.col1.x * d.x + g.col2.x * d.y) - l; f = f.position.y + (g.col1.y * d.x + g.col2.y * d.y) - c; g = b.m_radius + e.m_radius; l * l + f * f > g * g || ((a.m_type = 1), (f = a.m_localPoint), (b = b.m_p), (f.x = b.x), (f.y = b.y), (f = a.m_localPlaneNormal), (f.x = 0), (f.y = 0), (a.m_pointCount = 1), (f = a.m_points[0].m_localPoint), (b = e.m_p), (f.x = b.x), (f.y = b.y), a.m_points[0].m_id.set_key(0)); }; z.collidePolygonAndCircle = function (a, b, c, e, f) { a.m_pointCount = 0; var g = f.R, d = e.m_p, l = f.position.x + (g.col1.x * d.x + g.col2.x * d.y) - c.position.x, v = f.position.y + (g.col1.y * d.x + g.col2.y * d.y) - c.position.y; g = c.R; c = l * g.col1.x + v * g.col1.y; g = l * g.col2.x + v * g.col2.y; var n = 0, k = -Number.MAX_VALUE; f = b.m_radius + e.m_radius; var m = b.m_vertexCount, h = b.m_vertices; b = b.m_normals; for (var t = 0; t < m; ) { var u = t++; d = h[u]; l = c - d.x; v = g - d.y; d = b[u]; d = d.x * l + d.y * v; if (d > f) return; d > k && ((k = d), (n = u)); } l = n; d = h[l]; m = h[l + 1 < m ? l + 1 : 0]; if (k < Number.MIN_VALUE) (a.m_pointCount = 1), (a.m_type = 2), (c = a.m_localPlaneNormal), (g = b[n]), (c.x = g.x), (c.y = g.y), (a.m_localPoint.x = 0.5 * (d.x + m.x)), (a.m_localPoint.y = 0.5 * (d.y + m.y)); else if ( ((k = (c - m.x) * (d.x - m.x) + (g - m.y) * (d.y - m.y)), 0 >= (c - d.x) * (m.x - d.x) + (g - d.y) * (m.y - d.y)) ) { if ((c - d.x) * (c - d.x) + (g - d.y) * (g - d.y) > f * f) return; a.m_pointCount = 1; a.m_type = 2; a.m_localPlaneNormal.x = c - d.x; a.m_localPlaneNormal.y = g - d.y; a.m_localPlaneNormal.normalize(); c = a.m_localPoint; c.x = d.x; c.y = d.y; } else if (0 >= k) { if ((c - m.x) * (c - m.x) + (g - m.y) * (g - m.y) > f * f) return; a.m_pointCount = 1; a.m_type = 2; a.m_localPlaneNormal.x = c - m.x; a.m_localPlaneNormal.y = g - m.y; a.m_localPlaneNormal.normalize(); c = a.m_localPoint; c.x = m.x; c.y = m.y; } else { n = 0.5 * (d.x + m.x); d = 0.5 * (d.y + m.y); k = (c - n) * b[l].x + (g - d) * b[l].y; if (k > f) return; a.m_pointCount = 1; a.m_type = 2; a.m_localPlaneNormal.x = b[l].x; a.m_localPlaneNormal.y = b[l].y; a.m_localPlaneNormal.normalize(); c = a.m_localPoint; g = n; f = d; null == f && (f = 0); null == g && (g = 0); c.x = g; c.y = f; } c = a.m_points[0].m_localPoint; g = e.m_p; c.x = g.x; c.y = g.y; a.m_points[0].m_id.set_key(0); }; z.testOverlap = function (a, b) { var c = b.lowerBound, e = a.upperBound, f = c.x - e.x, g = c.y - e.y; c = a.lowerBound; e = b.upperBound; a = c.y - e.y; return 0 < f || 0 < g || 0 < c.x - e.x || 0 < a ? !1 : !0; }; var ce = function () { this.position = new P(); this.velocity = new P(); this.normal = new P(); this.id = new Tb(); }; h['box2D.collision.B2ContactPoint'] = ce; ce.__name__ = 'box2D.collision.B2ContactPoint'; ce.prototype = { shape1: null, shape2: null, position: null, velocity: null, normal: null, separation: null, friction: null, restitution: null, id: null, __class__: ce }; var ra = function () { this.m_v1 = new H(); this.m_v2 = new H(); this.m_v3 = new H(); this.m_vertices = []; this.m_vertices[0] = this.m_v1; this.m_vertices[1] = this.m_v2; this.m_vertices[2] = this.m_v3; }; h['box2D.collision.B2Simplex'] = ra; ra.__name__ = 'box2D.collision.B2Simplex'; ra.prototype = { readCache: function (a, b, c, e, f) { da.b2Assert(0 <= a.count && 3 >= a.count); this.m_count = a.count; var g = this.m_vertices; if (a.useCache) { for (var d = 0, l = this.m_count; d < l; ) { var v = d++; var n = g[v]; n.indexA = a.indexA[v]; n.indexB = a.indexB[v]; v = b.getVertex(n.indexA); var k = e.getVertex(n.indexB); n.wA = S.mulX(c, v, !0); n.wB = S.mulX(f, k, !0); n.w = S.subtractVVPooled(n.wB, n.wA); n.a = 0; } 1 < this.m_count && ((a = a.metric), (n = this.getMetric()), n < 0.5 * a || 2 * a < n || n < Number.MIN_VALUE) && (this.m_count = 0); } 0 == this.m_count && ((n = g[0]), (n.indexA = 0), (n.indexB = 0), (v = b.getVertex(0)), (k = e.getVertex(0)), (n.wA = S.mulX(c, v, !0)), (n.wB = S.mulX(f, k, !0)), (n.w = S.subtractVVPooled(n.wB, n.wA)), (this.m_count = 1)); }, writeCache: function (a) { if (a.useCache) { a.metric = this.getMetric(); a.count = this.m_count; for (var b = this.m_vertices, c = 0, e = this.m_count; c < e; ) { var f = c++; a.indexA[f] = b[f].indexA; a.indexB[f] = b[f].indexB; } } }, getSearchDirection: function () { switch (this.m_count) { case 1: return this.m_v1.w.getNegativePooled(); case 2: var a = S.subtractVVPooled(this.m_v2.w, this.m_v1.w); return 0 < S.crossVV(a, this.m_v1.w.getNegativePooled()) ? S.crossFV(1, a, !0) : S.crossVF(a, 1, !0); default: return da.b2Assert(!1), P.getFromPool(); } }, getClosestPoint: function () { switch (this.m_count) { case 0: return da.b2Assert(!1), P.getFromPool(); case 1: return this.m_v1.w; case 2: var a = P.getFromPool(); a.x = this.m_v1.a * this.m_v1.w.x + this.m_v2.a * this.m_v2.w.x; a.y = this.m_v1.a * this.m_v1.w.y + this.m_v2.a * this.m_v2.w.y; return a; default: return da.b2Assert(!1), P.getFromPool(); } }, getWitnessPoints: function (a, b) { switch (this.m_count) { case 0: da.b2Assert(!1); break; case 1: var c = this.m_v1.wA; a.x = c.x; a.y = c.y; c = this.m_v1.wB; b.x = c.x; b.y = c.y; break; case 2: a.x = this.m_v1.a * this.m_v1.wA.x + this.m_v2.a * this.m_v2.wA.x; a.y = this.m_v1.a * this.m_v1.wA.y + this.m_v2.a * this.m_v2.wA.y; b.x = this.m_v1.a * this.m_v1.wB.x + this.m_v2.a * this.m_v2.wB.x; b.y = this.m_v1.a * this.m_v1.wB.y + this.m_v2.a * this.m_v2.wB.y; break; case 3: b.x = a.x = this.m_v1.a * this.m_v1.wA.x + this.m_v2.a * this.m_v2.wA.x + this.m_v3.a * this.m_v3.wA.x; b.y = a.y = this.m_v1.a * this.m_v1.wA.y + this.m_v2.a * this.m_v2.wA.y + this.m_v3.a * this.m_v3.wA.y; break; default: da.b2Assert(!1); } }, getMetric: function () { switch (this.m_count) { case 0: return da.b2Assert(!1), 0; case 1: return 0; case 2: return S.subtractVVPooled(this.m_v1.w, this.m_v2.w).length(); case 3: return S.crossVV( S.subtractVVPooled(this.m_v2.w, this.m_v1.w), S.subtractVVPooled(this.m_v3.w, this.m_v1.w) ); default: return da.b2Assert(!1), 0; } }, solve2: function () { var a = this.m_v1.w, b = this.m_v2.w, c = S.subtractVVPooled(b, a); a = -(a.x * c.x + a.y * c.y); 0 >= a ? (this.m_count = this.m_v1.a = 1) : ((b = b.x * c.x + b.y * c.y), 0 >= b ? ((this.m_count = this.m_v2.a = 1), this.m_v1.set(this.m_v2)) : ((c = 1 / (b + a)), (this.m_v1.a = b * c), (this.m_v2.a = a * c), (this.m_count = 2))); }, solve3: function () { var a = this.m_v1.w, b = this.m_v2.w, c = this.m_v3.w, e = S.subtractVVPooled(b, a), f = S.dot(a, e), g = S.dot(b, e); f = -f; var d = S.subtractVVPooled(c, a), l = S.dot(a, d), v = S.dot(c, d); l = -l; var n = S.subtractVVPooled(c, b), k = S.dot(b, n); n = S.dot(c, n); k = -k; d = S.crossVV(e, d); e = d * S.crossVV(b, c); c = d * S.crossVV(c, a); a = d * S.crossVV(a, b); 0 >= f && 0 >= l ? (this.m_count = this.m_v1.a = 1) : 0 < g && 0 < f && 0 >= a ? ((v = 1 / (g + f)), (this.m_v1.a = g * v), (this.m_v2.a = f * v), (this.m_count = 2)) : 0 < v && 0 < l && 0 >= c ? ((g = 1 / (v + l)), (this.m_v1.a = v * g), (this.m_v3.a = l * g), (this.m_count = 2), this.m_v2.set(this.m_v3)) : 0 >= g && 0 >= k ? ((this.m_count = this.m_v2.a = 1), this.m_v1.set(this.m_v2)) : 0 >= v && 0 >= n ? ((this.m_count = this.m_v3.a = 1), this.m_v1.set(this.m_v3)) : 0 < n && 0 < k && 0 >= e ? ((g = 1 / (n + k)), (this.m_v2.a = n * g), (this.m_v3.a = k * g), (this.m_count = 2), this.m_v1.set(this.m_v3)) : ((g = 1 / (e + c + a)), (this.m_v1.a = e * g), (this.m_v2.a = c * g), (this.m_v3.a = a * g), (this.m_count = 3)); }, m_v1: null, m_v2: null, m_v3: null, m_vertices: null, m_count: null, __class__: ra }; var H = function () {}; h['box2D.collision.B2SimplexVertex'] = H; H.__name__ = 'box2D.collision.B2SimplexVertex'; H.prototype = { set: function (a) { var b = this.wA, c = a.wA; b.x = c.x; b.y = c.y; b = this.wB; c = a.wB; b.x = c.x; b.y = c.y; b = this.w; c = a.w; b.x = c.x; b.y = c.y; this.a = a.a; this.indexA = a.indexA; this.indexB = a.indexB; }, wA: null, wB: null, w: null, a: null, indexA: null, indexB: null, __class__: H }; var xe = function () {}; h['box2D.collision.B2Distance'] = xe; xe.__name__ = 'box2D.collision.B2Distance'; xe.distance = function (a, b, c) { ++xe.b2_gjkCalls; var e = c.proxyA, f = c.proxyB, g = c.transformA, d = c.transformB, l = xe.s_simplex; l.readCache(b, e, g, f, d); var v = l.m_vertices, n = xe.s_saveA, k = xe.s_saveB; l.getClosestPoint().lengthSquared(); for (var m, h = 0; 20 > h; ) { var t = l.m_count; for (var u = 0, q = t; u < q; ) (m = u++), (n[m] = v[m].indexA), (k[m] = v[m].indexB); switch (l.m_count) { case 1: break; case 2: l.solve2(); break; case 3: l.solve3(); break; default: da.b2Assert(!1); } if (3 == l.m_count) break; m = l.getClosestPoint(); m.lengthSquared(); u = l.getSearchDirection(); if (u.lengthSquared() < Number.MIN_VALUE * Number.MIN_VALUE) break; m = v[l.m_count]; m.indexA = e.getSupport(S.mulTMV(g.R, u.getNegativePooled(), !0)) | 0; m.wA = S.mulX(g, e.getVertex(m.indexA), !0); m.indexB = f.getSupport(S.mulTMV(d.R, u, !0)) | 0; m.wB = S.mulX(d, f.getVertex(m.indexB), !0); m.w = S.subtractVVPooled(m.wB, m.wA); ++h; ++xe.b2_gjkIters; u = !1; for (q = 0; q < t; ) { var r = q++; if (m.indexA == n[r] && m.indexB == k[r]) { u = !0; break; } } if (u) break; ++l.m_count; } xe.b2_gjkMaxIters = S.max(xe.b2_gjkMaxIters, h) | 0; l.getWitnessPoints(a.pointA, a.pointB); a.distance = S.subtractVVPooled(a.pointA, a.pointB).length(); a.iterations = h; l.writeCache(b); c.useRadii && ((b = e.m_radius), (f = f.m_radius), a.distance > b + f && a.distance > Number.MIN_VALUE ? ((a.distance -= b + f), (c = S.subtractVVPooled(a.pointB, a.pointA)), c.normalize(), (a.pointA.x += b * c.x), (a.pointA.y += b * c.y), (a.pointB.x -= f * c.x), (a.pointB.y -= f * c.y)) : ((m = P.getFromPool()), (m.x = 0.5 * (a.pointA.x + a.pointB.x)), (m.y = 0.5 * (a.pointA.y + a.pointB.y)), (a.pointA.x = a.pointB.x = m.x), (a.pointA.y = a.pointB.y = m.y), (a.distance = 0))); }; var Jh = function () {}; h['box2D.collision.B2DistanceInput'] = Jh; Jh.__name__ = 'box2D.collision.B2DistanceInput'; Jh.prototype = { proxyA: null, proxyB: null, transformA: null, transformB: null, useRadii: null, __class__: Jh }; var We = function () { this.pointA = new P(); this.pointB = new P(); }; h['box2D.collision.B2DistanceOutput'] = We; We.__name__ = 'box2D.collision.B2DistanceOutput'; We.prototype = { pointA: null, pointB: null, distance: null, iterations: null, __class__: We }; var Ng = function () { this.m_internalVertices = []; }; h['box2D.collision.B2DistanceProxy'] = Ng; Ng.__name__ = 'box2D.collision.B2DistanceProxy'; Ng.prototype = { set: function (a) { switch (a.getType()) { case 0: a = x.__cast(a, Lc); for (this.m_vertices = this.m_internalVertices; 1 < this.m_vertices.length; ) this.m_vertices.pop(); this.m_vertices[0] = a.m_p; this.m_count = 1; this.m_radius = a.m_radius; break; case 1: a = x.__cast(a, Db); this.m_vertices = a.m_vertices; this.m_count = a.m_vertexCount; this.m_radius = a.m_radius; break; case 2: a = x.__cast(a, vg); for (this.m_vertices = this.m_internalVertices; 2 < this.m_vertices.length; ) this.m_vertices.pop(); this.m_vertices[0] = a.m_v1; this.m_vertices[1] = a.m_v2; this.m_count = 2; this.m_radius = a.m_radius; break; default: da.b2Assert(!1); } }, getSupport: function (a) { for ( var b = 0, c = this.m_vertices[0].x * a.x + this.m_vertices[0].y * a.y, e = 1, f = this.m_count; e < f; ) { var g = e++, d = this.m_vertices[g].x * a.x + this.m_vertices[g].y * a.y; d > c && ((b = g), (c = d)); } return b; }, getSupportVertex: function (a) { for ( var b = 0, c = this.m_vertices[0].x * a.x + this.m_vertices[0].y * a.y, e = 1, f = this.m_count; e < f; ) { var g = e++, d = this.m_vertices[g].x * a.x + this.m_vertices[g].y * a.y; d > c && ((b = g), (c = d)); } return this.m_vertices[b]; }, getVertexCount: function () { return this.m_count; }, getVertex: function (a) { da.b2Assert(0 <= a && a < this.m_count); return this.m_vertices[a]; }, m_internalVertices: null, m_vertices: null, m_count: null, m_radius: null, __class__: Ng }; var yn = function () { this.oldAABB = new ka(); this.stackQueue = []; this.stackQueuePos = 0; this.m_freeList = this.m_root = null; this.m_insertionCount = this.m_path = 0; }; h['box2D.collision.B2DynamicTree'] = yn; yn.__name__ = 'box2D.collision.B2DynamicTree'; yn.prototype = { createProxy: function (a, b) { var c = this.allocateNode(), e = da.b2_aabbExtension, f = da.b2_aabbExtension; c.aabb.lowerBound.x = a.lowerBound.x - e; c.aabb.lowerBound.y = a.lowerBound.y - f; c.aabb.upperBound.x = a.upperBound.x + e; c.aabb.upperBound.y = a.upperBound.y + f; c.userData = b; this.insertLeaf(c); return c; }, destroyProxy: function (a) { this.removeLeaf(a); this.freeNode(a); }, moveProxy: function (a, b, c) { da.b2Assert(a.isLeaf()); if (a.aabb.contains(b)) return !1; this.removeLeaf(a); var e = da.b2_aabbExtension + da.b2_aabbMultiplier * (0 < c.x ? c.x : -c.x); c = da.b2_aabbExtension + da.b2_aabbMultiplier * (0 < c.y ? c.y : -c.y); a.aabb.lowerBound.x = b.lowerBound.x - e; a.aabb.lowerBound.y = b.lowerBound.y - c; a.aabb.upperBound.x = b.upperBound.x + e; a.aabb.upperBound.y = b.upperBound.y + c; this.insertLeaf(a); return !0; }, rebalance: function (a) { if (null != this.m_root) for (var b = 0; b < a; ) { b++; for (var c = this.m_root, e = 0; 0 == c.isLeaf(); ) (c = 0 != ((this.m_path >> e) & 1) ? c.child2 : c.child1), (e = (e + 1) & 31); ++this.m_path; this.removeLeaf(c); this.insertLeaf(c); } }, getFatAABB: function (a) { return a.aabb; }, getUserData: function (a) { return a.userData; }, stackQueuePos: null, stackQueue: null, query: function (a, b) { if (null != this.m_root) { null == this.stackQueue[this.stackQueuePos] && (this.stackQueue[this.stackQueuePos] = []); var c = this.stackQueue[this.stackQueuePos++], e = 0; for (c[e++] = this.m_root; 0 < e; ) { var f = c[--e]; if (f.aabb.testOverlap(b)) if (f.isLeaf()) { if (!a.queryCallback(f)) break; } else (c[e++] = f.child1), (c[e++] = f.child2); } for (e = c.length; 0 < e--; ) c.pop(); --this.stackQueuePos; } }, rayCast: function (a, b) { if (null != this.m_root) { var c = b.p1, e = b.p2, f = S.subtractVVPooled(c, e); f.normalize(); f = S.crossFV(1, f); var g = S.absV(f), d = b.maxFraction, l = new ka(); var v = c.x + d * (e.x - c.x); d = c.y + d * (e.y - c.y); l.lowerBound.x = Math.min(c.x, v); l.lowerBound.y = Math.min(c.y, d); l.upperBound.x = Math.max(c.x, v); l.upperBound.y = Math.max(c.y, d); var n = [], k = 0; for (n[k++] = this.m_root; 0 < k; ) if (((v = n[--k]), 0 != v.aabb.testOverlap(l))) { d = v.aabb.getCenter(); var m = v.aabb.getExtents(); if (!(0 < Math.abs(f.x * (c.x - d.x) + f.y * (c.y - d.y)) - g.x * m.x - g.y * m.y)) if (v.isLeaf()) { d = new uk(); d.p1 = b.p1; d.p2 = b.p2; d.maxFraction = b.maxFraction; d = a(d, v); if (0 == d) break; v = c.x + d * (e.x - c.x); d = c.y + d * (e.y - c.y); l.lowerBound.x = Math.min(c.x, v); l.lowerBound.y = Math.min(c.y, d); l.upperBound.x = Math.max(c.x, v); l.upperBound.y = Math.max(c.y, d); } else (n[k++] = v.child1), (n[k++] = v.child2); } } }, allocateNode: function () { if (null != this.m_freeList) { var a = this.m_freeList; this.m_freeList = a.parent; a.parent = null; a.child1 = null; a.child2 = null; return a; } return new rj(); }, freeNode: function (a) { a.parent = this.m_freeList; this.m_freeList = a; }, insertLeaf: function (a) { ++this.m_insertionCount; if (null == this.m_root) (this.m_root = a), (this.m_root.parent = null); else { var b = this.m_root; if (0 == b.isLeaf()) for ( var c = (a.aabb.lowerBound.x + a.aabb.upperBound.x) / 2, e = (a.aabb.lowerBound.y + a.aabb.upperBound.y) / 2; ; ) { var f = b.child1; b = b.child2; b = Math.abs((f.aabb.lowerBound.x + f.aabb.upperBound.x) / 2 - c) + Math.abs((f.aabb.lowerBound.y + f.aabb.upperBound.y) / 2 - e) < Math.abs((b.aabb.lowerBound.x + b.aabb.upperBound.x) / 2 - c) + Math.abs((b.aabb.lowerBound.y + b.aabb.upperBound.y) / 2 - e) ? f : b; if (0 != b.isLeaf()) break; } c = b.parent; e = this.allocateNode(); e.parent = c; e.userData = null; e.aabb.combine(a.aabb, b.aabb); if (null != c) for ( b.parent.child1 == b ? (c.child1 = e) : (c.child2 = e), e.child1 = b, e.child2 = a, b.parent = e, a.parent = e; !c.aabb.contains(e.aabb) && (c.aabb.combine(c.child1.aabb, c.child2.aabb), (e = c), (c = c.parent), null != c); ); else (e.child1 = b), (e.child2 = a), (b.parent = e), (this.m_root = a.parent = e); } }, oldAABB: null, removeLeaf: function (a) { if (a == this.m_root) this.m_root = null; else { var b = a.parent, c = b.parent; a = b.child1 == a ? b.child2 : b.child1; if (null != c) for ( c.child1 == b ? (c.child1 = a) : (c.child2 = a), a.parent = c, this.freeNode(b); null != c; ) { this.oldAABB.setTo(c.aabb); c.aabb.combine(c.child1.aabb, c.child2.aabb); if (this.oldAABB.contains(c.aabb)) break; c = c.parent; } else (this.m_root = a), (a.parent = null), this.freeNode(b); } }, m_root: null, m_freeList: null, m_path: null, m_insertionCount: null, __class__: yn }; var gf = function () {}; h['box2D.collision.QueryCallback'] = gf; gf.__name__ = 'box2D.collision.QueryCallback'; gf.__isInterface__ = !0; gf.prototype = { queryCallback: null, __class__: gf }; var vk = function () {}; h['box2D.collision.IBroadPhase'] = vk; vk.__name__ = 'box2D.collision.IBroadPhase'; vk.__isInterface__ = !0; vk.prototype = { createProxy: null, destroyProxy: null, moveProxy: null, testOverlap: null, getUserData: null, getFatAABB: null, getProxyCount: null, updatePairs: null, query: null, rayCast: null, validate: null, rebalance: null, __class__: vk }; var wk = function () { this.m_tree = new yn(); this.m_moveBuffer = []; this.m_pairBuffer = []; this.m_proxyCount = this.m_pairCount = 0; }; h['box2D.collision.B2DynamicTreeBroadPhase'] = wk; wk.__name__ = 'box2D.collision.B2DynamicTreeBroadPhase'; wk.__interfaces__ = [gf, vk]; wk.prototype = { createProxy: function (a, b) { a = this.m_tree.createProxy(a, b); ++this.m_proxyCount; this.bufferMove(a); return a; }, destroyProxy: function (a) { this.unBufferMove(a); --this.m_proxyCount; this.m_tree.destroyProxy(a); }, moveProxy: function (a, b, c) { this.m_tree.moveProxy(a, b, c) && this.bufferMove(a); }, testOverlap: function (a, b) { a = this.m_tree.getFatAABB(a); b = this.m_tree.getFatAABB(b); return a.testOverlap(b); }, getUserData: function (a) { return this.m_tree.getUserData(a); }, getFatAABB: function (a) { return this.m_tree.getFatAABB(a); }, getProxyCount: function () { return this.m_proxyCount; }, updatePairs: function (a) { for (var b = (this.m_pairCount = 0), c = this.m_moveBuffer; b < c.length; ) { var e = c[b]; ++b; this.cur_queryProxy = e; e = this.m_tree.getFatAABB(e); this.m_tree.query(this, e); } this.cur_queryProxy = null; for (b = this.m_moveBuffer.length; 0 <= --b; ) this.m_moveBuffer.pop(); c = !0; for (b = 0; c; ) if (b >= this.m_pairCount) c = !1; else for ( e = this.m_pairBuffer[b], a.addPair(this.m_tree.getUserData(e.proxyA), this.m_tree.getUserData(e.proxyB)), ++b; b < this.m_pairCount; ) { var f = this.m_pairBuffer[b]; if (f.proxyA != e.proxyA || f.proxyB != e.proxyB) break; ++b; } }, queryCallback: function (a) { if (a == this.cur_queryProxy) return !0; this.m_pairCount == this.m_pairBuffer.length && (this.m_pairBuffer[this.m_pairCount] = new zn()); var b = this.m_pairBuffer[this.m_pairCount]; a.id < this.cur_queryProxy.id ? ((b.proxyA = a), (b.proxyB = this.cur_queryProxy)) : ((b.proxyA = this.cur_queryProxy), (b.proxyB = a)); ++this.m_pairCount; return !0; }, query: function (a, b) { this.m_tree.query(a, b); }, rayCast: function (a, b) { this.m_tree.rayCast(a, b); }, validate: function () {}, rebalance: function (a) { this.m_tree.rebalance(a); }, bufferMove: function (a) { this.m_moveBuffer[this.m_moveBuffer.length] = a; }, unBufferMove: function (a) { A.remove(this.m_moveBuffer, a); }, comparePairs: function (a, b) { return 0; }, m_tree: null, m_proxyCount: null, m_moveBuffer: null, m_pairBuffer: null, m_pairCount: null, cur_queryProxy: null, __class__: wk }; var rj = function () { this.aabb = new ka(); this.id = rj.currentID++; }; h['box2D.collision.B2DynamicTreeNode'] = rj; rj.__name__ = 'box2D.collision.B2DynamicTreeNode'; rj.prototype = { id: null, isLeaf: function () { return null == this.child1; }, userData: null, aabb: null, parent: null, child1: null, child2: null, __class__: rj }; var zn = function () {}; h['box2D.collision.B2DynamicTreePair'] = zn; zn.__name__ = 'box2D.collision.B2DynamicTreePair'; zn.prototype = { proxyA: null, proxyB: null, __class__: zn }; var lh = function () { this.m_pointCount = 0; this.m_points = []; for (var a = 0, b = da.b2_maxManifoldPoints; a < b; ) { var c = a++; this.m_points[c] = new An(); } this.m_localPlaneNormal = new P(); this.m_localPoint = new P(); }; h['box2D.collision.B2Manifold'] = lh; lh.__name__ = 'box2D.collision.B2Manifold'; lh.prototype = { reset: function () { for (var a = 0, b = da.b2_maxManifoldPoints; a < b; ) { var c = a++; this.m_points[c].reset(); } a = this.m_localPlaneNormal; a.x = 0; a.y = 0; a = this.m_localPoint; a.x = 0; this.m_pointCount = this.m_type = a.y = 0; }, set: function (a) { this.m_pointCount = a.m_pointCount; for (var b = 0, c = da.b2_maxManifoldPoints; b < c; ) { var e = b++; this.m_points[e].set(a.m_points[e]); } b = this.m_localPlaneNormal; c = a.m_localPlaneNormal; b.x = c.x; b.y = c.y; b = this.m_localPoint; c = a.m_localPoint; b.x = c.x; b.y = c.y; this.m_type = a.m_type; }, copy: function () { var a = new lh(); a.set(this); return a; }, m_points: null, m_localPlaneNormal: null, m_localPoint: null, m_type: null, m_pointCount: null, __class__: lh }; var An = function () { this.m_localPoint = new P(); this.m_id = new Tb(); this.reset(); }; h['box2D.collision.B2ManifoldPoint'] = An; An.__name__ = 'box2D.collision.B2ManifoldPoint'; An.prototype = { reset: function () { var a = this.m_localPoint; a.x = 0; this.m_tangentImpulse = this.m_normalImpulse = a.y = 0; this.m_id.set_key(0); }, set: function (a) { var b = this.m_localPoint, c = a.m_localPoint; b.x = c.x; b.y = c.y; this.m_normalImpulse = a.m_normalImpulse; this.m_tangentImpulse = a.m_tangentImpulse; this.m_id.set(a.m_id); }, m_localPoint: null, m_normalImpulse: null, m_tangentImpulse: null, m_id: null, __class__: An }; var aw = function () { this.R = new yc(); this.center = new P(); this.extents = new P(); }; h['box2D.collision.B2OBB'] = aw; aw.__name__ = 'box2D.collision.B2OBB'; aw.prototype = { R: null, center: null, extents: null, __class__: aw }; var uk = function (a, b, c) { null == c && (c = 1); this.p1 = new P(); this.p2 = new P(); if (null != a) { var e = this.p1; e.x = a.x; e.y = a.y; } null != b && ((e = this.p2), (e.x = b.x), (e.y = b.y)); this.maxFraction = c; }; h['box2D.collision.B2RayCastInput'] = uk; uk.__name__ = 'box2D.collision.B2RayCastInput'; uk.prototype = { p1: null, p2: null, maxFraction: null, __class__: uk }; var Bn = function () { this.normal = new P(); }; h['box2D.collision.B2RayCastOutput'] = Bn; Bn.__name__ = 'box2D.collision.B2RayCastOutput'; Bn.prototype = { normal: null, fraction: null, __class__: Bn }; var hf = function () { this.m_localPoint = new P(); this.m_axis = new P(); }; h['box2D.collision.B2SeparationFunction'] = hf; hf.__name__ = 'box2D.collision.B2SeparationFunction'; hf.prototype = { initialize: function (a, b, c, e, f) { this.m_proxyA = b; this.m_proxyB = e; b = a.count; da.b2Assert(0 < b && 3 > b); if (1 == b) { this.m_type = hf.e_points; var g = this.m_proxyA.getVertex(a.indexA[0]); a = this.m_proxyB.getVertex(a.indexB[0]); var d = g; var l = c.R; g = c.position.x + (l.col1.x * d.x + l.col2.x * d.y); c = c.position.y + (l.col1.y * d.x + l.col2.y * d.y); d = a; l = f.R; a = f.position.x + (l.col1.x * d.x + l.col2.x * d.y); f = f.position.y + (l.col1.y * d.x + l.col2.y * d.y); this.m_axis.x = a - g; this.m_axis.y = f - c; this.m_axis.normalize(); } else if (a.indexB[0] == a.indexB[1]) { this.m_type = hf.e_faceA; b = this.m_proxyA.getVertex(a.indexA[0]); e = this.m_proxyA.getVertex(a.indexA[1]); a = this.m_proxyB.getVertex(a.indexB[0]); this.m_localPoint.x = 0.5 * (b.x + e.x); this.m_localPoint.y = 0.5 * (b.y + e.y); var v = this.m_axis; b = S.crossVF(S.subtractVVPooled(e, b), 1, !0); v.x = b.x; v.y = b.y; this.m_axis.normalize(); d = this.m_axis; l = c.R; b = l.col1.x * d.x + l.col2.x * d.y; e = l.col1.y * d.x + l.col2.y * d.y; d = this.m_localPoint; l = c.R; g = c.position.x + (l.col1.x * d.x + l.col2.x * d.y); c = c.position.y + (l.col1.y * d.x + l.col2.y * d.y); d = a; l = f.R; a = f.position.x + (l.col1.x * d.x + l.col2.x * d.y); f = f.position.y + (l.col1.y * d.x + l.col2.y * d.y); 0 > (a - g) * b + (f - c) * e && ((v = this.m_axis), (v.x = -v.x), (v.y = -v.y)); } else if (a.indexA[0] == a.indexA[0]) (this.m_type = hf.e_faceB), (l = this.m_proxyB.getVertex(a.indexB[0])), (d = this.m_proxyB.getVertex(a.indexB[1])), (g = this.m_proxyA.getVertex(a.indexA[0])), (this.m_localPoint.x = 0.5 * (l.x + d.x)), (this.m_localPoint.y = 0.5 * (l.y + d.y)), (v = this.m_axis), (b = S.crossVF(S.subtractVVPooled(d, l), 1, !0)), (v.x = b.x), (v.y = b.y), this.m_axis.normalize(), (d = this.m_axis), (l = f.R), (b = l.col1.x * d.x + l.col2.x * d.y), (e = l.col1.y * d.x + l.col2.y * d.y), (d = this.m_localPoint), (l = f.R), (a = f.position.x + (l.col1.x * d.x + l.col2.x * d.y)), (f = f.position.y + (l.col1.y * d.x + l.col2.y * d.y)), (d = g), (l = c.R), (g = c.position.x + (l.col1.x * d.x + l.col2.x * d.y)), (c = c.position.y + (l.col1.y * d.x + l.col2.y * d.y)), 0 > (g - a) * b + (c - f) * e && ((v = this.m_axis), (v.x = -v.x), (v.y = -v.y)); else { b = this.m_proxyA.getVertex(a.indexA[0]); e = this.m_proxyA.getVertex(a.indexA[1]); l = this.m_proxyB.getVertex(a.indexB[0]); d = this.m_proxyB.getVertex(a.indexB[1]); var n = S.mulMV(c.R, S.subtractVVPooled(e, b), !0); f = S.mulMV(f.R, S.subtractVVPooled(d, l), !0); c = n.x * n.x + n.y * n.y; g = f.x * f.x + f.y * f.y; v = S.subtractVVPooled(f, n); a = n.x * v.x + n.y * v.y; v = f.x * v.x + f.y * v.y; n = n.x * f.x + n.y * f.y; var k = c * g - n * n; f = 0; 0 != k && (f = S.clamp((n * v - a * g) / k, 0, 1)); 0 > (n * f + v) / g && (f = S.clamp((n - a) / c, 0, 1)); g = P.getFromPool(); g.x = b.x + f * (e.x - b.x); g.y = b.y + f * (e.y - b.y); a = P.getFromPool(); a.x = l.x + f * (d.x - l.x); a.y = l.y + f * (d.y - l.y); 0 == f || 1 == f ? ((this.m_type = hf.e_faceB), (v = this.m_axis), (b = S.crossVF(S.subtractVVPooled(d, l), 1, !0)), (v.x = b.x), (v.y = b.y), this.m_axis.normalize(), (v = this.m_localPoint), (v.x = a.x), (v.y = a.y)) : ((this.m_type = hf.e_faceA), (v = this.m_axis), (b = S.crossVF(S.subtractVVPooled(e, b), 1, !0)), (v.x = b.x), (v.y = b.y), (v = this.m_localPoint), (v.x = g.x), (v.y = g.y)); 0 > f && ((v = this.m_axis), (v.x = -v.x), (v.y = -v.y)); } }, evaluate: function (a, b) { var c; if (this.m_type == hf.e_points) { var e = S.mulTMV(a.R, this.m_axis, !0); var f = S.mulTMV(b.R, this.m_axis.getNegativePooled(), !0); e = this.m_proxyA.getSupportVertex(e); f = this.m_proxyB.getSupportVertex(f); a = S.mulX(a, e, !0); b = S.mulX(b, f, !0); return (c = (b.x - a.x) * this.m_axis.x + (b.y - a.y) * this.m_axis.y); } if (this.m_type == hf.e_faceA) return ( (c = S.mulMV(a.R, this.m_axis, !0)), (a = S.mulX(a, this.m_localPoint, !0)), (f = S.mulTMV(b.R, c.getNegativePooled(), !0)), (f = this.m_proxyB.getSupportVertex(f)), (b = S.mulX(b, f, !0)), (c = (b.x - a.x) * c.x + (b.y - a.y) * c.y) ); if (this.m_type == hf.e_faceB) return ( (c = S.mulMV(b.R, this.m_axis, !0)), (b = S.mulX(b, this.m_localPoint, !0)), (e = S.mulTMV(a.R, c.getNegativePooled(), !0)), (e = this.m_proxyA.getSupportVertex(e)), (a = S.mulX(a, e, !0)), (c = (a.x - b.x) * c.x + (a.y - b.y) * c.y) ); da.b2Assert(!1); return 0; }, m_proxyA: null, m_proxyB: null, m_type: null, m_localPoint: null, m_axis: null, __class__: hf }; var xk = function () { this.useCache = !1; this.indexA = []; this.indexB = []; }; h['box2D.collision.B2SimplexCache'] = xk; xk.__name__ = 'box2D.collision.B2SimplexCache'; xk.prototype = { metric: null, count: null, indexA: null, indexB: null, useCache: null, __class__: xk }; var Cn = function () { this.proxyA = new Ng(); this.proxyB = new Ng(); this.sweepA = new mh(); this.sweepB = new mh(); }; h['box2D.collision.B2TOIInput'] = Cn; Cn.__name__ = 'box2D.collision.B2TOIInput'; Cn.prototype = { proxyA: null, proxyB: null, sweepA: null, sweepB: null, tolerance: null, __class__: Cn }; var Xe = function (a, b) { this.position = new P(); this.R = new yc(); if (null != a) { var c = this.position; c.x = a.x; c.y = a.y; this.R.setM(b); } }; h['box2D.common.math.B2Transform'] = Xe; Xe.__name__ = 'box2D.common.math.B2Transform'; Xe.prototype = { initialize: function (a, b) { var c = this.position; c.x = a.x; c.y = a.y; this.R.setM(b); }, setIdentity: function () { var a = this.position; a.x = 0; a.y = 0; this.R.setIdentity(); }, set: function (a) { var b = this.position, c = a.position; b.x = c.x; b.y = c.y; this.R.setM(a.R); }, getAngle: function () { return Math.atan2(this.R.col1.y, this.R.col1.x); }, multiply: function (a) { a = this.R.multiplyV(a); a.add(this.position); return a; }, multiplyInPlace: function (a) { this.R.multiplyVInPlace(a); a.add(this.position); }, position: null, R: null, __class__: Xe }; var yc = function () { this.col1 = new P(0, 1); this.col2 = new P(0, 1); }; h['box2D.common.math.B2Mat22'] = yc; yc.__name__ = 'box2D.common.math.B2Mat22'; yc.fromAngle = function (a) { var b = new yc(); b.set(a); return b; }; yc.fromVV = function (a, b) { var c = new yc(); c.setVV(a, b); return c; }; yc.prototype = { set: function (a) { var b = Math.cos(a); a = Math.sin(a); this.col1.x = b; this.col2.x = -a; this.col1.y = a; this.col2.y = b; }, setVV: function (a, b) { var c = this.col1; c.x = a.x; c.y = a.y; c = this.col2; c.x = b.x; c.y = b.y; }, copy: function () { var a = new yc(); a.setM(this); return a; }, setM: function (a) { var b = this.col1, c = a.col1; b.x = c.x; b.y = c.y; b = this.col2; c = a.col2; b.x = c.x; b.y = c.y; }, addM: function (a) { this.col1.x += a.col1.x; this.col1.y += a.col1.y; this.col2.x += a.col2.x; this.col2.y += a.col2.y; }, multiplyV: function (a) { return new P( this.col1.x * a.x + this.col2.x * a.y, this.col1.y * a.x + this.col2.y * a.y ); }, multiplyVInPlace: function (a) { var b = this.col1.x * a.x + this.col2.x * a.y, c = this.col1.y * a.x + this.col2.y * a.y; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; }, setIdentity: function () { this.col1.x = 1; this.col2.x = 0; this.col1.y = 0; this.col2.y = 1; }, setZero: function () { this.col1.x = 0; this.col2.x = 0; this.col1.y = 0; this.col2.y = 0; }, setAngle: function (a) { this.col1.x = Math.cos(a); this.col1.y = Math.sin(a); this.col2.x = -this.col1.y; this.col2.y = this.col1.x; }, getAngle: function () { return Math.atan2(this.col1.y, this.col1.x); }, getInverse: function (a) { var b = this.col1.x, c = this.col2.x, e = this.col1.y, f = this.col2.y, g = b * f - c * e; 0 != g && (g = 1 / g); a.col1.x = g * f; a.col2.x = -g * c; a.col1.y = -g * e; a.col2.y = g * b; return a; }, solve: function (a, b, c) { var e = this.col1.x, f = this.col2.x, g = this.col1.y, d = this.col2.y, l = e * d - f * g; 0 != l && (l = 1 / l); a.x = l * (d * b - f * c); a.y = l * (e * c - g * b); return a; }, abs: function () { this.col1.abs(); this.col2.abs(); }, col1: null, col2: null, __class__: yc }; var Jb = function () {}; h['box2D.collision.B2TimeOfImpact'] = Jb; Jb.__name__ = 'box2D.collision.B2TimeOfImpact'; Jb.timeOfImpact = function (a) { ++Jb.b2_toiCalls; var b = a.proxyA, c = a.proxyB, e = a.sweepA, f = a.sweepB; da.b2Assert(e.t0 == f.t0); da.b2Assert(1 - e.t0 > Number.MIN_VALUE); var g = b.m_radius + c.m_radius; a = a.tolerance; var d = 0, l = 0, v = 0; Jb.s_cache.count = 0; for (Jb.s_distanceInput.useRadii = !1; ; ) { e.getTransform(Jb.s_xfA, d); f.getTransform(Jb.s_xfB, d); Jb.s_distanceInput.proxyA = b; Jb.s_distanceInput.proxyB = c; Jb.s_distanceInput.transformA = Jb.s_xfA; Jb.s_distanceInput.transformB = Jb.s_xfB; xe.distance(Jb.s_distanceOutput, Jb.s_cache, Jb.s_distanceInput); if (0 >= Jb.s_distanceOutput.distance) { d = 1; break; } Jb.s_fcn.initialize(Jb.s_cache, b, Jb.s_xfA, c, Jb.s_xfB); var n = Jb.s_fcn.evaluate(Jb.s_xfA, Jb.s_xfB); if (0 >= n) { d = 1; break; } 0 == l && (v = n > g ? S.max(g - a, 0.75 * g) : S.max(n - a, 0.02 * g)); if (n - v < 0.5 * a) { if (0 == l) { d = 1; break; } break; } var k = d, m = d, h = 1; e.getTransform(Jb.s_xfA, h); f.getTransform(Jb.s_xfB, h); var t = Jb.s_fcn.evaluate(Jb.s_xfA, Jb.s_xfB); if (t >= v) { d = 1; break; } for (var u = 0; ; ) { var q = 0 != (u & 1) ? m + ((v - n) * (h - m)) / (t - n) : 0.5 * (m + h); e.getTransform(Jb.s_xfA, q); f.getTransform(Jb.s_xfB, q); var r = Jb.s_fcn.evaluate(Jb.s_xfA, Jb.s_xfB); if (S.abs(r - v) < 0.025 * a) { k = q; break; } r > v ? ((m = q), (n = r)) : ((h = q), (t = r)); ++u; ++Jb.b2_toiRootIters; if (50 == u) break; } Jb.b2_toiMaxRootIters = S.max(Jb.b2_toiMaxRootIters, u) | 0; if (k < (1 + 100 * Number.MIN_VALUE) * d) break; d = k; ++l; ++Jb.b2_toiIters; if (1e3 == l) break; } Jb.b2_toiMaxIters = S.max(Jb.b2_toiMaxIters, l) | 0; return d; }; var sj = function () { this.m_normal = new P(); this.m_points = []; for (var a = 0, b = da.b2_maxManifoldPoints; a < b; ) { var c = a++; this.m_points[c] = new P(); } }; h['box2D.collision.B2WorldManifold'] = sj; sj.__name__ = 'box2D.collision.B2WorldManifold'; sj.prototype = { reset: function () { var a = this.m_normal; a.x = 0; for (var b = (a.y = 0), c = da.b2_maxManifoldPoints; b < c; ) (a = b++), (a = this.m_points[a]), (a.x = 0), (a.y = 0); }, initialize: function (a, b, c, e, f) { if (0 != a.m_pointCount) { var g = this.m_normal; g.x = 0; for (var d = (g.y = 0), l = da.b2_maxManifoldPoints; d < l; ) { var v = d++; g = this.m_points[v]; g.x = 0; g.y = 0; } switch (a.m_type) { case 1: var n = b.R; g = a.m_localPoint; d = b.position.x + n.col1.x * g.x + n.col2.x * g.y; b = b.position.y + n.col1.y * g.x + n.col2.y * g.y; n = e.R; g = a.m_points[0].m_localPoint; a = e.position.x + n.col1.x * g.x + n.col2.x * g.y; e = e.position.y + n.col1.y * g.x + n.col2.y * g.y; g = a - d; n = e - b; l = g * g + n * n; l > Number.MIN_VALUE * Number.MIN_VALUE ? ((l = Math.sqrt(l)), (this.m_normal.x = g / l), (this.m_normal.y = n / l)) : ((this.m_normal.x = 1), (this.m_normal.y = 0)); b += c * this.m_normal.y; e -= f * this.m_normal.y; this.m_points[0].x = 0.5 * (d + c * this.m_normal.x + (a - f * this.m_normal.x)); this.m_points[0].y = 0.5 * (b + e); break; case 2: n = b.R; g = a.m_localPlaneNormal; var k = n.col1.x * g.x + n.col2.x * g.y; var m = n.col1.y * g.x + n.col2.y * g.y; n = b.R; g = a.m_localPoint; var h = b.position.x + n.col1.x * g.x + n.col2.x * g.y; var t = b.position.y + n.col1.y * g.x + n.col2.y * g.y; this.m_normal.x = k; this.m_normal.y = m; d = 0; for (l = a.m_pointCount; d < l; ) { v = d++; n = e.R; g = a.m_points[v].m_localPoint; var u = e.position.x + n.col1.x * g.x + n.col2.x * g.y; g = e.position.y + n.col1.y * g.x + n.col2.y * g.y; this.m_points[v].x = u + 0.5 * (c - (u - h) * k - (g - t) * m - f) * k; this.m_points[v].y = g + 0.5 * (c - (u - h) * k - (g - t) * m - f) * m; } break; case 4: for ( n = e.R, g = a.m_localPlaneNormal, k = n.col1.x * g.x + n.col2.x * g.y, m = n.col1.y * g.x + n.col2.y * g.y, n = e.R, g = a.m_localPoint, h = e.position.x + n.col1.x * g.x + n.col2.x * g.y, t = e.position.y + n.col1.y * g.x + n.col2.y * g.y, this.m_normal.x = -k, this.m_normal.y = -m, d = 0, l = a.m_pointCount; d < l; ) (v = d++), (n = b.R), (g = a.m_points[v].m_localPoint), (u = b.position.x + n.col1.x * g.x + n.col2.x * g.y), (g = b.position.y + n.col1.y * g.x + n.col2.y * g.y), (this.m_points[v].x = u + 0.5 * (f - (u - h) * k - (g - t) * m - c) * k), (this.m_points[v].y = g + 0.5 * (f - (u - h) * k - (g - t) * m - c) * m); } } }, getPoint: function () { return 0 == this.m_points.length ? null : 1 == this.m_points.length ? this.m_points[0] : new P( (this.m_points[0].x + this.m_points[1].x) / 2, (this.m_points[0].y + this.m_points[1].y) / 2 ); }, m_normal: null, m_points: null, __class__: sj }; var Wb = function () { this.m_type = -1; this.m_radius = da.b2_linearSlop; }; h['box2D.collision.shapes.B2Shape'] = Wb; Wb.__name__ = 'box2D.collision.shapes.B2Shape'; Wb.testOverlap = function (a, b, c, e) { Wb.initialized || ((Wb.distanceInput.proxyA = Wb.proxyA), (Wb.distanceInput.proxyB = Wb.proxyB), (Wb.distanceInput.useRadii = !0), (Wb.initialized = !0)); Wb.proxyA.set(a); Wb.proxyB.set(c); Wb.distanceInput.transformA = b; Wb.distanceInput.transformB = e; Wb.simplexCache.count = 0; xe.distance(Wb.distanceOutput, Wb.simplexCache, Wb.distanceInput); return Wb.distanceOutput.distance < 10 * Number.MIN_VALUE; }; Wb.prototype = { copy: function () { return null; }, set: function (a) { this.m_radius = a.m_radius; }, getType: function () { return this.m_type; }, testPoint: function (a, b) { return !1; }, rayCast: function (a, b, c) { return !1; }, computeAABB: function (a, b) {}, computeMass: function (a, b) {}, computeSubmergedArea: function (a, b, c, e) { return 0; }, m_type: null, m_radius: null, __class__: Wb }; var Lc = function (a) { null == a && (a = 0); Wb.call(this); this.m_p = new P(); this.m_type = 0; this.m_radius = a; }; h['box2D.collision.shapes.B2CircleShape'] = Lc; Lc.__name__ = 'box2D.collision.shapes.B2CircleShape'; Lc.__super__ = Wb; Lc.prototype = r(Wb.prototype, { copy: function () { var a = new Lc(); a.set(this); return a; }, set: function (a) { Wb.prototype.set.call(this, a); if (a instanceof Lc) { var b = x.__cast(a, Lc); a = this.m_p; b = b.m_p; a.x = b.x; a.y = b.y; } }, testPoint: function (a, b) { var c = a.R, e = a.position.x + (c.col1.x * this.m_p.x + c.col2.x * this.m_p.y); a = a.position.y + (c.col1.y * this.m_p.x + c.col2.y * this.m_p.y); e = b.x - e; a = b.y - a; return e * e + a * a <= this.m_radius * this.m_radius; }, rayCast: function (a, b, c) { var e = c.R, f = b.p1.x - (c.position.x + (e.col1.x * this.m_p.x + e.col2.x * this.m_p.y)); c = b.p1.y - (c.position.y + (e.col1.y * this.m_p.x + e.col2.y * this.m_p.y)); e = b.p2.x - b.p1.x; var g = b.p2.y - b.p1.y, d = f * e + c * g, l = e * e + g * g, v = d * d - l * (f * f + c * c - this.m_radius * this.m_radius); if (0 > v || l < Number.MIN_VALUE) return !1; d = -(d + Math.sqrt(v)); return 0 <= d && d <= b.maxFraction * l ? ((d /= l), (a.fraction = d), (a.normal.x = f + d * e), (a.normal.y = c + d * g), a.normal.normalize(), !0) : !1; }, computeAABB: function (a, b) { var c = b.R, e = b.position.x + (c.col1.x * this.m_p.x + c.col2.x * this.m_p.y); b = b.position.y + (c.col1.y * this.m_p.x + c.col2.y * this.m_p.y); c = a.lowerBound; var f = e - this.m_radius, g = b - this.m_radius; null == g && (g = 0); null == f && (f = 0); c.x = f; c.y = g; c = a.upperBound; f = e + this.m_radius; g = b + this.m_radius; null == g && (g = 0); null == f && (f = 0); c.x = f; c.y = g; }, computeMass: function (a, b) { a.mass = b * da.b2_pi * this.m_radius * this.m_radius; b = a.center; var c = this.m_p; b.x = c.x; b.y = c.y; a.I = a.mass * (0.5 * this.m_radius * this.m_radius + (this.m_p.x * this.m_p.x + this.m_p.y * this.m_p.y)); }, computeSubmergedArea: function (a, b, c, e) { c = S.mulX(c, this.m_p, !0); var f = -(S.dot(a, c) - b); if (f < -this.m_radius + Number.MIN_VALUE) return 0; if (f > this.m_radius) return (e.x = c.x), (e.y = c.y), Math.PI * this.m_radius * this.m_radius; b = this.m_radius * this.m_radius; var g = f * f; f = b * (Math.asin(f / this.m_radius) + Math.PI / 2) + f * Math.sqrt(b - g); b = (-0.6666666666666666 * Math.pow(b - g, 1.5)) / f; e.x = c.x + a.x * b; e.y = c.y + a.y * b; return f; }, getLocalPosition: function () { return this.m_p; }, setLocalPosition: function (a) { var b = this.m_p; b.x = a.x; b.y = a.y; }, getRadius: function () { return this.m_radius; }, setRadius: function (a) { this.m_radius = a; }, m_p: null, __class__: Lc }); var vg = function (a, b) { Wb.call(this); this.s_supportVec = new P(); this.m_v1 = new P(); this.m_v2 = new P(); this.m_v0 = new P(); this.m_v3 = new P(); this.m_hasVertex3 = this.m_hasVertex0 = !1; this.m_coreV1 = new P(); this.m_coreV2 = new P(); this.m_normal = new P(); this.m_direction = new P(); this.m_cornerDir1 = new P(); this.m_cornerDir2 = new P(); this.m_type = 2; this.m_nextEdge = this.m_prevEdge = null; this.m_v1 = a; this.m_v2 = b; a = this.m_direction; b = this.m_v2.x - this.m_v1.x; var c = this.m_v2.y - this.m_v1.y; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; this.m_length = this.m_direction.normalize(); a = this.m_normal; b = this.m_direction.y; c = -this.m_direction.x; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; a = this.m_coreV1; b = -da.b2_toiSlop * (this.m_normal.x - this.m_direction.x) + this.m_v1.x; c = -da.b2_toiSlop * (this.m_normal.y - this.m_direction.y) + this.m_v1.y; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; a = this.m_coreV2; b = -da.b2_toiSlop * (this.m_normal.x + this.m_direction.x) + this.m_v2.x; c = -da.b2_toiSlop * (this.m_normal.y + this.m_direction.y) + this.m_v2.y; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; this.m_cornerDir1 = this.m_normal; a = this.m_cornerDir2; b = -this.m_normal.x; c = -this.m_normal.y; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; }; h['box2D.collision.shapes.B2EdgeShape'] = vg; vg.__name__ = 'box2D.collision.shapes.B2EdgeShape'; vg.__super__ = Wb; vg.prototype = r(Wb.prototype, { testPoint: function (a, b) { return !1; }, rayCast: function (a, b, c) { var e = b.p2.x - b.p1.x, f = b.p2.y - b.p1.y, g = c.R, d = c.position.x + (g.col1.x * this.m_v1.x + g.col2.x * this.m_v1.y), l = c.position.y + (g.col1.y * this.m_v1.x + g.col2.y * this.m_v1.y), v = c.position.y + (g.col1.y * this.m_v2.x + g.col2.y * this.m_v2.y) - l; c = -(c.position.x + (g.col1.x * this.m_v2.x + g.col2.x * this.m_v2.y) - d); g = 100 * Number.MIN_VALUE; var n = -(e * v + f * c); if (n > g) { d = b.p1.x - d; var k = b.p1.y - l; l = d * v + k * c; if ( 0 <= l && l <= b.maxFraction * n && ((b = -e * k + f * d), -g * n <= b && b <= n * (1 + g)) ) return ( (a.fraction = l / n), (b = Math.sqrt(v * v + c * c)), (a.normal.x = v / b), (a.normal.y = c / b), !0 ); } return !1; }, computeAABB: function (a, b) { var c = b.R, e = b.position.x + (c.col1.x * this.m_v1.x + c.col2.x * this.m_v1.y), f = b.position.y + (c.col1.y * this.m_v1.x + c.col2.y * this.m_v1.y), g = b.position.x + (c.col1.x * this.m_v2.x + c.col2.x * this.m_v2.y); b = b.position.y + (c.col1.y * this.m_v2.x + c.col2.y * this.m_v2.y); e < g ? ((a.lowerBound.x = e), (a.upperBound.x = g)) : ((a.lowerBound.x = g), (a.upperBound.x = e)); f < b ? ((a.lowerBound.y = f), (a.upperBound.y = b)) : ((a.lowerBound.y = b), (a.upperBound.y = f)); }, computeMass: function (a, b) { a.mass = 0; b = a.center; var c = this.m_v1; b.x = c.x; b.y = c.y; a.I = 0; }, computeSubmergedArea: function (a, b, c, e) { var f = new P(a.x * b, a.y * b), g = S.mulX(c, this.m_v1, !0); c = S.mulX(c, this.m_v2, !0); var d = S.dot(a, g) - b; a = S.dot(a, c) - b; if (0 < d) { if (0 < a) return 0; g.x = (-a / (d - a)) * g.x + (d / (d - a)) * c.x; g.y = (-a / (d - a)) * g.y + (d / (d - a)) * c.y; } else 0 < a && ((c.x = (-a / (d - a)) * g.x + (d / (d - a)) * c.x), (c.y = (-a / (d - a)) * g.y + (d / (d - a)) * c.y)); e.x = (f.x + g.x + c.x) / 3; e.y = (f.y + g.y + c.y) / 3; return 0.5 * ((g.x - f.x) * (c.y - f.y) - (g.y - f.y) * (c.x - f.x)); }, getLength: function () { return this.m_length; }, getVertex1: function () { return this.m_v1; }, getVertex2: function () { return this.m_v2; }, getCoreVertex1: function () { return this.m_coreV1; }, getCoreVertex2: function () { return this.m_coreV2; }, getNormalVector: function () { return this.m_normal; }, getDirectionVector: function () { return this.m_direction; }, getCorner1Vector: function () { return this.m_cornerDir1; }, getCorner2Vector: function () { return this.m_cornerDir2; }, corner1IsConvex: function () { return this.m_cornerConvex1; }, corner2IsConvex: function () { return this.m_cornerConvex2; }, getFirstVertex: function (a) { var b = a.R; return new P( a.position.x + (b.col1.x * this.m_coreV1.x + b.col2.x * this.m_coreV1.y), a.position.y + (b.col1.y * this.m_coreV1.x + b.col2.y * this.m_coreV1.y) ); }, getNextEdge: function () { return this.m_nextEdge; }, getPrevEdge: function () { return this.m_prevEdge; }, s_supportVec: null, support: function (a, b, c) { var e = a.R, f = a.position.x + (e.col1.x * this.m_coreV1.x + e.col2.x * this.m_coreV1.y), g = a.position.y + (e.col1.y * this.m_coreV1.x + e.col2.y * this.m_coreV1.y), d = a.position.x + (e.col1.x * this.m_coreV2.x + e.col2.x * this.m_coreV2.y); a = a.position.y + (e.col1.y * this.m_coreV2.x + e.col2.y * this.m_coreV2.y); f * b + g * c > d * b + a * c ? ((this.s_supportVec.x = f), (this.s_supportVec.y = g)) : ((this.s_supportVec.x = d), (this.s_supportVec.y = a)); return this.s_supportVec; }, copy: function () { var a = new vg(this.m_v1, this.m_v2); a.set(this); var b = x.__cast(a, vg), c = b.m_v0, e = this.m_v0; c.x = e.x; c.y = e.y; c = b.m_v3; e = this.m_v3; c.x = e.x; c.y = e.y; b.m_hasVertex0 = this.m_hasVertex0; b.m_hasVertex3 = this.m_hasVertex3; return a; }, setPrevEdge: function (a, b, c, e) { this.m_prevEdge = a; this.m_coreV1 = b; this.m_cornerDir1 = c; this.m_cornerConvex1 = e; }, setNextEdge: function (a, b, c, e) { this.m_nextEdge = a; this.m_coreV2 = b; this.m_cornerDir2 = c; this.m_cornerConvex2 = e; }, m_v1: null, m_v2: null, m_v0: null, m_v3: null, m_hasVertex0: null, m_hasVertex3: null, m_coreV1: null, m_coreV2: null, m_length: null, m_normal: null, m_direction: null, m_cornerDir1: null, m_cornerDir2: null, m_cornerConvex1: null, m_cornerConvex2: null, m_nextEdge: null, m_prevEdge: null, __class__: vg }); var tj = function () { this.mass = 0; this.center = new P(0, 0); this.I = 0; }; h['box2D.collision.shapes.B2MassData'] = tj; tj.__name__ = 'box2D.collision.shapes.B2MassData'; tj.prototype = { mass: null, center: null, I: null, __class__: tj }; var Db = function () { Wb.call(this); this.m_type = 1; this.m_centroid = new P(); this.m_vertices = []; this.m_normals = []; }; h['box2D.collision.shapes.B2PolygonShape'] = Db; Db.__name__ = 'box2D.collision.shapes.B2PolygonShape'; Db.asArray = function (a, b) { var c = new Db(); c.setAsArray(a, b); return c; }; Db.asVector = function (a, b) { var c = new Db(); c.setAsVector(a, b); return c; }; Db.asBox = function (a, b) { var c = new Db(); c.setAsBox(a, b); return c; }; Db.asOrientedBox = function (a, b, c, e) { null == e && (e = 0); var f = new Db(); f.setAsOrientedBox(a, b, c, e); return f; }; Db.asEdge = function (a, b) { var c = new Db(); c.setAsEdge(a, b); return c; }; Db.computeCentroid = function (a, b) { for (var c = new P(), e = 0, f = 0; f < b; ) { var g = f++, d = a[g]; g = g + 1 < b ? a[(g + 1) | 0] : a[0]; var l = 0.5 * ((d.x - 0) * (g.y - 0) - (d.y - 0) * (g.x - 0)); e += l; c.x += 0.3333333333333333 * l * (0 + d.x + g.x); c.y += 0.3333333333333333 * l * (0 + d.y + g.y); } c.x *= 1 / e; c.y *= 1 / e; return c; }; Db.computeOBB = function (a, b, c) { for (var e, f = [], g = 0, d = c; g < d; ) (e = g++), (f[e] = b[e]); f[c] = f[0]; b = Number.MAX_VALUE; g = 1; for (d = c + 1; g < d; ) { e = g++; var l = f[(e - 1) | 0], v = f[e].x - l.x, n = f[e].y - l.y; e = Math.sqrt(v * v + n * n); v /= e; n /= e; for ( var k = -n, m = v, h = (e = Number.MAX_VALUE), t = -Number.MAX_VALUE, u = -Number.MAX_VALUE, q = 0, r = c; q < r; ) { var w = q++, ia = f[w].x - l.x, x = f[w].y - l.y; w = v * ia + n * x; ia = k * ia + m * x; w < e && (e = w); ia < h && (h = ia); w > t && (t = w); ia > u && (u = ia); } q = (t - e) * (u - h); q < 0.95 * b && ((b = q), (a.R.col1.x = v), (a.R.col1.y = n), (a.R.col2.x = k), (a.R.col2.y = m), (v = 0.5 * (e + t)), (n = 0.5 * (h + u)), (k = a.R), (a.center.x = l.x + (k.col1.x * v + k.col2.x * n)), (a.center.y = l.y + (k.col1.y * v + k.col2.y * n)), (a.extents.x = 0.5 * (t - e)), (a.extents.y = 0.5 * (u - h))); } }; Db.__super__ = Wb; Db.prototype = r(Wb.prototype, { copy: function () { var a = new Db(); a.set(this); return a; }, set: function (a) { Wb.prototype.set.call(this, a); if (a instanceof Db) { a = x.__cast(a, Db); var b = this.m_centroid, c = a.m_centroid; b.x = c.x; b.y = c.y; this.m_vertexCount = a.m_vertexCount; this.reserve(this.m_vertexCount); for (var e = 0, f = this.m_vertexCount; e < f; ) { var g = e++; b = this.m_vertices[g]; c = a.m_vertices[g]; b.x = c.x; b.y = c.y; b = this.m_normals[g]; g = a.m_normals[g]; b.x = g.x; b.y = g.y; } } }, setAsArray: function (a, b) { null == b && (b = 0); for (var c = [], e = 0; e < a.length; ) { var f = a[e]; ++e; c.push(f); } this.setAsVector(c, b); }, setAsVector: function (a, b) { null == b && (b = 0); 0 == b && (b = a.length); da.b2Assert(2 <= b); this.m_vertexCount = b; this.reserve(b); for (var c = 0, e = this.m_vertexCount; c < e; ) { b = c++; var f = this.m_vertices[b], g = a[b]; f.x = g.x; f.y = g.y; } c = 0; for (e = this.m_vertexCount; c < e; ) (b = c++), (a = S.subtractVVPooled( this.m_vertices[b + 1 < this.m_vertexCount ? b + 1 : 0], this.m_vertices[b] )), da.b2Assert(a.lengthSquared() > Number.MIN_VALUE), (f = this.m_normals[b]), (g = S.crossVF(a, 1, !0)), (f.x = g.x), (f.y = g.y), this.m_normals[b].normalize(); this.m_centroid = Db.computeCentroid(this.m_vertices, this.m_vertexCount); }, setAsBox: function (a, b) { this.m_vertexCount = 4; this.reserve(4); var c = this.m_vertices[0], e = -a, f = -b; null == f && (f = 0); null == e && (e = 0); c.x = e; c.y = f; c = this.m_vertices[1]; e = a; f = -b; null == f && (f = 0); null == e && (e = 0); c.x = e; c.y = f; c = this.m_vertices[2]; e = a; f = b; null == f && (f = 0); null == e && (e = 0); c.x = e; c.y = f; c = this.m_vertices[3]; e = -a; f = b; null == f && (f = 0); null == e && (e = 0); c.x = e; c.y = f; c = this.m_normals[0]; e = 0; f = -1; null == f && (f = 0); null == e && (e = 0); c.x = e; c.y = f; c = this.m_normals[1]; e = 1; f = 0; null == f && (f = 0); null == e && (e = 0); c.x = e; c.y = f; c = this.m_normals[2]; e = 0; f = 1; null == f && (f = 0); null == e && (e = 0); c.x = e; c.y = f; c = this.m_normals[3]; e = -1; f = 0; null == f && (f = 0); null == e && (e = 0); c.x = e; c.y = f; c = this.m_centroid; c.x = 0; c.y = 0; }, setAsOrientedBox: function (a, b, c, e) { null == e && (e = 0); this.m_vertexCount = 4; this.reserve(4); var f = this.m_vertices[0], g = -a, d = -b; null == d && (d = 0); null == g && (g = 0); f.x = g; f.y = d; f = this.m_vertices[1]; g = a; d = -b; null == d && (d = 0); null == g && (g = 0); f.x = g; f.y = d; f = this.m_vertices[2]; g = a; d = b; null == d && (d = 0); null == g && (g = 0); f.x = g; f.y = d; f = this.m_vertices[3]; g = -a; d = b; null == d && (d = 0); null == g && (g = 0); f.x = g; f.y = d; f = this.m_normals[0]; g = 0; d = -1; null == d && (d = 0); null == g && (g = 0); f.x = g; f.y = d; f = this.m_normals[1]; g = 1; d = 0; null == d && (d = 0); null == g && (g = 0); f.x = g; f.y = d; f = this.m_normals[2]; g = 0; d = 1; null == d && (d = 0); null == g && (g = 0); f.x = g; f.y = d; f = this.m_normals[3]; g = -1; d = 0; null == d && (d = 0); null == g && (g = 0); f.x = g; f.y = d; this.m_centroid = c; a = new Xe(); a.position = c; a.R.set(e); c = 0; for (e = this.m_vertexCount; c < e; ) (b = c++), (this.m_vertices[b] = S.mulX(a, this.m_vertices[b])), (this.m_normals[b] = S.mulMV(a.R, this.m_normals[b])); }, setAsEdge: function (a, b) { this.m_vertexCount = 2; this.reserve(2); var c = this.m_vertices[0]; c.x = a.x; c.y = a.y; c = this.m_vertices[1]; c.x = b.x; c.y = b.y; this.m_centroid.x = 0.5 * (a.x + b.x); this.m_centroid.y = 0.5 * (a.y + b.y); this.m_normals[0] = S.crossVF(S.subtractVV(b, a), 1); this.m_normals[0].normalize(); this.m_normals[1].x = -this.m_normals[0].x; this.m_normals[1].y = -this.m_normals[0].y; }, testPoint: function (a, b) { var c = a.R; var e = b.x - a.position.x; a = b.y - a.position.y; b = e * c.col1.x + a * c.col1.y; for (var f = e * c.col2.x + a * c.col2.y, g = 0, d = this.m_vertexCount; g < d; ) { var l = g++; c = this.m_vertices[l]; e = b - c.x; a = f - c.y; c = this.m_normals[l]; if (0 < c.x * e + c.y * a) return !1; } return !0; }, rayCast: function (a, b, c) { var e = 0, f = b.maxFraction, g = b.p1.x - c.position.x, d = b.p1.y - c.position.y, l = c.R, v = g * l.col1.x + d * l.col1.y, n = g * l.col2.x + d * l.col2.y; g = b.p2.x - c.position.x; d = b.p2.y - c.position.y; l = c.R; b = g * l.col1.x + d * l.col1.y - v; l = g * l.col2.x + d * l.col2.y - n; for (var k = -1, m = 0, h = this.m_vertexCount; m < h; ) { var t = m++; var u = this.m_vertices[t]; g = u.x - v; d = u.y - n; u = this.m_normals[t]; g = u.x * g + u.y * d; u = u.x * b + u.y * l; if (0 == u) { if (0 > g) return !1; } else 0 > u && g < e * u ? ((e = g / u), (k = t)) : 0 < u && g < f * u && (f = g / u); if (f < e - Number.MIN_VALUE) return !1; } return 0 <= k ? ((a.fraction = e), (l = c.R), (u = this.m_normals[k]), (a.normal.x = l.col1.x * u.x + l.col2.x * u.y), (a.normal.y = l.col1.y * u.x + l.col2.y * u.y), !0) : !1; }, computeAABB: function (a, b) { for ( var c = b.R, e = this.m_vertices[0], f = b.position.x + (c.col1.x * e.x + c.col2.x * e.y), g = b.position.y + (c.col1.y * e.x + c.col2.y * e.y), d = f, l = g, v = 1, n = this.m_vertexCount; v < n; ) { var k = v++; e = this.m_vertices[k]; k = b.position.x + (c.col1.x * e.x + c.col2.x * e.y); e = b.position.y + (c.col1.y * e.x + c.col2.y * e.y); f < k || (f = k); g < e || (g = e); d > k || (d = k); l > e || (l = e); } a.lowerBound.x = f - this.m_radius; a.lowerBound.y = g - this.m_radius; a.upperBound.x = d + this.m_radius; a.upperBound.y = l + this.m_radius; }, computeMass: function (a, b) { if (2 == this.m_vertexCount) (a.center.x = 0.5 * (this.m_vertices[0].x + this.m_vertices[1].x)), (a.center.y = 0.5 * (this.m_vertices[0].y + this.m_vertices[1].y)), (a.mass = 0), (a.I = 0); else { for (var c = 0, e = 0, f = 0, g = 0, d = 0, l = this.m_vertexCount; d < l; ) { var v = d++, n = this.m_vertices[v], k = v + 1 < this.m_vertexCount ? this.m_vertices[(v + 1) | 0] : this.m_vertices[0], m = n.x - 0, h = n.y - 0, t = k.x - 0, u = k.y - 0; v = m * u - h * t; var q = 0.5 * v; f += q; c += 0.3333333333333333 * q * (0 + n.x + k.x); e += 0.3333333333333333 * q * (0 + n.y + k.y); n = m; g += v * (0.3333333333333333 * (0.25 * (n * n + t * n + t * t) + (0 * n + 0 * t)) + 0.3333333333333333 * (0.25 * (h * h + u * h + u * u) + (0 * h + 0 * u))); } a.mass = b * f; d = a.center; c *= 1 / f; e *= 1 / f; null == e && (e = 0); null == c && (c = 0); d.x = c; d.y = e; a.I = b * g; } }, computeSubmergedArea: function (a, b, c, e) { var f = S.mulTMV(c.R, a, !0), g = b - S.dot(a, c.position), d = [], l = 0, v = -1; b = -1; for (var n = !1, k = 0, m = this.m_vertexCount; k < m; ) { a = k++; d[a] = S.dot(f, this.m_vertices[a]) - g; var h = d[a] < -Number.MIN_VALUE; 0 < a && (h ? n || ((v = a - 1), ++l) : n && ((b = a - 1), ++l)); n = h; } switch (l) { case 0: return n ? ((a = new tj()), this.computeMass(a, 1), (c = S.mulX(c, a.center)), (e.x = c.x), (e.y = c.y), a.mass) : 0; case 1: -1 == v ? (v = this.m_vertexCount - 1) : (b = this.m_vertexCount - 1); } a = (v + 1) % this.m_vertexCount; f = (b + 1) % this.m_vertexCount; g = (0 - d[v]) / (d[a] - d[v]); d = (0 - d[b]) / (d[f] - d[b]); v = new P( this.m_vertices[v].x * (1 - g) + this.m_vertices[a].x * g, this.m_vertices[v].y * (1 - g) + this.m_vertices[a].y * g ); d = new P( this.m_vertices[b].x * (1 - d) + this.m_vertices[f].x * d, this.m_vertices[b].y * (1 - d) + this.m_vertices[f].y * d ); b = 0; g = new P(); for (l = this.m_vertices[a]; a != f; ) (a = (a + 1) % this.m_vertexCount), (n = a == f ? d : this.m_vertices[a]), (k = 0.5 * ((l.x - v.x) * (n.y - v.y) - (l.y - v.y) * (n.x - v.x))), (b += k), (g.x += (k * (v.x + l.x + n.x)) / 3), (g.y += (k * (v.y + l.y + n.y)) / 3), (l = n); g.multiply(1 / b); c = S.mulX(c, g); e.x = c.x; e.y = c.y; return b; }, getVertexCount: function () { return this.m_vertexCount; }, getVertices: function () { return this.m_vertices; }, getNormals: function () { return this.m_normals; }, getSupport: function (a) { for ( var b = 0, c = this.m_vertices[0].x * a.x + this.m_vertices[0].y * a.y, e = 1, f = this.m_vertexCount; e < f; ) { var g = e++, d = this.m_vertices[g].x * a.x + this.m_vertices[g].y * a.y; d > c && ((b = g), (c = d)); } return b; }, getSupportVertex: function (a) { for ( var b = 0, c = this.m_vertices[0].x * a.x + this.m_vertices[0].y * a.y, e = 1, f = this.m_vertexCount; e < f; ) { var g = e++, d = this.m_vertices[g].x * a.x + this.m_vertices[g].y * a.y; d > c && ((b = g), (c = d)); } return this.m_vertices[b]; }, validate: function () { return !1; }, reserve: function (a) { for (var b = this.m_vertices.length; b < a; ) { var c = b++; this.m_vertices[c] = new P(); this.m_normals[c] = new P(); } }, m_centroid: null, m_vertices: null, m_normals: null, m_vertexCount: null, __class__: Db }); var yk = function (a, b, c) { this._r = (255 * S.clamp(a, 0, 1)) | 0; this._g = (255 * S.clamp(b, 0, 1)) | 0; this._b = (255 * S.clamp(c, 0, 1)) | 0; }; h['box2D.common.B2Color'] = yk; yk.__name__ = 'box2D.common.B2Color'; yk.prototype = { set: function (a, b, c) { this._r = (255 * S.clamp(a, 0, 1)) | 0; this._g = (255 * S.clamp(b, 0, 1)) | 0; this._b = (255 * S.clamp(c, 0, 1)) | 0; }, r: null, g: null, b: null, color: null, set_r: function (a) { return (this._r = (255 * S.clamp(a, 0, 1)) | 0); }, set_g: function (a) { return (this._g = (255 * S.clamp(a, 0, 1)) | 0); }, set_b: function (a) { return (this._b = (255 * S.clamp(a, 0, 1)) | 0); }, get_color: function () { return (this._r << 16) | (this._g << 8) | this._b; }, _r: null, _g: null, _b: null, __class__: yk, __properties__: { get_color: 'get_color', set_b: 'set_b', set_g: 'set_g', set_r: 'set_r' } }; var da = function () {}; h['box2D.common.B2Settings'] = da; da.__name__ = 'box2D.common.B2Settings'; da.b2MixFriction = function (a, b) { return Math.sqrt(a * b); }; da.b2MixRestitution = function (a, b) { return a > b ? a : b; }; da.b2Assert = function (a) { if (!a) throw M.thrown('Assertion Failed'); }; var Kh = function (a, b, c) { this.col1 = new Ye(); this.col2 = new Ye(); this.col3 = new Ye(); null == a && null == b && null == c ? (this.col1.setZero(), this.col2.setZero(), this.col3.setZero()) : (this.col1.setV(a), this.col2.setV(b), this.col3.setV(c)); }; h['box2D.common.math.B2Mat33'] = Kh; Kh.__name__ = 'box2D.common.math.B2Mat33'; Kh.prototype = { setVVV: function (a, b, c) { this.col1.setV(a); this.col2.setV(b); this.col3.setV(c); }, copy: function () { return new Kh(this.col1, this.col2, this.col3); }, setM: function (a) { this.col1.setV(a.col1); this.col2.setV(a.col2); this.col3.setV(a.col3); }, addM: function (a) { this.col1.x += a.col1.x; this.col1.y += a.col1.y; this.col1.z += a.col1.z; this.col2.x += a.col2.x; this.col2.y += a.col2.y; this.col2.z += a.col2.z; this.col3.x += a.col3.x; this.col3.y += a.col3.y; this.col3.z += a.col3.z; }, setIdentity: function () { this.col1.x = 1; this.col2.x = 0; this.col3.x = 0; this.col1.y = 0; this.col2.y = 1; this.col3.y = 0; this.col1.z = 0; this.col2.z = 0; this.col3.z = 1; }, setZero: function () { this.col1.x = 0; this.col2.x = 0; this.col3.x = 0; this.col1.y = 0; this.col2.y = 0; this.col3.y = 0; this.col1.z = 0; this.col2.z = 0; this.col3.z = 0; }, solve22: function (a, b, c) { var e = this.col1.x, f = this.col2.x, g = this.col1.y, d = this.col2.y, l = e * d - f * g; 0 != l && (l = 1 / l); a.x = l * (d * b - f * c); a.y = l * (e * c - g * b); return a; }, solve33: function (a, b, c, e) { var f = this.col1.x, g = this.col1.y, d = this.col1.z, l = this.col2.x, v = this.col2.y, n = this.col2.z, k = this.col3.x, m = this.col3.y, h = this.col3.z, t = f * (v * h - n * m) + g * (n * k - l * h) + d * (l * m - v * k); 0 != t && (t = 1 / t); a.x = t * (b * (v * h - n * m) + c * (n * k - l * h) + e * (l * m - v * k)); a.y = t * (f * (c * h - e * m) + g * (e * k - b * h) + d * (b * m - c * k)); a.z = t * (f * (v * e - n * c) + g * (n * b - l * e) + d * (l * c - v * b)); return a; }, col1: null, col2: null, col3: null, __class__: Kh }; var S = function () {}; h['box2D.common.math.B2Math'] = S; S.__name__ = 'box2D.common.math.B2Math'; S.__properties__ = { get_MIN_VALUE: 'get_MIN_VALUE', get_MAX_VALUE: 'get_MAX_VALUE' }; S.isValid = function (a) { return isNaN(a) || -Infinity == a || Infinity == a ? !1 : !0; }; S.dot = function (a, b) { return a.x * b.x + a.y * b.y; }; S.crossVV = function (a, b) { return a.x * b.y - a.y * b.x; }; S.crossVF = function (a, b, c) { null == c && (c = !1); if (c) { c = P.getFromPool(); var e = b * a.y; a = -b * a.x; null == a && (a = 0); null == e && (e = 0); c.x = e; c.y = a; } else c = new P(b * a.y, -b * a.x); return c; }; S.crossFV = function (a, b, c) { null == c && (c = !1); if (c) { c = P.getFromPool(); var e = -a * b.y; a *= b.x; null == a && (a = 0); null == e && (e = 0); c.x = e; c.y = a; } else c = new P(-a * b.y, a * b.x); return c; }; S.mulMV = function (a, b, c) { null == c && (c = !1); if (c) { c = P.getFromPool(); var e = a.col1.x * b.x + a.col2.x * b.y; a = a.col1.y * b.x + a.col2.y * b.y; null == a && (a = 0); null == e && (e = 0); c.x = e; c.y = a; } else c = new P(a.col1.x * b.x + a.col2.x * b.y, a.col1.y * b.x + a.col2.y * b.y); return c; }; S.mulTMV = function (a, b, c) { null == c && (c = !1); if (c) { c = P.getFromPool(); var e = S.dot(b, a.col1); a = S.dot(b, a.col2); null == a && (a = 0); null == e && (e = 0); c.x = e; c.y = a; } else c = new P(S.dot(b, a.col1), S.dot(b, a.col2)); return c; }; S.mulX = function (a, b, c) { null == c && (c = !1); b = S.mulMV(a.R, b, c); b.x += a.position.x; b.y += a.position.y; return b; }; S.mulXT = function (a, b, c) { b = S.subtractVVPooled(b, a.position); c = b.x * a.R.col1.x + b.y * a.R.col1.y; b.y = b.x * a.R.col2.x + b.y * a.R.col2.y; b.x = c; return b; }; S.addVV = function (a, b) { return new P(a.x + b.x, a.y + b.y); }; S.subtractVV = function (a, b) { return new P(a.x - b.x, a.y - b.y); }; S.subtractVVPooled = function (a, b) { var c = P.getFromPool(), e = a.x - b.x; a = a.y - b.y; null == a && (a = 0); null == e && (e = 0); c.x = e; c.y = a; return c; }; S.distance = function (a, b) { var c = a.x - b.x; a = a.y - b.y; return Math.sqrt(c * c + a * a); }; S.distanceSquared = function (a, b) { var c = a.x - b.x; a = a.y - b.y; return c * c + a * a; }; S.mulFV = function (a, b) { return new P(a * b.x, a * b.y); }; S.addMM = function (a, b) { return yc.fromVV(S.addVV(a.col1, b.col1), S.addVV(a.col2, b.col2)); }; S.mulMM = function (a, b) { return yc.fromVV(S.mulMV(a, b.col1), S.mulMV(a, b.col2)); }; S.mulTMM = function (a, b) { var c = new P(S.dot(a.col1, b.col1), S.dot(a.col2, b.col1)); a = new P(S.dot(a.col1, b.col2), S.dot(a.col2, b.col2)); return yc.fromVV(c, a); }; S.abs = function (a) { return 0 < a ? a : -a; }; S.absV = function (a) { return new P(S.abs(a.x), S.abs(a.y)); }; S.absM = function (a) { return yc.fromVV(S.absV(a.col1), S.absV(a.col2)); }; S.min = function (a, b) { return a < b ? a : b; }; S.minV = function (a, b) { return new P(S.min(a.x, b.x), S.min(a.y, b.y)); }; S.max = function (a, b) { return a > b ? a : b; }; S.maxV = function (a, b) { return new P(S.max(a.x, b.x), S.max(a.y, b.y)); }; S.clamp = function (a, b, c) { return a < b ? b : a > c ? c : a; }; S.clampV = function (a, b, c) { return S.maxV(b, S.minV(a, c)); }; S.swap = function (a, b) { var c = a[0]; a[0] = b[0]; b[0] = c; }; S.random = function () { return 2 * Math.random() - 1; }; S.randomRange = function (a, b) { return (b - a) * Math.random() + a; }; S.nextPowerOfTwo = function (a) { a |= (a >> 1) & 2147483647; a |= (a >> 2) & 1073741823; a |= (a >> 4) & 268435455; a |= (a >> 8) & 16777215; return (a | ((a >> 16) & 65535)) + 1; }; S.isPowerOfTwo = function (a) { return 0 < a && 0 == (a & (a - 1)); }; S.get_MAX_VALUE = function () { return Number.MAX_VALUE; }; S.get_MIN_VALUE = function () { return Number.MIN_VALUE; }; var mh = function () { this.localCenter = new P(); this.c0 = new P(); this.c = new P(); }; h['box2D.common.math.B2Sweep'] = mh; mh.__name__ = 'box2D.common.math.B2Sweep'; mh.prototype = { set: function (a) { var b = this.localCenter, c = a.localCenter; b.x = c.x; b.y = c.y; b = this.c0; c = a.c0; b.x = c.x; b.y = c.y; b = this.c; c = a.c; b.x = c.x; b.y = c.y; this.a0 = a.a0; this.a = a.a; this.t0 = a.t0; }, copy: function () { var a = new mh(), b = a.localCenter, c = this.localCenter; b.x = c.x; b.y = c.y; b = a.c0; c = this.c0; b.x = c.x; b.y = c.y; b = a.c; c = this.c; b.x = c.x; b.y = c.y; a.a0 = this.a0; a.a = this.a; a.t0 = this.t0; return a; }, getTransform: function (a, b) { a.position.x = (1 - b) * this.c0.x + b * this.c.x; a.position.y = (1 - b) * this.c0.y + b * this.c.y; a.R.set((1 - b) * this.a0 + b * this.a); b = a.R; a.position.x -= b.col1.x * this.localCenter.x + b.col2.x * this.localCenter.y; a.position.y -= b.col1.y * this.localCenter.x + b.col2.y * this.localCenter.y; }, advance: function (a) { if (this.t0 < a && 1 - this.t0 > Number.MIN_VALUE) { var b = (a - this.t0) / (1 - this.t0); this.c0.x = (1 - b) * this.c0.x + b * this.c.x; this.c0.y = (1 - b) * this.c0.y + b * this.c.y; this.a0 = (1 - b) * this.a0 + b * this.a; this.t0 = a; } }, localCenter: null, c0: null, c: null, a0: null, a: null, t0: null, __class__: mh }; var Ye = function (a, b, c) { null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.x = a; this.y = b; this.z = c; }; h['box2D.common.math.B2Vec3'] = Ye; Ye.__name__ = 'box2D.common.math.B2Vec3'; Ye.prototype = { setZero: function () { this.x = this.y = this.z = 0; }, set: function (a, b, c) { this.x = a; this.y = b; this.z = c; }, setV: function (a) { this.x = a.x; this.y = a.y; this.z = a.z; }, getNegative: function () { return new Ye(-this.x, -this.y, -this.z); }, negativeSelf: function () { this.x = -this.x; this.y = -this.y; this.z = -this.z; }, copy: function () { return new Ye(this.x, this.y, this.z); }, add: function (a) { this.x += a.x; this.y += a.y; this.z += a.z; }, subtract: function (a) { this.x -= a.x; this.y -= a.y; this.z -= a.z; }, multiply: function (a) { this.x *= a; this.y *= a; this.z *= a; }, x: null, y: null, z: null, __class__: Ye }; var va = function (a, b) { this.m_xf = new Xe(); this.m_sweep = new mh(); this.m_linearVelocity = new P(); this.m_force = new P(); this.m_flags = 0; a.bullet && (this.m_flags |= va.e_bulletFlag); a.fixedRotation && (this.m_flags |= va.e_fixedRotationFlag); a.allowSleep && (this.m_flags |= va.e_allowSleepFlag); a.awake && (this.m_flags |= va.e_awakeFlag); a.active && (this.m_flags |= va.e_activeFlag); a.ignoreGravity && (this.m_flags |= va.e_ignoreGravityFlag); this.m_world = b; b = this.m_xf.position; var c = a.position; b.x = c.x; b.y = c.y; this.m_xf.R.set(a.angle); b = this.m_sweep.localCenter; b.x = 0; b.y = 0; this.m_sweep.t0 = 1; this.m_sweep.a0 = this.m_sweep.a = a.angle; b = this.m_xf.R; c = this.m_sweep.localCenter; this.m_sweep.c.x = b.col1.x * c.x + b.col2.x * c.y; this.m_sweep.c.y = b.col1.y * c.x + b.col2.y * c.y; this.m_sweep.c.x += this.m_xf.position.x; this.m_sweep.c.y += this.m_xf.position.y; b = this.m_sweep.c0; c = this.m_sweep.c; b.x = c.x; b.y = c.y; this.m_contactList = this.m_controllerList = this.m_jointList = null; this.m_controllerCount = 0; this.m_next = this.m_prev = null; b = this.m_linearVelocity; c = a.linearVelocity; b.x = c.x; b.y = c.y; this.m_angularVelocity = a.angularVelocity; this.m_linearDamping = a.linearDamping; this.m_angularDamping = a.angularDamping; b = this.m_force; var e = (c = 0); null == e && (e = 0); null == c && (c = 0); b.x = c; b.y = e; this.m_sleepTime = this.m_torque = 0; this.m_type = a.type; this.m_invMass = this.m_type == va.b2_dynamicBody ? (this.m_mass = 1) : (this.m_mass = 0); this.m_invI = this.m_I = 0; this.m_inertiaScale = a.inertiaScale; this.m_userData = a.userData; this.m_fixtureList = null; this.m_fixtureCount = 0; this.groupID = a.groupID; this.origin = new P(); this.size = new P(); }; h['box2D.dynamics.B2Body'] = va; va.__name__ = 'box2D.dynamics.B2Body'; va.prototype = { connectEdges: function (a, b, c) { var e = Math.atan2(b.getDirectionVector().y, b.getDirectionVector().x); c = S.mulFV(Math.tan(0.5 * (e - c)), b.getDirectionVector()); c = S.subtractVV(c, b.getNormalVector()); c = S.mulFV(da.b2_toiSlop, c); c = S.addVV(c, b.getVertex1()); var f = S.addVV(a.getDirectionVector(), b.getDirectionVector()); f.normalize(); var g = 0 < S.dot(a.getDirectionVector(), b.getNormalVector()); a.setNextEdge(b, c, f, g); b.setPrevEdge(a, c, f, g); return e; }, createFixture: function (a) { if (1 == this.m_world.isLocked()) return null; var b = new Hf(); b.create(this, this.m_xf, a); 0 != (this.m_flags & va.e_activeFlag) && b.createProxy(this.m_world.m_contactManager.m_broadPhase, this.m_xf); b.m_next = this.m_fixtureList; this.m_fixtureList = b; ++this.m_fixtureCount; b.m_body = this; 0 < b.m_density && this.resetMassData(); this.m_world.m_flags |= ec.e_newFixture; return b; }, createFixture2: function (a, b) { null == b && (b = 0); var c = new If(); c.shape = a; c.density = b; return this.createFixture(c); }, DestroyFixture: function (a) { if (1 != this.m_world.isLocked()) { for (var b = this.m_fixtureList, c = null; null != b; ) { if (b == a) { null != c ? (c.m_next = a.m_next) : (this.m_fixtureList = a.m_next); break; } c = b; b = b.m_next; } for (b = this.m_contactList; null != b; ) { c = b.contact; b = b.next; var e = c.getFixtureA(), f = c.getFixtureB(); (a != e && a != f) || this.m_world.m_contactManager.destroy(c); } 0 != (this.m_flags & va.e_activeFlag) && a.destroyProxy(this.m_world.m_contactManager.m_broadPhase); a.destroy(); a.m_body = null; a.m_next = null; --this.m_fixtureCount; this.resetMassData(); } }, setPositionAndAngle: function (a, b) { if (1 != this.m_world.isLocked()) { this.m_xf.R.set(b); var c = this.m_xf.position; c.x = a.x; c.y = a.y; c = this.m_xf.R; a = this.m_sweep.localCenter; this.m_sweep.c.x = c.col1.x * a.x + c.col2.x * a.y; this.m_sweep.c.y = c.col1.y * a.x + c.col2.y * a.y; this.m_sweep.c.x += this.m_xf.position.x; this.m_sweep.c.y += this.m_xf.position.y; c = this.m_sweep.c0; a = this.m_sweep.c; c.x = a.x; c.y = a.y; this.m_sweep.a0 = this.m_sweep.a = b; b = this.m_world.m_contactManager.m_broadPhase; for (c = this.m_fixtureList; null != c; ) c.synchronize(b, this.m_xf, this.m_xf), (c = c.m_next); this.m_world.m_contactManager.findNewContacts(); } }, setPositionFast: function (a) { if (1 != this.m_world.isLocked()) { var b = this.m_xf.position; b.x = a.x; b.y = a.y; b = this.m_xf.R; a = this.m_sweep.localCenter; this.m_sweep.c.x = b.col1.x * a.x + b.col2.x * a.y; this.m_sweep.c.y = b.col1.y * a.x + b.col2.y * a.y; this.m_sweep.c.x += this.m_xf.position.x; this.m_sweep.c.y += this.m_xf.position.y; b = this.m_sweep.c0; a = this.m_sweep.c; b.x = a.x; b.y = a.y; } }, setTransform: function (a) { this.setPositionAndAngle(a.position, a.getAngle()); }, getTransform: function () { return this.m_xf; }, getPosition: function () { return this.m_xf.position; }, setPosition: function (a) { this.setPositionAndAngle(a, this.getAngle()); }, getAngle: function () { return this.m_sweep.a; }, setAngle: function (a) { this.setPositionAndAngle(this.getPosition(), a); }, getWorldCenter: function () { return this.m_sweep.c; }, getLocalCenter: function () { return this.m_sweep.localCenter; }, setLinearVelocity: function (a) { if (this.m_type != va.b2_staticBody) { var b = this.m_linearVelocity; b.x = a.x; b.y = a.y; } }, getLinearVelocity: function () { return this.m_linearVelocity; }, setAngularVelocity: function (a) { this.m_type != va.b2_staticBody && (this.m_angularVelocity = a); }, getAngularVelocity: function () { return this.m_angularVelocity; }, getDefinition: function () { var a = new ri(); a.type = this.getType(); a.allowSleep = (this.m_flags & va.e_allowSleepFlag) == va.e_allowSleepFlag; a.angle = this.getAngle(); a.angularDamping = this.m_angularDamping; a.angularVelocity = this.m_angularVelocity; a.fixedRotation = (this.m_flags & va.e_fixedRotationFlag) == va.e_fixedRotationFlag; a.bullet = (this.m_flags & va.e_bulletFlag) == va.e_bulletFlag; a.awake = (this.m_flags & va.e_awakeFlag) == va.e_awakeFlag; a.linearDamping = this.m_linearDamping; var b = a.linearVelocity, c = this.getLinearVelocity(); b.x = c.x; b.y = c.y; a.position = this.getPosition(); a.userData = this.getUserData(); return a; }, applyForce: function (a, b) { this.m_type == va.b2_dynamicBody && (0 == this.isAwake() && this.setAwake(!0), (this.m_force.x += a.x), (this.m_force.y += a.y), (this.m_torque += (b.x - this.m_sweep.c.x) * a.y - (b.y - this.m_sweep.c.y) * a.x)); }, applyTorque: function (a) { this.m_type == va.b2_dynamicBody && (0 == this.isAwake() && this.setAwake(!0), (this.m_torque += a)); }, applyImpulse: function (a, b) { this.m_type == va.b2_dynamicBody && (0 == this.isAwake() && this.setAwake(!0), (this.m_linearVelocity.x += this.m_invMass * a.x), (this.m_linearVelocity.y += this.m_invMass * a.y), (this.m_angularVelocity += this.m_invI * ((b.x - this.m_sweep.c.x) * a.y - (b.y - this.m_sweep.c.y) * a.x))); }, split: function (a) { for ( var b = this.getLinearVelocity().copy(), c = this.getAngularVelocity(), e = this.getWorldCenter(), f = this.m_world.createBody(this.getDefinition()), g = null, d = this.m_fixtureList; null != d; ) if (a(d)) { var l = d.m_next; null != g ? (g.m_next = l) : (this.m_fixtureList = l); this.m_fixtureCount--; d.m_next = f.m_fixtureList; f.m_fixtureList = d; f.m_fixtureCount++; d.m_body = f; d = l; } else (g = d), (d = d.m_next); this.resetMassData(); f.resetMassData(); g = this.getWorldCenter(); a = f.getWorldCenter(); g = S.addVV(b, S.crossFV(c, S.subtractVV(g, e))); b = S.addVV(b, S.crossFV(c, S.subtractVV(a, e))); this.setLinearVelocity(g); f.setLinearVelocity(b); this.setAngularVelocity(c); f.setAngularVelocity(c); this.synchronizeFixtures(); f.synchronizeFixtures(); return f; }, merge: function (a) { for (var b = a.m_fixtureList; null != b; ) { var c = b.m_next; a.m_fixtureCount--; b.m_next = this.m_fixtureList; this.m_fixtureList = b; this.m_fixtureCount++; b.m_body = a; b = c; } this.m_fixtureCount = 0; this.getWorldCenter(); a.getWorldCenter(); this.getLinearVelocity().copy(); a.getLinearVelocity().copy(); this.getAngularVelocity(); a.getAngularVelocity(); this.resetMassData(); this.synchronizeFixtures(); }, getMass: function () { return this.m_mass; }, getInertia: function () { return this.m_I; }, getMassData: function (a) { a.mass = this.m_mass; a.I = this.m_I; a = a.center; var b = this.m_sweep.localCenter; a.x = b.x; a.y = b.y; }, setMassData: function (a) { da.b2Assert(0 == this.m_world.isLocked()); if (1 != this.m_world.isLocked() && this.m_type == va.b2_dynamicBody) { this.m_invI = this.m_I = this.m_invMass = 0; this.m_mass = a.mass; 0 >= this.m_mass && (this.m_mass = 1); this.m_invMass = 1 / this.m_mass; 0 < a.I && 0 == (this.m_flags & va.e_fixedRotationFlag) && ((this.m_I = a.I - this.m_mass * (a.center.x * a.center.x + a.center.y * a.center.y)), (this.m_invI = 1 / this.m_I)); var b = this.m_sweep.c.copy(), c = this.m_sweep.localCenter; a = a.center; c.x = a.x; c.y = a.y; c = this.m_sweep.c0; a = S.mulX(this.m_xf, this.m_sweep.localCenter); c.x = a.x; c.y = a.y; c = this.m_sweep.c; a = this.m_sweep.c0; c.x = a.x; c.y = a.y; this.m_linearVelocity.x += this.m_angularVelocity * -(this.m_sweep.c.y - b.y); this.m_linearVelocity.y += this.m_angularVelocity * (this.m_sweep.c.x - b.x); } }, resetMassData: function () { this.m_invI = this.m_I = this.m_invMass = this.m_mass = 0; var a = this.m_sweep.localCenter; a.x = 0; a.y = 0; if (this.m_type != va.b2_staticBody && this.m_type != va.b2_kinematicBody) { var b = P.make(0, 0); for (a = this.m_fixtureList; null != a; ) if (0 != a.m_density) { var c = a.getMassData(); this.m_mass += c.mass; b.x += c.center.x * c.mass; b.y += c.center.y * c.mass; this.m_I += c.I; a = a.m_next; } 0 < this.m_mass ? ((this.m_invMass = 1 / this.m_mass), (b.x *= this.m_invMass), (b.y *= this.m_invMass)) : (this.m_invMass = this.m_mass = 1); 0 < this.m_I && 0 == (this.m_flags & va.e_fixedRotationFlag) ? ((this.m_I -= this.m_mass * (b.x * b.x + b.y * b.y)), (this.m_I *= this.m_inertiaScale), da.b2Assert(0 < this.m_I), (this.m_invI = 1 / this.m_I)) : (this.m_invI = this.m_I = 0); c = this.m_sweep.c.copy(); a = this.m_sweep.localCenter; a.x = b.x; a.y = b.y; a = this.m_sweep.c0; b = S.mulX(this.m_xf, this.m_sweep.localCenter); a.x = b.x; a.y = b.y; a = this.m_sweep.c; b = this.m_sweep.c0; a.x = b.x; a.y = b.y; this.m_linearVelocity.x += this.m_angularVelocity * -(this.m_sweep.c.y - c.y); this.m_linearVelocity.y += this.m_angularVelocity * (this.m_sweep.c.x - c.x); } }, getWorldPoint: function (a) { var b = this.m_xf.R; a = new P(b.col1.x * a.x + b.col2.x * a.y, b.col1.y * a.x + b.col2.y * a.y); a.x += this.m_xf.position.x; a.y += this.m_xf.position.y; return a; }, getWorldVector: function (a) { return S.mulMV(this.m_xf.R, a); }, getLocalPoint: function (a) { return S.mulXT(this.m_xf, a); }, getLocalVector: function (a) { return S.mulTMV(this.m_xf.R, a); }, getLinearVelocityFromWorldPoint: function (a) { return new P( this.m_linearVelocity.x - this.m_angularVelocity * (a.y - this.m_sweep.c.y), this.m_linearVelocity.y + this.m_angularVelocity * (a.x - this.m_sweep.c.x) ); }, getLinearVelocityFromLocalPoint: function (a) { var b = this.m_xf.R; a = new P(b.col1.x * a.x + b.col2.x * a.y, b.col1.y * a.x + b.col2.y * a.y); a.x += this.m_xf.position.x; a.y += this.m_xf.position.y; return new P( this.m_linearVelocity.x - this.m_angularVelocity * (a.y - this.m_sweep.c.y), this.m_linearVelocity.y + this.m_angularVelocity * (a.x - this.m_sweep.c.x) ); }, getLinearDamping: function () { return this.m_linearDamping; }, setLinearDamping: function (a) { this.m_linearDamping = a; }, getAngularDamping: function () { return this.m_angularDamping; }, setAngularDamping: function (a) { this.m_angularDamping = a; }, setType: function (a) { if (this.m_type != a) for ( this.m_type = a, this.resetMassData(), this.m_type == va.b2_staticBody && ((a = this.m_linearVelocity), (a.x = 0), (this.m_angularVelocity = a.y = 0)), this.setAwake(!0), a = this.m_force, a.x = 0, this.m_torque = a.y = 0, a = this.m_contactList; null != a; ) a.contact.flagForFiltering(), (a = a.next); }, getType: function () { return this.m_type; }, setBullet: function (a) { this.m_flags = a ? this.m_flags | va.e_bulletFlag : this.m_flags & ~va.e_bulletFlag; }, isBullet: function () { return (this.m_flags & va.e_bulletFlag) == va.e_bulletFlag; }, setSleepingAllowed: function (a) { a ? (this.m_flags |= va.e_allowSleepFlag) : ((this.m_flags &= ~va.e_allowSleepFlag), this.setAwake(!0)); }, setAwake: function (a) { a ? ((this.m_flags |= va.e_awakeFlag), (this.m_sleepTime = 0)) : ((this.m_flags &= ~va.e_awakeFlag), (this.m_sleepTime = 0), (a = this.m_linearVelocity), (a.x = 0), (this.m_angularVelocity = a.y = 0), (a = this.m_force), (a.x = 0), (this.m_torque = a.y = 0)); }, isAwake: function () { return (this.m_flags & va.e_awakeFlag) == va.e_awakeFlag; }, setFixedRotation: function (a) { this.m_flags = a ? this.m_flags | va.e_fixedRotationFlag : this.m_flags & ~va.e_fixedRotationFlag; this.resetMassData(); }, isFixedRotation: function () { return (this.m_flags & va.e_fixedRotationFlag) == va.e_fixedRotationFlag; }, setActive: function (a) { if (a != this.isActive()) { var b; if (a) for ( this.m_flags |= va.e_activeFlag, a = this.m_world.m_contactManager.m_broadPhase, b = this.m_fixtureList; null != b; ) b.createProxy(a, this.m_xf), (b = b.m_next); else { this.m_flags &= ~va.e_activeFlag; a = this.m_world.m_contactManager.m_broadPhase; for (b = this.m_fixtureList; null != b; ) b.destroyProxy(a), (b = b.m_next); for (a = this.m_contactList; null != a; ) (b = a), (a = a.next), this.m_world.m_contactManager.destroy(b.contact); this.m_contactList = null; } } }, isActive: function () { return (this.m_flags & va.e_activeFlag) == va.e_activeFlag; }, isSleepingAllowed: function () { return (this.m_flags & va.e_allowSleepFlag) == va.e_allowSleepFlag; }, getFixtureList: function () { return this.m_fixtureList; }, getJointList: function () { return this.m_jointList; }, getControllerList: function () { return this.m_controllerList; }, getContactList: function () { return this.m_contactList; }, getNext: function () { return this.m_next; }, getUserData: function () { return this.m_userData; }, setUserData: function (a) { this.m_userData = a; }, getWorld: function () { return this.m_world; }, setFriction: function (a) { for (var b = this.m_fixtureList; null != b; ) (b.m_friction = a), (b = b.m_next); }, setBounciness: function (a) { for (var b = this.m_fixtureList; null != b; ) (b.m_restitution = a), (b = b.m_next); }, setPaused: function (a) { this.m_flags = a ? this.m_flags | va.e_pausedFlag : this.m_flags & ~va.e_pausedFlag; }, isPaused: function () { return (this.m_flags & va.e_pausedFlag) == va.e_pausedFlag; }, setIgnoreGravity: function (a) { this.m_flags = a ? this.m_flags | va.e_ignoreGravityFlag : this.m_flags & ~va.e_ignoreGravityFlag; }, isIgnoringGravity: function () { return (this.m_flags & va.e_ignoreGravityFlag) == va.e_ignoreGravityFlag; }, setAlwaysActive: function (a) { this.m_flags = a ? this.m_flags | va.e_alwaysActiveFlag : this.m_flags & ~va.e_alwaysActiveFlag; }, isAlwaysActive: function () { return (this.m_flags & va.e_alwaysActiveFlag) == va.e_alwaysActiveFlag; }, synchronizeFixtures: function () { var a = va.s_xf1; a.R.set(this.m_sweep.a0); var b = a.R, c = this.m_sweep.localCenter; a.position.x = this.m_sweep.c0.x - (b.col1.x * c.x + b.col2.x * c.y); a.position.y = this.m_sweep.c0.y - (b.col1.y * c.x + b.col2.y * c.y); b = this.m_world.m_contactManager.m_broadPhase; for (c = this.m_fixtureList; null != c; ) c.synchronize(b, a, this.m_xf), (c = c.m_next); }, synchronizeTransform: function () { this.m_xf.R.set(this.m_sweep.a); var a = this.m_xf.R, b = this.m_sweep.localCenter; this.m_xf.position.x = this.m_sweep.c.x - (a.col1.x * b.x + a.col2.x * b.y); this.m_xf.position.y = this.m_sweep.c.y - (a.col1.y * b.x + a.col2.y * b.y); }, shouldCollide: function (a) { if (this.m_type != va.b2_dynamicBody && a.m_type != va.b2_dynamicBody) return !1; for (var b = this.m_jointList; null != b; ) { if (b.other == a && 0 == b.joint.m_collideConnected) return !1; b = b.next; } return !0; }, advance: function (a) { this.m_sweep.advance(a); a = this.m_sweep.c; var b = this.m_sweep.c0; a.x = b.x; a.y = b.y; this.m_sweep.a = this.m_sweep.a0; this.synchronizeTransform(); }, m_flags: null, m_type: null, m_islandIndex: null, m_xf: null, m_sweep: null, m_linearVelocity: null, m_angularVelocity: null, m_force: null, m_torque: null, m_world: null, m_prev: null, m_next: null, m_fixtureList: null, m_fixtureCount: null, m_controllerList: null, m_controllerCount: null, m_jointList: null, m_contactList: null, m_mass: null, m_invMass: null, m_I: null, m_invI: null, m_inertiaScale: null, m_linearDamping: null, m_angularDamping: null, m_sleepTime: null, m_userData: null, groupID: null, origin: null, size: null, __class__: va }; var ri = function () { this.position = new P(); this.linearVelocity = new P(); this.userData = null; this.angularDamping = this.linearDamping = this.angularVelocity = this.angle = 0; this.awake = this.allowSleep = !0; this.bullet = this.fixedRotation = !1; this.type = va.b2_staticBody; this.active = !0; this.inertiaScale = 1; this.groupID = 3; }; h['box2D.dynamics.B2BodyDef'] = ri; ri.__name__ = 'box2D.dynamics.B2BodyDef'; ri.prototype = { type: null, position: null, angle: null, linearVelocity: null, angularVelocity: null, linearDamping: null, angularDamping: null, allowSleep: null, awake: null, fixedRotation: null, bullet: null, active: null, userData: null, inertiaScale: null, groupID: null, ignoreGravity: null, friction: null, bounciness: null, mass: null, aMass: null, __class__: ri }; var uj = function () {}; h['box2D.dynamics.B2ContactFilter'] = uj; uj.__name__ = 'box2D.dynamics.B2ContactFilter'; uj.prototype = { shouldCollide: function (a, b) { var c = a.m_body.groupID, e = b.m_body.groupID; a = a.groupID; b = b.groupID; -1e3 != a && (c = a); -1e3 != b && (e = b); return -1 == c || -1 == e ? !1 : -2 == c || -2 == e ? 1 == c || 1 == e ? !1 : !0 : Fa.collisionMap[c][e]; }, rayCollide: function (a, b) { return null == a ? !0 : this.shouldCollide(x.__cast(a, Hf), b); }, __class__: uj }; var Dn = function () { this.normalImpulses = []; this.tangentImpulses = []; }; h['box2D.dynamics.B2ContactImpulse'] = Dn; Dn.__name__ = 'box2D.dynamics.B2ContactImpulse'; Dn.prototype = { normalImpulses: null, tangentImpulses: null, __class__: Dn }; var Og = function () {}; h['box2D.dynamics.B2ContactListener'] = Og; Og.__name__ = 'box2D.dynamics.B2ContactListener'; Og.prototype = { beginContact: function (a) { 2147483647 < Og.KEY_LOCK && (Og.KEY_LOCK = -2147483648); a.key = Og.KEY_LOCK++; var b = a.getFixtureA().getUserData(), c = a.getFixtureB().getUserData(), e = b instanceof pd, f = c instanceof pd; !e || f || c instanceof Pg ? !f || e || b instanceof Pg ? (null != b.contacts && (b.contacts.set(a.key, a), b.contactCount++), null != c.contacts && (c.contacts.set(a.key, a), c.contactCount++)) : (x.__cast(c, pd).addActor(b), null != b.regionContacts && b.regionContacts.set(a.key, a)) : (x.__cast(b, pd).addActor(c), null != c.regionContacts && c.regionContacts.set(a.key, a)); }, endContact: function (a) { var b = a.getFixtureA().getUserData(), c = a.getFixtureB().getUserData(), e = b instanceof pd, f = c instanceof pd; if (e && !f) { e = !1; null != c.regionContacts && c.regionContacts.unset(a.key); for (a = c.regionContacts.iterator(); a.hasNext(); ) { f = a.next(); if ( f.getFixtureA().getUserData() instanceof pd && f.getFixtureA().getUserData() == b ) { e = !0; break; } if ( f.getFixtureB().getUserData() instanceof pd && f.getFixtureB().getUserData() == b ) { e = !0; break; } } (e && !c.recycled) || x.__cast(b, pd).removeActor(c); } else if (f && !e) { e = !1; null != b.regionContacts && b.regionContacts.unset(a.key); for (a = b.regionContacts.iterator(); a.hasNext(); ) { f = a.next(); if ( f.getFixtureA().getUserData() instanceof pd && f.getFixtureA().getUserData() == c ) { e = !0; break; } if ( f.getFixtureB().getUserData() instanceof pd && f.getFixtureB().getUserData() == c ) { e = !0; break; } } (e && !b.recycled) || x.__cast(c, pd).removeActor(b); } else { if (null != b.collisions) { e = b.collisions; f = a.key; var g = e.mH, d = g.mHash[(73856093 * f) & g.mMask]; if (-1 == d) f = -2147483648; else if (((g = g.mData), g[d] == f)) f = g[d + 1]; else { var l = -2147483648; for (d = g[d + 2]; -1 != d; ) { if (g[d] == f) { l = g[d + 1]; break; } d = g[d + 2]; } f = l; } g = -2147483648 == f ? null : e.mVals[f]; if (null != g) for (b.collisions.unset(a.key), b.collisionsCount--; 0 < g.points.length; ) Od.free(g.points.pop()); } null != b.contacts && b.contacts.unset(a.key) && b.contactCount--; if (null != c.collisions) { e = c.collisions; f = a.key; g = e.mH; d = g.mHash[(73856093 * f) & g.mMask]; if (-1 == d) f = -2147483648; else if (((g = g.mData), g[d] == f)) f = g[d + 1]; else { l = -2147483648; for (d = g[d + 2]; -1 != d; ) { if (g[d] == f) { l = g[d + 1]; break; } d = g[d + 2]; } f = l; } g = -2147483648 == f ? null : e.mVals[f]; if (null != g) for (c.collisions.unset(a.key), c.collisionsCount--; 0 < g.points.length; ) Od.free(g.points.pop()); } null != c.contacts && c.contacts.unset(a.key) && c.contactCount--; } }, preSolve: function (a, b) { uc.preSolve(a, b); }, postSolve: function (a, b) {}, __class__: Og }; var zk = function () { this.m_world = null; this.m_contactCount = 0; this.m_contactFilter = uj.b2_defaultFilter; this.m_contactListener = Og.b2_defaultListener; this.m_contactFactory = new En(this.m_allocator); this.m_broadPhase = new wk(); }; h['box2D.dynamics.B2ContactManager'] = zk; zk.__name__ = 'box2D.dynamics.B2ContactManager'; zk.prototype = { addPair: function (a, b) { var c = a.getBody(), e = b.getBody(); if (c != e) { for (var f = e.getContactList(); null != f; ) { if (f.other == c) { var g = f.contact.getFixtureA(), d = f.contact.getFixtureB(); if ((g == a && d == b) || (g == b && d == a)) return; } f = f.next; } 0 != e.shouldCollide(c) && 0 != this.m_contactFilter.shouldCollide(a, b) && ((f = this.m_contactFactory.create(a, b)), (a = f.getFixtureA()), (b = f.getFixtureB()), (c = a.m_body), (e = b.m_body), (f.m_prev = null), (f.m_next = this.m_world.m_contactList), null != this.m_world.m_contactList && (this.m_world.m_contactList.m_prev = f), (this.m_world.m_contactList = f), (f.m_nodeA.contact = f), (f.m_nodeA.other = e), (f.m_nodeA.prev = null), (f.m_nodeA.next = c.m_contactList), null != c.m_contactList && (c.m_contactList.prev = f.m_nodeA), (c.m_contactList = f.m_nodeA), (f.m_nodeB.contact = f), (f.m_nodeB.other = c), (f.m_nodeB.prev = null), (f.m_nodeB.next = e.m_contactList), null != e.m_contactList && (e.m_contactList.prev = f.m_nodeB), (e.m_contactList = f.m_nodeB), ++this.m_world.m_contactCount); } }, findNewContacts: function () { this.m_broadPhase.updatePairs(this); }, destroy: function (a) { var b = a.getFixtureA(), c = a.getFixtureB(); b = b.getBody(); c = c.getBody(); a.isTouching() && this.m_contactListener.endContact(a); null != a.m_prev && (a.m_prev.m_next = a.m_next); null != a.m_next && (a.m_next.m_prev = a.m_prev); a == this.m_world.m_contactList && (this.m_world.m_contactList = a.m_next); null != a.m_nodeA.prev && (a.m_nodeA.prev.next = a.m_nodeA.next); null != a.m_nodeA.next && (a.m_nodeA.next.prev = a.m_nodeA.prev); a.m_nodeA == b.m_contactList && (b.m_contactList = a.m_nodeA.next); null != a.m_nodeB.prev && (a.m_nodeB.prev.next = a.m_nodeB.next); null != a.m_nodeB.next && (a.m_nodeB.next.prev = a.m_nodeB.prev); a.m_nodeB == c.m_contactList && (c.m_contactList = a.m_nodeB.next); this.m_contactFactory.destroy(a); --this.m_contactCount; }, collide: function () { for (var a = this.m_world.m_contactList; null != a; ) { var b = a.getFixtureA(), c = a.getFixtureB(), e = b.getBody(), f = c.getBody(); if (0 == e.isAwake() && 0 == f.isAwake()) a = a.getNext(); else { if (0 != (a.m_flags & ab.e_filterFlag)) { if (0 == f.shouldCollide(e)) { b = a; a = b.getNext(); this.destroy(b); continue; } if (0 == this.m_contactFilter.shouldCollide(b, c)) { b = a; a = b.getNext(); this.destroy(b); continue; } a.m_flags &= ~ab.e_filterFlag; } 0 == this.m_broadPhase.testOverlap(b.m_proxy, c.m_proxy) ? ((b = a), (a = b.getNext()), this.destroy(b)) : (a.update(this.m_contactListener), (a = a.getNext())); } } }, m_world: null, m_broadPhase: null, m_contactList: null, m_contactCount: null, m_contactFilter: null, m_contactListener: null, m_contactFactory: null, m_allocator: null, __class__: zk }; var He = function () { this.m_xformScale = this.m_fillAlpha = this.m_alpha = this.m_lineThickness = this.m_drawScale = 1; this.m_drawFlags = 0; }; h['box2D.dynamics.B2DebugDraw'] = He; He.__name__ = 'box2D.dynamics.B2DebugDraw'; He.prototype = { setFlags: function (a) { this.m_drawFlags = a; }, getFlags: function () { return this.m_drawFlags; }, appendFlags: function (a) { this.m_drawFlags |= a; }, clearFlags: function (a) { this.m_drawFlags &= ~a; }, setSprite: function (a) { this.m_sprite = a; }, getSprite: function () { return this.m_sprite; }, setDrawScale: function (a) { this.m_drawScale = a; }, getDrawScale: function () { return this.m_drawScale; }, setLineThickness: function (a) { this.m_lineThickness = a; }, getLineThickness: function () { return this.m_lineThickness; }, setAlpha: function (a) { this.m_alpha = a; }, getAlpha: function () { return this.m_alpha; }, setFillAlpha: function (a) { this.m_fillAlpha = a; }, getFillAlpha: function () { return this.m_fillAlpha; }, setXFormScale: function (a) { this.m_xformScale = a; }, getXFormScale: function () { return this.m_xformScale; }, drawPolygon: function (a, b, c) { this.m_sprite.get_graphics().lineStyle(this.m_lineThickness, c.get_color(), this.m_alpha); this.m_sprite.get_graphics().moveTo(a[0].x * this.m_drawScale, a[0].y * this.m_drawScale); for (c = 0; c < b; ) { var e = c++; this.m_sprite .get_graphics() .lineTo(a[e].x * this.m_drawScale, a[e].y * this.m_drawScale); } this.m_sprite.get_graphics().lineTo(a[0].x * this.m_drawScale, a[0].y * this.m_drawScale); }, drawSolidPolygon: function (a, b, c) { this.m_sprite.get_graphics().lineStyle(this.m_lineThickness, c.get_color(), this.m_alpha); this.m_sprite.get_graphics().moveTo(a[0].x * this.m_drawScale, a[0].y * this.m_drawScale); this.m_sprite.get_graphics().beginFill(c.get_color(), this.m_fillAlpha); for (c = 0; c < b; ) { var e = c++; this.m_sprite .get_graphics() .lineTo(a[e].x * this.m_drawScale, a[e].y * this.m_drawScale); } this.m_sprite.get_graphics().lineTo(a[0].x * this.m_drawScale, a[0].y * this.m_drawScale); this.m_sprite.get_graphics().endFill(); }, drawCircle: function (a, b, c) { this.m_sprite.get_graphics().lineStyle(this.m_lineThickness, c.get_color(), this.m_alpha); this.m_sprite .get_graphics() .drawCircle(a.x * this.m_drawScale, a.y * this.m_drawScale, b * this.m_drawScale); }, drawSolidCircle: function (a, b, c, e) { this.m_sprite.get_graphics().lineStyle(this.m_lineThickness, e.get_color(), this.m_alpha); this.m_sprite.get_graphics().moveTo(0, 0); this.m_sprite.get_graphics().beginFill(e.get_color(), this.m_fillAlpha); this.m_sprite .get_graphics() .drawCircle(a.x * this.m_drawScale, a.y * this.m_drawScale, b * this.m_drawScale); this.m_sprite.get_graphics().endFill(); this.m_sprite.get_graphics().moveTo(a.x * this.m_drawScale, a.y * this.m_drawScale); this.m_sprite .get_graphics() .lineTo((a.x + c.x * b) * this.m_drawScale, (a.y + c.y * b) * this.m_drawScale); }, drawSegment: function (a, b, c) { this.m_sprite.get_graphics().lineStyle(this.m_lineThickness, c.get_color(), this.m_alpha); this.m_sprite.get_graphics().moveTo(a.x * this.m_drawScale, a.y * this.m_drawScale); this.m_sprite.get_graphics().lineTo(b.x * this.m_drawScale, b.y * this.m_drawScale); }, drawTransform: function (a) { this.m_sprite.get_graphics().lineStyle(this.m_lineThickness, 16711680, this.m_alpha); this.m_sprite .get_graphics() .moveTo(a.position.x * this.m_drawScale, a.position.y * this.m_drawScale); this.m_sprite .get_graphics() .lineTo( (a.position.x + this.m_xformScale * a.R.col1.x) * this.m_drawScale, (a.position.y + this.m_xformScale * a.R.col1.y) * this.m_drawScale ); this.m_sprite.get_graphics().lineStyle(this.m_lineThickness, 65280, this.m_alpha); this.m_sprite .get_graphics() .moveTo(a.position.x * this.m_drawScale, a.position.y * this.m_drawScale); this.m_sprite .get_graphics() .lineTo( (a.position.x + this.m_xformScale * a.R.col2.x) * this.m_drawScale, (a.position.y + this.m_xformScale * a.R.col2.y) * this.m_drawScale ); }, m_drawFlags: null, m_sprite: null, m_drawScale: null, m_lineThickness: null, m_alpha: null, m_fillAlpha: null, m_xformScale: null, __class__: He }; var bw = function () {}; h['box2D.dynamics.B2DestructionListener'] = bw; bw.__name__ = 'box2D.dynamics.B2DestructionListener'; bw.prototype = { sayGoodbyeJoint: function (a) {}, sayGoodbyeFixture: function (a) {}, __class__: bw }; var vj = function () { this.categoryBits = 1; this.maskBits = 65535; this.groupIndex = 0; }; h['box2D.dynamics.B2FilterData'] = vj; vj.__name__ = 'box2D.dynamics.B2FilterData'; vj.prototype = { copy: function () { var a = new vj(); a.categoryBits = this.categoryBits; a.maskBits = this.maskBits; a.groupIndex = this.groupIndex; return a; }, categoryBits: null, maskBits: null, groupIndex: null, __class__: vj }; var Hf = function () { this.m_filter = new vj(); this.m_aabb = new ka(); this.m_shape = this.m_next = this.m_body = this.m_userData = null; this.m_restitution = this.m_friction = this.m_density = 0; this.groupID = 3; }; h['box2D.dynamics.B2Fixture'] = Hf; Hf.__name__ = 'box2D.dynamics.B2Fixture'; Hf.prototype = { getType: function () { return this.m_shape.getType(); }, getShape: function () { return this.m_shape; }, setSensor: function (a) { if (this.m_isSensor != a && ((this.m_isSensor = a), null != this.m_body)) for (a = this.m_body.getContactList(); null != a; ) { var b = a.contact, c = b.getFixtureA(), e = b.getFixtureB(); (c != this && e != this) || b.setSensor(c.isSensor() || e.isSensor()); a = a.next; } }, isSensor: function () { return this.m_isSensor; }, setFilterData: function (a) { this.m_filter = a.copy(); if (null == this.m_body) for (a = this.m_body.getContactList(); null != a; ) { var b = a.contact, c = b.getFixtureA(), e = b.getFixtureB(); (c != this && e != this) || b.flagForFiltering(); a = a.next; } }, getFilterData: function () { return this.m_filter.copy(); }, getBody: function () { return this.m_body; }, getNext: function () { return this.m_next; }, getUserData: function () { return this.m_userData; }, SetUserData: function (a) { this.m_userData = a; }, testPoint: function (a) { return this.m_shape.testPoint(this.m_body.getTransform(), a); }, rayCast: function (a, b) { return this.m_shape.rayCast(a, b, this.m_body.getTransform()); }, getMassData: function (a) { null == a && (a = new tj()); this.m_shape.computeMass(a, this.m_density); return a; }, setDensity: function (a) { this.m_density = a; }, getDensity: function () { return this.m_density; }, getFriction: function () { return this.m_friction; }, setFriction: function (a) { this.m_friction = a; }, getRestitution: function () { return this.m_restitution; }, setRestitution: function (a) { this.m_restitution = a; }, getAABB: function () { return this.m_aabb; }, create: function (a, b, c) { this.m_userData = c.userData; this.m_friction = c.friction; this.m_restitution = c.restitution; this.m_body = a; this.m_next = null; this.m_filter = c.filter.copy(); this.m_isSensor = c.isSensor; this.m_shape = c.shape.copy(); this.m_density = c.density; this.groupID = c.groupID; }, destroy: function () { this.m_shape = null; }, createProxy: function (a, b) { this.m_shape.computeAABB(this.m_aabb, b); this.m_proxy = a.createProxy(this.m_aabb, this); }, destroyProxy: function (a) { null != this.m_proxy && (a.destroyProxy(this.m_proxy), (this.m_proxy = null)); }, synchronize: function (a, b, c) { null != this.m_proxy && (this.m_shape.computeAABB(Hf.tempAABB1, b), this.m_shape.computeAABB(Hf.tempAABB2, c), this.m_aabb.combine(Hf.tempAABB1, Hf.tempAABB2), (b = S.subtractVVPooled(c.position, b.position)), a.moveProxy(this.m_proxy, this.m_aabb, b)); }, m_massData: null, m_aabb: null, m_density: null, m_next: null, m_body: null, m_shape: null, m_friction: null, m_restitution: null, m_proxy: null, m_filter: null, m_isSensor: null, m_userData: null, groupID: null, __class__: Hf }; var If = function () { this.filter = new vj(); this.userData = this.shape = null; this.friction = 0.2; this.density = this.restitution = 0; this.filter.categoryBits = 1; this.filter.maskBits = 65535; this.filter.groupIndex = 0; this.isSensor = !1; this.groupID = 3; }; h['box2D.dynamics.B2FixtureDef'] = If; If.__name__ = 'box2D.dynamics.B2FixtureDef'; If.prototype = { shape: null, userData: null, friction: null, restitution: null, density: null, isSensor: null, filter: null, groupID: null, __class__: If }; var Lh = function () { this.m_bodies = []; this.m_contacts = []; this.m_joints = []; }; h['box2D.dynamics.B2Island'] = Lh; Lh.__name__ = 'box2D.dynamics.B2Island'; Lh.prototype = { initialize: function (a, b, c, e, f, g) { this.m_bodyCapacity = a; this.m_contactCapacity = b; this.m_jointCapacity = c; this.m_jointCount = this.m_contactCount = this.m_bodyCount = 0; this.m_allocator = e; this.m_listener = f; this.m_contactSolver = g; e = this.m_bodies.length; for (f = a; e < f; ) (a = e++), (this.m_bodies[a] = null); e = this.m_contacts.length; for (f = b; e < f; ) (a = e++), (this.m_contacts[a] = null); e = this.m_joints.length; for (f = c; e < f; ) (a = e++), (this.m_joints[a] = null); }, clear: function () { this.m_jointCount = this.m_contactCount = this.m_bodyCount = 0; }, solve: function (a, b, c) { for (var e, f, g = 0, d = this.m_bodyCount; g < d; ) (e = g++), (e = this.m_bodies[e]), e.getType() == va.b2_dynamicBody && (e.isIgnoringGravity() ? ((e.m_linearVelocity.x += a.dt * e.m_invMass * e.m_force.x), (e.m_linearVelocity.y += a.dt * e.m_invMass * e.m_force.y)) : ((e.m_linearVelocity.x += a.dt * (b.x + e.m_invMass * e.m_force.x)), (e.m_linearVelocity.y += a.dt * (b.y + e.m_invMass * e.m_force.y))), (e.m_angularVelocity += a.dt * e.m_invI * e.m_torque), e.m_linearVelocity.multiply(S.clamp(1 - a.dt * e.m_linearDamping, 0, 1)), (e.m_angularVelocity *= S.clamp(1 - a.dt * e.m_angularDamping, 0, 1))); this.m_contactSolver.initialize( a, this.m_contacts, this.m_contactCount, this.m_allocator ); b = this.m_contactSolver; b.initVelocityConstraints(a); g = 0; for (d = this.m_jointCount; g < d; ) (e = g++), (f = this.m_joints[e]), f.initVelocityConstraints(a); g = 0; for (d = a.velocityIterations; g < d; ) { g++; e = 0; for (var l = this.m_jointCount; e < l; ) (f = e++), (f = this.m_joints[f]), f.solveVelocityConstraints(a); b.solveVelocityConstraints(); } g = 0; for (d = this.m_jointCount; g < d; ) (e = g++), (f = this.m_joints[e]), f.finalizeVelocityConstraints(); b.finalizeVelocityConstraints(); g = 0; for (d = this.m_bodyCount; g < d; ) if (((e = g++), (e = this.m_bodies[e]), e.getType() != va.b2_staticBody)) { l = a.dt * e.m_linearVelocity.x; var v = a.dt * e.m_linearVelocity.y; l * l + v * v > da.b2_maxTranslationSquared && (e.m_linearVelocity.normalize(), (e.m_linearVelocity.x = e.m_linearVelocity.x * da.b2_maxTranslation * a.inv_dt), (e.m_linearVelocity.y = e.m_linearVelocity.y * da.b2_maxTranslation * a.inv_dt)); l = a.dt * e.m_angularVelocity; l * l > da.b2_maxRotationSquared && (e.m_angularVelocity = 0 > e.m_angularVelocity ? -da.b2_maxRotation * a.inv_dt : da.b2_maxRotation * a.inv_dt); l = e.m_sweep.c0; v = e.m_sweep.c; l.x = v.x; l.y = v.y; e.m_sweep.a0 = e.m_sweep.a; e.m_sweep.c.x += a.dt * e.m_linearVelocity.x; e.m_sweep.c.y += a.dt * e.m_linearVelocity.y; e.m_sweep.a += a.dt * e.m_angularVelocity; e.synchronizeTransform(); } g = 0; for (d = a.positionIterations; g < d; ) { g++; v = b.solvePositionConstraints(da.b2_contactBaumgarte); var n = !0; e = 0; for (l = this.m_jointCount; e < l; ) (f = e++), (f = this.m_joints[f]), (f = f.solvePositionConstraints(da.b2_contactBaumgarte)), (n = n && f); if (v && n) break; } this.report(b.m_constraints); if (c) { c = Number.MAX_VALUE; b = da.b2_linearSleepTolerance * da.b2_linearSleepTolerance; l = da.b2_angularSleepTolerance * da.b2_angularSleepTolerance; g = 0; for (d = this.m_bodyCount; g < d; ) (e = g++), (e = this.m_bodies[e]), e.getType() != va.b2_staticBody && (0 == (e.m_flags & va.e_allowSleepFlag) && (c = e.m_sleepTime = 0), 0 == (e.m_flags & va.e_allowSleepFlag) || e.m_angularVelocity * e.m_angularVelocity > l || S.dot(e.m_linearVelocity, e.m_linearVelocity) > b ? (c = e.m_sleepTime = 0) : ((e.m_sleepTime += a.dt), (c = S.min(c, e.m_sleepTime)))); if (c >= da.b2_timeToSleep) for (g = 0, d = this.m_bodyCount; g < d; ) (e = g++), (e = this.m_bodies[e]), e.setAwake(!1); } }, solveTOI: function (a) { this.m_contactSolver.initialize( a, this.m_contacts, this.m_contactCount, this.m_allocator ); for (var b = this.m_contactSolver, c = 0, e = this.m_jointCount; c < e; ) { var f = c++; this.m_joints[f].initVelocityConstraints(a); } c = 0; for (e = a.velocityIterations; c < e; ) { c++; b.solveVelocityConstraints(); f = 0; for (var g = this.m_jointCount; f < g; ) { var d = f++; this.m_joints[d].solveVelocityConstraints(a); } } c = 0; for (e = this.m_bodyCount; c < e; ) (f = c++), (f = this.m_bodies[f]), f.getType() != va.b2_staticBody && ((g = a.dt * f.m_linearVelocity.x), (d = a.dt * f.m_linearVelocity.y), g * g + d * d > da.b2_maxTranslationSquared && (f.m_linearVelocity.normalize(), (f.m_linearVelocity.x = f.m_linearVelocity.x * da.b2_maxTranslation * a.inv_dt), (f.m_linearVelocity.y = f.m_linearVelocity.y * da.b2_maxTranslation * a.inv_dt)), (g = a.dt * f.m_angularVelocity), g * g > da.b2_maxRotationSquared && (f.m_angularVelocity = 0 > f.m_angularVelocity ? -da.b2_maxRotation * a.inv_dt : da.b2_maxRotation * a.inv_dt), (g = f.m_sweep.c0), (d = f.m_sweep.c), (g.x = d.x), (g.y = d.y), (f.m_sweep.a0 = f.m_sweep.a), (f.m_sweep.c.x += a.dt * f.m_linearVelocity.x), (f.m_sweep.c.y += a.dt * f.m_linearVelocity.y), (f.m_sweep.a += a.dt * f.m_angularVelocity), f.synchronizeTransform()); c = 0; for (e = a.positionIterations; c < e; ) { c++; a = b.solvePositionConstraints(0.75); var l = !0; f = 0; for (g = this.m_jointCount; f < g; ) (d = f++), (d = this.m_joints[d].solvePositionConstraints(da.b2_contactBaumgarte)), (l = l && d); if (a && l) break; } this.report(b.m_constraints); }, report: function (a) { if (null != this.m_listener) for (var b = 0, c = this.m_contactCount; b < c; ) { var e = b++, f = this.m_contacts[e]; e = a[e]; for (var g = 0, d = e.pointCount; g < d; ) { var l = g++; Lh.s_impulse.normalImpulses[l] = e.points[l].normalImpulse; Lh.s_impulse.tangentImpulses[l] = e.points[l].tangentImpulse; } this.m_listener.postSolve(f, Lh.s_impulse); } }, addBody: function (a) { a.m_islandIndex = this.m_bodyCount; this.m_bodies[this.m_bodyCount++] = a; }, addContact: function (a) { this.m_contacts[this.m_contactCount++] = a; }, addJoint: function (a) { this.m_joints[this.m_jointCount++] = a; }, m_allocator: null, m_listener: null, m_contactSolver: null, m_bodies: null, m_contacts: null, m_joints: null, m_bodyCount: null, m_jointCount: null, m_contactCount: null, m_bodyCapacity: null, m_contactCapacity: null, m_jointCapacity: null, __class__: Lh }; var wj = function () {}; h['box2D.dynamics.B2TimeStep'] = wj; wj.__name__ = 'box2D.dynamics.B2TimeStep'; wj.prototype = { set: function (a) { this.dt = a.dt; this.inv_dt = a.inv_dt; this.positionIterations = a.positionIterations; this.velocityIterations = a.velocityIterations; this.warmStarting = a.warmStarting; }, dt: null, inv_dt: null, dtRatio: null, velocityIterations: null, positionIterations: null, warmStarting: null, __class__: wj }; var ec = function (a, b) { this.pointQueryCallback = new Ak(); this.shapeQueryCallback = new Bk(); this.aabbQueryCallback = new Ck(); this.s_stack = []; this.m_contactManager = new zk(); this.m_contactSolver = new Ie(); this.m_island = new Lh(); this.m_controllerList = this.m_jointList = this.m_contactList = this.m_bodyList = this.m_debugDraw = this.m_destructionListener = null; this.m_controllerCount = this.m_jointCount = this.m_contactCount = this.m_bodyCount = 0; ec.m_warmStarting = !0; ec.m_continuousPhysics = !1; this.m_allowSleep = b; this.m_gravity = a; this.m_flags = this.m_inv_dt0 = 0; this.m_contactManager.m_world = this; a = new ri(); this.m_groundBody = this.createBody(a); }; h['box2D.dynamics.B2World'] = ec; ec.__name__ = 'box2D.dynamics.B2World'; ec.prototype = { setDestructionListener: function (a) { this.m_destructionListener = a; }, setContactFilter: function (a) { this.m_contactManager.m_contactFilter = a; }, setContactListener: function (a) { this.m_contactManager.m_contactListener = a; }, setDebugDraw: function (a) { this.m_debugDraw = a; }, setBroadPhase: function (a) { var b = this.m_contactManager.m_broadPhase; this.m_contactManager.m_broadPhase = a; for (var c = this.m_bodyList; null != c; ) { for (var e = c.m_fixtureList; null != e; ) (e.m_proxy = a.createProxy(b.getFatAABB(e.m_proxy), e)), (e = e.m_next); c = c.m_next; } }, validate: function () { this.m_contactManager.m_broadPhase.validate(); }, getProxyCount: function () { return this.m_contactManager.m_broadPhase.getProxyCount(); }, createBody: function (a) { if (1 == this.isLocked()) return null; a = new va(a, this); a.m_prev = null; a.m_next = this.m_bodyList; null != this.m_bodyList && (this.m_bodyList.m_prev = a); this.m_bodyList = a; ++this.m_bodyCount; return a; }, destroyBody: function (a) { if (1 != this.isLocked()) { for (var b = a.m_jointList; null != b; ) { var c = b; b = b.next; null != this.m_destructionListener && this.m_destructionListener.sayGoodbyeJoint(c.joint); this.destroyJoint(c.joint); } for (b = a.m_controllerList; null != b; ) (c = b), (b = b.nextController), c.controller.removeBody(a); for (b = a.m_contactList; null != b; ) (c = b), (b = b.next), this.m_contactManager.destroy(c.contact); a.m_contactList = null; for (b = a.m_fixtureList; null != b; ) (c = b), (b = b.m_next), null != this.m_destructionListener && this.m_destructionListener.sayGoodbyeFixture(c), c.destroyProxy(this.m_contactManager.m_broadPhase), c.destroy(); a.m_fixtureList = null; a.m_fixtureCount = 0; null != a.m_prev && (a.m_prev.m_next = a.m_next); null != a.m_next && (a.m_next.m_prev = a.m_prev); a == this.m_bodyList && (this.m_bodyList = a.m_next); --this.m_bodyCount; } }, createJoint: function (a) { var b = Ub.create(a, null); b.m_prev = null; b.m_next = this.m_jointList; null != this.m_jointList && (this.m_jointList.m_prev = b); this.m_jointList = b; ++this.m_jointCount; b.m_edgeA.joint = b; b.m_edgeA.other = b.m_bodyB; b.m_edgeA.prev = null; b.m_edgeA.next = b.m_bodyA.m_jointList; null != b.m_bodyA.m_jointList && (b.m_bodyA.m_jointList.prev = b.m_edgeA); b.m_bodyA.m_jointList = b.m_edgeA; b.m_edgeB.joint = b; b.m_edgeB.other = b.m_bodyA; b.m_edgeB.prev = null; b.m_edgeB.next = b.m_bodyB.m_jointList; null != b.m_bodyB.m_jointList && (b.m_bodyB.m_jointList.prev = b.m_edgeB); b.m_bodyB.m_jointList = b.m_edgeB; var c = a.bodyA, e = a.bodyB; if (0 == a.collideConnected) for (a = e.getContactList(); null != a; ) a.other == c && a.contact.flagForFiltering(), (a = a.next); return b; }, destroyJoint: function (a) { var b = a.m_collideConnected; null != a.m_prev && (a.m_prev.m_next = a.m_next); null != a.m_next && (a.m_next.m_prev = a.m_prev); a == this.m_jointList && (this.m_jointList = a.m_next); var c = a.m_bodyA, e = a.m_bodyB; c.setAwake(!0); e.setAwake(!0); null != a.m_edgeA.prev && (a.m_edgeA.prev.next = a.m_edgeA.next); null != a.m_edgeA.next && (a.m_edgeA.next.prev = a.m_edgeA.prev); a.m_edgeA == c.m_jointList && (c.m_jointList = a.m_edgeA.next); a.m_edgeA.prev = null; a.m_edgeA.next = null; null != a.m_edgeB.prev && (a.m_edgeB.prev.next = a.m_edgeB.next); null != a.m_edgeB.next && (a.m_edgeB.next.prev = a.m_edgeB.prev); a.m_edgeB == e.m_jointList && (e.m_jointList = a.m_edgeB.next); a.m_edgeB.prev = null; a.m_edgeB.next = null; Ub.destroy(a, null); --this.m_jointCount; if (0 == b) for (a = e.getContactList(); null != a; ) a.other == c && a.contact.flagForFiltering(), (a = a.next); }, addController: function (a) { a.m_next = this.m_controllerList; a.m_prev = null; this.m_controllerList = a; a.m_world = this; this.m_controllerCount++; return a; }, removeController: function (a) { null != a.m_prev && (a.m_prev.m_next = a.m_next); null != a.m_next && (a.m_next.m_prev = a.m_prev); this.m_controllerList == a && (this.m_controllerList = a.m_next); this.m_controllerCount--; }, createController: function (a) { if (a.m_world != this) throw M.thrown('Controller can only be a member of one world'); a.m_next = this.m_controllerList; a.m_prev = null; null != this.m_controllerList && (this.m_controllerList.m_prev = a); this.m_controllerList = a; ++this.m_controllerCount; a.m_world = this; return a; }, destroyController: function (a) { a.clear(); null != a.m_next && (a.m_next.m_prev = a.m_prev); null != a.m_prev && (a.m_prev.m_next = a.m_next); a == this.m_controllerList && (this.m_controllerList = a.m_next); --this.m_controllerCount; }, setWarmStarting: function (a) { ec.m_warmStarting = a; }, setContinuousPhysics: function (a) { ec.m_continuousPhysics = a; }, getBodyCount: function () { return this.m_bodyCount; }, getJointCount: function () { return this.m_jointCount; }, getContactCount: function () { return this.m_contactCount; }, setGravity: function (a) { this.m_gravity = a; }, getGravity: function () { return this.m_gravity; }, getGroundBody: function () { return this.m_groundBody; }, step: function (a, b, c) { P.freePool(); 0 != (this.m_flags & ec.e_newFixture) && (this.m_contactManager.findNewContacts(), (this.m_flags &= ~ec.e_newFixture)); this.m_flags |= ec.e_locked; var e = ec.s_timestep2; e.dt = a; e.velocityIterations = b; e.positionIterations = c; e.inv_dt = 0 < a ? 1 / a : 0; e.dtRatio = this.m_inv_dt0 * a; e.warmStarting = ec.m_warmStarting; this.m_contactManager.collide(); 0 < e.dt && this.solve(e); ec.m_continuousPhysics && 0 < e.dt && this.solveTOI(e); 0 < e.dt && (this.m_inv_dt0 = e.inv_dt); this.m_flags &= ~ec.e_locked; }, clearForces: function () { for (var a = this.m_bodyList; null != a; ) { var b = a.m_force; b.x = 0; b.y = 0; a.m_torque = 0; a = a.m_next; } }, drawDebugData: function () { if (null != this.m_debugDraw) { this.m_debugDraw.m_sprite.get_graphics().clear(); var a = this.m_debugDraw.getFlags(), b, c; new P(); new P(); new P(); new ka(); new ka(); new P(); new P(); new P(); new P(); var e = new yk(0, 0, 0); if (0 != (a & He.e_shapeBit)) for (b = this.m_bodyList; null != b; ) { var f = b.m_xf; for (c = b.getFixtureList(); null != c; ) { var g = c.getShape(); 0 == b.isActive() ? e.set(0.5, 0.5, 0.3) : b.getType() == va.b2_staticBody ? e.set(0.5, 0.9, 0.5) : b.getType() == va.b2_kinematicBody ? e.set(0.5, 0.5, 0.9) : 0 == b.isAwake() ? e.set(0.6, 0.6, 0.6) : e.set(0.9, 0.7, 0.7); this.drawShape(g, f, e); c = c.m_next; } b = b.m_next; } if (0 != (a & He.e_jointBit)) for (b = this.m_jointList; null != b; ) this.drawJoint(b), (b = b.m_next); if (0 != (a & He.e_controllerBit)) for (b = this.m_controllerList; null != b; ) b.draw(this.m_debugDraw), (b = b.m_next); if (0 != (a & He.e_pairBit)) for (e.set(0.3, 0.9, 0.9), b = this.m_contactManager.m_contactList; null != b; ) (g = b.getFixtureA()), (c = b.getFixtureB()), (g = g.getAABB().getCenter()), (c = c.getAABB().getCenter()), this.m_debugDraw.drawSegment(g, c, e), (b = b.getNext()); if (0 != (a & He.e_aabbBit)) for ( g = this.m_contactManager.m_broadPhase, f = [new P(), new P(), new P(), new P()], b = this.m_bodyList; null != b; ) { if (0 != b.isActive()) for (c = b.getFixtureList(); null != c; ) { var d = g.getFatAABB(c.m_proxy), l = f[0], v = d.lowerBound.x, n = d.lowerBound.y; null == n && (n = 0); null == v && (v = 0); l.x = v; l.y = n; l = f[1]; v = d.upperBound.x; n = d.lowerBound.y; null == n && (n = 0); null == v && (v = 0); l.x = v; l.y = n; l = f[2]; v = d.upperBound.x; n = d.upperBound.y; null == n && (n = 0); null == v && (v = 0); l.x = v; l.y = n; l = f[3]; v = d.lowerBound.x; d = d.upperBound.y; null == d && (d = 0); null == v && (v = 0); l.x = v; l.y = d; this.m_debugDraw.drawPolygon(f, 4, e); c = c.getNext(); } b = b.getNext(); } if (0 != (a & He.e_centerOfMassBit)) for (b = this.m_bodyList; null != b; ) (f = ec.s_xf), (f.R = b.m_xf.R), (f.position = b.getWorldCenter()), this.m_debugDraw.drawTransform(f), (b = b.m_next); } }, queryAABB: function (a, b) { this.aabbQueryCallback.broadPhase = this.m_contactManager.m_broadPhase; this.aabbQueryCallback.callbackMethod = a; this.m_contactManager.m_broadPhase.query(this.aabbQueryCallback, b); }, queryShape: function (a, b, c) { this.shapeQueryCallback.broadPhase = this.m_contactManager.m_broadPhase; this.shapeQueryCallback.callbackMethod = a; null == c && ((c = new Xe()), c.setIdentity()); this.shapeQueryCallback.transform = c; a = new ka(); b.computeAABB(a, c); this.shapeQueryCallback.shape = b; this.m_contactManager.m_broadPhase.query(this.shapeQueryCallback, a); }, queryPoint: function (a, b) { this.pointQueryCallback.broadPhase = this.m_contactManager.m_broadPhase; this.pointQueryCallback.callbackMethod = a; this.pointQueryCallback.p = b; a = new ka(); var c = a.lowerBound, e = b.x - da.b2_linearSlop, f = b.y - da.b2_linearSlop; null == f && (f = 0); null == e && (e = 0); c.x = e; c.y = f; c = a.upperBound; e = b.x + da.b2_linearSlop; f = b.y + da.b2_linearSlop; null == f && (f = 0); null == e && (e = 0); c.x = e; c.y = f; this.m_contactManager.m_broadPhase.query(this.pointQueryCallback, a); }, rayCast: function (a, b, c) { var e = this.m_contactManager.m_broadPhase, f = new Bn(), g = new uk(b, c); e.rayCast(function (g, d) { d = e.getUserData(d); d = x.__cast(d, Hf); if (d.rayCast(f, g)) { g = f.fraction; var p = new P((1 - g) * b.x + g * c.x, (1 - g) * b.y + g * c.y); return a(d, p, f.normal, g); } return g.maxFraction; }, g); }, rayCastOne: function (a, b) { var c; this.rayCast( function (a, b, g, d) { c = a; return d; }, a, b ); return c; }, rayCastAll: function (a, b) { var c = []; this.rayCast( function (a, b, g, d) { c[c.length] = a; return 1; }, a, b ); return c; }, getBodyList: function () { return this.m_bodyList; }, getJointList: function () { return this.m_jointList; }, getContactList: function () { return this.m_contactList; }, isLocked: function () { return 0 < (this.m_flags & ec.e_locked); }, s_stack: null, solve: function (a) { for (var b = this.m_controllerList; null != b; ) b.step(a), (b = b.m_next); b = this.m_island; b.initialize( this.m_bodyCount, this.m_contactCount, this.m_jointCount, null, this.m_contactManager.m_contactListener, this.m_contactSolver ); for (var c = this.m_bodyList; null != c; ) (c.m_flags &= ~va.e_islandFlag), (c = c.m_next); for (var e = this.m_contactList; null != e; ) (e.m_flags &= ~ab.e_islandFlag), (e = e.m_next); for (e = this.m_jointList; null != e; ) (e.m_islandFlag = !1), (e = e.m_next); e = this.s_stack; for (var f = this.m_bodyList; null != f; ) { if ( 0 == (f.m_flags & va.e_islandFlag) && (!f.isActive() && !f.isAlwaysActive() && f.m_xf.position.x + f.origin.x + f.size.x >= this.m_aabb.lowerBound.x && f.m_xf.position.y + f.origin.y + f.size.y >= this.m_aabb.lowerBound.y && f.m_xf.position.x + f.origin.x <= this.m_aabb.upperBound.x && f.m_xf.position.y + f.origin.y <= this.m_aabb.upperBound.y && (f.setActive(!0), f.setAwake(!0)), 0 != f.isAwake() && 0 != f.isActive() && !f.isPaused() && f.getType() != va.b2_staticBody) ) if ( f.isActive() && !f.isAlwaysActive() && (f.m_xf.position.x + f.origin.x + f.size.x < this.m_aabb.lowerBound.x || f.m_xf.position.y + f.origin.y + f.size.y < this.m_aabb.lowerBound.y || f.m_xf.position.x + f.origin.x > this.m_aabb.upperBound.x || f.m_xf.position.y + f.origin.y > this.m_aabb.upperBound.y) ) f.setAwake(!1), f.setActive(!1); else { b.clear(); var g = 0; e[g++] = f; for (f.m_flags |= va.e_islandFlag; 0 < g; ) if ( ((c = e[--g]), b.addBody(c), 0 == c.isAwake() && c.setAwake(!0), c.getType() != va.b2_staticBody) ) { for (var d, l = c.m_contactList; null != l; ) 0 == (l.contact.m_flags & ab.e_islandFlag) && 1 != l.contact.isSensor() && 0 != l.contact.isEnabled() && 0 != l.contact.isTouching() && (b.addContact(l.contact), (l.contact.m_flags |= ab.e_islandFlag), (d = l.other), 0 == (d.m_flags & va.e_islandFlag) && ((e[g++] = d), (d.m_flags |= va.e_islandFlag))), (l = l.next); for (c = c.m_jointList; null != c; ) 1 != c.joint.m_islandFlag && ((d = c.other), 0 != d.isActive() && (b.addJoint(c.joint), (c.joint.m_islandFlag = !0), 0 == (d.m_flags & va.e_islandFlag) && ((e[g++] = d), (d.m_flags |= va.e_islandFlag)))), (c = c.next); } b.solve(a, this.m_gravity, this.m_allowSleep); g = 0; for (d = b.m_bodyCount; g < d; ) (c = g++), (c = b.m_bodies[c]), c.getType() == va.b2_staticBody && (c.m_flags &= ~va.e_islandFlag); } f = f.m_next; } g = 0; for (d = e.length; g < d; ) { c = g++; if (null == e[c]) break; e[c] = null; } for (c = this.m_bodyList; null != c; ) 0 != c.isAwake() && 0 != c.isActive() && c.getType() != va.b2_staticBody && c.synchronizeFixtures(), (c = c.m_next); this.m_contactManager.findNewContacts(); }, solveTOI: function (a) { var b, c = this.m_island; c.initialize( this.m_bodyCount, da.b2_maxTOIContactsPerIsland, da.b2_maxTOIJointsPerIsland, null, this.m_contactManager.m_contactListener, this.m_contactSolver ); for (var e = ec.s_queue, f = this.m_bodyList; null != f; ) (f.m_flags &= ~va.e_islandFlag), (f.m_sweep.t0 = 0), (f = f.m_next); for (b = this.m_contactList; null != b; ) (b.m_flags &= ~(ab.e_toiFlag | ab.e_islandFlag)), (b = b.m_next); for (f = this.m_jointList; null != f; ) (f.m_islandFlag = !1), (f = f.m_next); for (;;) { f = null; var g = 1; for (b = this.m_contactList; null != b; ) { if (1 != b.isSensor() && 0 != b.isEnabled() && 0 != b.isContinuous()) { if (0 != (b.m_flags & ab.e_toiFlag)) var d = b.m_toi; else { d = b.m_fixtureA; var l = b.m_fixtureB; d = d.m_body; l = l.m_body; if ( !( (d.getType() == va.b2_dynamicBody && 0 != d.isAwake()) || (l.getType() == va.b2_dynamicBody && 0 != l.isAwake()) ) ) { b = b.m_next; continue; } var v = d.m_sweep.t0; d.m_sweep.t0 < l.m_sweep.t0 ? ((v = l.m_sweep.t0), d.m_sweep.advance(v)) : l.m_sweep.t0 < d.m_sweep.t0 && ((v = d.m_sweep.t0), l.m_sweep.advance(v)); d = b.computeTOI(d.m_sweep, l.m_sweep); da.b2Assert(0 <= d && 1 >= d); 0 < d && 1 > d && ((d = (1 - d) * v + d), 1 < d && (d = 1)); b.m_toi = d; b.m_flags |= ab.e_toiFlag; } Number.MIN_VALUE < d && d < g && ((f = b), (g = d)); } b = b.m_next; } if (null == f || 1 - 100 * Number.MIN_VALUE < g) break; d = f.m_fixtureA; l = f.m_fixtureB; d = d.m_body; l = l.m_body; ec.s_backupA.set(d.m_sweep); ec.s_backupB.set(l.m_sweep); d.advance(g); l.advance(g); f.update(this.m_contactManager.m_contactListener); f.m_flags &= ~ab.e_toiFlag; if (1 == f.isSensor() || 0 == f.isEnabled()) d.m_sweep.set(ec.s_backupA), l.m_sweep.set(ec.s_backupB), d.synchronizeTransform(), l.synchronizeTransform(); else if (0 != f.isTouching()) { b = d; b.getType() != va.b2_dynamicBody && (b = l); c.clear(); l = d = 0; e[d + l++] = b; for (b.m_flags |= va.e_islandFlag; 0 < l; ) if ( ((f = e[d++]), --l, c.addBody(f), 0 == f.isAwake() && f.setAwake(!0), f.getType() == va.b2_dynamicBody) ) { for (b = f.m_contactList; null != b && c.m_contactCount != c.m_contactCapacity; ) 0 == (b.contact.m_flags & ab.e_islandFlag) && 1 != b.contact.isSensor() && 0 != b.contact.isEnabled() && 0 != b.contact.isTouching() && (c.addContact(b.contact), (b.contact.m_flags |= ab.e_islandFlag), (v = b.other), 0 == (v.m_flags & va.e_islandFlag) && (v.getType() != va.b2_staticBody && (v.advance(g), v.setAwake(!0)), (e[d + l] = v), ++l, (v.m_flags |= va.e_islandFlag))), (b = b.next); for (b = f.m_jointList; null != b; ) c.m_jointCount != c.m_jointCapacity && 1 != b.joint.m_islandFlag && ((v = b.other), 0 != v.isActive() && (c.addJoint(b.joint), (b.joint.m_islandFlag = !0), 0 == (v.m_flags & va.e_islandFlag) && (v.getType() != va.b2_staticBody && (v.advance(g), v.setAwake(!0)), (e[d + l] = v), ++l, (v.m_flags |= va.e_islandFlag)))), (b = b.next); } b = ec.s_timestep; b.warmStarting = !1; b.dt = (1 - g) * a.dt; b.inv_dt = 1 / b.dt; b.dtRatio = 0; b.velocityIterations = a.velocityIterations; b.positionIterations = a.positionIterations; c.solveTOI(b); g = 0; for (d = c.m_bodyCount; g < d; ) if ( ((b = g++), (f = c.m_bodies[b]), (f.m_flags &= ~va.e_islandFlag), 0 != f.isAwake() && f.getType() == va.b2_dynamicBody) ) for (f.synchronizeFixtures(), b = f.m_contactList; null != b; ) (b.contact.m_flags &= ~ab.e_toiFlag), (b = b.next); g = 0; for (f = c.m_contactCount; g < f; ) (b = g++), (b = c.m_contacts[b]), (b.m_flags &= ~(ab.e_toiFlag | ab.e_islandFlag)); g = 0; for (b = c.m_jointCount; g < b; ) (f = g++), (f = c.m_joints[f]), (f.m_islandFlag = !1); this.m_contactManager.findNewContacts(); } } }, drawJoint: function (a) { var b = a.getBodyA(), c = a.getBodyB(), e = b.m_xf.position, f = c.m_xf.position, g = a.getAnchorA(), d = a.getAnchorB(), l = ec.s_jointColor; switch (a.m_type) { case 3: this.m_debugDraw.drawSegment(g, d, l); break; case 4: b = x.__cast(a, wg); a = b.getGroundAnchorA(); b = b.getGroundAnchorB(); this.m_debugDraw.drawSegment(a, g, l); this.m_debugDraw.drawSegment(b, d, l); this.m_debugDraw.drawSegment(a, b, l); break; case 5: this.m_debugDraw.drawSegment(g, d, l); break; default: b != this.m_groundBody && this.m_debugDraw.drawSegment(e, g, l), this.m_debugDraw.drawSegment(g, d, l), c != this.m_groundBody && this.m_debugDraw.drawSegment(f, d, l); } }, drawShape: function (a, b, c) { switch (a.m_type) { case 0: a = x.__cast(a, Lc); var e = S.mulX(b, a.m_p); this.m_debugDraw.drawSolidCircle(e, a.m_radius, b.R.col1, c); break; case 1: e = x.__cast(a, Db); a = e.getVertexCount(); for (var f = e.getVertices(), g = [], d = 0; d < a; ) (e = d++), (g[e] = S.mulX(b, f[e])); this.m_debugDraw.drawSolidPolygon(g, a, c); break; case 2: (a = x.__cast(a, vg)), this.m_debugDraw.drawSegment( S.mulX(b, a.getVertex1()), S.mulX(b, a.getVertex2()), c ); } }, m_aabb: null, setScreenBounds: function (a) { this.m_aabb = a; }, getScreenBounds: function () { return this.m_aabb; }, m_flags: null, m_contactManager: null, m_contactSolver: null, m_island: null, m_bodyList: null, m_jointList: null, m_contactList: null, m_bodyCount: null, m_contactCount: null, m_jointCount: null, m_controllerList: null, m_controllerCount: null, m_gravity: null, m_allowSleep: null, m_groundBody: null, m_destructionListener: null, m_debugDraw: null, m_inv_dt0: null, aabbQueryCallback: null, shapeQueryCallback: null, pointQueryCallback: null, __class__: ec }; var Ck = function () {}; h['box2D.dynamics.AABBQueryCallback'] = Ck; Ck.__name__ = 'box2D.dynamics.AABBQueryCallback'; Ck.__interfaces__ = [gf]; Ck.prototype = { broadPhase: null, callbackMethod: null, queryCallback: function (a) { return this.callbackMethod(this.broadPhase.getUserData(a)); }, __class__: Ck }; var Bk = function () {}; h['box2D.dynamics.ShapeQueryCallback'] = Bk; Bk.__name__ = 'box2D.dynamics.ShapeQueryCallback'; Bk.__interfaces__ = [gf]; Bk.prototype = { broadPhase: null, shape: null, transform: null, callbackMethod: null, queryCallback: function (a) { a = this.broadPhase.getUserData(a); return Wb.testOverlap( this.shape, this.transform, a.getShape(), a.getBody().getTransform() ) ? this.callbackMethod(a) : !0; }, __class__: Bk }; var Ak = function () {}; h['box2D.dynamics.PointQueryCallback'] = Ak; Ak.__name__ = 'box2D.dynamics.PointQueryCallback'; Ak.__interfaces__ = [gf]; Ak.prototype = { broadPhase: null, callbackMethod: null, p: null, queryCallback: function (a) { a = this.broadPhase.getUserData(a); return a.testPoint(this.p) ? this.callbackMethod(a) : !0; }, __class__: Ak }; var ab = function () { this.m_nodeA = new Dk(); this.m_nodeB = new Dk(); this.m_manifold = new lh(); this.m_oldManifold = new lh(); }; h['box2D.dynamics.contacts.B2Contact'] = ab; ab.__name__ = 'box2D.dynamics.contacts.B2Contact'; ab.prototype = { getManifold: function () { return this.m_manifold; }, getWorldManifold: function (a) { var b = this.m_fixtureA.getBody(), c = this.m_fixtureB.getBody(), e = this.m_fixtureA.getShape(), f = this.m_fixtureB.getShape(); a.initialize(this.m_manifold, b.getTransform(), e.m_radius, c.getTransform(), f.m_radius); }, isTouching: function () { return (this.m_flags & ab.e_touchingFlag) == ab.e_touchingFlag; }, isContinuous: function () { return (this.m_flags & ab.e_continuousFlag) == ab.e_continuousFlag; }, setSensor: function (a) { this.m_flags = a ? this.m_flags | ab.e_sensorFlag : this.m_flags & ~ab.e_sensorFlag; }, isSensor: function () { return (this.m_flags & ab.e_sensorFlag) == ab.e_sensorFlag; }, setEnabled: function (a) { this.m_flags = a ? this.m_flags | ab.e_enabledFlag : this.m_flags & ~ab.e_enabledFlag; }, isEnabled: function () { return (this.m_flags & ab.e_enabledFlag) == ab.e_enabledFlag; }, getNext: function () { return this.m_next; }, getFixtureA: function () { return this.m_fixtureA; }, getFixtureB: function () { return this.m_fixtureB; }, flagForFiltering: function () { this.m_flags |= ab.e_filterFlag; }, reset: function (a, b) { this.m_flags = ab.e_enabledFlag; if (null == a || null == b) this.m_fixtureB = this.m_fixtureA = null; else { if (a.isSensor() || b.isSensor()) this.m_flags |= ab.e_sensorFlag; var c = a.getBody(), e = b.getBody(); if ( c.getType() != va.b2_dynamicBody || c.isBullet() || e.getType() != va.b2_dynamicBody || e.isBullet() ) this.m_flags |= ab.e_continuousFlag; this.m_fixtureA = a; this.m_fixtureB = b; this.m_manifold.m_pointCount = 0; this.m_next = this.m_prev = null; this.m_nodeA.contact = null; this.m_nodeA.prev = null; this.m_nodeA.next = null; this.m_nodeA.other = null; this.m_nodeB.contact = null; this.m_nodeB.prev = null; this.m_nodeB.next = null; this.m_nodeB.other = null; } }, update: function (a) { var b = this.m_oldManifold; this.m_oldManifold = this.m_manifold; this.m_manifold = b; this.m_flags |= ab.e_enabledFlag; var c = !1; b = (this.m_flags & ab.e_touchingFlag) == ab.e_touchingFlag; var e = this.m_fixtureA.m_body, f = this.m_fixtureB.m_body, g = this.m_fixtureA.m_aabb.testOverlap(this.m_fixtureB.m_aabb); if (0 != (this.m_flags & ab.e_sensorFlag)) g && ((c = this.m_fixtureA.getShape()), (g = this.m_fixtureB.getShape()), (e = e.getTransform()), (f = f.getTransform()), (c = Wb.testOverlap(c, e, g, f))), (this.m_manifold.m_pointCount = 0); else { e.getType() != va.b2_dynamicBody || e.isBullet() || f.getType() != va.b2_dynamicBody || f.isBullet() ? (this.m_flags |= ab.e_continuousFlag) : (this.m_flags &= ~ab.e_continuousFlag); if (g) { this.evaluate(); c = 0 < this.m_manifold.m_pointCount; g = 0; for (var d = this.m_manifold.m_pointCount; g < d; ) { var l = g++; l = this.m_manifold.m_points[l]; l.m_normalImpulse = 0; l.m_tangentImpulse = 0; for (var v = l.m_id, n = 0, k = this.m_oldManifold.m_pointCount; n < k; ) { var m = n++; m = this.m_oldManifold.m_points[m]; if (m.m_id.get_key() == v.get_key()) { l.m_normalImpulse = m.m_normalImpulse; l.m_tangentImpulse = m.m_tangentImpulse; break; } } } } else this.m_manifold.m_pointCount = 0; c != b && (e.setAwake(!0), f.setAwake(!0)); } this.m_flags = c ? this.m_flags | ab.e_touchingFlag : this.m_flags & ~ab.e_touchingFlag; 0 == b && 1 == c && a.beginContact(this); 1 == b && 0 == c && a.endContact(this); 0 == (this.m_flags & ab.e_sensorFlag) && a.preSolve(this, this.m_oldManifold); }, evaluate: function () {}, computeTOI: function (a, b) { ab.s_input.proxyA.set(this.m_fixtureA.getShape()); ab.s_input.proxyB.set(this.m_fixtureB.getShape()); ab.s_input.sweepA = a; ab.s_input.sweepB = b; ab.s_input.tolerance = da.b2_linearSlop; return Jb.timeOfImpact(ab.s_input); }, m_flags: null, m_prev: null, m_next: null, m_nodeA: null, m_nodeB: null, m_fixtureA: null, m_fixtureB: null, m_manifold: null, m_oldManifold: null, m_toi: null, key: null, __class__: ab }; var nh = function () { ab.call(this); }; h['box2D.dynamics.contacts.B2CircleContact'] = nh; nh.__name__ = 'box2D.dynamics.contacts.B2CircleContact'; nh.create = function (a) { return new nh(); }; nh.destroy = function (a, b) {}; nh.__super__ = ab; nh.prototype = r(ab.prototype, { reset: function (a, b) { ab.prototype.reset.call(this, a, b); }, evaluate: function () { var a = this.m_fixtureA.getBody(), b = this.m_fixtureB.getBody(); z.collideCircles( this.m_manifold, x.__cast(this.m_fixtureA.getShape(), Lc), a.m_xf, x.__cast(this.m_fixtureB.getShape(), Lc), b.m_xf ); }, __class__: nh }); var Gn = function () { this.localPlaneNormal = new P(); this.localPoint = new P(); this.normal = new P(); this.normalMass = new yc(); this.K = new yc(); this.points = []; for (var a = 0, b = da.b2_maxManifoldPoints; a < b; ) { var c = a++; this.points[c] = new Fn(); } }; h['box2D.dynamics.contacts.B2ContactConstraint'] = Gn; Gn.__name__ = 'box2D.dynamics.contacts.B2ContactConstraint'; Gn.prototype = { points: null, localPlaneNormal: null, localPoint: null, normal: null, normalMass: null, K: null, bodyA: null, bodyB: null, type: null, radius: null, friction: null, restitution: null, pointCount: null, manifold: null, __class__: Gn }; var Fn = function () { this.localPoint = new P(); this.rA = new P(); this.rB = new P(); }; h['box2D.dynamics.contacts.B2ContactConstraintPoint'] = Fn; Fn.__name__ = 'box2D.dynamics.contacts.B2ContactConstraintPoint'; Fn.prototype = { localPoint: null, rA: null, rB: null, normalImpulse: null, tangentImpulse: null, normalMass: null, tangentMass: null, equalizedMass: null, velocityBias: null, __class__: Fn }; var Dk = function () {}; h['box2D.dynamics.contacts.B2ContactEdge'] = Dk; Dk.__name__ = 'box2D.dynamics.contacts.B2ContactEdge'; Dk.prototype = { other: null, contact: null, prev: null, next: null, __class__: Dk }; var En = function (a) { this.m_allocator = a; this.initializeRegisters(); }; h['box2D.dynamics.contacts.B2ContactFactory'] = En; En.__name__ = 'box2D.dynamics.contacts.B2ContactFactory'; En.prototype = { addType: function (a, b, c, e) { this.m_registers[c][e].createFcn = a; this.m_registers[c][e].destroyFcn = b; this.m_registers[c][e].primary = c; }, initializeRegisters: function () { this.m_registers = []; this.m_registers[0] = []; this.m_registers[0][0] = null; this.m_registers[0][1] = null; this.m_registers[0][2] = null; this.m_registers[1] = []; this.m_registers[1][0] = null; this.m_registers[1][1] = null; this.m_registers[1][2] = null; this.m_registers[2] = []; this.m_registers[2][0] = null; this.m_registers[2][1] = null; this.m_registers[2][2] = null; null == this.m_registers[0][0] && (this.m_registers[0][0] = new ag()); null == this.m_registers[0][1] && ((this.m_registers[0][1] = new ag()), (this.m_registers[1][0] = this.m_registers[0][1])); null == this.m_registers[0][2] && ((this.m_registers[0][2] = new ag()), (this.m_registers[2][0] = this.m_registers[0][2])); null == this.m_registers[1][0] && ((this.m_registers[1][0] = new ag()), (this.m_registers[0][1] = this.m_registers[1][0])); null == this.m_registers[1][1] && (this.m_registers[1][1] = new ag()); null == this.m_registers[1][2] && ((this.m_registers[1][2] = new ag()), (this.m_registers[2][1] = this.m_registers[1][2])); null == this.m_registers[2][0] && ((this.m_registers[2][0] = new ag()), (this.m_registers[0][2] = this.m_registers[2][0])); null == this.m_registers[2][1] && ((this.m_registers[2][1] = new ag()), (this.m_registers[1][2] = this.m_registers[2][1])); null == this.m_registers[2][2] && (this.m_registers[2][2] = new ag()); this.addType(nh.create, nh.destroy, 0, 0); this.addType(oh.create, oh.destroy, 1, 0); this.addType(ph.create, ph.destroy, 1, 1); this.addType(Qa.create, Qa.destroy, 2, 0); this.addType(L.create, L.destroy, 1, 2); }, create: function (a, b) { var c = a.getType(), e = b.getType(); e = this.m_registers[c][e]; if (null != e.pool) { var f = e.pool; e.pool = f.m_next; e.poolCount--; e.primary == c ? f.reset(a, b) : f.reset(b, a); return f; } f = e.createFcn; return null != f ? (e.primary == c ? ((f = f(this.m_allocator)), f.reset(a, b)) : ((f = f(this.m_allocator)), f.reset(b, a)), f) : null; }, destroy: function (a) { 0 < a.m_manifold.m_pointCount && (a.m_fixtureA.m_body.setAwake(!0), a.m_fixtureB.m_body.setAwake(!0)); var b = a.m_fixtureA.getType(), c = a.m_fixtureB.getType(); b = this.m_registers[b][c]; b.poolCount++; a.m_next = b.pool; b.pool = a; b = b.destroyFcn; b(a, this.m_allocator); }, m_registers: null, m_allocator: null, __class__: En }; var ag = function () {}; h['box2D.dynamics.contacts.B2ContactRegister'] = ag; ag.__name__ = 'box2D.dynamics.contacts.B2ContactRegister'; ag.prototype = { createFcn: null, destroyFcn: null, primary: null, pool: null, poolCount: null, __class__: ag }; var xj = function () { this.m_normal = new P(); this.m_separations = []; this.m_points = []; for (var a = 0, b = da.b2_maxManifoldPoints; a < b; ) { var c = a++; this.m_points[c] = new P(); } }; h['box2D.dynamics.contacts.B2PositionSolverManifold'] = xj; xj.__name__ = 'box2D.dynamics.contacts.B2PositionSolverManifold'; xj.prototype = { initialize: function (a) { da.b2Assert(0 < a.pointCount); switch (a.type) { case 1: var b = a.bodyA.m_xf.R; var c = a.localPoint; var e = a.bodyA.m_xf.position.x + (b.col1.x * c.x + b.col2.x * c.y); var f = a.bodyA.m_xf.position.y + (b.col1.y * c.x + b.col2.y * c.y); b = a.bodyB.m_xf.R; c = a.points[0].localPoint; var g = a.bodyB.m_xf.position.x + (b.col1.x * c.x + b.col2.x * c.y); b = a.bodyB.m_xf.position.y + (b.col1.y * c.x + b.col2.y * c.y); var d = g - e; c = b - f; var l = d * d + c * c; l > Number.MIN_VALUE * Number.MIN_VALUE ? ((l = Math.sqrt(l)), (this.m_normal.x = d / l), (this.m_normal.y = c / l)) : ((this.m_normal.x = 1), (this.m_normal.y = 0)); this.m_points[0].x = 0.5 * (e + g); this.m_points[0].y = 0.5 * (f + b); this.m_separations[0] = d * this.m_normal.x + c * this.m_normal.y - a.radius; break; case 2: b = a.bodyA.m_xf.R; c = a.localPlaneNormal; this.m_normal.x = b.col1.x * c.x + b.col2.x * c.y; this.m_normal.y = b.col1.y * c.x + b.col2.y * c.y; b = a.bodyA.m_xf.R; c = a.localPoint; e = a.bodyA.m_xf.position.x + (b.col1.x * c.x + b.col2.x * c.y); f = a.bodyA.m_xf.position.y + (b.col1.y * c.x + b.col2.y * c.y); b = a.bodyB.m_xf.R; g = 0; for (d = a.pointCount; g < d; ) { var v = g++; c = a.points[v].localPoint; l = a.bodyB.m_xf.position.x + (b.col1.x * c.x + b.col2.x * c.y); c = a.bodyB.m_xf.position.y + (b.col1.y * c.x + b.col2.y * c.y); this.m_separations[v] = (l - e) * this.m_normal.x + (c - f) * this.m_normal.y - a.radius; this.m_points[v].x = l; this.m_points[v].y = c; } break; case 4: b = a.bodyB.m_xf.R; c = a.localPlaneNormal; this.m_normal.x = b.col1.x * c.x + b.col2.x * c.y; this.m_normal.y = b.col1.y * c.x + b.col2.y * c.y; b = a.bodyB.m_xf.R; c = a.localPoint; e = a.bodyB.m_xf.position.x + (b.col1.x * c.x + b.col2.x * c.y); f = a.bodyB.m_xf.position.y + (b.col1.y * c.x + b.col2.y * c.y); b = a.bodyA.m_xf.R; g = 0; for (d = a.pointCount; g < d; ) (v = g++), (c = a.points[v].localPoint), (l = a.bodyA.m_xf.position.x + (b.col1.x * c.x + b.col2.x * c.y)), (c = a.bodyA.m_xf.position.y + (b.col1.y * c.x + b.col2.y * c.y)), (this.m_separations[v] = (l - e) * this.m_normal.x + (c - f) * this.m_normal.y - a.radius), (v = this.m_points[v]), null == c && (c = 0), null == l && (l = 0), (v.x = l), (v.y = c); this.m_normal.x *= -1; this.m_normal.y *= -1; } }, m_normal: null, m_points: null, m_separations: null, __class__: xj }; var Ie = function () { this.m_step = new wj(); this.m_constraints = []; }; h['box2D.dynamics.contacts.B2ContactSolver'] = Ie; Ie.__name__ = 'box2D.dynamics.contacts.B2ContactSolver'; Ie.prototype = { initialize: function (a, b, c, e) { this.m_step.set(a); this.m_allocator = e; for (this.m_constraintCount = c; this.m_constraints.length < this.m_constraintCount; ) this.m_constraints[this.m_constraints.length] = new Gn(); for (a = 0; a < c; ) { e = a++; var f = b[e]; var g = f.m_fixtureA, d = f.m_fixtureB, l = g.m_shape.m_radius, v = d.m_shape.m_radius, n = g.m_body, k = d.m_body; f = f.getManifold(); var m = da.b2MixFriction(g.getFriction(), d.getFriction()), h = da.b2MixRestitution(g.getRestitution(), d.getRestitution()), t = n.m_linearVelocity.x, u = n.m_linearVelocity.y, q = k.m_linearVelocity.x, r = k.m_linearVelocity.y, w = n.m_angularVelocity, ia = k.m_angularVelocity; da.b2Assert(0 < f.m_pointCount); Ie.s_worldManifold.initialize(f, n.m_xf, l, k.m_xf, v); g = Ie.s_worldManifold.m_normal.x; d = Ie.s_worldManifold.m_normal.y; e = this.m_constraints[e]; e.bodyA = n; e.bodyB = k; e.manifold = f; e.normal.x = g; e.normal.y = d; e.pointCount = f.m_pointCount; e.friction = m; e.restitution = h; e.localPlaneNormal.x = f.m_localPlaneNormal.x; e.localPlaneNormal.y = f.m_localPlaneNormal.y; e.localPoint.x = f.m_localPoint.x; e.localPoint.y = f.m_localPoint.y; e.radius = l + v; e.type = f.m_type; l = 0; for (v = e.pointCount; l < v; ) { var x = l++, z = f.m_points[x]; m = e.points[x]; m.normalImpulse = z.m_normalImpulse; m.tangentImpulse = z.m_tangentImpulse; h = m.localPoint; z = z.m_localPoint; h.x = z.x; h.y = z.y; h = m.rA.x = Ie.s_worldManifold.m_points[x].x - n.m_sweep.c.x; z = m.rA.y = Ie.s_worldManifold.m_points[x].y - n.m_sweep.c.y; var I = (m.rB.x = Ie.s_worldManifold.m_points[x].x - k.m_sweep.c.x); x = m.rB.y = Ie.s_worldManifold.m_points[x].y - k.m_sweep.c.y; var E = h * d - z * g, H = I * d - x * g; E *= E; H *= H; m.normalMass = 1 / (n.m_invMass + k.m_invMass + n.m_invI * E + k.m_invI * H); var C = n.m_mass * n.m_invMass + k.m_mass * k.m_invMass; C += n.m_mass * n.m_invI * E + k.m_mass * k.m_invI * H; m.equalizedMass = 1 / C; H = d; C = -g; E = h * C - z * H; H = I * C - x * H; E *= E; H *= H; m.tangentMass = 1 / (n.m_invMass + k.m_invMass + n.m_invI * E + k.m_invI * H); m.velocityBias = 0; h = e.normal.x * (q + -ia * x - t - -w * z) + e.normal.y * (r + ia * I - u - w * h); h < -da.b2_velocityThreshold && (m.velocityBias += -e.restitution * h); } 2 == e.pointCount && ((r = e.points[0]), (q = e.points[1]), (f = n.m_invMass), (n = n.m_invI), (t = k.m_invMass), (k = k.m_invI), (u = r.rA.x * d - r.rA.y * g), (r = r.rB.x * d - r.rB.y * g), (w = q.rA.x * d - q.rA.y * g), (q = q.rB.x * d - q.rB.y * g), (d = f + t + n * u * u + k * r * r), (g = f + t + n * w * w + k * q * q), (k = f + t + n * u * w + k * r * q), d * d < 100 * (d * g - k * k) ? ((n = e.K.col1), (f = k), null == f && (f = 0), null == d && (d = 0), (n.x = d), (n.y = f), (d = e.K.col2), null == g && (g = 0), null == k && (k = 0), (d.x = k), (d.y = g), e.K.getInverse(e.normalMass)) : (e.pointCount = 1)); } }, initVelocityConstraints: function (a) { for (var b = 0, c = this.m_constraintCount; b < c; ) { var e = b++; e = this.m_constraints[e]; var f = e.bodyA, g = e.bodyB, d = f.m_invMass, l = f.m_invI, v = g.m_invMass, n = g.m_invI, k = e.normal.x, m = e.normal.y, h = m, t = -k; if (a.warmStarting) { var u = e.pointCount; for (var q = 0; q < u; ) { var r = q++; r = e.points[r]; r.normalImpulse *= a.dtRatio; r.tangentImpulse *= a.dtRatio; var w = r.normalImpulse * k + r.tangentImpulse * h, ia = r.normalImpulse * m + r.tangentImpulse * t; f.m_angularVelocity -= l * (r.rA.x * ia - r.rA.y * w); f.m_linearVelocity.x -= d * w; f.m_linearVelocity.y -= d * ia; g.m_angularVelocity += n * (r.rB.x * ia - r.rB.y * w); g.m_linearVelocity.x += v * w; g.m_linearVelocity.y += v * ia; } } else for (u = e.pointCount, f = 0, g = u; f < g; ) (d = f++), (d = e.points[d]), (d.normalImpulse = 0), (d.tangentImpulse = 0); } }, solveVelocityConstraints: function () { for (var a, b, c, e, f, g, d, l, v, n, k = 0, m = this.m_constraintCount; k < m; ) { var h = k++; e = this.m_constraints[h]; h = e.bodyA; var t = e.bodyB, u = h.m_angularVelocity, q = t.m_angularVelocity, r = h.m_linearVelocity, w = t.m_linearVelocity, ia = h.m_invMass, x = h.m_invI, z = t.m_invMass, I = t.m_invI; l = e.normal.x; var E = (v = e.normal.y), H = -l; n = e.friction; d = 0; for (g = e.pointCount; d < g; ) (a = d++), (a = e.points[a]), (b = w.x - q * a.rB.y - r.x + u * a.rA.y), (c = w.y + q * a.rB.x - r.y - u * a.rA.x), (b = b * E + c * H), (b = a.tangentMass * -b), (c = n * a.normalImpulse), (c = S.clamp(a.tangentImpulse + b, -c, c)), (b = c - a.tangentImpulse), (f = b * E), (b *= H), (r.x -= ia * f), (r.y -= ia * b), (u -= x * (a.rA.x * b - a.rA.y * f)), (w.x += z * f), (w.y += z * b), (q += I * (a.rB.x * b - a.rB.y * f)), (a.tangentImpulse = c); if (1 == e.pointCount) (a = e.points[0]), (b = w.x + -q * a.rB.y - r.x - -u * a.rA.y), (c = w.y + q * a.rB.x - r.y - u * a.rA.x), (e = b * l + c * v), (b = -a.normalMass * (e - a.velocityBias)), (c = a.normalImpulse + b), 0 < c || (c = 0), (b = c - a.normalImpulse), (f = b * l), (b *= v), (r.x -= ia * f), (r.y -= ia * b), (u -= x * (a.rA.x * b - a.rA.y * f)), (w.x += z * f), (w.y += z * b), (q += I * (a.rB.x * b - a.rB.y * f)), (a.normalImpulse = c); else { a = e.points[0]; E = e.points[1]; g = a.normalImpulse; d = E.normalImpulse; f = (w.x - q * a.rB.y - r.x + u * a.rA.y) * l + (w.y + q * a.rB.x - r.y - u * a.rA.x) * v; var C = (w.x - q * E.rB.y - r.x + u * E.rA.y) * l + (w.y + q * E.rB.x - r.y - u * E.rA.x) * v; b = f - a.velocityBias; c = C - E.velocityBias; n = e.K; b -= n.col1.x * g + n.col2.x * d; for (c -= n.col1.y * g + n.col2.y * d; ; ) { n = e.normalMass; H = -(n.col1.x * b + n.col2.x * c); n = -(n.col1.y * b + n.col2.y * c); if (0 <= H && 0 <= n) { g = H - g; d = n - d; e = g * l; g *= v; l *= d; v *= d; r.x -= ia * (e + l); r.y -= ia * (g + v); u -= x * (a.rA.x * g - a.rA.y * e + E.rA.x * v - E.rA.y * l); w.x += z * (e + l); w.y += z * (g + v); q += I * (a.rB.x * g - a.rB.y * e + E.rB.x * v - E.rB.y * l); a.normalImpulse = H; E.normalImpulse = n; break; } H = -a.normalMass * b; n = 0; C = e.K.col1.y * H + c; if (0 <= H && 0 <= C) { g = H - g; d = n - d; e = g * l; g *= v; l *= d; v *= d; r.x -= ia * (e + l); r.y -= ia * (g + v); u -= x * (a.rA.x * g - a.rA.y * e + E.rA.x * v - E.rA.y * l); w.x += z * (e + l); w.y += z * (g + v); q += I * (a.rB.x * g - a.rB.y * e + E.rB.x * v - E.rB.y * l); a.normalImpulse = H; E.normalImpulse = n; break; } H = 0; n = -E.normalMass * c; f = e.K.col2.x * n + b; if (0 <= n && 0 <= f) { g = H - g; d = n - d; e = g * l; g *= v; l *= d; v *= d; r.x -= ia * (e + l); r.y -= ia * (g + v); u -= x * (a.rA.x * g - a.rA.y * e + E.rA.x * v - E.rA.y * l); w.x += z * (e + l); w.y += z * (g + v); q += I * (a.rB.x * g - a.rB.y * e + E.rB.x * v - E.rB.y * l); a.normalImpulse = H; E.normalImpulse = n; break; } n = H = 0; f = b; C = c; if (0 <= f && 0 <= C) { g = H - g; d = n - d; e = g * l; g *= v; l *= d; v *= d; r.x -= ia * (e + l); r.y -= ia * (g + v); u -= x * (a.rA.x * g - a.rA.y * e + E.rA.x * v - E.rA.y * l); w.x += z * (e + l); w.y += z * (g + v); q += I * (a.rB.x * g - a.rB.y * e + E.rB.x * v - E.rB.y * l); a.normalImpulse = H; E.normalImpulse = n; break; } break; } } h.m_angularVelocity = u; t.m_angularVelocity = q; } }, finalizeVelocityConstraints: function () { for (var a = 0, b = this.m_constraintCount; a < b; ) { var c = a++; c = this.m_constraints[c]; for (var e = c.manifold, f = 0, g = c.pointCount; f < g; ) { var d = f++, l = e.m_points[d]; d = c.points[d]; l.m_normalImpulse = d.normalImpulse; l.m_tangentImpulse = d.tangentImpulse; } } }, solvePositionConstraints: function (a) { for (var b = 0, c = 0, e = this.m_constraintCount; c < e; ) { var f = c++; f = this.m_constraints[f]; var g = f.bodyA, d = f.bodyB, l = g.m_mass * g.m_invMass, v = g.m_mass * g.m_invI, n = d.m_mass * d.m_invMass, k = d.m_mass * d.m_invI; Ie.s_psm.initialize(f); for (var m = Ie.s_psm.m_normal, h = 0, t = f.pointCount; h < t; ) { var u = h++, q = f.points[u], r = Ie.s_psm.m_points[u], w = Ie.s_psm.m_separations[u]; u = r.x - g.m_sweep.c.x; var ia = r.y - g.m_sweep.c.y, x = r.x - d.m_sweep.c.x; r = r.y - d.m_sweep.c.y; b < w || (b = w); w = S.clamp(a * (w + da.b2_linearSlop), -da.b2_maxLinearCorrection, 0); w *= -q.equalizedMass; q = w * m.x; w *= m.y; g.m_sweep.c.x -= l * q; g.m_sweep.c.y -= l * w; g.m_sweep.a -= v * (u * w - ia * q); g.synchronizeTransform(); d.m_sweep.c.x += n * q; d.m_sweep.c.y += n * w; d.m_sweep.a += k * (x * w - r * q); d.synchronizeTransform(); } } return b > -1.5 * da.b2_linearSlop; }, m_step: null, m_allocator: null, m_constraints: null, m_constraintCount: null, __class__: Ie }; var Qa = function () { ab.call(this); }; h['box2D.dynamics.contacts.B2EdgeAndCircleContact'] = Qa; Qa.__name__ = 'box2D.dynamics.contacts.B2EdgeAndCircleContact'; Qa.create = function (a) { return new Qa(); }; Qa.destroy = function (a, b) {}; Qa.__super__ = ab; Qa.prototype = r(ab.prototype, { m_v0: null, m_v1: null, m_v2: null, m_v3: null, reset: function (a, b) { ab.prototype.reset.call(this, a, b); }, evaluate: function () { var a = this.m_fixtureA.getBody(), b = this.m_fixtureB.getBody(); this.b2CollideEdgeAndCircle( this.m_manifold, x.__cast(this.m_fixtureA.getShape(), vg), a.m_xf, x.__cast(this.m_fixtureB.getShape(), Lc), b.m_xf ); }, b2CollideEdgeAndCircle: function (a, b, c, e, f) { a.m_pointCount = 0; this.multiplyTransformVector(f, e.m_p, Qa.temp1); f = Qa.q; var g = S.mulXT(c, Qa.temp1); f.x = g.x; f.y = g.y; this.m_v0 = b.m_v0; this.m_v1 = b.m_v1; this.m_v2 = b.m_v2; this.m_v3 = b.m_v3; f = Qa.e; g = this.m_v2.x - this.m_v1.x; var d = this.m_v2.y - this.m_v1.y; null == d && (d = 0); null == g && (g = 0); f.x = g; f.y = d; f = Qa.temp1; g = this.m_v2.x - Qa.q.x; d = this.m_v2.y - Qa.q.y; null == d && (d = 0); null == g && (g = 0); f.x = g; f.y = d; var l = S.dot(Qa.e, Qa.temp1); f = Qa.temp1; g = Qa.q.x - this.m_v1.x; d = Qa.q.y - this.m_v1.y; null == d && (d = 0); null == g && (g = 0); f.x = g; f.y = d; g = S.dot(Qa.e, Qa.temp1); c = b.m_radius + e.m_radius; if (0 >= g) { if ( ((f = Qa.p), (l = this.m_v1), (f.x = l.x), (f.y = l.y), (f = Qa.temp1), (g = Qa.q.x - Qa.p.x), (d = Qa.q.y - Qa.p.y), null == d && (d = 0), null == g && (g = 0), (f.x = g), (f.y = d), (f = S.dot(Qa.temp1, Qa.temp1)), !(f > c * c)) ) { if ( b.m_hasVertex0 && ((f = Qa.temp1), (g = this.m_v1.x - this.m_v0.x), (d = this.m_v1.y - this.m_v0.y), null == d && (d = 0), null == g && (g = 0), (f.x = g), (f.y = d), (f = Qa.temp2), (g = this.m_v1.x - Qa.q.x), (d = this.m_v1.y - Qa.q.y), null == d && (d = 0), null == g && (g = 0), (f.x = g), (f.y = d), 0 < S.dot(Qa.temp1, Qa.temp2)) ) return; a.m_pointCount = 1; a.m_type = 1; f = a.m_localPlaneNormal; f.x = 0; f.y = 0; f = a.m_localPoint; l = Qa.p; f.x = l.x; f.y = l.y; a.m_points[0].m_id.set_key(0); a.m_points[0].m_id.indexA = 0; a.m_points[0].m_id.indexB = 0; a.m_points[0].m_id.typeA = Tb.VERTEX; a.m_points[0].m_id.typeB = Tb.VERTEX; f = a.m_points[0].m_localPoint; l = e.m_p; f.x = l.x; f.y = l.y; } } else if (0 >= l) { if ( ((f = Qa.p), (l = this.m_v2), (f.x = l.x), (f.y = l.y), (f = Qa.temp1), (g = Qa.q.x - Qa.p.x), (d = Qa.q.y - Qa.p.y), null == d && (d = 0), null == g && (g = 0), (f.x = g), (f.y = d), (f = S.dot(Qa.temp1, Qa.temp1)), !(f > c * c)) ) { if ( b.m_hasVertex3 && ((f = Qa.temp1), (g = this.m_v3.x - this.m_v2.x), (d = this.m_v3.y - this.m_v2.y), null == d && (d = 0), null == g && (g = 0), (f.x = g), (f.y = d), (f = Qa.temp2), (g = Qa.q.x - this.m_v2.x), (d = Qa.q.y - this.m_v2.y), null == d && (d = 0), null == g && (g = 0), (f.x = g), (f.y = d), 0 < S.dot(Qa.temp1, Qa.temp2)) ) return; a.m_pointCount = 1; a.m_type = 1; f = a.m_localPlaneNormal; f.x = 0; f.y = 0; f = a.m_localPoint; l = Qa.p; f.x = l.x; f.y = l.y; a.m_points[0].m_id.set_key(0); a.m_points[0].m_id.indexA = 1; a.m_points[0].m_id.indexB = 0; a.m_points[0].m_id.typeA = Tb.VERTEX; a.m_points[0].m_id.typeB = Tb.VERTEX; f = a.m_points[0].m_localPoint; l = e.m_p; f.x = l.x; f.y = l.y; } } else (b = S.dot(Qa.e, Qa.e)), da.b2Assert(0 < b), (Qa.p.x = (1 / b) * (this.m_v1.x * l + this.m_v2.x * g)), (Qa.p.y = (1 / b) * (this.m_v1.y * l + this.m_v2.y * g)), (Qa.temp1.x = Qa.q.x - Qa.p.x), (Qa.temp1.y = Qa.q.y - Qa.p.y), (f = S.dot(Qa.temp1, Qa.temp1)), f > c * c || ((f = Qa.temp1), (g = -Qa.e.y), (d = Qa.e.x), null == d && (d = 0), null == g && (g = 0), (f.x = g), (f.y = d), (f = Qa.temp2), (g = Qa.q.x - this.m_v1.x), (d = Qa.q.y - this.m_v1.y), null == d && (d = 0), null == g && (g = 0), (f.x = g), (f.y = d), 0 > S.dot(Qa.temp1, Qa.temp2) && ((f = Qa.temp1), (f.x = -f.x), (f.y = -f.y)), Qa.temp1.normalize(), (a.m_pointCount = 1), (a.m_type = 2), (f = a.m_localPlaneNormal), (g = Qa.temp1), (f.x = g.x), (f.y = g.y), (f = a.m_localPoint), (g = this.m_v1), (f.x = g.x), (f.y = g.y), a.m_points[0].m_id.set_key(0), (a.m_points[0].m_id.indexA = 0), (a.m_points[0].m_id.indexB = 0), (a.m_points[0].m_id.typeA = Tb.FACE), (a.m_points[0].m_id.typeB = Tb.VERTEX), (f = a.m_points[0].m_localPoint), (g = e.m_p), (f.x = g.x), (f.y = g.y)); }, multiplyTransformsInverse: function (a, b, c) { this.multiplyRotationsInverse(a.R, b.R, Qa.mat); var e = Qa.temp2; b = b.position; e.x = b.x; e.y = b.y; Qa.temp2.subtract(a.position); this.multiplyRotationVectorInverse(a.R, Qa.temp2, c.position); e = c.R.col1; b = Qa.mat.col1; e.x = b.x; e.y = b.y; e = c.R.col2; b = Qa.mat.col2; e.x = b.x; e.y = b.y; }, multiplyRotationsInverse: function (a, b, c) { c.col1.x = a.col1.x * b.col1.x + a.col1.y * b.col1.y; c.col1.y = a.col2.x * b.col1.x + a.col2.y * b.col1.y; c.col2.x = a.col1.x * b.col2.x + a.col1.y * b.col2.y; c.col2.y = a.col2.x * b.col2.x + a.col2.y * b.col2.y; }, multiplyRotationVector: function (a, b, c) { c.x = a.col1.x * b.x + a.col2.x * b.y; c.y = a.col1.y * b.x + a.col2.y * b.y; }, multiplyRotationVectorInverse: function (a, b, c) { c.x = a.col1.x * b.x + a.col1.y * b.y; c.y = a.col2.x * b.x + a.col2.y * b.y; }, multiplyTransformVector: function (a, b, c) { c.x = a.R.col1.x * b.x + a.R.col2.x * b.y + a.position.x; c.y = a.R.col1.y * b.x + a.R.col2.y * b.y + a.position.y; }, __class__: Qa }); var oh = function () { ab.call(this); }; h['box2D.dynamics.contacts.B2PolyAndCircleContact'] = oh; oh.__name__ = 'box2D.dynamics.contacts.B2PolyAndCircleContact'; oh.create = function (a) { return new oh(); }; oh.destroy = function (a, b) {}; oh.__super__ = ab; oh.prototype = r(ab.prototype, { reset: function (a, b) { ab.prototype.reset.call(this, a, b); da.b2Assert(1 == a.getType()); da.b2Assert(0 == b.getType()); }, evaluate: function () { var a = this.m_fixtureA.m_body, b = this.m_fixtureB.m_body; z.collidePolygonAndCircle( this.m_manifold, x.__cast(this.m_fixtureA.getShape(), Db), a.m_xf, x.__cast(this.m_fixtureB.getShape(), Lc), b.m_xf ); }, __class__: oh }); var qh = function () { this.v = new P(); this.id = new Tb(); }; h['box2D.dynamics.contacts.ClipVertex'] = qh; qh.__name__ = 'box2D.dynamics.contacts.ClipVertex'; qh.prototype = { v: null, id: null, set: function (a) { var b = this.v, c = a.v; b.x = c.x; b.y = c.y; this.id.set(a.id); }, __class__: qh }; var Ek = function () {}; h['box2D.dynamics.contacts.EPAxis'] = Ek; Ek.__name__ = 'box2D.dynamics.contacts.EPAxis'; Ek.prototype = { type: null, index: null, separation: null, __class__: Ek }; var Hn = function () { this.vertices = []; this.normals = []; for (var a = 0; 32 > a; ) a++, this.vertices.push(new P()), this.normals.push(new P()); }; h['box2D.dynamics.contacts.TempPolygon'] = Hn; Hn.__name__ = 'box2D.dynamics.contacts.TempPolygon'; Hn.prototype = { vertices: null, normals: null, count: null, __class__: Hn }; var In = function () { this.v1 = new P(); this.v2 = new P(); this.normal = new P(); this.sideNormal1 = new P(); this.sideNormal2 = new P(); }; h['box2D.dynamics.contacts.ReferenceFace'] = In; In.__name__ = 'box2D.dynamics.contacts.ReferenceFace'; In.prototype = { i1: null, i2: null, v1: null, v2: null, normal: null, sideNormal1: null, sideNormal2: null, sideOffset1: null, sideOffset2: null, __class__: In }; var L = function () { ab.call(this); }; h['box2D.dynamics.contacts.B2PolyAndEdgeContact'] = L; L.__name__ = 'box2D.dynamics.contacts.B2PolyAndEdgeContact'; L.create = function (a) { return new L(); }; L.destroy = function (a, b) {}; L.clipSegmentToLine = function (a, b, c, e, f) { var g = 0, d = S.dot(c, b[0].v) - e; c = S.dot(c, b[1].v) - e; 0 >= d && a[g++].set(b[0]); 0 >= c && a[g++].set(b[1]); 0 > d * c && ((d /= d - c), (c = a[g].v), (e = b[1].v), (c.x = e.x), (c.y = e.y), a[g].v.subtract(b[0].v), a[g].v.multiply(d), a[g].v.add(b[0].v), (a[g].id.indexA = f), (a[g].id.indexB = b[0].id.indexB), (a[g].id.typeA = Tb.VERTEX), (a[g].id.typeB = Tb.FACE), ++g); return g; }; L.__super__ = ab; L.prototype = r(ab.prototype, { m_v0: null, m_v1: null, m_v2: null, m_v3: null, m_front: null, m_radius: null, reset: function (a, b) { a.getShape() instanceof Db ? (ab.prototype.reset.call(this, b, a), da.b2Assert(1 == a.getType()), da.b2Assert(2 == b.getType())) : (ab.prototype.reset.call(this, a, b), da.b2Assert(2 == a.getType()), da.b2Assert(1 == b.getType())); }, evaluate: function () { var a = this.m_fixtureA.getBody(), b = this.m_fixtureB.getBody(); this.b2CollidePolyAndEdge( this.m_manifold, x.__cast(this.m_fixtureA.getShape(), vg), a.m_xf, x.__cast(this.m_fixtureB.getShape(), Db), b.m_xf ); }, b2CollidePolyAndEdge: function (a, b, c, e, f) { this.multiplyTransformsInverse(c, f, L.m_xf); this.multiplyTransformVector(L.m_xf, e.m_centroid, L.temp); f = L.m_centroidB; var g = L.temp; f.x = g.x; f.y = g.y; this.m_v0 = b.m_v0; this.m_v1 = b.m_v1; this.m_v2 = b.m_v2; this.m_v3 = b.m_v3; c = b.m_hasVertex0; b = b.m_hasVertex3; f = L.edge1; g = this.m_v2; f.x = g.x; f.y = g.y; L.edge1.subtract(this.m_v1); L.edge1.normalize(); f = L.m_normal1; g = L.edge1.y; var d = -L.edge1.x; null == d && (d = 0); null == g && (g = 0); f.x = g; f.y = d; f = L.temp; g = L.m_centroidB; f.x = g.x; f.y = g.y; L.temp.subtract(this.m_v1); var l = S.dot(L.m_normal1, L.temp), v = 0, n = 0, k = !1, m = !1; c && ((f = L.edge0), (g = this.m_v1), (f.x = g.x), (f.y = g.y), L.edge0.subtract(this.m_v0), L.edge0.normalize(), (f = L.m_normal0), (g = L.edge0.y), (d = -L.edge0.x), null == d && (d = 0), null == g && (g = 0), (f.x = g), (f.y = d), (k = 0 <= S.crossVV(L.edge0, L.edge1)), (f = L.temp), (g = L.m_centroidB), (f.x = g.x), (f.y = g.y), L.temp.subtract(this.m_v0), (v = S.dot(L.m_normal0, L.temp))); b && ((f = L.edge2), (g = this.m_v3), (f.x = g.x), (f.y = g.y), L.edge2.subtract(this.m_v2), L.edge2.normalize(), (f = L.m_normal2), (g = L.edge2.y), (d = -L.edge2.x), null == d && (d = 0), null == g && (g = 0), (f.x = g), (f.y = d), (m = 0 < S.crossVV(L.edge1, L.edge2)), (f = L.temp), (g = L.m_centroidB), (f.x = g.x), (f.y = g.y), L.temp.subtract(this.m_v2), (n = S.dot(L.m_normal2, L.temp))); c && b ? k && m ? (this.m_front = 0 <= v || 0 <= l || 0 <= n) ? ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_lowerLimit), (g = L.m_normal0), (f.x = g.x), (f.y = g.y), (f = L.m_upperLimit), (g = L.m_normal2), (f.x = g.x), (f.y = g.y)) : ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_normal), (f.x = -f.x), (f.y = -f.y), (f = L.m_lowerLimit), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_lowerLimit), (f.x = -f.x), (f.y = -f.y), (f = L.m_upperLimit), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_upperLimit), (f.x = -f.x), (f.y = -f.y)) : k ? (this.m_front = 0 <= v || (0 <= l && 0 <= n)) ? ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_lowerLimit), (g = L.m_normal0), (f.x = g.x), (f.y = g.y), (f = L.m_upperLimit), (g = L.m_normal1), (f.x = g.x), (f.y = g.y)) : ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_normal), (f.x = -f.x), (f.y = -f.y), (f = L.m_lowerLimit), (g = L.m_normal2), (f.x = g.x), (f.y = g.y), (f = L.m_lowerLimit), (f.x = -f.x), (f.y = -f.y), (f = L.m_upperLimit), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_upperLimit), (f.x = -f.x), (f.y = -f.y)) : m ? (this.m_front = 0 <= n || (0 <= v && 0 <= l)) ? ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_lowerLimit), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_upperLimit), (g = L.m_normal2), (f.x = g.x), (f.y = g.y)) : ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_normal), (f.x = -f.x), (f.y = -f.y), (f = L.m_lowerLimit), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_lowerLimit), (f.x = -f.x), (f.y = -f.y), (f = L.m_upperLimit), (g = L.m_normal0), (f.x = g.x), (f.y = g.y), (f = L.m_upperLimit), (f.x = -f.x), (f.y = -f.y)) : (this.m_front = 0 <= v && 0 <= l && 0 <= n) ? ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_lowerLimit), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_upperLimit), (g = L.m_normal1), (f.x = g.x), (f.y = g.y)) : ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_normal), (f.x = -f.x), (f.y = -f.y), (f = L.m_lowerLimit), (g = L.m_normal2), (f.x = g.x), (f.y = g.y), (f = L.m_lowerLimit), (f.x = -f.x), (f.y = -f.y), (f = L.m_upperLimit), (g = L.m_normal0), (f.x = g.x), (f.y = g.y), (f = L.m_upperLimit), (f.x = -f.x), (f.y = -f.y)) : c ? (k ? ((this.m_front = 0 <= v || 0 <= l) ? ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_lowerLimit), (g = L.m_normal0)) : ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_normal), (f.x = -f.x), (f.y = -f.y), (f = L.m_lowerLimit), (g = L.m_normal1)), (f.x = g.x), (f.y = g.y), (f = L.m_upperLimit), (g = L.m_normal1)) : (this.m_front = 0 <= v && 0 <= l) ? ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_lowerLimit), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_upperLimit), (g = L.m_normal1)) : ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_normal), (f.x = -f.x), (f.y = -f.y), (f = L.m_lowerLimit), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_upperLimit), (g = L.m_normal0)), (f.x = g.x), (f.y = g.y), (f = L.m_upperLimit), (f.x = -f.x), (f.y = -f.y)) : b ? (m ? (this.m_front = 0 <= l || 0 <= n) ? ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_lowerLimit), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_lowerLimit), (f.x = -f.x), (f.y = -f.y), (f = L.m_upperLimit), (g = L.m_normal2)) : ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_normal), (f.x = -f.x), (f.y = -f.y), (f = L.m_lowerLimit), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_lowerLimit), (f.x = -f.x), (f.y = -f.y), (f = L.m_upperLimit), (g = L.m_normal1)) : ((this.m_front = 0 <= l && 0 <= n) ? ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_lowerLimit), (g = L.m_normal1)) : ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_normal), (f.x = -f.x), (f.y = -f.y), (f = L.m_lowerLimit), (g = L.m_normal2)), (f.x = g.x), (f.y = g.y), (f = L.m_lowerLimit), (f.x = -f.x), (f.y = -f.y), (f = L.m_upperLimit), (g = L.m_normal1)), (f.x = g.x), (f.y = g.y)) : (this.m_front = 0 <= l) ? ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_lowerLimit), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_lowerLimit), (f.x = -f.x), (f.y = -f.y), (f = L.m_upperLimit), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_upperLimit), (f.x = -f.x), (f.y = -f.y)) : ((f = L.m_normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_normal), (f.x = -f.x), (f.y = -f.y), (f = L.m_lowerLimit), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.m_upperLimit), (g = L.m_normal1), (f.x = g.x), (f.y = g.y)); L.m_polygonB.count = e.m_vertexCount; b = 0; for (d = e.m_vertexCount; b < d; ) (l = b++), this.multiplyTransformVector(L.m_xf, e.m_vertices[l], L.temp), (f = L.m_polygonB.vertices[l]), (g = L.temp), (f.x = g.x), (f.y = g.y), this.multiplyRotationVector(L.m_xf.R, e.m_normals[l], L.temp), (g = L.m_polygonB.normals[l]), (v = L.temp), (g.x = v.x), (g.y = v.y); this.m_radius = 2 * da.b2_polygonRadius; a.m_pointCount = 0; this.computeEdgeSeparation(L.edgeAxis); if ( !( L.edgeAxis.type == Jf.UNKNOWN || L.edgeAxis.separation > this.m_radius || (this.computePolygonSeparation(L.polygonAxis), L.polygonAxis.type != Jf.UNKNOWN && L.polygonAxis.separation > this.m_radius) ) ) { c = L.polygonAxis.type == Jf.UNKNOWN ? L.edgeAxis : L.polygonAxis.separation > 0.98 * L.edgeAxis.separation + 0.001 ? L.polygonAxis : L.edgeAxis; if (c.type == Jf.EDGE_A) { a.m_type = 2; f = 0; g = S.dot(L.m_normal, L.m_polygonB.normals[0]); b = 1; for (d = L.m_polygonB.count; b < d; ) (l = b++), (v = S.dot(L.m_normal, L.m_polygonB.normals[l])), v < g && ((g = v), (f = l)); b = f; d = b + 1 < L.m_polygonB.count ? b + 1 : 0; f = L.ie[0].v; g = L.m_polygonB.vertices[b]; f.x = g.x; f.y = g.y; L.ie[0].id.indexA = 0; L.ie[0].id.indexB = b; L.ie[0].id.typeA = Tb.FACE; L.ie[0].id.typeB = Tb.VERTEX; f = L.ie[1].v; g = L.m_polygonB.vertices[d]; f.x = g.x; f.y = g.y; L.ie[1].id.indexA = 0; L.ie[1].id.indexB = d; L.ie[1].id.typeA = Tb.FACE; L.ie[1].id.typeB = Tb.VERTEX; this.m_front ? ((L.rf.i1 = 0), (L.rf.i2 = 1), (f = L.rf.v1), (g = this.m_v1), (f.x = g.x), (f.y = g.y), (f = L.rf.v2), (g = this.m_v2), (f.x = g.x), (f.y = g.y), (f = L.rf.normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y)) : ((L.rf.i1 = 1), (L.rf.i2 = 0), (f = L.rf.v1), (g = this.m_v2), (f.x = g.x), (f.y = g.y), (f = L.rf.v2), (g = this.m_v1), (f.x = g.x), (f.y = g.y), (f = L.rf.normal), (g = L.m_normal1), (f.x = g.x), (f.y = g.y), (f = L.rf.normal), (f.x = -f.x), (f.y = -f.y)); } else (a.m_type = 4), (f = L.ie[0].v), (g = this.m_v1), (f.x = g.x), (f.y = g.y), (L.ie[0].id.indexA = 0), (L.ie[0].id.indexB = c.index), (L.ie[0].id.typeA = Tb.VERTEX), (L.ie[0].id.typeB = Tb.FACE), (f = L.ie[1].v), (g = this.m_v2), (f.x = g.x), (f.y = g.y), (L.ie[1].id.indexA = 0), (L.ie[1].id.indexB = c.index), (L.ie[1].id.typeA = Tb.VERTEX), (L.ie[1].id.typeB = Tb.FACE), (L.rf.i1 = c.index), (L.rf.i2 = L.rf.i1 + 1 < L.m_polygonB.count ? L.rf.i1 + 1 : 0), (f = L.rf.v1), (g = L.m_polygonB.vertices[L.rf.i1]), (f.x = g.x), (f.y = g.y), (f = L.rf.v2), (g = L.m_polygonB.vertices[L.rf.i2]), (f.x = g.x), (f.y = g.y), (f = L.rf.normal), (g = L.m_polygonB.normals[L.rf.i1]), (f.x = g.x), (f.y = g.y); f = L.rf.sideNormal1; g = L.rf.normal.y; d = -L.rf.normal.x; null == d && (d = 0); null == g && (g = 0); f.x = g; f.y = d; f = L.rf.sideNormal2; g = L.rf.sideNormal1; f.x = g.x; f.y = g.y; f = L.rf.sideNormal2; f.x = -f.x; f.y = -f.y; L.rf.sideOffset1 = S.dot(L.rf.sideNormal1, L.rf.v1); L.rf.sideOffset2 = S.dot(L.rf.sideNormal2, L.rf.v2); f = L.clipSegmentToLine( L.clipPoints1, L.ie, L.rf.sideNormal1, L.rf.sideOffset1, L.rf.i1 ); if ( !( f < da.b2_maxManifoldPoints || ((f = L.clipSegmentToLine( L.clipPoints2, L.clipPoints1, L.rf.sideNormal2, L.rf.sideOffset2, L.rf.i2 )), f < da.b2_maxManifoldPoints) ) ) { c.type == Jf.EDGE_A ? ((f = a.m_localPlaneNormal), (g = L.rf.normal), (f.x = g.x), (f.y = g.y), (f = a.m_localPoint), (g = L.rf.v1)) : ((f = a.m_localPlaneNormal), (g = e.m_normals[L.rf.i1]), (f.x = g.x), (f.y = g.y), (f = a.m_localPoint), (g = e.m_vertices[L.rf.i1])); f.x = g.x; f.y = g.y; b = e = 0; for (d = da.b2_maxManifoldPoints; b < d; ) (l = b++), (f = L.temp), (g = L.clipPoints2[l].v), (f.x = g.x), (f.y = g.y), L.temp.subtract(L.rf.v1), S.dot(L.rf.normal, L.temp) <= this.m_radius && ((f = a.m_points[e]), c.type == Jf.EDGE_A ? ((g = f.m_localPoint), (v = S.mulXT(L.m_xf, L.clipPoints2[l].v)), (g.x = v.x), (g.y = v.y), f.m_id.set(L.clipPoints2[l].id)) : ((g = f.m_localPoint), (v = L.clipPoints2[l].v), (g.x = v.x), (g.y = v.y), (f.m_id.typeA = L.clipPoints2[l].id.typeB), (f.m_id.typeB = L.clipPoints2[l].id.typeA), (f.m_id.indexA = L.clipPoints2[l].id.indexB), (f.m_id.indexB = L.clipPoints2[l].id.indexA)), ++e); a.m_pointCount = e; } } }, computeEdgeSeparation: function (a) { a.type = Jf.EDGE_A; a.index = this.m_front ? 0 : 1; a.separation = Number.MAX_VALUE; for (var b = 0, c = L.m_polygonB.count; b < c; ) { var e = b++, f = L.temp; e = L.m_polygonB.vertices[e]; f.x = e.x; f.y = e.y; L.temp.subtract(this.m_v1); f = S.dot(L.m_normal, L.temp); f < a.separation && (a.separation = f); } }, computePolygonSeparation: function (a) { a.type = Jf.UNKNOWN; a.index = -1; a.separation = -Number.MAX_VALUE; var b = L.perp, c = -L.m_normal.y, e = L.m_normal.x; null == e && (e = 0); null == c && (c = 0); b.x = c; b.y = e; c = 0; for (e = L.m_polygonB.count; c < e; ) { var f = c++; b = L.n; var g = L.m_polygonB.normals[f]; b.x = g.x; b.y = g.y; b = L.n; b.x = -b.x; b.y = -b.y; b = L.temp; g = L.m_polygonB.vertices[f]; b.x = g.x; b.y = g.y; L.temp.subtract(this.m_v1); b = S.dot(L.n, L.temp); g = L.temp; var d = L.m_polygonB.vertices[f]; g.x = d.x; g.y = d.y; L.temp.subtract(this.m_v2); g = S.dot(L.n, L.temp); b = Math.min(b, g); if (b > this.m_radius) { a.type = Jf.EDGE_B; a.index = f; a.separation = b; break; } 0 <= S.dot(L.n, L.perp) ? ((g = L.temp), (d = L.n), (g.x = d.x), (g.y = d.y), L.temp.subtract(L.m_upperLimit)) : ((g = L.temp), (d = L.n), (g.x = d.x), (g.y = d.y), L.temp.subtract(L.m_lowerLimit)); !(S.dot(L.temp, L.m_normal) < -da.b2_angularSlop) && b > a.separation && ((a.type = Jf.EDGE_B), (a.index = f), (a.separation = b)); } }, multiplyTransformsInverse: function (a, b, c) { this.multiplyRotationsInverse(a.R, b.R, L.mat); var e = L.temp2; b = b.position; e.x = b.x; e.y = b.y; L.temp2.subtract(a.position); this.multiplyRotationVectorInverse(a.R, L.temp2, c.position); e = c.R.col1; b = L.mat.col1; e.x = b.x; e.y = b.y; e = c.R.col2; b = L.mat.col2; e.x = b.x; e.y = b.y; }, multiplyRotationsInverse: function (a, b, c) { c.col1.x = a.col1.x * b.col1.x + a.col1.y * b.col1.y; c.col1.y = a.col2.x * b.col1.x + a.col2.y * b.col1.y; c.col2.x = a.col1.x * b.col2.x + a.col1.y * b.col2.y; c.col2.y = a.col2.x * b.col2.x + a.col2.y * b.col2.y; }, multiplyRotationVector: function (a, b, c) { c.x = a.col1.x * b.x + a.col2.x * b.y; c.y = a.col1.y * b.x + a.col2.y * b.y; }, multiplyRotationVectorInverse: function (a, b, c) { c.x = a.col1.x * b.x + a.col1.y * b.y; c.y = a.col2.x * b.x + a.col2.y * b.y; }, multiplyTransformVector: function (a, b, c) { c.x = a.R.col1.x * b.x + a.R.col2.x * b.y + a.position.x; c.y = a.R.col1.y * b.x + a.R.col2.y * b.y + a.position.y; }, __class__: L }); var Jf = (E['box2D.dynamics.contacts.Type'] = { __ename__: 'box2D.dynamics.contacts.Type', __constructs__: null, UNKNOWN: { _hx_name: 'UNKNOWN', _hx_index: 0, __enum__: 'box2D.dynamics.contacts.Type', toString: w }, EDGE_A: { _hx_name: 'EDGE_A', _hx_index: 1, __enum__: 'box2D.dynamics.contacts.Type', toString: w }, EDGE_B: { _hx_name: 'EDGE_B', _hx_index: 2, __enum__: 'box2D.dynamics.contacts.Type', toString: w } }); Jf.__constructs__ = [Jf.UNKNOWN, Jf.EDGE_A, Jf.EDGE_B]; var ph = function () { ab.call(this); }; h['box2D.dynamics.contacts.B2PolygonContact'] = ph; ph.__name__ = 'box2D.dynamics.contacts.B2PolygonContact'; ph.create = function (a) { return new ph(); }; ph.destroy = function (a, b) {}; ph.__super__ = ab; ph.prototype = r(ab.prototype, { reset: function (a, b) { ab.prototype.reset.call(this, a, b); }, evaluate: function () { var a = this.m_fixtureA.getBody(), b = this.m_fixtureB.getBody(); z.collidePolygons( this.m_manifold, x.__cast(this.m_fixtureA.getShape(), Db), a.m_xf, x.__cast(this.m_fixtureB.getShape(), Db), b.m_xf ); }, __class__: ph }); var cw = function () {}; h['box2D.dynamics.controllers.B2Controller'] = cw; cw.__name__ = 'box2D.dynamics.controllers.B2Controller'; cw.prototype = { step: function (a) {}, draw: function (a) {}, addBody: function (a) { var b = new Jn(); b.controller = this; b.body = a; b.nextBody = this.m_bodyList; b.prevBody = null; this.m_bodyList = b; null != b.nextBody && (b.nextBody.prevBody = b); this.m_bodyCount++; b.nextController = a.m_controllerList; b.prevController = null; a.m_controllerList = b; null != b.nextController && (b.nextController.prevController = b); a.m_controllerCount++; }, removeBody: function (a) { for (var b = a.m_controllerList; null != b && b.controller != this; ) b = b.nextController; null != b.prevBody && (b.prevBody.nextBody = b.nextBody); null != b.nextBody && (b.nextBody.prevBody = b.prevBody); null != b.nextController && (b.nextController.prevController = b.prevController); null != b.prevController && (b.prevController.nextController = b.nextController); this.m_bodyList == b && (this.m_bodyList = b.nextBody); a.m_controllerList == b && (a.m_controllerList = b.nextController); a.m_controllerCount--; this.m_bodyCount--; }, clear: function () { for (; null != this.m_bodyList; ) this.removeBody(this.m_bodyList.body); }, getNext: function () { return this.m_next; }, getWorld: function () { return this.m_world; }, getBodyList: function () { return this.m_bodyList; }, m_next: null, m_prev: null, m_bodyList: null, m_bodyCount: null, m_world: null, __class__: cw }; var Jn = function () {}; h['box2D.dynamics.controllers.B2ControllerEdge'] = Jn; Jn.__name__ = 'box2D.dynamics.controllers.B2ControllerEdge'; Jn.prototype = { controller: null, body: null, prevBody: null, nextBody: null, prevController: null, nextController: null, __class__: Jn }; var Ub = function (a) { this.m_edgeA = new Fk(); this.m_edgeB = new Fk(); this.m_localCenterA = new P(); this.m_localCenterB = new P(); da.b2Assert(a.bodyA != a.bodyB); this.m_type = a.type; this.m_next = this.m_prev = null; this.m_bodyA = a.bodyA; this.m_bodyB = a.bodyB; this.m_collideConnected = a.collideConnected; this.m_islandFlag = !1; this.m_userData = a.userData; }; h['box2D.dynamics.joints.B2Joint'] = Ub; Ub.__name__ = 'box2D.dynamics.joints.B2Joint'; Ub.create = function (a, b) { b = null; 3 == a.type ? (b = new si(x.__cast(a, Mh))) : 5 == a.type ? (b = new Gk(x.__cast(a, Hk))) : 2 == a.type ? (b = new ti(x.__cast(a, Ik))) : 1 == a.type ? (b = new bg(x.__cast(a, Nh))) : 4 == a.type ? (b = new wg(x.__cast(a, Jk))) : 6 == a.type ? (b = new Kk(x.__cast(a, Lk))) : 7 == a.type ? (b = new yj(x.__cast(a, Oh))) : 8 == a.type ? (b = new Mk(x.__cast(a, Nk))) : 9 == a.type && (b = new Ok(x.__cast(a, Pk))); return b; }; Ub.destroy = function (a, b) {}; Ub.prototype = { getType: function () { return this.m_type; }, getAnchorA: function () { return null; }, getAnchorB: function () { return null; }, getReactionForce: function (a) { return null; }, getReactionTorque: function (a) { return 0; }, getBodyA: function () { return this.m_bodyA; }, getBodyB: function () { return this.m_bodyB; }, getNext: function () { return this.m_next; }, getUserData: function () { return this.m_userData; }, setUserData: function (a) { this.m_userData = a; }, isActive: function () { return this.m_bodyA.isActive() ? this.m_bodyB.isActive() : !1; }, initVelocityConstraints: function (a) {}, solveVelocityConstraints: function (a) {}, finalizeVelocityConstraints: function () {}, solvePositionConstraints: function (a) { return !1; }, m_type: null, m_prev: null, m_next: null, m_edgeA: null, m_edgeB: null, m_bodyA: null, m_bodyB: null, m_islandFlag: null, m_collideConnected: null, m_userData: null, m_localCenterA: null, m_localCenterB: null, m_invMassA: null, m_invMassB: null, m_invIA: null, m_invIB: null, ID: null, __class__: Ub }; var si = function (a) { Ub.call(this, a); this.m_localAnchor1 = new P(); this.m_localAnchor2 = new P(); this.m_u = new P(); var b = this.m_localAnchor1, c = a.localAnchorA; b.x = c.x; b.y = c.y; b = this.m_localAnchor2; c = a.localAnchorB; b.x = c.x; b.y = c.y; this.m_length = a.length; this.m_frequencyHz = a.frequencyHz; this.m_dampingRatio = a.dampingRatio; this.m_bias = this.m_gamma = this.m_impulse = 0; }; h['box2D.dynamics.joints.B2DistanceJoint'] = si; si.__name__ = 'box2D.dynamics.joints.B2DistanceJoint'; si.__super__ = Ub; si.prototype = r(Ub.prototype, { getAnchorA: function () { return this.m_bodyA.getWorldPoint(this.m_localAnchor1); }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchor2); }, getReactionForce: function (a) { return new P(a * this.m_impulse * this.m_u.x, a * this.m_impulse * this.m_u.y); }, getReactionTorque: function (a) { return 0; }, getLength: function () { return this.m_length; }, setLength: function (a) { this.m_length = a; }, getFrequency: function () { return this.m_frequencyHz; }, setFrequency: function (a) { this.m_frequencyHz = a; }, getDampingRatio: function () { return this.m_dampingRatio; }, setDampingRatio: function (a) { this.m_dampingRatio = a; }, initVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, e = b.m_xf.R, f = this.m_localAnchor1.x - b.m_sweep.localCenter.x, g = this.m_localAnchor1.y - b.m_sweep.localCenter.y, d = e.col1.x * f + e.col2.x * g; g = e.col1.y * f + e.col2.y * g; f = d; e = c.m_xf.R; var l = this.m_localAnchor2.x - c.m_sweep.localCenter.x, v = this.m_localAnchor2.y - c.m_sweep.localCenter.y; d = e.col1.x * l + e.col2.x * v; v = e.col1.y * l + e.col2.y * v; l = d; this.m_u.x = c.m_sweep.c.x + l - b.m_sweep.c.x - f; this.m_u.y = c.m_sweep.c.y + v - b.m_sweep.c.y - g; e = Math.sqrt(this.m_u.x * this.m_u.x + this.m_u.y * this.m_u.y); e > da.b2_linearSlop ? this.m_u.multiply(1 / e) : ((d = this.m_u), (d.x = 0), (d.y = 0)); d = f * this.m_u.y - g * this.m_u.x; var n = l * this.m_u.y - v * this.m_u.x; d = b.m_invMass + b.m_invI * d * d + c.m_invMass + c.m_invI * n * n; this.m_mass = 0 != d ? 1 / d : 0; if (0 < this.m_frequencyHz) { e -= this.m_length; n = 2 * Math.PI * this.m_frequencyHz; var k = this.m_mass * n * n; this.m_gamma = a.dt * (2 * this.m_mass * this.m_dampingRatio * n + a.dt * k); this.m_gamma = 0 != this.m_gamma ? 1 / this.m_gamma : 0; this.m_bias = e * a.dt * k * this.m_gamma; this.m_mass = d + this.m_gamma; this.m_mass = 0 != this.m_mass ? 1 / this.m_mass : 0; } a.warmStarting ? ((this.m_impulse *= a.dtRatio), (a = this.m_impulse * this.m_u.x), (e = this.m_impulse * this.m_u.y), (b.m_linearVelocity.x -= b.m_invMass * a), (b.m_linearVelocity.y -= b.m_invMass * e), (b.m_angularVelocity -= b.m_invI * (f * e - g * a)), (c.m_linearVelocity.x += c.m_invMass * a), (c.m_linearVelocity.y += c.m_invMass * e), (c.m_angularVelocity += c.m_invI * (l * e - v * a))) : (this.m_impulse = 0); }, solveVelocityConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = a.m_xf.R, e = this.m_localAnchor1.x - a.m_sweep.localCenter.x, f = this.m_localAnchor1.y - a.m_sweep.localCenter.y, g = c.col1.x * e + c.col2.x * f; f = c.col1.y * e + c.col2.y * f; e = g; c = b.m_xf.R; var d = this.m_localAnchor2.x - b.m_sweep.localCenter.x, l = this.m_localAnchor2.y - b.m_sweep.localCenter.y; g = c.col1.x * d + c.col2.x * l; l = c.col1.y * d + c.col2.y * l; d = g; g = -this.m_mass * (this.m_u.x * (b.m_linearVelocity.x + -b.m_angularVelocity * l - (a.m_linearVelocity.x + -a.m_angularVelocity * f)) + this.m_u.y * (b.m_linearVelocity.y + b.m_angularVelocity * d - (a.m_linearVelocity.y + a.m_angularVelocity * e)) + this.m_bias + this.m_gamma * this.m_impulse); this.m_impulse += g; c = g * this.m_u.x; g *= this.m_u.y; a.m_linearVelocity.x -= a.m_invMass * c; a.m_linearVelocity.y -= a.m_invMass * g; a.m_angularVelocity -= a.m_invI * (e * g - f * c); b.m_linearVelocity.x += b.m_invMass * c; b.m_linearVelocity.y += b.m_invMass * g; b.m_angularVelocity += b.m_invI * (d * g - l * c); }, solvePositionConstraints: function (a) { if (0 < this.m_frequencyHz) return !0; a = this.m_bodyA; var b = this.m_bodyB, c = a.m_xf.R, e = this.m_localAnchor1.x - a.m_sweep.localCenter.x, f = this.m_localAnchor1.y - a.m_sweep.localCenter.y, g = c.col1.x * e + c.col2.x * f; f = c.col1.y * e + c.col2.y * f; e = g; c = b.m_xf.R; var d = this.m_localAnchor2.x - b.m_sweep.localCenter.x, l = this.m_localAnchor2.y - b.m_sweep.localCenter.y; g = c.col1.x * d + c.col2.x * l; l = c.col1.y * d + c.col2.y * l; d = g; var v = b.m_sweep.c.x + d - a.m_sweep.c.x - e, n = b.m_sweep.c.y + l - a.m_sweep.c.y - f; c = Math.sqrt(v * v + n * n); v /= c; n /= c; c -= this.m_length; c = S.clamp(c, -da.b2_maxLinearCorrection, da.b2_maxLinearCorrection); g = -this.m_mass * c; var k = this.m_u; null == n && (n = 0); null == v && (v = 0); k.x = v; k.y = n; n = g * this.m_u.x; g *= this.m_u.y; a.m_sweep.c.x -= a.m_invMass * n; a.m_sweep.c.y -= a.m_invMass * g; a.m_sweep.a -= a.m_invI * (e * g - f * n); b.m_sweep.c.x += b.m_invMass * n; b.m_sweep.c.y += b.m_invMass * g; b.m_sweep.a += b.m_invI * (d * g - l * n); a.synchronizeTransform(); b.synchronizeTransform(); return S.abs(c) < da.b2_linearSlop; }, m_localAnchor1: null, m_localAnchor2: null, m_u: null, m_frequencyHz: null, m_dampingRatio: null, m_gamma: null, m_bias: null, m_impulse: null, m_mass: null, m_length: null, __class__: si }); var Xc = function () { this.type = 0; this.bodyB = this.bodyA = this.userData = null; this.collideConnected = !1; }; h['box2D.dynamics.joints.B2JointDef'] = Xc; Xc.__name__ = 'box2D.dynamics.joints.B2JointDef'; Xc.prototype = { type: null, userData: null, bodyA: null, bodyB: null, collideConnected: null, ID: null, actor1: null, actor2: null, __class__: Xc }; var Mh = function () { Xc.call(this); this.localAnchorA = new P(); this.localAnchorB = new P(); this.type = 3; this.length = 1; this.dampingRatio = this.frequencyHz = 0; }; h['box2D.dynamics.joints.B2DistanceJointDef'] = Mh; Mh.__name__ = 'box2D.dynamics.joints.B2DistanceJointDef'; Mh.__super__ = Xc; Mh.prototype = r(Xc.prototype, { initialize: function (a, b, c, e) { this.bodyA = a; this.bodyB = b; a = this.localAnchorA; b = this.bodyA.getLocalPoint(c); a.x = b.x; a.y = b.y; a = this.localAnchorB; b = this.bodyB.getLocalPoint(e); a.x = b.x; a.y = b.y; a = e.x - c.x; c = e.y - c.y; this.length = Math.sqrt(a * a + c * c); this.dampingRatio = this.frequencyHz = 0; }, localAnchorA: null, localAnchorB: null, length: null, frequencyHz: null, dampingRatio: null, __class__: Mh }); var Ok = function (a) { Ub.call(this, a); this.m_localAnchorA = new P(); this.m_localAnchorB = new P(); this.m_linearMass = new yc(); this.m_linearImpulse = new P(); var b = this.m_localAnchorA, c = a.localAnchorA; b.x = c.x; b.y = c.y; b = this.m_localAnchorB; c = a.localAnchorB; b.x = c.x; b.y = c.y; this.m_linearMass.setZero(); this.m_angularMass = 0; b = this.m_linearImpulse; b.x = 0; this.m_angularImpulse = b.y = 0; this.m_maxForce = a.maxForce; this.m_maxTorque = a.maxTorque; }; h['box2D.dynamics.joints.B2FrictionJoint'] = Ok; Ok.__name__ = 'box2D.dynamics.joints.B2FrictionJoint'; Ok.__super__ = Ub; Ok.prototype = r(Ub.prototype, { getAnchorA: function () { return this.m_bodyA.getWorldPoint(this.m_localAnchorA); }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchorB); }, getReactionForce: function (a) { return new P(a * this.m_linearImpulse.x, a * this.m_linearImpulse.y); }, getReactionTorque: function (a) { return a * this.m_angularImpulse; }, setMaxForce: function (a) { this.m_maxForce = a; }, getMaxForce: function () { return this.m_maxForce; }, setMaxTorque: function (a) { this.m_maxTorque = a; }, getMaxTorque: function () { return this.m_maxTorque; }, initVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, e = b.m_xf.R, f = this.m_localAnchorA.x - b.m_sweep.localCenter.x, g = this.m_localAnchorA.y - b.m_sweep.localCenter.y, d = e.col1.x * f + e.col2.x * g; g = e.col1.y * f + e.col2.y * g; f = d; e = c.m_xf.R; var l = this.m_localAnchorB.x - c.m_sweep.localCenter.x, v = this.m_localAnchorB.y - c.m_sweep.localCenter.y; d = e.col1.x * l + e.col2.x * v; v = e.col1.y * l + e.col2.y * v; l = d; e = b.m_invMass; d = c.m_invMass; var n = b.m_invI, k = c.m_invI, m = new yc(); m.col1.x = e + d; m.col2.x = 0; m.col1.y = 0; m.col2.y = e + d; m.col1.x += n * g * g; m.col2.x += -n * f * g; m.col1.y += -n * f * g; m.col2.y += n * f * f; m.col1.x += k * v * v; m.col2.x += -k * l * v; m.col1.y += -k * l * v; m.col2.y += k * l * l; m.getInverse(this.m_linearMass); this.m_angularMass = n + k; 0 < this.m_angularMass && (this.m_angularMass = 1 / this.m_angularMass); a.warmStarting ? ((this.m_linearImpulse.x *= a.dtRatio), (this.m_linearImpulse.y *= a.dtRatio), (this.m_angularImpulse *= a.dtRatio), (a = this.m_linearImpulse), (b.m_linearVelocity.x -= e * a.x), (b.m_linearVelocity.y -= e * a.y), (b.m_angularVelocity -= n * (f * a.y - g * a.x + this.m_angularImpulse)), (c.m_linearVelocity.x += d * a.x), (c.m_linearVelocity.y += d * a.y), (c.m_angularVelocity += k * (l * a.y - v * a.x + this.m_angularImpulse))) : ((b = this.m_linearImpulse), (b.x = 0), (this.m_angularImpulse = b.y = 0)); }, solveVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, e = b.m_linearVelocity, f = b.m_angularVelocity, g = c.m_linearVelocity, d = c.m_angularVelocity, l = b.m_invMass, v = c.m_invMass, n = b.m_invI, k = c.m_invI, m = b.m_xf.R, h = this.m_localAnchorA.x - b.m_sweep.localCenter.x, t = this.m_localAnchorA.y - b.m_sweep.localCenter.y, u = m.col1.x * h + m.col2.x * t; t = m.col1.y * h + m.col2.y * t; h = u; m = c.m_xf.R; var q = this.m_localAnchorB.x - c.m_sweep.localCenter.x, r = this.m_localAnchorB.y - c.m_sweep.localCenter.y; u = m.col1.x * q + m.col2.x * r; r = m.col1.y * q + m.col2.y * r; q = u; u = -this.m_angularMass * (d - f); var w = this.m_angularImpulse; m = a.dt * this.m_maxTorque; this.m_angularImpulse = S.clamp(this.m_angularImpulse + u, -m, m); u = this.m_angularImpulse - w; f -= n * u; d += k * u; m = S.mulMV( this.m_linearMass, new P(-(g.x - d * r - e.x + f * t), -(g.y + d * q - e.y - f * h)) ); u = this.m_linearImpulse.copy(); this.m_linearImpulse.add(m); m = a.dt * this.m_maxForce; this.m_linearImpulse.lengthSquared() > m * m && (this.m_linearImpulse.normalize(), this.m_linearImpulse.multiply(m)); m = S.subtractVV(this.m_linearImpulse, u); e.x -= l * m.x; e.y -= l * m.y; f -= n * (h * m.y - t * m.x); g.x += v * m.x; g.y += v * m.y; d += k * (q * m.y - r * m.x); b.m_angularVelocity = f; c.m_angularVelocity = d; }, solvePositionConstraints: function (a) { return !0; }, m_localAnchorA: null, m_localAnchorB: null, m_linearMass: null, m_angularMass: null, m_linearImpulse: null, m_angularImpulse: null, m_maxForce: null, m_maxTorque: null, __class__: Ok }); var Pk = function () { Xc.call(this); this.localAnchorA = new P(); this.localAnchorB = new P(); this.type = 9; this.maxTorque = this.maxForce = 0; }; h['box2D.dynamics.joints.B2FrictionJointDef'] = Pk; Pk.__name__ = 'box2D.dynamics.joints.B2FrictionJointDef'; Pk.__super__ = Xc; Pk.prototype = r(Xc.prototype, { initialize: function (a, b, c) { this.bodyA = a; this.bodyB = b; a = this.localAnchorA; b = this.bodyA.getLocalPoint(c); a.x = b.x; a.y = b.y; a = this.localAnchorB; b = this.bodyB.getLocalPoint(c); a.x = b.x; a.y = b.y; }, localAnchorA: null, localAnchorB: null, maxForce: null, maxTorque: null, __class__: Pk }); var Kk = function (a) { Ub.call(this, a); this.m_groundAnchor1 = new P(); this.m_groundAnchor2 = new P(); this.m_localAnchor1 = new P(); this.m_localAnchor2 = new P(); this.m_J = new Kn(); var b = a.joint1.m_type, c = a.joint2.m_type; this.m_prismatic2 = this.m_revolute2 = this.m_prismatic1 = this.m_revolute1 = null; this.m_ground1 = a.joint1.getBodyA(); this.m_bodyA = a.joint1.getBodyB(); if (1 == b) { this.m_revolute1 = x.__cast(a.joint1, bg); var e = this.m_groundAnchor1, f = this.m_revolute1.m_localAnchor1; e.x = f.x; e.y = f.y; e = this.m_localAnchor1; f = this.m_revolute1.m_localAnchor2; e.x = f.x; e.y = f.y; b = this.m_revolute1.getJointAngle(); } else (this.m_prismatic1 = x.__cast(a.joint1, ti)), (e = this.m_groundAnchor1), (f = this.m_prismatic1.m_localAnchor1), (e.x = f.x), (e.y = f.y), (e = this.m_localAnchor1), (f = this.m_prismatic1.m_localAnchor2), (e.x = f.x), (e.y = f.y), (b = this.m_prismatic1.getJointTranslation()); this.m_ground2 = a.joint2.getBodyA(); this.m_bodyB = a.joint2.getBodyB(); 1 == c ? ((this.m_revolute2 = x.__cast(a.joint2, bg)), (e = this.m_groundAnchor2), (f = this.m_revolute2.m_localAnchor1), (e.x = f.x), (e.y = f.y), (e = this.m_localAnchor2), (f = this.m_revolute2.m_localAnchor2), (e.x = f.x), (e.y = f.y), (c = this.m_revolute2.getJointAngle())) : ((this.m_prismatic2 = x.__cast(a.joint2, ti)), (e = this.m_groundAnchor2), (f = this.m_prismatic2.m_localAnchor1), (e.x = f.x), (e.y = f.y), (e = this.m_localAnchor2), (f = this.m_prismatic2.m_localAnchor2), (e.x = f.x), (e.y = f.y), (c = this.m_prismatic2.getJointTranslation())); this.m_ratio = a.ratio; this.m_constant = b + this.m_ratio * c; this.m_impulse = 0; }; h['box2D.dynamics.joints.B2GearJoint'] = Kk; Kk.__name__ = 'box2D.dynamics.joints.B2GearJoint'; Kk.__super__ = Ub; Kk.prototype = r(Ub.prototype, { getAnchorA: function () { return this.m_bodyA.getWorldPoint(this.m_localAnchor1); }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchor2); }, getReactionForce: function (a) { return new P( a * this.m_impulse * this.m_J.linearB.x, a * this.m_impulse * this.m_J.linearB.y ); }, getReactionTorque: function (a) { var b = this.m_bodyB.m_xf.R, c = this.m_localAnchor1.x - this.m_bodyB.m_sweep.localCenter.x, e = this.m_localAnchor1.y - this.m_bodyB.m_sweep.localCenter.y, f = b.col1.x * c + b.col2.x * e; e = b.col1.y * c + b.col2.y * e; return ( a * (this.m_impulse * this.m_J.angularB - f * this.m_impulse * this.m_J.linearB.y + e * this.m_impulse * this.m_J.linearB.x) ); }, getRatio: function () { return this.m_ratio; }, setRatio: function (a) { this.m_ratio = a; }, initVelocityConstraints: function (a) { var b = this.m_ground1, c = this.m_ground2, e = this.m_bodyA, f = this.m_bodyB, g = 0; this.m_J.setZero(); if (null != this.m_revolute1) (this.m_J.angularA = -1), (g += e.m_invI); else { var d = b.m_xf.R; var l = this.m_prismatic1.m_localXAxis1; b = d.col1.x * l.x + d.col2.x * l.y; l = d.col1.y * l.x + d.col2.y * l.y; d = e.m_xf.R; var v = this.m_localAnchor1.x - e.m_sweep.localCenter.x; var n = this.m_localAnchor1.y - e.m_sweep.localCenter.y; var k = d.col1.x * v + d.col2.x * n; n = d.col1.y * v + d.col2.y * n; d = k * l - n * b; v = this.m_J.linearA; b = -b; l = -l; null == l && (l = 0); null == b && (b = 0); v.x = b; v.y = l; this.m_J.angularA = -d; g += e.m_invMass + e.m_invI * d * d; } null != this.m_revolute2 ? ((this.m_J.angularB = -this.m_ratio), (g += this.m_ratio * this.m_ratio * f.m_invI)) : ((d = c.m_xf.R), (l = this.m_prismatic2.m_localXAxis1), (b = d.col1.x * l.x + d.col2.x * l.y), (l = d.col1.y * l.x + d.col2.y * l.y), (d = f.m_xf.R), (v = this.m_localAnchor2.x - f.m_sweep.localCenter.x), (n = this.m_localAnchor2.y - f.m_sweep.localCenter.y), (k = d.col1.x * v + d.col2.x * n), (n = d.col1.y * v + d.col2.y * n), (d = k * l - n * b), (v = this.m_J.linearB), (b *= -this.m_ratio), (l *= -this.m_ratio), null == l && (l = 0), null == b && (b = 0), (v.x = b), (v.y = l), (this.m_J.angularB = -this.m_ratio * d), (g += this.m_ratio * this.m_ratio * (f.m_invMass + f.m_invI * d * d))); this.m_mass = 0 < g ? 1 / g : 0; a.warmStarting ? ((e.m_linearVelocity.x += e.m_invMass * this.m_impulse * this.m_J.linearA.x), (e.m_linearVelocity.y += e.m_invMass * this.m_impulse * this.m_J.linearA.y), (e.m_angularVelocity += e.m_invI * this.m_impulse * this.m_J.angularA), (f.m_linearVelocity.x += f.m_invMass * this.m_impulse * this.m_J.linearB.x), (f.m_linearVelocity.y += f.m_invMass * this.m_impulse * this.m_J.linearB.y), (f.m_angularVelocity += f.m_invI * this.m_impulse * this.m_J.angularB)) : (this.m_impulse = 0); }, solveVelocityConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = this.m_J.compute( a.m_linearVelocity, a.m_angularVelocity, b.m_linearVelocity, b.m_angularVelocity ); c *= -this.m_mass; this.m_impulse += c; a.m_linearVelocity.x += a.m_invMass * c * this.m_J.linearA.x; a.m_linearVelocity.y += a.m_invMass * c * this.m_J.linearA.y; a.m_angularVelocity += a.m_invI * c * this.m_J.angularA; b.m_linearVelocity.x += b.m_invMass * c * this.m_J.linearB.x; b.m_linearVelocity.y += b.m_invMass * c * this.m_J.linearB.y; b.m_angularVelocity += b.m_invI * c * this.m_J.angularB; }, solvePositionConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB; var c = null != this.m_revolute1 ? this.m_revolute1.getJointAngle() : this.m_prismatic1.getJointTranslation(); var e = null != this.m_revolute2 ? this.m_revolute2.getJointAngle() : this.m_prismatic2.getJointTranslation(); c = -this.m_mass * (this.m_constant - (c + this.m_ratio * e)); a.m_sweep.c.x += a.m_invMass * c * this.m_J.linearA.x; a.m_sweep.c.y += a.m_invMass * c * this.m_J.linearA.y; a.m_sweep.a += a.m_invI * c * this.m_J.angularA; b.m_sweep.c.x += b.m_invMass * c * this.m_J.linearB.x; b.m_sweep.c.y += b.m_invMass * c * this.m_J.linearB.y; b.m_sweep.a += b.m_invI * c * this.m_J.angularB; a.synchronizeTransform(); b.synchronizeTransform(); return 0 < da.b2_linearSlop; }, m_ground1: null, m_ground2: null, m_revolute1: null, m_prismatic1: null, m_revolute2: null, m_prismatic2: null, m_groundAnchor1: null, m_groundAnchor2: null, m_localAnchor1: null, m_localAnchor2: null, m_J: null, m_constant: null, m_ratio: null, m_mass: null, m_impulse: null, __class__: Kk }); var Lk = function () { Xc.call(this); this.type = 6; this.joint2 = this.joint1 = null; this.ratio = 1; }; h['box2D.dynamics.joints.B2GearJointDef'] = Lk; Lk.__name__ = 'box2D.dynamics.joints.B2GearJointDef'; Lk.__super__ = Xc; Lk.prototype = r(Xc.prototype, { joint1: null, joint2: null, ratio: null, __class__: Lk }); var Kn = function () { this.linearA = new P(); this.linearB = new P(); }; h['box2D.dynamics.joints.B2Jacobian'] = Kn; Kn.__name__ = 'box2D.dynamics.joints.B2Jacobian'; Kn.prototype = { linearA: null, angularA: null, linearB: null, angularB: null, setZero: function () { var a = this.linearA; a.x = 0; this.angularA = a.y = 0; a = this.linearB; a.x = 0; this.angularB = a.y = 0; }, set: function (a, b, c, e) { var f = this.linearA; f.x = a.x; f.y = a.y; this.angularA = b; f = this.linearB; f.x = c.x; f.y = c.y; this.angularB = e; }, compute: function (a, b, c, e) { return ( this.linearA.x * a.x + this.linearA.y * a.y + this.angularA * b + (this.linearB.x * c.x + this.linearB.y * c.y) + this.angularB * e ); }, __class__: Kn }; var Fk = function () {}; h['box2D.dynamics.joints.B2JointEdge'] = Fk; Fk.__name__ = 'box2D.dynamics.joints.B2JointEdge'; Fk.prototype = { other: null, joint: null, prev: null, next: null, __class__: Fk }; var yj = function (a) { Ub.call(this, a); this.m_localAnchor1 = new P(); this.m_localAnchor2 = new P(); this.m_localXAxis1 = new P(); this.m_localYAxis1 = new P(); this.m_axis = new P(); this.m_perp = new P(); this.m_K = new yc(); this.m_impulse = new P(); var b = this.m_localAnchor1, c = a.localAnchorA; b.x = c.x; b.y = c.y; b = this.m_localAnchor2; c = a.localAnchorB; b.x = c.x; b.y = c.y; b = this.m_localXAxis1; c = a.localAxisA; b.x = c.x; b.y = c.y; this.m_localYAxis1.x = -this.m_localXAxis1.y; this.m_localYAxis1.y = this.m_localXAxis1.x; b = this.m_impulse; b.x = 0; this.m_motorImpulse = this.m_motorMass = b.y = 0; this.m_lowerTranslation = a.lowerTranslation; this.m_upperTranslation = a.upperTranslation; this.m_maxMotorForce = a.maxMotorForce; this.m_motorSpeed = a.motorSpeed; this.m_enableLimit = a.enableLimit; this.m_enableMotor = a.enableMotor; this.m_limitState = 0; b = this.m_axis; b.x = 0; b.y = 0; b = this.m_perp; b.x = 0; b.y = 0; }; h['box2D.dynamics.joints.B2LineJoint'] = yj; yj.__name__ = 'box2D.dynamics.joints.B2LineJoint'; yj.__super__ = Ub; yj.prototype = r(Ub.prototype, { getAnchorA: function () { return this.m_bodyA.getWorldPoint(this.m_localAnchor1); }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchor2); }, getReactionForce: function (a) { return new P( a * (this.m_impulse.x * this.m_perp.x + (this.m_motorImpulse + this.m_impulse.y) * this.m_axis.x), a * (this.m_impulse.x * this.m_perp.y + (this.m_motorImpulse + this.m_impulse.y) * this.m_axis.y) ); }, getReactionTorque: function (a) { return a * this.m_impulse.y; }, getJointTranslation: function () { var a = this.m_bodyA, b = this.m_bodyB, c = a.getWorldPoint(this.m_localAnchor1), e = b.getWorldPoint(this.m_localAnchor2); b = e.x - c.x; c = e.y - c.y; a = a.getWorldVector(this.m_localXAxis1); return a.x * b + a.y * c; }, getJointSpeed: function () { var a = this.m_bodyA, b = this.m_bodyB, c = a.m_xf.R, e = this.m_localAnchor1.x - a.m_sweep.localCenter.x, f = this.m_localAnchor1.y - a.m_sweep.localCenter.y, g = c.col1.x * e + c.col2.x * f; f = c.col1.y * e + c.col2.y * f; e = g; c = b.m_xf.R; var d = this.m_localAnchor2.x - b.m_sweep.localCenter.x, l = this.m_localAnchor2.y - b.m_sweep.localCenter.y; g = c.col1.x * d + c.col2.x * l; l = c.col1.y * d + c.col2.y * l; d = g; c = b.m_sweep.c.x + d - (a.m_sweep.c.x + e); g = b.m_sweep.c.y + l - (a.m_sweep.c.y + f); var v = a.getWorldVector(this.m_localXAxis1), n = a.m_linearVelocity, k = b.m_linearVelocity; a = a.m_angularVelocity; b = b.m_angularVelocity; return ( c * -a * v.y + g * a * v.x + (v.x * (k.x + -b * l - n.x - -a * f) + v.y * (k.y + b * d - n.y - a * e)) ); }, isLimitEnabled: function () { return this.m_enableLimit; }, enableLimit: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_enableLimit = a; }, getLowerLimit: function () { return this.m_lowerTranslation; }, getUpperLimit: function () { return this.m_upperTranslation; }, setLimits: function (a, b) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_lowerTranslation = a; this.m_upperTranslation = b; }, isMotorEnabled: function () { return this.m_enableMotor; }, enableMotor: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_enableMotor = a; }, setMotorSpeed: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_motorSpeed = a; }, getMotorSpeed: function () { return this.m_motorSpeed; }, setMaxMotorForce: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_maxMotorForce = a; }, getMaxMotorForce: function () { return this.m_maxMotorForce; }, getMotorForce: function () { return this.m_motorImpulse; }, initVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, e = this.m_localCenterA, f = b.getLocalCenter(); e.x = f.x; e.y = f.y; e = this.m_localCenterB; f = c.getLocalCenter(); e.x = f.x; e.y = f.y; var g = b.getTransform(); c.getTransform(); var d = b.m_xf.R, l = this.m_localAnchor1.x - this.m_localCenterA.x, v = this.m_localAnchor1.y - this.m_localCenterA.y, n = d.col1.x * l + d.col2.x * v; v = d.col1.y * l + d.col2.y * v; l = n; d = c.m_xf.R; var k = this.m_localAnchor2.x - this.m_localCenterB.x, m = this.m_localAnchor2.y - this.m_localCenterB.y; n = d.col1.x * k + d.col2.x * m; m = d.col1.y * k + d.col2.y * m; k = n; d = c.m_sweep.c.x + k - b.m_sweep.c.x - l; n = c.m_sweep.c.y + m - b.m_sweep.c.y - v; this.m_invMassA = b.m_invMass; this.m_invMassB = c.m_invMass; this.m_invIA = b.m_invI; this.m_invIB = c.m_invI; e = this.m_axis; f = S.mulMV(g.R, this.m_localXAxis1); e.x = f.x; e.y = f.y; this.m_a1 = (d + l) * this.m_axis.y - (n + v) * this.m_axis.x; this.m_a2 = k * this.m_axis.y - m * this.m_axis.x; this.m_motorMass = this.m_invMassA + this.m_invMassB + this.m_invIA * this.m_a1 * this.m_a1 + this.m_invIB * this.m_a2 * this.m_a2; this.m_motorMass = this.m_motorMass > Number.MIN_VALUE ? 1 / this.m_motorMass : 0; e = this.m_perp; f = S.mulMV(g.R, this.m_localYAxis1); e.x = f.x; e.y = f.y; this.m_s1 = (d + l) * this.m_perp.y - (n + v) * this.m_perp.x; this.m_s2 = k * this.m_perp.y - m * this.m_perp.x; g = this.m_invMassA; l = this.m_invMassB; v = this.m_invIA; k = this.m_invIB; this.m_K.col1.x = g + l + v * this.m_s1 * this.m_s1 + k * this.m_s2 * this.m_s2; this.m_K.col1.y = v * this.m_s1 * this.m_a1 + k * this.m_s2 * this.m_a2; this.m_K.col2.x = this.m_K.col1.y; this.m_K.col2.y = g + l + v * this.m_a1 * this.m_a1 + k * this.m_a2 * this.m_a2; this.m_enableLimit ? ((d = this.m_axis.x * d + this.m_axis.y * n), S.abs(this.m_upperTranslation - this.m_lowerTranslation) < 2 * da.b2_linearSlop ? (this.m_limitState = 3) : d <= this.m_lowerTranslation ? 1 != this.m_limitState && ((this.m_limitState = 1), (this.m_impulse.y = 0)) : d >= this.m_upperTranslation ? 2 != this.m_limitState && ((this.m_limitState = 2), (this.m_impulse.y = 0)) : ((this.m_limitState = 0), (this.m_impulse.y = 0))) : (this.m_limitState = 0); 0 == this.m_enableMotor && (this.m_motorImpulse = 0); a.warmStarting ? ((this.m_impulse.x *= a.dtRatio), (this.m_impulse.y *= a.dtRatio), (this.m_motorImpulse *= a.dtRatio), (a = this.m_impulse.x * this.m_perp.x + (this.m_motorImpulse + this.m_impulse.y) * this.m_axis.x), (d = this.m_impulse.x * this.m_perp.y + (this.m_motorImpulse + this.m_impulse.y) * this.m_axis.y), (n = this.m_impulse.x * this.m_s1 + (this.m_motorImpulse + this.m_impulse.y) * this.m_a1), (g = this.m_impulse.x * this.m_s2 + (this.m_motorImpulse + this.m_impulse.y) * this.m_a2), (b.m_linearVelocity.x -= this.m_invMassA * a), (b.m_linearVelocity.y -= this.m_invMassA * d), (b.m_angularVelocity -= this.m_invIA * n), (c.m_linearVelocity.x += this.m_invMassB * a), (c.m_linearVelocity.y += this.m_invMassB * d), (c.m_angularVelocity += this.m_invIB * g)) : ((e = this.m_impulse), (e.x = 0), (this.m_motorImpulse = e.y = 0)); }, solveVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, e = b.m_linearVelocity, f = b.m_angularVelocity, g = c.m_linearVelocity, d = c.m_angularVelocity; if (this.m_enableMotor && 3 != this.m_limitState) { var l = this.m_motorMass * (this.m_motorSpeed - (this.m_axis.x * (g.x - e.x) + this.m_axis.y * (g.y - e.y) + this.m_a2 * d - this.m_a1 * f)); var v = this.m_motorImpulse; a = a.dt * this.m_maxMotorForce; this.m_motorImpulse = S.clamp(this.m_motorImpulse + l, -a, a); l = this.m_motorImpulse - v; v = l * this.m_axis.x; a = l * this.m_axis.y; var n = l * this.m_a1; l *= this.m_a2; e.x -= this.m_invMassA * v; e.y -= this.m_invMassA * a; f -= this.m_invIA * n; g.x += this.m_invMassB * v; g.y += this.m_invMassB * a; d += this.m_invIB * l; } a = this.m_perp.x * (g.x - e.x) + this.m_perp.y * (g.y - e.y) + this.m_s2 * d - this.m_s1 * f; this.m_enableLimit && 0 != this.m_limitState ? ((n = this.m_axis.x * (g.x - e.x) + this.m_axis.y * (g.y - e.y) + this.m_a2 * d - this.m_a1 * f), (v = this.m_impulse.copy()), (l = this.m_K.solve(new P(), -a, -n)), this.m_impulse.add(l), 1 == this.m_limitState ? (this.m_impulse.y = S.max(this.m_impulse.y, 0)) : 2 == this.m_limitState && (this.m_impulse.y = S.min(this.m_impulse.y, 0)), (a = -a - (this.m_impulse.y - v.y) * this.m_K.col2.x), (this.m_impulse.x = 0 != this.m_K.col1.x ? a / this.m_K.col1.x + v.x : v.x), (l.x = this.m_impulse.x - v.x), (l.y = this.m_impulse.y - v.y), (v = l.x * this.m_perp.x + l.y * this.m_axis.x), (a = l.x * this.m_perp.y + l.y * this.m_axis.y), (n = l.x * this.m_s1 + l.y * this.m_a1), (l = l.x * this.m_s2 + l.y * this.m_a2)) : ((l = 0 != this.m_K.col1.x ? -a / this.m_K.col1.x : 0), (this.m_impulse.x += l), (v = l * this.m_perp.x), (a = l * this.m_perp.y), (n = l * this.m_s1), (l *= this.m_s2)); e.x -= this.m_invMassA * v; e.y -= this.m_invMassA * a; f -= this.m_invIA * n; g.x += this.m_invMassB * v; g.y += this.m_invMassB * a; d += this.m_invIB * l; v = b.m_linearVelocity; v.x = e.x; v.y = e.y; b.m_angularVelocity = f; v = c.m_linearVelocity; v.x = g.x; v.y = g.y; c.m_angularVelocity = d; }, solvePositionConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = a.m_sweep.c, e = a.m_sweep.a, f = b.m_sweep.c, g = b.m_sweep.a, d = 0; var l = !1; var v = 0, n = yc.fromAngle(e); var k = yc.fromAngle(g); var m = n, h = this.m_localAnchor1.x - this.m_localCenterA.x; var t = this.m_localAnchor1.y - this.m_localCenterA.y; var u = m.col1.x * h + m.col2.x * t; t = m.col1.y * h + m.col2.y * t; h = u; m = k; k = this.m_localAnchor2.x - this.m_localCenterB.x; var q = this.m_localAnchor2.y - this.m_localCenterB.y; u = m.col1.x * k + m.col2.x * q; q = m.col1.y * k + m.col2.y * q; k = u; m = f.x + k - c.x - h; u = f.y + q - c.y - t; if (this.m_enableLimit) { this.m_axis = S.mulMV(n, this.m_localXAxis1); this.m_a1 = (m + h) * this.m_axis.y - (u + t) * this.m_axis.x; this.m_a2 = k * this.m_axis.y - q * this.m_axis.x; var r = this.m_axis.x * m + this.m_axis.y * u; S.abs(this.m_upperTranslation - this.m_lowerTranslation) < 2 * da.b2_linearSlop ? ((v = S.clamp(r, -da.b2_maxLinearCorrection, da.b2_maxLinearCorrection)), (d = S.abs(r)), (l = !0)) : r <= this.m_lowerTranslation ? ((v = S.clamp( r - this.m_lowerTranslation + da.b2_linearSlop, -da.b2_maxLinearCorrection, 0 )), (d = this.m_lowerTranslation - r), (l = !0)) : r >= this.m_upperTranslation && ((v = S.clamp( r - this.m_upperTranslation + da.b2_linearSlop, 0, da.b2_maxLinearCorrection )), (d = r - this.m_upperTranslation), (l = !0)); } this.m_perp = S.mulMV(n, this.m_localYAxis1); this.m_s1 = (m + h) * this.m_perp.y - (u + t) * this.m_perp.x; this.m_s2 = k * this.m_perp.y - q * this.m_perp.x; n = new P(); h = this.m_perp.x * m + this.m_perp.y * u; d = S.max(d, S.abs(h)); l ? ((l = this.m_invMassA), (t = this.m_invMassB), (k = this.m_invIA), (q = this.m_invIB), (this.m_K.col1.x = l + t + k * this.m_s1 * this.m_s1 + q * this.m_s2 * this.m_s2), (this.m_K.col1.y = k * this.m_s1 * this.m_a1 + q * this.m_s2 * this.m_a2), (this.m_K.col2.x = this.m_K.col1.y), (this.m_K.col2.y = l + t + k * this.m_a1 * this.m_a1 + q * this.m_a2 * this.m_a2), this.m_K.solve(n, -h, -v)) : ((l = this.m_invMassA), (t = this.m_invMassB), (k = this.m_invIA), (q = this.m_invIB), (v = l + t + k * this.m_s1 * this.m_s1 + q * this.m_s2 * this.m_s2), (n.x = 0 != v ? -h / v : 0), (n.y = 0)); v = n.x * this.m_perp.x + n.y * this.m_axis.x; l = n.x * this.m_perp.y + n.y * this.m_axis.y; h = n.x * this.m_s1 + n.y * this.m_a1; n = n.x * this.m_s2 + n.y * this.m_a2; c.x -= this.m_invMassA * v; c.y -= this.m_invMassA * l; e -= this.m_invIA * h; f.x += this.m_invMassB * v; f.y += this.m_invMassB * l; g += this.m_invIB * n; a.m_sweep.a = e; b.m_sweep.a = g; a.synchronizeTransform(); b.synchronizeTransform(); return d <= da.b2_linearSlop ? 0 <= da.b2_angularSlop : !1; }, m_localAnchor1: null, m_localAnchor2: null, m_localXAxis1: null, m_localYAxis1: null, m_axis: null, m_perp: null, m_s1: null, m_s2: null, m_a1: null, m_a2: null, m_K: null, m_impulse: null, m_motorMass: null, m_motorImpulse: null, m_lowerTranslation: null, m_upperTranslation: null, m_maxMotorForce: null, m_motorSpeed: null, m_enableLimit: null, m_enableMotor: null, m_limitState: null, __class__: yj }); var Oh = function () { Xc.call(this); this.localAnchorA = new P(); this.localAnchorB = new P(); this.localAxisA = new P(); this.type = 7; var a = this.localAxisA, b = 1, c = 0; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; this.enableLimit = !1; this.upperTranslation = this.lowerTranslation = 0; this.enableMotor = !1; this.motorSpeed = this.maxMotorForce = 0; }; h['box2D.dynamics.joints.B2LineJointDef'] = Oh; Oh.__name__ = 'box2D.dynamics.joints.B2LineJointDef'; Oh.__super__ = Xc; Oh.prototype = r(Xc.prototype, { initialize: function (a, b, c, e) { this.bodyA = a; this.bodyB = b; this.localAnchorA = this.bodyA.getLocalPoint(c); this.localAnchorB = this.bodyB.getLocalPoint(c); this.localAxisA = this.bodyA.getLocalVector(e); }, localAnchorA: null, localAnchorB: null, localAxisA: null, enableLimit: null, lowerTranslation: null, upperTranslation: null, enableMotor: null, maxMotorForce: null, motorSpeed: null, __class__: Oh }); var Gk = function (a) { Ub.call(this, a); this.K = new yc(); this.K1 = new yc(); this.K2 = new yc(); this.m_localAnchor = new P(); this.m_target = new P(); this.m_impulse = new P(); this.m_mass = new yc(); this.m_C = new P(); var b = this.m_target, c = a.target; b.x = c.x; b.y = c.y; b = this.m_target.x - this.m_bodyB.m_xf.position.x; c = this.m_target.y - this.m_bodyB.m_xf.position.y; var e = this.m_bodyB.m_xf.R; this.m_localAnchor.x = b * e.col1.x + c * e.col1.y; this.m_localAnchor.y = b * e.col2.x + c * e.col2.y; this.m_maxForce = a.maxForce; b = this.m_impulse; b.x = 0; b.y = 0; this.m_frequencyHz = a.frequencyHz; this.m_dampingRatio = a.dampingRatio; this.m_gamma = this.m_beta = 0; }; h['box2D.dynamics.joints.B2MouseJoint'] = Gk; Gk.__name__ = 'box2D.dynamics.joints.B2MouseJoint'; Gk.__super__ = Ub; Gk.prototype = r(Ub.prototype, { getAnchorA: function () { return this.m_target; }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchor); }, getReactionForce: function (a) { return new P(a * this.m_impulse.x, a * this.m_impulse.y); }, getReactionTorque: function (a) { return 0; }, getTarget: function () { return this.m_target; }, setTarget: function (a) { 0 == this.m_bodyB.isAwake() && this.m_bodyB.setAwake(!0); this.m_target = a; }, getMaxForce: function () { return this.m_maxForce; }, setMaxForce: function (a) { this.m_maxForce = a; }, getFrequency: function () { return this.m_frequencyHz; }, setFrequency: function (a) { this.m_frequencyHz = a; }, getDampingRatio: function () { return this.m_dampingRatio; }, setDampingRatio: function (a) { this.m_dampingRatio = a; }, K: null, K1: null, K2: null, initVelocityConstraints: function (a) { var b = this.m_bodyB, c = b.getMass(), e = 2 * Math.PI * this.m_frequencyHz, f = c * e * e; this.m_gamma = a.dt * (2 * c * this.m_dampingRatio * e + a.dt * f); this.m_gamma = 0 != this.m_gamma ? 1 / this.m_gamma : 0; this.m_beta = a.dt * f * this.m_gamma; f = b.m_xf.R; c = this.m_localAnchor.x - b.m_sweep.localCenter.x; e = this.m_localAnchor.y - b.m_sweep.localCenter.y; var g = f.col1.x * c + f.col2.x * e; e = f.col1.y * c + f.col2.y * e; c = g; f = b.m_invMass; g = b.m_invI; this.K1.col1.x = f; this.K1.col2.x = 0; this.K1.col1.y = 0; this.K1.col2.y = f; this.K2.col1.x = g * e * e; this.K2.col2.x = -g * c * e; this.K2.col1.y = -g * c * e; this.K2.col2.y = g * c * c; this.K.setM(this.K1); this.K.addM(this.K2); this.K.col1.x += this.m_gamma; this.K.col2.y += this.m_gamma; this.K.getInverse(this.m_mass); this.m_C.x = b.m_sweep.c.x + c - this.m_target.x; this.m_C.y = b.m_sweep.c.y + e - this.m_target.y; b.m_angularVelocity *= 0.98; this.m_impulse.x *= a.dtRatio; this.m_impulse.y *= a.dtRatio; b.m_linearVelocity.x += f * this.m_impulse.x; b.m_linearVelocity.y += f * this.m_impulse.y; b.m_angularVelocity += g * (c * this.m_impulse.y - e * this.m_impulse.x); }, solveVelocityConstraints: function (a) { var b = this.m_bodyB, c = b.m_xf.R, e = this.m_localAnchor.x - b.m_sweep.localCenter.x, f = this.m_localAnchor.y - b.m_sweep.localCenter.y, g = c.col1.x * e + c.col2.x * f; f = c.col1.y * e + c.col2.y * f; e = g; g = b.m_linearVelocity.x + -b.m_angularVelocity * f; var d = b.m_linearVelocity.y + b.m_angularVelocity * e; c = this.m_mass; g = g + this.m_beta * this.m_C.x + this.m_gamma * this.m_impulse.x; var l = d + this.m_beta * this.m_C.y + this.m_gamma * this.m_impulse.y; d = -(c.col1.x * g + c.col2.x * l); l = -(c.col1.y * g + c.col2.y * l); c = this.m_impulse.x; g = this.m_impulse.y; this.m_impulse.x += d; this.m_impulse.y += l; a = a.dt * this.m_maxForce; this.m_impulse.lengthSquared() > a * a && this.m_impulse.multiply(a / this.m_impulse.length()); d = this.m_impulse.x - c; l = this.m_impulse.y - g; b.m_linearVelocity.x += b.m_invMass * d; b.m_linearVelocity.y += b.m_invMass * l; b.m_angularVelocity += b.m_invI * (e * l - f * d); }, solvePositionConstraints: function (a) { return !0; }, m_localAnchor: null, m_target: null, m_impulse: null, m_mass: null, m_C: null, m_maxForce: null, m_frequencyHz: null, m_dampingRatio: null, m_beta: null, m_gamma: null, __class__: Gk }); var Hk = function () { Xc.call(this); this.target = new P(); this.type = 5; this.maxForce = 0; this.frequencyHz = 5; this.dampingRatio = 0.7; }; h['box2D.dynamics.joints.B2MouseJointDef'] = Hk; Hk.__name__ = 'box2D.dynamics.joints.B2MouseJointDef'; Hk.__super__ = Xc; Hk.prototype = r(Xc.prototype, { target: null, maxForce: null, frequencyHz: null, dampingRatio: null, __class__: Hk }); var ti = function (a) { Ub.call(this, a); this.m_localAnchor1 = new P(); this.m_localAnchor2 = new P(); this.m_localXAxis1 = new P(); this.m_localYAxis1 = new P(); this.m_axis = new P(); this.m_perp = new P(); this.m_K = new Kh(); this.m_impulse = new Ye(); var b = this.m_localAnchor1, c = a.localAnchorA; b.x = c.x; b.y = c.y; b = this.m_localAnchor2; c = a.localAnchorB; b.x = c.x; b.y = c.y; b = this.m_localXAxis1; c = a.localAxisA; b.x = c.x; b.y = c.y; this.m_localYAxis1.x = -this.m_localXAxis1.y; this.m_localYAxis1.y = this.m_localXAxis1.x; this.m_refAngle = a.referenceAngle; this.m_impulse.setZero(); this.m_motorImpulse = this.m_motorMass = 0; this.m_lowerTranslation = a.lowerTranslation; this.m_upperTranslation = a.upperTranslation; this.m_maxMotorForce = a.maxMotorForce; this.m_motorSpeed = a.motorSpeed; this.m_enableLimit = a.enableLimit; this.m_enableMotor = a.enableMotor; this.m_limitState = 0; b = this.m_axis; b.x = 0; b.y = 0; b = this.m_perp; b.x = 0; b.y = 0; }; h['box2D.dynamics.joints.B2PrismaticJoint'] = ti; ti.__name__ = 'box2D.dynamics.joints.B2PrismaticJoint'; ti.__super__ = Ub; ti.prototype = r(Ub.prototype, { getAnchorA: function () { return this.m_bodyA.getWorldPoint(this.m_localAnchor1); }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchor2); }, getReactionForce: function (a) { return new P( a * (this.m_impulse.x * this.m_perp.x + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.x), a * (this.m_impulse.x * this.m_perp.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.y) ); }, getReactionTorque: function (a) { return a * this.m_impulse.y; }, getJointTranslation: function () { var a = this.m_bodyA, b = this.m_bodyB, c = a.getWorldPoint(this.m_localAnchor1), e = b.getWorldPoint(this.m_localAnchor2); b = e.x - c.x; c = e.y - c.y; a = a.getWorldVector(this.m_localXAxis1); return a.x * b + a.y * c; }, getJointSpeed: function () { var a = this.m_bodyA, b = this.m_bodyB, c = a.m_xf.R, e = this.m_localAnchor1.x - a.m_sweep.localCenter.x, f = this.m_localAnchor1.y - a.m_sweep.localCenter.y, g = c.col1.x * e + c.col2.x * f; f = c.col1.y * e + c.col2.y * f; e = g; c = b.m_xf.R; var d = this.m_localAnchor2.x - b.m_sweep.localCenter.x, l = this.m_localAnchor2.y - b.m_sweep.localCenter.y; g = c.col1.x * d + c.col2.x * l; l = c.col1.y * d + c.col2.y * l; d = g; c = b.m_sweep.c.x + d - (a.m_sweep.c.x + e); g = b.m_sweep.c.y + l - (a.m_sweep.c.y + f); var v = a.getWorldVector(this.m_localXAxis1), n = a.m_linearVelocity, k = b.m_linearVelocity; a = a.m_angularVelocity; b = b.m_angularVelocity; return ( c * -a * v.y + g * a * v.x + (v.x * (k.x + -b * l - n.x - -a * f) + v.y * (k.y + b * d - n.y - a * e)) ); }, isLimitEnabled: function () { return this.m_enableLimit; }, enableLimit: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_enableLimit = a; }, getLowerLimit: function () { return this.m_lowerTranslation; }, getUpperLimit: function () { return this.m_upperTranslation; }, setLimits: function (a, b) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_lowerTranslation = a; this.m_upperTranslation = b; }, isMotorEnabled: function () { return this.m_enableMotor; }, enableMotor: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_enableMotor = a; }, setMotorSpeed: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_motorSpeed = a; }, getMotorSpeed: function () { return this.m_motorSpeed; }, setMaxMotorForce: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_maxMotorForce = a; }, getMotorForce: function () { return this.m_motorImpulse; }, initVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, e = this.m_localCenterA, f = b.getLocalCenter(); e.x = f.x; e.y = f.y; e = this.m_localCenterB; f = c.getLocalCenter(); e.x = f.x; e.y = f.y; var g = b.getTransform(); c.getTransform(); var d = b.m_xf.R, l = this.m_localAnchor1.x - this.m_localCenterA.x, v = this.m_localAnchor1.y - this.m_localCenterA.y, n = d.col1.x * l + d.col2.x * v; v = d.col1.y * l + d.col2.y * v; l = n; d = c.m_xf.R; var k = this.m_localAnchor2.x - this.m_localCenterB.x, m = this.m_localAnchor2.y - this.m_localCenterB.y; n = d.col1.x * k + d.col2.x * m; m = d.col1.y * k + d.col2.y * m; k = n; d = c.m_sweep.c.x + k - b.m_sweep.c.x - l; n = c.m_sweep.c.y + m - b.m_sweep.c.y - v; this.m_invMassA = b.m_invMass; this.m_invMassB = c.m_invMass; this.m_invIA = b.m_invI; this.m_invIB = c.m_invI; e = this.m_axis; f = S.mulMV(g.R, this.m_localXAxis1); e.x = f.x; e.y = f.y; this.m_a1 = (d + l) * this.m_axis.y - (n + v) * this.m_axis.x; this.m_a2 = k * this.m_axis.y - m * this.m_axis.x; this.m_motorMass = this.m_invMassA + this.m_invMassB + this.m_invIA * this.m_a1 * this.m_a1 + this.m_invIB * this.m_a2 * this.m_a2; this.m_motorMass > Number.MIN_VALUE && (this.m_motorMass = 1 / this.m_motorMass); e = this.m_perp; f = S.mulMV(g.R, this.m_localYAxis1); e.x = f.x; e.y = f.y; this.m_s1 = (d + l) * this.m_perp.y - (n + v) * this.m_perp.x; this.m_s2 = k * this.m_perp.y - m * this.m_perp.x; g = this.m_invMassA; l = this.m_invMassB; v = this.m_invIA; k = this.m_invIB; this.m_K.col1.x = g + l + v * this.m_s1 * this.m_s1 + k * this.m_s2 * this.m_s2; this.m_K.col1.y = v * this.m_s1 + k * this.m_s2; this.m_K.col1.z = v * this.m_s1 * this.m_a1 + k * this.m_s2 * this.m_a2; this.m_K.col2.x = this.m_K.col1.y; this.m_K.col2.y = v + k; this.m_K.col2.z = v * this.m_a1 + k * this.m_a2; this.m_K.col3.x = this.m_K.col1.z; this.m_K.col3.y = this.m_K.col2.z; this.m_K.col3.z = g + l + v * this.m_a1 * this.m_a1 + k * this.m_a2 * this.m_a2; this.m_enableLimit ? ((d = this.m_axis.x * d + this.m_axis.y * n), S.abs(this.m_upperTranslation - this.m_lowerTranslation) < 2 * da.b2_linearSlop ? (this.m_limitState = 3) : d <= this.m_lowerTranslation ? 1 != this.m_limitState && ((this.m_limitState = 1), (this.m_impulse.z = 0)) : d >= this.m_upperTranslation ? 2 != this.m_limitState && ((this.m_limitState = 2), (this.m_impulse.z = 0)) : ((this.m_limitState = 0), (this.m_impulse.z = 0))) : (this.m_limitState = 0); 0 == this.m_enableMotor && (this.m_motorImpulse = 0); a.warmStarting ? ((this.m_impulse.x *= a.dtRatio), (this.m_impulse.y *= a.dtRatio), (this.m_motorImpulse *= a.dtRatio), (a = this.m_impulse.x * this.m_perp.x + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.x), (d = this.m_impulse.x * this.m_perp.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.y), (n = this.m_impulse.x * this.m_s1 + this.m_impulse.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_a1), (g = this.m_impulse.x * this.m_s2 + this.m_impulse.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_a2), (b.m_linearVelocity.x -= this.m_invMassA * a), (b.m_linearVelocity.y -= this.m_invMassA * d), (b.m_angularVelocity -= this.m_invIA * n), (c.m_linearVelocity.x += this.m_invMassB * a), (c.m_linearVelocity.y += this.m_invMassB * d), (c.m_angularVelocity += this.m_invIB * g)) : (this.m_impulse.setZero(), (this.m_motorImpulse = 0)); }, solveVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, e = b.m_linearVelocity, f = b.m_angularVelocity, g = c.m_linearVelocity, d = c.m_angularVelocity; if (this.m_enableMotor && 3 != this.m_limitState) { var l = this.m_motorMass * (this.m_motorSpeed - (this.m_axis.x * (g.x - e.x) + this.m_axis.y * (g.y - e.y) + this.m_a2 * d - this.m_a1 * f)); var v = this.m_motorImpulse; a = a.dt * this.m_maxMotorForce; this.m_motorImpulse = S.clamp(this.m_motorImpulse + l, -a, a); l = this.m_motorImpulse - v; v = l * this.m_axis.x; a = l * this.m_axis.y; var n = l * this.m_a1; l *= this.m_a2; e.x -= this.m_invMassA * v; e.y -= this.m_invMassA * a; f -= this.m_invIA * n; g.x += this.m_invMassB * v; g.y += this.m_invMassB * a; d += this.m_invIB * l; } n = this.m_perp.x * (g.x - e.x) + this.m_perp.y * (g.y - e.y) + this.m_s2 * d - this.m_s1 * f; a = d - f; this.m_enableLimit && 0 != this.m_limitState ? ((l = this.m_axis.x * (g.x - e.x) + this.m_axis.y * (g.y - e.y) + this.m_a2 * d - this.m_a1 * f), (v = this.m_impulse.copy()), (l = this.m_K.solve33(new Ye(), -n, -a, -l)), this.m_impulse.add(l), 1 == this.m_limitState ? (this.m_impulse.z = S.max(this.m_impulse.z, 0)) : 2 == this.m_limitState && (this.m_impulse.z = S.min(this.m_impulse.z, 0)), (n = -n - (this.m_impulse.z - v.z) * this.m_K.col3.x), (a = -a - (this.m_impulse.z - v.z) * this.m_K.col3.y), (a = this.m_K.solve22(new P(), n, a)), (a.x += v.x), (a.y += v.y), (this.m_impulse.x = a.x), (this.m_impulse.y = a.y), (l.x = this.m_impulse.x - v.x), (l.y = this.m_impulse.y - v.y), (l.z = this.m_impulse.z - v.z), (v = l.x * this.m_perp.x + l.z * this.m_axis.x), (a = l.x * this.m_perp.y + l.z * this.m_axis.y), (n = l.x * this.m_s1 + l.y + l.z * this.m_a1), (l = l.x * this.m_s2 + l.y + l.z * this.m_a2)) : ((l = this.m_K.solve22(new P(), -n, -a)), (this.m_impulse.x += l.x), (this.m_impulse.y += l.y), (v = l.x * this.m_perp.x), (a = l.x * this.m_perp.y), (n = l.x * this.m_s1 + l.y), (l = l.x * this.m_s2 + l.y)); e.x -= this.m_invMassA * v; e.y -= this.m_invMassA * a; f -= this.m_invIA * n; g.x += this.m_invMassB * v; g.y += this.m_invMassB * a; d += this.m_invIB * l; l = b.m_linearVelocity; l.x = e.x; l.y = e.y; b.m_angularVelocity = f; l = c.m_linearVelocity; l.x = g.x; l.y = g.y; c.m_angularVelocity = d; }, solvePositionConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = a.m_sweep.c, e = a.m_sweep.a, f = b.m_sweep.c, g = b.m_sweep.a, d = 0; var l = !1; var v = 0, n = yc.fromAngle(e), k = yc.fromAngle(g); var m = n; var h = this.m_localAnchor1.x - this.m_localCenterA.x; var t = this.m_localAnchor1.y - this.m_localCenterA.y; var u = m.col1.x * h + m.col2.x * t; t = m.col1.y * h + m.col2.y * t; h = u; m = k; k = this.m_localAnchor2.x - this.m_localCenterB.x; var q = this.m_localAnchor2.y - this.m_localCenterB.y; u = m.col1.x * k + m.col2.x * q; q = m.col1.y * k + m.col2.y * q; k = u; m = f.x + k - c.x - h; u = f.y + q - c.y - t; if (this.m_enableLimit) { this.m_axis = S.mulMV(n, this.m_localXAxis1); this.m_a1 = (m + h) * this.m_axis.y - (u + t) * this.m_axis.x; this.m_a2 = k * this.m_axis.y - q * this.m_axis.x; var r = this.m_axis.x * m + this.m_axis.y * u; S.abs(this.m_upperTranslation - this.m_lowerTranslation) < 2 * da.b2_linearSlop ? ((v = S.clamp(r, -da.b2_maxLinearCorrection, da.b2_maxLinearCorrection)), (d = S.abs(r)), (l = !0)) : r <= this.m_lowerTranslation ? ((v = S.clamp( r - this.m_lowerTranslation + da.b2_linearSlop, -da.b2_maxLinearCorrection, 0 )), (d = this.m_lowerTranslation - r), (l = !0)) : r >= this.m_upperTranslation && ((v = S.clamp( r - this.m_upperTranslation + da.b2_linearSlop, 0, da.b2_maxLinearCorrection )), (d = r - this.m_upperTranslation), (l = !0)); } this.m_perp = S.mulMV(n, this.m_localYAxis1); this.m_s1 = (m + h) * this.m_perp.y - (u + t) * this.m_perp.x; this.m_s2 = k * this.m_perp.y - q * this.m_perp.x; n = new Ye(); t = this.m_perp.x * m + this.m_perp.y * u; k = g - e - this.m_refAngle; d = S.max(d, S.abs(t)); h = S.abs(k); l ? ((l = this.m_invMassA), (q = this.m_invMassB), (m = this.m_invIA), (u = this.m_invIB), (this.m_K.col1.x = l + q + m * this.m_s1 * this.m_s1 + u * this.m_s2 * this.m_s2), (this.m_K.col1.y = m * this.m_s1 + u * this.m_s2), (this.m_K.col1.z = m * this.m_s1 * this.m_a1 + u * this.m_s2 * this.m_a2), (this.m_K.col2.x = this.m_K.col1.y), (this.m_K.col2.y = m + u), (this.m_K.col2.z = m * this.m_a1 + u * this.m_a2), (this.m_K.col3.x = this.m_K.col1.z), (this.m_K.col3.y = this.m_K.col2.z), (this.m_K.col3.z = l + q + m * this.m_a1 * this.m_a1 + u * this.m_a2 * this.m_a2), this.m_K.solve33(n, -t, -k, -v)) : ((l = this.m_invMassA), (q = this.m_invMassB), (m = this.m_invIA), (u = this.m_invIB), (v = m * this.m_s1 + u * this.m_s2), (r = m + u), this.m_K.col1.set( l + q + m * this.m_s1 * this.m_s1 + u * this.m_s2 * this.m_s2, v, 0 ), this.m_K.col2.set(v, r, 0), (v = this.m_K.solve22(new P(), -t, -k)), (n.x = v.x), (n.y = v.y), (n.z = 0)); v = n.x * this.m_perp.x + n.z * this.m_axis.x; l = n.x * this.m_perp.y + n.z * this.m_axis.y; t = n.x * this.m_s1 + n.y + n.z * this.m_a1; n = n.x * this.m_s2 + n.y + n.z * this.m_a2; c.x -= this.m_invMassA * v; c.y -= this.m_invMassA * l; e -= this.m_invIA * t; f.x += this.m_invMassB * v; f.y += this.m_invMassB * l; g += this.m_invIB * n; a.m_sweep.a = e; b.m_sweep.a = g; a.synchronizeTransform(); b.synchronizeTransform(); return d <= da.b2_linearSlop ? h <= da.b2_angularSlop : !1; }, m_localAnchor1: null, m_localAnchor2: null, m_localXAxis1: null, m_localYAxis1: null, m_refAngle: null, m_axis: null, m_perp: null, m_s1: null, m_s2: null, m_a1: null, m_a2: null, m_K: null, m_impulse: null, m_motorMass: null, m_motorImpulse: null, m_lowerTranslation: null, m_upperTranslation: null, m_maxMotorForce: null, m_motorSpeed: null, m_enableLimit: null, m_enableMotor: null, m_limitState: null, __class__: ti }); var Ik = function () { Xc.call(this); this.localAnchorA = new P(); this.localAnchorB = new P(); this.localAxisA = new P(); this.type = 2; var a = this.localAxisA, b = 1, c = 0; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; this.referenceAngle = 0; this.enableLimit = !1; this.upperTranslation = this.lowerTranslation = 0; this.enableMotor = !1; this.motorSpeed = this.maxMotorForce = 0; }; h['box2D.dynamics.joints.B2PrismaticJointDef'] = Ik; Ik.__name__ = 'box2D.dynamics.joints.B2PrismaticJointDef'; Ik.__super__ = Xc; Ik.prototype = r(Xc.prototype, { initialize: function (a, b, c, e) { this.bodyA = a; this.bodyB = b; this.localAnchorA = this.bodyA.getLocalPoint(c); this.localAnchorB = this.bodyB.getLocalPoint(c); this.localAxisA = this.bodyA.getLocalVector(e); this.referenceAngle = this.bodyB.getAngle() - this.bodyA.getAngle(); }, localAnchorA: null, localAnchorB: null, localAxisA: null, referenceAngle: null, enableLimit: null, lowerTranslation: null, upperTranslation: null, enableMotor: null, maxMotorForce: null, motorSpeed: null, __class__: Ik }); var wg = function (a) { Ub.call(this, a); this.m_groundAnchor1 = new P(); this.m_groundAnchor2 = new P(); this.m_localAnchor1 = new P(); this.m_localAnchor2 = new P(); this.m_u1 = new P(); this.m_u2 = new P(); this.m_ground = this.m_bodyA.m_world.m_groundBody; this.m_groundAnchor1.x = a.groundAnchorA.x - this.m_ground.m_xf.position.x; this.m_groundAnchor1.y = a.groundAnchorA.y - this.m_ground.m_xf.position.y; this.m_groundAnchor2.x = a.groundAnchorB.x - this.m_ground.m_xf.position.x; this.m_groundAnchor2.y = a.groundAnchorB.y - this.m_ground.m_xf.position.y; var b = this.m_localAnchor1, c = a.localAnchorA; b.x = c.x; b.y = c.y; b = this.m_localAnchor2; c = a.localAnchorB; b.x = c.x; b.y = c.y; this.m_ratio = a.ratio; this.m_constant = a.lengthA + this.m_ratio * a.lengthB; this.m_maxLength1 = S.min( a.maxLengthA, this.m_constant - this.m_ratio * wg.b2_minPulleyLength ); this.m_maxLength2 = S.min( a.maxLengthB, (this.m_constant - wg.b2_minPulleyLength) / this.m_ratio ); this.m_limitImpulse2 = this.m_limitImpulse1 = this.m_impulse = 0; }; h['box2D.dynamics.joints.B2PulleyJoint'] = wg; wg.__name__ = 'box2D.dynamics.joints.B2PulleyJoint'; wg.__super__ = Ub; wg.prototype = r(Ub.prototype, { getAnchorA: function () { return this.m_bodyA.getWorldPoint(this.m_localAnchor1); }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchor2); }, getReactionForce: function (a) { return new P(a * this.m_impulse * this.m_u2.x, a * this.m_impulse * this.m_u2.y); }, getReactionTorque: function (a) { return 0; }, getGroundAnchorA: function () { var a = this.m_ground.m_xf.position.copy(); a.add(this.m_groundAnchor1); return a; }, getGroundAnchorB: function () { var a = this.m_ground.m_xf.position.copy(); a.add(this.m_groundAnchor2); return a; }, getLength1: function () { var a = this.m_bodyA.getWorldPoint(this.m_localAnchor1), b = a.x - (this.m_ground.m_xf.position.x + this.m_groundAnchor1.x); a = a.y - (this.m_ground.m_xf.position.y + this.m_groundAnchor1.y); return Math.sqrt(b * b + a * a); }, getLength2: function () { var a = this.m_bodyB.getWorldPoint(this.m_localAnchor2), b = a.x - (this.m_ground.m_xf.position.x + this.m_groundAnchor2.x); a = a.y - (this.m_ground.m_xf.position.y + this.m_groundAnchor2.y); return Math.sqrt(b * b + a * a); }, getRatio: function () { return this.m_ratio; }, initVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, e = b.m_xf.R, f = this.m_localAnchor1.x - b.m_sweep.localCenter.x, g = this.m_localAnchor1.y - b.m_sweep.localCenter.y, d = e.col1.x * f + e.col2.x * g; g = e.col1.y * f + e.col2.y * g; f = d; e = c.m_xf.R; var l = this.m_localAnchor2.x - c.m_sweep.localCenter.x, v = this.m_localAnchor2.y - c.m_sweep.localCenter.y; d = e.col1.x * l + e.col2.x * v; v = e.col1.y * l + e.col2.y * v; l = d; d = c.m_sweep.c.x + l; var n = c.m_sweep.c.y + v, k = this.m_ground.m_xf.position.x + this.m_groundAnchor2.x, m = this.m_ground.m_xf.position.y + this.m_groundAnchor2.y; e = this.m_u1; var h = b.m_sweep.c.x + f - (this.m_ground.m_xf.position.x + this.m_groundAnchor1.x), t = b.m_sweep.c.y + g - (this.m_ground.m_xf.position.y + this.m_groundAnchor1.y); null == t && (t = 0); null == h && (h = 0); e.x = h; e.y = t; e = this.m_u2; h = d - k; t = n - m; null == t && (t = 0); null == h && (h = 0); e.x = h; e.y = t; d = this.m_u1.length(); n = this.m_u2.length(); d > da.b2_linearSlop ? this.m_u1.multiply(1 / d) : ((e = this.m_u1), (e.x = 0), (e.y = 0)); n > da.b2_linearSlop ? this.m_u2.multiply(1 / n) : ((e = this.m_u2), (e.x = 0), (e.y = 0)); 0 < this.m_constant - d - this.m_ratio * n ? (this.m_impulse = this.m_state = 0) : (this.m_state = 2); d < this.m_maxLength1 ? (this.m_limitImpulse1 = this.m_limitState1 = 0) : (this.m_limitState1 = 2); n < this.m_maxLength2 ? (this.m_limitImpulse2 = this.m_limitState2 = 0) : (this.m_limitState2 = 2); e = f * this.m_u1.y - g * this.m_u1.x; d = l * this.m_u2.y - v * this.m_u2.x; this.m_limitMass1 = b.m_invMass + b.m_invI * e * e; this.m_limitMass2 = c.m_invMass + c.m_invI * d * d; this.m_pulleyMass = this.m_limitMass1 + this.m_ratio * this.m_ratio * this.m_limitMass2; this.m_limitMass1 = 1 / this.m_limitMass1; this.m_limitMass2 = 1 / this.m_limitMass2; this.m_pulleyMass = 1 / this.m_pulleyMass; a.warmStarting ? ((this.m_impulse *= a.dtRatio), (this.m_limitImpulse1 *= a.dtRatio), (this.m_limitImpulse2 *= a.dtRatio), (a = (-this.m_impulse - this.m_limitImpulse1) * this.m_u1.x), (e = (-this.m_impulse - this.m_limitImpulse1) * this.m_u1.y), (d = (-this.m_ratio * this.m_impulse - this.m_limitImpulse2) * this.m_u2.x), (n = (-this.m_ratio * this.m_impulse - this.m_limitImpulse2) * this.m_u2.y), (b.m_linearVelocity.x += b.m_invMass * a), (b.m_linearVelocity.y += b.m_invMass * e), (b.m_angularVelocity += b.m_invI * (f * e - g * a)), (c.m_linearVelocity.x += c.m_invMass * d), (c.m_linearVelocity.y += c.m_invMass * n), (c.m_angularVelocity += c.m_invI * (l * n - v * d))) : (this.m_limitImpulse2 = this.m_limitImpulse1 = this.m_impulse = 0); }, solveVelocityConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = a.m_xf.R, e = this.m_localAnchor1.x - a.m_sweep.localCenter.x, f = this.m_localAnchor1.y - a.m_sweep.localCenter.y, g = c.col1.x * e + c.col2.x * f; f = c.col1.y * e + c.col2.y * f; e = g; c = b.m_xf.R; var d = this.m_localAnchor2.x - b.m_sweep.localCenter.x, l = this.m_localAnchor2.y - b.m_sweep.localCenter.y; g = c.col1.x * d + c.col2.x * l; l = c.col1.y * d + c.col2.y * l; d = g; if (2 == this.m_state) { c = a.m_linearVelocity.x + -a.m_angularVelocity * f; g = a.m_linearVelocity.y + a.m_angularVelocity * e; var v = b.m_linearVelocity.x + -b.m_angularVelocity * l; var n = b.m_linearVelocity.y + b.m_angularVelocity * d; c = -(this.m_u1.x * c + this.m_u1.y * g) - this.m_ratio * (this.m_u2.x * v + this.m_u2.y * n); n = this.m_pulleyMass * -c; c = this.m_impulse; this.m_impulse = S.max(0, this.m_impulse + n); n = this.m_impulse - c; c = -n * this.m_u1.x; g = -n * this.m_u1.y; v = -this.m_ratio * n * this.m_u2.x; n = -this.m_ratio * n * this.m_u2.y; a.m_linearVelocity.x += a.m_invMass * c; a.m_linearVelocity.y += a.m_invMass * g; a.m_angularVelocity += a.m_invI * (e * g - f * c); b.m_linearVelocity.x += b.m_invMass * v; b.m_linearVelocity.y += b.m_invMass * n; b.m_angularVelocity += b.m_invI * (d * n - l * v); } 2 == this.m_limitState1 && ((c = a.m_linearVelocity.x + -a.m_angularVelocity * f), (g = a.m_linearVelocity.y + a.m_angularVelocity * e), (c = -(this.m_u1.x * c + this.m_u1.y * g)), (n = -this.m_limitMass1 * c), (c = this.m_limitImpulse1), (this.m_limitImpulse1 = S.max(0, this.m_limitImpulse1 + n)), (n = this.m_limitImpulse1 - c), (c = -n * this.m_u1.x), (g = -n * this.m_u1.y), (a.m_linearVelocity.x += a.m_invMass * c), (a.m_linearVelocity.y += a.m_invMass * g), (a.m_angularVelocity += a.m_invI * (e * g - f * c))); 2 == this.m_limitState2 && ((v = b.m_linearVelocity.x + -b.m_angularVelocity * l), (n = b.m_linearVelocity.y + b.m_angularVelocity * d), (c = -(this.m_u2.x * v + this.m_u2.y * n)), (n = -this.m_limitMass2 * c), (c = this.m_limitImpulse2), (this.m_limitImpulse2 = S.max(0, this.m_limitImpulse2 + n)), (n = this.m_limitImpulse2 - c), (v = -n * this.m_u2.x), (n = -n * this.m_u2.y), (b.m_linearVelocity.x += b.m_invMass * v), (b.m_linearVelocity.y += b.m_invMass * n), (b.m_angularVelocity += b.m_invI * (d * n - l * v))); }, solvePositionConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = this.m_ground.m_xf.position.x + this.m_groundAnchor1.x, e = this.m_ground.m_xf.position.y + this.m_groundAnchor1.y, f = this.m_ground.m_xf.position.x + this.m_groundAnchor2.x, g = this.m_ground.m_xf.position.y + this.m_groundAnchor2.y, d = 0; if (2 == this.m_state) { var l = a.m_xf.R; var v = this.m_localAnchor1.x - a.m_sweep.localCenter.x; var n = this.m_localAnchor1.y - a.m_sweep.localCenter.y; var k = l.col1.x * v + l.col2.x * n; n = l.col1.y * v + l.col2.y * n; v = k; l = b.m_xf.R; var m = this.m_localAnchor2.x - b.m_sweep.localCenter.x; var h = this.m_localAnchor2.y - b.m_sweep.localCenter.y; k = l.col1.x * m + l.col2.x * h; h = l.col1.y * m + l.col2.y * h; m = k; var t = a.m_sweep.c.x + v; var u = a.m_sweep.c.y + n; k = b.m_sweep.c.x + m; var q = b.m_sweep.c.y + h; l = this.m_u1; t -= c; u -= e; null == u && (u = 0); null == t && (t = 0); l.x = t; l.y = u; l = this.m_u2; t = k - f; u = q - g; null == u && (u = 0); null == t && (t = 0); l.x = t; l.y = u; k = this.m_u1.length(); u = this.m_u2.length(); k > da.b2_linearSlop ? this.m_u1.multiply(1 / k) : ((l = this.m_u1), (l.x = 0), (l.y = 0)); u > da.b2_linearSlop ? this.m_u2.multiply(1 / u) : ((l = this.m_u2), (l.x = 0), (l.y = 0)); l = this.m_constant - k - this.m_ratio * u; d = S.max(d, -l); l = S.clamp(l + da.b2_linearSlop, -da.b2_maxLinearCorrection, 0); l *= -this.m_pulleyMass; t = -l * this.m_u1.x; u = -l * this.m_u1.y; k = -this.m_ratio * l * this.m_u2.x; q = -this.m_ratio * l * this.m_u2.y; a.m_sweep.c.x += a.m_invMass * t; a.m_sweep.c.y += a.m_invMass * u; a.m_sweep.a += a.m_invI * (v * u - n * t); b.m_sweep.c.x += b.m_invMass * k; b.m_sweep.c.y += b.m_invMass * q; b.m_sweep.a += b.m_invI * (m * q - h * k); a.synchronizeTransform(); b.synchronizeTransform(); } 2 == this.m_limitState1 && ((l = a.m_xf.R), (v = this.m_localAnchor1.x - a.m_sweep.localCenter.x), (n = this.m_localAnchor1.y - a.m_sweep.localCenter.y), (k = l.col1.x * v + l.col2.x * n), (n = l.col1.y * v + l.col2.y * n), (v = k), (t = a.m_sweep.c.x + v), (u = a.m_sweep.c.y + n), (l = this.m_u1), (t -= c), (u -= e), null == u && (u = 0), null == t && (t = 0), (l.x = t), (l.y = u), (k = this.m_u1.length()), k > da.b2_linearSlop ? ((this.m_u1.x *= 1 / k), (this.m_u1.y *= 1 / k)) : ((l = this.m_u1), (l.x = 0), (l.y = 0)), (l = this.m_maxLength1 - k), (d = S.max(d, -l)), (l = S.clamp(l + da.b2_linearSlop, -da.b2_maxLinearCorrection, 0)), (l *= -this.m_limitMass1), (t = -l * this.m_u1.x), (u = -l * this.m_u1.y), (a.m_sweep.c.x += a.m_invMass * t), (a.m_sweep.c.y += a.m_invMass * u), (a.m_sweep.a += a.m_invI * (v * u - n * t)), a.synchronizeTransform()); 2 == this.m_limitState2 && ((l = b.m_xf.R), (m = this.m_localAnchor2.x - b.m_sweep.localCenter.x), (h = this.m_localAnchor2.y - b.m_sweep.localCenter.y), (k = l.col1.x * m + l.col2.x * h), (h = l.col1.y * m + l.col2.y * h), (m = k), (k = b.m_sweep.c.x + m), (q = b.m_sweep.c.y + h), (l = this.m_u2), (t = k - f), (u = q - g), null == u && (u = 0), null == t && (t = 0), (l.x = t), (l.y = u), (u = this.m_u2.length()), u > da.b2_linearSlop ? ((this.m_u2.x *= 1 / u), (this.m_u2.y *= 1 / u)) : ((l = this.m_u2), (l.x = 0), (l.y = 0)), (l = this.m_maxLength2 - u), (d = S.max(d, -l)), (l = S.clamp(l + da.b2_linearSlop, -da.b2_maxLinearCorrection, 0)), (l *= -this.m_limitMass2), (k = -l * this.m_u2.x), (q = -l * this.m_u2.y), (b.m_sweep.c.x += b.m_invMass * k), (b.m_sweep.c.y += b.m_invMass * q), (b.m_sweep.a += b.m_invI * (m * q - h * k)), b.synchronizeTransform()); return d < da.b2_linearSlop; }, m_ground: null, m_groundAnchor1: null, m_groundAnchor2: null, m_localAnchor1: null, m_localAnchor2: null, m_u1: null, m_u2: null, m_constant: null, m_ratio: null, m_maxLength1: null, m_maxLength2: null, m_pulleyMass: null, m_limitMass1: null, m_limitMass2: null, m_impulse: null, m_limitImpulse1: null, m_limitImpulse2: null, m_state: null, m_limitState1: null, m_limitState2: null, __class__: wg }); var Jk = function () { Xc.call(this); this.groundAnchorA = new P(); this.groundAnchorB = new P(); this.localAnchorA = new P(); this.localAnchorB = new P(); this.type = 4; var a = this.groundAnchorA, b = -1, c = 1; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; a = this.groundAnchorB; c = b = 1; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; a = this.localAnchorA; b = -1; c = 0; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; a = this.localAnchorB; b = 1; c = 0; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; this.maxLengthB = this.lengthB = this.maxLengthA = this.lengthA = 0; this.ratio = 1; this.collideConnected = !0; }; h['box2D.dynamics.joints.B2PulleyJointDef'] = Jk; Jk.__name__ = 'box2D.dynamics.joints.B2PulleyJointDef'; Jk.__super__ = Xc; Jk.prototype = r(Xc.prototype, { initialize: function (a, b, c, e, f, g, d) { this.bodyA = a; this.bodyB = b; a = this.groundAnchorA; a.x = c.x; a.y = c.y; a = this.groundAnchorB; a.x = e.x; a.y = e.y; this.localAnchorA = this.bodyA.getLocalPoint(f); this.localAnchorB = this.bodyB.getLocalPoint(g); a = f.x - c.x; c = f.y - c.y; this.lengthA = Math.sqrt(a * a + c * c); c = g.x - e.x; e = g.y - e.y; this.lengthB = Math.sqrt(c * c + e * e); this.ratio = d; d = this.lengthA + this.ratio * this.lengthB; this.maxLengthA = d - this.ratio * wg.b2_minPulleyLength; this.maxLengthB = (d - wg.b2_minPulleyLength) / this.ratio; }, groundAnchorA: null, groundAnchorB: null, localAnchorA: null, localAnchorB: null, lengthA: null, maxLengthA: null, lengthB: null, maxLengthB: null, ratio: null, __class__: Jk }); var bg = function (a) { Ub.call(this, a); this.K = new yc(); this.K1 = new yc(); this.K2 = new yc(); this.K3 = new yc(); this.impulse3 = new Ye(); this.impulse2 = new P(); this.reduced = new P(); this.m_localAnchor1 = new P(); this.m_localAnchor2 = new P(); this.m_impulse = new Ye(); this.m_mass = new Kh(); var b = this.m_localAnchor1, c = a.localAnchorA; b.x = c.x; b.y = c.y; b = this.m_localAnchor2; c = a.localAnchorB; b.x = c.x; b.y = c.y; this.m_referenceAngle = a.referenceAngle; this.m_impulse.setZero(); this.m_motorImpulse = 0; this.m_lowerAngle = a.lowerAngle; this.m_upperAngle = a.upperAngle; this.m_maxMotorTorque = a.maxMotorTorque; this.m_motorSpeed = a.motorSpeed; this.m_enableLimit = a.enableLimit; this.m_enableMotor = a.enableMotor; this.m_limitState = 0; }; h['box2D.dynamics.joints.B2RevoluteJoint'] = bg; bg.__name__ = 'box2D.dynamics.joints.B2RevoluteJoint'; bg.__super__ = Ub; bg.prototype = r(Ub.prototype, { getAnchorA: function () { return this.m_bodyA.getWorldPoint(this.m_localAnchor1); }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchor2); }, getReactionForce: function (a) { return new P(a * this.m_impulse.x, a * this.m_impulse.y); }, getReactionTorque: function (a) { return a * this.m_impulse.z; }, getJointAngle: function () { return this.m_bodyB.m_sweep.a - this.m_bodyA.m_sweep.a - this.m_referenceAngle; }, getJointSpeed: function () { return this.m_bodyB.m_angularVelocity - this.m_bodyA.m_angularVelocity; }, isLimitEnabled: function () { return this.m_enableLimit; }, enableLimit: function (a) { this.m_enableLimit = a; }, getLowerLimit: function () { return this.m_lowerAngle; }, getUpperLimit: function () { return this.m_upperAngle; }, setLimits: function (a, b) { this.m_lowerAngle = a; this.m_upperAngle = b; }, isMotorEnabled: function () { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); return this.m_enableMotor; }, enableMotor: function (a) { this.m_enableMotor = a; }, setMotorSpeed: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_motorSpeed = a; }, getMotorSpeed: function () { return this.m_motorSpeed; }, setMaxMotorTorque: function (a) { this.m_maxMotorTorque = a; }, getMotorTorque: function () { return this.m_maxMotorTorque; }, K: null, K1: null, K2: null, K3: null, initVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, e = b.m_xf.R, f = this.m_localAnchor1.x - b.m_sweep.localCenter.x, g = this.m_localAnchor1.y - b.m_sweep.localCenter.y, d = e.col1.x * f + e.col2.x * g; g = e.col1.y * f + e.col2.y * g; f = d; e = c.m_xf.R; var l = this.m_localAnchor2.x - c.m_sweep.localCenter.x, v = this.m_localAnchor2.y - c.m_sweep.localCenter.y; d = e.col1.x * l + e.col2.x * v; v = e.col1.y * l + e.col2.y * v; l = d; e = b.m_invMass; d = c.m_invMass; var n = b.m_invI, k = c.m_invI; this.m_mass.col1.x = e + d + g * g * n + v * v * k; this.m_mass.col2.x = -g * f * n - v * l * k; this.m_mass.col3.x = -g * n - v * k; this.m_mass.col1.y = this.m_mass.col2.x; this.m_mass.col2.y = e + d + f * f * n + l * l * k; this.m_mass.col3.y = f * n + l * k; this.m_mass.col1.z = this.m_mass.col3.x; this.m_mass.col2.z = this.m_mass.col3.y; this.m_mass.col3.z = n + k; this.m_motorMass = 1 / (n + k); 0 == this.m_enableMotor && (this.m_motorImpulse = 0); if (this.m_enableLimit) { var m = c.m_sweep.a - b.m_sweep.a - this.m_referenceAngle; S.abs(this.m_upperAngle - this.m_lowerAngle) < 2 * da.b2_angularSlop ? (this.m_limitState = 3) : m <= this.m_lowerAngle ? (1 != this.m_limitState && (this.m_impulse.z = 0), (this.m_limitState = 1)) : m >= this.m_upperAngle ? (2 != this.m_limitState && (this.m_impulse.z = 0), (this.m_limitState = 2)) : ((this.m_limitState = 0), (this.m_impulse.z = 0)); } else this.m_limitState = 0; a.warmStarting ? ((this.m_impulse.x *= a.dtRatio), (this.m_impulse.y *= a.dtRatio), (this.m_motorImpulse *= a.dtRatio), (a = this.m_impulse.x), (m = this.m_impulse.y), (b.m_linearVelocity.x -= e * a), (b.m_linearVelocity.y -= e * m), (b.m_angularVelocity -= n * (f * m - g * a + this.m_motorImpulse + this.m_impulse.z)), (c.m_linearVelocity.x += d * a), (c.m_linearVelocity.y += d * m), (c.m_angularVelocity += k * (l * m - v * a + this.m_motorImpulse + this.m_impulse.z))) : (this.m_impulse.setZero(), (this.m_motorImpulse = 0)); }, impulse3: null, impulse2: null, reduced: null, solveVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, e = b.m_linearVelocity, f = b.m_angularVelocity, g = c.m_linearVelocity, d = c.m_angularVelocity, l = b.m_invMass, v = c.m_invMass, n = b.m_invI, k = c.m_invI; if (this.m_enableMotor && 3 != this.m_limitState) { var m = this.m_motorMass * -(d - f - this.m_motorSpeed); var h = this.m_motorImpulse; a = a.dt * this.m_maxMotorTorque; this.m_motorImpulse = S.clamp(this.m_motorImpulse + m, -a, a); m = this.m_motorImpulse - h; f -= n * m; d += k * m; } if (this.m_enableLimit && 0 != this.m_limitState) { var t = b.m_xf.R; m = this.m_localAnchor1.x - b.m_sweep.localCenter.x; h = this.m_localAnchor1.y - b.m_sweep.localCenter.y; var u = t.col1.x * m + t.col2.x * h; h = t.col1.y * m + t.col2.y * h; m = u; t = c.m_xf.R; a = this.m_localAnchor2.x - c.m_sweep.localCenter.x; var q = this.m_localAnchor2.y - c.m_sweep.localCenter.y; u = t.col1.x * a + t.col2.x * q; q = t.col1.y * a + t.col2.y * q; a = u; u = g.x + -d * q - e.x - -f * h; var r = g.y + d * a - e.y - f * m; this.m_mass.solve33(this.impulse3, -u, -r, -(d - f)); 3 == this.m_limitState ? this.m_impulse.add(this.impulse3) : 1 == this.m_limitState ? ((t = this.m_impulse.z + this.impulse3.z), 0 > t && (this.m_mass.solve22(this.reduced, -u, -r), (this.impulse3.x = this.reduced.x), (this.impulse3.y = this.reduced.y), (this.impulse3.z = -this.m_impulse.z), (this.m_impulse.x += this.reduced.x), (this.m_impulse.y += this.reduced.y), (this.m_impulse.z = 0))) : 2 == this.m_limitState && ((t = this.m_impulse.z + this.impulse3.z), 0 < t && (this.m_mass.solve22(this.reduced, -u, -r), (this.impulse3.x = this.reduced.x), (this.impulse3.y = this.reduced.y), (this.impulse3.z = -this.m_impulse.z), (this.m_impulse.x += this.reduced.x), (this.m_impulse.y += this.reduced.y), (this.m_impulse.z = 0))); e.x -= l * this.impulse3.x; e.y -= l * this.impulse3.y; f -= n * (m * this.impulse3.y - h * this.impulse3.x + this.impulse3.z); g.x += v * this.impulse3.x; g.y += v * this.impulse3.y; d += k * (a * this.impulse3.y - q * this.impulse3.x + this.impulse3.z); } else (t = b.m_xf.R), (m = this.m_localAnchor1.x - b.m_sweep.localCenter.x), (h = this.m_localAnchor1.y - b.m_sweep.localCenter.y), (u = t.col1.x * m + t.col2.x * h), (h = t.col1.y * m + t.col2.y * h), (m = u), (t = c.m_xf.R), (a = this.m_localAnchor2.x - c.m_sweep.localCenter.x), (q = this.m_localAnchor2.y - c.m_sweep.localCenter.y), (u = t.col1.x * a + t.col2.x * q), (q = t.col1.y * a + t.col2.y * q), (a = u), this.m_mass.solve22( this.impulse2, -(g.x + -d * q - e.x - -f * h), -(g.y + d * a - e.y - f * m) ), (this.m_impulse.x += this.impulse2.x), (this.m_impulse.y += this.impulse2.y), (e.x -= l * this.impulse2.x), (e.y -= l * this.impulse2.y), (f -= n * (m * this.impulse2.y - h * this.impulse2.x)), (g.x += v * this.impulse2.x), (g.y += v * this.impulse2.y), (d += k * (a * this.impulse2.y - q * this.impulse2.x)); l = b.m_linearVelocity; l.x = e.x; l.y = e.y; b.m_angularVelocity = f; l = c.m_linearVelocity; l.x = g.x; l.y = g.y; c.m_angularVelocity = d; }, solvePositionConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = 0; if (this.m_enableLimit && 0 != this.m_limitState) { var e = b.m_sweep.a - a.m_sweep.a - this.m_referenceAngle; var f = 0; 3 == this.m_limitState ? ((e = S.clamp( e - this.m_lowerAngle, -da.b2_maxAngularCorrection, da.b2_maxAngularCorrection )), (f = -this.m_motorMass * e), (c = S.abs(e))) : 1 == this.m_limitState ? ((e -= this.m_lowerAngle), (c = -e), (e = S.clamp(e + da.b2_angularSlop, -da.b2_maxAngularCorrection, 0)), (f = -this.m_motorMass * e)) : 2 == this.m_limitState && ((c = e -= this.m_upperAngle), (e = S.clamp(e - da.b2_angularSlop, 0, da.b2_maxAngularCorrection)), (f = -this.m_motorMass * e)); a.m_sweep.a -= a.m_invI * f; b.m_sweep.a += b.m_invI * f; a.synchronizeTransform(); b.synchronizeTransform(); } var g = a.m_xf.R; f = this.m_localAnchor1.x - a.m_sweep.localCenter.x; e = this.m_localAnchor1.y - a.m_sweep.localCenter.y; var d = g.col1.x * f + g.col2.x * e; e = g.col1.y * f + g.col2.y * e; f = d; g = b.m_xf.R; var l = this.m_localAnchor2.x - b.m_sweep.localCenter.x, v = this.m_localAnchor2.y - b.m_sweep.localCenter.y; d = g.col1.x * l + g.col2.x * v; v = g.col1.y * l + g.col2.y * v; l = d; var n = b.m_sweep.c.x + l - a.m_sweep.c.x - f; var k = b.m_sweep.c.y + v - a.m_sweep.c.y - e; var m = n * n + k * k; g = Math.sqrt(m); d = a.m_invMass; var h = b.m_invMass, t = a.m_invI, u = b.m_invI, q = 10 * da.b2_linearSlop; m > q * q && ((m = 1 / (d + h)), (n = m * -n), (k = m * -k), (a.m_sweep.c.x -= 0.5 * d * n), (a.m_sweep.c.y -= 0.5 * d * k), (b.m_sweep.c.x += 0.5 * h * n), (b.m_sweep.c.y += 0.5 * h * k), (n = b.m_sweep.c.x + l - a.m_sweep.c.x - f), (k = b.m_sweep.c.y + v - a.m_sweep.c.y - e)); this.K1.col1.x = d + h; this.K1.col2.x = 0; this.K1.col1.y = 0; this.K1.col2.y = d + h; this.K2.col1.x = t * e * e; this.K2.col2.x = -t * f * e; this.K2.col1.y = -t * f * e; this.K2.col2.y = t * f * f; this.K3.col1.x = u * v * v; this.K3.col2.x = -u * l * v; this.K3.col1.y = -u * l * v; this.K3.col2.y = u * l * l; this.K.setM(this.K1); this.K.addM(this.K2); this.K.addM(this.K3); this.K.solve(bg.tImpulse, -n, -k); n = bg.tImpulse.x; k = bg.tImpulse.y; a.m_sweep.c.x -= a.m_invMass * n; a.m_sweep.c.y -= a.m_invMass * k; a.m_sweep.a -= a.m_invI * (f * k - e * n); b.m_sweep.c.x += b.m_invMass * n; b.m_sweep.c.y += b.m_invMass * k; b.m_sweep.a += b.m_invI * (l * k - v * n); a.synchronizeTransform(); b.synchronizeTransform(); return g <= da.b2_linearSlop ? c <= da.b2_angularSlop : !1; }, m_localAnchor1: null, m_localAnchor2: null, m_impulse: null, m_motorImpulse: null, m_mass: null, m_motorMass: null, m_enableMotor: null, m_maxMotorTorque: null, m_motorSpeed: null, m_enableLimit: null, m_referenceAngle: null, m_lowerAngle: null, m_upperAngle: null, m_limitState: null, __class__: bg }); var Nh = function () { Xc.call(this); this.localAnchorA = new P(); this.localAnchorB = new P(); this.type = 1; var a = this.localAnchorA, b = 0, c = 0; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; a = this.localAnchorB; c = b = 0; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; this.motorSpeed = this.maxMotorTorque = this.upperAngle = this.lowerAngle = this.referenceAngle = 0; this.enableMotor = this.enableLimit = !1; }; h['box2D.dynamics.joints.B2RevoluteJointDef'] = Nh; Nh.__name__ = 'box2D.dynamics.joints.B2RevoluteJointDef'; Nh.__super__ = Xc; Nh.prototype = r(Xc.prototype, { initialize: function (a, b, c) { this.bodyA = a; this.bodyB = b; this.localAnchorA = this.bodyA.getLocalPoint(c); this.localAnchorB = this.bodyB.getLocalPoint(c); this.referenceAngle = this.bodyB.getAngle() - this.bodyA.getAngle(); }, localAnchorA: null, localAnchorB: null, referenceAngle: null, enableLimit: null, lowerAngle: null, upperAngle: null, enableMotor: null, motorSpeed: null, maxMotorTorque: null, __class__: Nh }); var Mk = function (a) { Ub.call(this, a); this.m_localAnchorA = new P(); this.m_localAnchorB = new P(); this.m_impulse = new Ye(); this.m_mass = new Kh(); var b = this.m_localAnchorA, c = a.localAnchorA; b.x = c.x; b.y = c.y; b = this.m_localAnchorB; c = a.localAnchorB; b.x = c.x; b.y = c.y; this.m_referenceAngle = a.referenceAngle; this.m_impulse.setZero(); this.m_mass = new Kh(); }; h['box2D.dynamics.joints.B2WeldJoint'] = Mk; Mk.__name__ = 'box2D.dynamics.joints.B2WeldJoint'; Mk.__super__ = Ub; Mk.prototype = r(Ub.prototype, { getAnchorA: function () { return this.m_bodyA.getWorldPoint(this.m_localAnchorA); }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchorB); }, getReactionForce: function (a) { return new P(a * this.m_impulse.x, a * this.m_impulse.y); }, getReactionTorque: function (a) { return a * this.m_impulse.z; }, initVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, e = b.m_xf.R, f = this.m_localAnchorA.x - b.m_sweep.localCenter.x, d = this.m_localAnchorA.y - b.m_sweep.localCenter.y, p = e.col1.x * f + e.col2.x * d; d = e.col1.y * f + e.col2.y * d; f = p; e = c.m_xf.R; var l = this.m_localAnchorB.x - c.m_sweep.localCenter.x, v = this.m_localAnchorB.y - c.m_sweep.localCenter.y; p = e.col1.x * l + e.col2.x * v; v = e.col1.y * l + e.col2.y * v; l = p; e = b.m_invMass; p = c.m_invMass; var n = b.m_invI, k = c.m_invI; this.m_mass.col1.x = e + p + d * d * n + v * v * k; this.m_mass.col2.x = -d * f * n - v * l * k; this.m_mass.col3.x = -d * n - v * k; this.m_mass.col1.y = this.m_mass.col2.x; this.m_mass.col2.y = e + p + f * f * n + l * l * k; this.m_mass.col3.y = f * n + l * k; this.m_mass.col1.z = this.m_mass.col3.x; this.m_mass.col2.z = this.m_mass.col3.y; this.m_mass.col3.z = n + k; a.warmStarting ? ((this.m_impulse.x *= a.dtRatio), (this.m_impulse.y *= a.dtRatio), (this.m_impulse.z *= a.dtRatio), (b.m_linearVelocity.x -= e * this.m_impulse.x), (b.m_linearVelocity.y -= e * this.m_impulse.y), (b.m_angularVelocity -= n * (f * this.m_impulse.y - d * this.m_impulse.x + this.m_impulse.z)), (c.m_linearVelocity.x += p * this.m_impulse.x), (c.m_linearVelocity.y += p * this.m_impulse.y), (c.m_angularVelocity += k * (l * this.m_impulse.y - v * this.m_impulse.x + this.m_impulse.z))) : this.m_impulse.setZero(); }, solveVelocityConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = a.m_linearVelocity, e = a.m_angularVelocity, f = b.m_linearVelocity, d = b.m_angularVelocity, p = a.m_invMass, l = b.m_invMass, v = a.m_invI, n = b.m_invI, k = a.m_xf.R, m = this.m_localAnchorA.x - a.m_sweep.localCenter.x, h = this.m_localAnchorA.y - a.m_sweep.localCenter.y, t = k.col1.x * m + k.col2.x * h; h = k.col1.y * m + k.col2.y * h; m = t; k = b.m_xf.R; var u = this.m_localAnchorB.x - b.m_sweep.localCenter.x, q = this.m_localAnchorB.y - b.m_sweep.localCenter.y; t = k.col1.x * u + k.col2.x * q; q = k.col1.y * u + k.col2.y * q; u = t; k = f.x - d * q - c.x + e * h; t = f.y + d * u - c.y - e * m; var r = d - e, w = new Ye(); this.m_mass.solve33(w, -k, -t, -r); this.m_impulse.add(w); c.x -= p * w.x; c.y -= p * w.y; e -= v * (m * w.y - h * w.x + w.z); f.x += l * w.x; f.y += l * w.y; d += n * (u * w.y - q * w.x + w.z); a.m_angularVelocity = e; b.m_angularVelocity = d; }, solvePositionConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = a.m_xf.R, e = this.m_localAnchorA.x - a.m_sweep.localCenter.x, f = this.m_localAnchorA.y - a.m_sweep.localCenter.y, d = c.col1.x * e + c.col2.x * f; f = c.col1.y * e + c.col2.y * f; e = d; c = b.m_xf.R; var p = this.m_localAnchorB.x - b.m_sweep.localCenter.x, l = this.m_localAnchorB.y - b.m_sweep.localCenter.y; d = c.col1.x * p + c.col2.x * l; l = c.col1.y * p + c.col2.y * l; p = d; c = a.m_invMass; d = b.m_invMass; var v = a.m_invI, n = b.m_invI, k = b.m_sweep.c.x + p - a.m_sweep.c.x - e, m = b.m_sweep.c.y + l - a.m_sweep.c.y - f, h = b.m_sweep.a - a.m_sweep.a - this.m_referenceAngle, t = 10 * da.b2_linearSlop, u = Math.sqrt(k * k + m * m), q = S.abs(h); u > t && ((v *= 1), (n *= 1)); this.m_mass.col1.x = c + d + f * f * v + l * l * n; this.m_mass.col2.x = -f * e * v - l * p * n; this.m_mass.col3.x = -f * v - l * n; this.m_mass.col1.y = this.m_mass.col2.x; this.m_mass.col2.y = c + d + e * e * v + p * p * n; this.m_mass.col3.y = e * v + p * n; this.m_mass.col1.z = this.m_mass.col3.x; this.m_mass.col2.z = this.m_mass.col3.y; this.m_mass.col3.z = v + n; t = new Ye(); this.m_mass.solve33(t, -k, -m, -h); a.m_sweep.c.x -= c * t.x; a.m_sweep.c.y -= c * t.y; a.m_sweep.a -= v * (e * t.y - f * t.x + t.z); b.m_sweep.c.x += d * t.x; b.m_sweep.c.y += d * t.y; b.m_sweep.a += n * (p * t.y - l * t.x + t.z); a.synchronizeTransform(); b.synchronizeTransform(); return u <= da.b2_linearSlop ? q <= da.b2_angularSlop : !1; }, m_localAnchorA: null, m_localAnchorB: null, m_referenceAngle: null, m_impulse: null, m_mass: null, __class__: Mk }); var Nk = function () { Xc.call(this); this.localAnchorA = new P(); this.localAnchorB = new P(); this.type = 8; this.referenceAngle = 0; }; h['box2D.dynamics.joints.B2WeldJointDef'] = Nk; Nk.__name__ = 'box2D.dynamics.joints.B2WeldJointDef'; Nk.__super__ = Xc; Nk.prototype = r(Xc.prototype, { initialize: function (a, b, c) { this.bodyA = a; this.bodyB = b; a = this.localAnchorA; b = this.bodyA.getLocalPoint(c); a.x = b.x; a.y = b.y; a = this.localAnchorB; b = this.bodyB.getLocalPoint(c); a.x = b.x; a.y = b.y; this.referenceAngle = this.bodyB.getAngle() - this.bodyA.getAngle(); }, localAnchorA: null, localAnchorB: null, referenceAngle: null, __class__: Nk }); var Ln = function () { this.stringMapCloner = new Qk(this, qa); this.intMapCloner = new Qk(this, Za); this.classHandles = new qa(); this.classHandles.h.String = q(this, this.returnString); this.classHandles.h.Array = q(this, this.cloneArray); this.classHandles.h['haxe.ds.StringMap'] = ((I = this.stringMapCloner), q(I, I.clone)); this.classHandles.h['haxe.ds.IntMap'] = ((I = this.intMapCloner), q(I, I.clone)); }; h['cloner.Cloner'] = Ln; Ln.__name__ = 'cloner.Cloner'; Ln.prototype = { cache: null, classHandles: null, stringMapCloner: null, intMapCloner: null, depth: null, returnString: function (a) { return a; }, clone: function (a) { this.cache = new Jc(); this.depth = 0; ++this.depth; a = this.__clone(a); --this.depth; this.cache = null; return a; }, _clone: function (a) { ++this.depth; a = this.__clone(a); --this.depth; return a; }, __clone: function (a) { if (30 < this.depth) throw M.thrown('deep clone'); if ('string' == typeof a) return a; try { if (null != a.__name__) return a; } catch (c) { la.lastError = c; } var b = ma.typeof(a); switch (b._hx_index) { case 0: return null; case 1: return a; case 2: return a; case 3: return a; case 4: return this.handleAnonymous(a); case 5: return null; case 6: return ( (b = b.c), null == this.cache.h.__keys__[a.__id__] && this.cache.set(a, this.handleClass(b, a)), this.cache.h[a.__id__] ); case 7: return a; case 8: return null; } }, handleAnonymous: function (a) { for (var b = Z.fields(a), c = {}, e = 0, f = b.length; e < f; ) { var d = e++; d = b[d]; var p = Z.getProperty(a, d); ++this.depth; p = this.__clone(p); --this.depth; c[d] = p; } return c; }, handleClass: function (a, b) { a = this.classHandles.h[a.__name__]; null == a && (a = q(this, this.cloneClass)); return a(b); }, cloneArray: function (a) { a = a.slice(); for (var b = 0, c = a.length; b < c; ) { var e = b++; ++this.depth; var f = this.__clone(a[e]); --this.depth; a[e] = f; } return a; }, cloneClass: function (a) { for ( var b = Object.create(x.getClass(a).prototype), c = Z.fields(a), e = 0, f = c.length; e < f; ) { var d = e++; d = c[d]; var p = Z.getProperty(a, d); ++this.depth; p = this.__clone(p); --this.depth; b[d] = p; } return b; }, __class__: Ln }; var Qk = function (a, b) { this.cloner = a; this.type = b; this.noArgs = []; }; h['cloner.MapCloner'] = Qk; Qk.__name__ = 'cloner.MapCloner'; Qk.prototype = { cloner: null, type: null, noArgs: null, clone: function (a) { for (var b = ma.createInstance(this.type, this.noArgs), c = a.keys(); c.hasNext(); ) { var e = c.next(), f = this.cloner, d = a.get(e); ++f.depth; d = f.__clone(d); --f.depth; b.set(e, d); } return b; }, __class__: Qk }; var Rg = function (a) { null == a && (a = !0); Ca.call(this); this.alignRight = a; this.start = !0; this.fps = this.mem_max = 0; this.text = new Ze(); this.text.set_defaultTextFormat(new Qg('_sans', 10, 16777215)); this.text.set_wordWrap(!0); this.text.set_multiline(!0); this.text.set_width(70); this.text.set_height(50); this.text.set_selectable(!1); this.text.mouseEnabled = !1; this.rectangle = new fa(69, 0, 1, 50); this.addEventListener('addedToStage', q(this, this.init), !1, 0, !0); this.addEventListener('removedFromStage', q(this, this.destroy), !1, 0, !0); }; h['com.nmefermmmtools.debug.Stats'] = Rg; Rg.__name__ = 'com.nmefermmmtools.debug.Stats'; Rg.__super__ = Ca; Rg.prototype = r(Ca.prototype, { text: null, timer: null, fps: null, ms: null, ms_prev: null, mem: null, mem_max: null, graph: null, rectangle: null, alignRight: null, start: null, fps_graph: null, mem_graph: null, ms_graph: null, mem_max_graph: null, _stage: null, fpsStr: null, memStr: null, memMaxStr: null, msStr: null, init: function (a) { this._stage = Ma.get_current().stage; this.get_graphics().beginFill(51); this.get_graphics().drawRect(0, 0, 70, 50); this.get_graphics().endFill(); this.addChild(this.text); this.graph = new ja(70, 50, !1, 51); this.addEventListener('enterFrame', q(this, this.update)); }, destroy: function (a) { for (this.get_graphics().clear(); 0 < this.get_numChildren(); ) this.removeChildAt(0); this.graph.dispose(); this.removeEventListener('enterFrame', q(this, this.update)); }, update: function (a) { this.start && this.alignRight && (this.set_x(this._stage.stageWidth - this.get_width()), (this.start = !1)); this.timer = Ma.getTimer(); this.timer - 1e3 > this.ms_prev ? ((this.mem = 9.54e-7 * cg.get_totalMemory()), (this.mem_max = this.mem_max > this.mem ? this.mem_max : this.mem), (this.fps_graph = 50 - (Math.min(50, (this.fps / this._stage.get_frameRate()) * 50) | 0)), (this.mem_graph = 50 - this.normalizeMem(this.mem)), (this.mem_max_graph = 50 - this.normalizeMem(this.mem_max)), (this.ms_graph = (50 - ((this.timer - this.ms) >> 1)) | 0), this.graph.scroll(-1, 0), this.get_graphics().clear(), this.get_graphics().beginFill(51), this.get_graphics().drawRect(0, 0, 70, 50), this.get_graphics().endFill(), this.get_graphics().beginBitmapFill(this.graph, new Ia(1, 0, 0, 1, 0, 50)), this.get_graphics().drawRect(0, 50, 70, 50), this.get_graphics().endFill(), this.graph.fillRect(this.rectangle, 51), this.graph.lock(), this.graph.setPixel(69, this.fps_graph, 16776960), this.graph.setPixel(69, this.mem_graph, 65535), this.graph.setPixel(69, this.mem_max_graph, 16711792), this.graph.setPixel(69, this.ms_graph, 65280), this.graph.unlock(), 60 < this.fps && (this.fps = 60), (this.fpsStr = 'FPS: ' + this.fps + ' / 60'), (this.memStr = 'MEM: ' + Math.round(this.mem)), (this.memMaxStr = 'MAX: ' + Math.round(this.mem_max)), (this.fps = 0), (this.ms_prev = this.timer), this.text.set_htmlText( "" + this.fpsStr + "
" + this.memStr + "
" + this.memMaxStr + '' )) : (this.fps++, (this.ms = this.timer)); }, normalizeMem: function (a) { return (Math.min(50, Math.sqrt(Math.sqrt(5e3 * a))) - 2) | 0; }, __class__: Rg }); var xg = function () {}; h['com.nmefermmmtools.debug.Colors'] = xg; xg.__name__ = 'com.nmefermmmtools.debug.Colors'; var yg = function () {}; h['com.stencyl.APIKeys'] = yg; yg.__name__ = 'com.stencyl.APIKeys'; var aa = function () {}; h['com.stencyl.Config'] = aa; aa.__name__ = 'com.stencyl.Config'; aa.load = function () { var a = X.getConfigText('config/game-config.json'); aa.loadFromString(a); }; aa.loadMap = function (a, b) { for (var c = 0, e = Z.fields(a); c < e.length; ) { var f = e[c]; ++c; U.startsWith(f, 'config-') ? Object.prototype.hasOwnProperty.call(aa.defines.h, A.substr(f, 7, null)) && aa.loadMap(Z.field(a, f), b) : (b[f] = Z.field(a, f)); } return b; }; aa.loadFromString = function (a, b) { null == b && (b = !0); if (null != aa.data && b) { b = aa.data; aa.data = aa.loadMap(JSON.parse(a), {}); aa.setStaticFields(); for (var c = (a = !1), e = 0, f = Z.fields(b); e < f.length; ) { var d = f[e]; ++e; var p = Z.field(b, d), l = Z.field(aa.data, d); if (p != l) switch (d) { case 'debugDraw': (k.DEBUG_DRAW = aa.debugDraw) || (null != k.debugDrawer && null != k.debugDrawer.m_sprite && k.debugDrawer.m_sprite.get_graphics().clear()); break; case 'disposeImages': case 'physicsMode': c = !0; break; case 'antialias': case 'forceHiResAssets': case 'gameScale': case 'scaleMode': case 'scales': case 'stageHeight': case 'stageWidth': a = !0; break; case 'keys': D.loadInputConfig(); break; case 'releaseMode': case 'useGciLogging': ya.setupTracing(!aa.releaseMode); break; case 'showConsole': k.engine.setStatsVisible(aa.showConsole); } } c ? ya.reloadGame() : a && k.engine.reloadScreen(); } else (aa.data = aa.loadMap(JSON.parse(a), {})), aa.setStaticFields(); }; aa.setStaticFields = function () { aa.landscape = aa.data.landscape; aa.autorotate = aa.data.autorotate; aa.scaleMode = zj.fromString(aa.data.scaleMode); aa.stageWidth = aa.data.stageWidth; aa.stageHeight = aa.data.stageHeight; aa.initSceneID = aa.data.initSceneID; aa.physicsMode = Mn.fromString(aa.data.physicsMode); aa.gameScale = aa.data.gameScale; aa.forceHiResAssets = aa.data.forceHiResAssets; aa.antialias = aa.data.antialias; aa.pixelsnap = aa.data.pixelsnap; aa.startInFullScreen = aa.data.startInFullScreen; aa.disposeImages = aa.data.disposeImages; aa.adPositionBottom = aa.data.adPositionBottom; aa.testAds = aa.data.testAds; aa.releaseMode = aa.data.releaseMode; aa.showConsole = aa.data.showConsole; aa.debugDraw = aa.data.debugDraw; aa.disableBackButton = aa.data.disableBackButton; aa.useGciLogging = aa.data.useGciLogging; aa.keys = aa.asMap(aa.data.keys); for ( var a = aa.data.scales, b = Gd.fromString, c = Array(a.length), e = 0, f = a.length; e < f; ) { var d = e++; c[d] = b(a[d]); } aa.scales = Tc.array(c); aa.toolsetInterfaceHost = aa.data.toolsetInterfaceHost; aa.toolsetInterfacePort = aa.data.toolsetInterfacePort; aa.projectName = aa.data.projectName; aa.buildConfig = aa.data.buildConfig; }; aa.asMap = function (a) { for (var b = new qa(), c = 0, e = Z.fields(a); c < e.length; ) { var f = e[c]; ++c; b.h[f] = Z.field(a, f); } return b; }; var lc = function () { this.actorTypesLoaded = !1; this.resourceLookup = this.resourceNameLookup = this.behaviorLookup = this.behaviorReader = this.resourceReaderPool = null; if (null == Da.getBytes('assets/data/game.mbs')) throw M.thrown('Data.hx - Could not load game. Check your logs for a possible cause.'); }; h['com.stencyl.Data'] = lc; lc.__name__ = 'com.stencyl.Data'; lc.get = function () { null == lc.instance && ((lc.instance = new lc()), lc.instance.loadAll()); return lc.instance; }; lc.resetStatics = function () { lc.instance = null; }; lc.prototype = { readers: null, gameMbs: null, resourceListMbs: null, sceneListMbs: null, behaviorListMbs: null, resources: null, resourceMap: null, behaviors: null, resourceLookup: null, resourceNameLookup: null, behaviorLookup: null, behaviorReader: null, resourceReaderPool: null, loadAll: function () { this.gameMbs = new Sg(jf.get(), !1, !0); this.gameMbs.readData(zb.toBytes(Da.getBytes('assets/data/game.mbs'))); this.sceneListMbs = new Sg(jf.get(), !1, !0); this.sceneListMbs.readData(zb.toBytes(Da.getBytes('assets/data/scenes.mbs'))); this.resourceListMbs = new Sg(jf.get(), !1, !1); this.resourceListMbs.readData(zb.toBytes(Da.getBytes('assets/data/resources.mbs'))); this.behaviorListMbs = new Sg(jf.get(), !1, !1); this.behaviorListMbs.readData(zb.toBytes(Da.getBytes('assets/data/behaviors.mbs'))); this.behaviors = new Rk(new Za(), q(this, this.loadBehaviorFromMbs)); this.resources = new Rk(new Za(), q(this, this.loadResourceFromMbs)); this.resourceMap = new Nn(new qa(), q(this, this.loadResourceFromMbsByName)); this.loadReaders(); this.scanBehaviorMbs(); this.scanResourceMbs(); }, readGameMbs: function () { var a = new Sg(jf.get(), !1, !0); a.readData(zb.toBytes(Da.getBytes('assets/data/game.mbs'))); return a.getRoot(); }, loadReaders: function () { this.readers = []; this.readers.push(new Sk()); this.readers.push(new Tk()); this.readers.push(new Uk()); this.readers.push(new Vk()); this.readers.push(new Wk()); this.readers.push(new Xk()); }, scanBehaviorMbs: function () { this.behaviorLookup = new Za(); for (var a = this.behaviorListMbs.getRoot(), b = 0, c = a.length(); b < c; ) { b++; var e = a.elementAddress; this.behaviorReader = a.getNextObject(); var f = this.behaviorLookup, d = this.behaviorReader.getId(); f.h[d] = e; } }, scanResourceMbs: function () { this.resourceLookup = new Za(); this.resourceNameLookup = new qa(); var a = this.resourceListMbs.getRoot(); this.resourceReaderPool = de.createObjectPool(this.resourceListMbs); for ( var b = new rb(this.resourceListMbs), c = G.INTEGER.getSize(), e = 0, f = a.length(); e < f; ) { e++; var d = a.elementAddress, p = this.resourceListMbs.readInt(d + c); a.elementAddress += a.elementSize; b.setAddress(p); p = this.resourceLookup; var l = b.getId(); p.h[l] = d; this.resourceListMbs.readTypecode(d) == sc.MBS_SPRITE ? ((d = this.resourceNameLookup), (p = 'Sprite_' + b.getName()), (l = b.getId()), (d.h[p] = l)) : ((d = this.resourceNameLookup), (p = b.getName()), (l = b.getId()), (d.h[p] = l)); } }, loadResourceFromMbsByName: function (a) { a = this.resourceNameLookup.h[a]; return null == a ? null : this.loadResourceFromMbs(a); }, loadResourceFromMbs: function (a) { a = this.resourceLookup.h[a]; if (null == a) return null; a = de.readDynamicUsingPool(this.resourceListMbs, a, this.resourceReaderPool); a = this.readResource(a.getMbsType().getName(), a); null != a && ((this.resources.map.h[a.ID] = a), a instanceof ui ? (this.resourceMap.map.h['Sprite_' + a.name] = a) : (this.resourceMap.map.h[a.name] = a)); return a; }, loadAllResourcesOfType: function (a) { var b = this.resourceListMbs.getRoot(), c = new rb(this.resourceListMbs), e = G.INTEGER.getSize(); b.elementAddress = b.getAddress() + 2 * e; for (var f = 0, d = b.length(); f < d; ) { f++; var p = b.elementAddress; this.resourceListMbs.readTypecode(p) == a && ((p = this.resourceListMbs.readInt(p + e)), c.setAddress(p), this.loadResourceFromMbs(c.getId())); b.elementAddress += b.elementSize; } }, loadBehaviorFromMbs: function (a) { a = this.behaviorLookup.h[a]; if (null == a) return null; this.behaviorReader.setAddress(a); return vi.readBehavior(this.behaviorReader); }, readResource: function (a, b) { for (var c = 0, e = this.readers; c < e.length; ) { var f = e[c]; ++c; if (f.accepts(a)) return f.read(b); } return null; }, actorTypesLoaded: null, getAllActorTypes: function () { this.actorTypesLoaded || (this.loadAllResourcesOfType(Pa.MBS_ACTOR_TYPE), (this.actorTypesLoaded = !0)); for (var a = [], b = this.resources.map.iterator(); b.hasNext(); ) { var c = b.next(); c instanceof dg && a.push(x.__cast(c, dg)); } return a; }, loadAtlas: function (a) { var b = Fa.get().atlases.h[a]; if (null != b && !b.active) for (b.active = !0, a = 0, b = b.members; a < b.length; ) { var c = b[a]; ++a; c = this.resources.get(c); null != c && c.loadGraphics(); } }, unloadAtlas: function (a) {}, reloadScaledResources: function () { for (var a = this.resources.map.iterator(); a.hasNext(); ) { var b = a.next(); null != b && (b instanceof Ph || b instanceof dg || (b.isAtlasActive() && b.reloadGraphics(-1))); } }, __class__: lc }; var fd = function () { var a = (this.eventTable = new Za()), b = fd.TYPE_ADS, c = []; a.h[b] = c; a = this.eventTable; b = fd.TYPE_PURCHASES; c = []; a.h[b] = c; a = this.eventTable; b = fd.TYPE_GAMECENTER; c = []; a.h[b] = c; a = this.eventTable; b = fd.TYPE_KEYBOARD; c = []; a.h[b] = c; }; h['com.stencyl.event.EventMaster'] = fd; fd.__name__ = 'com.stencyl.event.EventMaster'; fd.prototype = { eventTable: null, addAdEvent: function (a) { this.eventTable.h[fd.TYPE_ADS].push(a); }, addPurchaseEvent: function (a) { this.eventTable.h[fd.TYPE_PURCHASES].push(a); }, addGameCenterEvent: function (a) { this.eventTable.h[fd.TYPE_GAMECENTER].push(a); }, addKeyboardEvent: function (a) { this.eventTable.h[fd.TYPE_KEYBOARD].push(a); }, clear: function () { this.eventTable.h[fd.TYPE_ADS].length = 0; this.eventTable.h[fd.TYPE_PURCHASES].length = 0; this.eventTable.h[fd.TYPE_GAMECENTER].length = 0; this.eventTable.h[fd.TYPE_KEYBOARD].length = 0; }, __class__: fd }; var k = function (a) { this.isHUDZoomable = this.sceneInitialized = this.keyPollOccurred = this.isFullScreen = this.ignoreResize = !1; this.zoomMultiplier = 1; ('opengl' != k.stage.window.context.type && 'opengles' != k.stage.window.context.type && 'webgl' != k.stage.window.context.type) || gd.initialize(); qd.get_isSupported() && ((this.shaderLayer = new Ca()), this.shaderLayer.set_name('Shader Layer')); a.mouseChildren = !1; a.mouseEnabled = !1; aa.debugDraw && (k.DEBUG_DRAW = !0); k.engine = this; d.engine = this; this.root = a; this.isFullScreen = aa.startInFullScreen; k.screenScaleX = k.unzoomedScaleX = a.get_scaleX(); k.screenScaleY = k.unzoomedScaleY = a.get_scaleY(); k.screenOffsetX = a.get_x() | 0; k.screenOffsetY = a.get_y() | 0; k.NO_PHYSICS = 1 == aa.physicsMode; k.stage.addEventListener('enterFrame', q(this, this.onUpdate)); k.stage.addEventListener('deactivate', q(this, this.onFocusLost)); k.stage.addEventListener('activate', q(this, this.onFocus)); k.stage.addEventListener('resize', q(this, this.onWindowResize)); k.stage.window.onRestore.add(q(this, this.onWindowRestore)); k.stage.window.onMaximize.add(q(this, this.onWindowMaximize)); k.stage.window.onFullscreen.add(q(this, this.onWindowFullScreen)); this.isFullScreen && !k.stage.window.__fullscreen && (k.stage.window.__fullscreen = !0); this.begin(aa.initSceneID); }; h['com.stencyl.Engine'] = k; k.__name__ = 'com.stencyl.Engine'; k.resetStatics = function () { k.stage.removeEventListener('enterFrame', ((I = k.engine), q(I, I.onUpdate))); k.stage.removeEventListener('deactivate', ((I = k.engine), q(I, I.onFocusLost))); k.stage.removeEventListener('activate', ((I = k.engine), q(I, I.onFocus))); k.stage.removeEventListener('resize', ((I = k.engine), q(I, I.onWindowResize))); k.stage.window.onRestore.remove(((I = k.engine), q(I, I.onWindowRestore))); k.stage.window.onMaximize.remove(((I = k.engine), q(I, I.onWindowMaximize))); k.stage.window.onFullscreen.remove(((I = k.engine), q(I, I.onWindowFullScreen))); null != k.engine.stats && k.stage.removeChild(k.engine.stats); k.NO_PHYSICS = !1; k.DEBUG_DRAW = !1; k.IMG_BASE = ''; k.SCALE = 1; k.checkedWideScreen = !1; k.isStandardIOS = !1; k.isExtendedIOS = !1; k.isIPhone6 = !1; k.isIPhone6Plus = !1; k.isTabletIOS = !1; k.engine = null; k.landscape = !1; k.cameraX = 0; k.cameraY = 0; k.screenScaleX = 0; k.screenScaleY = 0; k.unzoomedScaleX = 0; k.unzoomedScaleY = 0; k.screenOffsetX = 0; k.screenOffsetY = 0; k.screenWidth = 0; k.screenHeight = 0; k.sceneWidth = 0; k.sceneHeight = 0; k.screenWidthHalf = 0; k.screenHeightHalf = 0; k.paused = !1; k.started = !1; k.events = new fd(); k.ITERATIONS = 3; k.physicsScale = 10; k.preservePadding = !1; k.paddingLeft = 0; k.paddingRight = 0; k.paddingTop = 0; k.paddingBottom = 0; k.ngID = ''; k.ngKey = ''; k.movieClip = null; k.stage = null; k.STEP_SIZE = 10; k.MS_PER_SEC = 1e3; k.elapsedTime = 0; k.timeScale = 1; k.totalElapsedTime = 0; k.debug = !1; k.debugDrawer = null; }; k.initBehaviors = function (a, b, c, e, f) { if (null != b) { var d = b.h; b = d; for (var p = Object.keys(d), l = p.length, v = 0; v < l; ) { var n = b[p[v++]]; if (null != n && n.enabled) { var k = lc.get().behaviors.get(n.behaviorID), m = new qa(); if (null != k) { if (k.isEvent) { d = k.attributes.h; d = Object.keys(d); for (var h = d.length, t = 0; t < h; ) { var u = d[t++], q = k.attributes.h[u]; if (null != q) { var r = q.type, w = q.ID; 'list' == r ? ((q = new wi(w, q.fieldName, q.fullName, [], r, null, q.hidden)), (m.h[u] = q)) : 'map' == r && ((q = new wi(w, q.fieldName, q.fullName, new qa(), r, null, q.hidden)), (m.h[u] = q)); } } } d = Object.keys(n.values.h); h = d.length; for (t = 0; t < h; ) (u = d[t++]), (q = k.attributes.h[u]), null != q && ((q = new wi( q.ID, q.fieldName, q.fullName, n.values.h[u], q.type, null, q.hidden )), (m.h[u] = q)); n = new Yk(c, e, k.ID, k.name, k.classname, !0, !1, m, k.type, k.isEvent); a.add(n); } } } f && a.initScripts(); } }; k.toPhysicalUnits = function (a) { return (a /= k.physicsScale); }; k.toPixelUnits = function (a) { return (a *= k.physicsScale); }; k.vToPhysicalUnits = function (a) { a.x = k.toPhysicalUnits(a.x); a.y = k.toPhysicalUnits(a.y); return a; }; k.vToPixelUnits = function (a) { a.x = k.toPixelUnits(a.x); a.y = k.toPixelUnits(a.y); return a; }; k.prototype = { zoomMultiplier: null, isHUDZoomable: null, world: null, gravityX: null, gravityY: null, physicalWidth: null, physicalHeight: null, leave: null, enter: null, sceneToEnter: null, shakeTimer: null, shakeIntensity: null, isShaking: null, scene: null, camera: null, sceneInitialized: null, channels: null, tasks: null, regions: null, terrainRegions: null, joints: null, root: null, colorLayer: null, maskLayer: null, master: null, hudLayer: null, transitionLayer: null, debugLayer: null, g: null, groups: null, reverseGroups: null, allActors: null, nextID: null, actorsOfType: null, recycledActorsOfType: null, actorsToCreateInNextScene: null, layers: null, layersByName: null, interactiveLayers: null, backgroundLayers: null, dynamicTiles: null, animatedTiles: null, topLayer: null, bottomLayer: null, middleLayer: null, layersToDraw: null, tileUpdated: null, loadedAtlases: null, atlasesToLoad: null, atlasesToUnload: null, actorsToCreate: null, gameAttributes: null, savableAttributes: null, behaviors: null, lastTime: null, acc: null, mx: null, my: null, collisionPairs: null, disableCollisionList: null, keyPollOccurred: null, whenKeyPressedEvents: null, whenAnyKeyPressed: null, whenAnyKeyReleased: null, whenAnyGamepadPressed: null, whenAnyGamepadReleased: null, whenTypeGroupCreatedEvents: null, whenTypeGroupKilledEvents: null, whenTypeGroupPositionStateChangedEvents: null, whenCollidedEvents: null, whenSoundEndedEvents: null, whenChannelEndedEvents: null, whenUpdated: null, whenDrawing: null, whenMousePressed: null, whenMouseReleased: null, whenMouseMoved: null, whenMouseDragged: null, whenPaused: null, whenFullscreenChanged: null, whenScreenSizeChanged: null, whenGameScaleChanged: null, whenSwiped: null, whenMTStarted: null, whenMTDragged: null, whenMTEnded: null, whenFocusChanged: null, nativeListeners: null, shader: null, shaderLayer: null, shaders: null, isFullScreen: null, ignoreResize: null, stats: null, onKeyDown: function (a) { this.isFullScreen && 27 == a.keyCode && this.setFullScreen(!1); }, onWindowResize: function (a) { !this.isFullScreen || k.stage.window.__fullscreen || k.stage.window.__minimized || this.ignoreResize || this.setFullScreen(!1); }, onWindowRestore: function () { this.isFullScreen && !k.stage.window.__fullscreen && (k.stage.window.__fullscreen = !0); }, onWindowMaximize: function () { this.isFullScreen && !k.stage.window.__fullscreen && (k.stage.window.__fullscreen = !0); }, onWindowFullScreen: function () { this.isFullScreen || this.setFullScreen(!0); }, isInFullScreen: function () { return 1 == Ma.get_current().stage.get_displayState(); }, setFullScreen: function (a) { if (this.isFullScreen != a) { this.ignoreResize = !0; this.isFullScreen = a; this.reloadScreen(); if (0 < this.whenFullscreenChanged.length) for ( this.whenFullscreenChanged._dispatchIndex = 0; this.whenFullscreenChanged._dispatchIndex < this.whenFullscreenChanged.length; ) { try { this.whenFullscreenChanged.listeners[this.whenFullscreenChanged._dispatchIndex](); } catch (b) { if (((la.lastError = b), 'string' != typeof M.caught(b).unwrap())) throw b; } ++this.whenFullscreenChanged._dispatchIndex; } this.ignoreResize = !1; } }, toggleFullScreen: function () { this.setFullScreen(!this.isFullScreen); }, reloadScreen: function () { var a = k.IMG_BASE, b = k.SCALE, c = k.screenWidth, e = k.screenHeight; this.root.initScreen(this.isFullScreen); k.screenWidth = ya.logicalWidth | 0; k.screenWidthHalf = (k.screenWidth / 2) | 0; k.screenHeight = ya.logicalHeight | 0; k.screenHeightHalf = (k.screenHeight / 2) | 0; this.setColorBackground(this.scene.colorBackground); c = k.screenWidth != c || k.screenHeight != e; e = b != k.SCALE; a != k.IMG_BASE && lc.get().reloadScaledResources(); if (b != k.SCALE) { null != k.debugDrawer && k.debugDrawer.setDrawScale(10 * k.SCALE); this.g.scaleX = this.g.scaleY = k.SCALE; X.applyToAllChildren(this.root, function (a) { x.__implements(a, rh) && x.__cast(a, rh).updateScale(); }); for (a = this.allActors.iterator(); a.hasNext(); ) (b = a.next()), null == b || b.dead || b.recycled || (b.updateMatrix = !0); for (b = this.recycledActorsOfType.iterator(); b.hasNext(); ) for (var f = b.next(), d = 0; d < f.length; ) (a = f[d]), ++d, null != a.currAnimation && a.currAnimation.framesUpdated(), (a.updateMatrix = !0); a = this.g; a.font = a.defaultFont; a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE); this.moveCamera(this.camera.realX, this.camera.realY); } k.unzoomedScaleX = k.screenScaleX = this.root.get_scaleX(); k.unzoomedScaleY = k.screenScaleY = this.root.get_scaleY(); k.screenOffsetX = this.root.get_x() | 0; k.screenOffsetY = this.root.get_y() | 0; null != this.stats && (this.stats.set_x(k.stage.stageWidth - this.stats.get_width()), this.stats.set_y(0)); this.resetShaders(); if (e && 0 < this.whenGameScaleChanged.length) for ( this.whenGameScaleChanged._dispatchIndex = 0; this.whenGameScaleChanged._dispatchIndex < this.whenGameScaleChanged.length; ) { try { this.whenGameScaleChanged.listeners[this.whenGameScaleChanged._dispatchIndex](); } catch (p) { if (((la.lastError = p), 'string' != typeof M.caught(p).unwrap())) throw p; } ++this.whenGameScaleChanged._dispatchIndex; } if (c && 0 < this.whenScreenSizeChanged.length) for ( this.whenScreenSizeChanged._dispatchIndex = 0; this.whenScreenSizeChanged._dispatchIndex < this.whenScreenSizeChanged.length; ) { try { this.whenScreenSizeChanged.listeners[this.whenScreenSizeChanged._dispatchIndex](); } catch (p) { if (((la.lastError = p), 'string' != typeof M.caught(p).unwrap())) throw p; } ++this.whenScreenSizeChanged._dispatchIndex; } }, addShader: function (a) { if (qd.get_isSupported()) { a = a.basicShader; null != this.shaders && this.clearShaders(); this.shaders = [a.model]; for (a = a.multipassParent; null != a; ) this.shaders.splice(0, 0, a.model), (a = a.multipassParent); a = 0; for (var b = this.shaders; a < b.length; ) { var c = b[a]; ++a; this.shaderLayer.addChild(c); } } }, clearShaders: function () { X.removeAllChildren(this.shaderLayer); k.stage.context3D.setRenderToBackBuffer(); this.shaders = []; }, toggleShadersForHUD: function () { null != this.shaderLayer && null != this.hudLayer && null != this.root && this.root.swapChildren(this.shaderLayer, this.hudLayer); }, resetShaders: function () { if (null != this.shaders) for (var a = 0, b = this.shaders; a < b.length; ) { var c = b[a]; ++a; c.rebuild(); } }, begin: function (a) { this.loadedAtlases = new Za(); this.atlasesToLoad = new Za(); this.atlasesToUnload = new Za(); D.enable(); D.define('iSHIFT', [16]); D.define('iCTRL', [17]); D.define('iCOMMAND', [15]); k.landscape = aa.landscape; var b = ya.logicalWidth, c = ya.logicalHeight; k.screenWidth = b | 0; k.screenHeight = c | 0; k.screenWidthHalf = (b / 2) | 0; k.screenHeightHalf = (c / 2) | 0; lc.get(); Fa.get().loadScenes(); this.g = new W(); k.started = !0; this.tileUpdated = !1; this.shakeTimer = 0; this.shakeIntensity = 0.01; this.isShaking = !1; this.enter = this.leave = null; k.cameraX = 0; this.acc = k.cameraY = 0; this.lastTime = Ma.getTimer(); k.sceneWidth = b | 0; k.sceneHeight = c | 0; this.colorLayer = new Oe(); this.colorLayer.set_name('Color Layer'); this.root.addChild(this.colorLayer); this.master = new Ca(); this.master.set_name('Master'); this.root.addChild(this.master); this.hudLayer = new Ec(-1, '__hud__', -1, 0, 0, 1, 10, null); this.hudLayer.set_name('HUD Layer'); this.root.addChild(this.hudLayer); this.transitionLayer = new Ca(); this.transitionLayer.set_name('Transition Layer'); this.root.addChild(this.transitionLayer); this.debugLayer = new Ca(); this.debugLayer.set_name('Debug Layer'); this.root.addChild(this.debugLayer); qd.get_isSupported() && this.root.addChild(this.shaderLayer); this.root.addChild(this.root.maskLayer); this.actorsToCreateInNextScene = []; this.gameAttributes = new qa(); this.savableAttributes = new qa(); this.setStatsVisible(aa.showConsole); b = Fa.get().gameAttributes.h; b = Object.keys(b); c = b.length; for (var e = 0; e < c; ) { var f = b[e++], d = Fa.get().gameAttributes.h[f]; this.gameAttributes.h[f] = d; } this.channels = []; this.channels.push(new Xb(this, 0)); this.channels.push(new Xb(this, 1)); this.channels.push(new Xb(this, 2)); this.channels.push(new Xb(this, 3)); this.channels.push(new Xb(this, 4)); this.channels.push(new Xb(this, 5)); this.channels.push(new Xb(this, 6)); this.channels.push(new Xb(this, 7)); this.channels.push(new Xb(this, 8)); this.channels.push(new Xb(this, 9)); this.channels.push(new Xb(this, 10)); this.channels.push(new Xb(this, 11)); this.channels.push(new Xb(this, 12)); this.channels.push(new Xb(this, 13)); this.channels.push(new Xb(this, 14)); this.channels.push(new Xb(this, 15)); this.channels.push(new Xb(this, 16)); this.channels.push(new Xb(this, 17)); this.channels.push(new Xb(this, 18)); this.channels.push(new Xb(this, 19)); this.channels.push(new Xb(this, 20)); this.channels.push(new Xb(this, 21)); this.channels.push(new Xb(this, 22)); this.channels.push(new Xb(this, 23)); this.channels.push(new Xb(this, 24)); this.channels.push(new Xb(this, 25)); this.channels.push(new Xb(this, 26)); this.channels.push(new Xb(this, 27)); this.channels.push(new Xb(this, 28)); this.channels.push(new Xb(this, 29)); this.channels.push(new Xb(this, 30)); this.channels.push(new Xb(this, 31)); this.sceneToEnter = a; this.loadScene(a); this.sceneInitialized = !0; }, setStatsVisible: function (a) { a != (null != this.stats) && (a ? ((this.stats = new Rg()), k.stage.addChild(this.stats), this.stats.set_x(k.stage.stageWidth - this.stats.get_width()), this.stats.set_y(0)) : (k.stage.removeChild(this.stats), (this.stats = null))); }, loadScene: function (a) { this.collisionPairs = new ye(32); k.preservePadding || ((k.paddingTop = 0), (k.paddingLeft = 0), (k.paddingBottom = 0), (k.paddingRight = 0)); this.tasks = []; this.scene = Fa.get().scenes.h[a]; if (-1 == a || null == this.scene) if (((this.scene = Fa.get().scenes.h[aa.initSceneID]), null == this.scene)) { k.stage.removeEventListener('enterFrame', q(this, this.onUpdate)); return; } this.scene.load(); a = new Za(); if (this.scene.retainsAtlases) for (var b = this.loadedAtlases.iterator(); b.hasNext(); ) { var c = b.next(); a.h[c] = c; } else { for (b = this.loadedAtlases.iterator(); b.hasNext(); ) (c = b.next()), Fa.get().atlases.h[c].allScenes && (a.h[c] = c); c = 0; for (var e = this.scene.atlases; c < e.length; ) (b = e[c]), ++c, (a.h[b] = b); } for (c = this.atlasesToLoad.iterator(); c.hasNext(); ) (e = c.next()), (a.h[e] = e); for (c = this.atlasesToUnload.iterator(); c.hasNext(); ) (e = c.next()), a.remove(e); for (c = this.loadedAtlases.iterator(); c.hasNext(); ) (e = c.next()), a.h.hasOwnProperty(e) || (lc.get().unloadAtlas(e), this.loadedAtlases.remove(e)); for (c = a.iterator(); c.hasNext(); ) (e = c.next()), this.loadedAtlases.h.hasOwnProperty(e) || (lc.get().loadAtlas(e), (this.loadedAtlases.h[e] = e)); this.atlasesToLoad = new Za(); this.atlasesToUnload = new Za(); k.sceneWidth = this.scene.sceneWidth; k.sceneHeight = this.scene.sceneHeight; this.behaviors = new Aj(); this.groups = new Za(); this.reverseGroups = new qa(); c = 0; for (e = Fa.get().groups; c < e.length; ) (a = e[c]), ++c, (b = new ze(a.ID, a.name)), (this.groups.h[a.ID] = b), (this.reverseGroups.h[a.name] = b), (b.name = a.name); a = new ze(-2, 'Regions'); this.groups.h[-2] = a; this.reverseGroups.h.Regions = a; this.disableCollisionList = []; this.actorsOfType = new Za(); this.recycledActorsOfType = new Za(); this.regions = new ye(32); this.regions.reuseIterator = !0; this.terrainRegions = new Za(); this.joints = new Za(); this.dynamicTiles = new qa(); this.animatedTiles = []; this.allActors = new ye(256); this.allActors.reuseIterator = !0; this.nextID = 0; this.whenKeyPressedEvents = new On(); this.whenAnyKeyPressed = new Fc(); this.whenAnyKeyReleased = new Fc(); this.whenAnyGamepadPressed = new Fc(); this.whenAnyGamepadReleased = new Fc(); this.whenTypeGroupCreatedEvents = new Jc(); this.whenTypeGroupKilledEvents = new Jc(); this.whenTypeGroupPositionStateChangedEvents = new Za(); this.whenCollidedEvents = new Za(); this.whenSoundEndedEvents = new Jc(); this.whenChannelEndedEvents = new Za(); this.nativeListeners = []; this.whenUpdated = new Fc(); this.whenDrawing = new Fc(); this.whenMousePressed = new Fc(); this.whenMouseReleased = new Fc(); this.whenMouseMoved = new Fc(); this.whenMouseDragged = new Fc(); this.whenPaused = new Fc(); this.whenSwiped = new Fc(); this.whenMTStarted = new Fc(); this.whenMTDragged = new Fc(); this.whenMTEnded = new Fc(); this.whenFocusChanged = new Fc(); this.whenFullscreenChanged = new Fc(); this.whenScreenSizeChanged = new Fc(); this.whenGameScaleChanged = new Fc(); k.NO_PHYSICS || this.initPhysics(); this.gravityX = this.scene.gravityX; this.gravityY = this.scene.gravityY; this.loadTerrain(); this.loadRegions(); this.loadTerrainRegions(); this.loadActors(); this.loadCamera(); this.loadJoints(); this.loadDeferredActors(); k.initBehaviors(this.behaviors, this.scene.behaviorValues, this, this, !0); this.initActorScripts(); }, initPhysics: function () { var a = new P(this.scene.gravityX, this.scene.gravityY); this.world = new ec(a, !1); ec.m_continuousPhysics = !1; ec.m_warmStarting = !0; a = new ka(); a.lowerBound.x = 0; a.lowerBound.y = 0; a.upperBound.x = k.screenWidth / k.physicsScale; a.upperBound.y = k.screenHeight / k.physicsScale; this.world.setScreenBounds(a); k.debugDrawer = new He(); k.debugDrawer.setSprite(this.debugLayer); k.debugDrawer.setLineThickness(3); k.debugDrawer.setDrawScale(10 * k.SCALE); k.debugDrawer.setFillAlpha(0); k.debugDrawer.setFlags(He.e_shapeBit | He.e_jointBit); this.world.setDebugDraw(k.debugDrawer); }, loadActors: function () { this.actorsToCreate = []; for (var a = this.scene.actors.iterator(); a.hasNext(); ) { var b = a.next(); this.actorsToCreate.push(this.createActor(b, !0)); } a = 0; for (b = this.interactiveLayers; a < b.length; ) { var c = b[a]; ++a; for (var e = 0, f = c.actorContainer.get_numChildren(); e < f; ) { var d = e++, p = c.actorContainer.getChildAt(d); for (p = this.scene.actors.h[p.ID]; p.orderInLayer != d; ) c.actorContainer.swapChildrenAt(d, p.orderInLayer), (p = c.actorContainer.getChildAt(d)), (p = this.scene.actors.h[p.ID]); } } }, loadDeferredActors: function () { for (var a = 0, b = this.actorsToCreateInNextScene; a < b.length; ) { var c = b[a]; ++a; d.lastCreatedActor = this.createActorOfType(c.type, c.x, c.y, c.layer); } this.actorsToCreateInNextScene = []; }, initActorScripts: function () { for (var a = 0, b = this.actorsToCreate; a < b.length; ) { var c = b[a]; ++a; c.initScripts(); } this.actorsToCreate = null; }, loadCamera: function () { this.camera = new tb( this, -1, 2, 0, 0, -1, 2, 2, null, null, null, null, !0, !1, !0, !1, null, !0, !1 ); this.camera.set_name('Camera'); this.camera.isCamera = !0; k.cameraX = 0; k.cameraY = 0; }, loadRegions: function () { this.regions = new ye(32); this.regions.reuseIterator = !0; for (var a = this.scene.regions.iterator(); a.hasNext(); ) { var b = a.next(), c = new pd(this, b.x, b.y, b.shapes, b.simpleBounds); c.set_name(b.name); k.NO_PHYSICS || c.setXY(b.x + c.regionWidth / 2, b.y + c.regionHeight / 2); c.ID = b.ID; this.addRegion(c); } }, loadTerrainRegions: function () { this.terrainRegions = new Za(); if (!k.NO_PHYSICS) for (var a = this.scene.terrainRegions.iterator(); a.hasNext(); ) { var b = a.next(), c = new Pg(this, b.x, b.y, b.shapes, b.groupID, b.fillColor); c.set_name(b.name); c.setX(k.toPixelUnits(b.x) + c.regionWidth / 2); c.setY(k.toPixelUnits(b.y) + c.regionHeight / 2); c.ID = b.ID; this.addTerrainRegion(c); } }, loadJoints: function () { if (!k.NO_PHYSICS) for (var a = this.scene.joints.iterator(); a.hasNext(); ) { var b = a.next(), c = b.actor1, e = b.actor2, f = b.collideConnected; if (3 == b.type) { var d = this.joints; var p = b.ID; b = this.createStickJoint(this.getActor(c).body, this.getActor(e).body, b.ID, f); d.h[p] = b; } else if (1 == b.type) { p = x.__cast(b, Nh); d = this.getActor(c).body.getLocalCenter().copy(); d.x = k.toPixelUnits(d.x); d.y = k.toPixelUnits(d.y); c = this.getActor(c).body; e = -1 == e ? this.world.m_groundBody : this.getActor(e).body; var l = this.joints, v = b.ID; b = this.createHingeJoint( c, e, d, b.ID, f, p.enableLimit, p.enableMotor, p.lowerAngle, p.upperAngle, p.maxMotorTorque, -p.motorSpeed ); l.h[v] = b; } else if (2 == b.type || 7 == b.type) (p = x.__cast(b, Oh)), (d = this.getActor(c).body.getLocalCenter().copy()), (d.x = k.toPixelUnits(d.x)), (d.y = k.toPixelUnits(d.y)), (c = this.getActor(c).body), (e = -1 == e ? this.world.m_groundBody : this.getActor(e).body), (d = this.joints), (l = b.ID), (b = this.createSlidingJoint( c, e, p.localAxisA, b.ID, f, p.enableLimit, p.enableMotor, p.lowerTranslation, p.upperTranslation, p.maxMotorForce, p.motorSpeed )), (d.h[l] = b); } }, loadTerrain: function () { this.initLayers(); for (var a = 0, b = this.scene.wireframes; a < b.length; ) { var c = b[a]; ++a; var e = null; k.NO_PHYSICS || (e = new tb( this, 1e8, 1, c.x, c.y, -1, c.width | 0, c.height | 0, null, new qa(), null, null, !1, !0, !1, !1, c.shape )); e.set_name('Terrain'); e.typeID = -1; e.set_visible(!1); this.getGroup(1).addChild(e); } }, initLayers: function () { this.setColorBackground(this.scene.colorBackground); this.animatedTiles = this.scene.animatedTiles; if (null != this.animatedTiles) for (var a = 0, b = this.animatedTiles; a < b.length; ) { var c = b[a]; ++a; c.currFrame = 0; c.currTime = 0; c.updateSource = !0; } this.layers = this.scene.layers; this.layersToDraw = new Za(); this.layersByName = new qa(); this.interactiveLayers = []; this.backgroundLayers = []; var e = (c = !1), f = 0, d = -1, p = {}; if (0 == this.layers.mSize) { a = new me( 0, this.scene, (this.scene.sceneWidth / this.scene.tileWidth) | 0, (this.scene.sceneHeight / this.scene.tileHeight) | 0 ); var l = new Ec(0, 'default', 0, 1, 1, 1, 10, a); this.layers.set(l.ID, l); } for (l = this.layers.iterator(); l.hasNext(); ) (a = l.next()), (d = Math.max(d, a.order) | 0), (p[a.order] = a), (this.layersByName.h[a.layerName] = a), a instanceof Ec ? this.interactiveLayers.push(x.__cast(a, Ec)) : a instanceof Wd && this.backgroundLayers.push(x.__cast(a, Wd)); a = 0; for (b = d + 1; a < b; ) { l = a++; var v = d - l; l = p[l]; l.order = v; this.layersToDraw.h[v] = l; } a = 0; for (b = d + 1; a < b; ) (l = a++), (l = this.layersToDraw.h[l]), l instanceof Wd ? ((l = x.__cast(l, Wd)), l.load(), this.master.addChild(l)) : l instanceof Ec && ((d = x.__cast(l, Ec)), c || ((c = !0), (this.bottomLayer = d)), e || f != Math.floor(this.interactiveLayers.length / 2) || ((e = !0), (this.middleLayer = d)), this.master.addChild(d), (this.topLayer = d), d.tiles.mountGrid(), ++f); }, setColorBackground: function (a) { a.draw( this.colorLayer.get_graphics(), 0, 0, (k.screenWidth * k.SCALE) | 0, (k.screenHeight * k.SCALE) | 0 ); }, optimizePool: function () { for (var a = this.recycledActorsOfType.iterator(); a.hasNext(); ) { for (var b = a.next(), c = [], e = 0; e < b.length; ) { var f = b[e]; ++e; null != f && f.recycled && c.push(f); } for (e = 0; e < c.length; ) (f = c[e]), ++e, A.remove(b, f), this.removeActor(f); } }, cleanup: function () { null != k.debugDrawer && null != k.debugDrawer.m_sprite && k.debugDrawer.m_sprite.get_graphics().clear(); for (var a = 0, b = this.interactiveLayers; a < b.length; ) { var c = b[a]; ++a; c.clear(); } this.hudLayer.clear(); X.removeAllChildren(this.master); this.behaviors.destroy(); this.camera.destroy(); this.camera = null; if (null != this.world) { a = this.world.getBodyList(); for (b = this.world.getJointList(); null != b; ) this.world.destroyJoint(b), (b = b.getNext()); for (; null != a; ) this.world.destroyBody(a), (a = a.getNext()); } for (a = this.actorsOfType.iterator(); a.hasNext(); ) (b = a.next()), (b.length = 0); for (b = this.recycledActorsOfType.iterator(); b.hasNext(); ) for (c = b.next(), a = 0; a < c.length; ) { var e = c[a]; ++a; e.destroyed || e.destroy(); } for (a = this.recycledActorsOfType.iterator(); a.hasNext(); ) (b = a.next()), (b.length = 0); for (e = this.allActors.iterator(); e.hasNext(); ) e.next().destroy(); for (; 0 < Tc.count(this.allActors); ) for (a = this.allActors.keys(); a.hasNext(); ) (b = a.next()), this.allActors.unset(b); this.scene.unload(); this.nativeListeners = this.whenFocusChanged = this.whenMTEnded = this.whenMTDragged = this.whenMTStarted = this.whenSwiped = this.whenGameScaleChanged = this.whenScreenSizeChanged = this.whenFullscreenChanged = this.whenPaused = this.whenMouseDragged = this.whenMouseMoved = this.whenMouseReleased = this.whenMousePressed = this.whenDrawing = this.whenUpdated = this.whenChannelEndedEvents = this.whenSoundEndedEvents = this.whenCollidedEvents = this.whenTypeGroupPositionStateChangedEvents = this.whenTypeGroupKilledEvents = this.whenTypeGroupCreatedEvents = this.whenAnyGamepadReleased = this.whenAnyGamepadPressed = this.whenAnyKeyReleased = this.whenAnyKeyPressed = this.whenKeyPressedEvents = this.disableCollisionList = this.collisionPairs = this.tasks = this.scene = this.allActors = this.reverseGroups = this.groups = this.joints = this.terrainRegions = this.regions = this.animatedTiles = this.dynamicTiles = this.layersToDraw = this.backgroundLayers = this.interactiveLayers = this.layersByName = this.layers = this.recycledActorsOfType = this.actorsOfType = null; d.lastCreatedActor = null; d.lastCreatedJoint = null; d.lastCreatedRegion = null; d.lastCreatedTerrainRegion = null; D.update(); this.world = null; }, switchScene: function (a, b, c) { if (!this.isTransitioning()) { null != b && b.isComplete() && b.reset(); if (null == b || 0 == b.duration) b = new ub(0); if (null == c || 0 == c.duration) c = new ub(1); this.leave = b; this.enter = c; this.leave.isComplete() || this.leave.start(); this.sceneToEnter = a; } }, enterScene: function () { this.enter.isComplete() || (this.enter.start(), null != this.leave && this.leave.cleanup()); this.leave = null; this.sceneInitialized = !1; this.cleanup(); this.loadScene(this.sceneToEnter); this.sceneInitialized = !0; }, isTransitioning: function () { return (null != this.enter && this.enter.isActive()) || (null != this.leave && this.leave.isActive()) ? !0 : !1; }, isTransitioningOut: function () { return null != this.leave && this.leave.isActive() ? !0 : !1; }, createActorInNextScene: function (a, b, c, e) { this.actorsToCreateInNextScene.push(new Pn(a, b, c, e)); }, createActor: function (a, b) { b = x.__cast(lc.get().resources.get(a.actorType.spriteID), ui); b = new tb( this, a.elementID, a.groupID, a.x, a.y, a.layerID, -1, -1, b, a.behaviorValues, a.actorType, k.NO_PHYSICS ? null : a.actorType.bodyDef, !1, !1, !1, !1, null, a.actorType.autoScale, a.actorType.ignoreGravity, a.actorType.physicsMode ); if (0 != a.angle) if (0 != b.currOffset.x || 0 != b.currOffset.y) { var c = b.currOrigin.x | 0, e = b.currOrigin.y | 0; b.setOriginPoint((b.cacheWidth / 2) | 0, (b.cacheHeight / 2) | 0); b.setAngle(a.angle, !1); b.setOriginPoint(c, e); } else b.setAngle(a.angle, !1); if (1 != a.scaleX || 1 != a.scaleY) { var f = (b.cacheWidth / 2) | 0, g = (b.cacheHeight / 2) | 0; if (b.currOrigin.x != f || b.currOrigin.y != g) (c = Math.sin(0.01745329251994278 * a.angle)), (e = Math.cos(0.01745329251994278 * a.angle)), (f = (b.currOrigin.x - f) * a.scaleX - b.currOffset.x), (g = (b.currOrigin.y - g) * a.scaleY - b.currOffset.y), b.setX(b.getX(!1) + f * e - g * c), b.setY(b.getY(!1) + f * c + g * e); b.growTo(a.scaleX, a.scaleY, 0); } b.set_name(a.actorType.name); null == this.recycledActorsOfType.h[a.actorType.ID] && (this.recycledActorsOfType.h[a.actorType.ID] = []); c = this.recycledActorsOfType.h[a.actorType.ID]; c.push(b); 2 != a.actorType.physicsMode && ((c = this.groups.h[a.groupID]), null != c && c.addChild(b)); 1e8 == a.elementID ? (this.nextID++, (b.ID = this.nextID), this.allActors.set(b.ID, b)) : (this.allActors.set(b.ID, b), (this.nextID = Math.max(b.ID, this.nextID) | 0)); b.internalUpdate(0, !1); b.updateDrawingMatrix(); null != a.actorType && -1 != a.actorType.ID && ((c = this.actorsOfType.h[a.actorType.ID]), null == c && ((c = []), (this.actorsOfType.h[a.actorType.ID] = c)), null != c && c.push(b)); return (d.lastCreatedActor = b); }, removeActor: function (a) { this.allActors.unset(a.ID); this.removeActorFromLayer(a, a.layer); var b = this.groups, c = a.getGroupID(); b.h[c].removeChild(a); a.destroy(); null != a.type && -1 != a.typeID && ((b = this.actorsOfType.h[a.typeID]), null != b && A.remove(b, a)); }, removeActorFromLayer: function (a, b) { null != b && a.layer == b && (b == this.hudLayer && (0 == a.physicsMode && a.body.setAlwaysActive(a.alwaysSimulate), (a.isHUD = !1), (a.cachedLayer = null)), b.actorContainer.contains(a) && (b.actorContainer.removeChild(a), (a.layer = null))); }, moveActorToLayer: function (a, b) { if (a.layer != b && null != b) { if ( null == a.layer || a.layer.scrollFactorX != b.scrollFactorX || a.layer.scrollFactorY != b.scrollFactorY ) a.updateMatrix = !0; b == this.hudLayer && (0 == a.physicsMode && a.body.setAlwaysActive(!0), (a.isHUD = !0), (a.cachedLayer = a.layer)); null != a.layer && this.removeActorFromLayer(a, a.layer); b.actorContainer.addChild(a); a.layer = b; } }, recycleActor: function (a) { if (null != a && !a.recycled) { var b = k.engine.whenTypeGroupKilledEvents, c = a.getType(), e = b.h[c.__id__]; b = k.engine.whenTypeGroupKilledEvents; c = a.getGroup(); b = b.h[c.__id__]; if (0 < a.whenKilled.length) for ( a.whenKilled._dispatchIndex = 0; a.whenKilled._dispatchIndex < a.whenKilled.length; ) { try { a.whenKilled.listeners[a.whenKilled._dispatchIndex](); } catch (f) { if (((la.lastError = f), 'string' != typeof M.caught(f).unwrap())) throw f; } ++a.whenKilled._dispatchIndex; } if (null != e && 0 < e.length) for (e._dispatchIndex = 0; e._dispatchIndex < e.length; ) { try { e.listeners[e._dispatchIndex](a); } catch (f) { if (((la.lastError = f), 'string' != typeof M.caught(f).unwrap())) throw f; } ++e._dispatchIndex; } if (null != b && 0 < b.length) for (b._dispatchIndex = 0; b._dispatchIndex < b.length; ) { try { b.listeners[b._dispatchIndex](a); } catch (f) { if (((la.lastError = f), 'string' != typeof M.caught(f).unwrap())) throw f; } ++b._dispatchIndex; } a.isHUD && a.unanchorFromScreen(); a.alwaysSimulate && a.makeSometimesSimulate(!1); a.firstMove = !1; a.setXY(1e6, 1e6, !1, !0); a.colX = 1e6; a.colY = 1e6; a.recycled = !0; a.killLeaveScreen = !1; a.lastScreenState = !1; a.lastSceneState = !1; a.cancelTweens(); a.clearFilters(); a.resetBlendMode(); a.set_alpha(1); a.realScaleX = 1; a.realScaleY = 1; a.switchToDefaultAnimation(); a.disableActorDrawing(); a.removeAttachedImages(); if (0 == a.physicsMode && null != a.body) for (e = a.body.getContactList(); null != e; ) k.engine.world.m_contactManager.m_contactListener.endContact(e.contact), (e = e.next); a.removeAllListeners(); a.resetListeners(); this.removeActorFromLayer(a, a.layer); 0 == a.physicsMode && (a.body.setActive(!1), a.body.setAwake(!1), a.body.setBullet(a.type.bodyDef.bullet), null != a.body.m_prev && (a.body.m_prev.m_next = a.body.m_next), null != a.body.m_next && (a.body.m_next.m_prev = a.body.m_prev), a.body == this.world.m_bodyList && (this.world.m_bodyList = a.body.m_next), (a.body.m_prev = null), (a.body.m_next = null), --this.world.m_bodyCount); a.xSpeed = 0; a.ySpeed = 0; a.rSpeed = 0; a.continuousCollision = !1; e = 0; for (b = this.tasks; e < b.length; ) (c = b[e]), ++e, c.actor == a && this.removeTask(c); this.allActors.unset(a.ID); } }, getRecycledActorOfType: function (a, b, c, e) { a = this.getRecycledActorOfTypeOnLayer(a, b, c, this.getLayerByOrder(e).ID); k.paused && (a.updateDrawingMatrix(), a.pause()); return a; }, getRecycledActorOfTypeOnLayer: function (a, b, c, e) { var f = null; if (null == this.recycledActorsOfType.h[a.ID]) { var d = a.ID; this.recycledActorsOfType.h[d] = []; } d = this.recycledActorsOfType.h[a.ID]; if (null != d) { for (var p = 0; p < d.length; ) if (((f = d[p]), ++p, null != f && f.recycled)) { f.createTime = Ma.getTimer(); this.allActors.set(f.ID, f); f.dead = !1; f.dying = !1; f.recycled = !1; f.killLeaveScreen = !1; f.switchToDefaultAnimation(); f.customizedBehaviors ? ((f.customizedBehaviors = !1), (f.behaviors = new Aj()), k.initBehaviors(f.behaviors, a.behaviorValues, f, this, !1)) : f.enableAllBehaviors(); 0 == f.physicsMode && (f.body.setActive(!0), f.body.setAwake(!0), (f.body.m_prev = null), (f.body.m_next = this.world.m_bodyList), null != this.world.m_bodyList && (this.world.m_bodyList.m_prev = f.body), (this.world.m_bodyList = f.body), ++this.world.m_bodyCount); f.registry = new qa(); f.enableActorDrawing(); f.setXY(b, c, !1, !0); 0 == f.physicsMode && ((f.colX = b), (f.colY = c)); f.setAngle(0, !1); f.setIgnoreGravity(f.defaultGravity); f.set_alpha(1); f.realScaleX = 1; f.realScaleY = 1; null != f.bodyDef && (f.continuousCollision = f.bodyDef.bullet); f.updateDrawingMatrix(!0); this.moveActorToLayer(f, this.getLayerById(e)); f.initScripts(); a = this.whenTypeGroupCreatedEvents.h[a.__id__]; b = this.whenTypeGroupCreatedEvents; d = f.getGroup(); b = b.h[d.__id__]; if (null != a && 0 < a.length) for (a._dispatchIndex = 0; a._dispatchIndex < a.length; ) { try { a.listeners[a._dispatchIndex](f); } catch (l) { if (((la.lastError = l), 'string' != typeof M.caught(l).unwrap())) throw l; } ++a._dispatchIndex; } if (null != b && 0 < b.length) for (b._dispatchIndex = 0; b._dispatchIndex < b.length; ) { try { b.listeners[b._dispatchIndex](f); } catch (l) { if (((la.lastError = l), 'string' != typeof M.caught(l).unwrap())) throw l; } ++b._dispatchIndex; } return f; } f = this.createActorOfType(a, b, c, e); } return f; }, createActorOfType: function (a, b, c, e) { if (null == a) return null; b = new Zk(1e8, b | 0, c | 0, 1, 1, e, -1, 0, a.groupID, a.ID, null, !1); b = this.createActor(b, !0); b.initScripts(); a = this.whenTypeGroupCreatedEvents.h[a.__id__]; c = this.whenTypeGroupCreatedEvents; e = b.getGroup(); c = c.h[e.__id__]; if (null != a && 0 < a.length) for (a._dispatchIndex = 0; a._dispatchIndex < a.length; ) { try { a.listeners[a._dispatchIndex](b); } catch (f) { if (((la.lastError = f), 'string' != typeof M.caught(f).unwrap())) throw f; } ++a._dispatchIndex; } if (null != c && 0 < c.length) for (c._dispatchIndex = 0; c._dispatchIndex < c.length; ) { try { c.listeners[c._dispatchIndex](b); } catch (f) { if (((la.lastError = f), 'string' != typeof M.caught(f).unwrap())) throw f; } ++c._dispatchIndex; } return b; }, getTopLayer: function () { return this.topLayer.ID; }, getBottomLayer: function () { return this.bottomLayer.ID; }, getMiddleLayer: function () { return this.middleLayer.ID; }, update: function (a) { if (null != this.scene) { vb.update(a | 0); if (!k.NO_PHYSICS) { var b = this.world.getScreenBounds(); b.lowerBound.x = (k.cameraX / k.SCALE - k.paddingLeft) / k.physicsScale; b.lowerBound.y = (k.cameraY / k.SCALE - k.paddingTop) / k.physicsScale; b.upperBound.x = b.lowerBound.x + (k.screenWidth + k.paddingRight + k.paddingLeft) / k.physicsScale; b.upperBound.y = b.lowerBound.y + (k.screenHeight + k.paddingBottom + k.paddingTop) / k.physicsScale; } b = (D.mouseX / k.SCALE) | 0; var c = (D.mouseY / k.SCALE) | 0; if (D.mousePressed && ((d.mpx = b), (d.mpy = c), 0 < this.whenMousePressed.length)) for ( this.whenMousePressed._dispatchIndex = 0; this.whenMousePressed._dispatchIndex < this.whenMousePressed.length; ) { try { this.whenMousePressed.listeners[this.whenMousePressed._dispatchIndex](); } catch (p) { if (((la.lastError = p), 'string' != typeof M.caught(p).unwrap())) throw p; } ++this.whenMousePressed._dispatchIndex; } if (D.mouseReleased && ((d.mrx = b), (d.mry = c), 0 < this.whenMouseReleased.length)) for ( this.whenMouseReleased._dispatchIndex = 0; this.whenMouseReleased._dispatchIndex < this.whenMouseReleased.length; ) { try { this.whenMouseReleased.listeners[this.whenMouseReleased._dispatchIndex](); } catch (p) { if (((la.lastError = p), 'string' != typeof M.caught(p).unwrap())) throw p; } ++this.whenMouseReleased._dispatchIndex; } if (this.mx != b || this.my != c) { this.mx = b; this.my = c; if (0 < this.whenMouseMoved.length) for ( this.whenMouseMoved._dispatchIndex = 0; this.whenMouseMoved._dispatchIndex < this.whenMouseMoved.length; ) { try { this.whenMouseMoved.listeners[this.whenMouseMoved._dispatchIndex](); } catch (p) { if (((la.lastError = p), 'string' != typeof M.caught(p).unwrap())) throw p; } ++this.whenMouseMoved._dispatchIndex; } if (D.mouseDown && !D.mousePressed && 0 < this.whenMouseDragged.length) for ( this.whenMouseDragged._dispatchIndex = 0; this.whenMouseDragged._dispatchIndex < this.whenMouseDragged.length; ) { try { this.whenMouseDragged.listeners[this.whenMouseDragged._dispatchIndex](); } catch (p) { if (((la.lastError = p), 'string' != typeof M.caught(p).unwrap())) throw p; } ++this.whenMouseDragged._dispatchIndex; } } for (var e = 0; e < this.tasks.length; ) (b = this.tasks[e]), b.done || b.update(k.STEP_SIZE), b.done && (A.remove(this.tasks, b), --e), ++e; if (0 < this.whenKeyPressedEvents.keys.length) { b = 0; for (c = this.whenKeyPressedEvents.keys.length; b < c; ) { e = b++; var f = this.whenKeyPressedEvents.keys[e]; e = D.pressed(f); var g = D.released(f); if (e || g) if (((f = this.whenKeyPressedEvents.map.get(f)), 0 < f.length)) for (f._dispatchIndex = 0; f._dispatchIndex < f.length; ) { try { f.listeners[f._dispatchIndex](e, g); } catch (p) { if (((la.lastError = p), 'string' != typeof M.caught(p).unwrap())) throw p; } ++f._dispatchIndex; } } this.keyPollOccurred = !0; } if (0 < this.whenUpdated.length) for ( this.whenUpdated._dispatchIndex = 0; this.whenUpdated._dispatchIndex < this.whenUpdated.length; ) { try { this.whenUpdated.listeners[this.whenUpdated._dispatchIndex](a); } catch (p) { if (((la.lastError = p), 'string' != typeof M.caught(p).unwrap())) throw p; } ++this.whenUpdated._dispatchIndex; } k.NO_PHYSICS || (this.world.step(0.01, 3, 3), this.world.clearForces(), k.DEBUG_DRAW && this.world.drawDebugData()); if (0 != this.regions.mSize) for (b = this.regions.iterator(); b.hasNext(); ) (c = b.next()), null != c && c.innerUpdate(a, !0); for (; 0 < this.disableCollisionList.length; ) this.disableCollisionList.pop(); if (0 != this.collisionPairs.mSize) for (b = this.collisionPairs.keys(); b.hasNext(); ) (c = b.next()), this.collisionPairs.unset(c); se.updateAll(a); if (0 != this.allActors.mSize) for (e = this.allActors.iterator(); e.hasNext(); ) (b = e.next()), null == b || b.dead || b.recycled || ((c = (0 != b.physicsMode || b.body.isActive()) && b.colX + b.cacheWidth * b.realScaleX >= k.cameraX / k.SCALE - k.paddingLeft && b.colY + b.cacheHeight * b.realScaleY >= k.cameraY / k.SCALE - k.paddingTop && b.colX < k.cameraX / k.SCALE + k.screenWidth + k.paddingRight && b.colY < k.cameraY / k.SCALE + k.screenHeight + k.paddingBottom), (b.isOnScreenCache = c || b.isHUD), 0 == b.physicsMode && null != b.body ? b.killLeaveScreen && !c ? this.recycleActor(b) : (b.body.isActive() || b.alwaysSimulate || b.isHUD) && b.innerUpdate(a, !1) : 0 != b.physicsMode && (b.killLeaveScreen && !c ? this.recycleActor(b) : (c || b.alwaysSimulate || b.isHUD) && b.innerUpdate(a, !1)), b.dead && this.disableCollisionList.push(b)); this.keyPollOccurred = !1; b = 0; for (c = this.disableCollisionList.length; b < c; ) (e = b++), (e = this.disableCollisionList[e]), null != e && (e.handlesCollisions = !1); b = 0; for (c = this.animatedTiles.length; b < c; ) (e = b++), (e = this.animatedTiles[e]), e.update(a), (this.tileUpdated = this.tileUpdated || e.updateSource); null != this.leave && this.leave.isActive() ? this.leave.update(a) : null != this.enter && this.enter.isActive() && this.enter.update(a); for (b = this.layers.iterator(); b.hasNext(); ) b.next().updatePosition(k.cameraX, k.cameraY, a); !k.NO_PHYSICS && k.DEBUG_DRAW && (this.debugLayer.set_x(-k.cameraX), this.debugLayer.set_y(-k.cameraY)); this.isShaking && ((this.shakeTimer -= k.STEP_SIZE), 0 >= this.shakeTimer ? this.stopShakingScreen() : ((a = -this.shakeIntensity * k.screenHeight + 2 * Math.random() * this.shakeIntensity * k.screenHeight), this.master.set_x( (-this.shakeIntensity * k.screenWidth + 2 * Math.random() * this.shakeIntensity * k.screenWidth) * k.SCALE ), this.master.set_y(a * k.SCALE))); } }, onUpdate: function (a) { a = Ma.getTimer(); var b = a - this.lastTime; 200 <= b && (b = 200); this.acc += b; k.elapsedTime = b; k.totalElapsedTime += b | 0; null != this.leave ? (this.leave.isComplete() && (this.leave.deactivate(), this.enterScene()), this.postUpdate(a)) : (null != this.enter && this.enter.isComplete() && (this.enter.deactivate(), this.enter.cleanup(), (this.enter = null)), this.sceneInitialized && this.postUpdate(a)); }, postUpdate: function (a) { for (; this.acc > k.STEP_SIZE; ) this.update(k.STEP_SIZE), (this.acc -= k.STEP_SIZE), D.update(); this.lastTime = a; if (0 != this.allActors.mSize) for (a = this.allActors.iterator(); a.hasNext(); ) { var b = a.next(); null == b || (0 == b.physicsMode && null == b.body) || (b.dead || b.dying ? this.removeActor(b) : b.updateMatrix || b.resetOrigin ? (b.updateDrawingMatrix(), (b.updateMatrix = !1), (b.resetOrigin = !1)) : b.smoothMove && (b.drawX != b.realX || b.drawY != b.realY) && b.updateDrawingMatrix()); } this.draw(); }, onFocus: function (a) { k.inFocus || ((k.inFocus = !0), this.focusChanged(!1)); }, onFocusLost: function (a) { k.inFocus && ((k.inFocus = !1), this.focusChanged(!0)); }, focusChanged: function (a) { if (null != this.whenFocusChanged && 0 < this.whenFocusChanged.length) for ( this.whenFocusChanged._dispatchIndex = 0; this.whenFocusChanged._dispatchIndex < this.whenFocusChanged.length; ) { try { this.whenFocusChanged.listeners[this.whenFocusChanged._dispatchIndex](a); } catch (b) { if (((la.lastError = b), 'string' != typeof M.caught(b).unwrap())) throw b; } ++this.whenFocusChanged._dispatchIndex; } }, handleCollision: function (a, b) { var c = a.typeID, e = b.otherActor.typeID; if (k.NO_PHYSICS) { var f = 1e6 + b.thisActor.groupID; var d = 1e6 + b.otherActor.groupID; } else { if (null != b.thisShape) { d = b.thisShape.groupID; if (-1e3 == d) { var p = b.thisShape.getBody(); null != p && (d = p.getUserData().groupID); } f = 1e6 + d; } else f = 1e6 + b.thisActor.groupID; null != b.otherShape ? ((d = b.otherShape.groupID), -1e3 == d && ((p = b.otherShape.getBody()), null != p && (d = p.getUserData().groupID)), (d = 1e6 + d)) : (d = 1e6 + b.otherActor.groupID); } if (null != this.collisionPairs) { p = a.ID; var l = this.collisionPairs.mH, v = l.mHash[(73856093 * p) & l.mMask]; if (-1 == v) p = !1; else { var n = l.mData; if (n[v] == p) p = !0; else { l = !1; for (v = n[v + 2]; -1 != v; ) { if (n[v] == p) { l = !0; break; } v = n[v + 2]; } p = l; } } p || this.collisionPairs.set(a.ID, new Za()); p = b.otherActor.ID; l = this.collisionPairs.mH; v = l.mHash[(73856093 * p) & l.mMask]; if (-1 == v) p = !1; else if (((n = l.mData), n[v] == p)) p = !0; else { l = !1; for (v = n[v + 2]; -1 != v; ) { if (n[v] == p) { l = !0; break; } v = n[v + 2]; } p = l; } p || this.collisionPairs.set(b.otherActor.ID, new Za()); l = this.collisionPairs; p = a.ID; n = l.mH; v = n.mHash[(73856093 * p) & n.mMask]; if (-1 == v) p = -2147483648; else if (((n = n.mData), n[v] == p)) p = n[v + 1]; else { var h = -2147483648; for (v = n[v + 2]; -1 != v; ) { if (n[v] == p) { h = n[v + 1]; break; } v = n[v + 2]; } p = h; } if ((-2147483648 == p ? null : l.mVals[p]).h.hasOwnProperty(b.otherActor.ID)) p = !0; else { l = this.collisionPairs; p = b.otherActor.ID; n = l.mH; v = n.mHash[(73856093 * p) & n.mMask]; if (-1 == v) p = -2147483648; else if (((n = n.mData), n[v] == p)) p = n[v + 1]; else { h = -2147483648; for (v = n[v + 2]; -1 != v; ) { if (n[v] == p) { h = n[v + 1]; break; } v = n[v + 2]; } p = h; } p = (-2147483648 == p ? null : l.mVals[p]).h.hasOwnProperty(a.ID); } if (p) return; } if (-1 < c || -1 < e) { if ( !b.otherCollidedWithTerrain && this.whenCollidedEvents.h.hasOwnProperty(c) && this.whenCollidedEvents.h[c].h.hasOwnProperty(e) ) { p = this.whenCollidedEvents.h[c].h[e]; if (0 < p.length) for (p._dispatchIndex = 0; p._dispatchIndex < p.length; ) { try { p.listeners[p._dispatchIndex](b); } catch (m) { if (((la.lastError = m), 'string' != typeof M.caught(m).unwrap())) throw m; } ++p._dispatchIndex; } 0 == p.length && this.whenCollidedEvents.h[c].remove(e); } if ( c != e && this.whenCollidedEvents.h.hasOwnProperty(e) && this.whenCollidedEvents.h[e].h.hasOwnProperty(c) ) { p = this.whenCollidedEvents.h[e].h[c]; l = b.switchData(uc.get()); if (0 < p.length) for (p._dispatchIndex = 0; p._dispatchIndex < p.length; ) { try { p.listeners[p._dispatchIndex](l); } catch (m) { if (((la.lastError = m), 'string' != typeof M.caught(m).unwrap())) throw m; } ++p._dispatchIndex; } 0 == p.length && this.whenCollidedEvents.h[e].remove(c); } } if (0 < f && 0 < d) { if ( this.whenCollidedEvents.h.hasOwnProperty(f) && this.whenCollidedEvents.h[f].h.hasOwnProperty(d) ) { p = this.whenCollidedEvents.h[f].h[d]; if (0 < p.length) for (p._dispatchIndex = 0; p._dispatchIndex < p.length; ) { try { p.listeners[p._dispatchIndex](b); } catch (m) { if (((la.lastError = m), 'string' != typeof M.caught(m).unwrap())) throw m; } ++p._dispatchIndex; } 0 == p.length && this.whenCollidedEvents.h[f].remove(d); } if ( f != d && this.whenCollidedEvents.h.hasOwnProperty(d) && this.whenCollidedEvents.h[d].h.hasOwnProperty(f) ) { p = this.whenCollidedEvents.h[d].h[f]; l = b.switchData(uc.get()); if (0 < p.length) for (p._dispatchIndex = 0; p._dispatchIndex < p.length; ) { try { p.listeners[p._dispatchIndex](l); } catch (m) { if (((la.lastError = m), 'string' != typeof M.caught(m).unwrap())) throw m; } ++p._dispatchIndex; } 0 == p.length && this.whenCollidedEvents.h[d].remove(f); } } if (null != this.collisionPairs) { l = this.collisionPairs; p = a.ID; n = l.mH; v = n.mHash[(73856093 * p) & n.mMask]; if (-1 == v) p = -2147483648; else if (((n = n.mData), n[v] == p)) p = n[v + 1]; else { h = -2147483648; for (v = n[v + 2]; -1 != v; ) { if (n[v] == p) { h = n[v + 1]; break; } v = n[v + 2]; } p = h; } (-2147483648 == p ? null : l.mVals[p]).h[b.otherActor.ID] = !1; l = this.collisionPairs; p = b.otherActor.ID; n = l.mH; v = n.mHash[(73856093 * p) & n.mMask]; if (-1 == v) p = -2147483648; else if (((n = n.mData), n[v] == p)) p = n[v + 1]; else { h = -2147483648; for (v = n[v + 2]; -1 != v; ) { if (n[v] == p) { h = n[v + 1]; break; } v = n[v + 2]; } p = h; } (-2147483648 == p ? null : l.mVals[p]).h[a.ID] = !1; } }, soundFinished: function (a) { var b = x.__cast(this.channels[a], Xb); if (null != this.whenSoundEndedEvents) { var c = this.whenSoundEndedEvents.h[b.currentClip.__id__]; b.currentSound = null; if (null != c && 0 < c.length) for (c._dispatchIndex = 0; c._dispatchIndex < c.length; ) { try { c.listeners[c._dispatchIndex](); } catch (e) { if (((la.lastError = e), 'string' != typeof M.caught(e).unwrap())) throw e; } ++c._dispatchIndex; } } else b.currentSound = null; if ( null != this.whenChannelEndedEvents && ((a = this.whenChannelEndedEvents.h[a]), null != a && 0 < a.length) ) for (a._dispatchIndex = 0; a._dispatchIndex < a.length; ) { try { a.listeners[a._dispatchIndex](); } catch (e) { if (((la.lastError = e), 'string' != typeof M.caught(e).unwrap())) throw e; } ++a._dispatchIndex; } }, addTask: function (a) { this.tasks.push(a); }, removeTask: function (a) { A.remove(this.tasks, a); }, shakeScreen: function (a, b) { this.shakeTimer = (k.MS_PER_SEC * b) | 0; this.isShaking = !0; this.shakeIntensity = a; }, stopShakingScreen: function () { this.shakeTimer = 0; this.isShaking = !1; this.master.set_x(0); this.master.set_y(0); }, cameraFollow: function (a, b, c) { this.moveCamera(a.colX + a.cacheWidth / 2, a.colY + a.cacheHeight / 2); }, moveCamera: function (a, b) { this.camera.setLocation(a, b); k.cameraX = this.camera.realX - k.screenWidthHalf; k.cameraY = this.camera.realY - k.screenHeightHalf; k.limitCameraToScene && ((k.cameraX = Math.max(0, Math.min(k.sceneWidth - k.screenWidth, k.cameraX))), (k.cameraY = Math.max(0, Math.min(k.sceneHeight - k.screenHeight, k.cameraY)))); k.cameraX *= k.SCALE; k.cameraY *= k.SCALE; 1 != this.zoomMultiplier && this.isHUDZoomable && (this.hudLayer.set_x(-d.getScreenX()), this.hudLayer.set_y(-d.getScreenY())); }, setZoom: function (a, b) { null == b && (b = !0); 0 >= a || this.zoomMultiplier == a || ((this.zoomMultiplier = a), this.root.set_scaleX((k.screenScaleX = a * k.unzoomedScaleX)), this.root.set_scaleY((k.screenScaleY = a * k.unzoomedScaleY)), b && ((k.screenWidth = ((1 / a) * ya.logicalWidth) | 0), (k.screenWidthHalf = (k.screenWidth / 2) | 0), (k.screenHeight = ((1 / a) * ya.logicalHeight) | 0), (k.screenHeightHalf = (k.screenHeight / 2) | 0)), this.setColorBackground(this.scene.colorBackground), this.root.set_scrollRect( new fa(0, 0, k.screenWidth * k.SCALE, k.screenHeight * k.SCALE) ), this.moveCamera(this.camera.realX, this.camera.realY), this.isHUDZoomable || (this.hudLayer.set_scaleX(1 / a), this.hudLayer.set_scaleY(1 / a))); }, pause: function () { if (!this.isTransitioning()) { k.paused = !0; if (0 != this.allActors.mSize) for (var a = this.allActors.keys(); a.hasNext(); ) { var b = a.next(), c = this.allActors, e = c.mH, f = e.mHash[(73856093 * b) & e.mMask]; if (-1 == f) b = -2147483648; else if (((e = e.mData), e[f] == b)) b = e[f + 1]; else { var d = -2147483648; for (f = e[f + 2]; -1 != f; ) { if (e[f] == b) { d = e[f + 1]; break; } f = e[f + 2]; } b = d; } c = -2147483648 == b ? null : c.mVals[b]; null != c && c.pause(); } if (0 < this.whenPaused.length) for ( this.whenPaused._dispatchIndex = 0; this.whenPaused._dispatchIndex < this.whenPaused.length; ) { try { this.whenPaused.listeners[this.whenPaused._dispatchIndex](!0); } catch (p) { if (((la.lastError = p), 'string' != typeof M.caught(p).unwrap())) throw p; } ++this.whenPaused._dispatchIndex; } } }, unpause: function () { k.paused = !1; if (0 != this.allActors.mSize) for (var a = this.allActors.keys(); a.hasNext(); ) { var b = a.next(), c = this.allActors, e = c.mH, f = e.mHash[(73856093 * b) & e.mMask]; if (-1 == f) b = -2147483648; else if (((e = e.mData), e[f] == b)) b = e[f + 1]; else { var d = -2147483648; for (f = e[f + 2]; -1 != f; ) { if (e[f] == b) { d = e[f + 1]; break; } f = e[f + 2]; } b = d; } c = -2147483648 == b ? null : c.mVals[b]; null != c && c.unpause(); } if (0 < this.whenPaused.length) for ( this.whenPaused._dispatchIndex = 0; this.whenPaused._dispatchIndex < this.whenPaused.length; ) { try { this.whenPaused.listeners[this.whenPaused._dispatchIndex](!1); } catch (p) { if (((la.lastError = p), 'string' != typeof M.caught(p).unwrap())) throw p; } ++this.whenPaused._dispatchIndex; } }, isPaused: function () { return k.paused; }, draw: function () { for (var a = 0, b = this.interactiveLayers; a < b.length; ) { var c = b[a]; ++a; c.overlay.get_graphics().clear(); } this.hudLayer.overlay.get_graphics().clear(); this.g.graphics = this.transitionLayer.get_graphics(); this.g.graphics.clear(); c = this.g; c.alpha = 1; c.strokeSize = 0; c.fillColor = 0; c.strokeColor = 0; c.font = c.defaultFont; if (0 != this.allActors.mSize) for (a = this.allActors.iterator(); a.hasNext(); ) if (((b = a.next()), 0 < b.whenDrawing.length && null != b.layer)) { this.g.graphics = b.layer.overlay.get_graphics(); c = this.g; c.drawActor = !0; c.actor = b; if (b.smoothMove) { var e = b.drawY - Math.floor(b.cacheHeight / 2) - b.currOffset.y; c.x = (b.drawX - Math.floor(b.cacheWidth / 2) - b.currOffset.x) * c.scaleX; c.y = e * c.scaleY; } else (c.x = b.colX * c.scaleX), (c.y = b.colY * c.scaleY); c = this.g; c.alpha = 1; c.strokeSize = 0; c.fillColor = 0; c.strokeColor = 0; c.font = c.defaultFont; if (0 < b.whenDrawing.length) for ( b.whenDrawing._dispatchIndex = 0; b.whenDrawing._dispatchIndex < b.whenDrawing.length; ) { try { b.whenDrawing.listeners[b.whenDrawing._dispatchIndex](this.g, 0, 0); } catch (f) { if (((la.lastError = f), 'string' != typeof M.caught(f).unwrap())) throw f; } ++b.whenDrawing._dispatchIndex; } } a = 0; for (b = this.interactiveLayers; a < b.length; ) if (((c = b[a]), ++a, c.cameraMoved || this.tileUpdated)) c.tiles.draw((k.cameraX * c.scrollFactorX) | 0, (k.cameraY * c.scrollFactorY) | 0), (c.cameraMoved = !1); this.tileUpdated = !1; this.g.graphics = this.transitionLayer.get_graphics(); c = this.g; c.drawActor = !1; c.actor = null; c.x = 0; c.y = 0; c = this.g; c.alpha = 1; c.strokeSize = 0; c.fillColor = 0; c.strokeColor = 0; c.font = c.defaultFont; if (0 < this.whenDrawing.length) for ( this.whenDrawing._dispatchIndex = 0; this.whenDrawing._dispatchIndex < this.whenDrawing.length; ) { try { this.whenDrawing.listeners[this.whenDrawing._dispatchIndex](this.g, 0, 0); } catch (f) { if (((la.lastError = f), 'string' != typeof M.caught(f).unwrap())) throw f; } ++this.whenDrawing._dispatchIndex; } W.visitStringCache(); null != this.leave && this.leave.isActive() ? this.leave.draw(null) : null != this.enter && this.enter.isActive() && this.enter.draw(null); null != this.shaders && 0 < this.shaders.length && this.shaders[0].capture(); }, getValue: function (a, b) { return this.behaviors.getAttribute(a, b); }, setValue: function (a, b, c) { this.behaviors.setAttribute(a, b, c); }, say: function (a, b, c) { return this.behaviors.call2(a, b, c); }, shout: function (a, b) { return this.behaviors.call(a, b); }, getActor: function (a) { var b = this.allActors, c = b.mH, e = c.mHash[(73856093 * a) & c.mMask]; if (-1 == e) a = -2147483648; else if (((c = c.mData), c[e] == a)) a = c[e + 1]; else { var f = -2147483648; for (e = c[e + 2]; -1 != e; ) { if (c[e] == a) { f = c[e + 1]; break; } e = c[e + 2]; } a = f; } return -2147483648 == a ? null : b.mVals[a]; }, getActorsOfType: function (a) { return null == a ? [] : null != this.actorsOfType.h[a.ID] ? this.actorsOfType.h[a.ID] : []; }, getRecycledActorsOfType: function (a) { return this.recycledActorsOfType.h[a.ID]; }, getLayer: function (a, b) { return 0 == a ? this.getLayerById(B.parseInt(b)) : this.getLayerByName(b); }, getLayerById: function (a, b) { null == b && (b = !0); if (-1 == a) return null; var c = k.engine.layers, e = c.mH, f = e.mHash[(73856093 * a) & e.mMask]; if (-1 == f) a = -2147483648; else if (((e = e.mData), e[f] == a)) a = e[f + 1]; else { var d = -2147483648; for (f = e[f + 2]; -1 != f; ) { if (e[f] == a) { d = e[f + 1]; break; } f = e[f + 2]; } a = d; } c = -2147483648 == a ? null : c.mVals[a]; null == c && b && (c = this.topLayer); return c; }, getLayerByName: function (a, b) { null == b && (b = !0); a = k.engine.layersByName.h[a]; null == a && b && (a = this.topLayer); return a; }, getLayerByOrder: function (a) { switch (a) { case 0: return this.topLayer; case 1: return this.middleLayer; case 2: return this.bottomLayer; default: return this.topLayer; } }, sendToBack: function (a) { a.isHUD || this.moveActorToLayer(a, this.bottomLayer); }, sendBackward: function (a) { if (!a.isHUD) for (var b = a.layer.order; this.layersToDraw.h.hasOwnProperty(--b); ) if (this.layersToDraw.h[b] instanceof Ec) { this.moveActorToLayer(a, this.layersToDraw.h[b]); break; } }, bringToFront: function (a) { a.isHUD || this.moveActorToLayer(a, this.topLayer); }, bringForward: function (a) { if (!a.isHUD) for (var b = a.layer.order; this.layersToDraw.h.hasOwnProperty(++b); ) if (this.layersToDraw.h[b] instanceof Ec) { this.moveActorToLayer(a, this.layersToDraw.h[b]); break; } }, getNumberOfActorsWithinLayer: function (a) { return a instanceof Ec ? x.__cast(a, Ec).actorContainer.get_numChildren() : 0; }, getNumberOfLayers: function () { return this.master.get_numChildren(); }, getOrderOfLayer: function (a) { return a.order; }, moveLayerToOrder: function (a, b) { 0 > b && (b = 0); b > this.master.get_numChildren() - 1 && (b = this.master.get_numChildren() - 1); a.order != b && (this.master.setChildIndex(a, b), this.refreshLayers()); }, getNextLayerID: function () { for (var a = -1, b = this.layers.iterator(); b.hasNext(); ) { var c = b.next(); a = Math.max(a, c.ID) | 0; } return a + 1; }, insertLayer: function (a, b) { this.master.addChildAt(a, b); a instanceof Wd ? this.backgroundLayers.push(x.__cast(a, Wd)) : a instanceof Ec && this.interactiveLayers.push(x.__cast(a, Ec)); this.layers.set(a.ID, a); this.layersByName.h[a.layerName] = a; this.refreshLayers(); }, removeLayer: function (a) { this.master.removeChild(a); a instanceof Wd ? A.remove(this.backgroundLayers, x.__cast(a, Wd)) : a instanceof Ec && A.remove(this.interactiveLayers, x.__cast(a, Ec)); this.layers.unset(a.ID); a = a.layerName; var b = this.layersByName; Object.prototype.hasOwnProperty.call(b.h, a) && delete b.h[a]; this.refreshLayers(); }, refreshLayers: function () { for (var a = !1, b = !1, c = 0, e = 0, f = this.master.get_numChildren(); e < f; ) { var d = e++, p = x.__cast(this.master.getChildAt(d), zg); this.layersToDraw.h[d] = p; p.order = d; p instanceof Ec && (a || ((a = !0), (this.bottomLayer = p)), b || c != Math.floor(this.interactiveLayers.length / 2) || ((b = !0), (this.middleLayer = p)), (this.topLayer = p), ++c); } }, getPhysicalWidth: function () { return this.physicalWidth; }, getPhysicalHeight: function () { return this.physicalHeight; }, enableGlobalSleeping: function () { this.world.m_allowSleep = !0; }, disableGlobalSleeping: function () { this.world.m_allowSleep = !1; }, getGroup: function (a, b) { return -1e3 == a && null != b ? ((a = this.groups), (b = b.getGroupID()), a.h[b]) : this.groups.h[a]; }, getGroupByName: function (a) { a = this.reverseGroups.h[a]; return null == a ? this.groups.h[3] : a; }, nextJointID: function () { for (var a = -1, b = this.joints.iterator(); b.hasNext(); ) { var c = b.next(); null != c && (a = Math.max(a, c.ID) | 0); } return a + 1; }, addJoint: function (a) { var b = this.nextJointID(); a.ID = b; this.joints.h[b] = a; }, getJoint: function (a) { return this.joints.h[a]; }, destroyJoint: function (a) { this.joints.remove(a.ID); this.world.destroyJoint(a); }, createStickJoint: function (a, b, c, e, f, d) { null == d && (d = 0); null == f && (f = 0); null == e && (e = !1); null == c && (c = -1); var g = a.getLocalCenter(), l = b.getLocalCenter(); 0 == a.getType() && ((g.x = a.getUserData().getPhysicsWidth() / 2), (g.y = a.getUserData().getPhysicsHeight() / 2)); 0 == b.getType() && ((l.x = b.getUserData().getPhysicsWidth() / 2), (l.y = b.getUserData().getPhysicsHeight() / 2)); g = a.getWorldPoint(g); l = b.getWorldPoint(l); var v = new Mh(); v.initialize(a, b, g, l); v.collideConnected = e; v.dampingRatio = f; v.frequencyHz = d; a = this.world.createJoint(v); -1 == c ? this.addJoint(a) : ((this.joints.h[c] = a), (a.ID = c)); return x.__cast(a, si); }, createCustomStickJoint: function (a, b, c, e, f, d) { b = new P(b, c); f = new P(f, d); b.x = k.toPhysicalUnits(b.x); b.y = k.toPhysicalUnits(b.y); f.x = k.toPhysicalUnits(f.x); f.y = k.toPhysicalUnits(f.y); b = a.getWorldPoint(b); f = e.getWorldPoint(f); d = new Mh(); d.initialize(a, e, b, f); a = this.world.createJoint(d); this.addJoint(a); return x.__cast(a, si); }, createHingeJoint: function (a, b, c, e, f, d, p, l, v, n, h) { null == h && (h = 0); null == n && (n = 0); null == v && (v = 0); null == l && (l = 0); null == p && (p = !1); null == d && (d = !1); null == f && (f = !1); null == e && (e = -1); null == b && (b = this.world.m_groundBody); null == c && (c = a.getLocalCenter()); var g = new Nh(); g.bodyA = a; g.bodyB = b; c.x = k.toPhysicalUnits(c.x); c.y = k.toPhysicalUnits(c.y); g.localAnchorA = c; g.localAnchorB = b.getLocalPoint(a.getWorldPoint(c)); g.collideConnected = f; g.enableLimit = d; g.enableMotor = p; g.lowerAngle = l; g.upperAngle = v; g.maxMotorTorque = n; g.motorSpeed = h; a = this.world.createJoint(g); -1 == e ? this.addJoint(a) : ((this.joints.h[e] = a), (a.ID = e)); return x.__cast(a, bg); }, createSlidingJoint: function (a, b, c, e, f, d, p, l, v, n, h) { null == h && (h = 0); null == n && (n = 0); null == v && (v = 0); null == l && (l = 0); null == p && (p = !1); null == d && (d = !1); null == f && (f = !1); null == e && (e = -1); null == b && (b = this.world.m_groundBody); null == c && (c = new P(1, 0)); c.normalize(); var g = a.getWorldCenter(), t = b.getWorldCenter(); 0 == a.getType() && null != a.getUserData() && ((g.x = a.getUserData().getPhysicsWidth() / 2), (g.y = a.getUserData().getPhysicsHeight() / 2), (g = a.getWorldPoint(g))); 0 == b.getType() && null != b.getUserData() && ((t.x = b.getUserData().getPhysicsWidth() / 2), (t.y = b.getUserData().getPhysicsHeight() / 2), b.getWorldPoint(t)); t = new Oh(); t.initialize(a, b, g, c); t.collideConnected = f; t.enableLimit = d; t.enableMotor = p; t.lowerTranslation = k.toPhysicalUnits(l); t.upperTranslation = k.toPhysicalUnits(v); t.maxMotorForce = n; t.motorSpeed = k.toPhysicalUnits(h); a = this.world.createJoint(t); -1 == e ? this.addJoint(a) : ((this.joints.h[e] = a), (a.ID = e)); return x.__cast(a, yj); }, createRegion: function (a, b, c, e) { null == e && (e = !1); var f = []; f.push(c); c = new pd(this, a, b, f); e && c.setXY(a + c.regionWidth / 2, b + c.regionHeight / 2); this.addRegion(c); return c; }, createBoxRegion: function (a, b, c, e) { if (k.NO_PHYSICS) return (a = new pd(this, a, b, [], new fa(0, 0, c, e))), this.addRegion(a), a; c = k.toPhysicalUnits(c); e = k.toPhysicalUnits(e); var f = new Db(); f.setAsBox(c / 2, e / 2); return this.createRegion(a, b, f, !0); }, createCircularRegion: function (a, b, c) { if (k.NO_PHYSICS) return (a = new pd(this, a, b, [], new fa(0, 0, 2 * c, 2 * c))), this.addRegion(a), a; c = k.toPhysicalUnits(c); var e = new Lc(); e.m_radius = c; return this.createRegion(a, b, e, !0); }, addRegion: function (a) { -1 == a.ID && (a.ID = this.nextRegionID()); this.regions.set(a.ID, a); k.NO_PHYSICS && this.groups.h[-2].addChild(a); }, removeRegion: function (a) { a = this.getRegion(a); this.regions.unset(a.ID); a.destroy(); k.NO_PHYSICS && this.groups.h[-2].removeChild(a); }, getRegion: function (a) { var b = this.regions, c = b.mH, e = c.mHash[(73856093 * a) & c.mMask]; if (-1 == e) a = -2147483648; else if (((c = c.mData), c[e] == a)) a = c[e + 1]; else { var f = -2147483648; for (e = c[e + 2]; -1 != e; ) { if (c[e] == a) { f = c[e + 1]; break; } e = c[e + 2]; } a = f; } return -2147483648 == a ? null : b.mVals[a]; }, getRegions: function () { return this.regions; }, nextRegionID: function () { for (var a = -1, b = this.regions.iterator(); b.hasNext(); ) { var c = b.next(); null != c && (a = Math.max(a, c.ID) | 0); } return a + 1; }, isInRegion: function (a, b) { if (null != b) { var c = this.regions; var e = b.getID(), f = c.mH, d = f.mHash[(73856093 * e) & f.mMask]; if (-1 == d) e = -2147483648; else if (((f = f.mData), f[d] == e)) e = f[d + 1]; else { var p = -2147483648; for (d = f[d + 2]; -1 != d; ) { if (f[d] == e) { p = f[d + 1]; break; } d = f[d + 2]; } e = p; } c = null != (-2147483648 == e ? null : c.mVals[e]); } else c = !1; return c ? b.containsActor(a) : !1; }, createTerrainRegion: function (a, b, c, e, f) { null == f && (f = 1); null == e && (e = !1); var d = []; d.push(c); c = new Pg(this, a, b, d, f); e && c.setXY(a + c.regionWidth / 2, b + c.regionHeight / 2); this.addTerrainRegion(c); return c; }, createBoxTerrainRegion: function (a, b, c, e, f) { null == f && (f = 1); c = k.toPhysicalUnits(c); e = k.toPhysicalUnits(e); var d = new Db(); d.setAsBox(c / 2, e / 2); return this.createTerrainRegion(a, b, d, !0, f); }, createCircularTerrainRegion: function (a, b, c, e) { null == e && (e = 1); c = k.toPhysicalUnits(c); var f = new Lc(); f.m_radius = c; return this.createTerrainRegion(a, b, f, !0, e); }, addTerrainRegion: function (a) { -1 == a.ID && (a.ID = this.nextTerrainRegionID()); this.terrainRegions.h[a.ID] = a; }, removeTerrainRegion: function (a) { var b = this.getTerrainRegion(a); this.terrainRegions.remove(a); b.destroy(); }, getTerrainRegion: function (a) { return this.terrainRegions.h[a]; }, getTerrainRegions: function () { return this.terrainRegions; }, nextTerrainRegionID: function () { for (var a = -1, b = this.terrainRegions.iterator(); b.hasNext(); ) { var c = b.next(); null != c && (a = Math.max(a, c.ID) | 0); } return a + 1; }, setGameAttribute: function (a, b) { this.gameAttributes.h[a] = b; }, getGameAttribute: function (a) { return this.gameAttributes.h[a]; }, restoreGameAttributes: function () { var a = lc.get().readGameMbs(); a = te.readMap(a.getGameAttributes()); this.gameAttributes.h = Object.create(null); for (var b = Object.keys(a.h), c = b.length, e = 0; e < c; ) { var f = b[e++]; this.gameAttributes.h[f] = a.h[f]; } }, setOffscreenTolerance: function (a, b, c, e) { k.paddingTop = a; k.paddingLeft = b; k.paddingBottom = c; k.paddingRight = e; }, setScrollFactor: function (a, b, c) { this.setLayerScrollFactor(this.getLayerById(a), b, c); }, setLayerScrollFactor: function (a, b, c) { null == c && (c = b); a.scrollFactorX = b; a.scrollFactorY = c; }, __class__: k }; var Qn = function (a, b) { this.inputControlMap = a; this.getInputs = b; }; h['com.stencyl.InputMethod_String'] = Qn; Qn.__name__ = 'com.stencyl.InputMethod_String'; Qn.prototype = { inputControlMap: null, getInputs: null, mapInputToControl: function (a, b) { this.inputControlMap.exists(a) || this.inputControlMap.set(a, []); for (var c = this.inputControlMap.get(a), e = 0; e < c.length; ) { var f = c[e]; ++e; f != b && (A.remove(this.getInputs(f), a), D.controlStateUpdated(f)); } -1 == this.getInputs(b).indexOf(a) && (this.getInputs(b).push(a), c.push(b), D.controlStateUpdated(b)); }, unmapInput: function (a) { var b = this.inputControlMap.get(a); if (null != b) for (var c = 0; c < b.length; ) { var e = b[c]; ++c; A.remove(this.getInputs(e), a); D.controlStateUpdated(e); } this.inputControlMap.remove(a); }, addInputToControl: function (a, b) { -1 == this.getInputs(b).indexOf(a) && (this.getInputs(b).push(a), D.controlStateUpdated(b), this.inputControlMap.exists(a) || this.inputControlMap.set(a, []), this.inputControlMap.get(a).push(b)); }, removeInputFromControl: function (a, b) { if (-1 != this.getInputs(b).indexOf(a)) { A.remove(this.getInputs(b), a); D.controlStateUpdated(b); var c = this.inputControlMap.get(a); A.remove(c, b); 0 == c.length && this.inputControlMap.remove(a); } }, getInputsForControl: function (a) { return null != a ? this.getInputs(a) : null; }, removeAllInputsFromControl: function (a) { for (var b = this.getInputs(a); 0 < b.length; ) { var c = b.pop(), e = this.inputControlMap.get(c); A.remove(e, a); 0 == e.length && this.inputControlMap.remove(c); } D.controlStateUpdated(a); }, __class__: Qn }; var Rn = function (a, b) { this.inputControlMap = a; this.getInputs = b; }; h['com.stencyl.InputMethod_Int'] = Rn; Rn.__name__ = 'com.stencyl.InputMethod_Int'; Rn.prototype = { inputControlMap: null, getInputs: null, mapInputToControl: function (a, b) { this.inputControlMap.exists(a) || this.inputControlMap.set(a, []); for (var c = this.inputControlMap.get(a), e = 0; e < c.length; ) { var f = c[e]; ++e; f != b && (A.remove(this.getInputs(f), a), D.controlStateUpdated(f)); } -1 == this.getInputs(b).indexOf(a) && (this.getInputs(b).push(a), c.push(b), D.controlStateUpdated(b)); }, unmapInput: function (a) { var b = this.inputControlMap.get(a); if (null != b) for (var c = 0; c < b.length; ) { var e = b[c]; ++c; A.remove(this.getInputs(e), a); D.controlStateUpdated(e); } this.inputControlMap.remove(a); }, addInputToControl: function (a, b) { -1 == this.getInputs(b).indexOf(a) && (this.getInputs(b).push(a), D.controlStateUpdated(b), this.inputControlMap.exists(a) || this.inputControlMap.set(a, []), this.inputControlMap.get(a).push(b)); }, removeInputFromControl: function (a, b) { if (-1 != this.getInputs(b).indexOf(a)) { A.remove(this.getInputs(b), a); D.controlStateUpdated(b); var c = this.inputControlMap.get(a); A.remove(c, b); 0 == c.length && this.inputControlMap.remove(a); } }, getInputsForControl: function (a) { return null != a ? this.getInputs(a) : null; }, removeAllInputsFromControl: function (a) { for (var b = this.getInputs(a); 0 < b.length; ) { var c = b.pop(), e = this.inputControlMap.get(c); A.remove(e, a); 0 == e.length && this.inputControlMap.remove(c); } D.controlStateUpdated(a); }, __class__: Rn }; var D = function () {}; h['com.stencyl.Input'] = D; D.__name__ = 'com.stencyl.Input'; D.resetStatics = function () { k.stage.removeEventListener('keyDown', D.onKeyDown); k.stage.removeEventListener('keyUp', D.onKeyUp); k.stage.removeEventListener('mouseDown', D.onMouseDown); k.stage.removeEventListener('mouseUp', D.onMouseUp); k.stage.removeEventListener('mouseWheel', D.onMouseWheel); k.stage.removeEventListener('rightMouseDown', D.onRightMouseDown); k.stage.removeEventListener('rightMouseUp', D.onRightMouseUp); k.stage.removeEventListener('middleMouseDown', D.onMiddleMouseDown); k.stage.removeEventListener('middleMouseUp', D.onMiddleMouseUp); ue.get_supportsTouchEvents() && (k.stage.removeEventListener('touchBegin', D.onTouchBegin), k.stage.removeEventListener('touchMove', D.onTouchMove), k.stage.removeEventListener('touchEnd', D.onTouchEnd)); D._roxAgent.detach(); k.engine.root.removeEventListener('rox_gesture_swipe', D.onSwipe); D.mouseX = 0; D.mouseY = 0; D.mouseDown = D.mousePressed = D.mouseReleased = D.mouseWheel = !1; D.rightMouseDown = D.rightMousePressed = D.rightMouseReleased = !1; D.middleMouseDown = D.middleMousePressed = D.middleMouseReleased = !1; D.mouseWheelDelta = 0; D.accelX = D.accelY = D.accelZ = 0; D.multiTouchPoints = null; D.numTouches = 0; D._swipeDirection = 0; D.swipedUp = D.swipedDown = D.swipedRight = D.swipedLeft = !1; D._roxAgent = null; D._enabled = !1; D._key = []; D._joySensitivity = 0.12; D._joyState = new Za(); D._joyInput.inputControlMap = new qa(); D._keyInput.inputControlMap = new Za(); D._controlMap = new qa(); D._controlsToReset = []; }; D.define = function (a, b) { if (null == D._controlMap.h[a]) { var c = D._controlMap, e = new $k(a); c.h[a] = e; } else D.unmapControl(a); for (c = 0; c < b.length; ) (e = b[c]), ++c, D.addKeyToControl(e, a); }; D.mapKey = function (a, b) { D._keyInput.mapInputToControl(a, D._controlMap.h[b]); }; D.unmapKey = function (a) { D._keyInput.unmapInput(a); }; D.addKeyToControl = function (a, b) { D._keyInput.addInputToControl(a, D._controlMap.h[b]); }; D.removeKeyFromControl = function (a, b) { D._keyInput.removeInputFromControl(a, D._controlMap.h[b]); }; D.getKeys = function (a) { return D._keyInput.getInputsForControl(D._controlMap.h[a]); }; D.mapJoystickButton = function (a, b) { D._joyInput.mapInputToControl( D.multipleGamepadsEnabled || -1 == a.indexOf(', ') ? a : a.substring(a.indexOf(', ') + 2), D._controlMap.h[b] ); }; D.unmapJoystickButton = function (a) { D._joyInput.unmapInput( D.multipleGamepadsEnabled || -1 == a.indexOf(', ') ? a : a.substring(a.indexOf(', ') + 2) ); }; D.addJoystickButtonToControl = function (a, b) { D._joyInput.addInputToControl( D.multipleGamepadsEnabled || -1 == a.indexOf(', ') ? a : a.substring(a.indexOf(', ') + 2), D._controlMap.h[b] ); }; D.removeJoystickButtonFromControl = function (a, b) { D._joyInput.removeInputFromControl( D.multipleGamepadsEnabled || -1 == a.indexOf(', ') ? a : a.substring(a.indexOf(', ') + 2), D._controlMap.h[b] ); }; D.getJoystickButtons = function (a) { return D._joyInput.getInputsForControl(D._controlMap.h[a]); }; D.unmapControl = function (a) { a = D._controlMap.h[a]; D._keyInput.removeAllInputsFromControl(a); D._joyInput.removeAllInputsFromControl(a); }; D.unmapKeyboardFromControl = function (a) { D._keyInput.removeAllInputsFromControl(D._controlMap.h[a]); }; D.unmapJoystickFromControl = function (a) { D._joyInput.removeAllInputsFromControl(D._controlMap.h[a]); }; D.setJoySensitivity = function (a) { D._joySensitivity = a; }; D.saveJoystickConfig = function (a) { for ( var b = new qa(), c = new qa(), e = Object.keys(D._joyInput.inputControlMap.h), f = e.length, d = 0; d < f; ) { for ( var p = e[d++], l = [], v = 0, n = D._joyInput.inputControlMap.h[p]; v < n.length; ) { var k = n[v]; ++v; l.push(k.name); } c.h[p] = l; } b.h._joyControlMap = c; b.h._joySensitivity = D._joySensitivity; b.h._format = 2; X.saveMap(b, '_jc-' + a); }; D.loadJoystickConfig = function (a) { D.clearJoystickConfig(); var b = new qa(); X.loadMap(b, '_jc-' + a, function (a) { if (0 < X.mapCount(b)) { a = b.h._format; if (null == a || 1 == a) { a = b.h._joyControlMap; var c = a.h; c = Object.keys(c); for (var f = c.length, d = 0; d < f; ) { var p = c[d++], l = a.h[p]; l = D._controlMap.h[l]; D.multipleGamepadsEnabled || -1 == p.indexOf(', ') || (p = p.substring(p.indexOf(', ') + 2)); D._joyInput.inputControlMap.h[p] = [l]; l.buttons.push(p); } } else if (2 == a) for ( a = b.h._joyControlMap, c = a.h, c = Object.keys(c), f = c.length, d = 0; d < f; ) { p = c[d++]; for (var v = a.h[p], n = [], k = 0; k < v.length; ) (l = v[k]), ++k, n.push(D._controlMap.h[l]); v = n; D.multipleGamepadsEnabled || -1 == p.indexOf(', ') || (p = p.substring(p.indexOf(', ') + 2)); D._joyInput.inputControlMap.h[p] = v; for (n = 0; n < v.length; ) (l = v[n]), ++n, l.buttons.push(p); } D._joySensitivity = b.h._joySensitivity; } }); }; D.clearJoystickConfig = function () { for (var a = D._controlMap.h, b = Object.keys(a), c = b.length, e = 0; e < c; ) a[b[e++]].buttons = []; D._joyInput.inputControlMap = new qa(); D._joySensitivity = 0.12; }; D.loadInputConfig = function () { for (var a = Object.keys(aa.keys.h), b = a.length, c = 0; c < b; ) { for (var e = a[c++], f = aa.keys.h[e], d = [], p = 0; p < f.length; ) { var l = f[p]; ++p; d.push(Na.keyFromName(l)); } f = d; d = new $k(e); D._controlMap.h[e] = d; for (e = 0; e < f.length; ) (p = f[e]), ++e, D._keyInput.addInputToControl(p, d); } }; D.check = function (a) { a = D._controlMap.h[a]; return null != a ? a.down : !1; }; D.pressed = function (a) { a = D._controlMap.h[a]; return null != a ? a.pressed : !1; }; D.released = function (a) { a = D._controlMap.h[a]; return null != a ? a.released : !1; }; D.getButtonPressure = function (a) { a = D._controlMap.h[a]; return null != a ? a.pressure : 0; }; D.simulateKeyPress = function (a) { D.controlPressed(D._controlMap.h[a], 1); }; D.simulateKeyRelease = function (a) { D.controlReleased(D._controlMap.h[a]); }; D.enableJoystick = function () {}; D.enable = function () { if (!D._enabled && null != k.stage) { k.stage.addEventListener('keyDown', D.onKeyDown, !1, 2); k.stage.addEventListener('keyUp', D.onKeyUp, !1, 2); k.stage.addEventListener('mouseDown', D.onMouseDown, !1, 2); k.stage.addEventListener('mouseUp', D.onMouseUp, !1, 2); k.stage.addEventListener('mouseWheel', D.onMouseWheel, !1, 2); k.stage.addEventListener('rightMouseDown', D.onRightMouseDown, !1, 2); k.stage.addEventListener('rightMouseUp', D.onRightMouseUp, !1, 2); k.stage.addEventListener('middleMouseDown', D.onMiddleMouseDown, !1, 2); k.stage.addEventListener('middleMouseUp', D.onMiddleMouseUp, !1, 2); ue.get_supportsTouchEvents() && ((D.multiTouchPoints = new qa()), (ue.inputMode = 2), k.stage.addEventListener('touchBegin', D.onTouchBegin), k.stage.addEventListener('touchMove', D.onTouchMove), k.stage.addEventListener('touchEnd', D.onTouchEnd)); zc.onConnect.add(D.onJoystickConnected); for (var a = zc.devices.iterator(); a.hasNext(); ) { var b = a.next(); D.onJoystickConnected(b); } D._roxAgent = new bb(k.engine.root, 2); k.engine.root.addEventListener('rox_gesture_swipe', D.onSwipe); D._swipeDirection = -1; D.swipedLeft = !1; D.swipedRight = !1; D.swipedUp = !1; D.swipedDown = !1; D.mouseX = 0; D.mouseY = 0; D.accelX = 0; D.accelY = 0; D.accelZ = 0; D.numTouches = 0; D._enabled = !0; } }; D.update = function () { D.swipedLeft = !1; D.swipedRight = !1; D.swipedUp = !1; D.swipedDown = !1; if (-1 < D._swipeDirection) { switch (D._swipeDirection) { case 0: D.swipedLeft = !0; break; case 1: D.swipedRight = !0; break; case 2: D.swipedUp = !0; break; case 3: D.swipedDown = !0; } if (0 < k.engine.whenSwiped.length) for ( k.engine.whenSwiped._dispatchIndex = 0; k.engine.whenSwiped._dispatchIndex < k.engine.whenSwiped.length; ) { try { k.engine.whenSwiped.listeners[k.engine.whenSwiped._dispatchIndex](); } catch (c) { if (((la.lastError = c), 'string' != typeof M.caught(c).unwrap())) throw c; } ++k.engine.whenSwiped._dispatchIndex; } D._swipeDirection = -1; } D.mouseX = (k.stage.get_mouseX() - k.screenOffsetX) / k.screenScaleX; D.mouseY = (k.stage.get_mouseY() - k.screenOffsetY) / k.screenScaleY; for (var a = D._controlsToReset.length; 0 <= --a; ) { var b = D._controlsToReset.pop(); b.pressed = !1; b.released = !1; } D.mousePressed && (D.mousePressed = !1); D.mouseReleased && (D.mouseReleased = !1); D.rightMousePressed && (D.rightMousePressed = !1); D.rightMouseReleased && (D.rightMouseReleased = !1); D.middleMousePressed && (D.middleMousePressed = !1); D.middleMouseReleased && (D.middleMouseReleased = !1); D.mouseWheelDelta = 0; }; D.onSwipe = function (a) { a = x.__cast(a.extra, na); Math.abs(a.x) <= Math.abs(a.y) ? (D._swipeDirection = 0 >= a.y ? 2 : 3) : Math.abs(a.x) > Math.abs(a.y) && (D._swipeDirection = 0 >= a.x ? 0 : 1); }; D.controlsPressed = function (a, b) { if (null != a) for (var c = 0; c < a.length; ) { var e = a[c]; ++c; D.controlPressed(e, b); } }; D.controlsReleased = function (a) { if (null != a) for (var b = 0; b < a.length; ) { var c = a[b]; ++b; D.controlReleased(c); } }; D.controlPressed = function (a, b) { if (null != a) if (a.down) a.pressure = b; else if ( ((a.down = !0), (a.pressed = !0), (a.pressure = b), D._controlsToReset.push(a), k.engine.keyPollOccurred && ((a = k.engine.whenKeyPressedEvents.map.get(a.name)), null != a && 0 < a.length)) ) for (a._dispatchIndex = 0; a._dispatchIndex < a.length; ) { try { a.listeners[a._dispatchIndex](!0, !1); } catch (c) { if (((la.lastError = c), 'string' != typeof M.caught(c).unwrap())) throw c; } ++a._dispatchIndex; } }; D.controlReleased = function (a) { if ( null != a && a.down && ((a.down = !1), (a.released = !0), (a.pressure = 0), D._controlsToReset.push(a), k.engine.keyPollOccurred && ((a = k.engine.whenKeyPressedEvents.map.get(a.name)), null != a && 0 < a.length)) ) for (a._dispatchIndex = 0; a._dispatchIndex < a.length; ) { try { a.listeners[a._dispatchIndex](!1, !0); } catch (b) { if (((la.lastError = b), 'string' != typeof M.caught(b).unwrap())) throw b; } ++a._dispatchIndex; } }; D.controlStateUpdated = function (a) { for (var b = 0, c = 0, e = a.keys; c < e.length; ) { var f = e[c]; ++c; D._key[f] && (b = 1); } c = 0; for (e = a.buttons; c < e.length; ) { f = e[c]; ++c; f = pe.fromID(f); var d = f.a[0], p = f.a[1], l = f.a[2]; if (D._joyState.h.hasOwnProperty(d)) switch (((d = D._joyState.h[d]), p)) { case 0: d.axisState[l] == f.a[3] && (b = Math.max(b, Math.abs(d.axisPressure[l]))); break; case 1: d.hatState[l] == f.a[3] && (b = 1); break; case 2: d.buttonState[l] && (b = 1); } } a.pressure = b; 0 < b && !a.down ? D.controlPressed(a, b) : 0 == b && a.down && D.controlReleased(a); }; D.onKeyDown = function (a) { var b = a.keyCode; if (!(7e3 < b)) { if (!D._key[b] && ((D._key[b] = !0), (b = D._keyInput.inputControlMap.h[b]), null != b)) for (var c = 0; c < b.length; ) { var e = b[c]; ++c; D.controlPressed(e, 1); } if (0 < k.engine.whenAnyKeyPressed.length) for ( k.engine.whenAnyKeyPressed._dispatchIndex = 0; k.engine.whenAnyKeyPressed._dispatchIndex < k.engine.whenAnyKeyPressed.length; ) { try { k.engine.whenAnyKeyPressed.listeners[k.engine.whenAnyKeyPressed._dispatchIndex](a); } catch (f) { if (((la.lastError = f), 'string' != typeof M.caught(f).unwrap())) throw f; } ++k.engine.whenAnyKeyPressed._dispatchIndex; } } }; D.onKeyUp = function (a) { var b = a.keyCode; if (!(7e3 < b)) { if (D._key[b] && ((D._key[b] = !1), (b = D._keyInput.inputControlMap.h[b]), null != b)) for (var c = 0; c < b.length; ) { var e = b[c]; ++c; D.controlReleased(e); } if (0 < k.engine.whenAnyKeyReleased.length) for ( k.engine.whenAnyKeyReleased._dispatchIndex = 0; k.engine.whenAnyKeyReleased._dispatchIndex < k.engine.whenAnyKeyReleased.length; ) { try { k.engine.whenAnyKeyReleased.listeners[k.engine.whenAnyKeyReleased._dispatchIndex]( a ); } catch (f) { if (((la.lastError = f), 'string' != typeof M.caught(f).unwrap())) throw f; } ++k.engine.whenAnyKeyReleased._dispatchIndex; } } }; D.onMouseDown = function (a) { D.mouseX = (k.stage.get_mouseX() - k.screenOffsetX) / k.screenScaleX; D.mouseY = (k.stage.get_mouseY() - k.screenOffsetY) / k.screenScaleY; D.mouseDown || ((D.mouseDown = !0), (D.mousePressed = !0)); }; D.onMouseUp = function (a) { D.mouseX = (k.stage.get_mouseX() - k.screenOffsetX) / k.screenScaleX; D.mouseY = (k.stage.get_mouseY() - k.screenOffsetY) / k.screenScaleY; D.mouseDown = !1; D.mouseReleased = !0; }; D.onRightMouseDown = function (a) { D.rightMouseDown || ((D.rightMouseDown = !0), (D.rightMousePressed = !0)); }; D.onRightMouseUp = function (a) { D.rightMouseDown = !1; D.rightMouseReleased = !0; }; D.onMiddleMouseDown = function (a) { D.middleMouseDown || ((D.middleMouseDown = !0), (D.middleMousePressed = !0)); }; D.onMiddleMouseUp = function (a) { D.middleMouseDown = !1; D.middleMouseReleased = !0; }; D.onMouseWheel = function (a) { D.mouseWheel = !0; D.mouseWheelDelta = a.delta; }; D.onJoystickConnected = function (a) { var b = new Sn(a); D._joyState.h[a.id] = b; a.onAxisMove.add(function (a, e) { D.onJoyAxisMove(b, a, e); }); a.onButtonDown.add(function (a) { D.onJoyButtonDown(b, a); }); a.onButtonUp.add(function (a) { D.onJoyButtonUp(b, a); }); a.onHatMove.add(function (a, e) { D.onJoyHatMove(b, a, e); }); a.onTrackballMove.add(function (a, e, f) { D.onJoyBallMove(b, a, e, f); }); a.onDisconnect.add(function () { D._joyState.remove(a.id); }); }; D.onJoyAxisMove = function (a, b, c) { var e = D.multipleGamepadsEnabled ? a.joystick.id + ', ' : '', f = a.axisState; var d = c < -D._joySensitivity ? -1 : c > D._joySensitivity ? 1 : 0; var p = f[b]; if (d != p) -1 == p ? D.joyRelease(e + '-axis ' + b) : 1 == p && D.joyRelease(e + '+axis ' + b), -1 == d ? D.joyPress(e + '-axis ' + b, Math.abs(c)) : 1 == d && D.joyPress(e + '+axis ' + b, Math.abs(c)); else if ( 0 != d && ((p = null), -1 == d ? (p = D._joyInput.inputControlMap.h[e + '-axis ' + b]) : 1 == d && (p = D._joyInput.inputControlMap.h[e + '+axis ' + b]), null != p) ) for (e = 0; e < p.length; ) { var l = p[e]; ++e; l.pressure = Math.abs(c); } f[b] = d; a.axisPressure[b] = c; }; D.onJoyBallMove = function (a, b, c, e) {}; D.onJoyHatMove = function (a, b, c) { b = D.multipleGamepadsEnabled ? a.joystick.id + ', ' : ''; var e = a.hatState[0], f = a.hatState[1], d = eg.get_left(c) ? -1 : eg.get_right(c) ? 1 : 0; c = eg.get_up(c) ? -1 : eg.get_down(c) ? 1 : 0; d != e && (-1 == e ? D.joyRelease(b + 'left hat') : 1 == e && D.joyRelease(b + 'right hat'), -1 == d ? D.joyPress(b + 'left hat', 1) : 1 == d && D.joyPress(b + 'right hat', 1)); c != f && (-1 == f ? D.joyRelease(b + 'up hat') : 1 == f && D.joyRelease(b + 'down hat'), -1 == c ? D.joyPress(b + 'up hat', 1) : 1 == c && D.joyPress(b + 'down hat', 1)); a.hatState = [d, c]; }; D.onJoyButtonDown = function (a, b) { var c = D.multipleGamepadsEnabled ? a.joystick.id + ', ' : ''; a.buttonState[b] = !0; D.joyPress(c + b, 1); }; D.onJoyButtonUp = function (a, b) { var c = D.multipleGamepadsEnabled ? a.joystick.id + ', ' : ''; a.buttonState[b] = !1; D.joyRelease(c + b); }; D.joyPress = function (a, b) { var c = D._joyInput.inputControlMap.h[a]; if (null != c) for (var e = 0; e < c.length; ) { var f = c[e]; ++e; D.controlPressed(f, b); } if (0 < k.engine.whenAnyGamepadPressed.length) for ( k.engine.whenAnyGamepadPressed._dispatchIndex = 0; k.engine.whenAnyGamepadPressed._dispatchIndex < k.engine.whenAnyGamepadPressed.length; ) { try { k.engine.whenAnyGamepadPressed.listeners[ k.engine.whenAnyGamepadPressed._dispatchIndex ](a); } catch (g) { if (((la.lastError = g), 'string' != typeof M.caught(g).unwrap())) throw g; } ++k.engine.whenAnyGamepadPressed._dispatchIndex; } }; D.joyRelease = function (a) { var b = D._joyInput.inputControlMap.h[a]; if (null != b) for (var c = 0; c < b.length; ) { var e = b[c]; ++c; D.controlReleased(e); } if (0 < k.engine.whenAnyGamepadReleased.length) for ( k.engine.whenAnyGamepadReleased._dispatchIndex = 0; k.engine.whenAnyGamepadReleased._dispatchIndex < k.engine.whenAnyGamepadReleased.length; ) { try { k.engine.whenAnyGamepadReleased.listeners[ k.engine.whenAnyGamepadReleased._dispatchIndex ](a); } catch (f) { if (((la.lastError = f), 'string' != typeof M.caught(f).unwrap())) throw f; } ++k.engine.whenAnyGamepadReleased._dispatchIndex; } }; D.onTouchBegin = function (a) { if (0 < k.engine.whenMTStarted.length) for ( k.engine.whenMTStarted._dispatchIndex = 0; k.engine.whenMTStarted._dispatchIndex < k.engine.whenMTStarted.length; ) { try { k.engine.whenMTStarted.listeners[k.engine.whenMTStarted._dispatchIndex](a); } catch (b) { if (((la.lastError = b), 'string' != typeof M.caught(b).unwrap())) throw b; } ++k.engine.whenMTStarted._dispatchIndex; } D.multiTouchPoints.h[null == a.touchPointID ? 'null' : '' + a.touchPointID] = a; D.numTouches++; }; D.onTouchMove = function (a) { if (0 < k.engine.whenMTDragged.length) for ( k.engine.whenMTDragged._dispatchIndex = 0; k.engine.whenMTDragged._dispatchIndex < k.engine.whenMTDragged.length; ) { try { k.engine.whenMTDragged.listeners[k.engine.whenMTDragged._dispatchIndex](a); } catch (b) { if (((la.lastError = b), 'string' != typeof M.caught(b).unwrap())) throw b; } ++k.engine.whenMTDragged._dispatchIndex; } D.multiTouchPoints.h[null == a.touchPointID ? 'null' : '' + a.touchPointID] = a; }; D.onTouchEnd = function (a) { if (0 < k.engine.whenMTEnded.length) for ( k.engine.whenMTEnded._dispatchIndex = 0; k.engine.whenMTEnded._dispatchIndex < k.engine.whenMTEnded.length; ) { try { k.engine.whenMTEnded.listeners[k.engine.whenMTEnded._dispatchIndex](a); } catch (c) { if (((la.lastError = c), 'string' != typeof M.caught(c).unwrap())) throw c; } ++k.engine.whenMTEnded._dispatchIndex; } a = null == a.touchPointID ? 'null' : '' + a.touchPointID; var b = D.multiTouchPoints; Object.prototype.hasOwnProperty.call(b.h, a) && delete b.h[a]; D.numTouches--; }; var $k = function (a) { this.pressure = 0; this.name = a; this.keys = []; this.buttons = []; }; h['com.stencyl.Control'] = $k; $k.__name__ = 'com.stencyl.Control'; $k.prototype = { name: null, keys: null, buttons: null, pressed: null, released: null, down: null, pressure: null, __class__: $k }; var dw = function (a, b) { this.inputControlMap = a; this.getInputs = b; }; h['com.stencyl.InputMethod'] = dw; dw.__name__ = 'com.stencyl.InputMethod'; dw.prototype = { inputControlMap: null, getInputs: null, mapInputToControl: function (a, b) { this.inputControlMap.exists(a) || this.inputControlMap.set(a, []); for (var c = this.inputControlMap.get(a), e = 0; e < c.length; ) { var f = c[e]; ++e; f != b && (A.remove(this.getInputs(f), a), D.controlStateUpdated(f)); } -1 == this.getInputs(b).indexOf(a) && (this.getInputs(b).push(a), c.push(b), D.controlStateUpdated(b)); }, unmapInput: function (a) { var b = this.inputControlMap.get(a); if (null != b) for (var c = 0; c < b.length; ) { var e = b[c]; ++c; A.remove(this.getInputs(e), a); D.controlStateUpdated(e); } this.inputControlMap.remove(a); }, addInputToControl: function (a, b) { -1 == this.getInputs(b).indexOf(a) && (this.getInputs(b).push(a), D.controlStateUpdated(b), this.inputControlMap.exists(a) || this.inputControlMap.set(a, []), this.inputControlMap.get(a).push(b)); }, removeInputFromControl: function (a, b) { if (-1 != this.getInputs(b).indexOf(a)) { A.remove(this.getInputs(b), a); D.controlStateUpdated(b); var c = this.inputControlMap.get(a); A.remove(c, b); 0 == c.length && this.inputControlMap.remove(a); } }, getInputsForControl: function (a) { return null != a ? this.getInputs(a) : null; }, removeAllInputsFromControl: function (a) { for (var b = this.getInputs(a); 0 < b.length; ) { var c = b.pop(), e = this.inputControlMap.get(c); A.remove(e, a); 0 == e.length && this.inputControlMap.remove(c); } D.controlStateUpdated(a); }, __class__: dw }; var Sn = function (a) { this.joystick = a; this.hatState = [0, 0]; var b = [], c = 0, e = zc.__getDeviceData(); for (e = e[a.id].axes.length; c < e; ) c++, b.push(0); this.axisState = b; b = []; c = 0; e = zc.__getDeviceData(); for (e = e[a.id].axes.length; c < e; ) c++, b.push(0); this.axisPressure = b; this.buttonState = []; }; h['com.stencyl.JoystickState'] = Sn; Sn.__name__ = 'com.stencyl.JoystickState'; Sn.prototype = { joystick: null, hatState: null, axisState: null, axisPressure: null, buttonState: null, __class__: Sn }; var pe = function () { this.id = ''; this.a = []; }; h['com.stencyl.JoystickButton'] = pe; pe.__name__ = 'com.stencyl.JoystickButton'; pe.normalize = function (a) { return D.multipleGamepadsEnabled || -1 == a.indexOf(', ') ? a : a.substring(a.indexOf(', ') + 2); }; pe.fromID = function (a) { if (Object.prototype.hasOwnProperty.call(pe.cacheFromID.h, a)) return pe.cacheFromID.h[a]; var b = new pe(); b.id = a; var c = 0; D.multipleGamepadsEnabled && ((c = B.parseInt(A.substr(a, 0, a.indexOf(',')))), (a = A.substr(a, a.indexOf(',') + 2, null))); if (-1 != a.indexOf('axis')) { var e = B.parseInt(A.substr(a, a.lastIndexOf(' ') + 1, null)), f = '+' == a.charAt(0) ? 1 : -1; b.a = [c, 0, e, f]; } else if (-1 != a.indexOf('hat')) { f = e = 0; switch (a.split(' ')[0]) { case 'down': f = e = 1; break; case 'left': e = 0; f = -1; break; case 'right': e = 0; f = 1; break; case 'up': (e = 1), (f = -1); } b.a = [c, 1, e, f]; } else (a = B.parseInt(a)), (b.a = [c, 2, a]); return (pe.cacheFromID.h[b.id] = b); }; pe.prototype = { equals: function (a) { return this.id == a.id; }, id: null, a: null, __class__: pe }; var Na = function () {}; h['com.stencyl.Key'] = Na; Na.__name__ = 'com.stencyl.Key'; Na.nameOfKey = function (a) { if (97 <= a && 122 >= a) return String.fromCodePoint(a); if (112 <= a && 126 >= a) return 'F' + B.string(a - 111); if (96 <= a && 105 >= a) return 'NUMPAD ' + B.string(a - 96); switch (a) { case 8: return 'BACKSPACE'; case 9: return 'TAB'; case 13: return 'ENTER'; case 15: return 'COMMAND'; case 16: return 'SHIFT'; case 17: return 'CONTROL'; case 20: return 'CAPS LOCK'; case 27: return 'ESCAPE'; case 32: return 'SPACE'; case 33: return 'PAGE UP'; case 34: return 'PAGE DOWN'; case 35: return 'END'; case 36: return 'HOME'; case 37: return 'LEFT'; case 38: return 'UP'; case 39: return 'RIGHT'; case 40: return 'DOWN'; case 45: return 'INSERT'; case 46: return 'DELETE'; case 106: return 'NUMPAD MULTIPLY'; case 107: return 'NUMPAD ADD'; case 108: return 'NUMPAD ENTER'; case 109: return 'NUMPAD SUBTRACT'; case 110: return 'NUMPAD DECIMAL'; case 111: return 'NUMPAD DIVIDE'; default: return String.fromCodePoint(a); } }; Na.keyFromName = function (a) { return Na.keyboardNameMap.h[a]; }; var na = function (a, b) { null == b && (b = 0); null == a && (a = 0); this.x = a; this.y = b; }; h['openfl.geom.Point'] = na; na.__name__ = 'openfl.geom.Point'; na.distance = function (a, b) { var c = a.x - b.x; a = a.y - b.y; return Math.sqrt(c * c + a * a); }; na.interpolate = function (a, b, c) { return new na(b.x + c * (a.x - b.x), b.y + c * (a.y - b.y)); }; na.polar = function (a, b) { return new na(a * Math.cos(b), a * Math.sin(b)); }; na.prototype = { x: null, y: null, add: function (a) { return new na(a.x + this.x, a.y + this.y); }, clone: function () { return new na(this.x, this.y); }, copyFrom: function (a) { this.x = a.x; this.y = a.y; }, equals: function (a) { return null != a && a.x == this.x ? a.y == this.y : !1; }, normalize: function (a) { if (0 != this.x || 0 != this.y) (a /= Math.sqrt(this.x * this.x + this.y * this.y)), (this.x *= a), (this.y *= a); }, offset: function (a, b) { this.x += a; this.y += b; }, setTo: function (a, b) { this.x = a; this.y = b; }, subtract: function (a) { return new na(this.x - a.x, this.y - a.y); }, toString: function () { return '(x=' + this.x + ', y=' + this.y + ')'; }, __toLimeVector2: function () { null == na.__limeVector2 && (na.__limeVector2 = new Xd()); var a = na.__limeVector2; a.x = this.x; a.y = this.y; return na.__limeVector2; }, get_length: function () { return Math.sqrt(this.x * this.x + this.y * this.y); }, __class__: na, __properties__: { get_length: 'get_length' } }; var fa = function (a, b, c, e) { null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.x = a; this.y = b; this.width = c; this.height = e; }; h['openfl.geom.Rectangle'] = fa; fa.__name__ = 'openfl.geom.Rectangle'; fa.prototype = { height: null, width: null, x: null, y: null, clone: function () { return new fa(this.x, this.y, this.width, this.height); }, contains: function (a, b) { return a >= this.x && b >= this.y && a < this.get_right() ? b < this.get_bottom() : !1; }, containsPoint: function (a) { return this.contains(a.x, a.y); }, containsRect: function (a) { return 0 >= a.width || 0 >= a.height ? a.x > this.x && a.y > this.y && a.get_right() < this.get_right() ? a.get_bottom() < this.get_bottom() : !1 : a.x >= this.x && a.y >= this.y && a.get_right() <= this.get_right() ? a.get_bottom() <= this.get_bottom() : !1; }, copyFrom: function (a) { this.x = a.x; this.y = a.y; this.width = a.width; this.height = a.height; }, equals: function (a) { return a == this ? !0 : null != a && this.x == a.x && this.y == a.y && this.width == a.width ? this.height == a.height : !1; }, inflate: function (a, b) { this.x -= a; this.width += 2 * a; this.y -= b; this.height += 2 * b; }, inflatePoint: function (a) { this.inflate(a.x, a.y); }, intersection: function (a) { var b = this.x < a.x ? a.x : this.x, c = this.get_right() > a.get_right() ? a.get_right() : this.get_right(); if (c <= b) return new fa(); var e = this.y < a.y ? a.y : this.y; a = this.get_bottom() > a.get_bottom() ? a.get_bottom() : this.get_bottom(); return a <= e ? new fa() : new fa(b, e, c - b, a - e); }, intersects: function (a) { var b = this.x < a.x ? a.x : this.x; if ((this.get_right() > a.get_right() ? a.get_right() : this.get_right()) <= b) return !1; b = this.y < a.y ? a.y : this.y; return (this.get_bottom() > a.get_bottom() ? a.get_bottom() : this.get_bottom()) > b; }, isEmpty: function () { return 0 >= this.width ? !0 : 0 >= this.height; }, offset: function (a, b) { this.x += a; this.y += b; }, offsetPoint: function (a) { this.x += a.x; this.y += a.y; }, setEmpty: function () { this.x = this.y = this.width = this.height = 0; }, setTo: function (a, b, c, e) { this.x = a; this.y = b; this.width = c; this.height = e; }, toString: function () { return ( '(x=' + this.x + ', y=' + this.y + ', width=' + this.width + ', height=' + this.height + ')' ); }, union: function (a) { if (0 == this.width || 0 == this.height) return a.clone(); if (0 == a.width || 0 == a.height) return this.clone(); var b = this.x > a.x ? a.x : this.x, c = this.get_right() < a.get_right() ? a.get_right() : this.get_right(), e = this.y > a.y ? a.y : this.y; a = this.get_bottom() < a.get_bottom() ? a.get_bottom() : this.get_bottom(); return new fa(b, e, c - b, a - e); }, __contract: function (a, b, c, e) { if (0 != this.width || 0 != this.height) { var f = 0, d = 0, p = 0, l = 0; this.x < a && (f = a - this.x); this.y < b && (d = b - this.y); this.get_right() > a + c && (p = a + c - this.get_right()); this.get_bottom() > b + e && (l = b + e - this.get_bottom()); this.x += f; this.y += d; this.width += p - f; this.height += l - d; } }, __expand: function (a, b, c, e) { if (0 == this.width && 0 == this.height) (this.x = a), (this.y = b), (this.width = c), (this.height = e); else { var f = this.get_right(), d = this.get_bottom(); this.x > a && ((this.x = a), (this.width = f - a)); this.y > b && ((this.y = b), (this.height = d - b)); f < a + c && (this.width = a + c - this.x); d < b + e && (this.height = b + e - this.y); } }, __toLimeRectangle: function () { null == fa.__limeRectangle && (fa.__limeRectangle = new Qd()); fa.__limeRectangle.setTo(this.x, this.y, this.width, this.height); return fa.__limeRectangle; }, __transform: function (a, b) { var c = b.a * this.x + b.c * this.y, e = c, f = b.b * this.x + b.d * this.y, d = f, p = b.a * (this.x + this.width) + b.c * this.y, l = b.b * (this.x + this.width) + b.d * this.y; p < c && (c = p); l < f && (f = l); p > e && (e = p); l > d && (d = l); p = b.a * (this.x + this.width) + b.c * (this.y + this.height); l = b.b * (this.x + this.width) + b.d * (this.y + this.height); p < c && (c = p); l < f && (f = l); p > e && (e = p); l > d && (d = l); p = b.a * this.x + b.c * (this.y + this.height); l = b.b * this.x + b.d * (this.y + this.height); p < c && (c = p); l < f && (f = l); p > e && (e = p); l > d && (d = l); a.setTo(c + b.tx, f + b.ty, e - c, d - f); }, get_bottom: function () { return this.y + this.height; }, set_bottom: function (a) { this.height = a - this.y; return a; }, get_bottomRight: function () { return new na(this.x + this.width, this.y + this.height); }, set_bottomRight: function (a) { this.width = a.x - this.x; this.height = a.y - this.y; return a.clone(); }, get_left: function () { return this.x; }, set_left: function (a) { this.width -= a - this.x; return (this.x = a); }, get_right: function () { return this.x + this.width; }, set_right: function (a) { this.width = a - this.x; return a; }, get_size: function () { return new na(this.width, this.height); }, set_size: function (a) { this.width = a.x; this.height = a.y; return a.clone(); }, get_top: function () { return this.y; }, set_top: function (a) { this.height -= a - this.y; return (this.y = a); }, get_topLeft: function () { return new na(this.x, this.y); }, set_topLeft: function (a) { this.x = a.x; this.y = a.y; return a.clone(); }, __class__: fa, __properties__: { set_topLeft: 'set_topLeft', get_topLeft: 'get_topLeft', set_top: 'set_top', get_top: 'get_top', set_size: 'set_size', get_size: 'get_size', set_right: 'set_right', get_right: 'get_right', set_left: 'set_left', get_left: 'get_left', set_bottomRight: 'set_bottomRight', get_bottomRight: 'get_bottomRight', set_bottom: 'set_bottom', get_bottom: 'get_bottom' } }; var d = function () { this.checkProperties = this.scriptInit = !1; this.nameMap = new qa(); this.propertyChangeEvents = new qa(); this.equalityPairs = new Jc(); this.attributeTweens = new qa(); }; h['com.stencyl.behavior.Script'] = d; d.__name__ = 'com.stencyl.behavior.Script'; d.resetStatics = function () { d.engine = null; d.lastCreatedActor = null; d.lastCreatedJoint = null; d.lastCreatedRegion = null; d.lastCreatedTerrainRegion = null; d.mpx = 0; d.mpy = 0; d.mrx = 0; d.mry = 0; d.imageApiAutoscale = !0; }; d.sameAs = function (a, b) { return a == b; }; d.sameAsAny = function (a, b, c) { return a != b ? a == c : !0; }; d.asBoolean = function (a) { return 1 == a ? !0 : 'true' == a ? !0 : !1; }; d.strCompare = function (a, b, c) { return 0 > c ? a < b : a > b; }; d.strCompareBefore = function (a, b) { return a < b; }; d.strCompareAfter = function (a, b) { return a > b; }; d.asNumber = function (a) { return null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a)); }; d.hasValue = function (a) { return d.isPrimitive(a) ? !0 : 'string' == typeof a ? '' != x.__cast(a, String) : null != a; }; d.isPrimitive = function (a) { return 'boolean' == typeof a || 'number' == typeof a || ('number' == typeof a && (a | 0) === a) ? !0 : !1; }; d.getDefaultValue = function (a) { return 'boolean' == typeof a ? !1 : 'number' == typeof a || ('number' == typeof a && (a | 0) === a) ? 0 : 'string' == typeof a ? '' : null; }; d.getGroupByName = function (a) { return d.engine.getGroupByName(a); }; d.getLastCreatedRegion = function () { return d.lastCreatedRegion; }; d.getAllRegions = function () { for (var a = [], b = d.engine.regions.iterator(); b.hasNext(); ) { var c = b.next(); null != c && a.push(c); } return a; }; d.getRegion = function (a) { return d.engine.getRegion(a); }; d.removeRegion = function (a) { d.engine.removeRegion(a); }; d.createBoxRegion = function (a, b, c, e) { return (d.lastCreatedRegion = d.engine.createBoxRegion(a, b, c, e)); }; d.createCircularRegion = function (a, b, c) { return (d.lastCreatedRegion = d.engine.createCircularRegion(a, b, c)); }; d.isInRegion = function (a, b) { return d.engine.isInRegion(a, b); }; d.getActorsInRegion = function (a) { var b = []; for (a = a.getContainedActors().iterator(); a.hasNext(); ) { var c = a.next(); b.push(d.engine.getActor(c)); } return b; }; d.sceneHasBehavior = function (a) { return d.engine.behaviors.hasBehavior(a); }; d.enableBehaviorForScene = function (a) { d.engine.behaviors.enableBehavior(a); }; d.disableBehaviorForScene = function (a) { d.engine.behaviors.disableBehavior(a); }; d.isBehaviorEnabledForScene = function (a) { return d.engine.behaviors.isBehaviorEnabled(a); }; d.getValueForScene = function (a, b) { return d.engine.getValue(a, b); }; d.setValueForScene = function (a, b, c) { d.engine.setValue(a, b, c); }; d.shoutToScene = function (a, b) { return d.engine.shout(a, b); }; d.sayToScene = function (a, b, c) { return d.engine.say(a, b, c); }; d.setGameAttribute = function (a, b) { d.engine.gameAttributes.h[a] = b; }; d.getGameAttribute = function (a) { return d.engine.getGameAttribute(a); }; d.setSavable = function (a, b) { d.engine.savableAttributes.h[a] = b; }; d.runLater = function (a, b, c) { a = new al(b, a | 0, !1, c); d.engine.addTask(a); return a; }; d.runPeriodically = function (a, b, c) { a = new al(b, a | 0, !0, c); d.engine.addTask(a); return a; }; d.getStepSize = function () { return k.STEP_SIZE; }; d.getScene = function () { return d.engine.scene; }; d.getCurrentScene = function () { return d.getScene().ID; }; d.getIDForScene = function (a) { for (var b = Fa.get().scenes.iterator(); b.hasNext(); ) { var c = b.next(); if (a == c.name) return c.ID; } return 0; }; d.getCurrentSceneName = function () { return d.getScene().name; }; d.getSceneWidth = function () { return d.getScene().sceneWidth; }; d.getSceneHeight = function () { return d.getScene().sceneHeight; }; d.getTileWidth = function () { return d.getScene().tileWidth; }; d.getTileHeight = function () { return d.getScene().tileHeight; }; d.reloadCurrentScene = function (a, b) { d.engine.switchScene(d.getCurrentScene(), a, b); }; d.switchScene = function (a, b, c) { d.engine.switchScene(a, b, c); }; d.createPixelizeOut = function (a, b) { return new Bj(a, 1, 15); }; d.createPixelizeIn = function (a, b) { return new Bj(a, 15, 1); }; d.createBubblesOut = function (a, b) { null == b && (b = -16777216); return new Cj(ub.OUT, a, 50, b); }; d.createBubblesIn = function (a, b) { null == b && (b = -16777216); return new Cj(ub.IN, a, 50, b); }; d.createBlindsOut = function (a, b) { null == b && (b = -16777216); return new Dj(ub.OUT, a, 10, b); }; d.createBlindsIn = function (a, b) { null == b && (b = -16777216); return new Dj(ub.IN, a, 10, b); }; d.createRectangleOut = function (a, b) { null == b && (b = -16777216); return new Ej(ub.OUT, a, b); }; d.createRectangleIn = function (a, b) { null == b && (b = -16777216); return new Ej(ub.IN, a, b); }; d.createSlideTransition = function (a, b) { return new Pe(d.engine.master, d.engine.colorLayer, a, b); }; d.createSlideUpTransition = function (a) { return d.createSlideTransition(a, Pe.SLIDE_UP); }; d.createSlideDownTransition = function (a) { return d.createSlideTransition(a, Pe.SLIDE_DOWN); }; d.createSlideLeftTransition = function (a) { return d.createSlideTransition(a, Pe.SLIDE_LEFT); }; d.createSlideRightTransition = function (a) { return d.createSlideTransition(a, Pe.SLIDE_RIGHT); }; d.createCrossfadeTransition = function (a) { return new bl(d.engine.root, a); }; d.createFadeOut = function (a, b) { null == b && (b = -16777216); return new cl(a, b); }; d.createFadeIn = function (a, b) { null == b && (b = -16777216); return new dl(a, b); }; d.createCircleOut = function (a, b) { null == b && (b = -16777216); return new Fj(ub.OUT, a, b); }; d.createCircleIn = function (a, b) { null == b && (b = -16777216); return new Fj(ub.IN, a, b); }; d.setBlendModeForLayer = function (a, b) { a.set_blendMode(b); a instanceof Ec && x.__cast(a, Ec).tiles.set_blendMode(b); }; d.showTileLayer = function (a) { a.set_alpha(1); }; d.hideTileLayer = function (a) { a.set_alpha(0); }; d.fadeTileLayerTo = function (a, b, c, e) { null == a.alphaTween && (a.alphaTween = new Ae().doOnUpdate(function () { a.set_alpha(a.alphaTween.value); })); a.alphaTween.tween(a.get_alpha(), b, e, (1e3 * c) | 0); }; d.getTileLayerOpacity = function (a) { return 100 * a.get_alpha(); }; d.setDrawingLayer = function (a) { a instanceof Ec && (k.engine.g.graphics = a.overlay.get_graphics()); }; d.setDrawingLayerToActorLayer = function (a) { null != a && (k.engine.g.graphics = a.layer.overlay.get_graphics()); }; d.setDrawingLayerToSceneLayer = function () { k.engine.g.graphics = k.engine.transitionLayer.get_graphics(); }; d.getScreenX = function () { return k.cameraX / k.SCALE; }; d.getScreenY = function () { return k.cameraY / k.SCALE; }; d.getScreenXCenter = function () { return k.cameraX / k.SCALE + k.screenWidth / 2; }; d.getScreenYCenter = function () { return k.cameraY / k.SCALE + k.screenHeight / 2; }; d.getCamera = function () { return d.engine.camera; }; d.isCtrlDown = function () { return D.check('iCTRL') ? !0 : D.check('iCOMMAND'); }; d.isShiftDown = function () { return D.check('iSHIFT'); }; d.simulateKeyPress = function (a) { D.simulateKeyPress(a); }; d.simulateKeyRelease = function (a) { D.simulateKeyRelease(a); }; d.isKeyDown = function (a) { return D.check(a); }; d.isKeyPressed = function (a) { return D.pressed(a); }; d.isKeyReleased = function (a) { return D.released(a); }; d.isMouseDown = function () { return D.mouseDown; }; d.isMousePressed = function () { return D.mousePressed; }; d.isMouseReleased = function () { return D.mouseReleased; }; d.getMouseX = function () { return D.mouseX / k.SCALE; }; d.getMouseY = function () { return D.mouseY / k.SCALE; }; d.getMouseWorldX = function () { return D.mouseX / k.SCALE + k.cameraX; }; d.getMouseWorldY = function () { return D.mouseY / k.SCALE + k.cameraY; }; d.getMousePressedX = function () { return d.mpx; }; d.getMousePressedY = function () { return d.mpy; }; d.getMouseReleasedX = function () { return d.mrx; }; d.getMouseReleasedY = function () { return d.mry; }; d.showCursor = function () { qe.show(); }; d.hideCursor = function () { qe.hide(); }; d.charFromCharCode = function (a) { return 32 > a || (126 < a && 160 > a) ? '' : String.fromCodePoint(a); }; d.getLastCreatedActor = function () { return d.lastCreatedActor; }; d.createActor = function (a, b, c, e) { a = d.engine.createActorOfType(a, b, c, e); return (d.lastCreatedActor = a); }; d.createRecycledActor = function (a, b, c, e) { a = d.engine.getRecycledActorOfType(a, b, c, e); return (d.lastCreatedActor = a); }; d.createRecycledActorOnLayer = function (a, b, c, e) { a = d.engine.getRecycledActorOfTypeOnLayer(a, b, c, e.ID); return (d.lastCreatedActor = a); }; d.recycleActor = function (a) { d.engine.recycleActor(a); }; d.createActorInNextScene = function (a, b, c, e) { d.engine.createActorInNextScene(a, b, c, e); }; d.getActorTypeByName = function (a) { return lc.get().resourceMap.get(a); }; d.getActorType = function (a) { return lc.get().resources.get(a); }; d.getAllActorTypes = function () { return lc.get().getAllActorTypes(); }; d.getActorsOfType = function (a) { return d.engine.getActorsOfType(a); }; d.getActor = function (a) { return d.engine.getActor(a); }; d.getActorGroup = function (a) { return d.engine.getGroup(a); }; d.setGravity = function (a, b) { d.engine.gravityX = a; d.engine.gravityY = b; null != d.engine.world && d.engine.world.setGravity(new P(a, b)); }; d.getGravity = function () { return null == d.engine.world ? ((d.dummyVec.x = d.engine.gravityX), (d.dummyVec.y = d.engine.gravityY), d.dummyVec) : d.engine.world.getGravity(); }; d.enableContinuousCollisions = function () { ec.m_continuousPhysics = !0; }; d.toPhysicalUnits = function (a) { return k.toPhysicalUnits(a); }; d.toPixelUnits = function (a) { return k.toPixelUnits(a); }; d.makeActorNotPassThroughTerrain = function (a) { k.NO_PHYSICS ? null != a && 1 == a.physicsMode && (a.continuousCollision = !0) : ((ec.m_continuousPhysics = !0), null != a && 0 == a.physicsMode && a.body.setBullet(!0)); }; d.makeActorPassThroughTerrain = function (a) { if (k.NO_PHYSICS) null != a && 1 == a.physicsMode && (a.continuousCollision = !1); else if (null != a && 0 == a.physicsMode) { a.body.setBullet(!1); a = !1; for (var b = d.engine.allActors.iterator(); b.hasNext(); ) { var c = b.next(); if (null != c.body && c.body.isBullet()) { a = !0; break; } } a || (ec.m_continuousPhysics = !1); } }; d.mute = function () {}; d.unmute = function () {}; d.getSound = function (a) { return lc.get().resources.get(a); }; d.getSoundByName = function (a) { return lc.get().resourceMap.get(a); }; d.playSound = function (a) { if (null != a) for (var b = 0; 32 > b; ) { var c = b++; c = d.engine.channels[c]; if (null == c.currentSound) { c.playSound(a); c.setVolume(1); c.setPanning(0); break; } } }; d.loopSound = function (a) { if (null != a) for (var b = 0; 32 > b; ) { var c = b++; c = d.engine.channels[c]; if (null == c.currentSound) { c.loopSound(a); c.setVolume(1); c.setPanning(0); break; } } }; d.playSoundOnChannel = function (a, b) { b = d.engine.channels[b]; b.playSound(a); b.setVolume(1); b.setPanning(0); }; d.loopSoundOnChannel = function (a, b) { b = d.engine.channels[b]; b.loopSound(a); b.setVolume(1); b.setPanning(0); }; d.stopSoundOnChannel = function (a) { d.engine.channels[a].stopSound(); }; d.pauseSoundOnChannel = function (a) { d.engine.channels[a].setPause(!0); }; d.resumeSoundOnChannel = function (a) { d.engine.channels[a].setPause(!1); }; d.setVolumeForChannel = function (a, b) { d.engine.channels[b].setVolume(a); }; d.setPanningForChannel = function (a, b) { d.engine.channels[b].setPanning(a); }; d.stopAllSounds = function () { for (var a = 0; 32 > a; ) { var b = a++; d.engine.channels[b].stopSound(); } }; d.setVolumeForAllSounds = function (a) { Xb.masterVolume = a; for (a = 0; 32 > a; ) { var b = a++; b = d.engine.channels[b]; b.setVolume(b.volume); } }; d.fadeInSoundOnChannel = function (a, b) { d.engine.channels[a].fadeInSound(b); }; d.fadeOutSoundOnChannel = function (a, b) { d.engine.channels[a].fadeOutSound(b); }; d.fadeSoundOnChannel = function (a, b, c) { d.engine.channels[a].fadeSound(b, c / 100); }; d.fadeInForAllSounds = function (a) { for (var b = 0; 32 > b; ) { var c = b++; d.engine.channels[c].fadeInSound(a); } }; d.fadeOutForAllSounds = function (a) { for (var b = 0; 32 > b; ) { var c = b++; d.engine.channels[c].fadeOutSound(a); } }; d.fadeForAllSounds = function (a, b) { for (var c = 0; 32 > c; ) { var e = c++; d.engine.channels[e].fadeSound(a, b / 100); } }; d.getPositionForChannel = function (a) { a = d.engine.channels[a]; return null != a && null != a.currentSound ? a.paused ? a.position : a.currentSound.get_position() : 0; }; d.setPositionForChannel = function (a, b) { a = d.engine.channels[a]; null != a && null != a.currentSound && (a.paused ? (a.position = b) : a.looping ? a.loopSound(a.currentClip, b) : a.playSound(a.currentClip, b)); }; d.getSoundLengthForChannel = function (a) { a = d.engine.channels[a]; return null != a && null != a.currentSource ? a.currentSource.get_length() : 0; }; d.getSoundLength = function (a) { return null != a && null != a.src ? a.src.get_length() : 0; }; d.setColorBackground = function (a, b) { null == b && (b = -2); d.engine.colorLayer.get_graphics().clear(); a != Kf.TRANSPARENT && (b == Kf.TRANSPARENT ? d.engine.setColorBackground(new Kf(a)) : d.engine.setColorBackground(new xi(a, b))); }; d.setScrollSpeedForBackground = function (a, b, c) { if (null == a) { a = 0; for (var e = k.engine.backgroundLayers; a < e.length; ) { var f = e[a]; ++a; f.setScrollSpeed(b, c); } } else a instanceof Wd && x.__cast(a, Wd).setScrollSpeed(b, c); }; d.setScrollFactorForLayer = function (a, b, c) { a instanceof Wd ? x.__cast(a, Wd).setScrollFactor(b, c) : a instanceof Ec && ((a.scrollFactorX = b), (a.scrollFactorY = c)); }; d.changeBackground = function (a, b) { b = lc.get().resourceMap.get(b); null != b && a instanceof Wd && x.__cast(a, Wd).reload(b.ID); }; d.changeBackgroundImage = function (a, b) { null != b && a instanceof Wd && x.__cast(a, Wd).setImage(b); }; d.addBackground = function (a, b, c) { a = lc.get().resourceMap.get(a); b = new Wd(d.engine.getNextLayerID(), b, c, 0, 0, 1, 10, a.ID, !1); b.load(); d.engine.insertLayer(b, c); }; d.addBackgroundFromImage = function (a, b, c, e) { c = new Wd(d.engine.getNextLayerID(), c, e, 0, 0, 1, 10, -1, !1); c.loadFromImg(a, b); d.engine.insertLayer(c, e); }; d.addTileLayer = function (a, b) { var c = (d.engine.scene.sceneWidth / d.engine.scene.tileWidth) | 0, e = (d.engine.scene.sceneHeight / d.engine.scene.tileHeight) | 0, f = d.engine.getNextLayerID(); c = new me(f, d.engine.scene, c, e); c.set_name(a); a = new Ec(f, a, b, 1, 1, 1, 10, c); d.engine.insertLayer(a, b); }; d.newImage = function (a, b) { return d.imageApiAutoscale ? new ja((a * k.SCALE) | 0, (b * k.SCALE) | 0, !0, 0) : new ja(a, b, !0, 0); }; d.captureScreenshot = function () { var a = new ja(d.getStageWidth() | 0, d.getStageHeight() | 0); a.draw(Ma.get_current().stage, null, null, null, null, aa.antialias); return a; }; d.getImageForActor = function (a) { return a.getCurrentImage(); }; d.getExternalImage = function (a) { return Da.getBitmapData('assets/data/' + a, !1); }; d.loadImageFromURL = function (a, b) { var c = new Gj(); c.contentLoaderInfo.addEventListener('complete', function (a) { a = x.__cast(x.__cast(a.currentTarget, fg).content, Mc).get_bitmapData(); b(a); }); c.load(new Tg(a)); }; d.getSubImage = function (a, b, c, e, f) { d.imageApiAutoscale && ((b = (b * k.SCALE) | 0), (c = (c * k.SCALE) | 0), (e = (e * k.SCALE) | 0), (f = (f * k.SCALE) | 0)); if (null != a && 0 <= b && 0 <= c && 0 < e && 0 < f && b < a.width && c < a.height) { var g = new ja(e, f); d.dummyRect.x = b; d.dummyRect.y = c; d.dummyRect.width = e; d.dummyRect.height = f; d.dummyPoint.x = 0; d.dummyPoint.y = 0; g.copyPixels(a, d.dummyRect, d.dummyPoint); return g; } return new ja(1, 1); }; d.setOrderForImage = function (a, b) { null != a && null != a.parent && 0 <= b && b < a.parent.get_numChildren() && a.parent.setChildIndex(a, b); }; d.getOrderForImage = function (a) { return null != a && null != a.parent ? a.parent.getChildIndex(a) : -1; }; d.bringImageBack = function (a) { null != a && null != a.parent && d.setOrderForImage(a, a.parent.getChildIndex(a) - 1); }; d.bringImageForward = function (a) { null != a && null != a.parent && d.setOrderForImage(a, a.parent.getChildIndex(a) + 1); }; d.bringImageToBack = function (a) { null != a && null != a.parent && d.setOrderForImage(a, 0); }; d.bringImageToFront = function (a) { null != a && null != a.parent && d.setOrderForImage(a, a.parent.get_numChildren() - 1); }; d.attachImageToActor = function (a, b, c, e, f) { null == f && (f = 1); null != a && (null != a.parent && d.removeImage(a), 2 == f ? (b.addChild(a), b.setChildIndex(a, 0)) : b.addChild(a), (a.cacheParentAnchor = b.cacheAnchor), a.set_imgX(c), a.set_imgY(e), a.set_smoothing(aa.antialias), b.attachedImages.push(a)); }; d.attachImageToHUD = function (a, b, c) { null != a && (null != a.parent && d.removeImage(a), d.engine.hudLayer.addChild(a), d.engine.hudLayer.attachedImages.push(a), a.set_imgX(b), a.set_imgY(c), a.set_smoothing(aa.antialias)); }; d.attachImageToLayer = function (a, b, c, e, f) { null == f && (f = 1); null != a && (null != a.parent && d.removeImage(a), 2 == f ? b.addChildAt(a, 0) : b.addChild(a), -1 == b.attachedImages.indexOf(a) && b.attachedImages.push(a), a.set_imgX(c), a.set_imgY(e), a.set_smoothing(aa.antialias)); }; d.removeImage = function (a) { null != a && (a.parent instanceof tb ? A.remove(x.__cast(a.parent, tb).attachedImages, a) : a.parent instanceof Ec && A.remove(x.__cast(a.parent, Ec).attachedImages, a), a.parent.removeChild(a)); }; d.resizeImage = function (a, b, c, e) { null == e && (e = !0); null == c && (c = 1); null == b && (b = 1); var f = new Ia(); f.scale(b, c); b = new ja((a.width * b) | 0, (a.height * c) | 0, !0, 0); b.draw(a, f, null, null, null, e); return b; }; d.drawImageOnImage = function (a, b, c, e, f) { d.imageApiAutoscale && ((c = (c * k.SCALE) | 0), (e = (e * k.SCALE) | 0)); if (null != a && null != b) if (((d.dummyPoint.x = c), (d.dummyPoint.y = e), 10 == f)) b.copyPixels(a, a.rect, d.dummyPoint, null, null, !0); else { var g = new Ia(); g.identity(); g.translate(c, e); b.draw(a, g, null, f); } }; d.drawTextOnImage = function (a, b, c, e, f) { d.imageApiAutoscale && ((c = (c * k.SCALE) | 0), (e = (e * k.SCALE) | 0)); null != a && f.font.renderToImg(a, b, 0, 1, c, e, f.letterSpacing, f.fontScale, 0, !1); }; d.clearImagePartially = function (a, b, c, e, f) { d.imageApiAutoscale && ((b = (b * k.SCALE) | 0), (c = (c * k.SCALE) | 0), (e = (e * k.SCALE) | 0), (f = (f * k.SCALE) | 0)); null != a && ((d.dummyRect.x = b), (d.dummyRect.y = c), (d.dummyRect.width = e), (d.dummyRect.height = f), a.fillRect(d.dummyRect, 0)); }; d.clearImage = function (a) { null != a && a.fillRect(a.rect, 0); }; d.clearImageUsingMask = function (a, b, c, e) { d.imageApiAutoscale && ((c = (c * k.SCALE) | 0), (e = (e * k.SCALE) | 0)); var f = b.width, g = b.height, p = 0, l = 0; 0 > c ? ((f = c > a.width - f ? a.width : f + c), (p -= c), (c = 0)) : c > a.width - f && ((f -= c - (a.width - f)), (c = a.width - f)); 0 > e ? ((g = e > a.height - g ? a.height : g + e), (l -= e), (e = 0)) : e > a.height - g && ((g -= e - (a.height - g)), (e = a.height - g)); if (!(0 >= f || 0 >= g)) { p = new fa(p, l, f, g); b = b.getPixels(p); c = new fa(c, e, f, g); e = a.getPixels(c); p = 0; for (f *= g; p < f; ) { g = p++; b.position = 4 * g; e.position = 4 * g; l = b.readUnsignedByte(); var v = e.readUnsignedByte(); l = ((256 - l) * v) >> 8; e.position = 4 * g; e.writeByte(l); } b.position = 0; e.position = 0; a.setPixels(c, e); } }; d.retainImageUsingMask = function (a, b, c, e) { d.imageApiAutoscale && ((c = (c * k.SCALE) | 0), (e = (e * k.SCALE) | 0)); d.dummyPoint.x = c; d.dummyPoint.y = e; a.copyChannel(b, b.rect, d.dummyPoint, 8, 8); }; d.fillImage = function (a, b) { null != a && a.fillRect(a.rect, -16777216 | b); }; d.filterImage = function (a, b) { null != a && ((d.dummyPoint.x = 0), (d.dummyPoint.y = 0), a.applyFilter(a, a.rect, d.dummyPoint, b)); }; d.imageSetPixel = function (a, b, c, e) { if (null != a) if (d.imageApiAutoscale && 1 != k.SCALE) { var f = ((b + 1) * k.SCALE) | 0, g = ((c + 1) * k.SCALE) | 0; b = (b * k.SCALE) | 0; for (c = (c * k.SCALE) | 0; b < f; ) for (var p = b++, l = c, v = g; l < v; ) { var n = l++; a.setPixel32(p, n, e | -16777216); } } else a.setPixel32(b, c, e | -16777216); }; d.imageGetPixel = function (a, b, c) { return null != a ? (d.imageApiAutoscale && ((b = (b * k.SCALE) | 0), (c = (c * k.SCALE) | 0)), a.getPixel(b, c)) : 0; }; d.imageSwapColor = function (a, b, c) { null != a && ((d.dummyPoint.x = 0), (d.dummyPoint.y = 0), a.threshold(a, a.rect, d.dummyPoint, '==', -16777216 | b, -16777216 | c, -1, !0)); }; d.flipImageHorizontal = function (a) { var b = new Ia(); b.scale(-1, 1); b.translate(a.width, 0); var c = new ja(a.width, a.height, !0, 0); c.draw(a, b); d.dummyPoint.x = 0; d.dummyPoint.y = 0; a.copyPixels(c, c.rect, d.dummyPoint); }; d.flipImageVertical = function (a) { var b = new Ia(); b.scale(1, -1); b.translate(0, a.height); var c = new ja(a.width, a.height, !0, 0); c.draw(a, b); d.dummyPoint.x = 0; d.dummyPoint.y = 0; a.copyPixels(c, c.rect, d.dummyPoint); }; d.setXForImage = function (a, b) { null != a && a.set_imgX(b); }; d.setYForImage = function (a, b) { null != a && a.set_imgY(b); }; d.fadeImageTo = function (a, b, c, e) { null == c && (c = 1); a.get_tweenProps().alpha.tween(a.get_alpha(), b, e, (1e3 * c) | 0); }; d.setOriginForImage = function (a, b, c) { a.setOrigin(b, c); }; d.growImageTo = function (a, b, c, e, f) { null == e && (e = 1); null == c && (c = 1); null == b && (b = 1); a.get_tweenProps().scaleXY.tween(a.get_scaleX(), b, a.get_scaleY(), c, f, (1e3 * e) | 0); }; d.spinImageTo = function (a, b, c, e) { null == c && (c = 1); a.get_tweenProps().angle.tween(a.get_rotation(), b, e, (1e3 * c) | 0); }; d.moveImageTo = function (a, b, c, e, f) { null == e && (e = 1); a.get_tweenProps().xy.tween(a.get_imgX(), b, a.get_imgY(), c, f, (1e3 * e) | 0); }; d.spinImageBy = function (a, b, c, e) { null == c && (c = 1); d.spinImageTo(a, a.get_rotation() + b, c, e); }; d.moveImageBy = function (a, b, c, e, f) { null == e && (e = 1); d.moveImageTo(a, a.get_imgX() + b, a.get_imgY() + c, e, f); }; d.setFilterForImage = function (a, b) { null != a && a.img.set_filters(a.get_filters().concat([b])); }; d.clearFiltersForImage = function (a) { null != a && a.img.set_filters([]); }; d.imageToText = function (a) { var b = a.getPixels(a.rect); return a.width + ';' + a.height + ';' + d.toBase64(hb.ofData(zb.toArrayBuffer(b))); }; d.imageFromText = function (a) { var b = a.split(';'); a = B.parseInt(b[0]); var c = B.parseInt(b[1]), e = d.fromBase64(b[2]); b = new pc(0); for (var f = 0, g = e.length; f < g; ) { var p = f++; b.writeByte(e.b[p]); } b.position = 0; b.__endian = 0; a = new ja(a, c, !0, 0); a.setPixels(a.rect, b); return a; }; d.toBase64 = function (a) { var b = hb.ofString('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'); a = new Hj(b).encodeBytes(a).toString(); b = a.length % 4; 1 < b && (a += '='); 2 == b && (a += '='); return a; }; d.fromBase64 = function (a) { var b = -1; '=' == a.charAt(a.length - 2) ? (b = 2) : '=' == a.charAt(a.length - 1) && (b = 1); -1 != b && (a = A.substr(a, 0, a.length - b)); b = hb.ofString('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'); return new Hj(b).decodeBytes(hb.ofString(a)); }; d.startShakingScreen = function (a, b) { null == b && (b = 0.5); null == a && (a = 0.05); d.engine.shakeScreen(a, b); }; d.stopShakingScreen = function () { d.engine.stopShakingScreen(); }; d.getTopLayer = function () { return d.engine.getTopLayer(); }; d.getBottomLayer = function () { return d.engine.getBottomLayer(); }; d.getMiddleLayer = function () { return d.engine.getMiddleLayer(); }; d.getTileLayerAt = function (a) { return null != a && a instanceof Ec ? x.__cast(a, Ec).tiles : null; }; d.getTilesetIDByName = function (a) { a = lc.get().resourceMap.get(a); return a instanceof sf ? a.ID : -1; }; d.setTileAt = function (a, b, c, e, f) { if (null != c && c instanceof Ec) { d.removeTileAt(a, b, c); var g = x.__cast(c, Ec).tiles; e = lc.get().resources.get(e).tiles[f]; g.setTileAt(a, b, e); null == e || null == e.pixels || X.contains(d.engine.animatedTiles, e) || (1 < e.durations.length && d.engine.animatedTiles.push(e)); if (null != e && -1 != e.collisionID) { e = Fa.get().shapes.h[e.collisionID]; g = e.getVertices(); e = e.getVertexCount(); g = Db.asArray(g, e); e = 0; for (f = g.getVertices(); e < f.length; ) { var p = f[e]; ++e; p.x *= d.engine.scene.tileWidth / 32; p.y *= d.engine.scene.tileHeight / 32; } e = b * d.engine.scene.tileWidth; f = a * d.engine.scene.tileHeight; k.NO_PHYSICS || null == g ? null != g && d.getTileLayerAt(c).grid.setTile(b, a) : d.createDynamicTile( g, e, f, c.ID, d.engine.scene.tileWidth, d.engine.scene.tileHeight ); } d.engine.tileUpdated = !0; } }; d.tileExistsAt = function (a, b, c) { return null != d.getTileAt(a, b, c); }; d.tileCollisionAt = function (a, b, c) { if (null == c) { c = 0; for (var e = d.engine.interactiveLayers; c < e.length; ) { var f = e[c]; ++c; f = f.tiles.getTileAt(a, b); if (null != f && -1 != f.collisionID) return !0; } return !1; } f = d.getTileAt(a, b, c); return null == f || -1 == f.collisionID ? !1 : !0; }; d.getTilePosition = function (a, b) { var c = d.engine.scene.tileHeight, e = d.engine.scene.tileWidth; return 0 == a ? Math.floor(b / e) : Math.floor(b / c); }; d.getTileIDAt = function (a, b, c) { a = d.getTileAt(a, b, c); return null == a ? -1 : a.tileID; }; d.getTileColIDAt = function (a, b, c) { a = d.getTileAt(a, b, c); return null == a ? -1 : a.collisionID; }; d.getTileDataAt = function (a, b, c) { a = d.getTileAt(a, b, c); return null == a ? '' : a.metadata; }; d.getTilesetIDAt = function (a, b, c) { a = d.getTileAt(a, b, c); return null == a ? -1 : a.parent.ID; }; d.getTileAt = function (a, b, c) { c = d.getTileLayerAt(c); return null == c ? null : c.getTileAt(a, b); }; d.removeTileAt = function (a, b, c) { if (null != c && c instanceof Ec) { var e = x.__cast(c, Ec).tiles, f = d.getTileAt(a, b, c); null != f && (k.NO_PHYSICS || -1 == f.collisionID ? -1 != f.collisionID && ((c = b), (f = a), null == f && (f = 0), null == c && (c = 0), e.grid.setTile(c, f, !1)) : ((c = 'ID-' + b * d.engine.scene.tileWidth + '-' + a * d.engine.scene.tileHeight + '-' + c.ID), (f = d.engine.dynamicTiles.h[c]), null != f && (d.engine.removeActor(f), (f = d.engine.dynamicTiles), Object.prototype.hasOwnProperty.call(f.h, c) && delete f.h[c])), e.setTileAt(a, b, null), (d.engine.tileUpdated = !0)); } }; d.getTileForCollision = function (a, b) { if (a.thisCollidedWithTile || a.otherCollidedWithTile) { var c = Math.round(k.toPixelUnits(b.normalX)), e = Math.round(k.toPixelUnits(b.normalY)), f = Math.round(k.toPixelUnits(b.x)); b = Math.round(k.toPixelUnits(b.y)); a.thisCollidedWithTile && ((c = -c), (e = -e)); 0 > c && 0 == f % d.engine.scene.tileWidth && --f; 0 > e && 0 == b % d.engine.scene.tileHeight && --b; f = d.getTilePosition(0, f); b = d.getTilePosition(1, b); a = 0; for (c = d.engine.interactiveLayers; a < c.length; ) if (((e = c[a]), ++a, (e = e.tiles.getTileAt(b, f)), null != e && -1 != e.collisionID)) return e; } return null; }; d.getTileDataForCollision = function (a, b) { a = d.getTileForCollision(a, b); return null != a ? a.metadata : ''; }; d.getTilePositionForCollision = function (a, b, c) { if (b.thisCollidedWithTile || b.otherCollidedWithTile) { var e = Math.round(k.toPixelUnits(c.normalX)), f = Math.round(k.toPixelUnits(c.normalY)), g = Math.round(k.toPixelUnits(c.x)); c = Math.round(k.toPixelUnits(c.y)); b.thisCollidedWithTile && ((e = -e), (f = -f)); 0 > e && 0 == g % d.engine.scene.tileWidth && --g; 0 > f && 0 == c % d.engine.scene.tileHeight && --c; g = d.getTilePosition(0, g); c = d.getTilePosition(1, c); return 0 == a ? g : c; } return -1; }; d.createDynamicTile = function (a, b, c, e, f, g) { a = new tb( d.engine, 1e8, 1, b, c, e, f, g, null, null, null, null, !1, !0, !1, !1, a, !1, !1 ); a.set_name('Terrain'); a.set_visible(!1); d.engine.dynamicTiles.h['ID-' + b + '-' + c + '-' + e] = a; }; d.getFont = function (a) { return lc.get().resources.get(a); }; d.pause = function () { d.engine.pause(); }; d.unpause = function () { d.engine.unpause(); }; d.toggleFullScreen = function () { k.engine.toggleFullScreen(); }; d.pauseAll = function () { k.paused = !0; }; d.unpauseAll = function () { k.paused = !1; }; d.getScreenWidth = function () { return k.screenWidth; }; d.getScreenHeight = function () { return k.screenHeight; }; d.getStageWidth = function () { return k.stage.stageWidth; }; d.getStageHeight = function () { return k.stage.stageHeight; }; d.setOffscreenTolerance = function (a, b, c, e) { k.paddingTop = a; k.paddingLeft = b; k.paddingBottom = c; k.paddingRight = e; }; d.isTransitioning = function () { return d.engine.isTransitioning(); }; d.setTimeScale = function (a) { k.timeScale = a; }; d.randomFloat = function () { return Math.random(); }; d.randomFloatBetween = function (a, b) { return a <= b ? a + Math.random() * (b - a) : b + Math.random() * (a - b); }; d.randomInt = function (a, b) { return a <= b ? a + Math.floor(Math.random() * (b - a + 1)) : b + Math.floor(Math.random() * (a - b + 1)); }; d.saveGame = function (a, b) { a = ld.getLocal(a, vd.current.meta.h.localSavePath); for (var c = Object.keys(d.engine.gameAttributes.h), e = c.length, f = 0; f < e; ) { var g = c[f++]; 0 != d.engine.savableAttributes.h[g] && X.saveToSharedObject(a, g, d.engine.gameAttributes.h[g]); } X.flushSharedObject(a, b); }; d.loadGame = function (a, b) { a = ld.getLocal(a, vd.current.meta.h.localSavePath); for (var c = 0, e = Z.fields(a.data); c < e.length; ) { var f = e[c]; ++c; var g = d.engine.gameAttributes, p = X.loadFromSharedObject(a, f); g.h[f] = p; } null != b && b(!0); }; d.saveData = function (a, b, c, e) { a = ld.getLocal(a, vd.current.meta.h.localSavePath); X.saveToSharedObject(a, b, c); X.flushSharedObject(a, e); }; d.loadData = function (a, b, c) { a = ld.getLocal(a, vd.current.meta.h.localSavePath); b = X.loadFromSharedObject(a, b); null != c && c(!0); return b; }; d.checkData = function (a, b) { a = ld.getLocal(a, vd.current.meta.h.localSavePath); return null != Z.field(a.data, b); }; d.defaultURLHandler = function (a) { new sh(a.target); }; d.openURLInBrowser = function (a) { Ma.getURL(new Tg(a)); }; d.visitURL = function (a, b) { null == b && (b = d.defaultURLHandler); try { var c = new Tg(a); c.method = 'GET'; new sh(c).addEventListener('complete', b); } catch (e) { if (((la.lastError = e), 'string' != typeof M.caught(e).unwrap())) throw e; } }; d.postToURL = function (a, b, c) { null == c && (c = d.defaultURLHandler); a = new Tg(a); a.method = 'POST'; null != b && (a.data = Ww._new(b)); try { var e = new sh(a); e.addEventListener('complete', c); d.runLater(500, function (a) { e.close(); }); } catch (f) { if (((la.lastError = f), 'string' != typeof M.caught(f).unwrap())) throw f; } }; d.convertToPseudoUnicode = function (a) { var b = ''; try { for (var c = 0, e = 0, f = a.length; e < f; ) { c = e; var d = a.charCodeAt(e); e += 55296 <= d && 56319 >= d ? 2 : 1; var p = gg.codePointAt(a, c), l = p; if (128 > l) { var v = 65535 >= p ? String.fromCodePoint(p) : String.fromCodePoint((p >> 10) + 55232) + String.fromCodePoint((p & 1023) | 56320); b += v; } else b += '~x' + U.hex(l, 4); } } catch (n) { return (la.lastError = n), a; } return b; }; d.simpleTweet = function (a, b) { d.openURLInBrowser('http://twitter.com/home?status=' + encodeURIComponent(a + ' ' + b)); }; d.newgroundsShowAd = function () {}; d.newgroundsSetMedalPosition = function (a, b) {}; d.newgroundsUnlockMedal = function (a) {}; d.newgroundsSubmitScore = function (a, b) {}; d.newgroundsShowScore = function (a) {}; d.newgroundsHelper = function (a) {}; d.kongregateInitAPI = function () {}; d.kongregateSubmitStat = function (a, b) {}; d.kongregateIsGuest = function () { return !0; }; d.kongregateGetUsername = function () { return 'Guest'; }; d.kongregateGetUserID = function () { return 0; }; d.loadAtlas = function (a) { d.engine.atlasesToLoad.h[a] = a; }; d.unloadAtlas = function (a) { d.engine.atlasesToUnload.h[a] = a; }; d.atlasIsLoaded = function (a) { a = Fa.get().atlases.h[a]; return null != a ? a.active : !1; }; d.initGooglePlayGames = function () {}; d.stopGooglePlayGames = function () {}; d.getGPGConnectionInfo = function (a) { return !1; }; d.showGPGAchievements = function () {}; d.showGPGLeaderboards = function () {}; d.showGPGLeaderboard = function (a) {}; d.showGPGQuests = function () {}; d.unlockGPGAchievement = function (a) {}; d.incrementGPGAchievement = function (a, b) {}; d.submitGPGScore = function (a, b) {}; d.updateGPGEvent = function (a, b) {}; d.getCompletedGPGQuests = function () { return []; }; d.gameCenterInitialize = function () {}; d.gameCenterIsAuthenticated = function () { return !1; }; d.gameCenterGetPlayerName = function () { return 'None'; }; d.gameCenterGetPlayerID = function () { return 'None'; }; d.gameCenterShowLeaderboard = function (a) {}; d.gameCenterShowAchievements = function () {}; d.gameCenterSubmitScore = function (a, b) {}; d.gameCenterSubmitAchievement = function (a, b) {}; d.gameCenterResetAchievements = function () {}; d.gameCenterShowBanner = function (a, b) {}; d.purchasesAreInitialized = function () { return !1; }; d.purchasesRestore = function () {}; d.purchasesBuy = function (a) {}; d.purchasesHasBought = function (a) { return !1; }; d.purchasesGetTitle = function (a) { return ''; }; d.purchasesGetDescription = function (a) { return ''; }; d.purchasesGetPrice = function (a) { return ''; }; d.purchasesRequestProductInfo = function (a) {}; d.purchasesUse = function (a) {}; d.purchasesGetQuantity = function (a) { return 0; }; d.showAlert = function (a, b) {}; d.vibrate = function (a) {}; d.showKeyboard = function () {}; d.hideKeyboard = function () {}; d.setKeyboardText = function (a) {}; d.setIconBadgeNumber = function (a) {}; d.enableDebugDrawing = function () { k.DEBUG_DRAW = !0; k.NO_PHYSICS || k.debugDrawer.m_sprite.get_graphics().clear(); }; d.disableDebugDrawing = function () { k.DEBUG_DRAW = !1; k.NO_PHYSICS || k.debugDrawer.m_sprite.get_graphics().clear(); }; d.gameURL = function () { return ''; }; d.exitGame = function () {}; d.createGrayscaleFilter = function () { var a = []; a = a.concat([0.5, 0.5, 0.5, 0, 0]); a = a.concat([0.5, 0.5, 0.5, 0, 0]); a = a.concat([0.5, 0.5, 0.5, 0, 0]); a = a.concat([0, 0, 0, 1, 0]); return new hg(a); }; d.createSepiaFilter = function () { var a = []; a = a.concat([0.34, 0.33, 0.33, 0, 30]); a = a.concat([0.33, 0.34, 0.33, 0, 20]); a = a.concat([0.33, 0.33, 0.34, 0, 0]); a = a.concat([0, 0, 0, 1, 0]); return new hg(a); }; d.createNegativeFilter = function () { var a = []; a = a.concat([-1, 0, 0, 0, 255]); a = a.concat([0, -1, 0, 0, 255]); a = a.concat([0, 0, -1, 0, 255]); a = a.concat([0, 0, 0, 1, 0]); return new hg(a); }; d.createTintFilter = function (a, b) { null == b && (b = 1); var c = new $a(); c.colorize(a, b); return c.getFilter(); }; d.createHueFilter = function (a) { var b = new $a(); b.adjustHue(a); b.adjustSaturation(1); return b.getFilter(); }; d.createSaturationFilter = function (a) { var b = new $a(); b.adjustSaturation(a / 100); return b.getFilter(); }; d.createBrightnessFilter = function (a) { var b = new $a(); b.adjustBrightness(a / 100); return b.getFilter(); }; d.prototype = { wrapper: null, propertyChangeEvents: null, equalityPairs: null, checkProperties: null, nameMap: null, attributeTweens: null, scriptInit: null, toInternalName: function (a) { if (null == this.nameMap) return a; var b = this.nameMap.h[a]; return null == b ? a : b; }, forwardMessage: function (a) {}, clearListeners: function () { this.propertyChangeEvents = new qa(); }, internalGetGroup: function (a, b, c) { if (k.NO_PHYSICS) return ( (b = x.__cast(c, uc)), a == b.actorA ? d.engine.getGroup(b.groupA) : d.engine.getGroup(b.groupB) ); b = x.__cast(b, Hf); if (null == b) return x.__cast(a, tb).getGroup(); a = b.groupID; return -1e3 == a && ((b = b.getBody()), null != b) ? d.engine.getGroup(b.getUserData().groupID) : d.engine.getGroup(a); }, init: function () {}, addMobileKeyboardListener: function (a, b) { a = new yi(fd.TYPE_KEYBOARD, a, b); d.engine.nativeListeners.push(a); }, addMobileAdListener: function (a, b) { a = new yi(fd.TYPE_ADS, a, b); d.engine.nativeListeners.push(a); }, addGameCenterListener: function (a, b) { a = new yi(fd.TYPE_GAMECENTER, a, b); d.engine.nativeListeners.push(a); }, addPurchaseListener: function (a, b) { a = new yi(fd.TYPE_PURCHASES, a, b); d.engine.nativeListeners.push(a); }, addListener: function (a, b) { a.add(b); this instanceof u && x.__cast(this, u).actor.registerListener(a, b); }, addListenerWithKey: function (a, b, c) { a.exists(b) || a.set(b, new Fc()); a = a.get(b); a.add(c); this instanceof u && x.__cast(this, u).actor.registerListener(a, c); }, addListenerWithKey2: function (a, b, c, e) { if (!a.h.hasOwnProperty(b)) { var f = new Za(); a.h[b] = f; } if (!a.h[b].h.hasOwnProperty(c)) { var d = a.h[b]; f = new Fc(); d.h[c] = f; } a = a.h[b].h[c]; a.add(e); this instanceof u && x.__cast(this, u).actor.registerListener(a, e); }, addWhenCreatedListener: function (a, b) { null != a && this.addListener(a.whenCreated, function () { b(null); }); }, addWhenKilledListener: function (a, b) { null != a && this.addListener(a.whenKilled, function () { b(null); }); }, addWhenUpdatedListener: function (a, b) { var c = this instanceof u; null == a && c && (a = x.__cast(this, u).actor); null != a ? ((c = function (a) { b(a, null); }), this.addListener(a.whenUpdated, c)) : ((c = function (a) { b(a, null); }), this.addListener(d.engine.whenUpdated, c)); }, addWhenDrawingListener: function (a, b) { var c = this instanceof u; null == a && c && (a = x.__cast(this, u).actor); null != a ? ((c = function (a, c, d) { b(a, c, d, null); }), this.addListener(a.whenDrawing, c)) : ((c = function (a, c, d) { b(a, c, d, null); }), this.addListener(d.engine.whenDrawing, c)); }, addActorEntersRegionListener: function (a, b) { null != a && this.addListener(a.whenActorEntered, function (a) { b(a, null); }); }, addActorExitsRegionListener: function (a, b) { null != a && this.addListener(a.whenActorExited, function (a) { b(a, null); }); }, addActorPositionListener: function (a, b) { null != a && this.addListener(a.whenPositionStateChanged, function (a, e, f, d) { b(a, e, f, d, null); }); }, addActorTypeGroupPositionListener: function (a, b) { this.addListenerWithKey( d.engine.whenTypeGroupPositionStateChangedEvents, a, function (a, e, f, d, p) { b(a, e, f, d, p, null); } ); }, addSwipeListener: function (a) { this.addListener(d.engine.whenSwiped, function () { a(null); }); }, addMultiTouchStartListener: function (a) { this.addListener(d.engine.whenMTStarted, function (b) { a(b, null); }); }, addMultiTouchMoveListener: function (a) { this.addListener(d.engine.whenMTDragged, function (b) { a(b, null); }); }, addMultiTouchEndListener: function (a) { this.addListener(d.engine.whenMTEnded, function (b) { a(b, null); }); }, addKeyStateListener: function (a, b) { this.addListener(d.engine.whenKeyPressedEvents.getOrCreateEvent(a), function (a, e) { b(a, e, null); }); }, addAnyKeyPressedListener: function (a) { this.addListener(d.engine.whenAnyKeyPressed, function (b) { a(b, null); }); }, addAnyKeyReleasedListener: function (a) { this.addListener(d.engine.whenAnyKeyReleased, function (b) { a(b, null); }); }, addAnyGamepadPressedListener: function (a) { this.addListener(d.engine.whenAnyGamepadPressed, function (b) { a(b, null); }); }, addAnyGamepadReleasedListener: function (a) { this.addListener(d.engine.whenAnyGamepadReleased, function (b) { a(b, null); }); }, addMousePressedListener: function (a) { this.addListener(d.engine.whenMousePressed, function () { a(null); }); }, addMouseReleasedListener: function (a) { this.addListener(d.engine.whenMouseReleased, function () { a(null); }); }, addMouseMovedListener: function (a) { this.addListener(d.engine.whenMouseMoved, function () { a(null); }); }, addMouseDraggedListener: function (a) { this.addListener(d.engine.whenMouseDragged, function () { a(null); }); }, addMouseOverActorListener: function (a, b) { null != a && this.addListener(a.whenMousedOver, function (a) { b(a, null); }); }, addPropertyChangeListener: function (a, b, c) { var e = function () { c(null, null); }; this.addListenerWithKey(this.propertyChangeEvents, a, e); null != b && this.addListenerWithKey(this.propertyChangeEvents, b, e); this.checkProperties = !0; }, propertyChanged: function (a) { if ( this.checkProperties && ((a = this.propertyChangeEvents.h[a]), null != a && 0 < a.length) ) for (a._dispatchIndex = 0; a._dispatchIndex < a.length; ) { try { a.listeners[a._dispatchIndex](); } catch (b) { if (((la.lastError = b), 'string' != typeof M.caught(b).unwrap())) throw b; } ++a._dispatchIndex; } }, addCollisionListener: function (a, b) { null != a && this.addListener(a.whenCollided, function (a) { b(a, null); }); }, addSceneCollisionListener: function (a, b, c) { this.addListenerWithKey2(d.engine.whenCollidedEvents, a, b, function (a) { c(a, null); }); }, addWhenTypeGroupCreatedListener: function (a, b) { this.addListenerWithKey(d.engine.whenTypeGroupCreatedEvents, a, function (a) { b(a, null); }); }, addWhenTypeGroupKilledListener: function (a, b) { this.addListenerWithKey(d.engine.whenTypeGroupKilledEvents, a, function (a) { b(a, null); }); }, addSoundListener: function (a, b) { a instanceof Ph ? this.addListenerWithKey(d.engine.whenSoundEndedEvents, a, function () { b(null); }) : this.addListenerWithKey(d.engine.whenChannelEndedEvents, a, function () { b(null); }); }, addFocusChangeListener: function (a) { this.addListener(d.engine.whenFocusChanged, function (b) { a(b, null); }); }, addPauseListener: function (a) { this.addListener(d.engine.whenPaused, function (b) { a(b, null); }); }, addFullscreenListener: function (a) { this.addListener(d.engine.whenFullscreenChanged, function () { a(null); }); }, addGameScaleListener: function (a) { this.addListener(d.engine.whenGameScaleChanged, function () { a(null); }); }, addScreenSizeListener: function (a) { this.addListener(d.engine.whenScreenSizeChanged, function () { a(null); }); }, disableThisBehavior: function () { d.engine.behaviors.disableBehavior(this.wrapper.name); }, tweenNumber: function (a, b, c, e) { null == c && (c = 1); var f = this, d = this.attributeTweens.h[a]; null == d && ((d = new Ae()), d.doOnUpdate(function () { f[a] = d.value; }), (this.attributeTweens.h[a] = d)); d.tween(Z.field(this, a), b, e, (1e3 * c) | 0); }, abortTweenNumber: function (a) { a = this.attributeTweens.h[a]; null != a && vb.cancel(a); }, pauseTweens: function () { for (var a = this.attributeTweens.h, b = Object.keys(a), c = b.length, e = 0; e < c; ) a[b[e++]].paused = !0; }, unpauseTweens: function () { for (var a = this.attributeTweens.h, b = Object.keys(a), c = b.length, e = 0; e < c; ) a[b[e++]].paused = !1; }, __class__: d }; var u = function (a) { d.call(this); this.actor = a; }; h['com.stencyl.behavior.ActorScript'] = u; u.__name__ = 'com.stencyl.behavior.ActorScript'; u.__super__ = d; u.prototype = r(d.prototype, { actor: null, getValue: function (a, b) { return this.actor.getValue(a, b); }, setValue: function (a, b, c) { this.actor.setValue(a, b, c); }, shout: function (a, b) { return this.actor.shout(a, b); }, disableThisBehavior: function () { this.actor.disableBehavior(this.wrapper.name); }, __class__: u }); var wi = function (a, b, c, e, f, d, p) { this.ID = a; this.fieldName = b; this.fullName = c; this.type = f; this.value = e; this.realValue = null; this.hidden = p; }; h['com.stencyl.behavior.Attribute'] = wi; wi.__name__ = 'com.stencyl.behavior.Attribute'; wi.prototype = { ID: null, fieldName: null, fullName: null, type: null, defaultValue: null, value: null, realValue: null, hidden: null, getRealValue: function () { null == this.realValue && ('int' == this.type ? (this.realValue = this.value) : 'float' == this.type || 'number' == this.type ? (this.realValue = this.value) : 'bool' == this.type || 'boolean' == this.type ? (this.realValue = this.value) : 'color' == this.type ? (this.realValue = this.value) : 'sound' == this.type || 'actortype' == this.type || 'font' == this.type ? ((this.realValue = -1 == this.value ? null : lc.get().resources.get(this.value)), 'font' != this.type || this.realValue instanceof Bf || (this.realValue = null), 'sound' != this.type || this.realValue instanceof Ph || (this.realValue = null), 'actortype' != this.type || this.realValue instanceof dg || (this.realValue = null)) : 'actorgroup' == this.type ? (this.realValue = this.value) : 'control' == this.type ? (this.realValue = this.value) : 'animation' == this.type ? (this.realValue = this.value) : 'game-attribute' == this.type ? (this.realValue = this.value) : 'scene' == this.type ? (this.realValue = Fa.get().scenes.h[this.value]) : 'text' == this.type ? (this.realValue = this.value) : 'list' == this.type ? ((this.realValue = this.value), null == this.value && (this.realValue = [])) : 'map' == this.type ? ((this.realValue = this.value), null == this.value && (this.realValue = new qa())) : null != this.value && 'actor' == this.type ? (this.realValue = this.value) : null != this.value && 'joint' == this.type ? (this.realValue = this.value) : null != this.value && 'region' == this.type && (this.realValue = this.value)); return this.realValue; }, __class__: wi }; var Yk = function (a, b, c, e, f, d, p, l, v, n) { this.isEvent = n; this.parent = a; this.engine = b; this.classname = f; if (null != b) try { this.cls = h[f]; } catch (Fe) { if (((la.lastError = Fe), 'string' != typeof M.caught(Fe).unwrap())) throw Fe; } this.enabled = d; this.drawable = p; this.ID = c; this.name = e; this.type = v; this.attributes = l; }; h['com.stencyl.behavior.Behavior'] = Yk; Yk.__name__ = 'com.stencyl.behavior.Behavior'; Yk.prototype = { parent: null, engine: null, enabled: null, drawable: null, isEvent: null, ID: null, name: null, type: null, classname: null, cls: null, script: null, attributes: null, initScript: function (a) { null == a && (a = !1); if (null == this.cls) this.script = new sa(); else { if ('actor' == this.type) { if (x.getClass(this.parent) == k) { this.script = new sa(); return; } this.script = ma.createInstance(this.cls, [0, this.parent, null]); } else { if (x.getClass(this.parent) == tb) { this.script = new sa(); return; } this.script = ma.createInstance(this.cls, [0, null]); } this.script.wrapper = this; this.initAttributes(); if (!a) try { this.script.init(), (this.script.scriptInit = !0); } catch (b) { if (((la.lastError = b), 'string' != typeof M.caught(b).unwrap())) throw b; } } }, initAttributes: function () { for (var a = this.attributes.h, b = Object.keys(a), c = b.length, e = 0; e < c; ) { var f = a[b[e++]]; try { if ( !( f.hidden || ('actor' == f.type && 'actor' == f.fieldName && this.script instanceof u) ) ) { var d = this.script.toInternalName(f.fieldName); if ('actor' == f.type || 'joint' == f.type || 'region' == f.type) { var p = f.getRealValue(); 'actor' == f.type ? (this.script[d] = this.engine.getActor(p)) : 'joint' != f.type && 'region' == f.type && (this.script[d] = this.engine.getRegion(p)); } else if ('actorgroup' == f.type) { var l = f.getRealValue(); this.script[d] = this.engine.getGroup(l); } else { var v = f.getRealValue(); if ('list' == f.type) { f = null; if (null != v) { f = x.__cast(v, Array); for (var n = [], k = 0; k < f.length; ) { var m = f[k]; ++k; n.push(m); } f = n; } else f = []; this.script[d] = f; } else if ('map' == f.type) { f = null; if (null != v) { n = v; f = new qa(); for (var h = n.keys(); h.hasNext(); ) { var t = h.next(), q = n.get(t); f.h[t] = q; } } else f = new qa(); this.script[d] = f; } else this.script[d] = v; } } } catch (Ow) { if (((la.lastError = Ow), 'string' != typeof M.caught(Ow).unwrap())) throw Ow; } } }, __class__: Yk }; var Ij = function (a, b) { this.behaviorID = a; this.values = b; this.enabled = !0; }; h['com.stencyl.behavior.BehaviorInstance'] = Ij; Ij.__name__ = 'com.stencyl.behavior.BehaviorInstance'; Ij.prototype = { behaviorID: null, values: null, enabled: null, __class__: Ij }; var Aj = function () { this.behaviors = []; this.cache = new qa(); }; h['com.stencyl.behavior.BehaviorManager'] = Aj; Aj.__name__ = 'com.stencyl.behavior.BehaviorManager'; Aj.prototype = { behaviors: null, cache: null, destroy: function () { this.cache = this.behaviors = null; }, add: function (a) { this.cache.h[a.name] = a; this.behaviors.push(a); }, hasBehavior: function (a) { return null == this.cache ? !1 : null != this.cache.h[a]; }, enableBehavior: function (a) { if (this.hasBehavior(a)) { a = this.cache.h[a]; if (null != a.script && !a.script.scriptInit) try { a.script.init(), (a.script.scriptInit = !0); } catch (b) { if (((la.lastError = b), 'string' != typeof M.caught(b).unwrap())) throw b; } a.enabled = !0; } }, disableBehavior: function (a) { this.hasBehavior(a) && (this.cache.h[a].enabled = !1); }, isBehaviorEnabled: function (a) { return this.hasBehavior(a) ? this.cache.h[a].enabled : !1; }, initScripts: function () { for (var a = 0, b = this.behaviors.length; a < b; ) { var c = a++; c = this.behaviors[c]; c.initScript(!c.enabled); } }, getAttribute: function (a, b) { a = this.cache.h[a]; if (null != a && null != a.script) { b = a.script.toInternalName(b); var c = Z.field(a.script, b); null != c || th.hasField(a.script.wrapper.classname, b); return c; } return null; }, setAttribute: function (a, b, c) { a = this.cache.h[a]; null != a && null != a.script && th.hasField(a.script.wrapper.classname, b) && ((a.script[b] = c), a.script.propertyChanged(b)); }, call: function (a, b) { if (null == this.cache) return null; for (var c = null, e = 0, f = this.behaviors.length; e < f; ) { var d = e++; d = this.behaviors[d]; if (d.enabled && null != d.script) try { var p = Z.field(d.script, a); null != p ? (c = p.apply(d.script, b)) : d.script.forwardMessage(a); } catch (l) { if (((la.lastError = l), 'string' == typeof M.caught(l).unwrap())) d.script.forwardMessage(a); else throw l; } } return c; }, call2: function (a, b, c) { if (null == this.cache) return null; var e = null; a = this.cache.h[a]; if (null != a) { if (!a.enabled || null == a.script) return e; try { var f = Z.field(a.script, b); null != f ? (e = f.apply(a.script, c)) : a.script.forwardMessage(b); } catch (g) { if (((la.lastError = g), 'string' == typeof M.caught(g).unwrap())) a.script.forwardMessage(b); else throw g; } } return e; }, __class__: Aj }; var th = function () {}; h['com.stencyl.behavior.ReflectionHelper'] = th; th.__name__ = 'com.stencyl.behavior.ReflectionHelper'; th.getFieldMap = function (a) { var b = th.fieldMaps.h[a]; if (null == b) try { for (var c = ma.getInstanceFields(h[a]), e = new qa(), f = 0; f < c.length; ) { var d = c[f]; ++f; e.h[d] = !0; } b = e; th.fieldMaps.h[a] = b; } catch (p) { if (((la.lastError = p), 'string' != typeof M.caught(p).unwrap())) throw p; } return b; }; th.hasField = function (a, b) { a = th.getFieldMap(a); return null == a ? !1 : Object.prototype.hasOwnProperty.call(a.h, b); }; var sa = function () { d.call(this); }; h['com.stencyl.behavior.SceneScript'] = sa; sa.__name__ = 'com.stencyl.behavior.SceneScript'; sa.__super__ = d; sa.prototype = r(d.prototype, { __class__: sa }); var al = function (a, b, c, e) { this.toExecute = a; this.interval = b; this.repeats = c; this.actor = e; this.done = !1; this.timer = b; }; h['com.stencyl.behavior.TimedTask'] = al; al.__name__ = 'com.stencyl.behavior.TimedTask'; al.prototype = { toExecute: null, interval: null, repeats: null, actor: null, timer: null, done: null, actorCreateTime: null, update: function (a) { null == this.actor || this.actor.isAlive() ? (null == this.actor && k.engine.isPaused()) || (null != this.actor && this.actor.isPaused()) || ((this.timer -= a), 0 >= this.timer && (this.toExecute(this), (this.done = !this.repeats), this.repeats && (this.timer += this.interval))) : (this.done = !0); }, __class__: al }; var Fc = function () { this._dispatchIndex = -1; this.listeners = []; this.length = 0; }; h['com.stencyl.event.Event'] = Fc; Fc.__name__ = 'com.stencyl.event.Event'; Fc.prototype = { listeners: null, length: null, _dispatchIndex: null, add: function (a) { this.listeners.push(a); ++this.length; }, has: function (a) { for (var b = 0, c = this.listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.listeners.length; 0 <= --b; ) Z.compareMethods(this.listeners[b], a) && (this.listeners.splice(b, 1), --this.length, this._dispatchIndex >= b && --this._dispatchIndex); }, removeAll: function () { this.listeners.splice(0, this.length); this._dispatchIndex = this.length = 0; }, __class__: Fc }; var Xw = function () {}; h['com.stencyl.event.EventDispatcher'] = Xw; Xw.__name__ = 'com.stencyl.event.EventDispatcher'; var On = function () { this.keys = []; this.map = new qa(); }; h['com.stencyl.event.EventMap_String_func_Bool_Bool_Void'] = On; On.__name__ = 'com.stencyl.event.EventMap_String_func_Bool_Bool_Void'; On.prototype = { keys: null, map: null, hasEvents: function () { return 0 < this.keys.length; }, getOrCreateEvent: function (a) { var b = this.map.get(a); null == b && ((b = new Fc()), this.map.set(a, b), this.keys.push(a)); return b; }, getEvent: function (a) { return this.map.get(a); }, __class__: On }; var yi = function (a, b, c) { this.metaType = a; this.type = b; this.fn = c; }; h['com.stencyl.event.NativeListener'] = yi; yi.__name__ = 'com.stencyl.event.NativeListener'; yi.prototype = { metaType: null, type: null, fn: null, checkEvents: function (a) { a = a.eventTable.h[this.metaType]; if (null != a) for (var b = 0; b < a.length; ) { var c = a[b]; ++b; c.type == this.type && (this.metaType == fd.TYPE_ADS ? this.fn() : this.metaType == fd.TYPE_PURCHASES ? this.fn(c.data1) : this.metaType == fd.TYPE_GAMECENTER ? this.fn(c.data1) : this.metaType == fd.TYPE_KEYBOARD && this.fn(c.data1)); } }, __class__: yi }; var Uc = function (a, b) { null == b && (b = ''); this.type = a; this.data1 = b; }; h['com.stencyl.event.StencylEvent'] = Uc; Uc.__name__ = 'com.stencyl.event.StencylEvent'; Uc.prototype = { type: null, data1: null, __class__: Uc }; var bb = function (a, b) { null == b && (b = 2); this.swipeTimeout = 0.1; this.longPressDelay = 1; var c = this; if (!bb.initialized) { bb.initialized = !0; var e = Ma.get_current().stage; bb.moveToleSqr = 0.008 * new na(e.stageWidth, e.stageHeight).get_length(); bb.moveToleSqr *= bb.moveToleSqr; ue.get_supportsTouchEvents() && (ue.inputMode = 2); } this.owner = a; this.mode = b; a = ue.get_supportsTouchEvents(); this.owner.mouseEnabled = !0; this.listenEvents = 1 == this.mode ? a ? bb.touchEvents : bb.mouseEvents : a ? bb.geTouchEvents : bb.geMouseEvents; this.handler = 1 == this.mode ? a ? q(this, this.convertTouch) : q(this, this.convertMouse) : a ? q(this, this.onTouch) : q(this, this.onMouse); a = 0; for (b = this.listenEvents; a < b.length; ) (e = b[a]), ++a, this.owner.addEventListener(e, this.handler); 3 == this.mode && Ma.get_current().stage.addEventListener('resize', function (a) { c.overlay = null; }); this.touchList = new K(); this.setReady(); }; h['com.stencyl.gestures.RoxGestureAgent'] = bb; bb.__name__ = 'com.stencyl.gestures.RoxGestureAgent'; bb.__properties__ = { get_multitouchSupported: 'get_multitouchSupported' }; bb.init = function () { if (!bb.initialized) { bb.initialized = !0; var a = Ma.get_current().stage; bb.moveToleSqr = 0.008 * new na(a.stageWidth, a.stageHeight).get_length(); bb.moveToleSqr *= bb.moveToleSqr; ue.get_supportsTouchEvents() && (ue.inputMode = 2); } }; bb.localOffset = function (a, b) { var c = a.parent.localToGlobal(new na(a.get_x(), a.get_y())); c.offset(b.x, b.y); c = a.parent.globalToLocal(c); c.offset(-a.get_x(), -a.get_y()); return c; }; bb.get_multitouchSupported = function () { return ue.get_supportsTouchEvents() ? 1 < ue.maxTouchPoints : !1; }; bb.initTypeMap = function () { for (var a = new qa(), b = 0, c = bb.MAP.length >> 1; b < c; ) { var e = b++; a.h[bb.MAP[e << 1]] = bb.MAP[(e << 1) + 1]; } return a; }; bb.prototype = { mode: null, longPressDelay: null, swipeTimeout: null, owner: null, touch0: null, touch1: null, touchList: null, listenEvents: null, handler: null, longPressTimer: null, tweener: null, overlay: null, state: null, detach: function () { null != this.tweener && (vb.cancel(this.tweener), (this.tweener = null)); this.setReady(); for (var a = 0, b = this.listenEvents; a < b.length; ) { var c = b[a]; ++a; this.owner.removeEventListener(c, this.handler); } this.overlay = this.owner = null; }, getHandler: function (a) { null == a && (a = 3); var b = q(this, this.handleEvent), c = a; return function (a) { b(c, a); }; }, startTweenXY: function (a, b, c, e) { var f = this; this.tweener = new Lf(); this.tweener .tween(a.get_x(), c, a.get_y(), e, J.linear, (1e3 * b) | 0) .doOnUpdate(function () { a.set_x(f.tweener.value1); a.set_y(f.tweener.value2); }); }, stopTween: function () { null != this.tweener && (vb.cancel(this.tweener), (this.tweener = null)); }, handleEvent: function (a, b) { var c = b.target; if (c == this.owner) switch (b.type) { case 'rox_gesture_pan': b = b.extra; var e = c.parent.localToGlobal(new na(c.get_x(), c.get_y())); e.offset(b.x, b.y); e = c.parent.globalToLocal(e); e.offset(-c.get_x(), -c.get_y()); b = e; 0 != (a & 1) && c.set_x(c.get_x() + b.x); 0 != (a & 2) && c.set_y(c.get_y() + b.y); break; case 'rox_gesture_pinch': e = b.extra; var f = c.parent.localToGlobal(new na(c.get_x(), c.get_y())), d = f.x - b.stageX; f = f.y - b.stageY; a = Math.atan2(f, d); d = new na(d, f).get_length(); d = na.polar(d * e, a); d.offset(b.stageX, b.stageY); d = c.parent.globalToLocal(d); c.set_scaleX(c.get_scaleX() * e); c.set_scaleY(c.get_scaleY() * e); c.set_x(d.x); c.set_y(d.y); break; case 'rox_gesture_rotation': a = b.extra; f = c.parent.localToGlobal(new na(c.get_x(), c.get_y())); d = f.x - b.stageX; f = f.y - b.stageY; e = Math.atan2(f, d); d = new na(d, f).get_length(); d = na.polar(d, e + a); d.offset(b.stageX, b.stageY); d = c.parent.globalToLocal(d); c.set_rotation(c.get_rotation() + bb.R2D * a); c.set_x(d.x); c.set_y(d.y); break; case 'rox_gesture_swipe': b = new na(2 * b.extra.x, 2 * b.extra.y); e = c.parent.localToGlobal(new na(c.get_x(), c.get_y())); e.offset(b.x, b.y); e = c.parent.globalToLocal(e); e.offset(-c.get_x(), -c.get_y()); b = e; a = c.get_x() + b.x; b = c.get_y() + b.y; var p = this; this.tweener = new Lf(); this.tweener .tween(c.get_x(), a, c.get_y(), b, J.linear, 2e3) .doOnUpdate(function () { c.set_x(p.tweener.value1); c.set_y(p.tweener.value2); }); } }, convertTouch: function (a) { this.owner.dispatchEvent( new Yc( bb.typeMap.h[a.type], a.bubbles, a.cancelable, a.localX, a.localY, a.stageX, a.stageY, a.touchPointID, this ) ); }, convertMouse: function (a) { var b = a.type; ('mouseDown' == b || 'mouseUp' == b || 'click' == b || a.buttonDown) && this.owner.dispatchEvent( new Yc( bb.typeMap.h[b], a.bubbles, a.cancelable, a.localX, a.localY, a.stageX, a.stageY, 0, this ) ); }, onTouch: function (a) { var b = a.touchPointID, c = null == this.touch0 || this.touch0.tid == b; (c || (null != this.touch1 && this.touch1.tid == b) || (null != this.touch0 && null == this.touch1 && this.touch0.tid != b)) && this.handleTouch(bb.typeMap.h[a.type], a, c, b); }, onMouse: function (a) { var b = a.type; ('mouseDown' == b || 'mouseUp' == b || a.buttonDown) && this.handleTouch(bb.typeMap.h[b], a, !0, 0); }, handleTouch: function (a, b, c, e) { var f = new Tn(this.owner, b, e); e = c ? this.touch0 : this.touch1; if ('rox_touch_move' == a && null != e) { var d = e.sx - f.sx; var p = e.sy - f.sy; d = d * d + p * p < bb.moveToleSqr; } else d = !1; if (d) return !1; e = !0; switch (this.state) { case 0: if (c && 'rox_touch_begin' == a) { this.state = 1; this.touch0 = f; var l = q(this, this.sendLongPress); d = function () { l(f); }; this.longPressTimer = vb.timer((1e3 * this.longPressDelay) | 0).doOnComplete(d); null != this.tweener && (vb.cancel(this.tweener), (this.tweener = null)); if (3 == this.mode) for ( c = Ma.get_current().stage, null == this.overlay && ((this.overlay = new Ca()), this.overlay.set_name('overlay'), this.overlay.get_graphics().beginFill(16777215, 0.00392156862745098), this.overlay.get_graphics().drawRect(0, 0, c.stageWidth, c.stageHeight)), c.addChild(this.overlay), c = 0, a = this.listenEvents; c < a.length; ) (d = a[c]), ++c, this.overlay.addEventListener(d, this.handler); } else e = !1; break; case 1: c && 'rox_touch_end' == a ? (this.owner.dispatchEvent( new Yc('rox_gesture_tap', null, null, f.lx, f.ly, f.sx, f.sy, null, this) ), this.setReady()) : c && 'rox_touch_move' == a ? ((c = new na(f.sx - this.touch0.sx, f.sy - this.touch0.sy)), this.owner.dispatchEvent( new Yc('rox_gesture_pan', null, null, f.lx, f.ly, f.sx, f.sy, null, this, c) ), (this.state = 4), null != this.touch0 && this.touchList.push(this.touch0), (this.touch0 = f), null != this.longPressTimer && (vb.cancel(this.longPressTimer), (this.longPressTimer = null))) : c || 'rox_touch_begin' != a ? (e = !1) : ((this.state = 2), (this.touch1 = f), null != this.longPressTimer && (vb.cancel(this.longPressTimer), (this.longPressTimer = null))); break; case 2: 'rox_touch_end' == a ? (this.owner.dispatchEvent( new Yc('rox_gesture_end', null, null, f.lx, f.ly, f.sx, f.sy, null, this) ), this.setReady()) : 'rox_touch_move' == a ? ((b = c ? this.touch1 : this.touch0), (p = c ? this.touch0 : this.touch1), (d = na.distance(f.spt, b.spt) / na.distance(p.spt, b.spt)), (a = Math.atan2(f.sy - b.sy, f.sx - b.sx) - Math.atan2(p.sy - b.sy, p.sx - b.sx)), (b = na.interpolate(b.lpt, p.lpt, 0.5)), (p = this.owner.localToGlobal(b)), 1 != d && this.owner.dispatchEvent( new Yc('rox_gesture_pinch', null, null, b.x, b.y, p.x, p.y, null, this, d) ), 0 != a && this.owner.dispatchEvent( new Yc('rox_gesture_rotation', null, null, b.x, b.y, p.x, p.y, null, this, a) ), c ? (this.touch0 = f) : (this.touch1 = f)) : (e = !1); break; case 4: if (c && 'rox_touch_move' == a) (c = new na(f.sx - this.touch0.sx, f.sy - this.touch0.sy)), this.owner.dispatchEvent( new Yc('rox_gesture_pan', null, null, f.lx, f.ly, f.sx, f.sy, null, this, c) ), (this.state = 4), null != this.touch0 && this.touchList.push(this.touch0), (this.touch0 = f), null != this.longPressTimer && (vb.cancel(this.longPressTimer), (this.longPressTimer = null)); else if ( c && ('rox_touch_end' == a || (3 != this.mode && 'rox_touch_out' == a && b.target == this.owner)) ) { if (0 >= this.swipeTimeout || f.time - this.touch0.time < this.swipeTimeout) { c = this.touchList.pop(); b = null; for (a = this.touchList.h; null != a; ) { d = a.item; a = a.next; if (0.2 < c.time - d.time) break; b = d; } null != b && ((p = c.sy - b.sy), (d = c.sx - b.sx), (a = Math.atan2(p, d)), (c = na.polar((new na(d, p).get_length() / (c.time - b.time)) * 0.25, a)), this.owner.dispatchEvent( new Yc('rox_gesture_swipe', null, null, f.lx, f.ly, f.sx, f.sy, null, this, c) )); } this.setReady(); } else c || 'rox_touch_begin' != a ? (e = !1) : (this.owner.dispatchEvent( new Yc('rox_gesture_begin', null, null, f.lx, f.ly, f.sx, f.sy, null, this) ), (this.state = 2), (this.touch1 = f), null != this.longPressTimer && (vb.cancel(this.longPressTimer), (this.longPressTimer = null))); } return e; }, sendLongPress: function (a) { this.owner.dispatchEvent( new Yc('rox_gesture_long_press', null, null, a.lx, a.ly, a.sx, a.sy, null, this) ); this.setReady(); }, setReady: function () { this.state = 0; this.touch0 = this.touch1 = null; this.touchList.clear(); null != this.longPressTimer && (vb.cancel(this.longPressTimer), (this.longPressTimer = null)); if (null != this.overlay && 3 == this.mode) { for (var a = 0, b = this.listenEvents; a < b.length; ) { var c = b[a]; ++a; this.overlay.removeEventListener(c, this.handler); } Ma.get_current().stage.removeChild(this.overlay); } }, setMove: function (a) { this.state = 4; null != this.touch0 && this.touchList.push(this.touch0); this.touch0 = a; null != this.longPressTimer && (vb.cancel(this.longPressTimer), (this.longPressTimer = null)); }, setTwoFingerMove: function (a) { this.state = 2; this.touch1 = a; null != this.longPressTimer && (vb.cancel(this.longPressTimer), (this.longPressTimer = null)); }, cancelLongPress: function () { null != this.longPressTimer && (vb.cancel(this.longPressTimer), (this.longPressTimer = null)); }, __class__: bb }; var Tn = function (a, b, c) { this.tid = c; this.sx = b.stageX; this.sy = b.stageY; this.spt = new na(this.sx, this.sy); this.lpt = a.globalToLocal(this.spt); this.lx = this.lpt.x; this.ly = this.lpt.y; this.time = new Date().getTime() / 1e3; }; h['com.stencyl.gestures._RoxGestureAgent.TouchPoint'] = Tn; Tn.__name__ = 'com.stencyl.gestures._RoxGestureAgent.TouchPoint'; Tn.prototype = { tid: null, lx: null, ly: null, sx: null, sy: null, lpt: null, spt: null, time: null, distSqr: function (a) { var b = a.sx - this.sx; a = a.sy - this.sy; return b * b + a * a; }, __class__: Tn }; var oa = function (a, b, c) { null == c && (c = !1); null == b && (b = !1); this.type = a; this.bubbles = b; this.cancelable = c; this.eventPhase = 2; }; h['openfl.events.Event'] = oa; oa.__name__ = 'openfl.events.Event'; oa.prototype = { bubbles: null, cancelable: null, currentTarget: null, eventPhase: null, target: null, type: null, __isCanceled: null, __isCanceledNow: null, __preventDefault: null, clone: function () { var a = new oa(this.type, this.bubbles, this.cancelable); a.eventPhase = this.eventPhase; a.target = this.target; a.currentTarget = this.currentTarget; return a; }, formatToString: function (a, b, c, e, f, d) { var g = []; null != b && g.push(b); null != c && g.push(c); null != e && g.push(e); null != f && g.push(f); null != d && g.push(d); return q(this, this.__formatToString).apply(this, [a, g]); }, isDefaultPrevented: function () { return this.__preventDefault; }, preventDefault: function () { this.cancelable && (this.__preventDefault = !0); }, stopImmediatePropagation: function () { this.__isCanceledNow = this.__isCanceled = !0; }, stopPropagation: function () { this.__isCanceled = !0; }, toString: function () { return this.__formatToString('Event', ['type', 'bubbles', 'cancelable']); }, __formatToString: function (a, b) { a = '[' + a; for (var c, e = 0; e < b.length; ) { var f = b[e]; ++e; c = Z.field(this, f); a = 'string' == typeof c ? a + (' ' + f + '="' + B.string(c) + '"') : a + (' ' + f + '=' + B.string(c)); } return a + ']'; }, __init: function () { this.currentTarget = this.target = null; this.cancelable = this.bubbles = !1; this.eventPhase = 2; this.__preventDefault = this.__isCanceledNow = this.__isCanceled = !1; }, __class__: oa }; var Yc = function (a, b, c, e, f, d, p, l, v, n) { null == l && (l = 0); null == c && (c = !1); null == b && (b = !0); oa.call(this, a, b, c); this.localX = e; this.localY = f; this.stageX = d; this.stageY = p; this.touchPointID = l; this.agent = v; this.extra = n; }; h['com.stencyl.gestures.RoxGestureEvent'] = Yc; Yc.__name__ = 'com.stencyl.gestures.RoxGestureEvent'; Yc.__super__ = oa; Yc.prototype = r(oa.prototype, { localX: null, localY: null, stageX: null, stageY: null, touchPointID: null, agent: null, extra: null, toString: function () { return ( this.type + '(' + this.touchPointID + '): local=(' + this.localX + ',' + this.localY + '), stage=(' + this.stageX + ',' + this.stageY + '), extra=' + (this.extra instanceof na ? 'Point(' + B.string(this.extra.x) + ',' + B.string(this.extra.y) + ')' : this.extra) ); }, __class__: Yc }); var el = function () {}; h['com.stencyl.graphics.AbstractAnimation'] = el; el.__name__ = 'com.stencyl.graphics.AbstractAnimation'; el.__isInterface__ = !0; el.prototype = { update: null, getCurrentFrame: null, getNumFrames: null, setFrame: null, isFinished: null, activate: null, reset: null, draw: null, getFrameDurations: null, setFrameDurations: null, setFrameDuration: null, getCurrentImage: null, __class__: el }; var Mc = function (a, b, c) { null == c && (c = !1); La.call(this); this.__drawableType = 2; this.__bitmapData = a; this.pixelSnapping = b; this.smoothing = c; null == b && (this.pixelSnapping = 1); }; h['openfl.display.Bitmap'] = Mc; Mc.__name__ = 'openfl.display.Bitmap'; Mc.__super__ = La; Mc.prototype = r(La.prototype, { pixelSnapping: null, smoothing: null, __image: null, __bitmapData: null, __imageVersion: null, __enterFrame: function (a) { null == this.__bitmapData || null == this.__bitmapData.image || this.__bitmapData.image.version == this.__imageVersion || this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); }, __getBounds: function (a, b) { var c = fa.__pool.get(); null != this.__bitmapData ? c.setTo(0, 0, this.__bitmapData.width, this.__bitmapData.height) : c.setTo(0, 0, 0, 0); c.__transform(c, b); a.__expand(c.x, c.y, c.width, c.height); fa.__pool.release(c); }, __hitTest: function (a, b, c, e, f, d) { if ( !d.get_visible() || this.__isMask || null == this.__bitmapData || (null != this.get_mask() && !this.get_mask().__hitTestMask(a, b)) ) return !1; this.__getRenderTransform(); var g = this.__renderTransform, l = g.a * g.d - g.b * g.c; c = 0 == l ? -g.tx : (1 / l) * (g.c * (g.ty - b) + g.d * (a - g.tx)); g = this.__renderTransform; l = g.a * g.d - g.b * g.c; a = 0 == l ? -g.ty : (1 / l) * (g.a * (b - g.ty) + g.b * (g.tx - a)); if (0 < c && 0 < a && c <= this.__bitmapData.width && a <= this.__bitmapData.height) { if (null != this.__scrollRect && !this.__scrollRect.contains(c, a)) return !1; null == e || f || e.push(d); return !0; } return !1; }, __hitTestMask: function (a, b) { if (null == this.__bitmapData) return !1; this.__getRenderTransform(); var c = this.__renderTransform, e = c.a * c.d - c.b * c.c, f = 0 == e ? -c.tx : (1 / e) * (c.c * (c.ty - b) + c.d * (a - c.tx)); c = this.__renderTransform; e = c.a * c.d - c.b * c.c; a = 0 == e ? -c.ty : (1 / e) * (c.a * (b - c.ty) + c.b * (c.tx - a)); return 0 < f && 0 < a && f <= this.__bitmapData.width && a <= this.__bitmapData.height ? !0 : !1; }, get_bitmapData: function () { return this.__bitmapData; }, set_bitmapData: function (a) { this.__bitmapData = a; this.smoothing = !1; this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); this.__imageVersion = -1; return this.__bitmapData; }, set_height: function (a) { null != this.__bitmapData ? this.set_scaleY(a / this.__bitmapData.height) : this.set_scaleY(0); return a; }, set_width: function (a) { null != this.__bitmapData ? this.set_scaleX(a / this.__bitmapData.width) : this.set_scaleX(0); return a; }, __class__: Mc, __properties__: r(La.prototype.__properties__, { set_bitmapData: 'set_bitmapData', get_bitmapData: 'get_bitmapData' }) }); var Jj = function (a) { Mc.call(this, a.frames[0]); this.model = a; this.set_x(Math.round((-a.frameWidth / 2) * k.SCALE)); this.set_y(Math.round((-a.frameHeight / 2) * k.SCALE)); this.frameIndex = this.timer = 0; this.individualDurations = !1; this.durations = a.durations; this.numFrames = this.durations.length; this.smoothing = aa.antialias; this.finished = 1 >= this.numFrames; null != this.filter ? (this.filteredFrames[this.frameIndex] || ((this.frames[this.frameIndex] = this.applyFilters( this.frames[this.frameIndex], this.model.frames[this.frameIndex], this.filter )), (this.filteredFrames[this.frameIndex] = !0)), this.set_bitmapData(this.frames[this.frameIndex])) : this.set_bitmapData(this.model.frames[this.frameIndex]); this.smoothing = aa.antialias; }; h['com.stencyl.graphics.BitmapAnimation'] = Jj; Jj.__name__ = 'com.stencyl.graphics.BitmapAnimation'; Jj.__interfaces__ = [el]; Jj.__super__ = Mc; Jj.prototype = r(Mc.prototype, { model: null, frameIndex: null, timer: null, finished: null, durations: null, individualDurations: null, frames: null, numFrames: null, filter: null, filteredFrames: null, update: function (a) { this.model.sync && this.model.looping ? ((a = this.frameIndex), (this.timer = this.model.sharedTimer), (this.frameIndex = this.model.sharedFrameIndex), a != this.frameIndex && (null != this.filter ? (this.filteredFrames[this.frameIndex] || ((this.frames[this.frameIndex] = this.applyFilters( this.frames[this.frameIndex], this.model.frames[this.frameIndex], this.filter )), (this.filteredFrames[this.frameIndex] = !0)), this.set_bitmapData(this.frames[this.frameIndex])) : this.set_bitmapData(this.model.frames[this.frameIndex]), (this.smoothing = aa.antialias))) : ((this.timer += a), 0 < this.numFrames && this.timer > this.durations[this.frameIndex] && ((a = this.frameIndex), (this.timer -= this.durations[this.frameIndex]), this.frameIndex++, this.frameIndex >= this.numFrames && (this.model.looping ? (this.frameIndex = 0) : ((this.finished = !0), this.frameIndex--)), a != this.frameIndex && (null != this.filter ? (this.filteredFrames[this.frameIndex] || ((this.frames[this.frameIndex] = this.applyFilters( this.frames[this.frameIndex], this.model.frames[this.frameIndex], this.filter )), (this.filteredFrames[this.frameIndex] = !0)), this.set_bitmapData(this.frames[this.frameIndex])) : this.set_bitmapData(this.model.frames[this.frameIndex]), (this.smoothing = aa.antialias)))); }, getCurrentFrame: function () { return this.frameIndex; }, getNumFrames: function () { return this.numFrames; }, setFrame: function (a) { if (0 > a || a >= this.numFrames) a = 0; a != this.frameIndex && ((this.frameIndex = a), null != this.filter ? (this.filteredFrames[this.frameIndex] || ((this.frames[this.frameIndex] = this.applyFilters( this.frames[this.frameIndex], this.model.frames[this.frameIndex], this.filter )), (this.filteredFrames[this.frameIndex] = !0)), this.set_bitmapData(this.frames[this.frameIndex])) : this.set_bitmapData(this.model.frames[this.frameIndex]), (this.smoothing = aa.antialias)); this.timer = 0; this.finished = !1; }, isFinished: function () { return this.finished; }, reset: function () { this.frameIndex = this.timer = 0; this.finished = !1; null != this.filter ? (this.filteredFrames[this.frameIndex] || ((this.frames[this.frameIndex] = this.applyFilters( this.frames[this.frameIndex], this.model.frames[this.frameIndex], this.filter )), (this.filteredFrames[this.frameIndex] = !0)), this.set_bitmapData(this.frames[this.frameIndex])) : this.set_bitmapData(this.model.frames[this.frameIndex]); this.smoothing = aa.antialias; }, updateBitmap: function () { null != this.filter ? (this.filteredFrames[this.frameIndex] || ((this.frames[this.frameIndex] = this.applyFilters( this.frames[this.frameIndex], this.model.frames[this.frameIndex], this.filter )), (this.filteredFrames[this.frameIndex] = !0)), this.set_bitmapData(this.frames[this.frameIndex])) : this.set_bitmapData(this.model.frames[this.frameIndex]); this.smoothing = aa.antialias; }, set_filter: function (a) { this.filter = a; for (var b = [], c = 0, e = this.numFrames; c < e; ) c++, b.push(!1); this.filteredFrames = b; b = []; c = 0; for (e = this.numFrames; c < e; ) c++, b.push(null); this.frames = b; null != this.filter ? (this.filteredFrames[this.frameIndex] || ((this.frames[this.frameIndex] = this.applyFilters( this.frames[this.frameIndex], this.model.frames[this.frameIndex], this.filter )), (this.filteredFrames[this.frameIndex] = !0)), this.set_bitmapData(this.frames[this.frameIndex])) : this.set_bitmapData(this.model.frames[this.frameIndex]); this.smoothing = aa.antialias; return a; }, applyFilters: function (a, b, c) { null == a && (a = new ja(b.width, b.height)); for (var e = 0; e < c.length; ) { var f = c[e]; ++e; b = f.__applyFilter(a, b, b.rect, X.zero); } return a; }, draw: function (a, b, c, e, f) { if (!aa.disposeImages || this.model.checkImageReadable()) { f = this.get_bitmapData(); null == e && (e = 0); b *= a.scaleX; c *= a.scaleY; a.rect.x = 0; a.rect.y = 0; a.rect.width = f.width; a.rect.height = f.height; a.drawActor ? null != a.actor && a.actor.isHUD ? ((a.point.x = a.x + b), (a.point.y = a.y + c)) : ((a.point.x = a.x + b - k.cameraX), (a.point.y = a.y + c - k.cameraY)) : ((a.point.x = a.x + b), (a.point.y = a.y + c)); a.mtx.identity(); a.mtx.rotate(e); a.mtx.translate(a.point.x, a.point.y); if (0 == e) 1 != a.alpha && ((a.point2.x = 0), (a.point2.y = 0), (a.rect2.width = f.width), (a.rect2.height = f.height), (c = new ja(f.width, f.height, !0, a.toARGB(0, (255 * a.alpha) | 0))), (b = new ja(f.width, f.height, !0, 0)), b.copyPixels(f, a.rect2, a.point2, c, null, !0), (f = b)), a.graphics.beginBitmapFill(f, a.mtx), a.graphics.drawRect(a.point.x, a.point.y, f.width, f.height); else { 1 != a.alpha && ((a.point2.x = 0), (a.point2.y = 0), (a.rect2.width = f.width), (a.rect2.height = f.height), (c = new ja(f.width, f.height, !0, a.toARGB(0, (255 * a.alpha) | 0))), (b = new ja(f.width, f.height, !0, 0)), b.copyPixels(f, a.rect2, a.point2, c, null, !0), (f = b)); c = new ja(f.width + 2, f.height + 2, !0, 0); b = Math.sqrt(Math.pow(c.width, 2) + Math.pow(c.height, 2)) | 0; e = new fa(0, 0, f.width, f.height); var d = new na(1, 1); c.copyPixels(f, e, d); a.graphics.beginBitmapFill(c, a.mtx, !1, aa.antialias); a.graphics.drawRect(a.x - (b - f.width) / 2, a.y - (b - f.height) / 2, b, b); } a.graphics.endFill(); } }, getFrameDurations: function () { return this.durations; }, setFrameDurations: function (a) { if (null != this.durations) { for (var b = [], c = 0, e = this.durations.length; c < e; ) c++, b.push(a); this.durations = b; this.individualDurations = !0; } }, setFrameDuration: function (a, b) { if (!this.individualDurations) { for (var c = [], e = 0, f = this.durations.length; e < f; ) { var d = e++; c.push(this.durations[d]); } this.durations = c; this.individualDurations = !0; } 0 <= a && a < this.durations.length && (this.durations[a] = b); }, framesUpdated: function () { this.set_x(Math.round((-this.model.frameWidth / 2) * k.SCALE)); this.set_y(Math.round((-this.model.frameHeight / 2) * k.SCALE)); null != this.filter ? (this.filteredFrames[this.frameIndex] || ((this.frames[this.frameIndex] = this.applyFilters( this.frames[this.frameIndex], this.model.frames[this.frameIndex], this.filter )), (this.filteredFrames[this.frameIndex] = !0)), this.set_bitmapData(this.frames[this.frameIndex])) : this.set_bitmapData(this.model.frames[this.frameIndex]); this.smoothing = aa.antialias; }, getCurrentImage: function () { return aa.disposeImages && !this.model.checkImageReadable() ? se.UNLOADED : this.get_bitmapData(); }, activate: function () {}, __class__: Jj, __properties__: r(Mc.prototype.__properties__, { set_filter: 'set_filter' }) }); var rh = function () {}; h['com.stencyl.graphics.EngineScaleUpdateListener'] = rh; rh.__name__ = 'com.stencyl.graphics.EngineScaleUpdateListener'; rh.__isInterface__ = !0; rh.prototype = { updateScale: null, __class__: rh }; var Qh = function (a) { this.cacheParentAnchor = X.zero; Ca.call(this); this.img = a; this.offsetY = this.offsetX = 0; this.addChild(a); }; h['com.stencyl.graphics.BitmapWrapper'] = Qh; Qh.__name__ = 'com.stencyl.graphics.BitmapWrapper'; Qh.__interfaces__ = [rh]; Qh.__super__ = Ca; Qh.prototype = r(Ca.prototype, { img: null, offsetX: null, offsetY: null, cacheParentAnchor: null, smoothing: null, imgX: null, imgY: null, tweenProps: null, set_imgX: function (a) { this.set_x((a + this.offsetX) * k.SCALE - this.cacheParentAnchor.x); return (this.imgX = a); }, get_imgX: function () { return this.imgX; }, set_imgY: function (a) { this.set_y((a + this.offsetY) * k.SCALE - this.cacheParentAnchor.y); return (this.imgY = a); }, get_imgY: function () { return this.imgY; }, set_smoothing: function (a) { return (this.img.smoothing = a); }, get_smoothing: function () { return this.img.smoothing; }, setOrigin: function (a, b) { this.set_x(this.get_x() + (a - this.offsetX) * k.SCALE); this.set_y(this.get_y() + (b - this.offsetY) * k.SCALE); this.offsetX = a; this.offsetY = b; this.img.set_x(-a * k.SCALE); this.img.set_y(-b * k.SCALE); }, updateScale: function () { this.updatePosition(); }, updatePosition: function () { this.set_x((this.get_imgX() + this.offsetX) * k.SCALE - this.cacheParentAnchor.x); this.set_y((this.get_imgY() + this.offsetY) * k.SCALE - this.cacheParentAnchor.y); }, get_tweenProps: function () { null == this.tweenProps && (this.tweenProps = new Un(this)); return this.tweenProps; }, __class__: Qh, __properties__: r(Ca.prototype.__properties__, { get_tweenProps: 'get_tweenProps', set_imgY: 'set_imgY', get_imgY: 'get_imgY', set_imgX: 'set_imgX', get_imgX: 'get_imgX', set_smoothing: 'set_smoothing', get_smoothing: 'get_smoothing' }) }); var Un = function (a) { this.bmp = a; this.xy = new Lf().doOnUpdate(q(this, this.onUpdateXY)); this.angle = new Ae().doOnUpdate(q(this, this.onUpdateAngle)); this.alpha = new Ae().doOnUpdate(q(this, this.onUpdateAlpha)); this.scaleXY = new Lf().doOnUpdate(q(this, this.onUpdateScaleXY)); }; h['com.stencyl.graphics.BitmapTweenProperties'] = Un; Un.__name__ = 'com.stencyl.graphics.BitmapTweenProperties'; Un.prototype = { xy: null, angle: null, alpha: null, scaleXY: null, bmp: null, pause: function () { this.xy.paused = !0; this.angle.paused = !0; this.alpha.paused = !0; this.scaleXY.paused = !0; }, unpause: function () { this.xy.paused = !1; this.angle.paused = !1; this.alpha.paused = !1; this.scaleXY.paused = !1; }, cancel: function () { this.xy.active && vb.cancel(this.xy); this.angle.active && vb.cancel(this.angle); this.alpha.active && vb.cancel(this.alpha); this.scaleXY.active && vb.cancel(this.scaleXY); }, onUpdateXY: function () { this.bmp.set_imgX(this.xy.value1); this.bmp.set_imgY(this.xy.value2); }, onUpdateAngle: function () { this.bmp.set_rotation(this.angle.value); }, onUpdateAlpha: function () { this.bmp.set_alpha(this.alpha.value); }, onUpdateScaleXY: function () { this.bmp.set_scaleX(this.scaleXY.value1); this.bmp.set_scaleY(this.scaleXY.value2); }, __class__: Un }; var fl = function () {}; h['com.stencyl.graphics.BlendModes'] = fl; fl.__name__ = 'com.stencyl.graphics.BlendModes'; fl.get = function (a) { return fl.stringBlendMap.h[a]; }; var W = function () { this.drawActor = !1; this.x = this.y = 0; this.scaleX = this.scaleY = k.SCALE; this.alpha = 1; this.blendMode = 10; this.strokeColor = this.fillColor = this.strokeSize = 0; this.rect = new fa(); this.rect2 = new fa(); this.point = new na(); this.point2 = new na(); this.data = [0, 0, 0]; this.drawPoly = !1; this.firstY = this.firstX = this.pointCounter = 0; this.font = this.defaultFont = new Bf(-1, 0, '', !0); this.mtx = new Ia(); }; h['com.stencyl.graphics.G'] = W; W.__name__ = 'com.stencyl.graphics.html'; W.resetStatics = function () { W.fontCache = null; }; W.visitStringCache = function () { for (var a = W.drawnStringCacheKeys.length; 0 < a--; ) { var b = W.drawnStringCache.h[W.drawnStringCacheKeys[a]]; --b.lifetime; if (0 == b.lifetime) { b.img.dispose(); b = W.drawnStringCacheKeys[a]; var c = W.drawnStringCache; Object.prototype.hasOwnProperty.call(c.h, b) && delete c.h[b]; W.drawnStringCacheKeys[a] = W.drawnStringCacheKeys[W.drawnStringCacheKeys.length - 1]; W.drawnStringCacheKeys.pop(); } } }; W.prototype = { defaultFont: null, graphics: null, x: null, y: null, scaleX: null, scaleY: null, alpha: null, blendMode: null, strokeSize: null, fillColor: null, strokeColor: null, font: null, fontData: null, mtx: null, rect: null, rect2: null, point: null, point2: null, data: null, drawPoly: null, pointCounter: null, firstX: null, firstY: null, drawActor: null, actor: null, resetGraphicsSettings: function () { this.alpha = 1; this.strokeColor = this.fillColor = this.strokeSize = 0; this.font = this.defaultFont; }, setFont: function (a) { null != a && a != this.font && (this.font = a); }, startGraphics: function () { !this.drawActor || (null != this.actor && this.actor.isHUD) || ((this.x -= k.cameraX), (this.y -= k.cameraY)); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * k.SCALE, this.strokeColor, this.alpha); }, endGraphics: function () { this.drawActor && !this.actor.isHUD && ((this.x += k.cameraX), (this.y += k.cameraY)); this.graphics.lineStyle(); }, translate: function (a, b) { this.x += a * this.scaleX; this.y += b * this.scaleY; }, moveTo: function (a, b) { if (this.drawActor) { if (null != this.actor) { var c = this.actor; this.drawActor = !0; this.actor = c; if (c.smoothMove) { var e = c.drawY - Math.floor(c.cacheHeight / 2) - c.currOffset.y; this.x = (c.drawX - Math.floor(c.cacheWidth / 2) - c.currOffset.x) * this.scaleX; this.y = e * this.scaleY; } else (this.x = c.colX * this.scaleX), (this.y = c.colY * this.scaleY); } this.x += a * this.scaleX; this.y += b * this.scaleY; } else (this.x = a * this.scaleX), (this.y = b * this.scaleY); }, translateToScreen: function () { this.drawActor = !1; this.actor = null; this.y = this.x = 0; }, translateToActor: function (a) { this.drawActor = !0; this.actor = a; if (a.smoothMove) { var b = a.drawY - Math.floor(a.cacheHeight / 2) - a.currOffset.y; this.x = (a.drawX - Math.floor(a.cacheWidth / 2) - a.currOffset.x) * this.scaleX; this.y = b * this.scaleY; } else (this.x = a.colX * this.scaleX), (this.y = a.colY * this.scaleY); }, getCacheKey: function (a, b, c) { return a + ':' + b.ID + ':' + c + ':' + b.letterSpacing + ':' + k.SCALE; }, drawString: function (a, b, c) { null == this.font && ((this.font = this.defaultFont), this.font.fontScale != k.SCALE && (this.font.fontScale = k.SCALE)); this.drawActor ? null != this.actor && this.actor.isHUD ? ((b = this.x + b * this.scaleX), (c = this.y + c * this.scaleY)) : ((b = this.x + b * this.scaleX - k.cameraX), (c = this.y + c * this.scaleY - k.cameraY)) : ((b = this.x + b * this.scaleX), (c = this.y + c * this.scaleY)); this.mtx.identity(); this.mtx.translate(b, c); var e = null, f = this.font; f = a + ':' + f.ID + ':' + this.alpha + ':' + f.letterSpacing + ':' + k.SCALE; if (Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, f)) (a = W.drawnStringCache.h[f]), (a.lifetime = 5), (e = a.img); else { var d = this.font.font.getTextWidth(a, this.font.letterSpacing, this.font.fontScale), p = (this.font.font.getFontHeight() * this.font.fontScale) | 0; 0 < d && 0 < p && ((e = new ja(d, p, !0, 0)), this.font.font.renderToImg( e, a, 0, this.alpha, 0, 0, this.font.letterSpacing, this.font.fontScale, 0, !1 ), (a = new Mb()), (a.img = e), (a.lifetime = 5), (W.drawnStringCache.h[f] = a), W.drawnStringCacheKeys.push(f)); } null != e && (this.graphics.beginBitmapFill(e, this.mtx, !1, aa.antialias), this.graphics.drawRect(b, c, e.width, e.height), this.graphics.endFill()); }, drawLine: function (a, b, c, e) { a *= this.scaleX; b *= this.scaleY; c *= this.scaleX; e *= this.scaleY; !this.drawActor || (null != this.actor && this.actor.isHUD) || ((this.x -= k.cameraX), (this.y -= k.cameraY)); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * k.SCALE, this.strokeColor, this.alpha); this.graphics.moveTo(this.x + a, this.y + b); this.graphics.lineTo(this.x + c, this.y + e); this.drawActor && !this.actor.isHUD && ((this.x += k.cameraX), (this.y += k.cameraY)); this.graphics.lineStyle(); }, fillPixel: function (a, b) { !this.drawActor || (null != this.actor && this.actor.isHUD) || ((this.x -= k.cameraX), (this.y -= k.cameraY)); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * k.SCALE, this.strokeColor, this.alpha); this.graphics.lineStyle(); this.graphics.beginFill(this.fillColor, this.alpha); this.graphics.drawRect( this.x + ((a * k.SCALE) | 0), this.y + ((b * k.SCALE) | 0), k.SCALE | 0, k.SCALE | 0 ); this.graphics.endFill(); this.drawActor && !this.actor.isHUD && ((this.x += k.cameraX), (this.y += k.cameraY)); this.graphics.lineStyle(); }, drawRect: function (a, b, c, e) { a *= this.scaleX; b *= this.scaleY; c *= this.scaleX; e *= this.scaleY; !this.drawActor || (null != this.actor && this.actor.isHUD) || ((this.x -= k.cameraX), (this.y -= k.cameraY)); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * k.SCALE, this.strokeColor, this.alpha); this.graphics.drawRect(this.x + a, this.y + b, c, e); this.drawActor && !this.actor.isHUD && ((this.x += k.cameraX), (this.y += k.cameraY)); this.graphics.lineStyle(); }, fillRect: function (a, b, c, e) { a *= this.scaleX; b *= this.scaleY; c *= this.scaleX; e *= this.scaleY; !this.drawActor || (null != this.actor && this.actor.isHUD) || ((this.x -= k.cameraX), (this.y -= k.cameraY)); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * k.SCALE, this.strokeColor, this.alpha); this.graphics.beginFill(this.fillColor, this.alpha); this.graphics.drawRect(this.x + a, this.y + b, c, e); this.graphics.endFill(); this.drawActor && !this.actor.isHUD && ((this.x += k.cameraX), (this.y += k.cameraY)); this.graphics.lineStyle(); }, drawRoundRect: function (a, b, c, e, f) { a *= this.scaleX; b *= this.scaleY; c *= this.scaleX; e *= this.scaleY; !this.drawActor || (null != this.actor && this.actor.isHUD) || ((this.x -= k.cameraX), (this.y -= k.cameraY)); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * k.SCALE, this.strokeColor, this.alpha); this.graphics.drawRoundRect(this.x + a, this.y + b, c, e, f, f); this.drawActor && !this.actor.isHUD && ((this.x += k.cameraX), (this.y += k.cameraY)); this.graphics.lineStyle(); }, fillRoundRect: function (a, b, c, e, f) { a *= this.scaleX; b *= this.scaleY; c *= this.scaleX; e *= this.scaleY; !this.drawActor || (null != this.actor && this.actor.isHUD) || ((this.x -= k.cameraX), (this.y -= k.cameraY)); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * k.SCALE, this.strokeColor, this.alpha); this.graphics.beginFill(this.fillColor, this.alpha); this.graphics.drawRoundRect(this.x + a, this.y + b, c, e, f, f); this.graphics.endFill(); this.drawActor && !this.actor.isHUD && ((this.x += k.cameraX), (this.y += k.cameraY)); this.graphics.lineStyle(); }, drawCircle: function (a, b, c) { a *= this.scaleX; b *= this.scaleY; c *= this.scaleX; !this.drawActor || (null != this.actor && this.actor.isHUD) || ((this.x -= k.cameraX), (this.y -= k.cameraY)); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * k.SCALE, this.strokeColor, this.alpha); this.graphics.drawCircle(this.x + a, this.y + b, c); this.drawActor && !this.actor.isHUD && ((this.x += k.cameraX), (this.y += k.cameraY)); this.graphics.lineStyle(); }, fillCircle: function (a, b, c) { a *= this.scaleX; b *= this.scaleY; c *= this.scaleX; !this.drawActor || (null != this.actor && this.actor.isHUD) || ((this.x -= k.cameraX), (this.y -= k.cameraY)); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * k.SCALE, this.strokeColor, this.alpha); this.graphics.beginFill(this.fillColor, this.alpha); this.graphics.drawCircle(this.x + a, this.y + b, c); this.graphics.endFill(); this.drawActor && !this.actor.isHUD && ((this.x += k.cameraX), (this.y += k.cameraY)); this.graphics.lineStyle(); }, beginFillPolygon: function () { this.drawPoly = !1; !this.drawActor || (null != this.actor && this.actor.isHUD) || ((this.x -= k.cameraX), (this.y -= k.cameraY)); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * k.SCALE, this.strokeColor, this.alpha); this.graphics.moveTo(this.x, this.y); this.pointCounter = 0; }, endDrawingPolygon: function () { 2 <= this.pointCounter && (this.drawPoly ? this.graphics.lineTo(this.x + this.firstX, this.y + this.firstY) : (this.graphics.lineTo(this.x + this.firstX, this.y + this.firstY), this.graphics.endFill()), this.drawActor && !this.actor.isHUD && ((this.x += k.cameraX), (this.y += k.cameraY)), this.graphics.lineStyle()); }, beginDrawPolygon: function () { this.drawPoly = !0; !this.drawActor || (null != this.actor && this.actor.isHUD) || ((this.x -= k.cameraX), (this.y -= k.cameraY)); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * k.SCALE, this.strokeColor, this.alpha); this.graphics.moveTo(this.x, this.y); this.pointCounter = 0; }, addPointToPolygon: function (a, b) { a *= this.scaleX; b *= this.scaleY; 0 == this.pointCounter && ((this.firstX = a), (this.firstY = b), this.graphics.moveTo(this.x + a, this.y + b), this.drawPoly || this.graphics.beginFill(this.fillColor, this.alpha)); this.pointCounter++; this.graphics.lineTo(this.x + a, this.y + b); }, drawImage: function (a, b, c, e, f) { null == e && (e = 0); b *= this.scaleX; c *= this.scaleY; this.rect.x = 0; this.rect.y = 0; this.rect.width = a.width; this.rect.height = a.height; this.drawActor ? null != this.actor && this.actor.isHUD ? ((this.point.x = this.x + b), (this.point.y = this.y + c)) : ((this.point.x = this.x + b - k.cameraX), (this.point.y = this.y + c - k.cameraY)) : ((this.point.x = this.x + b), (this.point.y = this.y + c)); this.mtx.identity(); this.mtx.rotate(e); this.mtx.translate(this.point.x, this.point.y); 0 == e ? (1 != this.alpha && ((this.point2.x = 0), (this.point2.y = 0), (this.rect2.width = a.width), (this.rect2.height = a.height), (b = new ja(a.width, a.height, !0, this.toARGB(0, (255 * this.alpha) | 0))), (c = new ja(a.width, a.height, !0, 0)), c.copyPixels(a, this.rect2, this.point2, b, null, !0), (a = c)), this.graphics.beginBitmapFill(a, this.mtx), this.graphics.drawRect(this.point.x, this.point.y, a.width, a.height)) : (1 != this.alpha && ((this.point2.x = 0), (this.point2.y = 0), (this.rect2.width = a.width), (this.rect2.height = a.height), (b = new ja(a.width, a.height, !0, this.toARGB(0, (255 * this.alpha) | 0))), (c = new ja(a.width, a.height, !0, 0)), c.copyPixels(a, this.rect2, this.point2, b, null, !0), (a = c)), (b = new ja(a.width + 2, a.height + 2, !0, 0)), (c = Math.sqrt(Math.pow(b.width, 2) + Math.pow(b.height, 2)) | 0), (e = new fa(0, 0, a.width, a.height)), (f = new na(1, 1)), b.copyPixels(a, e, f), this.graphics.beginBitmapFill(b, this.mtx, !1, aa.antialias), this.graphics.drawRect( this.x - (c - a.width) / 2, this.y - (c - a.height) / 2, c, c )); this.graphics.endFill(); }, toARGB: function (a, b) { return a + (b << 24); }, resetFont: function () { this.font = this.defaultFont; this.font.fontScale != k.SCALE && (this.font.fontScale = k.SCALE); }, __class__: W }; var Mb = function () {}; h['com.stencyl.graphics._G.TemporaryImage'] = Mb; Mb.__name__ = 'com.stencyl.graphics._G.TemporaryImage'; Mb.prototype = { lifetime: null, img: null, __class__: Mb }; var gd = function () {}; h['com.stencyl.graphics.GLUtil'] = gd; gd.__name__ = 'com.stencyl.graphics.GLUtil'; gd.initialize = function () { null == gd.gl && ((gd.context = k.stage.window.context), (gd.context3D = k.stage.context3D), (gd.gl = bc.fromRenderContext(gd.context)), (gd.renderer = k.stage.__renderer), (gd.textureMaxSize = gd.gl.getParameter(gd.gl.MAX_TEXTURE_SIZE)), (gd.textureMaxSize = (gd.textureMaxSize / 2) | 0), gd.textureMaxSize > gd.MAX_TEXTURE_CAP && (gd.textureMaxSize = gd.MAX_TEXTURE_CAP), null == ja.__supportsBGRA && new ja(1, 1, !0, 0).getTexture(gd.context3D)); }; gd.uploadTexture = function (a, b) { a.getTexture(gd.context3D); b && gd.disposeSoftwareBuffer(a); }; gd.disposeSoftwareBuffer = function (a) { a.image = null; a.readable = !1; a.__surface = null; a.__vertexBuffer = null; a.__framebuffer = null; a.__framebufferContext = null; }; gd.createNewTexture = function (a) { var b = gd.context3D.createRectangleTexture(a, a, 1, !1); b.uploadFromTypedArray(null); var c = new ja(0, 0, !0, 0); c.__resize(a, a); c.readable = !1; c.__texture = b; c.__textureContext = gd.context; c.__isValid = !0; c.image = null; return c; }; gd.clearTexture = function (a) { a.__texture.uploadFromTypedArray(null); }; var Gd = function (a) { this.value = a; }; h['com.stencyl.graphics.Scale'] = Gd; Gd.__name__ = 'com.stencyl.graphics.Scale'; Gd.fromString = function (a) { switch (a) { case '1.5x': return Gd._1_5X; case '1x': return Gd._1X; case '2x': return Gd._2X; case '3x': return Gd._3X; case '4x': return Gd._4X; default: return Gd._1X; } }; Gd.prototype = { value: null, toString: function () { return 1 == this.value ? '1x' : 1.5 == this.value ? '1.5x' : 2 == this.value ? '2x' : 3 == this.value ? '3x' : 4 == this.value ? '4x' : ''; }, __class__: Gd }; var zj = { _new: function (a) { return a; }, fromString: function (a) { switch (a) { case 'FULLSCREEN': return 1; case 'NO_SCALING': return 0; case 'SCALE_TO_FIT_FILL': return 4; case 'SCALE_TO_FIT_FULLSCREEN': return 5; case 'SCALE_TO_FIT_LETTERBOX': return 3; case 'STRETCH_TO_FIT': return 2; default: return 0; } }, toString: function (a) { switch (a) { case 0: return 'NO_SCALING'; case 1: return 'FULLSCREEN'; case 2: return 'STRETCH_TO_FIT'; case 3: return 'SCALE_TO_FIT_LETTERBOX'; case 4: return 'SCALE_TO_FIT_FILL'; case 5: return 'SCALE_TO_FIT_FULLSCREEN'; default: return 'NO_SCALING'; } } }, kf = function () { this.lineSpacing = 0; this.isDefault = !1; this._maxHeight = 0; this._point = new na(); this._glyphs = new Za(); this._num_letters = 0; }; h['com.stencyl.graphics.fonts.BitmapFont'] = kf; kf.__name__ = 'com.stencyl.graphics.fonts.BitmapFont'; kf.store = function (a, b) { kf._storedFonts.h[a] = b; }; kf.fetch = function (a) { return kf._storedFonts.h[a]; }; kf.prototype = { _glyphs: null, _num_letters: null, _tileset: null, _glyphString: null, _maxHeight: null, _point: null, isDefault: null, lineSpacing: null, loadPixelizer: function (a, b) { this.reset(); this._glyphString = b; if (null != a) { b = []; a = this.prepareBitmapData(a, b); this._tileset = new Rh(a); for (var c = 0, e = b.length; c < e; ) { var f = c++; a = b[f]; this.setGlyph(A.cca(this._glyphString, f), a, f, 0, 0, Math.floor(a.width)); } } return this; }, loadAngelCode: function (a, b) { this.reset(); if (null != a) { this._glyphString = ''; var c = new fa(), e = new na(), f = 0, d; this._tileset = new Rh(a); a = null; for (b = b.elements(); b.hasNext(); ) { var p = b.next(); if (p.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == p.nodeType ? 'null' : ua.toString(p.nodeType)) ); if ('font' == p.nodeName) for (d = p.elements(); d.hasNext(); ) { p = d.next(); if (p.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == p.nodeType ? 'null' : ua.toString(p.nodeType)) ); if ('common' == p.nodeName) this.lineSpacing = B.parseInt(p.get('lineHeight')); else { if (p.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == p.nodeType ? 'null' : ua.toString(p.nodeType)) ); 'chars' == p.nodeName && (a = p); } } } if (null != a) for (b = a.elements(); b.hasNext(); ) { p = b.next(); if (p.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == p.nodeType ? 'null' : ua.toString(p.nodeType)) ); if ('char' == p.nodeName) { c.x = B.parseInt(p.get('x')); c.y = B.parseInt(p.get('y')); c.width = B.parseInt(p.get('width')); c.height = B.parseInt(p.get('height')); e.x = B.parseInt(p.get('xoffset')); e.y = B.parseInt(p.get('yoffset')); a = B.parseInt(p.get('id')); d = String.fromCodePoint(a); this._glyphString += d; var l = (p = B.parseInt(p.get('xadvance'))); c.width > p && ((l = c.width | 0), (e.x = 0)); ' ' != d && '' != d ? this.setGlyph(a, c, f, Math.floor(e.x), Math.floor(e.y), l) : this.setGlyph(a, c, f, Math.floor(e.x), 1, l); ++f; } } } return this; }, reset: function () { this.dispose(); this._maxHeight = 0; this._glyphs = new Za(); this._glyphString = ''; }, prepareBitmapData: function (a, b) { for (var c = a.getPixel(0, 0), e = 0, f; e < a.height; ) { var d = 0; for (f = 0; f < a.width; ) { if ((a.getPixel(f, e) | 0) != c) { for (var p = f, l = e; (a.getPixel(p, e) | 0) != c; ) ++p; for (; (a.getPixel(f, l) | 0) != c; ) ++l; p -= f; l -= e; b.push(new fa(f, e, p, l)); l > d && (d = l); l > this._maxHeight && (this._maxHeight = l); f += p; } ++f; } e += d + 1; } b = a.clone(); d = a.getPixel32(0, 0); for (e = 0; e < a.height; ) { for (f = 0; f < a.width; ) (c = a.getPixel32(f, e)), c == d && b.setPixel32(f, e, 0), ++f; ++e; } return b; }, dispose: function () { this._tileset = null; this._num_letters = 0; this._glyphs = null; }, setGlyph: function (a, b, c, e, f, d) { null == d && (d = 0); null == f && (f = 0); null == e && (e = 0); 0 == b.width && (b.width = 1); 0 == b.height && (b.height = 1); this._tileset.addRect(b); var g = new Vn(); g.tileID = c; g.xoffset = e; g.yoffset = f; g.xadvance = d; this._glyphs.h[a] = g; this._num_letters++; Math.floor(b.height) + f > this._maxHeight && (this._maxHeight = Math.floor(b.height) + f); }, render: function (a, b, c, e, f, d, p, l) { this._point.x = e; this._point.y = f; f = e = 0; for (l = b.length; f < l; ) { var g = f++; if (!(g < e)) { var n = A.cca(b, g); 126 == n && 'x' == b.charAt(g + 1) && ((g = b.substring(g + 2, g + 6)), (n = B.parseInt('0x' + g)), (e += 5)); var k = this._glyphs.h[n]; this._glyphs.h.hasOwnProperty(n) && ((g = k.xadvance), 32 != n && ((n = new ig( k.tileID, this._point.x + k.xoffset * p, this._point.y + k.yoffset * p )), n.set_scaleX(p), n.set_scaleY(p), n.set_alpha(c), a.addTile(n)), (this._point.x += g * p + d)); ++e; } } }, renderToImg: function (a, b, c, e, f, d, p, l, v, n) { null == n && (n = !0); null == v && (v = 0); var g = new jg(a.width, a.height, this._tileset, aa.antialias); this.render(g, b, e, f, d, p, l, v); n ? a.draw( g, null, new Kc(((c >> 16) & 255) / 255, ((c >> 8) & 255) / 255, (c & 255) / 255) ) : a.draw(g); g.removeTiles(); }, toARGB: function (a, b) { return a + (b << 24); }, getTextWidth: function (a, b, c) { null == c && (c = 1); null == b && (b = 0); for (var e = 0, f = 0, d = a.length, p = 0; p < d; ) { var l = p++; if (!(l < f)) { var v = A.cca(a, l); 126 == v && 'x' == a.charAt(l + 1) && ((l = a.substring(l + 2, l + 6)), (v = B.parseInt('0x' + l)), (f += 5)); this._glyphs.h.hasOwnProperty(v) && (e += this._glyphs.h[v].xadvance); ++f; } } e = Math.round(e * c); 1 < d && (e += (d - 1) * b); return e; }, getFontHeight: function () { return this._maxHeight; }, numLetters: null, get_numLetters: function () { return this._num_letters; }, containsCharacter: function (a) { return 0 <= this._glyphString.indexOf(a); }, getTileset: function () { return this._tileset; }, __class__: kf, __properties__: { get_numLetters: 'get_numLetters' } }; var uh = function () {}; h['com.stencyl.graphics.fonts.DefaultFontGenerator'] = uh; uh.__name__ = 'com.stencyl.graphics.fonts.DefaultFontGenerator'; uh.generateAndStoreDefaultFont = function () { for (var a = '', b = new ja(700, 9, !0, -7829368), c = 0, e = 0; e < uh.fontData.length; ) { a += A.substr(uh.fontData, e, 1); for ( var f = B.parseInt(A.substr(uh.fontData, ++e, 1)), d = 0, p = B.parseInt(A.substr(uh.fontData, ++e, 1)); d < p; ) for (var l = d++, v = 0, n = f; v < n; ) { var k = v++; ++e; '1' == A.substr(uh.fontData, e, 1) ? b.setPixel32(1 + 7 * c + k, 1 + l, -1) : b.setPixel32(1 + 7 * c + k, 1 + l, 0); } ++e; ++c; } kf.store('default', new kf().loadPixelizer(b, a)); b.dispose(); }; var Vn = function () {}; h['com.stencyl.graphics.fonts.FontSymbol'] = Vn; Vn.__name__ = 'com.stencyl.graphics.fonts.FontSymbol'; Vn.prototype = { xoffset: null, yoffset: null, xadvance: null, tileID: null, __class__: Vn }; var gl = function (a) { this.cacheParentAnchor = X.zero; Ca.call(this); this._text = ''; this._color = 0; this._useColor = !0; this._outline = !1; this._outlineColor = 0; this._shadow = !1; this._shadowColor = 0; this._background = !1; this._backgroundColor = 16777215; this._alignment = 1; this._padding = 0; this._pendingTextChange = !1; this._fieldWidth = 1; this._multiLine = !1; this._letterSpacing = this._lineSpacing = 0; this._fontScale = 1; this._autoUpperCase = !1; this._wordWrap = this._fixedWidth = !0; this._alpha = 1; null == a ? (null == kf.fetch('default') && uh.generateAndStoreDefaultFont(), (this._font = kf.fetch('default'))) : (this._font = a); this.set_cacheAsBitmap(!0); this._pendingTextChange = !0; this.update(); }; h['com.stencyl.graphics.fonts.Label'] = gl; gl.__name__ = 'com.stencyl.graphics.fonts.Label'; gl.__interfaces__ = [rh]; gl.__super__ = Ca; gl.prototype = r(Ca.prototype, { _stencylFont: null, _font: null, _text: null, _color: null, _useColor: null, _outline: null, _outlineColor: null, _shadow: null, _shadowColor: null, _background: null, _backgroundColor: null, _alignment: null, _padding: null, _lineSpacing: null, _letterSpacing: null, _fontScale: null, _autoUpperCase: null, _wordWrap: null, _fixedWidth: null, _pendingTextChange: null, _fieldWidth: null, _multiLine: null, _alpha: null, labelX: null, labelY: null, _shadowTilemap: null, _outlineTilemap: null, _characterTilemap: null, cacheParentAnchor: null, destroy: function () { this._font = this._stencylFont = null; this.removeChildren(); this._characterTilemap = this._shadowTilemap = this._outlineTilemap = null; }, get_text: function () { return this._text; }, set_text: function (a) { a.split('\\n').join('\n') != this._text && ((this._text = a), (this._text = this._text.split('\\n').join('\n')), this._autoUpperCase && (this._text = this._text.toUpperCase()), (this._pendingTextChange = !0), this.update()); return this._text; }, updateBitmapData: function () { if (null != this._font) { var a = this._fieldWidth, b = [], c = this._font.getFontHeight(), e = this._alignment, f = this._text.split('\n'), d = -1; this._multiLine || (f = [f[0]]); for (var p, l; ++d < f.length; ) if (this._fixedWidth) { var v = !1; var n = f[d].split(' '); if (0 < n.length) for (var k = 0, m = ''; !v; ) { l = n[k]; var h = m + l + ' ', t = !1; if (this._wordWrap) this._font.getTextWidth(h, this._letterSpacing, this._fontScale) > this._fieldWidth ? ('' == m ? n.splice(0, 1) : b.push(A.substr(m, 0, m.length - 1)), (m = ''), this._multiLine ? n.splice(0, k) : n.splice(0, n.length), (k = 0), (t = !0)) : ((m += l + ' '), ++k); else if ( this._font.getTextWidth(h, this._letterSpacing, this._fontScale) > this._fieldWidth ) { var u = 0; for (p = l.length; u < p; ) (h = m + l.charAt(u)), this._font.getTextWidth(h, this._letterSpacing, this._fontScale) > this._fieldWidth ? (b.push(A.substr(m, 0, m.length - 1)), (l = m = ''), (k = n.length), (u = p), (t = !0)) : (m += l.charAt(u)), ++u; } else (m += l + ' '), ++k; k >= n.length && (t || ((v = A.substr(m, 0, m.length - 1)), (a = Math.floor( Math.max( a, this._font.getTextWidth(v, this._letterSpacing, this._fontScale) ) )), b.push(v)), (v = !0)); } else b.push(''); } else (a = Math.floor( Math.max(a, this._font.getTextWidth(f[d], this._letterSpacing, this._fontScale)) )), b.push(f[d]); a = a + 2 * this._padding + (this._outline ? 2 : 0); f = Math.floor( 2 * this._padding + Math.max( 1, b.length * c * this._fontScale + (this._shadow ? 1 : 0) + (this._outline ? 2 : 0) ) ) + (1 <= b.length ? this._lineSpacing * (b.length - 1) : 0); this.get_graphics().clear(); 1 == this._background && (this.get_graphics().beginFill(this._backgroundColor, this._alpha), this.get_graphics().drawRect(0, 0, a, f), this.get_graphics().endFill()); this.removeChildren(); this._outline && ((this._outlineTilemap = new jg(a, f, this._font.getTileset(), aa.antialias)), this.tint(this._outlineTilemap, this._outlineColor), this.addChild(this._outlineTilemap)); this._shadow && ((this._shadowTilemap = new jg(a, f, this._font.getTileset(), aa.antialias)), this.tint(this._shadowTilemap, this._shadowColor), this.addChild(this._shadowTilemap)); this._characterTilemap = new jg(a, f, this._font.getTileset(), aa.antialias); this._useColor && this.tint(this._characterTilemap, this._color); this.addChild(this._characterTilemap); for (d = f = 0; d < b.length; ) { n = b[d]; ++d; m = k = 0; 3 == e && (k = this._fixedWidth ? Math.floor( (this._fieldWidth - this._font.getTextWidth(n, this._letterSpacing, this._fontScale)) / 2 ) : Math.floor( (a - this._font.getTextWidth(n, this._letterSpacing, this._fontScale)) / 2 )); 2 == e && (k = this._fixedWidth ? this._fieldWidth - Math.floor(this._font.getTextWidth(n, this._letterSpacing, this._fontScale)) : a - Math.floor(this._font.getTextWidth(n, this._letterSpacing, this._fontScale)) - 2 * this.get_padding()); if (this._outline) { for (v = 0; 3 > v; ) for (u = v++, p = 0; 3 > p; ) (l = p++), this._font.render( this._outlineTilemap, n, this._alpha, l + k + this._padding, u + f * (Math.floor(c * this._fontScale) + this._lineSpacing) + this._padding, this._letterSpacing, this._fontScale ); ++k; ++m; } this._shadow && this._font.render( this._shadowTilemap, n, this._alpha, 1 + k + this._padding, 1 + m + f * (Math.floor(c * this._fontScale) + this._lineSpacing) + this._padding, this._letterSpacing, this._fontScale ); this._font.render( this._characterTilemap, n, this._alpha, k + this._padding, m + f * (Math.floor(c * this._fontScale) + this._lineSpacing) + this._padding, this._letterSpacing, this._fontScale ); ++f; } this._pendingTextChange = !1; } }, update: function () { this._pendingTextChange && this.updateBitmapData(); }, get_background: function () { return this._background; }, set_background: function (a) { this._background != a && ((this._background = a), (this._pendingTextChange = !0), this.update()); return a; }, get_backgroundColor: function () { return this._backgroundColor; }, set_backgroundColor: function (a) { this._backgroundColor != a && ((this._backgroundColor = a), this._background && ((this._pendingTextChange = !0), this.update())); return a; }, get_shadow: function () { return this._shadow; }, set_shadow: function (a) { this._shadow != a && ((this._shadow = a), (this._outline = !1), this.updateGlyphs(!1, this._shadow, !1), (this._pendingTextChange = !0), this.update()); return a; }, get_shadowColor: function () { return this._shadowColor; }, set_shadowColor: function (a) { this._shadowColor != a && ((this._shadowColor = a), this.updateGlyphs(!1, this._shadow, !1), (this._pendingTextChange = !0), this.update()); return a; }, get_padding: function () { return this._padding; }, set_padding: function (a) { this._padding != a && ((this._padding = a), (this._pendingTextChange = !0), this.update()); return a; }, get_color: function () { return this._color; }, set_color: function (a) { this._color != a && ((this._color = a), this.updateGlyphs(!0, !1, !1), (this._pendingTextChange = !0), this.update()); return a; }, get_useColor: function () { return this._useColor; }, set_useColor: function (a) { this._useColor != a && ((this._useColor = a), this.updateGlyphs(!0, !1, !1), (this._pendingTextChange = !0), this.update()); return a; }, setWidth: function (a) { 1 > a && (a = 1); a != this._fieldWidth && ((this._fieldWidth = a), (this._pendingTextChange = !0), this.update()); return a; }, get_alignment: function () { return this._alignment; }, set_alignment: function (a) { this._alignment != a && ((this._alignment = a), (this._pendingTextChange = !0), this.update()); return a; }, get_multiLine: function () { return this._multiLine; }, set_multiLine: function (a) { this._multiLine != a && ((this._multiLine = a), (this._pendingTextChange = !0), this.update()); return a; }, get_outline: function () { return this._outline; }, set_outline: function (a) { this._outline != a && ((this._outline = a), (this._shadow = !1), this.updateGlyphs(!1, !1, !0), (this._pendingTextChange = !0), this.update()); return a; }, get_outlineColor: function () { return this._outlineColor; }, set_outlineColor: function (a) { this._outlineColor != a && ((this._outlineColor = a), this.updateGlyphs(!1, !1, this._outline), (this._pendingTextChange = !0), this.update()); return a; }, get_font: function () { return this._font; }, set_font: function (a) { this._font != a && ((this._font = a), this.updateGlyphs(!0, this._shadow, this._outline), (this._pendingTextChange = !0), this.update()); return a; }, get_stencylFont: function () { return this._stencylFont; }, set_stencylFont: function (a) { this._stencylFont != a && ((this._stencylFont = a), this.set_font(a.font)); return a; }, get_lineSpacing: function () { return this._lineSpacing; }, set_lineSpacing: function (a) { this._lineSpacing != a && ((this._lineSpacing = Math.floor(Math.abs(a))), (this._pendingTextChange = !0), this.update()); return a; }, setAlpha: function (a) { this._alpha != a && ((this._alpha = a), (this._pendingTextChange = !0), this.update()); }, getAlpha: function () { return this._alpha; }, get_fontScale: function () { return this._fontScale; }, set_fontScale: function (a) { var b = Math.abs(a); b != this._fontScale && ((this._fontScale = b), this.updateGlyphs(!0, this._shadow, this._outline), (this._pendingTextChange = !0), this.update()); return a; }, get_letterSpacing: function () { return this._letterSpacing; }, set_letterSpacing: function (a) { a = Math.floor(a); a != this._letterSpacing && ((this._letterSpacing = a), (this._pendingTextChange = !0), this.update()); return this._letterSpacing; }, get_autoUpperCase: function () { return this._autoUpperCase; }, set_autoUpperCase: function (a) { this._autoUpperCase != a && (this._autoUpperCase = a) && this.set_text(this._text.toUpperCase()); return this._autoUpperCase; }, get_wordWrap: function () { return this._wordWrap; }, set_wordWrap: function (a) { this._wordWrap != a && ((this._wordWrap = a), (this._pendingTextChange = !0), this.update()); return this._wordWrap; }, get_fixedWidth: function () { return this._fixedWidth; }, set_fixedWidth: function (a) { this._fixedWidth != a && ((this._fixedWidth = a), (this._pendingTextChange = !0), this.update()); return this._fixedWidth; }, set_labelX: function (a) { this.set_x(a * k.SCALE); return (this.labelX = a); }, get_labelX: function () { return this.labelX; }, set_labelY: function (a) { this.set_y(a * k.SCALE); return (this.labelY = a); }, get_labelY: function () { return this.labelY; }, updatePosition: function () { this.set_x(this.get_labelX() * k.SCALE - this.cacheParentAnchor.x); this.set_y(this.get_labelY() * k.SCALE - this.cacheParentAnchor.y); }, updateScale: function () { this.updatePosition(); null != this._stencylFont && this.set_font(this._stencylFont.font); }, updateGlyphs: function (a, b, c) {}, tint: function (a, b) { var c = new $a(); c.colorize(b, 1); a.set_filters([c.getFilter()]); }, __class__: gl, __properties__: r(Ca.prototype.__properties__, { set_fixedWidth: 'set_fixedWidth', get_fixedWidth: 'get_fixedWidth', set_wordWrap: 'set_wordWrap', get_wordWrap: 'get_wordWrap', set_autoUpperCase: 'set_autoUpperCase', get_autoUpperCase: 'get_autoUpperCase', set_letterSpacing: 'set_letterSpacing', get_letterSpacing: 'get_letterSpacing', set_fontScale: 'set_fontScale', get_fontScale: 'get_fontScale', set_lineSpacing: 'set_lineSpacing', get_lineSpacing: 'get_lineSpacing', set_stencylFont: 'set_stencylFont', get_stencylFont: 'get_stencylFont', set_font: 'set_font', get_font: 'get_font', set_outlineColor: 'set_outlineColor', get_outlineColor: 'get_outlineColor', set_outline: 'set_outline', get_outline: 'get_outline', set_multiLine: 'set_multiLine', get_multiLine: 'get_multiLine', set_alignment: 'set_alignment', get_alignment: 'get_alignment', set_useColor: 'set_useColor', get_useColor: 'get_useColor', set_color: 'set_color', get_color: 'get_color', set_padding: 'set_padding', get_padding: 'get_padding', set_shadowColor: 'set_shadowColor', get_shadowColor: 'get_shadowColor', set_shadow: 'set_shadow', get_shadow: 'get_shadow', set_backgroundColor: 'set_backgroundColor', get_backgroundColor: 'get_backgroundColor', set_background: 'set_background', get_background: 'get_background', set_text: 'set_text', get_text: 'get_text', set_labelY: 'set_labelY', get_labelY: 'get_labelY', set_labelX: 'set_labelX', get_labelX: 'get_labelX' }) }); var Wn = function () {}; h['com.stencyl.graphics.fonts.TextAlign'] = Wn; Wn.__name__ = 'com.stencyl.graphics.fonts.TextAlign'; var hd = function () {}; h['com.stencyl.graphics.shaders.BasicShader'] = hd; hd.__name__ = 'com.stencyl.graphics.shaders.BasicShader'; hd.prototype = { multipassParent: null, multipassTarget: null, model: null, setProperty: function (a, b) { this.model.setUniform(a, b); }, getProperty: function (a) { return this.model.getUniform(a); }, tweenProperty: function (a, b, c, e) { null == c && (c = 1); this.model.tweenUniform(a, b, c, e); }, enable: function () { k.engine.addShader(this.model); }, disable: function () { k.engine.clearShaders(); }, setTimeScale: function (a) { this.model.timeScale = a; }, combine: function (a) { this.multipassTarget = a; a.multipassParent = this; return a; }, __class__: hd }; var Xn = function (a, b, c, e, f, d, p, l, v) { null == v && (v = 0.0075); null == l && (l = 0.009); null == p && (p = 0.012); null == d && (d = 0.6); null == f && (f = 0.4); null == e && (e = 3); null == c && (c = 4); null == b && (b = 0.004); null == a && (a = 0.25); this.model = new qd( this, '\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform vec2 uResolution;\n\t\t\tuniform sampler2D uImage0;\n\t\t\t\n\t\t\tuniform float currPixelWeight;\n\t\t\tuniform float neighborPixelWeight;\n\t\t\tuniform float lowThreshold;\n\t\t\tuniform float mediumThreshold;\n\t\t\tuniform float lowMultiplier;\n\t\t\tuniform float mediumMultiplier;\n\t\t\tuniform float highMultiplier;\n\n\t\t\tvoid main(void)\n\t\t\t{\n\t\t\t\tvec4 sum = vec4(0.0);\n\t\t\t\tvec2 q1 = vTexCoord;\n\t\t\t\tvec4 oricol = texture2D(uImage0, vec2(q1.x, q1.y));\n\t\t\t\tvec3 col;\n\t\t\t\t\n\t\t\t\tfor(int i = -3; i < 3; i++) \n\t\t\t\t{\n\t\t\t\t\tfor(int j = -3; j < 3; j++) \n\t\t\t\t\t{\n\t\t\t\t\t\tsum += texture2D(uImage0, vec2(j, i) * neighborPixelWeight + vec2(q1.x, q1.y)) * currPixelWeight;\n\t\t\t\t\t}\n\t\t\t \t}\n\t\t\t \n\t\t\t \tif(oricol.r < lowThreshold) \n\t\t\t \t{\n\t\t\t\t\tgl_FragColor = sum * sum * lowMultiplier + oricol;\n\t\t\t \t} \n\t\t\t \n\t\t\t \telse \n\t\t\t \t{\n\t\t\t\t\tif(oricol.r < mediumThreshold) \n\t\t\t\t\t{\n\t\t\t\t\t\tgl_FragColor = sum * sum * mediumMultiplier + oricol;\n\t\t\t\t \t} \n\t\t\t\t \t\n\t\t\t\t \telse \n\t\t\t\t \t{\n\t\t\t\t\t\tgl_FragColor = sum * sum * highMultiplier + oricol;\n\t\t\t\t \t}\n\t\t\t }\n\t\t\t}\n\t\t', !0 ); this.setProperty('currPixelWeight', a); this.setProperty('neighborPixelWeight', b); this.setProperty('sampleX', c); this.setProperty('sampleY', e); this.setProperty('lowThreshold', f); this.setProperty('mediumThreshold', d); this.setProperty('lowMultiplier', p); this.setProperty('mediumMultiplier', l); this.setProperty('highMultiplier', v); }; h['com.stencyl.graphics.shaders.BloomShader'] = Xn; Xn.__name__ = 'com.stencyl.graphics.shaders.BloomShader'; Xn.__super__ = hd; Xn.prototype = r(hd.prototype, { __class__: Xn }); var Yn = function (a, b, c) { null == c && (c = 1); null == b && (b = 1); null == a && (a = 2); this.model = new qd( this, '\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\t//in attributes from our vertex shader\n\t\t\tvarying vec2 vTexCoord;\n\t\t\t\n\t\t\t//declare uniforms\n\t\t\tuniform sampler2D uImage0;\n\t\t\tuniform vec2 uResolution;\n\t\t\t\n\t\t\tuniform float radius;\n\t\t\tuniform float dirx;\n\t\t\tuniform float diry;\n\t\t\t\n\t\t\tvoid main()\n\t\t\t{\n\t\t\t\t//this will be our RGBA sum\n\t\t\t\tvec4 sum = vec4(0.0);\n\t\t\t\n\t\t\t\t//our original texcoord for this fragment\n\t\t\t\tvec2 tc = vTexCoord;\n\t\t\t\n\t\t\t\t//the amount to blur, i.e. how far off center to sample from\n\t\t\t\t//1.0 -> blur by one pixel\n\t\t\t\t//2.0 -> blur by two pixels, etc.\n\t\t\t\tfloat blur = radius / uResolution.x;\n\t\t\t\n\t\t\t\t//the direction of our blur\n\t\t\t\t//(1.0, 0.0) -> x-axis blur\n\t\t\t\t//(0.0, 1.0) -> y-axis blur\n\t\t\t\tfloat hstep = dirx;\n\t\t\t\tfloat vstep = diry;\n\t\t\t\n\t\t\t\t//apply blurring, using a 9-tap filter with predefined gaussian weights\n\t\t\t\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x - 4.0*blur*hstep, tc.y - 4.0*blur*vstep)) * 0.0162162162;\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x - 3.0*blur*hstep, tc.y - 3.0*blur*vstep)) * 0.0540540541;\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x - 2.0*blur*hstep, tc.y - 2.0*blur*vstep)) * 0.1216216216;\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x - 1.0*blur*hstep, tc.y - 1.0*blur*vstep)) * 0.1945945946;\n\t\t\t\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x, tc.y)) * 0.2270270270;\n\t\t\t\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x + 1.0*blur*hstep, tc.y + 1.0*blur*vstep)) * 0.1945945946;\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x + 2.0*blur*hstep, tc.y + 2.0*blur*vstep)) * 0.1216216216;\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x + 3.0*blur*hstep, tc.y + 3.0*blur*vstep)) * 0.0540540541;\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x + 4.0*blur*hstep, tc.y + 4.0*blur*vstep)) * 0.0162162162;\n\t\t\t\n\t\t\t\t//discard alpha for our simple demo, multiply by vertex color and return\n\t\t\t\tgl_FragColor = vec4(sum.rgb, 1.0);\n\t\t\t}\n\t\t', !0 ); this.setRadius(a); this.setDirectionX(b); this.setDirectionY(c); }; h['com.stencyl.graphics.shaders.BlurShader'] = Yn; Yn.__name__ = 'com.stencyl.graphics.shaders.BlurShader'; Yn.__super__ = hd; Yn.prototype = r(hd.prototype, { setRadius: function (a) { this.setProperty('radius', a); }, setDirectionX: function (a) { this.setProperty('dirx', a); }, setDirectionY: function (a) { this.setProperty('diry', a); }, __class__: Yn }); var Sh = function (a, b, c) { null == c && (c = 1); null == b && (b = 1); null == a && (a = 1); this.model = new qd( this, '\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform sampler2D uImage0;\n\t\t\tuniform float contrast;\n\t\t\tuniform float brightness;\n\t\t\tuniform float saturation;\n\n\t\t\tvec3 _mix(vec3 a, vec3 b, float amount) \n\t\t\t{ \n\t\t\t\treturn vec3(a.x * (1.0 - amount) + b.x * amount, a.y * (1.0 - amount) + b.y * amount, a.z * (1.0 - amount) + b.z * amount); \n\t\t\t}\n\n\t\t\tvoid main() \n\t\t\t{\n\t\t\t\tvec3 color = texture2D(uImage0, vTexCoord).rgb;\n\t\t\t\tconst vec3 luminanceCoefficient = vec3(0.2125, 0.7154, 0.0721);\n\t\t\t\tvec3 avgLuminance = vec3(0.5, 0.5, 0.5);\n\t\t\n\t\t\t\tvec3 brtColor = vec3(color.x * brightness, color.y * brightness, color.z * brightness);\n\t\t\t\tvec3 intensity = vec3(dot(brtColor, luminanceCoefficient));\n\t\t\t\tvec3 satColor = _mix(intensity, brtColor, saturation);\n\t\t\t\tvec3 conColor = _mix(avgLuminance, satColor, contrast);\n\t\t\n\t\t\t\tgl_FragColor = vec4(conColor, 1);\n\t\t\t}\n\t\t', !0 ); this.setContrast(a); this.setBrightness(b); this.setSaturation(c); }; h['com.stencyl.graphics.shaders.CSBShader'] = Sh; Sh.__name__ = 'com.stencyl.graphics.shaders.CSBShader'; Sh.create = function (a, b) { null == b && (b = 1); null == a && (a = 'contrast'); return 'contrast' == a ? new Sh(b, 1, 1) : 'saturation' == a ? new Sh(1, 1, b) : new Sh(1, b, 1); }; Sh.__super__ = hd; Sh.prototype = r(hd.prototype, { setContrast: function (a) { this.setProperty('contrast', a); }, setBrightness: function (a) { this.setProperty('brightness', a); }, setSaturation: function (a) { this.setProperty('saturation', a); }, __class__: Sh }); var Zn = function (a) { this.model = new qd(this, 'assets/data/' + a); }; h['com.stencyl.graphics.shaders.ExternalShader'] = Zn; Zn.__name__ = 'com.stencyl.graphics.shaders.ExternalShader'; Zn.__super__ = hd; Zn.prototype = r(hd.prototype, { __class__: Zn }); var $n = function (a, b, c, e, f) { null == f && (f = 1); null == e && (e = 1.6); null == c && (c = 0.6); null == b && (b = !1); null == a && (a = 0.05); this.model = new qd( this, "\n\t\t\t/*\n\t\t\t\tFilm Grain post-process shader v1.1\n\t\t\t\tMartins Upitis (martinsh) devlog-martinsh.blogspot.com\n\t\t\t*/\n\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\tuniform sampler2D uImage0; //rendered scene sampler\n\t\t\tuniform vec2 uResolution; //scene sampler resolution\n\t\t\tuniform float uTime;\n\t\t\t\n\t\t\tvarying vec2 vTexCoord;\n\t\t\t\n\t\t\tconst float permTexUnit = 1.0/256.0; // Perm texture texel-size\n\t\t\tconst float permTexUnitHalf = 0.5/256.0; // Half perm texture texel-size\n\t\t\t\n\t\t\tfloat width;\n\t\t\tfloat height;\n\t\t\t\n\t\t\tuniform float grainamount; //grain amount\n\t\t\tuniform float colored; //colored noise?\n\t\t\tuniform float coloramount;\n\t\t\tuniform float grainsize; //grain particle size (1.5 - 2.5)\n\t\t\tuniform float lumamount; //\n\t\t\t\n\t\t\t//a random texture generator, but you can also use a pre-computed perturbation texture\n\t\t\tvec4 rnm(in vec2 tc)\n\t\t\t{\n\t\t\t\tfloat noise = sin(dot(tc + vec2(uTime,uTime),vec2(12.9898,78.233))) * 43758.5453;\n\t\t\t\n\t\t\t\tfloat noiseR = fract(noise)*2.0-1.0;\n\t\t\t\tfloat noiseG = fract(noise*1.2154)*2.0-1.0;\n\t\t\t\tfloat noiseB = fract(noise*1.3453)*2.0-1.0;\n\t\t\t\tfloat noiseA = fract(noise*1.3647)*2.0-1.0;\n\t\t\t\n\t\t\t\treturn vec4(noiseR,noiseG,noiseB,noiseA);\n\t\t\t}\n\t\t\t\n\t\t\tfloat fade(in float t) {\n\t\t\t\treturn t*t*t*(t*(t*6.0-15.0)+10.0);\n\t\t\t}\n\t\t\t\n\t\t\tfloat pnoise3D(in vec3 p)\n\t\t\t{\n\t\t\t\tvec3 pi = permTexUnit*floor(p)+permTexUnitHalf; // Integer part, scaled so +1 moves permTexUnit texel\n\t\t\t\t// and offset 1/2 texel to sample texel centers\n\t\t\t\tvec3 pf = fract(p); // Fractional part for interpolation\n\t\t\t\n\t\t\t\t// Noise contributions from (x=0, y=0), z=0 and z=1\n\t\t\t\tfloat perm00 = rnm(pi.xy).a ;\n\t\t\t\tvec3 grad000 = rnm(vec2(perm00, pi.z)).rgb * 4.0 - 1.0;\n\t\t\t\tfloat n000 = dot(grad000, pf);\n\t\t\t\tvec3 grad001 = rnm(vec2(perm00, pi.z + permTexUnit)).rgb * 4.0 - 1.0;\n\t\t\t\tfloat n001 = dot(grad001, pf - vec3(0.0, 0.0, 1.0));\n\t\t\t\n\t\t\t\t// Noise contributions from (x=0, y=1), z=0 and z=1\n\t\t\t\tfloat perm01 = rnm(pi.xy + vec2(0.0, permTexUnit)).a ;\n\t\t\t\tvec3 grad010 = rnm(vec2(perm01, pi.z)).rgb * 4.0 - 1.0;\n\t\t\t\tfloat n010 = dot(grad010, pf - vec3(0.0, 1.0, 0.0));\n\t\t\t\tvec3 grad011 = rnm(vec2(perm01, pi.z + permTexUnit)).rgb * 4.0 - 1.0;\n\t\t\t\tfloat n011 = dot(grad011, pf - vec3(0.0, 1.0, 1.0));\n\t\t\t\n\t\t\t\t// Noise contributions from (x=1, y=0), z=0 and z=1\n\t\t\t\tfloat perm10 = rnm(pi.xy + vec2(permTexUnit, 0.0)).a ;\n\t\t\t\tvec3 grad100 = rnm(vec2(perm10, pi.z)).rgb * 4.0 - 1.0;\n\t\t\t\tfloat n100 = dot(grad100, pf - vec3(1.0, 0.0, 0.0));\n\t\t\t\tvec3 grad101 = rnm(vec2(perm10, pi.z + permTexUnit)).rgb * 4.0 - 1.0;\n\t\t\t\tfloat n101 = dot(grad101, pf - vec3(1.0, 0.0, 1.0));\n\t\t\t\n\t\t\t\t// Noise contributions from (x=1, y=1), z=0 and z=1\n\t\t\t\tfloat perm11 = rnm(pi.xy + vec2(permTexUnit, permTexUnit)).a ;\n\t\t\t\tvec3 grad110 = rnm(vec2(perm11, pi.z)).rgb * 4.0 - 1.0;\n\t\t\t\tfloat n110 = dot(grad110, pf - vec3(1.0, 1.0, 0.0));\n\t\t\t\tvec3 grad111 = rnm(vec2(perm11, pi.z + permTexUnit)).rgb * 4.0 - 1.0;\n\t\t\t\tfloat n111 = dot(grad111, pf - vec3(1.0, 1.0, 1.0));\n\t\t\t\n\t\t\t\t// Blend contributions along x\n\t\t\t\tvec4 n_x = mix(vec4(n000, n001, n010, n011), vec4(n100, n101, n110, n111), fade(pf.x));\n\t\t\t\n\t\t\t\t// Blend contributions along y\n\t\t\t\tvec2 n_xy = mix(n_x.xy, n_x.zw, fade(pf.y));\n\t\t\t\n\t\t\t\t// Blend contributions along z\n\t\t\t\tfloat n_xyz = mix(n_xy.x, n_xy.y, fade(pf.z));\n\t\t\t\n\t\t\t\t// We're done, return the final noise value.\n\t\t\t\treturn n_xyz;\n\t\t\t}\n\t\t\t\n\t\t\t//2d coordinate orientation thing\n\t\t\tvec2 coordRot(in vec2 tc, in float angle)\n\t\t\t{\n\t\t\t\tfloat aspect = width/height;\n\t\t\t\tfloat rotX = ((tc.x*2.0-1.0)*aspect*cos(angle)) - ((tc.y*2.0-1.0)*sin(angle));\n\t\t\t\tfloat rotY = ((tc.y*2.0-1.0)*cos(angle)) + ((tc.x*2.0-1.0)*aspect*sin(angle));\n\t\t\t\trotX = ((rotX/aspect)*0.5+0.5);\n\t\t\t\trotY = rotY*0.5+0.5;\n\t\t\t\treturn vec2(rotX,rotY);\n\t\t\t}\n\t\t\t\n\t\t\tvoid main()\n\t\t\t{\n\t\t\t\twidth = uResolution.x;\n\t\t\t\theight = uResolution.y;\n\t\t\t\t\n\t\t\t\tvec2 texCoord = vTexCoord.st;\n\t\t\t\n\t\t\t\tvec3 rotOffset = vec3(1.425,3.892,5.835); //rotation offset values\n\t\t\t\tvec2 rotCoordsR = coordRot(texCoord, uTime + rotOffset.x);\n\t\t\t\tvec3 noise = vec3(pnoise3D(vec3(rotCoordsR*vec2(width/grainsize,height/grainsize),0.0)));\n\t\t\t\n\t\t\t\tif (colored == 1.0)\n\t\t\t\t{\n\t\t\t\t\tvec2 rotCoordsG = coordRot(texCoord, uTime + rotOffset.y);\n\t\t\t\t\tvec2 rotCoordsB = coordRot(texCoord, uTime + rotOffset.z);\n\t\t\t\t\tnoise.g = mix(noise.r,pnoise3D(vec3(rotCoordsG*vec2(width/grainsize,height/grainsize),1.0)),coloramount);\n\t\t\t\t\tnoise.b = mix(noise.r,pnoise3D(vec3(rotCoordsB*vec2(width/grainsize,height/grainsize),2.0)),coloramount);\n\t\t\t\t}\n\t\t\t\n\t\t\t\tvec3 col = texture2D(uImage0, texCoord).rgb;\n\t\t\t\n\t\t\t\t//noisiness response curve based on scene luminance\n\t\t\t\tvec3 lumcoeff = vec3(0.299,0.587,0.114);\n\t\t\t\tfloat luminance = mix(0.0,dot(col, lumcoeff),lumamount);\n\t\t\t\tfloat lum = smoothstep(0.2,0.0,luminance);\n\t\t\t\tlum += luminance;\n\t\t\t\n\t\t\t\n\t\t\t\tnoise = mix(noise,vec3(0.0),pow(lum,4.0));\n\t\t\t\tcol = col+noise*grainamount;\n\t\t\t\n\t\t\t\tgl_FragColor = vec4(col,1.0);\n\t\t\t}\n\t\t", !0 ); this.setGrainAmount(a); this.setColorAmount(c); this.setGrainSize(e); this.setLuminance(f); b ? this.enableColor() : this.disableColor(); }; h['com.stencyl.graphics.shaders.GrainShader'] = $n; $n.__name__ = 'com.stencyl.graphics.shaders.GrainShader'; $n.__super__ = hd; $n.prototype = r(hd.prototype, { enableColor: function () { this.setProperty('colored', 1); }, disableColor: function () { this.setProperty('colored', 0); }, setGrainAmount: function (a) { this.setProperty('grainamount', a); }, setColorAmount: function (a) { this.setProperty('coloramount', a); }, setGrainSize: function (a) { this.setProperty('grainsize', a); }, setLuminance: function (a) { this.setProperty('lumamount', a); }, __class__: $n }); var ao = function () { this.model = new qd( this, '\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform sampler2D uImage0;\n\t\t\t\n\t\t\tvoid main(void)\n\t\t\t{\n\t\t\t\tvec4 color = texture2D(uImage0, vTexCoord);\n\t\t\t\tfloat gray = dot(color.rgb, vec3(0.299, 0.587, 0.114));\n\t\t\t\tgl_FragColor = vec4(gray, gray, gray, 1.0);\n\t\t\t}\n\t\t', !0 ); }; h['com.stencyl.graphics.shaders.GrayscaleShader'] = ao; ao.__name__ = 'com.stencyl.graphics.shaders.GrayscaleShader'; ao.__super__ = hd; ao.prototype = r(hd.prototype, { __class__: ao }); var bo = function (a, b) { null == b && (b = !0); null == a && (a = 0); b && (a *= Math.PI / 180); this.model = new qd( this, '\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform sampler2D uImage0;\n\t\t\t\n\t\t\tuniform float hue;\n\t\t\tconst mat3 rgb2yiq = mat3(0.299, 0.587, 0.114, 0.595716, -0.274453, -0.321263, 0.211456, -0.522591, 0.311135);\n\t\t\tconst mat3 yiq2rgb = mat3(1.0, 0.9563, 0.6210, 1.0, -0.2721, -0.6474, 1.0, -1.1070, 1.7046);\n\n\t\t\tvoid main() \n\t\t\t{\n\t\t\t\tvec3 color = texture2D(uImage0, vTexCoord).rgb;\n\t\t\t\tvec3 yColor = rgb2yiq * color; \n\n\t\t\t\tfloat originalHue = atan(yColor.b, yColor.g);\n\t\t\t\tfloat finalHue = originalHue + hue;\n\t\t\t\tfloat chroma = sqrt(yColor.b * yColor.b + yColor.g * yColor.g);\n\t\t\t\t\n\t\t\t\tvec3 yFinalColor = vec3(yColor.r, chroma * cos(finalHue), chroma * sin(finalHue));\n\t\t\t\tgl_FragColor = vec4(yiq2rgb * yFinalColor, 1.0);\n\t\t\t}\n\t\t', !0 ); this.setHue(a, !1); }; h['com.stencyl.graphics.shaders.HueShader'] = bo; bo.__name__ = 'com.stencyl.graphics.shaders.HueShader'; bo.__super__ = hd; bo.prototype = r(hd.prototype, { setHue: function (a, b) { null == b && (b = !0); b && (a *= Math.PI / 180); this.setProperty('hue', a); }, __class__: bo }); var co = function (a) { this.model = new qd(this, a, !0); }; h['com.stencyl.graphics.shaders.InlineShader'] = co; co.__name__ = 'com.stencyl.graphics.shaders.InlineShader'; co.__super__ = hd; co.prototype = r(hd.prototype, { __class__: co }); var eo = function () { this.model = new qd( this, '\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform sampler2D uImage0;\n\t\t\t\n\t\t\tvoid main(void)\n\t\t\t{\n\t\t\t\tvec4 color = texture2D(uImage0, vTexCoord);\n\t\t\t\tgl_FragColor = vec4(vec3(1.0, 1.0, 1.0) - color.rgb, color.a);\n\t\t\t}\n\t\t', !0 ); }; h['com.stencyl.graphics.shaders.InvertShader'] = eo; eo.__name__ = 'com.stencyl.graphics.shaders.InvertShader'; eo.__super__ = hd; eo.prototype = r(hd.prototype, { __class__: eo }); var qd = function (a, b, c) { null == c && (c = !1); this.timeScale = 1; this.time = 0; La.call(this); this.__drawableType = 3; this.basicShader = a; this.gl = k.stage.__renderer.gl; this.uniforms = new qa(); this.changedUniforms = []; this.uniformTweens = new qa(); this.rebuild(); this.gl.checkFramebufferStatus(36160); this.buffer = this.gl.createBuffer(); this.gl.bindBuffer(34962, this.buffer); a = [-1, -1, 0, 0, 1, -1, 1, 0, -1, 1, 0, 1, 1, -1, 1, 0, 1, 1, 1, 1, -1, 1, 0, 1]; a = null != a ? new Float32Array(a) : null; bc.bufferData(this.gl, 34962, a, 35044); this.gl.bindBuffer(34962, null); if (c) this.fullScreenShader = new Kj([ { src: '\n#ifdef GL_ES\n\tprecision mediump float;\n#endif\n\nattribute vec4 aVertex;\n\nattribute vec2 aTexCoord;\nvarying vec2 vTexCoord;\n\nvoid main() {\n\tvTexCoord = aTexCoord;\n\tgl_Position = vec4(aVertex.x, aVertex.y, 0.0, 1.0);\n}', fragment: !1 }, { src: b, fragment: !0 } ]); else if (6 < b.length && '.glslx' == A.substr(b, -6, null)) { c = T.parse(Da.getText(b)).firstElement(); if (c.nodeType != T.Document && c.nodeType != T.Element) throw M.thrown( 'Invalid nodeType ' + (null == c.nodeType ? 'null' : ua.toString(c.nodeType)) ); b = jx.resolve(c, 'vertex') ? Yw.get_innerData(Zw.resolve(c, 'vertex')) : '\n#ifdef GL_ES\n\tprecision mediump float;\n#endif\n\nattribute vec4 aVertex;\n\nattribute vec2 aTexCoord;\nvarying vec2 vTexCoord;\n\nvoid main() {\n\tvTexCoord = aTexCoord;\n\tgl_Position = vec4(aVertex.x, aVertex.y, 0.0, 1.0);\n}'; c = Yw.get_innerData(Zw.resolve(c, 'fragment')); this.fullScreenShader = new Kj([ { src: b, fragment: !1 }, { src: c, fragment: !0 } ]); } else (b = Da.getText(b)), (this.fullScreenShader = new Kj([ { src: '\n#ifdef GL_ES\n\tprecision mediump float;\n#endif\n\nattribute vec4 aVertex;\n\nattribute vec2 aTexCoord;\nvarying vec2 vTexCoord;\n\nvoid main() {\n\tvTexCoord = aTexCoord;\n\tgl_Position = vec4(aVertex.x, aVertex.y, 0.0, 1.0);\n}', fragment: !1 }, { src: b, fragment: !0 } ])); this.imageUniform = t.context.getUniformLocation(this.fullScreenShader.program, 'uImage0'); this.timeUniform = t.context.getUniformLocation(this.fullScreenShader.program, 'uTime'); this.resolutionUniform = t.context.getUniformLocation( this.fullScreenShader.program, 'uResolution' ); this.resolutionUsUniform = t.context.getUniformLocation( this.fullScreenShader.program, 'uResolutionUs' ); this.vertexSlot = t.context.getAttribLocation(this.fullScreenShader.program, 'aVertex'); this.texCoordSlot = t.context.getAttribLocation(this.fullScreenShader.program, 'aTexCoord'); this.addEventListener('renderOpenGL', q(this, this.renderGL)); }; h['com.stencyl.graphics.shaders.PostProcess'] = qd; qd.__name__ = 'com.stencyl.graphics.shaders.PostProcess'; qd.__properties__ = { get_vertices: 'get_vertices', get_isSupported: 'get_isSupported' }; qd.get_isSupported = function () { return !1; }; qd.get_vertices = function () { return [-1, -1, 0, 0, 1, -1, 1, 0, -1, 1, 0, 1, 1, -1, 1, 0, 1, 1, 1, 1, -1, 1, 0, 1]; }; qd.__super__ = La; qd.prototype = r(La.prototype, { __added: null, __initialized: null, gl: null, __enterFrame: function (a) { this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); }, renderGL: function (a) { var b = a.renderer; if (null != this.stage && this.__renderable) { a = k.stage; var c = a.context3D; b.__setBlendMode(null); null == this.basicShader.multipassTarget ? c.setRenderToBackBuffer() : c.setRenderToTexture(this.basicShader.multipassTarget.model.texture); c.clear(); this.time += k.elapsedTime * this.timeScale; t.context.useProgram(this.fullScreenShader.program); this.gl.enableVertexAttribArray(this.vertexSlot); this.gl.enableVertexAttribArray(this.texCoordSlot); this.gl.activeTexture(33984); this.gl.bindTexture(3553, this.texture.__getTexture()); 'opengl' == a.window.context.type && this.gl.enable(3553); this.gl.bindBuffer(34962, this.buffer); this.gl.vertexAttribPointer(this.vertexSlot, 2, 5126, !1, 16, 0); this.gl.vertexAttribPointer(this.texCoordSlot, 2, 5126, !1, 16, 8); this.gl.uniform1i(this.imageUniform, 0); this.gl.uniform1f(this.timeUniform, this.time); this.gl.uniform2f(this.resolutionUniform, a.stageWidth | 0, a.stageHeight | 0); this.gl.uniform2f( this.resolutionUsUniform, (a.stageWidth / (k.SCALE * k.screenScaleX)) | 0, (a.stageHeight / (k.SCALE * k.screenScaleY)) | 0 ); for (b = this.changedUniforms.length; 0 < b--; ) { var e = this.changedUniforms.pop(); if (e.value instanceof Array) { if (0 != e.value.length) { var f = this.gl, d = e.id; e = e.value; e = null != e ? new Float32Array(e) : null; f.uniform1fv(d, e); } } else this.gl.uniform1f(e.id, e.value); } this.gl.drawArrays(4, 0, 6); this.gl.bindBuffer(34962, null); 'opengl' == a.window.context.type && this.gl.disable(3553); this.gl.bindTexture(3553, null); this.gl.disableVertexAttribArray(this.vertexSlot); this.gl.disableVertexAttribArray(this.texCoordSlot); c.__contextState.program = null; c.__flushGLProgram(); c.__contextState.__currentGLElementArrayBuffer = null; } }, setUniform: function (a, b) { if (Object.prototype.hasOwnProperty.call(this.uniforms.h, a)) (a = this.uniforms.h[a]), (a.value = b), this.changedUniforms.push(a); else { var c = t.context.getUniformLocation(this.fullScreenShader.program, a); c != qd.UNIFORM_NOT_FOUND && ((b = { id: c, value: b }), (this.uniforms.h[a] = b), this.changedUniforms.push(b)); } }, getUniform: function (a) { return Object.prototype.hasOwnProperty.call(this.uniforms.h, a) ? this.uniforms.h[a].value : -1; }, tweenUniform: function (a, b, c, e) { null == c && (c = 1); var f = this; if (Object.prototype.hasOwnProperty.call(this.uniforms.h, a)) { var d = this.uniforms.h[a], p = this.uniformTweens.h[a]; null == p && ((p = new Ae()), p.doOnUpdate(function () { d.value = p.value; f.changedUniforms.push(d); }), (this.uniformTweens.h[a] = p)); p.tween(d.value, b, e, (1e3 * c) | 0); } }, rebuild: function () { null != this.texture && this.texture.dispose(); this.texture = k.stage.context3D.createRectangleTexture( ya.windowWidth | 0, ya.windowHeight | 0, 1, !0 ); this.texture.__context.__bindGLTexture2D(this.texture.__textureID); this.texture.__setSamplerState(new Ug()); bc.texImage2D( this.gl, this.texture.__textureTarget, 0, this.texture.__internalFormat, this.texture.__width, this.texture.__height, 0, this.gl.RGB, this.gl.UNSIGNED_BYTE, null ); this.texture.__context.__bindGLTexture2D(null); }, createTexture: function (a, b) { this.texture = k.stage.context3D.createRectangleTexture(a, b, 1, !0); this.texture.__context.__bindGLTexture2D(this.texture.__textureID); this.texture.__setSamplerState(new Ug()); bc.texImage2D( this.gl, this.texture.__textureTarget, 0, this.texture.__internalFormat, this.texture.__width, this.texture.__height, 0, this.gl.RGB, this.gl.UNSIGNED_BYTE, null ); this.texture.__context.__bindGLTexture2D(null); }, capture: function () { k.stage.context3D.setRenderToTexture(this.texture); var a = this.texture.__getGLFramebuffer(!1, 0, 0); this.gl.bindFramebuffer(36160, a); this.gl.clear(16640); null != k.stage && null != k.stage.__renderer && (k.stage.__renderer.__cleared = !0); }, texture: null, fullScreenShader: null, buffer: null, basicShader: null, time: null, timeScale: null, vertexSlot: null, texCoordSlot: null, imageUniform: null, resolutionUniform: null, resolutionUsUniform: null, timeUniform: null, uniforms: null, changedUniforms: null, uniformTweens: null, __class__: qd }); var fo = function (a) { null == a && (a = 1); this.model = new qd( this, '\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform vec2 uResolution;\n\t\t\tuniform sampler2D uImage0;\n\t\t\t\n\t\t\tuniform float scale;\n\t\t\t\n\t\t\tvoid main()\n\t\t\t{\n\t\t\t\tif (mod(floor(vTexCoord.y * uResolution.y / scale), 2.0) == 0.0)\n\t\t\t\t\tgl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n\t\t\t\telse\n\t\t\t\t\tgl_FragColor = texture2D(uImage0, vTexCoord);\n\t\t\t}\n\t\t', !0 ); this.setScale(a); }; h['com.stencyl.graphics.shaders.ScanlineShader'] = fo; fo.__name__ = 'com.stencyl.graphics.shaders.ScanlineShader'; fo.__super__ = hd; fo.prototype = r(hd.prototype, { setScale: function (a) { this.setProperty('scale', a); }, __class__: fo }); var go = function () { this.model = new qd( this, '\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform sampler2D uImage0;\n\t\t\t\n\t\t\tvoid main(void)\n\t\t\t{\n\t\t\t\tvec4 color = texture2D(uImage0, vTexCoord);\n\t\t\t\tgl_FragColor.r = dot(color, vec4(0.393,0.769,0.189,0));\n\t\t\t\tgl_FragColor.g = dot(color, vec4(0.349,0.686,0.168,0));\n\t\t\t\tgl_FragColor.b = dot(color, vec4(0.272,0.534,0.131,0));\n\t\t\t\tgl_FragColor.a = color.a;\n\t\t\t}\n\t\t', !0 ); }; h['com.stencyl.graphics.shaders.SepiaShader'] = go; go.__name__ = 'com.stencyl.graphics.shaders.SepiaShader'; go.__super__ = hd; go.prototype = r(hd.prototype, { __class__: go }); var Kj = function (a) { this.program = t.context.createProgram(); for (var b = 0; b < a.length; ) { var c = a[b]; ++b; c = this.compile(c.src, c.fragment ? 35632 : 35633); if (null == c) return; t.context.attachShader(this.program, c); t.context.deleteShader(c); } t.context.linkProgram(this.program); t.context.getProgramParameter(this.program, 35714); }; h['com.stencyl.graphics.shaders.Shader'] = Kj; Kj.__name__ = 'com.stencyl.graphics.shaders.Shader'; Kj.prototype = { compile: function (a, b) { b = t.context.createShader(b); t.context.shaderSource(b, a); t.context.compileShader(b); return 0 == t.context.getShaderParameter(b, 35713) ? null : b; }, attribute: function (a) { return t.context.getAttribLocation(this.program, a); }, uniform: function (a) { return t.context.getUniformLocation(this.program, a); }, bind: function () { t.context.useProgram(this.program); }, program: null, __class__: Kj }; var ho = function (a) { null == a && (a = 2); this.model = new qd( this, '\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform sampler2D uImage0;\n\t\t\tuniform vec2 uResolution;\n\t\t\t\n\t\t\tuniform float amount;\n\t\t\t\n\t\t\tvoid main()\n\t\t\t{\n\t\t\t\t//this will be our RGBA sum\n\t\t\t\tvec4 sum = vec4(0.0);\n\t\t\t\t\n\t\t\t\t//our original texcoord for this fragment\n\t\t\t\tvec2 tc = vTexCoord;\n\t\t\t\t\n\t\t\t\tfloat reach = 1.0 / uResolution.x;\n\n\t\t\t\t//current pixel\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x, tc.y));\n\t\t\t\t\n\t\t\t\t//sharpen\n\t\t\t\tsum += (texture2D(uImage0, vec2(tc.x, tc.y)) - texture2D(uImage0, vec2(tc.x + 1.0 * reach, tc.y))) * amount;\n\t\t\t\tsum += (texture2D(uImage0, vec2(tc.x, tc.y)) - texture2D(uImage0, vec2(tc.x - 1.0 * reach, tc.y))) * amount;\n\t\t\t\tsum += (texture2D(uImage0, vec2(tc.x, tc.y)) - texture2D(uImage0, vec2(tc.x, tc.y + 1.0 * reach))) * amount;\n\t\t\t\tsum += (texture2D(uImage0, vec2(tc.x, tc.y)) - texture2D(uImage0, vec2(tc.x, tc.y - 1.0 * reach))) * amount;\n\t\t\t\t\n\t\t\t\tgl_FragColor = vec4(sum.rgb, 1.0);\n\t\t\t}\n\t\t', !0 ); this.setAmount(a); }; h['com.stencyl.graphics.shaders.SharpenShader'] = ho; ho.__name__ = 'com.stencyl.graphics.shaders.SharpenShader'; ho.__super__ = hd; ho.prototype = r(hd.prototype, { setAmount: function (a) { this.setProperty('amount', a); }, __class__: ho }); var io = function (a, b) { null == b && (b = 1); this.model = new qd( this, '\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform sampler2D uImage0;\n\t\t\tuniform float amount;\n\t\t\tuniform float red;\n\t\t\tuniform float green;\n\t\t\tuniform float blue;\n\n\t\t\tvec3 _mix(vec3 a, vec3 b, float amount) \n\t\t\t{ \n\t\t\t\treturn vec3(a.x * (1.0 - amount) + b.x * amount, a.y * (1.0 - amount) + b.y * amount, a.z * (1.0 - amount) + b.z * amount); \n\t\t\t}\n\n\t\t\tvoid main() \n\t\t\t{\n\t\t\t\tvec3 color = texture2D(uImage0, vTexCoord).rgb;\n\t\t\t\tvec3 endColor = _mix(color, vec3(red, green, blue), amount);\n\t\t\t\tgl_FragColor = vec4(endColor.x, endColor.y, endColor.z, 1);\n\t\t\t}\n\t\t', !0 ); this.setColor(a); this.setAmount(b); }; h['com.stencyl.graphics.shaders.TintShader'] = io; io.__name__ = 'com.stencyl.graphics.shaders.TintShader'; io.__super__ = hd; io.prototype = r(hd.prototype, { setAmount: function (a) { this.setProperty('amount', a); }, setColor: function (a) { this.setProperty('red', ((a >> 16) & 255) / 255); this.setProperty('green', ((a >> 8) & 255) / 255); this.setProperty('blue', (a & 255) / 255); }, __class__: io }); var ub = function (a) { this.duration = a; this.complete = this.active = !1; 0 == a && (this.active = this.complete = !0); }; h['com.stencyl.graphics.transitions.Transition'] = ub; ub.__name__ = 'com.stencyl.graphics.transitions.Transition'; ub.prototype = { duration: null, direction: null, active: null, complete: null, start: function () {}, reset: function () { this.complete = !1; }, stop: function () { this.complete = !0; }, deactivate: function () { this.active = !1; }, cleanup: function () {}, isActive: function () { return this.active; }, isComplete: function () { return this.complete; }, update: function (a) {}, draw: function (a) {}, getDuration: function () { return this.duration; }, __class__: ub }; var Dj = function (a, b, c, e) { null == c && (c = 10); ub.call(this, b); this.color = e; this.direction = a; this.numBlinds = c; a == ub.IN ? ((this.beginBlindWidth = (k.screenWidth * k.SCALE) / c), (this.endBlindWidth = 0)) : a == ub.OUT ? ((this.beginBlindWidth = 0), (this.endBlindWidth = (k.screenWidth * k.SCALE) / c)) : (this.complete = !0); }; h['com.stencyl.graphics.transitions.BlindsTransition'] = Dj; Dj.__name__ = 'com.stencyl.graphics.transitions.BlindsTransition'; Dj.__super__ = ub; Dj.prototype = r(ub.prototype, { color: null, numBlinds: null, blindWidth: null, beginBlindWidth: null, endBlindWidth: null, blindRect: null, rect: null, graphics: null, start: function () { this.active = !0; this.blindRect = new fa(0, 0, this.beginBlindWidth, k.screenHeight * k.SCALE); this.blindWidth = new Ae(); this.rect = new Oe(); this.graphics = this.rect.get_graphics(); this.direction == ub.IN && (this.graphics.beginFill(this.color), this.graphics.drawRect(0, 0, k.screenWidth * k.SCALE, k.screenHeight * k.SCALE), this.graphics.endFill()); k.engine.transitionLayer.addChild(this.rect); this.blindWidth .tween(this.beginBlindWidth, this.endBlindWidth, J.linear, (1e3 * this.duration) | 0) .doOnComplete(q(this, this.stop)); }, draw: function (a) { this.graphics.clear(); this.graphics.beginFill(this.color); this.blindRect.x = 0; this.blindRect.width = this.blindWidth.value; this.direction == ub.IN && (this.blindRect.x += (k.screenWidth * k.SCALE) / this.numBlinds - this.blindWidth.value); a = 0; for (var b = this.numBlinds; a < b; ) a++, this.graphics.drawRect( this.blindRect.x, this.blindRect.y, this.blindRect.width, this.blindRect.height ), (this.blindRect.x += (k.screenWidth * k.SCALE) / this.numBlinds); this.graphics.endFill(); }, cleanup: function () { null != this.rect && (k.engine.transitionLayer.removeChild(this.rect), (this.rect = null)); }, __class__: Dj }); var Cj = function (a, b, c, e) { null == e && (e = -16777216); null == c && (c = 50); ub.call(this, b); this.color = e; this.direction = a; this.numBubbles = c; }; h['com.stencyl.graphics.transitions.BubblesTransition'] = Cj; Cj.__name__ = 'com.stencyl.graphics.transitions.BubblesTransition'; Cj.__super__ = ub; Cj.prototype = r(ub.prototype, { color: null, numBubbles: null, radius: null, beginRadius: null, endRadius: null, rect: null, graphics: null, drawBitmap: null, bubblePositions: null, bubbleRect: null, screenWidth: null, screenHeight: null, start: function () { this.active = !0; this.rect = new Oe(); this.graphics = this.rect.get_graphics(); this.screenWidth = (k.screenWidth * k.SCALE) | 0; this.screenHeight = (k.screenHeight * k.SCALE) | 0; this.direction == ub.IN && (this.graphics.beginFill(this.color), this.graphics.drawRect(0, 0, this.screenWidth, this.screenHeight), this.graphics.endFill()); this.drawBitmap = new ja(this.screenWidth, this.screenHeight); var a = this.screenWidth / this.screenHeight, b = Math.sqrt(this.numBubbles / a) | 0, c = this.screenHeight / b; a = Math.ceil((b * a) | 0); b = Math.ceil(b); var e = (a * c - this.screenWidth) | 0, f = new fa(-e / 2, -((b * c - this.screenHeight) | 0) / 2, c, c); this.bubblePositions = []; for (var d = 0; d < b; ) { d++; for (var p = 0, l = a; p < l; ) p++, this.bubblePositions.push( new na( f.x + Math.floor(Math.random() * (c + 1)), f.y + Math.floor(Math.random() * (c + 1)) ) ), (f.x += c); f.x = -e / 2; f.y += c; } this.beginRadius = 0; this.endRadius = Math.ceil(na.distance(new na(0, 0), new na(c, c))); this.radius = new Ae(); k.engine.transitionLayer.addChild(this.rect); this.radius .tween(this.beginRadius, this.endRadius, J.linear, (1e3 * this.duration) | 0) .doOnComplete(q(this, this.stop)); }, draw: function (a) { this.graphics.clear(); if (this.direction == ub.IN) { this.drawBitmap.draw(k.engine.colorLayer); this.drawBitmap.draw(k.engine.master); this.graphics.beginFill(this.color); this.graphics.drawRect(0, 0, this.screenWidth, this.screenHeight); this.graphics.endFill(); a = 0; for (var b = this.bubblePositions; a < b.length; ) { var c = b[a]; ++a; this.graphics.beginBitmapFill(this.drawBitmap); this.graphics.drawCircle(c.x, c.y, this.radius.value); this.graphics.endFill(); } } else if (this.direction == ub.OUT) for (a = 0, b = this.bubblePositions; a < b.length; ) (c = b[a]), ++a, this.graphics.beginFill(this.color), this.graphics.drawCircle(c.x, c.y, this.radius.value), this.graphics.endFill(); }, cleanup: function () { null != this.rect && (k.engine.transitionLayer.removeChild(this.rect), (this.rect = null)); }, __class__: Cj }); var Fj = function (a, b, c) { null == c && (c = -16777216); ub.call(this, b); this.color = c; this.direction = a; a == ub.IN ? ((this.beginRadius = 0), (this.endRadius = Math.ceil( na.distance( new na(0, 0), new na(k.screenWidthHalf * k.SCALE, k.screenHeightHalf * k.SCALE) ) ) | 0)) : a == ub.OUT && ((this.beginRadius = Math.ceil( na.distance( new na(0, 0), new na(k.screenWidthHalf * k.SCALE, k.screenHeightHalf * k.SCALE) ) ) | 0), (this.endRadius = 0)); }; h['com.stencyl.graphics.transitions.CircleTransition'] = Fj; Fj.__name__ = 'com.stencyl.graphics.transitions.CircleTransition'; Fj.__super__ = ub; Fj.prototype = r(ub.prototype, { color: null, radius: null, beginRadius: null, endRadius: null, circleImg: null, s: null, start: function () { this.active = !0; this.s = new Oe(); this.circleImg = new ja((k.screenWidth * k.SCALE) | 0, (k.screenHeight * k.SCALE) | 0); this.radius = new Ae(); if (this.direction == ub.IN) { var a = this.s.get_graphics(); a.beginFill(this.color); a.drawRect(0, 0, k.screenWidth * k.SCALE, k.screenHeight * k.SCALE); a.endFill(); } k.engine.transitionLayer.addChild(this.s); this.radius .tween(this.beginRadius, this.endRadius, J.linear, (1e3 * this.duration) | 0) .doOnComplete(q(this, this.stop)); }, draw: function (a) { this.s.get_graphics().clear(); this.s.get_graphics().beginFill(this.color); this.s.get_graphics().drawRect(0, 0, k.screenWidth * k.SCALE, k.screenHeight * k.SCALE); this.s.get_graphics().endFill(); this.circleImg.draw(k.engine.colorLayer); this.circleImg.draw(k.engine.master); this.s.get_graphics().beginBitmapFill(this.circleImg); this.s .get_graphics() .drawCircle( k.screenWidthHalf * k.SCALE, k.screenHeightHalf * k.SCALE, this.radius.value ); this.s.get_graphics().endFill(); }, cleanup: function () { null != this.s && (k.engine.transitionLayer.removeChild(this.s), (this.s = null)); }, __class__: Fj }); var bl = function (a, b) { ub.call(this, b); this.oldImg = a; }; h['com.stencyl.graphics.transitions.CrossfadeTransition'] = bl; bl.__name__ = 'com.stencyl.graphics.transitions.CrossfadeTransition'; bl.__super__ = ub; bl.prototype = r(ub.prototype, { oldImg: null, bitmap: null, rect: null, rectAlpha: null, start: function () { this.active = !0; this.bitmap = new ja((k.screenWidth * k.SCALE) | 0, (k.screenHeight * k.SCALE) | 0); this.bitmap.draw(this.oldImg); this.rect = new Oe(); var a = this.rect.get_graphics(); a.beginBitmapFill(this.bitmap); a.drawRect(0, 0, k.screenWidth * k.SCALE, k.screenHeight * k.SCALE); a.endFill(); k.engine.transitionLayer.addChild(this.rect); this.rectAlpha = new Ae(); this.rectAlpha .tween(1, 0, J.linear, (1e3 * this.duration) | 0) .doOnComplete(q(this, this.stop)); }, update: function (a) { this.rect.set_alpha(this.rectAlpha.value); }, draw: function (a) {}, cleanup: function () { this.bitmap = this.oldImg = null; null != this.rect && (k.engine.transitionLayer.removeChild(this.rect), (this.rect = null)); }, __class__: bl }); var dl = function (a, b) { null == b && (b = -16777216); ub.call(this, a); this.color = b; this.direction = ub.IN; }; h['com.stencyl.graphics.transitions.FadeInTransition'] = dl; dl.__name__ = 'com.stencyl.graphics.transitions.FadeInTransition'; dl.__super__ = ub; dl.prototype = r(ub.prototype, { color: null, rect: null, rectAlpha: null, start: function () { this.active = !0; this.rect = new Oe(); var a = this.rect.get_graphics(); a.beginFill(this.color); a.drawRect(0, 0, k.screenWidth * k.SCALE + 4, k.screenHeight * k.SCALE + 4); a.endFill(); a.drawCircle(1, 1, 1); k.engine.transitionLayer.addChild(this.rect); this.rectAlpha = new Ae(); this.rectAlpha .tween(1, 0, J.linear, (1e3 * this.duration) | 0) .doOnComplete(q(this, this.stop)); }, update: function (a) { this.rect.set_alpha(this.rectAlpha.value); }, cleanup: function () { null != this.rect && (k.engine.transitionLayer.removeChild(this.rect), (this.rect = null)); }, __class__: dl }); var cl = function (a, b) { null == b && (b = -16777216); ub.call(this, a); this.color = b; this.direction = ub.IN; }; h['com.stencyl.graphics.transitions.FadeOutTransition'] = cl; cl.__name__ = 'com.stencyl.graphics.transitions.FadeOutTransition'; cl.__super__ = ub; cl.prototype = r(ub.prototype, { color: null, rect: null, rectAlpha: null, start: function () { this.active = !0; this.rect = new Oe(); this.rect.set_alpha(0); var a = this.rect.get_graphics(); a.beginFill(this.color); a.drawRect(0, 0, k.screenWidth * k.SCALE + 4, k.screenHeight * k.SCALE + 4); a.endFill(); a.drawCircle(1, 1, 1); k.engine.transitionLayer.addChild(this.rect); this.rectAlpha = new Ae(); this.rectAlpha .tween(0, 1, J.linear, (1e3 * this.duration) | 0) .doOnComplete(q(this, this.stop)); }, update: function (a) { this.rect.set_alpha(this.rectAlpha.value); }, cleanup: function () { null != this.rect && (k.engine.transitionLayer.removeChild(this.rect), (this.rect = null)); }, __class__: cl }); var Bj = function (a, b, c) { ub.call(this, a); this.beginPixelSize = b; this.endPixelSize = c; }; h['com.stencyl.graphics.transitions.PixelizeTransition'] = Bj; Bj.__name__ = 'com.stencyl.graphics.transitions.PixelizeTransition'; Bj.__super__ = ub; Bj.prototype = r(ub.prototype, { pixelSizeTween: null, beginPixelSize: null, endPixelSize: null, srcImg: null, displayImg: null, displayBitmap: null, c: null, r: null, xOverflow: null, yOverflow: null, pixelRect: null, halfSize: null, start: function () { this.active = !0; this.srcImg = new ja((k.screenWidth * k.SCALE) | 0, (k.screenHeight * k.SCALE) | 0); this.displayImg = new ja((k.screenWidth * k.SCALE) | 0, (k.screenHeight * k.SCALE) | 0); this.pixelRect = new fa(0, 0, 0, 0); k.engine.transitionLayer.addChild((this.displayBitmap = new Mc(this.displayImg))); this.pixelSizeTween = new Ae(); this.pixelSizeTween .tween(this.beginPixelSize, this.endPixelSize, J.linear, (1e3 * this.duration) | 0) .doOnComplete(q(this, this.stop)); }, draw: function (a) { a = this.pixelSizeTween.value | 0; if (1 == a) this.displayImg.draw(k.engine.colorLayer), this.displayImg.draw(k.engine.master); else { this.srcImg.draw(k.engine.colorLayer); this.srcImg.draw(k.engine.master); this.c = Math.ceil((k.screenWidth * k.SCALE) / a); this.r = Math.ceil((k.screenHeight * k.SCALE) / a); this.xOverflow = (this.c * a - k.screenWidth * k.SCALE) | 0; this.yOverflow = (this.r * a - k.screenHeight * k.SCALE) | 0; this.pixelRect.x = -this.xOverflow / 2; this.pixelRect.y = -this.yOverflow / 2; this.pixelRect.height = this.pixelRect.width = a; this.halfSize = (a / 2) | 0; this.displayImg.lock(); for (var b = 0, c = this.r; b < c; ) { b++; for (var e = 0, f = this.c; e < f; ) { e++; var d = this.srcImg.getPixel32( (this.pixelRect.x + this.halfSize) | 0, (this.pixelRect.y + this.halfSize) | 0 ); for ( var p = this.pixelRect.x | 0, l = (this.pixelRect.x + this.pixelRect.width) | 0; p < l; ) for ( var v = p++, n = this.pixelRect.y | 0, h = (this.pixelRect.y + this.pixelRect.height) | 0; n < h; ) { var m = n++; this.displayImg.setPixel32(v, m, d); } this.pixelRect.x += a; } this.pixelRect.x = -this.xOverflow / 2; this.pixelRect.y += a; } this.displayImg.unlock(); } }, cleanup: function () { null != this.displayBitmap && k.engine.transitionLayer.removeChild(this.displayBitmap); }, __class__: Bj }); var Ej = function (a, b, c) { ub.call(this, b); this.color = c; this.direction = a; a == ub.IN ? ((this.beginHeight = this.beginWidth = 0), (this.endWidth = (k.screenWidth * k.SCALE) | 0), (this.endHeight = (k.screenHeight * k.SCALE) | 0)) : a == ub.OUT ? ((this.beginWidth = (k.screenWidth * k.SCALE) | 0), (this.beginHeight = (k.screenHeight * k.SCALE) | 0), (this.endHeight = this.endWidth = 0)) : (this.complete = !0); }; h['com.stencyl.graphics.transitions.RectangleTransition'] = Ej; Ej.__name__ = 'com.stencyl.graphics.transitions.RectangleTransition'; Ej.__super__ = ub; Ej.prototype = r(ub.prototype, { rectangleImg: null, graphics: null, color: null, size: null, beginWidth: null, endWidth: null, beginHeight: null, endHeight: null, rect: null, start: function () { this.active = !0; this.size = new Lf(); this.rectangleImg = new ja((k.screenWidth * k.SCALE) | 0, (k.screenHeight * k.SCALE) | 0); this.rect = new Oe(); this.graphics = this.rect.get_graphics(); this.direction == ub.IN && (this.graphics.beginFill(this.color), this.graphics.drawRect(0, 0, k.screenWidth * k.SCALE, k.screenHeight * k.SCALE), this.graphics.endFill()); k.engine.transitionLayer.addChild(this.rect); this.size.onComplete = q(this, this.stop); this.size.tween( this.beginWidth, this.endWidth, this.beginHeight, this.endHeight, J.linear, (1e3 * this.duration) | 0 ); }, draw: function (a) { this.graphics.clear(); this.graphics.beginFill(this.color); this.graphics.drawRect(0, 0, k.screenWidth * k.SCALE, k.screenHeight * k.SCALE); this.graphics.endFill(); this.rectangleImg.draw(k.engine.colorLayer); this.rectangleImg.draw(k.engine.master); this.graphics.beginBitmapFill(this.rectangleImg); this.graphics.drawRect( (k.screenWidth * k.SCALE - this.size.value1) / 2, (k.screenHeight * k.SCALE - this.size.value2) / 2, this.size.value1, this.size.value2 ); this.graphics.endFill(); }, cleanup: function () { null != this.rect && (k.engine.transitionLayer.removeChild(this.rect), (this.rect = null)); }, __class__: Ej }); var Pe = function (a, b, c, e) { ub.call(this, c); this.sceneSpr = a; this.sceneCol = b; this.oldSceneMatrix = new Ia(); this.newSceneMatrix = new Ia(); this.ty = this.tx = 0; e == Pe.SLIDE_UP ? ((this.newSceneMatrix.ty = -k.screenHeight * k.SCALE), (this.ty = k.screenHeight * k.SCALE)) : e == Pe.SLIDE_DOWN ? ((this.newSceneMatrix.ty = k.screenHeight * k.SCALE), (this.ty = -k.screenHeight * k.SCALE)) : e == Pe.SLIDE_LEFT ? ((this.newSceneMatrix.tx = -k.screenWidth * k.SCALE), (this.tx = k.screenWidth * k.SCALE)) : e == Pe.SLIDE_RIGHT ? ((this.newSceneMatrix.tx = k.screenWidth * k.SCALE), (this.tx = -k.screenWidth * k.SCALE)) : (this.complete = !0); }; h['com.stencyl.graphics.transitions.SlideTransition'] = Pe; Pe.__name__ = 'com.stencyl.graphics.transitions.SlideTransition'; Pe.__super__ = ub; Pe.prototype = r(ub.prototype, { sceneSpr: null, sceneCol: null, oldBitmap: null, newBitmap: null, drawBitmap: null, graphics: null, oldSceneMatrix: null, newSceneMatrix: null, osm_xy: null, nsm_xy: null, tx: null, ty: null, rect: null, start: function () { this.active = !0; this.oldBitmap = new ja((k.screenWidth * k.SCALE) | 0, (k.screenHeight * k.SCALE) | 0); this.oldBitmap.draw(this.sceneCol); this.oldBitmap.draw(this.sceneSpr); this.newBitmap = new ja((k.screenWidth * k.SCALE) | 0, (k.screenHeight * k.SCALE) | 0); this.drawBitmap = new ja((k.screenWidth * k.SCALE) | 0, (k.screenHeight * k.SCALE) | 0); this.rect = new Oe(); this.graphics = this.rect.get_graphics(); this.graphics.beginBitmapFill(this.oldBitmap); this.graphics.drawRect(0, 0, k.screenWidth * k.SCALE, k.screenHeight * k.SCALE); this.graphics.endFill(); k.engine.transitionLayer.addChild(this.rect); this.osm_xy = new Lf(); this.nsm_xy = new Lf(); this.osm_xy.tween( this.oldSceneMatrix.tx, this.tx, this.oldSceneMatrix.ty, this.ty, J.linear, (1e3 * this.duration) | 0 ); this.nsm_xy.tween( this.newSceneMatrix.tx, 0, this.newSceneMatrix.ty, 0, J.linear, (1e3 * this.duration) | 0 ); this.nsm_xy.doOnComplete(q(this, this.stop)); }, update: function (a) { this.oldSceneMatrix.tx = this.osm_xy.value1; this.oldSceneMatrix.ty = this.osm_xy.value2; this.newSceneMatrix.tx = this.nsm_xy.value1; this.newSceneMatrix.ty = this.nsm_xy.value2; }, draw: function (a) { this.graphics.clear(); this.newBitmap.draw(this.sceneCol); this.newBitmap.draw(this.sceneSpr); this.drawBitmap.draw(this.newBitmap, this.newSceneMatrix); this.drawBitmap.draw(this.oldBitmap, this.oldSceneMatrix); this.graphics.beginBitmapFill(this.drawBitmap); this.graphics.drawRect(0, 0, k.screenWidth * k.SCALE, k.screenHeight * k.SCALE); this.graphics.endFill(); }, cleanup: function () { this.sceneSpr = null; null != this.rect && (k.engine.transitionLayer.removeChild(this.rect), (this.rect = null)); }, __class__: Pe }); var Vg = function () {}; h['com.stencyl.io.AbstractReader'] = Vg; Vg.__name__ = 'com.stencyl.io.AbstractReader'; Vg.__isInterface__ = !0; Vg.prototype = { accepts: null, read: null, __class__: Vg }; var Vk = function () {}; h['com.stencyl.io.ActorTypeReader'] = Vk; Vk.__name__ = 'com.stencyl.io.ActorTypeReader'; Vk.__interfaces__ = [Vg]; Vk.prototype = { accepts: function (a) { return a == Pa.MBS_ACTOR_TYPE.getName(); }, read: function (a) { var b = a.getId(), c = a.getAtlasID(), e = a.getName(), f = new ri(); f.fixedRotation = a.getFixedRotation(); switch (a.getBodyType()) { case 0: var d = va.b2_staticBody; break; case 1: d = va.b2_kinematicBody; break; default: d = va.b2_dynamicBody; } f.type = d; f.linearDamping = a.getLinearDamping(); f.angularDamping = a.getAngularDamping(); f.friction = a.getFriction(); f.bounciness = a.getRestitution(); f.mass = a.getMass(); f.aMass = a.getInertia(); f.active = !0; f.bullet = !1; f.allowSleep = !1; f.awake = !0; f.ignoreGravity = a.getIgnoreGravity(); f.bullet = a.getContinuous(); d = a.getSprite(); var p = a.getGroupID(), l = a.getPhysicsMode(), v = a.getAutoScale(), n = a.getPausable(), k = f.ignoreGravity || f.type == va.b2_staticBody || f.type == va.b2_kinematicBody, m = te.readBehaviors(a.getSnippets()); a = a.getEventSnippetID(); if (-1 < a) { var h = new Ij(a, new qa()); m.h['' + a] = h; } return new dg(b, c, e, p, d, m, f, l, v, n, k); }, __class__: Vk }; var te = function () {}; h['com.stencyl.io.AttributeValues'] = te; te.__name__ = 'com.stencyl.io.AttributeValues'; te.readBehaviors = function (a) { for (var b = new qa(), c = 0, e = a.length(); c < e; ) { c++; var f = a.getNextObject(); if (f.getEnabled()) { var d = f.getId(); f = te.readBehaviorProperties(f.getProperties()); f = new Ij(d, f); b.h['' + d] = f; } } return b; }; te.readBehaviorProperties = function (a) { for (var b = new qa(), c = 0, e = a.length(); c < e; ) { c++; var f = a.getNextObject(), d = f.getId(), p = f.getType(); f = te.readAttribute(p, f); b.h['' + d] = f; } return b; }; te.readAttribute = function (a, b) { switch (a) { case 'list': return te.readList(b.getValue()); case 'map': return te.readMap(b.getValue()); default: return b.getValue(); } }; te.readAttributeDef = function (a, b) { switch (a) { case 'list': return te.readList(b.getDefaultValue()); case 'map': return te.readMap(b.getDefaultValue()); default: return b.getDefaultValue(); } }; te.readList = function (a) { if (null == a) return null; for (var b = [], c = 0, e = a.length(); c < e; ) { var f = c++; b[f] = a.readObject(); } return b; }; te.readMap = function (a) { if (null == a) return null; for (var b = new qa(), c = 0, e = a.length(); c < e; ) { c++; var f = a.getNextObject(), d = f.getKey(); f = f.getValue(); if (f instanceof vh) { for (var p = [], l = 0, v = f.length(); l < v; ) l++, p.push(f.readObject()); f = p; } else f instanceof Ta && (f = te.readMap(f)); b.h[d] = f; } return b; }; var Sk = function () {}; h['com.stencyl.io.BackgroundReader'] = Sk; Sk.__name__ = 'com.stencyl.io.BackgroundReader'; Sk.__interfaces__ = [Vg]; Sk.prototype = { accepts: function (a) { return a == ob.MBS_BACKGROUND.getName(); }, read: function (a) { var b = a.getId(), c = a.getAtlasID(), e = a.getName(), f = a.getXVelocity(), d = a.getYVelocity(), p = a.getXParallaxFactor(), l = a.getYParallaxFactor(), v = []; if (0 < a.getNumFrames()) for (var n = a.getDurations(), k = 0, m = n.length(); k < m; ) k++, v.push(n.readInt()); a = a.getRepeats(); return 0 != f || 0 != d ? new wh(b, c, e, v, p, l, a, f, d) : new Ag(b, c, e, v, p, l, a); }, __class__: Sk }; var vi = function () {}; h['com.stencyl.io.BehaviorReader'] = vi; vi.__name__ = 'com.stencyl.io.BehaviorReader'; vi.readBehavior = function (a) { var b = a.getId(), c = a.getName(), e = a.getClassname(), f = a.getAttachedEvent(), d = new qa(), p = a.getType(); a = a.getAttributes(); for (var l = 0, v = a.length(); l < v; ) { l++; var n = a.getNextObject(), k = '' + n.getId(); n = vi.readAttribute(n, f); d.h[k] = n; } return new Yk(null, null, b, c, e, !0, !0, d, p, f); }; vi.readAttribute = function (a, b) { var c = a.getId(), e = a.getName(), f = a.getFullname(); b = b || a.getHidden(); var d = a.getType(); a = te.readAttributeDef(d, a); return new wi(c, e, f, a, d, null, b); }; vi.prototype = { __class__: vi }; var Xk = function () {}; h['com.stencyl.io.FontReader'] = Xk; Xk.__name__ = 'com.stencyl.io.FontReader'; Xk.__interfaces__ = [Vg]; Xk.prototype = { accepts: function (a) { return a == fc.MBS_FONT.getName(); }, read: function (a) { return new Bf(a.getId(), a.getAtlasID(), a.getName(), !1); }, __class__: Xk }; var wd = function () {}; h['com.stencyl.io.ShapeReader'] = wd; wd.__name__ = 'com.stencyl.io.ShapeReader'; wd.readPoint = function (a) { return new na(a.getX(), a.getY()); }; wd.readPoints = function (a) { for (var b = Array(a.length()), c = 0, e = a.length(); c < e; ) { var f = c++, d = a.getNextObject(); b[f] = new na(d.getX(), d.getY()); } return b; }; wd.createCircle = function (a, b, c, e, f) { null == f && (f = -1); null == e && (e = -1); var d = 2 * a, p = new Lc(); p.m_radius = k.toPhysicalUnits(a); p.m_p.x = k.toPhysicalUnits(b - (e - d) / 2); p.m_p.y = k.toPhysicalUnits(c - (f - d) / 2); return p; }; wd.createPolygon = function (a, b, c, e) { null == e && (e = 0); null == c && (c = 0); var f = []; var d = b.length; var p = 0; c = (-c / 2) | 0; e = (-e / 2) | 0; if ('MbsPolygon' == a || 'MbsPolyRegion' == a) { for (p = 0; p < d; ) { var l = b[p]; a = k.toPhysicalUnits(l.x + c); l = k.toPhysicalUnits(l.y + e); f[p] = new P(a, l); ++p; } wd.EnsureCorrectVertexDirection(f); return Db.asArray(f, f.length); } if ('MbsWireframe' == a) { for (; p < d; ) (l = b[p]), f.push(new P(k.toPhysicalUnits(l.x), k.toPhysicalUnits(l.y))), ++p; b = wd.getWidth(f); d = wd.getHeight(f); p = []; c = 0; for (e = f.length + 1; c < e; ) { var v = c++; a = new vg(f[v % f.length], f[(v + 1) % f.length]); p.push(a); a.m_hasVertex0 = !0; a.m_hasVertex3 = !0; l = f[(v - 1) % f.length]; v = f[(v + 2) % f.length]; null == l && (l = f[f.length - 1]); null == v && (v = f[0]); a.m_v0 = l; a.m_v3 = v; } f = new Za(); f.h[0] = p; f.h[1] = b; f.h[2] = d; return f; } return null; }; wd.CheckVertexDirection = function (a) { if (2 < a.length) { for (var b = 0, c = 0; 0 == b && c < a.length - 2; ) (b = a[c].winding(a[c + 1], a[c + 2])), ++c; if (0 > b) return !1; } return !0; }; wd.EnsureCorrectVertexDirection = function (a) { return wd.CheckVertexDirection(a) ? !0 : (wd.ReverseVertices(a), !1); }; wd.ReverseVertices = function (a) { for (var b = 0, c = a.length - 1, e; c > b; ) (e = a[b].x), (a[b].x = a[c].x), (a[c].x = e), (e = a[b].y), (a[b].y = a[c].y), (a[c].y = e), ++b, --c; }; wd.getWidth = function (a) { for (var b = 1e7, c = 0, e = 0; e < a.length; ) { var f = a[e]; ++e; b = Math.min(b, f.x); c = Math.max(c, f.x); } return c - b; }; wd.getHeight = function (a) { for (var b = 1e7, c = 0, e = 0; e < a.length; ) { var f = a[e]; ++e; b = Math.min(b, f.y); c = Math.max(c, f.y); } return c - b; }; var Tk = function () {}; h['com.stencyl.io.SoundReader'] = Tk; Tk.__name__ = 'com.stencyl.io.SoundReader'; Tk.__interfaces__ = [Vg]; Tk.prototype = { accepts: function (a) { return a == tc.MBS_MUSIC.getName(); }, read: function (a) { var b = a.getStream(), c = a.getLoop(), e = a.getPan(), f = a.getVolume(), d = a.getType(); return new Ph(a.getId(), a.getName(), b, c, e, f, d, a.getAtlasID()); }, __class__: Tk }; var Wk = function () {}; h['com.stencyl.io.SpriteReader'] = Wk; Wk.__name__ = 'com.stencyl.io.SpriteReader'; Wk.__interfaces__ = [Vg]; Wk.prototype = { accepts: function (a) { return a == sc.MBS_SPRITE.getName(); }, read: function (a) { var b = a.getDefaultAnimation(), c = a.getReadableImages(); b = new ui(a.getId(), a.getAtlasID(), a.getName(), b, c); a = a.getAnimations(); c = 0; for (var e = a.length(); c < e; ) { c++; var f = a.getNextObject(); f = this.readAnimation(f, b); b.animations.h[f.animID] = f; } return b; }, readAnimation: function (a, b) { for ( var c = a.getId(), e = a.getName(), f = a.getWidth(), d = a.getHeight(), p = a.getOriginX(), l = a.getOriginY(), v = a.getNumFrames(), n = a.getAcross(), k = a.getDown(), m = this.readSimpleShapes(a, (f / n) | 0, (d / k) | 0), h = this.readShapes(a, (f / n) | 0, (d / k) | 0), t = a.getLoop(), u = a.getSync(), q = [], r = a.getDurations(), w = 0, ia = r.length(); w < ia; ) (a = w++), (q[a] = r.readInt()), (q[a] = Math.floor(q[a] / 10)), (q[a] *= 10); return new se(c, e, b, m, h, t, u, f, d, p, l, q, v, n, k); }, readSimpleShapes: function (a, b, c) { b = new Za(); a = a.getShapes(); c = 0; for (var e = a.length(); c < e; ) { c++; var f = a.getNextObject(), d = f.getId(), p = f.getGroupID(), l = f.getSensor(); f = f.getShape(); if (f instanceof Vc && ((f = f.getPoints()), 4 == f.length())) { for ( var v = f.getNextObject(), n = 0, k = 1e7, m = 1e7, h = 0, t = 0, u = v.getX() | 0, q = v.getY() | 0; n < f.length(); ) (k = Math.min(k, v.getX()) | 0), (m = Math.min(m, v.getY()) | 0), (h = Math.max(h, v.getX()) | 0), (t = Math.max(t, v.getY()) | 0), ++n, n < f.length() && (v = f.getNextObject()); p = new id(h - k, t - m, u, q, !l, p); b.h[d] = p; } } return b; }, readShapes: function (a, b, c) { var e = new Za(); a = a.getShapes(); for (var f = 0, d = a.length(); f < d; ) { f++; var p = a.getNextObject(), l = p.getId(); p.getGroupID(); var v = p.getSensor(), n = p.getShape(); if (n instanceof Hd) n = wd.createCircle( n.getRadius(), n.getPosition().getX(), n.getPosition().getY(), b, c ); else { var k = n; n = wd.createPolygon( n.getMbsType().getName(), wd.readPoints(k.getPoints()).slice(0), b, c ); } k = new If(); k.shape = n; k.density = p.getDensity(); k.friction = p.getFriction(); k.restitution = p.getRestitution(); k.isSensor = v; k.groupID = p.getGroupID(); e.h[l] = k; } return e; }, __class__: Wk }; var Uk = function () {}; h['com.stencyl.io.TilesetReader'] = Uk; Uk.__name__ = 'com.stencyl.io.TilesetReader'; Uk.__interfaces__ = [Vg]; Uk.prototype = { accepts: function (a) { return a == gc.MBS_TILESET.getName(); }, read: function (a) { var b = a.getAcross(), c = a.getDown(), e = a.getTileWidth(), f = a.getTileHeight(), d = a.getReadableImages(), p = []; b = new sf(a.getId(), a.getAtlasID(), a.getName(), b, c, e, f, d, p); a = a.getTiles(); c = 0; for (e = a.length(); c < e; ) c++, (f = a.getNextObject()), (p[f.getId()] = this.readTile(f, b)); b.isAtlasActive() && b.loadGraphics(); return b; }, readTile: function (a, b) { for ( var c = a.getId(), e = a.getCollision(), f = a.getMetadata(), d = a.getFrames(), p = [], l = 0, v = a.getDurations(), n = 0, k = v.length(); n < k; ) n++, (p[l] = v.readInt()), (p[l] = Math.floor(p[l] / 10)), (p[l] *= 10), ++l; l = null; -1 != a.getAutotile() && ((n = Fa.get().autotileFormats), (k = a.getAutotile()), (l = n.h[k])); v = null; if (0 != a.getAutotileMerge().length()) for (v = new Za(), a = a.getAutotileMerge(), n = 0, k = a.length(); n < k; ) { n++; var m = a.readInt(); v.h[m] = m; } return new Nc(c, e, f, d, p, l, v, b); }, __class__: Uk }; var mb = function (a) { this.data = a; }; h['mbs.core.MbsObject'] = mb; mb.__name__ = 'mbs.core.MbsObject'; mb.prototype = { data: null, address: null, getMbs: function () { return this.data; }, getAddress: function () { return this.address; }, setAddress: function (a) { this.address = a; }, getMbsType: function () { throw M.thrown('Must override getMbsType in MbsObject subclasses'); }, __class__: mb }; var rb = function (a) { this.data = a; }; h['com.stencyl.io.mbs.MbsResource'] = rb; rb.__name__ = 'com.stencyl.io.mbs.MbsResource'; rb.initializeType = function () { null == rb.MBS_RESOURCE && ((rb.MBS_RESOURCE = new wb('MbsResource')), rb.MBS_RESOURCE.setInstantiator(function (a) { return new rb(a); }), (rb.atlasID = rb.MBS_RESOURCE.createField('atlasID', G.INTEGER)), (rb.description = rb.MBS_RESOURCE.createField('description', G.STRING)), (rb.id = rb.MBS_RESOURCE.createField('id', G.INTEGER)), (rb.$name = rb.MBS_RESOURCE.createField('name', G.STRING))); }; rb.new_MbsResource_list = function (a) { return new Ta(a, rb.MBS_RESOURCE, new rb(a)); }; rb.__super__ = mb; rb.prototype = r(mb.prototype, { getMbsType: function () { return rb.MBS_RESOURCE; }, allocateNew: function () { this.setAddress(this.data.allocate(rb.MBS_RESOURCE.getSize())); }, getAtlasID: function () { return this.data.readInt(this.address + rb.atlasID.address); }, setAtlasID: function (a) { this.data.writeInt(this.address + rb.atlasID.address, a); }, getDescription: function () { return this.data.readString(this.address + rb.description.address); }, setDescription: function (a) { this.data.writeString(this.address + rb.description.address, a); }, getId: function () { return this.data.readInt(this.address + rb.id.address); }, setId: function (a) { this.data.writeInt(this.address + rb.id.address, a); }, getName: function () { return this.data.readString(this.address + rb.$name.address); }, setName: function (a) { this.data.writeString(this.address + rb.$name.address, a); }, __class__: rb }); var ob = function (a) { this.data = a; this._durations = new Mf(a); }; h['com.stencyl.io.mbs.MbsBackground'] = ob; ob.__name__ = 'com.stencyl.io.mbs.MbsBackground'; ob.initializeType = function () { null == ob.MBS_BACKGROUND && (rb.initializeType(), (ob.MBS_BACKGROUND = new wb('MbsBackground')), ob.MBS_BACKGROUND.setInstantiator(function (a) { return new ob(a); }), ob.MBS_BACKGROUND.inherit(rb.MBS_RESOURCE), (ob.readableImages = ob.MBS_BACKGROUND.createField('readableImages', G.BOOLEAN)), (ob.durations = ob.MBS_BACKGROUND.createField('durations', G.LIST)), (ob.height = ob.MBS_BACKGROUND.createField('height', G.INTEGER)), (ob.numFrames = ob.MBS_BACKGROUND.createField('numFrames', G.INTEGER)), (ob.repeats = ob.MBS_BACKGROUND.createField('repeats', G.BOOLEAN)), (ob.resized = ob.MBS_BACKGROUND.createField('resized', G.BOOLEAN)), (ob.width = ob.MBS_BACKGROUND.createField('width', G.INTEGER)), (ob.xParallaxFactor = ob.MBS_BACKGROUND.createField('xParallaxFactor', G.FLOAT)), (ob.xVelocity = ob.MBS_BACKGROUND.createField('xVelocity', G.FLOAT)), (ob.yParallaxFactor = ob.MBS_BACKGROUND.createField('yParallaxFactor', G.FLOAT)), (ob.yVelocity = ob.MBS_BACKGROUND.createField('yVelocity', G.FLOAT))); }; ob.new_MbsBackground_list = function (a) { return new Ta(a, ob.MBS_BACKGROUND, new ob(a)); }; ob.__super__ = rb; ob.prototype = r(rb.prototype, { getMbsType: function () { return ob.MBS_BACKGROUND; }, _durations: null, allocateNew: function () { this.setAddress(this.data.allocate(ob.MBS_BACKGROUND.getSize())); }, getReadableImages: function () { return this.data.readBool(this.address + ob.readableImages.address); }, setReadableImages: function (a) { this.data.writeBool(this.address + ob.readableImages.address, a); }, getDurations: function () { this._durations.setAddress(this.data.readInt(this.address + ob.durations.address)); return this._durations; }, createDurations: function (a) { this._durations.allocateNew(a); this.data.writeInt(this.address + ob.durations.address, this._durations.getAddress()); return this._durations; }, getHeight: function () { return this.data.readInt(this.address + ob.height.address); }, setHeight: function (a) { this.data.writeInt(this.address + ob.height.address, a); }, getNumFrames: function () { return this.data.readInt(this.address + ob.numFrames.address); }, setNumFrames: function (a) { this.data.writeInt(this.address + ob.numFrames.address, a); }, getRepeats: function () { return this.data.readBool(this.address + ob.repeats.address); }, setRepeats: function (a) { this.data.writeBool(this.address + ob.repeats.address, a); }, getResized: function () { return this.data.readBool(this.address + ob.resized.address); }, setResized: function (a) { this.data.writeBool(this.address + ob.resized.address, a); }, getWidth: function () { return this.data.readInt(this.address + ob.width.address); }, setWidth: function (a) { this.data.writeInt(this.address + ob.width.address, a); }, getXParallaxFactor: function () { return this.data.readFloat(this.address + ob.xParallaxFactor.address); }, setXParallaxFactor: function (a) { this.data.writeFloat(this.address + ob.xParallaxFactor.address, a); }, getXVelocity: function () { return this.data.readFloat(this.address + ob.xVelocity.address); }, setXVelocity: function (a) { this.data.writeFloat(this.address + ob.xVelocity.address, a); }, getYParallaxFactor: function () { return this.data.readFloat(this.address + ob.yParallaxFactor.address); }, setYParallaxFactor: function (a) { this.data.writeFloat(this.address + ob.yParallaxFactor.address, a); }, getYVelocity: function () { return this.data.readFloat(this.address + ob.yVelocity.address); }, setYVelocity: function (a) { this.data.writeFloat(this.address + ob.yVelocity.address, a); }, __class__: ob }); var xd = function (a) { this.data = a; }; h['com.stencyl.io.mbs.MbsBlank'] = xd; xd.__name__ = 'com.stencyl.io.mbs.MbsBlank'; xd.initializeType = function () { null == xd.MBS_BLANK && ((xd.MBS_BLANK = new wb('MbsBlank')), xd.MBS_BLANK.setInstantiator(function (a) { return new xd(a); }), (xd.$name = xd.MBS_BLANK.createField('name', G.STRING)), (xd.type = xd.MBS_BLANK.createField('type', G.STRING))); }; xd.new_MbsBlank_list = function (a) { return new Ta(a, xd.MBS_BLANK, new xd(a)); }; xd.__super__ = mb; xd.prototype = r(mb.prototype, { getMbsType: function () { return xd.MBS_BLANK; }, allocateNew: function () { this.setAddress(this.data.allocate(xd.MBS_BLANK.getSize())); }, getName: function () { return this.data.readString(this.address + xd.$name.address); }, setName: function (a) { this.data.writeString(this.address + xd.$name.address, a); }, getType: function () { return this.data.readString(this.address + xd.type.address); }, setType: function (a) { this.data.writeString(this.address + xd.type.address, a); }, __class__: xd }); var Eb = function (a) { this.data = a; this._blanks = new Ta(a, xd.MBS_BLANK, new xd(a)); }; h['com.stencyl.io.mbs.MbsCustomBlock'] = Eb; Eb.__name__ = 'com.stencyl.io.mbs.MbsCustomBlock'; Eb.initializeType = function () { null == Eb.MBS_CUSTOM_BLOCK && (rb.initializeType(), (Eb.MBS_CUSTOM_BLOCK = new wb('MbsCustomBlock')), Eb.MBS_CUSTOM_BLOCK.setInstantiator(function (a) { return new Eb(a); }), Eb.MBS_CUSTOM_BLOCK.inherit(rb.MBS_RESOURCE), (Eb.blocktag = Eb.MBS_CUSTOM_BLOCK.createField('blocktag', G.STRING)), (Eb.blocktype = Eb.MBS_CUSTOM_BLOCK.createField('blocktype', G.STRING)), (Eb.code = Eb.MBS_CUSTOM_BLOCK.createField('code', G.STRING)), (Eb.global = Eb.MBS_CUSTOM_BLOCK.createField('global', G.BOOLEAN)), (Eb.gui = Eb.MBS_CUSTOM_BLOCK.createField('gui', G.STRING)), (Eb.message = Eb.MBS_CUSTOM_BLOCK.createField('message', G.STRING)), (Eb.returnType = Eb.MBS_CUSTOM_BLOCK.createField('returnType', G.STRING)), (Eb.snippetID = Eb.MBS_CUSTOM_BLOCK.createField('snippetID', G.INTEGER)), (Eb.blanks = Eb.MBS_CUSTOM_BLOCK.createField('blanks', G.LIST))); }; Eb.new_MbsCustomBlock_list = function (a) { return new Ta(a, Eb.MBS_CUSTOM_BLOCK, new Eb(a)); }; Eb.__super__ = rb; Eb.prototype = r(rb.prototype, { getMbsType: function () { return Eb.MBS_CUSTOM_BLOCK; }, _blanks: null, allocateNew: function () { this.setAddress(this.data.allocate(Eb.MBS_CUSTOM_BLOCK.getSize())); }, getBlocktag: function () { return this.data.readString(this.address + Eb.blocktag.address); }, setBlocktag: function (a) { this.data.writeString(this.address + Eb.blocktag.address, a); }, getBlocktype: function () { return this.data.readString(this.address + Eb.blocktype.address); }, setBlocktype: function (a) { this.data.writeString(this.address + Eb.blocktype.address, a); }, getCode: function () { return this.data.readString(this.address + Eb.code.address); }, setCode: function (a) { this.data.writeString(this.address + Eb.code.address, a); }, getGlobal: function () { return this.data.readBool(this.address + Eb.global.address); }, setGlobal: function (a) { this.data.writeBool(this.address + Eb.global.address, a); }, getGui: function () { return this.data.readString(this.address + Eb.gui.address); }, setGui: function (a) { this.data.writeString(this.address + Eb.gui.address, a); }, getMessage: function () { return this.data.readString(this.address + Eb.message.address); }, setMessage: function (a) { this.data.writeString(this.address + Eb.message.address, a); }, getReturnType: function () { return this.data.readString(this.address + Eb.returnType.address); }, setReturnType: function (a) { this.data.writeString(this.address + Eb.returnType.address, a); }, getSnippetID: function () { return this.data.readInt(this.address + Eb.snippetID.address); }, setSnippetID: function (a) { this.data.writeInt(this.address + Eb.snippetID.address, a); }, getBlanks: function () { this._blanks.setAddress(this.data.readInt(this.address + Eb.blanks.address)); return this._blanks; }, createBlanks: function (a) { this._blanks.allocateNew(a); this.data.writeInt(this.address + Eb.blanks.address, this._blanks.getAddress()); return this._blanks; }, __class__: Eb }); var fc = function (a) { this.data = a; }; h['com.stencyl.io.mbs.MbsFont'] = fc; fc.__name__ = 'com.stencyl.io.mbs.MbsFont'; fc.initializeType = function () { null == fc.MBS_FONT && (rb.initializeType(), (fc.MBS_FONT = new wb('MbsFont')), fc.MBS_FONT.setInstantiator(function (a) { return new fc(a); }), fc.MBS_FONT.inherit(rb.MBS_RESOURCE), (fc.alphabet = fc.MBS_FONT.createField('alphabet', G.STRING)), (fc.readableImages = fc.MBS_FONT.createField('readableImages', G.BOOLEAN)), (fc.height = fc.MBS_FONT.createField('height', G.INTEGER)), (fc.offsets = fc.MBS_FONT.createField('offsets', G.STRING)), (fc.prerendered = fc.MBS_FONT.createField('prerendered', G.BOOLEAN)), (fc.rowHeight = fc.MBS_FONT.createField('rowHeight', G.INTEGER))); }; fc.new_MbsFont_list = function (a) { return new Ta(a, fc.MBS_FONT, new fc(a)); }; fc.__super__ = rb; fc.prototype = r(rb.prototype, { getMbsType: function () { return fc.MBS_FONT; }, allocateNew: function () { this.setAddress(this.data.allocate(fc.MBS_FONT.getSize())); }, getAlphabet: function () { return this.data.readString(this.address + fc.alphabet.address); }, setAlphabet: function (a) { this.data.writeString(this.address + fc.alphabet.address, a); }, getReadableImages: function () { return this.data.readBool(this.address + fc.readableImages.address); }, setReadableImages: function (a) { this.data.writeBool(this.address + fc.readableImages.address, a); }, getHeight: function () { return this.data.readInt(this.address + fc.height.address); }, setHeight: function (a) { this.data.writeInt(this.address + fc.height.address, a); }, getOffsets: function () { return this.data.readString(this.address + fc.offsets.address); }, setOffsets: function (a) { this.data.writeString(this.address + fc.offsets.address, a); }, getPrerendered: function () { return this.data.readBool(this.address + fc.prerendered.address); }, setPrerendered: function (a) { this.data.writeBool(this.address + fc.prerendered.address, a); }, getRowHeight: function () { return this.data.readInt(this.address + fc.rowHeight.address); }, setRowHeight: function (a) { this.data.writeInt(this.address + fc.rowHeight.address, a); }, __class__: fc }); var tc = function (a) { this.data = a; }; h['com.stencyl.io.mbs.MbsMusic'] = tc; tc.__name__ = 'com.stencyl.io.mbs.MbsMusic'; tc.initializeType = function () { null == tc.MBS_MUSIC && (rb.initializeType(), (tc.MBS_MUSIC = new wb('MbsMusic')), tc.MBS_MUSIC.setInstantiator(function (a) { return new tc(a); }), tc.MBS_MUSIC.inherit(rb.MBS_RESOURCE), (tc.loop = tc.MBS_MUSIC.createField('loop', G.BOOLEAN)), (tc.pan = tc.MBS_MUSIC.createField('pan', G.INTEGER)), (tc.stream = tc.MBS_MUSIC.createField('stream', G.BOOLEAN)), (tc.type = tc.MBS_MUSIC.createField('type', G.STRING)), (tc.volume = tc.MBS_MUSIC.createField('volume', G.INTEGER))); }; tc.new_MbsMusic_list = function (a) { return new Ta(a, tc.MBS_MUSIC, new tc(a)); }; tc.__super__ = rb; tc.prototype = r(rb.prototype, { getMbsType: function () { return tc.MBS_MUSIC; }, allocateNew: function () { this.setAddress(this.data.allocate(tc.MBS_MUSIC.getSize())); }, getLoop: function () { return this.data.readBool(this.address + tc.loop.address); }, setLoop: function (a) { this.data.writeBool(this.address + tc.loop.address, a); }, getPan: function () { return this.data.readInt(this.address + tc.pan.address); }, setPan: function (a) { this.data.writeInt(this.address + tc.pan.address, a); }, getStream: function () { return this.data.readBool(this.address + tc.stream.address); }, setStream: function (a) { this.data.writeBool(this.address + tc.stream.address, a); }, getType: function () { return this.data.readString(this.address + tc.type.address); }, setType: function (a) { this.data.writeString(this.address + tc.type.address, a); }, getVolume: function () { return this.data.readInt(this.address + tc.volume.address); }, setVolume: function (a) { this.data.writeInt(this.address + tc.volume.address, a); }, __class__: tc }); var tf = function (a, b) { this.name = a; this.size = b; }; h['mbs.core.MbsType'] = tf; tf.__name__ = 'mbs.core.MbsType'; tf.prototype = { name: null, size: null, getName: function () { return this.name; }, getSize: function () { return this.size; }, toString: function () { return 'MbsType [name=' + this.getName() + ']'; }, createInstance: function (a) { throw M.thrown("Can't create an instance of type " + this.name); }, __class__: tf }; var G = function () {}; h['mbs.core.MbsTypes'] = G; G.__name__ = 'mbs.core.MbsTypes'; var vc = function (a) { this.data = a; }; h['mbs.core.header.MbsHeader'] = vc; vc.__name__ = 'mbs.core.header.MbsHeader'; vc.initializeType = function () { null == vc.MBS_HEADER && ((vc.MBS_HEADER = new wb('MbsHeader')), vc.MBS_HEADER.setInstantiator(function (a) { return new vc(a); }), (vc.version = vc.MBS_HEADER.createField('version', G.INTEGER)), (vc.typeTableHash = vc.MBS_HEADER.createField('typeTableHash', G.INTEGER)), (vc.typeTablePointer = vc.MBS_HEADER.createField('typeTablePointer', G.INTEGER)), (vc.stringTablePointer = vc.MBS_HEADER.createField('stringTablePointer', G.INTEGER)), (vc.root = vc.MBS_HEADER.createField('root', G.DYNAMIC))); }; vc.new_MbsHeader_list = function (a) { return new Ta(a, vc.MBS_HEADER, new vc(a)); }; vc.__super__ = mb; vc.prototype = r(mb.prototype, { getMbsType: function () { return vc.MBS_HEADER; }, allocateNew: function () { this.setAddress(this.data.allocate(vc.MBS_HEADER.getSize())); }, getVersion: function () { return this.data.readInt(this.address + vc.version.address); }, setVersion: function (a) { this.data.writeInt(this.address + vc.version.address, a); }, getTypeTableHash: function () { return this.data.readInt(this.address + vc.typeTableHash.address); }, setTypeTableHash: function (a) { this.data.writeInt(this.address + vc.typeTableHash.address, a); }, getTypeTablePointer: function () { return this.data.readInt(this.address + vc.typeTablePointer.address); }, setTypeTablePointer: function (a) { this.data.writeInt(this.address + vc.typeTablePointer.address, a); }, getStringTablePointer: function () { return this.data.readInt(this.address + vc.stringTablePointer.address); }, setStringTablePointer: function (a) { this.data.writeInt(this.address + vc.stringTablePointer.address, a); }, getRoot: function () { return de.readDynamic(this.data, this.address + vc.root.address); }, setRoot: function (a) { de.writeDynamic(this.data, this.address + vc.root.address, a); }, __class__: vc }); var wb = function (a) { tf.call(this, a, 0); this.fields = []; }; h['mbs.core.ComposedType'] = wb; wb.__name__ = 'mbs.core.ComposedType'; wb.__super__ = tf; wb.prototype = r(tf.prototype, { parent: null, fields: null, inherit: function (a) { this.parent = a; this.size = a.getSize(); }, createField: function (a, b) { a = new zi(a, b, this.size); this.fields.push(a); this.size += b.getSize(); return a; }, getParent: function () { return this.parent; }, getFields: function () { return this.fields; }, instantiator: null, setInstantiator: function (a) { this.instantiator = a; }, createInstance: function (a) { return null != this.instantiator ? this.instantiator(a) : tf.prototype.createInstance.call(this, a); }, createList: function (a) { return new Ta(a, this, this.createInstance(a)); }, __class__: wb }); var Oc = function (a) { this.data = a; }; h['mbs.core.header.MbsTypeInfo'] = Oc; Oc.__name__ = 'mbs.core.header.MbsTypeInfo'; Oc.initializeType = function () { null == Oc.MBS_TYPE_INFO && ((Oc.MBS_TYPE_INFO = new wb('MbsTypeInfo')), Oc.MBS_TYPE_INFO.setInstantiator(function (a) { return new Oc(a); }), (Oc.$name = Oc.MBS_TYPE_INFO.createField('name', G.STRING)), (Oc.parent = Oc.MBS_TYPE_INFO.createField('parent', G.STRING)), (Oc.fieldsPointer = Oc.MBS_TYPE_INFO.createField('fieldsPointer', G.INTEGER)), (Oc.size = Oc.MBS_TYPE_INFO.createField('size', G.INTEGER))); }; Oc.new_MbsTypeInfo_list = function (a) { return new Ta(a, Oc.MBS_TYPE_INFO, new Oc(a)); }; Oc.__super__ = mb; Oc.prototype = r(mb.prototype, { getMbsType: function () { return Oc.MBS_TYPE_INFO; }, allocateNew: function () { this.setAddress(this.data.allocate(Oc.MBS_TYPE_INFO.getSize())); }, getName: function () { return this.data.readString(this.address + Oc.$name.address); }, setName: function (a) { this.data.writeString(this.address + Oc.$name.address, a); }, getParent: function () { return this.data.readString(this.address + Oc.parent.address); }, setParent: function (a) { this.data.writeString(this.address + Oc.parent.address, a); }, getFieldsPointer: function () { return this.data.readInt(this.address + Oc.fieldsPointer.address); }, setFieldsPointer: function (a) { this.data.writeInt(this.address + Oc.fieldsPointer.address, a); }, getSize: function () { return this.data.readInt(this.address + Oc.size.address); }, setSize: function (a) { this.data.writeInt(this.address + Oc.size.address, a); }, __class__: Oc }); var $c = function (a) { this.data = a; }; h['mbs.core.header.MbsFieldInfo'] = $c; $c.__name__ = 'mbs.core.header.MbsFieldInfo'; $c.initializeType = function () { null == $c.MBS_FIELD_INFO && (($c.MBS_FIELD_INFO = new wb('MbsFieldInfo')), $c.MBS_FIELD_INFO.setInstantiator(function (a) { return new $c(a); }), ($c.$name = $c.MBS_FIELD_INFO.createField('name', G.STRING)), ($c.type = $c.MBS_FIELD_INFO.createField('type', G.STRING)), ($c.fieldAddress = $c.MBS_FIELD_INFO.createField('fieldAddress', G.INTEGER))); }; $c.new_MbsFieldInfo_list = function (a) { return new Ta(a, $c.MBS_FIELD_INFO, new $c(a)); }; $c.__super__ = mb; $c.prototype = r(mb.prototype, { getMbsType: function () { return $c.MBS_FIELD_INFO; }, allocateNew: function () { this.setAddress(this.data.allocate($c.MBS_FIELD_INFO.getSize())); }, getName: function () { return this.data.readString(this.address + $c.$name.address); }, setName: function (a) { this.data.writeString(this.address + $c.$name.address, a); }, getType: function () { return this.data.readString(this.address + $c.type.address); }, setType: function (a) { this.data.writeString(this.address + $c.type.address, a); }, getFieldAddress: function () { return this.data.readInt(this.address + $c.fieldAddress.address); }, setFieldAddress: function (a) { this.data.writeInt(this.address + $c.fieldAddress.address, a); }, __class__: $c }); var Th = function () { this.types = Th.basicTypes.slice(); this.typecodes = new Jc(); this.addTypes(); for (var a = 0, b = 0, c = this.types; b < c.length; ) { var e = c[b]; ++b; this.typecodes.set(e, a++); } }; h['mbs.core.MbsTypedefSet'] = Th; Th.__name__ = 'mbs.core.MbsTypedefSet'; Th.prototype = { types: null, typecodes: null, getTypes: function () { return this.types; }, addTypes: function () {}, getHash: function () { return 0; }, getTypecode: function (a) { return this.typecodes.h[a.__id__]; }, getType: function (a) { return this.types[a]; }, __class__: Th }; var jf = function () { Th.call(this); }; h['com.stencyl.io.mbs.Typedefs'] = jf; jf.__name__ = 'com.stencyl.io.mbs.Typedefs'; jf.get = function () { null == jf.instance && (jf.instance = new jf()); return jf.instance; }; jf.__super__ = Th; jf.prototype = r(Th.prototype, { addTypes: function () { rb.initializeType(); this.types.push(rb.MBS_RESOURCE); ob.initializeType(); this.types.push(ob.MBS_BACKGROUND); Eb.initializeType(); this.types.push(Eb.MBS_CUSTOM_BLOCK); xd.initializeType(); this.types.push(xd.MBS_BLANK); fc.initializeType(); this.types.push(fc.MBS_FONT); tc.initializeType(); this.types.push(tc.MBS_MUSIC); Pa.initializeType(); this.types.push(Pa.MBS_ACTOR_TYPE); sc.initializeType(); this.types.push(sc.MBS_SPRITE); eb.initializeType(); this.types.push(eb.MBS_ANIMATION); Pb.initializeType(); this.types.push(Pb.MBS_ANIM_SHAPE); qc.initializeType(); this.types.push(qc.MBS_GAME); Gc.initializeType(); this.types.push(Gc.MBS_ATLAS); yd.initializeType(); this.types.push(yd.MBS_COLLISION_SHAPE); zd.initializeType(); this.types.push(zd.MBS_COLLISION_GROUP); Ad.initializeType(); this.types.push(Ad.MBS_COLLISION_PAIR); md.initializeType(); this.types.push(md.MBS_SCENE_HEADER); gc.initializeType(); this.types.push(gc.MBS_TILESET); Qb.initializeType(); this.types.push(Qb.MBS_TILE); pa.initializeType(); this.types.push(pa.MBS_SCENE); nb.initializeType(); this.types.push(nb.MBS_ACTOR_INSTANCE); ee.initializeType(); this.types.push(ee.MBS_COLOR_BACKGROUND); Bd.initializeType(); this.types.push(Bd.MBS_GRADIENT_BACKGROUND); jb.initializeType(); this.types.push(jb.MBS_LAYER); fe.initializeType(); this.types.push(fe.MBS_INTERACTIVE_LAYER); Cd.initializeType(); this.types.push(Cd.MBS_IMAGE_BACKGROUND); Vb.initializeType(); this.types.push(Vb.MBS_JOINT); Dd.initializeType(); this.types.push(Dd.MBS_STICK_JOINT); hc.initializeType(); this.types.push(hc.MBS_HINGE_JOINT); Rb.initializeType(); this.types.push(Rb.MBS_SLIDING_JOINT); Yb.initializeType(); this.types.push(Yb.MBS_REGION); Yd.initializeType(); this.types.push(Yd.MBS_TERRAIN_REGION); rc.initializeType(); this.types.push(rc.MBS_POINT); Rd.initializeType(); this.types.push(Rd.MBS_SHAPE); Hd.initializeType(); this.types.push(Hd.MBS_CIRCLE); Vc.initializeType(); this.types.push(Vc.MBS_POLYGON); rd.initializeType(); this.types.push(rd.MBS_POLY_REGION); ge.initializeType(); this.types.push(ge.MBS_WIREFRAME); ib.initializeType(); this.types.push(ib.MBS_SNIPPET_DEF); Cb.initializeType(); this.types.push(Cb.MBS_ATTRIBUTE_DEF); ad.initializeType(); this.types.push(ad.MBS_BLOCK); ic.initializeType(); this.types.push(ic.MBS_EVENT); Hc.initializeType(); this.types.push(Hc.MBS_SNIPPET); bd.initializeType(); this.types.push(bd.MBS_ATTRIBUTE); Ed.initializeType(); this.types.push(Ed.MBS_MAP_ELEMENT); jc.initializeType(); this.types.push(jc.MBS_AUTOTILE_FORMAT); cd.initializeType(); this.types.push(cd.MBS_CORNERS); }, getHash: function () { return -1349349184; }, __class__: jf }); var Pa = function (a) { this.data = a; this._snippets = new Ta(a, Hc.MBS_SNIPPET, new Hc(a)); }; h['com.stencyl.io.mbs.actortype.MbsActorType'] = Pa; Pa.__name__ = 'com.stencyl.io.mbs.actortype.MbsActorType'; Pa.initializeType = function () { null == Pa.MBS_ACTOR_TYPE && (rb.initializeType(), (Pa.MBS_ACTOR_TYPE = new wb('MbsActorType')), Pa.MBS_ACTOR_TYPE.setInstantiator(function (a) { return new Pa(a); }), Pa.MBS_ACTOR_TYPE.inherit(rb.MBS_RESOURCE), (Pa.angularDamping = Pa.MBS_ACTOR_TYPE.createField('angularDamping', G.FLOAT)), (Pa.autoScale = Pa.MBS_ACTOR_TYPE.createField('autoScale', G.BOOLEAN)), (Pa.bodyType = Pa.MBS_ACTOR_TYPE.createField('bodyType', G.INTEGER)), (Pa.continuous = Pa.MBS_ACTOR_TYPE.createField('continuous', G.BOOLEAN)), (Pa.eventSnippetID = Pa.MBS_ACTOR_TYPE.createField('eventSnippetID', G.INTEGER)), (Pa.fixedRotation = Pa.MBS_ACTOR_TYPE.createField('fixedRotation', G.BOOLEAN)), (Pa.friction = Pa.MBS_ACTOR_TYPE.createField('friction', G.FLOAT)), (Pa.groupID = Pa.MBS_ACTOR_TYPE.createField('groupID', G.INTEGER)), (Pa.ignoreGravity = Pa.MBS_ACTOR_TYPE.createField('ignoreGravity', G.BOOLEAN)), (Pa.inertia = Pa.MBS_ACTOR_TYPE.createField('inertia', G.FLOAT)), (Pa.linearDamping = Pa.MBS_ACTOR_TYPE.createField('linearDamping', G.FLOAT)), (Pa.mass = Pa.MBS_ACTOR_TYPE.createField('mass', G.FLOAT)), (Pa.pausable = Pa.MBS_ACTOR_TYPE.createField('pausable', G.BOOLEAN)), (Pa.physicsMode = Pa.MBS_ACTOR_TYPE.createField('physicsMode', G.INTEGER)), (Pa.restitution = Pa.MBS_ACTOR_TYPE.createField('restitution', G.FLOAT)), (Pa.sprite = Pa.MBS_ACTOR_TYPE.createField('sprite', G.INTEGER)), (Pa.isStatic = Pa.MBS_ACTOR_TYPE.createField('isStatic', G.BOOLEAN)), (Pa.snippets = Pa.MBS_ACTOR_TYPE.createField('snippets', G.LIST))); }; Pa.new_MbsActorType_list = function (a) { return new Ta(a, Pa.MBS_ACTOR_TYPE, new Pa(a)); }; Pa.__super__ = rb; Pa.prototype = r(rb.prototype, { getMbsType: function () { return Pa.MBS_ACTOR_TYPE; }, _snippets: null, allocateNew: function () { this.setAddress(this.data.allocate(Pa.MBS_ACTOR_TYPE.getSize())); }, getAngularDamping: function () { return this.data.readFloat(this.address + Pa.angularDamping.address); }, setAngularDamping: function (a) { this.data.writeFloat(this.address + Pa.angularDamping.address, a); }, getAutoScale: function () { return this.data.readBool(this.address + Pa.autoScale.address); }, setAutoScale: function (a) { this.data.writeBool(this.address + Pa.autoScale.address, a); }, getBodyType: function () { return this.data.readInt(this.address + Pa.bodyType.address); }, setBodyType: function (a) { this.data.writeInt(this.address + Pa.bodyType.address, a); }, getContinuous: function () { return this.data.readBool(this.address + Pa.continuous.address); }, setContinuous: function (a) { this.data.writeBool(this.address + Pa.continuous.address, a); }, getEventSnippetID: function () { return this.data.readInt(this.address + Pa.eventSnippetID.address); }, setEventSnippetID: function (a) { this.data.writeInt(this.address + Pa.eventSnippetID.address, a); }, getFixedRotation: function () { return this.data.readBool(this.address + Pa.fixedRotation.address); }, setFixedRotation: function (a) { this.data.writeBool(this.address + Pa.fixedRotation.address, a); }, getFriction: function () { return this.data.readFloat(this.address + Pa.friction.address); }, setFriction: function (a) { this.data.writeFloat(this.address + Pa.friction.address, a); }, getGroupID: function () { return this.data.readInt(this.address + Pa.groupID.address); }, setGroupID: function (a) { this.data.writeInt(this.address + Pa.groupID.address, a); }, getIgnoreGravity: function () { return this.data.readBool(this.address + Pa.ignoreGravity.address); }, setIgnoreGravity: function (a) { this.data.writeBool(this.address + Pa.ignoreGravity.address, a); }, getInertia: function () { return this.data.readFloat(this.address + Pa.inertia.address); }, setInertia: function (a) { this.data.writeFloat(this.address + Pa.inertia.address, a); }, getLinearDamping: function () { return this.data.readFloat(this.address + Pa.linearDamping.address); }, setLinearDamping: function (a) { this.data.writeFloat(this.address + Pa.linearDamping.address, a); }, getMass: function () { return this.data.readFloat(this.address + Pa.mass.address); }, setMass: function (a) { this.data.writeFloat(this.address + Pa.mass.address, a); }, getPausable: function () { return this.data.readBool(this.address + Pa.pausable.address); }, setPausable: function (a) { this.data.writeBool(this.address + Pa.pausable.address, a); }, getPhysicsMode: function () { return this.data.readInt(this.address + Pa.physicsMode.address); }, setPhysicsMode: function (a) { this.data.writeInt(this.address + Pa.physicsMode.address, a); }, getRestitution: function () { return this.data.readFloat(this.address + Pa.restitution.address); }, setRestitution: function (a) { this.data.writeFloat(this.address + Pa.restitution.address, a); }, getSprite: function () { return this.data.readInt(this.address + Pa.sprite.address); }, setSprite: function (a) { this.data.writeInt(this.address + Pa.sprite.address, a); }, getIsStatic: function () { return this.data.readBool(this.address + Pa.isStatic.address); }, setIsStatic: function (a) { this.data.writeBool(this.address + Pa.isStatic.address, a); }, getSnippets: function () { this._snippets.setAddress(this.data.readInt(this.address + Pa.snippets.address)); return this._snippets; }, createSnippets: function (a) { this._snippets.allocateNew(a); this.data.writeInt(this.address + Pa.snippets.address, this._snippets.getAddress()); return this._snippets; }, __class__: Pa }); var Pb = function (a) { this.data = a; }; h['com.stencyl.io.mbs.actortype.MbsAnimShape'] = Pb; Pb.__name__ = 'com.stencyl.io.mbs.actortype.MbsAnimShape'; Pb.initializeType = function () { null == Pb.MBS_ANIM_SHAPE && ((Pb.MBS_ANIM_SHAPE = new wb('MbsAnimShape')), Pb.MBS_ANIM_SHAPE.setInstantiator(function (a) { return new Pb(a); }), (Pb.shape = Pb.MBS_ANIM_SHAPE.createField('shape', G.DYNAMIC)), (Pb.density = Pb.MBS_ANIM_SHAPE.createField('density', G.FLOAT)), (Pb.friction = Pb.MBS_ANIM_SHAPE.createField('friction', G.FLOAT)), (Pb.groupID = Pb.MBS_ANIM_SHAPE.createField('groupID', G.INTEGER)), (Pb.id = Pb.MBS_ANIM_SHAPE.createField('id', G.INTEGER)), (Pb.$name = Pb.MBS_ANIM_SHAPE.createField('name', G.STRING)), (Pb.restitution = Pb.MBS_ANIM_SHAPE.createField('restitution', G.FLOAT)), (Pb.sensor = Pb.MBS_ANIM_SHAPE.createField('sensor', G.BOOLEAN))); }; Pb.new_MbsAnimShape_list = function (a) { return new Ta(a, Pb.MBS_ANIM_SHAPE, new Pb(a)); }; Pb.__super__ = mb; Pb.prototype = r(mb.prototype, { getMbsType: function () { return Pb.MBS_ANIM_SHAPE; }, allocateNew: function () { this.setAddress(this.data.allocate(Pb.MBS_ANIM_SHAPE.getSize())); }, getShape: function () { return de.readDynamic(this.data, this.address + Pb.shape.address); }, setShape: function (a) { de.writeDynamic(this.data, this.address + Pb.shape.address, a); }, getDensity: function () { return this.data.readFloat(this.address + Pb.density.address); }, setDensity: function (a) { this.data.writeFloat(this.address + Pb.density.address, a); }, getFriction: function () { return this.data.readFloat(this.address + Pb.friction.address); }, setFriction: function (a) { this.data.writeFloat(this.address + Pb.friction.address, a); }, getGroupID: function () { return this.data.readInt(this.address + Pb.groupID.address); }, setGroupID: function (a) { this.data.writeInt(this.address + Pb.groupID.address, a); }, getId: function () { return this.data.readInt(this.address + Pb.id.address); }, setId: function (a) { this.data.writeInt(this.address + Pb.id.address, a); }, getName: function () { return this.data.readString(this.address + Pb.$name.address); }, setName: function (a) { this.data.writeString(this.address + Pb.$name.address, a); }, getRestitution: function () { return this.data.readFloat(this.address + Pb.restitution.address); }, setRestitution: function (a) { this.data.writeFloat(this.address + Pb.restitution.address, a); }, getSensor: function () { return this.data.readBool(this.address + Pb.sensor.address); }, setSensor: function (a) { this.data.writeBool(this.address + Pb.sensor.address, a); }, __class__: Pb }); var eb = function (a) { this.data = a; this._durations = new Mf(a); this._shapes = new Ta(a, Pb.MBS_ANIM_SHAPE, new Pb(a)); }; h['com.stencyl.io.mbs.actortype.MbsAnimation'] = eb; eb.__name__ = 'com.stencyl.io.mbs.actortype.MbsAnimation'; eb.initializeType = function () { null == eb.MBS_ANIMATION && ((eb.MBS_ANIMATION = new wb('MbsAnimation')), eb.MBS_ANIMATION.setInstantiator(function (a) { return new eb(a); }), (eb.across = eb.MBS_ANIMATION.createField('across', G.INTEGER)), (eb.down = eb.MBS_ANIMATION.createField('down', G.INTEGER)), (eb.durations = eb.MBS_ANIMATION.createField('durations', G.LIST)), (eb.height = eb.MBS_ANIMATION.createField('height', G.INTEGER)), (eb.id = eb.MBS_ANIMATION.createField('id', G.INTEGER)), (eb.loop = eb.MBS_ANIMATION.createField('loop', G.BOOLEAN)), (eb.$name = eb.MBS_ANIMATION.createField('name', G.STRING)), (eb.numFrames = eb.MBS_ANIMATION.createField('numFrames', G.INTEGER)), (eb.originX = eb.MBS_ANIMATION.createField('originX', G.INTEGER)), (eb.originY = eb.MBS_ANIMATION.createField('originY', G.INTEGER)), (eb.sync = eb.MBS_ANIMATION.createField('sync', G.BOOLEAN)), (eb.version = eb.MBS_ANIMATION.createField('version', G.INTEGER)), (eb.width = eb.MBS_ANIMATION.createField('width', G.INTEGER)), (eb.shapes = eb.MBS_ANIMATION.createField('shapes', G.LIST))); }; eb.new_MbsAnimation_list = function (a) { return new Ta(a, eb.MBS_ANIMATION, new eb(a)); }; eb.__super__ = mb; eb.prototype = r(mb.prototype, { getMbsType: function () { return eb.MBS_ANIMATION; }, _durations: null, _shapes: null, allocateNew: function () { this.setAddress(this.data.allocate(eb.MBS_ANIMATION.getSize())); }, getAcross: function () { return this.data.readInt(this.address + eb.across.address); }, setAcross: function (a) { this.data.writeInt(this.address + eb.across.address, a); }, getDown: function () { return this.data.readInt(this.address + eb.down.address); }, setDown: function (a) { this.data.writeInt(this.address + eb.down.address, a); }, getDurations: function () { this._durations.setAddress(this.data.readInt(this.address + eb.durations.address)); return this._durations; }, createDurations: function (a) { this._durations.allocateNew(a); this.data.writeInt(this.address + eb.durations.address, this._durations.getAddress()); return this._durations; }, getHeight: function () { return this.data.readInt(this.address + eb.height.address); }, setHeight: function (a) { this.data.writeInt(this.address + eb.height.address, a); }, getId: function () { return this.data.readInt(this.address + eb.id.address); }, setId: function (a) { this.data.writeInt(this.address + eb.id.address, a); }, getLoop: function () { return this.data.readBool(this.address + eb.loop.address); }, setLoop: function (a) { this.data.writeBool(this.address + eb.loop.address, a); }, getName: function () { return this.data.readString(this.address + eb.$name.address); }, setName: function (a) { this.data.writeString(this.address + eb.$name.address, a); }, getNumFrames: function () { return this.data.readInt(this.address + eb.numFrames.address); }, setNumFrames: function (a) { this.data.writeInt(this.address + eb.numFrames.address, a); }, getOriginX: function () { return this.data.readInt(this.address + eb.originX.address); }, setOriginX: function (a) { this.data.writeInt(this.address + eb.originX.address, a); }, getOriginY: function () { return this.data.readInt(this.address + eb.originY.address); }, setOriginY: function (a) { this.data.writeInt(this.address + eb.originY.address, a); }, getSync: function () { return this.data.readBool(this.address + eb.sync.address); }, setSync: function (a) { this.data.writeBool(this.address + eb.sync.address, a); }, getVersion: function () { return this.data.readInt(this.address + eb.version.address); }, setVersion: function (a) { this.data.writeInt(this.address + eb.version.address, a); }, getWidth: function () { return this.data.readInt(this.address + eb.width.address); }, setWidth: function (a) { this.data.writeInt(this.address + eb.width.address, a); }, getShapes: function () { this._shapes.setAddress(this.data.readInt(this.address + eb.shapes.address)); return this._shapes; }, createShapes: function (a) { this._shapes.allocateNew(a); this.data.writeInt(this.address + eb.shapes.address, this._shapes.getAddress()); return this._shapes; }, __class__: eb }); var sc = function (a) { this.data = a; this._animations = new Ta(a, eb.MBS_ANIMATION, new eb(a)); }; h['com.stencyl.io.mbs.actortype.MbsSprite'] = sc; sc.__name__ = 'com.stencyl.io.mbs.actortype.MbsSprite'; sc.initializeType = function () { null == sc.MBS_SPRITE && (rb.initializeType(), (sc.MBS_SPRITE = new wb('MbsSprite')), sc.MBS_SPRITE.setInstantiator(function (a) { return new sc(a); }), sc.MBS_SPRITE.inherit(rb.MBS_RESOURCE), (sc.defaultAnimation = sc.MBS_SPRITE.createField('defaultAnimation', G.INTEGER)), (sc.readableImages = sc.MBS_SPRITE.createField('readableImages', G.BOOLEAN)), (sc.height = sc.MBS_SPRITE.createField('height', G.INTEGER)), (sc.width = sc.MBS_SPRITE.createField('width', G.INTEGER)), (sc.animations = sc.MBS_SPRITE.createField('animations', G.LIST))); }; sc.new_MbsSprite_list = function (a) { return new Ta(a, sc.MBS_SPRITE, new sc(a)); }; sc.__super__ = rb; sc.prototype = r(rb.prototype, { getMbsType: function () { return sc.MBS_SPRITE; }, _animations: null, allocateNew: function () { this.setAddress(this.data.allocate(sc.MBS_SPRITE.getSize())); }, getDefaultAnimation: function () { return this.data.readInt(this.address + sc.defaultAnimation.address); }, setDefaultAnimation: function (a) { this.data.writeInt(this.address + sc.defaultAnimation.address, a); }, getReadableImages: function () { return this.data.readBool(this.address + sc.readableImages.address); }, setReadableImages: function (a) { this.data.writeBool(this.address + sc.readableImages.address, a); }, getHeight: function () { return this.data.readInt(this.address + sc.height.address); }, setHeight: function (a) { this.data.writeInt(this.address + sc.height.address, a); }, getWidth: function () { return this.data.readInt(this.address + sc.width.address); }, setWidth: function (a) { this.data.writeInt(this.address + sc.width.address, a); }, getAnimations: function () { this._animations.setAddress(this.data.readInt(this.address + sc.animations.address)); return this._animations; }, createAnimations: function (a) { this._animations.allocateNew(a); this.data.writeInt(this.address + sc.animations.address, this._animations.getAddress()); return this._animations; }, __class__: sc }); var Gc = function (a) { this.data = a; this._members = new Mf(a); }; h['com.stencyl.io.mbs.game.MbsAtlas'] = Gc; Gc.__name__ = 'com.stencyl.io.mbs.game.MbsAtlas'; Gc.initializeType = function () { null == Gc.MBS_ATLAS && ((Gc.MBS_ATLAS = new wb('MbsAtlas')), Gc.MBS_ATLAS.setInstantiator(function (a) { return new Gc(a); }), (Gc.id = Gc.MBS_ATLAS.createField('id', G.INTEGER)), (Gc.$name = Gc.MBS_ATLAS.createField('name', G.STRING)), (Gc.members = Gc.MBS_ATLAS.createField('members', G.LIST)), (Gc.allScenes = Gc.MBS_ATLAS.createField('allScenes', G.BOOLEAN))); }; Gc.new_MbsAtlas_list = function (a) { return new Ta(a, Gc.MBS_ATLAS, new Gc(a)); }; Gc.__super__ = mb; Gc.prototype = r(mb.prototype, { getMbsType: function () { return Gc.MBS_ATLAS; }, _members: null, allocateNew: function () { this.setAddress(this.data.allocate(Gc.MBS_ATLAS.getSize())); }, getId: function () { return this.data.readInt(this.address + Gc.id.address); }, setId: function (a) { this.data.writeInt(this.address + Gc.id.address, a); }, getName: function () { return this.data.readString(this.address + Gc.$name.address); }, setName: function (a) { this.data.writeString(this.address + Gc.$name.address, a); }, getMembers: function () { this._members.setAddress(this.data.readInt(this.address + Gc.members.address)); return this._members; }, createMembers: function (a) { this._members.allocateNew(a); this.data.writeInt(this.address + Gc.members.address, this._members.getAddress()); return this._members; }, getAllScenes: function () { return this.data.readBool(this.address + Gc.allScenes.address); }, setAllScenes: function (a) { this.data.writeBool(this.address + Gc.allScenes.address, a); }, __class__: Gc }); var zd = function (a) { this.data = a; }; h['com.stencyl.io.mbs.game.MbsCollisionGroup'] = zd; zd.__name__ = 'com.stencyl.io.mbs.game.MbsCollisionGroup'; zd.initializeType = function () { null == zd.MBS_COLLISION_GROUP && ((zd.MBS_COLLISION_GROUP = new wb('MbsCollisionGroup')), zd.MBS_COLLISION_GROUP.setInstantiator(function (a) { return new zd(a); }), (zd.id = zd.MBS_COLLISION_GROUP.createField('id', G.INTEGER)), (zd.$name = zd.MBS_COLLISION_GROUP.createField('name', G.STRING))); }; zd.new_MbsCollisionGroup_list = function (a) { return new Ta(a, zd.MBS_COLLISION_GROUP, new zd(a)); }; zd.__super__ = mb; zd.prototype = r(mb.prototype, { getMbsType: function () { return zd.MBS_COLLISION_GROUP; }, allocateNew: function () { this.setAddress(this.data.allocate(zd.MBS_COLLISION_GROUP.getSize())); }, getId: function () { return this.data.readInt(this.address + zd.id.address); }, setId: function (a) { this.data.writeInt(this.address + zd.id.address, a); }, getName: function () { return this.data.readString(this.address + zd.$name.address); }, setName: function (a) { this.data.writeString(this.address + zd.$name.address, a); }, __class__: zd }); var Ad = function (a) { this.data = a; }; h['com.stencyl.io.mbs.game.MbsCollisionPair'] = Ad; Ad.__name__ = 'com.stencyl.io.mbs.game.MbsCollisionPair'; Ad.initializeType = function () { null == Ad.MBS_COLLISION_PAIR && ((Ad.MBS_COLLISION_PAIR = new wb('MbsCollisionPair')), Ad.MBS_COLLISION_PAIR.setInstantiator(function (a) { return new Ad(a); }), (Ad.group1 = Ad.MBS_COLLISION_PAIR.createField('group1', G.INTEGER)), (Ad.group2 = Ad.MBS_COLLISION_PAIR.createField('group2', G.INTEGER))); }; Ad.new_MbsCollisionPair_list = function (a) { return new Ta(a, Ad.MBS_COLLISION_PAIR, new Ad(a)); }; Ad.__super__ = mb; Ad.prototype = r(mb.prototype, { getMbsType: function () { return Ad.MBS_COLLISION_PAIR; }, allocateNew: function () { this.setAddress(this.data.allocate(Ad.MBS_COLLISION_PAIR.getSize())); }, getGroup1: function () { return this.data.readInt(this.address + Ad.group1.address); }, setGroup1: function (a) { this.data.writeInt(this.address + Ad.group1.address, a); }, getGroup2: function () { return this.data.readInt(this.address + Ad.group2.address); }, setGroup2: function (a) { this.data.writeInt(this.address + Ad.group2.address, a); }, __class__: Ad }); var yd = function (a) { this.data = a; this._points = new Ta(a, rc.MBS_POINT, new rc(a)); }; h['com.stencyl.io.mbs.game.MbsCollisionShape'] = yd; yd.__name__ = 'com.stencyl.io.mbs.game.MbsCollisionShape'; yd.initializeType = function () { null == yd.MBS_COLLISION_SHAPE && ((yd.MBS_COLLISION_SHAPE = new wb('MbsCollisionShape')), yd.MBS_COLLISION_SHAPE.setInstantiator(function (a) { return new yd(a); }), (yd.id = yd.MBS_COLLISION_SHAPE.createField('id', G.INTEGER)), (yd.points = yd.MBS_COLLISION_SHAPE.createField('points', G.LIST))); }; yd.new_MbsCollisionShape_list = function (a) { return new Ta(a, yd.MBS_COLLISION_SHAPE, new yd(a)); }; yd.__super__ = mb; yd.prototype = r(mb.prototype, { getMbsType: function () { return yd.MBS_COLLISION_SHAPE; }, _points: null, allocateNew: function () { this.setAddress(this.data.allocate(yd.MBS_COLLISION_SHAPE.getSize())); }, getId: function () { return this.data.readInt(this.address + yd.id.address); }, setId: function (a) { this.data.writeInt(this.address + yd.id.address, a); }, getPoints: function () { this._points.setAddress(this.data.readInt(this.address + yd.points.address)); return this._points; }, createPoints: function (a) { this._points.allocateNew(a); this.data.writeInt(this.address + yd.points.address, this._points.getAddress()); return this._points; }, __class__: yd }); var qc = function (a) { this.data = a; this._shapes = new Ta(a, yd.MBS_COLLISION_SHAPE, new yd(a)); this._atlases = new Ta(a, Gc.MBS_ATLAS, new Gc(a)); this._autotileFormats = new Ta(a, jc.MBS_AUTOTILE_FORMAT, new jc(a)); this._groups = new Ta(a, zd.MBS_COLLISION_GROUP, new zd(a)); this._cgroups = new Ta(a, Ad.MBS_COLLISION_PAIR, new Ad(a)); this._gameAttributes = new Ta(a, Ed.MBS_MAP_ELEMENT, new Ed(a)); }; h['com.stencyl.io.mbs.game.MbsGame'] = qc; qc.__name__ = 'com.stencyl.io.mbs.game.MbsGame'; qc.initializeType = function () { null == qc.MBS_GAME && ((qc.MBS_GAME = new wb('MbsGame')), qc.MBS_GAME.setInstantiator(function (a) { return new qc(a); }), (qc.shapes = qc.MBS_GAME.createField('shapes', G.LIST)), (qc.atlases = qc.MBS_GAME.createField('atlases', G.LIST)), (qc.autotileFormats = qc.MBS_GAME.createField('autotileFormats', G.LIST)), (qc.groups = qc.MBS_GAME.createField('groups', G.LIST)), (qc.cgroups = qc.MBS_GAME.createField('cgroups', G.LIST)), (qc.gameAttributes = qc.MBS_GAME.createField('gameAttributes', G.LIST))); }; qc.new_MbsGame_list = function (a) { return new Ta(a, qc.MBS_GAME, new qc(a)); }; qc.__super__ = mb; qc.prototype = r(mb.prototype, { getMbsType: function () { return qc.MBS_GAME; }, _shapes: null, _atlases: null, _autotileFormats: null, _groups: null, _cgroups: null, _gameAttributes: null, allocateNew: function () { this.setAddress(this.data.allocate(qc.MBS_GAME.getSize())); }, getShapes: function () { this._shapes.setAddress(this.data.readInt(this.address + qc.shapes.address)); return this._shapes; }, createShapes: function (a) { this._shapes.allocateNew(a); this.data.writeInt(this.address + qc.shapes.address, this._shapes.getAddress()); return this._shapes; }, getAtlases: function () { this._atlases.setAddress(this.data.readInt(this.address + qc.atlases.address)); return this._atlases; }, createAtlases: function (a) { this._atlases.allocateNew(a); this.data.writeInt(this.address + qc.atlases.address, this._atlases.getAddress()); return this._atlases; }, getAutotileFormats: function () { this._autotileFormats.setAddress( this.data.readInt(this.address + qc.autotileFormats.address) ); return this._autotileFormats; }, createAutotileFormats: function (a) { this._autotileFormats.allocateNew(a); this.data.writeInt( this.address + qc.autotileFormats.address, this._autotileFormats.getAddress() ); return this._autotileFormats; }, getGroups: function () { this._groups.setAddress(this.data.readInt(this.address + qc.groups.address)); return this._groups; }, createGroups: function (a) { this._groups.allocateNew(a); this.data.writeInt(this.address + qc.groups.address, this._groups.getAddress()); return this._groups; }, getCgroups: function () { this._cgroups.setAddress(this.data.readInt(this.address + qc.cgroups.address)); return this._cgroups; }, createCgroups: function (a) { this._cgroups.allocateNew(a); this.data.writeInt(this.address + qc.cgroups.address, this._cgroups.getAddress()); return this._cgroups; }, getGameAttributes: function () { this._gameAttributes.setAddress( this.data.readInt(this.address + qc.gameAttributes.address) ); return this._gameAttributes; }, createGameAttributes: function (a) { this._gameAttributes.allocateNew(a); this.data.writeInt( this.address + qc.gameAttributes.address, this._gameAttributes.getAddress() ); return this._gameAttributes; }, __class__: qc }); var jc = function (a) { this.data = a; this._corners = new Ta(a, cd.MBS_CORNERS, new cd(a)); this._flags = new Mf(a); }; h['com.stencyl.io.mbs.game.autotile.MbsAutotileFormat'] = jc; jc.__name__ = 'com.stencyl.io.mbs.game.autotile.MbsAutotileFormat'; jc.initializeType = function () { null == jc.MBS_AUTOTILE_FORMAT && ((jc.MBS_AUTOTILE_FORMAT = new wb('MbsAutotileFormat')), jc.MBS_AUTOTILE_FORMAT.setInstantiator(function (a) { return new jc(a); }), (jc.id = jc.MBS_AUTOTILE_FORMAT.createField('id', G.INTEGER)), (jc.$name = jc.MBS_AUTOTILE_FORMAT.createField('name', G.STRING)), (jc.across = jc.MBS_AUTOTILE_FORMAT.createField('across', G.INTEGER)), (jc.down = jc.MBS_AUTOTILE_FORMAT.createField('down', G.INTEGER)), (jc.corners = jc.MBS_AUTOTILE_FORMAT.createField('corners', G.LIST)), (jc.flags = jc.MBS_AUTOTILE_FORMAT.createField('flags', G.LIST))); }; jc.new_MbsAutotileFormat_list = function (a) { return new Ta(a, jc.MBS_AUTOTILE_FORMAT, new jc(a)); }; jc.__super__ = mb; jc.prototype = r(mb.prototype, { getMbsType: function () { return jc.MBS_AUTOTILE_FORMAT; }, _corners: null, _flags: null, allocateNew: function () { this.setAddress(this.data.allocate(jc.MBS_AUTOTILE_FORMAT.getSize())); }, getId: function () { return this.data.readInt(this.address + jc.id.address); }, setId: function (a) { this.data.writeInt(this.address + jc.id.address, a); }, getName: function () { return this.data.readString(this.address + jc.$name.address); }, setName: function (a) { this.data.writeString(this.address + jc.$name.address, a); }, getAcross: function () { return this.data.readInt(this.address + jc.across.address); }, setAcross: function (a) { this.data.writeInt(this.address + jc.across.address, a); }, getDown: function () { return this.data.readInt(this.address + jc.down.address); }, setDown: function (a) { this.data.writeInt(this.address + jc.down.address, a); }, getCorners: function () { this._corners.setAddress(this.data.readInt(this.address + jc.corners.address)); return this._corners; }, createCorners: function (a) { this._corners.allocateNew(a); this.data.writeInt(this.address + jc.corners.address, this._corners.getAddress()); return this._corners; }, getFlags: function () { this._flags.setAddress(this.data.readInt(this.address + jc.flags.address)); return this._flags; }, createFlags: function (a) { this._flags.allocateNew(a); this.data.writeInt(this.address + jc.flags.address, this._flags.getAddress()); return this._flags; }, __class__: jc }); var cd = function (a) { this.data = a; this._topLeft = new rc(a); this._topRight = new rc(a); this._bottomLeft = new rc(a); this._bottomRight = new rc(a); }; h['com.stencyl.io.mbs.game.autotile.MbsCorners'] = cd; cd.__name__ = 'com.stencyl.io.mbs.game.autotile.MbsCorners'; cd.initializeType = function () { null == cd.MBS_CORNERS && ((cd.MBS_CORNERS = new wb('MbsCorners')), cd.MBS_CORNERS.setInstantiator(function (a) { return new cd(a); }), (cd.topLeft = cd.MBS_CORNERS.createField('topLeft', rc.MBS_POINT)), (cd.topRight = cd.MBS_CORNERS.createField('topRight', rc.MBS_POINT)), (cd.bottomLeft = cd.MBS_CORNERS.createField('bottomLeft', rc.MBS_POINT)), (cd.bottomRight = cd.MBS_CORNERS.createField('bottomRight', rc.MBS_POINT))); }; cd.new_MbsCorners_list = function (a) { return new Ta(a, cd.MBS_CORNERS, new cd(a)); }; cd.__super__ = mb; cd.prototype = r(mb.prototype, { getMbsType: function () { return cd.MBS_CORNERS; }, _topLeft: null, _topRight: null, _bottomLeft: null, _bottomRight: null, allocateNew: function () { this.setAddress(this.data.allocate(cd.MBS_CORNERS.getSize())); }, getTopLeft: function () { this._topLeft.setAddress(this.address + cd.topLeft.address); return this._topLeft; }, getTopRight: function () { this._topRight.setAddress(this.address + cd.topRight.address); return this._topRight; }, getBottomLeft: function () { this._bottomLeft.setAddress(this.address + cd.bottomLeft.address); return this._bottomLeft; }, getBottomRight: function () { this._bottomRight.setAddress(this.address + cd.bottomRight.address); return this._bottomRight; }, __class__: cd }); var nb = function (a) { this.data = a; this._snippets = new Ta(a, Hc.MBS_SNIPPET, new Hc(a)); }; h['com.stencyl.io.mbs.scene.MbsActorInstance'] = nb; nb.__name__ = 'com.stencyl.io.mbs.scene.MbsActorInstance'; nb.initializeType = function () { null == nb.MBS_ACTOR_INSTANCE && ((nb.MBS_ACTOR_INSTANCE = new wb('MbsActorInstance')), nb.MBS_ACTOR_INSTANCE.setInstantiator(function (a) { return new nb(a); }), (nb.angle = nb.MBS_ACTOR_INSTANCE.createField('angle', G.FLOAT)), (nb.aid = nb.MBS_ACTOR_INSTANCE.createField('aid', G.INTEGER)), (nb.customized = nb.MBS_ACTOR_INSTANCE.createField('customized', G.BOOLEAN)), (nb.groupID = nb.MBS_ACTOR_INSTANCE.createField('groupID', G.INTEGER)), (nb.id = nb.MBS_ACTOR_INSTANCE.createField('id', G.INTEGER)), (nb.$name = nb.MBS_ACTOR_INSTANCE.createField('name', G.STRING)), (nb.scaleX = nb.MBS_ACTOR_INSTANCE.createField('scaleX', G.FLOAT)), (nb.scaleY = nb.MBS_ACTOR_INSTANCE.createField('scaleY', G.FLOAT)), (nb.x = nb.MBS_ACTOR_INSTANCE.createField('x', G.INTEGER)), (nb.y = nb.MBS_ACTOR_INSTANCE.createField('y', G.INTEGER)), (nb.z = nb.MBS_ACTOR_INSTANCE.createField('z', G.INTEGER)), (nb.orderInLayer = nb.MBS_ACTOR_INSTANCE.createField('orderInLayer', G.INTEGER)), (nb.snippets = nb.MBS_ACTOR_INSTANCE.createField('snippets', G.LIST))); }; nb.new_MbsActorInstance_list = function (a) { return new Ta(a, nb.MBS_ACTOR_INSTANCE, new nb(a)); }; nb.__super__ = mb; nb.prototype = r(mb.prototype, { getMbsType: function () { return nb.MBS_ACTOR_INSTANCE; }, _snippets: null, allocateNew: function () { this.setAddress(this.data.allocate(nb.MBS_ACTOR_INSTANCE.getSize())); }, getAngle: function () { return this.data.readFloat(this.address + nb.angle.address); }, setAngle: function (a) { this.data.writeFloat(this.address + nb.angle.address, a); }, getAid: function () { return this.data.readInt(this.address + nb.aid.address); }, setAid: function (a) { this.data.writeInt(this.address + nb.aid.address, a); }, getCustomized: function () { return this.data.readBool(this.address + nb.customized.address); }, setCustomized: function (a) { this.data.writeBool(this.address + nb.customized.address, a); }, getGroupID: function () { return this.data.readInt(this.address + nb.groupID.address); }, setGroupID: function (a) { this.data.writeInt(this.address + nb.groupID.address, a); }, getId: function () { return this.data.readInt(this.address + nb.id.address); }, setId: function (a) { this.data.writeInt(this.address + nb.id.address, a); }, getName: function () { return this.data.readString(this.address + nb.$name.address); }, setName: function (a) { this.data.writeString(this.address + nb.$name.address, a); }, getScaleX: function () { return this.data.readFloat(this.address + nb.scaleX.address); }, setScaleX: function (a) { this.data.writeFloat(this.address + nb.scaleX.address, a); }, getScaleY: function () { return this.data.readFloat(this.address + nb.scaleY.address); }, setScaleY: function (a) { this.data.writeFloat(this.address + nb.scaleY.address, a); }, getX: function () { return this.data.readInt(this.address + nb.x.address); }, setX: function (a) { this.data.writeInt(this.address + nb.x.address, a); }, getY: function () { return this.data.readInt(this.address + nb.y.address); }, setY: function (a) { this.data.writeInt(this.address + nb.y.address, a); }, getZ: function () { return this.data.readInt(this.address + nb.z.address); }, setZ: function (a) { this.data.writeInt(this.address + nb.z.address, a); }, getOrderInLayer: function () { return this.data.readInt(this.address + nb.orderInLayer.address); }, setOrderInLayer: function (a) { this.data.writeInt(this.address + nb.orderInLayer.address, a); }, getSnippets: function () { this._snippets.setAddress(this.data.readInt(this.address + nb.snippets.address)); return this._snippets; }, createSnippets: function (a) { this._snippets.allocateNew(a); this.data.writeInt(this.address + nb.snippets.address, this._snippets.getAddress()); return this._snippets; }, __class__: nb }); var pa = function (a) { this.data = a; this._actorInstances = new Ta(a, nb.MBS_ACTOR_INSTANCE, new nb(a)); this._atlasMembers = new Mf(a); this._layers = new vh(a); this._joints = new vh(a); this._regions = new Ta(a, Yb.MBS_REGION, new Yb(a)); this._snippets = new Ta(a, Hc.MBS_SNIPPET, new Hc(a)); this._terrain = new Ta(a, ge.MBS_WIREFRAME, new ge(a)); this._terrainRegions = new Ta(a, Yd.MBS_TERRAIN_REGION, new Yd(a)); }; h['com.stencyl.io.mbs.scene.MbsScene'] = pa; pa.__name__ = 'com.stencyl.io.mbs.scene.MbsScene'; pa.initializeType = function () { null == pa.MBS_SCENE && ((pa.MBS_SCENE = new wb('MbsScene')), pa.MBS_SCENE.setInstantiator(function (a) { return new pa(a); }), (pa.retainAtlases = pa.MBS_SCENE.createField('retainAtlases', G.BOOLEAN)), (pa.depth = pa.MBS_SCENE.createField('depth', G.INTEGER)), (pa.description = pa.MBS_SCENE.createField('description', G.STRING)), (pa.eventSnippetID = pa.MBS_SCENE.createField('eventSnippetID', G.INTEGER)), (pa.extendedHeight = pa.MBS_SCENE.createField('extendedHeight', G.INTEGER)), (pa.extendedWidth = pa.MBS_SCENE.createField('extendedWidth', G.INTEGER)), (pa.extendedX = pa.MBS_SCENE.createField('extendedX', G.INTEGER)), (pa.extendedY = pa.MBS_SCENE.createField('extendedY', G.INTEGER)), (pa.format = pa.MBS_SCENE.createField('format', G.STRING)), (pa.gravityX = pa.MBS_SCENE.createField('gravityX', G.FLOAT)), (pa.gravityY = pa.MBS_SCENE.createField('gravityY', G.FLOAT)), (pa.height = pa.MBS_SCENE.createField('height', G.INTEGER)), (pa.id = pa.MBS_SCENE.createField('id', G.INTEGER)), (pa.$name = pa.MBS_SCENE.createField('name', G.STRING)), (pa.revision = pa.MBS_SCENE.createField('revision', G.STRING)), (pa.savecount = pa.MBS_SCENE.createField('savecount', G.INTEGER)), (pa.tileDepth = pa.MBS_SCENE.createField('tileDepth', G.INTEGER)), (pa.tileHeight = pa.MBS_SCENE.createField('tileHeight', G.INTEGER)), (pa.tileWidth = pa.MBS_SCENE.createField('tileWidth', G.INTEGER)), (pa.type = pa.MBS_SCENE.createField('type', G.STRING)), (pa.width = pa.MBS_SCENE.createField('width', G.INTEGER)), (pa.actorInstances = pa.MBS_SCENE.createField('actorInstances', G.LIST)), (pa.atlasMembers = pa.MBS_SCENE.createField('atlasMembers', G.LIST)), (pa.layers = pa.MBS_SCENE.createField('layers', G.LIST)), (pa.joints = pa.MBS_SCENE.createField('joints', G.LIST)), (pa.regions = pa.MBS_SCENE.createField('regions', G.LIST)), (pa.snippets = pa.MBS_SCENE.createField('snippets', G.LIST)), (pa.terrain = pa.MBS_SCENE.createField('terrain', G.LIST)), (pa.terrainRegions = pa.MBS_SCENE.createField('terrainRegions', G.LIST))); }; pa.new_MbsScene_list = function (a) { return new Ta(a, pa.MBS_SCENE, new pa(a)); }; pa.__super__ = mb; pa.prototype = r(mb.prototype, { getMbsType: function () { return pa.MBS_SCENE; }, _actorInstances: null, _atlasMembers: null, _layers: null, _joints: null, _regions: null, _snippets: null, _terrain: null, _terrainRegions: null, allocateNew: function () { this.setAddress(this.data.allocate(pa.MBS_SCENE.getSize())); }, getRetainAtlases: function () { return this.data.readBool(this.address + pa.retainAtlases.address); }, setRetainAtlases: function (a) { this.data.writeBool(this.address + pa.retainAtlases.address, a); }, getDepth: function () { return this.data.readInt(this.address + pa.depth.address); }, setDepth: function (a) { this.data.writeInt(this.address + pa.depth.address, a); }, getDescription: function () { return this.data.readString(this.address + pa.description.address); }, setDescription: function (a) { this.data.writeString(this.address + pa.description.address, a); }, getEventSnippetID: function () { return this.data.readInt(this.address + pa.eventSnippetID.address); }, setEventSnippetID: function (a) { this.data.writeInt(this.address + pa.eventSnippetID.address, a); }, getExtendedHeight: function () { return this.data.readInt(this.address + pa.extendedHeight.address); }, setExtendedHeight: function (a) { this.data.writeInt(this.address + pa.extendedHeight.address, a); }, getExtendedWidth: function () { return this.data.readInt(this.address + pa.extendedWidth.address); }, setExtendedWidth: function (a) { this.data.writeInt(this.address + pa.extendedWidth.address, a); }, getExtendedX: function () { return this.data.readInt(this.address + pa.extendedX.address); }, setExtendedX: function (a) { this.data.writeInt(this.address + pa.extendedX.address, a); }, getExtendedY: function () { return this.data.readInt(this.address + pa.extendedY.address); }, setExtendedY: function (a) { this.data.writeInt(this.address + pa.extendedY.address, a); }, getFormat: function () { return this.data.readString(this.address + pa.format.address); }, setFormat: function (a) { this.data.writeString(this.address + pa.format.address, a); }, getGravityX: function () { return this.data.readFloat(this.address + pa.gravityX.address); }, setGravityX: function (a) { this.data.writeFloat(this.address + pa.gravityX.address, a); }, getGravityY: function () { return this.data.readFloat(this.address + pa.gravityY.address); }, setGravityY: function (a) { this.data.writeFloat(this.address + pa.gravityY.address, a); }, getHeight: function () { return this.data.readInt(this.address + pa.height.address); }, setHeight: function (a) { this.data.writeInt(this.address + pa.height.address, a); }, getId: function () { return this.data.readInt(this.address + pa.id.address); }, setId: function (a) { this.data.writeInt(this.address + pa.id.address, a); }, getName: function () { return this.data.readString(this.address + pa.$name.address); }, setName: function (a) { this.data.writeString(this.address + pa.$name.address, a); }, getRevision: function () { return this.data.readString(this.address + pa.revision.address); }, setRevision: function (a) { this.data.writeString(this.address + pa.revision.address, a); }, getSavecount: function () { return this.data.readInt(this.address + pa.savecount.address); }, setSavecount: function (a) { this.data.writeInt(this.address + pa.savecount.address, a); }, getTileDepth: function () { return this.data.readInt(this.address + pa.tileDepth.address); }, setTileDepth: function (a) { this.data.writeInt(this.address + pa.tileDepth.address, a); }, getTileHeight: function () { return this.data.readInt(this.address + pa.tileHeight.address); }, setTileHeight: function (a) { this.data.writeInt(this.address + pa.tileHeight.address, a); }, getTileWidth: function () { return this.data.readInt(this.address + pa.tileWidth.address); }, setTileWidth: function (a) { this.data.writeInt(this.address + pa.tileWidth.address, a); }, getType: function () { return this.data.readString(this.address + pa.type.address); }, setType: function (a) { this.data.writeString(this.address + pa.type.address, a); }, getWidth: function () { return this.data.readInt(this.address + pa.width.address); }, setWidth: function (a) { this.data.writeInt(this.address + pa.width.address, a); }, getActorInstances: function () { this._actorInstances.setAddress( this.data.readInt(this.address + pa.actorInstances.address) ); return this._actorInstances; }, createActorInstances: function (a) { this._actorInstances.allocateNew(a); this.data.writeInt( this.address + pa.actorInstances.address, this._actorInstances.getAddress() ); return this._actorInstances; }, getAtlasMembers: function () { this._atlasMembers.setAddress(this.data.readInt(this.address + pa.atlasMembers.address)); return this._atlasMembers; }, createAtlasMembers: function (a) { this._atlasMembers.allocateNew(a); this.data.writeInt( this.address + pa.atlasMembers.address, this._atlasMembers.getAddress() ); return this._atlasMembers; }, getLayers: function () { this._layers.setAddress(this.data.readInt(this.address + pa.layers.address)); return this._layers; }, createLayers: function (a) { this._layers.allocateNew(a); this.data.writeInt(this.address + pa.layers.address, this._layers.getAddress()); return this._layers; }, getJoints: function () { this._joints.setAddress(this.data.readInt(this.address + pa.joints.address)); return this._joints; }, createJoints: function (a) { this._joints.allocateNew(a); this.data.writeInt(this.address + pa.joints.address, this._joints.getAddress()); return this._joints; }, getRegions: function () { this._regions.setAddress(this.data.readInt(this.address + pa.regions.address)); return this._regions; }, createRegions: function (a) { this._regions.allocateNew(a); this.data.writeInt(this.address + pa.regions.address, this._regions.getAddress()); return this._regions; }, getSnippets: function () { this._snippets.setAddress(this.data.readInt(this.address + pa.snippets.address)); return this._snippets; }, createSnippets: function (a) { this._snippets.allocateNew(a); this.data.writeInt(this.address + pa.snippets.address, this._snippets.getAddress()); return this._snippets; }, getTerrain: function () { this._terrain.setAddress(this.data.readInt(this.address + pa.terrain.address)); return this._terrain; }, createTerrain: function (a) { this._terrain.allocateNew(a); this.data.writeInt(this.address + pa.terrain.address, this._terrain.getAddress()); return this._terrain; }, getTerrainRegions: function () { this._terrainRegions.setAddress( this.data.readInt(this.address + pa.terrainRegions.address) ); return this._terrainRegions; }, createTerrainRegions: function (a) { this._terrainRegions.allocateNew(a); this.data.writeInt( this.address + pa.terrainRegions.address, this._terrainRegions.getAddress() ); return this._terrainRegions; }, __class__: pa }); var md = function (a) { this.data = a; }; h['com.stencyl.io.mbs.scene.MbsSceneHeader'] = md; md.__name__ = 'com.stencyl.io.mbs.scene.MbsSceneHeader'; md.initializeType = function () { null == md.MBS_SCENE_HEADER && ((md.MBS_SCENE_HEADER = new wb('MbsSceneHeader')), md.MBS_SCENE_HEADER.setInstantiator(function (a) { return new md(a); }), (md.id = md.MBS_SCENE_HEADER.createField('id', G.INTEGER)), (md.$name = md.MBS_SCENE_HEADER.createField('name', G.STRING)), (md.description = md.MBS_SCENE_HEADER.createField('description', G.STRING))); }; md.new_MbsSceneHeader_list = function (a) { return new Ta(a, md.MBS_SCENE_HEADER, new md(a)); }; md.__super__ = mb; md.prototype = r(mb.prototype, { getMbsType: function () { return md.MBS_SCENE_HEADER; }, allocateNew: function () { this.setAddress(this.data.allocate(md.MBS_SCENE_HEADER.getSize())); }, getId: function () { return this.data.readInt(this.address + md.id.address); }, setId: function (a) { this.data.writeInt(this.address + md.id.address, a); }, getName: function () { return this.data.readString(this.address + md.$name.address); }, setName: function (a) { this.data.writeString(this.address + md.$name.address, a); }, getDescription: function () { return this.data.readString(this.address + md.description.address); }, setDescription: function (a) { this.data.writeString(this.address + md.description.address, a); }, __class__: md }); var Qb = function (a) { this.data = a; this._durations = new Mf(a); this._autotileMerge = new Mf(a); }; h['com.stencyl.io.mbs.scene.MbsTile'] = Qb; Qb.__name__ = 'com.stencyl.io.mbs.scene.MbsTile'; Qb.initializeType = function () { null == Qb.MBS_TILE && ((Qb.MBS_TILE = new wb('MbsTile')), Qb.MBS_TILE.setInstantiator(function (a) { return new Qb(a); }), (Qb.collision = Qb.MBS_TILE.createField('collision', G.INTEGER)), (Qb.metadata = Qb.MBS_TILE.createField('metadata', G.STRING)), (Qb.durations = Qb.MBS_TILE.createField('durations', G.LIST)), (Qb.frames = Qb.MBS_TILE.createField('frames', G.INTEGER)), (Qb.id = Qb.MBS_TILE.createField('id', G.INTEGER)), (Qb.order = Qb.MBS_TILE.createField('order', G.INTEGER)), (Qb.autotile = Qb.MBS_TILE.createField('autotile', G.INTEGER)), (Qb.autotileMerge = Qb.MBS_TILE.createField('autotileMerge', G.LIST))); }; Qb.new_MbsTile_list = function (a) { return new Ta(a, Qb.MBS_TILE, new Qb(a)); }; Qb.__super__ = mb; Qb.prototype = r(mb.prototype, { getMbsType: function () { return Qb.MBS_TILE; }, _durations: null, _autotileMerge: null, allocateNew: function () { this.setAddress(this.data.allocate(Qb.MBS_TILE.getSize())); }, getCollision: function () { return this.data.readInt(this.address + Qb.collision.address); }, setCollision: function (a) { this.data.writeInt(this.address + Qb.collision.address, a); }, getMetadata: function () { return this.data.readString(this.address + Qb.metadata.address); }, setMetadata: function (a) { this.data.writeString(this.address + Qb.metadata.address, a); }, getDurations: function () { this._durations.setAddress(this.data.readInt(this.address + Qb.durations.address)); return this._durations; }, createDurations: function (a) { this._durations.allocateNew(a); this.data.writeInt(this.address + Qb.durations.address, this._durations.getAddress()); return this._durations; }, getFrames: function () { return this.data.readInt(this.address + Qb.frames.address); }, setFrames: function (a) { this.data.writeInt(this.address + Qb.frames.address, a); }, getId: function () { return this.data.readInt(this.address + Qb.id.address); }, setId: function (a) { this.data.writeInt(this.address + Qb.id.address, a); }, getOrder: function () { return this.data.readInt(this.address + Qb.order.address); }, setOrder: function (a) { this.data.writeInt(this.address + Qb.order.address, a); }, getAutotile: function () { return this.data.readInt(this.address + Qb.autotile.address); }, setAutotile: function (a) { this.data.writeInt(this.address + Qb.autotile.address, a); }, getAutotileMerge: function () { this._autotileMerge.setAddress( this.data.readInt(this.address + Qb.autotileMerge.address) ); return this._autotileMerge; }, createAutotileMerge: function (a) { this._autotileMerge.allocateNew(a); this.data.writeInt( this.address + Qb.autotileMerge.address, this._autotileMerge.getAddress() ); return this._autotileMerge; }, __class__: Qb }); var gc = function (a) { this.data = a; this._tiles = new Ta(a, Qb.MBS_TILE, new Qb(a)); }; h['com.stencyl.io.mbs.scene.MbsTileset'] = gc; gc.__name__ = 'com.stencyl.io.mbs.scene.MbsTileset'; gc.initializeType = function () { null == gc.MBS_TILESET && (rb.initializeType(), (gc.MBS_TILESET = new wb('MbsTileset')), gc.MBS_TILESET.setInstantiator(function (a) { return new gc(a); }), gc.MBS_TILESET.inherit(rb.MBS_RESOURCE), (gc.across = gc.MBS_TILESET.createField('across', G.INTEGER)), (gc.down = gc.MBS_TILESET.createField('down', G.INTEGER)), (gc.readableImages = gc.MBS_TILESET.createField('readableImages', G.BOOLEAN)), (gc.tileWidth = gc.MBS_TILESET.createField('tileWidth', G.INTEGER)), (gc.tileHeight = gc.MBS_TILESET.createField('tileHeight', G.INTEGER)), (gc.tiles = gc.MBS_TILESET.createField('tiles', G.LIST))); }; gc.new_MbsTileset_list = function (a) { return new Ta(a, gc.MBS_TILESET, new gc(a)); }; gc.__super__ = rb; gc.prototype = r(rb.prototype, { getMbsType: function () { return gc.MBS_TILESET; }, _tiles: null, allocateNew: function () { this.setAddress(this.data.allocate(gc.MBS_TILESET.getSize())); }, getAcross: function () { return this.data.readInt(this.address + gc.across.address); }, setAcross: function (a) { this.data.writeInt(this.address + gc.across.address, a); }, getDown: function () { return this.data.readInt(this.address + gc.down.address); }, setDown: function (a) { this.data.writeInt(this.address + gc.down.address, a); }, getReadableImages: function () { return this.data.readBool(this.address + gc.readableImages.address); }, setReadableImages: function (a) { this.data.writeBool(this.address + gc.readableImages.address, a); }, getTileWidth: function () { return this.data.readInt(this.address + gc.tileWidth.address); }, setTileWidth: function (a) { this.data.writeInt(this.address + gc.tileWidth.address, a); }, getTileHeight: function () { return this.data.readInt(this.address + gc.tileHeight.address); }, setTileHeight: function (a) { this.data.writeInt(this.address + gc.tileHeight.address, a); }, getTiles: function () { this._tiles.setAddress(this.data.readInt(this.address + gc.tiles.address)); return this._tiles; }, createTiles: function (a) { this._tiles.allocateNew(a); this.data.writeInt(this.address + gc.tiles.address, this._tiles.getAddress()); return this._tiles; }, __class__: gc }); var ee = function (a) { this.data = a; }; h['com.stencyl.io.mbs.scene.layers.MbsColorBackground'] = ee; ee.__name__ = 'com.stencyl.io.mbs.scene.layers.MbsColorBackground'; ee.initializeType = function () { null == ee.MBS_COLOR_BACKGROUND && ((ee.MBS_COLOR_BACKGROUND = new wb('MbsColorBackground')), ee.MBS_COLOR_BACKGROUND.setInstantiator(function (a) { return new ee(a); }), (ee.color = ee.MBS_COLOR_BACKGROUND.createField('color', G.INTEGER))); }; ee.new_MbsColorBackground_list = function (a) { return new Ta(a, ee.MBS_COLOR_BACKGROUND, new ee(a)); }; ee.__super__ = mb; ee.prototype = r(mb.prototype, { getMbsType: function () { return ee.MBS_COLOR_BACKGROUND; }, allocateNew: function () { this.setAddress(this.data.allocate(ee.MBS_COLOR_BACKGROUND.getSize())); }, getColor: function () { return this.data.readInt(this.address + ee.color.address); }, setColor: function (a) { this.data.writeInt(this.address + ee.color.address, a); }, __class__: ee }); var Bd = function (a) { this.data = a; }; h['com.stencyl.io.mbs.scene.layers.MbsGradientBackground'] = Bd; Bd.__name__ = 'com.stencyl.io.mbs.scene.layers.MbsGradientBackground'; Bd.initializeType = function () { null == Bd.MBS_GRADIENT_BACKGROUND && ((Bd.MBS_GRADIENT_BACKGROUND = new wb('MbsGradientBackground')), Bd.MBS_GRADIENT_BACKGROUND.setInstantiator(function (a) { return new Bd(a); }), (Bd.color1 = Bd.MBS_GRADIENT_BACKGROUND.createField('color1', G.INTEGER)), (Bd.color2 = Bd.MBS_GRADIENT_BACKGROUND.createField('color2', G.INTEGER))); }; Bd.new_MbsGradientBackground_list = function (a) { return new Ta(a, Bd.MBS_GRADIENT_BACKGROUND, new Bd(a)); }; Bd.__super__ = mb; Bd.prototype = r(mb.prototype, { getMbsType: function () { return Bd.MBS_GRADIENT_BACKGROUND; }, allocateNew: function () { this.setAddress(this.data.allocate(Bd.MBS_GRADIENT_BACKGROUND.getSize())); }, getColor1: function () { return this.data.readInt(this.address + Bd.color1.address); }, setColor1: function (a) { this.data.writeInt(this.address + Bd.color1.address, a); }, getColor2: function () { return this.data.readInt(this.address + Bd.color2.address); }, setColor2: function (a) { this.data.writeInt(this.address + Bd.color2.address, a); }, __class__: Bd }); var jb = function (a) { this.data = a; }; h['com.stencyl.io.mbs.scene.layers.MbsLayer'] = jb; jb.__name__ = 'com.stencyl.io.mbs.scene.layers.MbsLayer'; jb.initializeType = function () { null == jb.MBS_LAYER && ((jb.MBS_LAYER = new wb('MbsLayer')), jb.MBS_LAYER.setInstantiator(function (a) { return new jb(a); }), (jb.id = jb.MBS_LAYER.createField('id', G.INTEGER)), (jb.$name = jb.MBS_LAYER.createField('name', G.STRING)), (jb.order = jb.MBS_LAYER.createField('order', G.INTEGER)), (jb.opacity = jb.MBS_LAYER.createField('opacity', G.INTEGER)), (jb.blendmode = jb.MBS_LAYER.createField('blendmode', G.STRING)), (jb.scrollFactorX = jb.MBS_LAYER.createField('scrollFactorX', G.FLOAT)), (jb.scrollFactorY = jb.MBS_LAYER.createField('scrollFactorY', G.FLOAT)), (jb.visible = jb.MBS_LAYER.createField('visible', G.BOOLEAN)), (jb.locked = jb.MBS_LAYER.createField('locked', G.BOOLEAN))); }; jb.new_MbsLayer_list = function (a) { return new Ta(a, jb.MBS_LAYER, new jb(a)); }; jb.__super__ = mb; jb.prototype = r(mb.prototype, { getMbsType: function () { return jb.MBS_LAYER; }, allocateNew: function () { this.setAddress(this.data.allocate(jb.MBS_LAYER.getSize())); }, getId: function () { return this.data.readInt(this.address + jb.id.address); }, setId: function (a) { this.data.writeInt(this.address + jb.id.address, a); }, getName: function () { return this.data.readString(this.address + jb.$name.address); }, setName: function (a) { this.data.writeString(this.address + jb.$name.address, a); }, getOrder: function () { return this.data.readInt(this.address + jb.order.address); }, setOrder: function (a) { this.data.writeInt(this.address + jb.order.address, a); }, getOpacity: function () { return this.data.readInt(this.address + jb.opacity.address); }, setOpacity: function (a) { this.data.writeInt(this.address + jb.opacity.address, a); }, getBlendmode: function () { return this.data.readString(this.address + jb.blendmode.address); }, setBlendmode: function (a) { this.data.writeString(this.address + jb.blendmode.address, a); }, getScrollFactorX: function () { return this.data.readFloat(this.address + jb.scrollFactorX.address); }, setScrollFactorX: function (a) { this.data.writeFloat(this.address + jb.scrollFactorX.address, a); }, getScrollFactorY: function () { return this.data.readFloat(this.address + jb.scrollFactorY.address); }, setScrollFactorY: function (a) { this.data.writeFloat(this.address + jb.scrollFactorY.address, a); }, getVisible: function () { return this.data.readBool(this.address + jb.visible.address); }, setVisible: function (a) { this.data.writeBool(this.address + jb.visible.address, a); }, getLocked: function () { return this.data.readBool(this.address + jb.locked.address); }, setLocked: function (a) { this.data.writeBool(this.address + jb.locked.address, a); }, __class__: jb }); var Cd = function (a) { this.data = a; }; h['com.stencyl.io.mbs.scene.layers.MbsImageBackground'] = Cd; Cd.__name__ = 'com.stencyl.io.mbs.scene.layers.MbsImageBackground'; Cd.initializeType = function () { null == Cd.MBS_IMAGE_BACKGROUND && (jb.initializeType(), (Cd.MBS_IMAGE_BACKGROUND = new wb('MbsImageBackground')), Cd.MBS_IMAGE_BACKGROUND.setInstantiator(function (a) { return new Cd(a); }), Cd.MBS_IMAGE_BACKGROUND.inherit(jb.MBS_LAYER), (Cd.resourceID = Cd.MBS_IMAGE_BACKGROUND.createField('resourceID', G.INTEGER)), (Cd.customScroll = Cd.MBS_IMAGE_BACKGROUND.createField('customScroll', G.BOOLEAN))); }; Cd.new_MbsImageBackground_list = function (a) { return new Ta(a, Cd.MBS_IMAGE_BACKGROUND, new Cd(a)); }; Cd.__super__ = jb; Cd.prototype = r(jb.prototype, { getMbsType: function () { return Cd.MBS_IMAGE_BACKGROUND; }, allocateNew: function () { this.setAddress(this.data.allocate(Cd.MBS_IMAGE_BACKGROUND.getSize())); }, getResourceID: function () { return this.data.readInt(this.address + Cd.resourceID.address); }, setResourceID: function (a) { this.data.writeInt(this.address + Cd.resourceID.address, a); }, getCustomScroll: function () { return this.data.readBool(this.address + Cd.customScroll.address); }, setCustomScroll: function (a) { this.data.writeBool(this.address + Cd.customScroll.address, a); }, __class__: Cd }); var fe = function (a) { this.data = a; }; h['com.stencyl.io.mbs.scene.layers.MbsInteractiveLayer'] = fe; fe.__name__ = 'com.stencyl.io.mbs.scene.layers.MbsInteractiveLayer'; fe.initializeType = function () { null == fe.MBS_INTERACTIVE_LAYER && (jb.initializeType(), (fe.MBS_INTERACTIVE_LAYER = new wb('MbsInteractiveLayer')), fe.MBS_INTERACTIVE_LAYER.setInstantiator(function (a) { return new fe(a); }), fe.MBS_INTERACTIVE_LAYER.inherit(jb.MBS_LAYER), (fe.color = fe.MBS_INTERACTIVE_LAYER.createField('color', G.INTEGER))); }; fe.new_MbsInteractiveLayer_list = function (a) { return new Ta(a, fe.MBS_INTERACTIVE_LAYER, new fe(a)); }; fe.__super__ = jb; fe.prototype = r(jb.prototype, { getMbsType: function () { return fe.MBS_INTERACTIVE_LAYER; }, allocateNew: function () { this.setAddress(this.data.allocate(fe.MBS_INTERACTIVE_LAYER.getSize())); }, getColor: function () { return this.data.readInt(this.address + fe.color.address); }, setColor: function (a) { this.data.writeInt(this.address + fe.color.address, a); }, __class__: fe }); var Vb = function (a) { this.data = a; }; h['com.stencyl.io.mbs.scene.physics.MbsJoint'] = Vb; Vb.__name__ = 'com.stencyl.io.mbs.scene.physics.MbsJoint'; Vb.initializeType = function () { null == Vb.MBS_JOINT && ((Vb.MBS_JOINT = new wb('MbsJoint')), Vb.MBS_JOINT.setInstantiator(function (a) { return new Vb(a); }), (Vb.id = Vb.MBS_JOINT.createField('id', G.INTEGER)), (Vb.$name = Vb.MBS_JOINT.createField('name', G.STRING)), (Vb.actor1 = Vb.MBS_JOINT.createField('actor1', G.INTEGER)), (Vb.actor2 = Vb.MBS_JOINT.createField('actor2', G.INTEGER)), (Vb.collide = Vb.MBS_JOINT.createField('collide', G.BOOLEAN))); }; Vb.new_MbsJoint_list = function (a) { return new Ta(a, Vb.MBS_JOINT, new Vb(a)); }; Vb.__super__ = mb; Vb.prototype = r(mb.prototype, { getMbsType: function () { return Vb.MBS_JOINT; }, allocateNew: function () { this.setAddress(this.data.allocate(Vb.MBS_JOINT.getSize())); }, getId: function () { return this.data.readInt(this.address + Vb.id.address); }, setId: function (a) { this.data.writeInt(this.address + Vb.id.address, a); }, getName: function () { return this.data.readString(this.address + Vb.$name.address); }, setName: function (a) { this.data.writeString(this.address + Vb.$name.address, a); }, getActor1: function () { return this.data.readInt(this.address + Vb.actor1.address); }, setActor1: function (a) { this.data.writeInt(this.address + Vb.actor1.address, a); }, getActor2: function () { return this.data.readInt(this.address + Vb.actor2.address); }, setActor2: function (a) { this.data.writeInt(this.address + Vb.actor2.address, a); }, getCollide: function () { return this.data.readBool(this.address + Vb.collide.address); }, setCollide: function (a) { this.data.writeBool(this.address + Vb.collide.address, a); }, __class__: Vb }); var hc = function (a) { this.data = a; }; h['com.stencyl.io.mbs.scene.physics.MbsHingeJoint'] = hc; hc.__name__ = 'com.stencyl.io.mbs.scene.physics.MbsHingeJoint'; hc.initializeType = function () { null == hc.MBS_HINGE_JOINT && (Vb.initializeType(), (hc.MBS_HINGE_JOINT = new wb('MbsHingeJoint')), hc.MBS_HINGE_JOINT.setInstantiator(function (a) { return new hc(a); }), hc.MBS_HINGE_JOINT.inherit(Vb.MBS_JOINT), (hc.limit = hc.MBS_HINGE_JOINT.createField('limit', G.BOOLEAN)), (hc.motor = hc.MBS_HINGE_JOINT.createField('motor', G.BOOLEAN)), (hc.lower = hc.MBS_HINGE_JOINT.createField('lower', G.FLOAT)), (hc.upper = hc.MBS_HINGE_JOINT.createField('upper', G.FLOAT)), (hc.torque = hc.MBS_HINGE_JOINT.createField('torque', G.FLOAT)), (hc.speed = hc.MBS_HINGE_JOINT.createField('speed', G.FLOAT))); }; hc.new_MbsHingeJoint_list = function (a) { return new Ta(a, hc.MBS_HINGE_JOINT, new hc(a)); }; hc.__super__ = Vb; hc.prototype = r(Vb.prototype, { getMbsType: function () { return hc.MBS_HINGE_JOINT; }, allocateNew: function () { this.setAddress(this.data.allocate(hc.MBS_HINGE_JOINT.getSize())); }, getLimit: function () { return this.data.readBool(this.address + hc.limit.address); }, setLimit: function (a) { this.data.writeBool(this.address + hc.limit.address, a); }, getMotor: function () { return this.data.readBool(this.address + hc.motor.address); }, setMotor: function (a) { this.data.writeBool(this.address + hc.motor.address, a); }, getLower: function () { return this.data.readFloat(this.address + hc.lower.address); }, setLower: function (a) { this.data.writeFloat(this.address + hc.lower.address, a); }, getUpper: function () { return this.data.readFloat(this.address + hc.upper.address); }, setUpper: function (a) { this.data.writeFloat(this.address + hc.upper.address, a); }, getTorque: function () { return this.data.readFloat(this.address + hc.torque.address); }, setTorque: function (a) { this.data.writeFloat(this.address + hc.torque.address, a); }, getSpeed: function () { return this.data.readFloat(this.address + hc.speed.address); }, setSpeed: function (a) { this.data.writeFloat(this.address + hc.speed.address, a); }, __class__: hc }); var Yb = function (a) { this.data = a; }; h['com.stencyl.io.mbs.scene.physics.MbsRegion'] = Yb; Yb.__name__ = 'com.stencyl.io.mbs.scene.physics.MbsRegion'; Yb.initializeType = function () { null == Yb.MBS_REGION && ((Yb.MBS_REGION = new wb('MbsRegion')), Yb.MBS_REGION.setInstantiator(function (a) { return new Yb(a); }), (Yb.color = Yb.MBS_REGION.createField('color', G.INTEGER)), (Yb.id = Yb.MBS_REGION.createField('id', G.INTEGER)), (Yb.$name = Yb.MBS_REGION.createField('name', G.STRING)), (Yb.shape = Yb.MBS_REGION.createField('shape', G.DYNAMIC)), (Yb.x = Yb.MBS_REGION.createField('x', G.INTEGER)), (Yb.y = Yb.MBS_REGION.createField('y', G.INTEGER))); }; Yb.new_MbsRegion_list = function (a) { return new Ta(a, Yb.MBS_REGION, new Yb(a)); }; Yb.__super__ = mb; Yb.prototype = r(mb.prototype, { getMbsType: function () { return Yb.MBS_REGION; }, allocateNew: function () { this.setAddress(this.data.allocate(Yb.MBS_REGION.getSize())); }, getColor: function () { return this.data.readInt(this.address + Yb.color.address); }, setColor: function (a) { this.data.writeInt(this.address + Yb.color.address, a); }, getId: function () { return this.data.readInt(this.address + Yb.id.address); }, setId: function (a) { this.data.writeInt(this.address + Yb.id.address, a); }, getName: function () { return this.data.readString(this.address + Yb.$name.address); }, setName: function (a) { this.data.writeString(this.address + Yb.$name.address, a); }, getShape: function () { return de.readDynamic(this.data, this.address + Yb.shape.address); }, setShape: function (a) { de.writeDynamic(this.data, this.address + Yb.shape.address, a); }, getX: function () { return this.data.readInt(this.address + Yb.x.address); }, setX: function (a) { this.data.writeInt(this.address + Yb.x.address, a); }, getY: function () { return this.data.readInt(this.address + Yb.y.address); }, setY: function (a) { this.data.writeInt(this.address + Yb.y.address, a); }, __class__: Yb }); var Rb = function (a) { this.data = a; }; h['com.stencyl.io.mbs.scene.physics.MbsSlidingJoint'] = Rb; Rb.__name__ = 'com.stencyl.io.mbs.scene.physics.MbsSlidingJoint'; Rb.initializeType = function () { null == Rb.MBS_SLIDING_JOINT && (Vb.initializeType(), (Rb.MBS_SLIDING_JOINT = new wb('MbsSlidingJoint')), Rb.MBS_SLIDING_JOINT.setInstantiator(function (a) { return new Rb(a); }), Rb.MBS_SLIDING_JOINT.inherit(Vb.MBS_JOINT), (Rb.limit = Rb.MBS_SLIDING_JOINT.createField('limit', G.BOOLEAN)), (Rb.motor = Rb.MBS_SLIDING_JOINT.createField('motor', G.BOOLEAN)), (Rb.lower = Rb.MBS_SLIDING_JOINT.createField('lower', G.FLOAT)), (Rb.upper = Rb.MBS_SLIDING_JOINT.createField('upper', G.FLOAT)), (Rb.force = Rb.MBS_SLIDING_JOINT.createField('force', G.FLOAT)), (Rb.speed = Rb.MBS_SLIDING_JOINT.createField('speed', G.FLOAT)), (Rb.x = Rb.MBS_SLIDING_JOINT.createField('x', G.FLOAT)), (Rb.y = Rb.MBS_SLIDING_JOINT.createField('y', G.FLOAT))); }; Rb.new_MbsSlidingJoint_list = function (a) { return new Ta(a, Rb.MBS_SLIDING_JOINT, new Rb(a)); }; Rb.__super__ = Vb; Rb.prototype = r(Vb.prototype, { getMbsType: function () { return Rb.MBS_SLIDING_JOINT; }, allocateNew: function () { this.setAddress(this.data.allocate(Rb.MBS_SLIDING_JOINT.getSize())); }, getLimit: function () { return this.data.readBool(this.address + Rb.limit.address); }, setLimit: function (a) { this.data.writeBool(this.address + Rb.limit.address, a); }, getMotor: function () { return this.data.readBool(this.address + Rb.motor.address); }, setMotor: function (a) { this.data.writeBool(this.address + Rb.motor.address, a); }, getLower: function () { return this.data.readFloat(this.address + Rb.lower.address); }, setLower: function (a) { this.data.writeFloat(this.address + Rb.lower.address, a); }, getUpper: function () { return this.data.readFloat(this.address + Rb.upper.address); }, setUpper: function (a) { this.data.writeFloat(this.address + Rb.upper.address, a); }, getForce: function () { return this.data.readFloat(this.address + Rb.force.address); }, setForce: function (a) { this.data.writeFloat(this.address + Rb.force.address, a); }, getSpeed: function () { return this.data.readFloat(this.address + Rb.speed.address); }, setSpeed: function (a) { this.data.writeFloat(this.address + Rb.speed.address, a); }, getX: function () { return this.data.readFloat(this.address + Rb.x.address); }, setX: function (a) { this.data.writeFloat(this.address + Rb.x.address, a); }, getY: function () { return this.data.readFloat(this.address + Rb.y.address); }, setY: function (a) { this.data.writeFloat(this.address + Rb.y.address, a); }, __class__: Rb }); var Dd = function (a) { this.data = a; }; h['com.stencyl.io.mbs.scene.physics.MbsStickJoint'] = Dd; Dd.__name__ = 'com.stencyl.io.mbs.scene.physics.MbsStickJoint'; Dd.initializeType = function () { null == Dd.MBS_STICK_JOINT && (Vb.initializeType(), (Dd.MBS_STICK_JOINT = new wb('MbsStickJoint')), Dd.MBS_STICK_JOINT.setInstantiator(function (a) { return new Dd(a); }), Dd.MBS_STICK_JOINT.inherit(Vb.MBS_JOINT), (Dd.damping = Dd.MBS_STICK_JOINT.createField('damping', G.FLOAT)), (Dd.frequency = Dd.MBS_STICK_JOINT.createField('frequency', G.FLOAT))); }; Dd.new_MbsStickJoint_list = function (a) { return new Ta(a, Dd.MBS_STICK_JOINT, new Dd(a)); }; Dd.__super__ = Vb; Dd.prototype = r(Vb.prototype, { getMbsType: function () { return Dd.MBS_STICK_JOINT; }, allocateNew: function () { this.setAddress(this.data.allocate(Dd.MBS_STICK_JOINT.getSize())); }, getDamping: function () { return this.data.readFloat(this.address + Dd.damping.address); }, setDamping: function (a) { this.data.writeFloat(this.address + Dd.damping.address, a); }, getFrequency: function () { return this.data.readFloat(this.address + Dd.frequency.address); }, setFrequency: function (a) { this.data.writeFloat(this.address + Dd.frequency.address, a); }, __class__: Dd }); var Yd = function (a) { this.data = a; }; h['com.stencyl.io.mbs.scene.physics.MbsTerrainRegion'] = Yd; Yd.__name__ = 'com.stencyl.io.mbs.scene.physics.MbsTerrainRegion'; Yd.initializeType = function () { null == Yd.MBS_TERRAIN_REGION && (Yb.initializeType(), (Yd.MBS_TERRAIN_REGION = new wb('MbsTerrainRegion')), Yd.MBS_TERRAIN_REGION.setInstantiator(function (a) { return new Yd(a); }), Yd.MBS_TERRAIN_REGION.inherit(Yb.MBS_REGION), (Yd.groupID = Yd.MBS_TERRAIN_REGION.createField('groupID', G.INTEGER))); }; Yd.new_MbsTerrainRegion_list = function (a) { return new Ta(a, Yd.MBS_TERRAIN_REGION, new Yd(a)); }; Yd.__super__ = Yb; Yd.prototype = r(Yb.prototype, { getMbsType: function () { return Yd.MBS_TERRAIN_REGION; }, allocateNew: function () { this.setAddress(this.data.allocate(Yd.MBS_TERRAIN_REGION.getSize())); }, getGroupID: function () { return this.data.readInt(this.address + Yd.groupID.address); }, setGroupID: function (a) { this.data.writeInt(this.address + Yd.groupID.address, a); }, __class__: Yd }); var Rd = function (a) { this.data = a; }; h['com.stencyl.io.mbs.shape.MbsShape'] = Rd; Rd.__name__ = 'com.stencyl.io.mbs.shape.MbsShape'; Rd.initializeType = function () { null == Rd.MBS_SHAPE && ((Rd.MBS_SHAPE = new wb('MbsShape')), Rd.MBS_SHAPE.setInstantiator(function (a) { return new Rd(a); })); }; Rd.new_MbsShape_list = function (a) { return new Ta(a, Rd.MBS_SHAPE, new Rd(a)); }; Rd.__super__ = mb; Rd.prototype = r(mb.prototype, { getMbsType: function () { return Rd.MBS_SHAPE; }, allocateNew: function () { this.setAddress(this.data.allocate(Rd.MBS_SHAPE.getSize())); }, __class__: Rd }); var Hd = function (a) { this.data = a; this._position = new rc(a); }; h['com.stencyl.io.mbs.shape.MbsCircle'] = Hd; Hd.__name__ = 'com.stencyl.io.mbs.shape.MbsCircle'; Hd.initializeType = function () { null == Hd.MBS_CIRCLE && (Rd.initializeType(), (Hd.MBS_CIRCLE = new wb('MbsCircle')), Hd.MBS_CIRCLE.setInstantiator(function (a) { return new Hd(a); }), Hd.MBS_CIRCLE.inherit(Rd.MBS_SHAPE), (Hd.position = Hd.MBS_CIRCLE.createField('position', rc.MBS_POINT)), (Hd.radius = Hd.MBS_CIRCLE.createField('radius', G.FLOAT))); }; Hd.new_MbsCircle_list = function (a) { return new Ta(a, Hd.MBS_CIRCLE, new Hd(a)); }; Hd.__super__ = Rd; Hd.prototype = r(Rd.prototype, { getMbsType: function () { return Hd.MBS_CIRCLE; }, _position: null, allocateNew: function () { this.setAddress(this.data.allocate(Hd.MBS_CIRCLE.getSize())); }, getPosition: function () { this._position.setAddress(this.address + Hd.position.address); return this._position; }, getRadius: function () { return this.data.readFloat(this.address + Hd.radius.address); }, setRadius: function (a) { this.data.writeFloat(this.address + Hd.radius.address, a); }, __class__: Hd }); var rc = function (a) { this.data = a; }; h['com.stencyl.io.mbs.shape.MbsPoint'] = rc; rc.__name__ = 'com.stencyl.io.mbs.shape.MbsPoint'; rc.initializeType = function () { null == rc.MBS_POINT && ((rc.MBS_POINT = new wb('MbsPoint')), rc.MBS_POINT.setInstantiator(function (a) { return new rc(a); }), (rc.x = rc.MBS_POINT.createField('x', G.FLOAT)), (rc.y = rc.MBS_POINT.createField('y', G.FLOAT))); }; rc.new_MbsPoint_list = function (a) { return new Ta(a, rc.MBS_POINT, new rc(a)); }; rc.__super__ = mb; rc.prototype = r(mb.prototype, { getMbsType: function () { return rc.MBS_POINT; }, allocateNew: function () { this.setAddress(this.data.allocate(rc.MBS_POINT.getSize())); }, getX: function () { return this.data.readFloat(this.address + rc.x.address); }, setX: function (a) { this.data.writeFloat(this.address + rc.x.address, a); }, getY: function () { return this.data.readFloat(this.address + rc.y.address); }, setY: function (a) { this.data.writeFloat(this.address + rc.y.address, a); }, __class__: rc }); var Vc = function (a) { this.data = a; this._points = new Ta(a, rc.MBS_POINT, new rc(a)); }; h['com.stencyl.io.mbs.shape.MbsPolygon'] = Vc; Vc.__name__ = 'com.stencyl.io.mbs.shape.MbsPolygon'; Vc.initializeType = function () { null == Vc.MBS_POLYGON && (Rd.initializeType(), (Vc.MBS_POLYGON = new wb('MbsPolygon')), Vc.MBS_POLYGON.setInstantiator(function (a) { return new Vc(a); }), Vc.MBS_POLYGON.inherit(Rd.MBS_SHAPE), (Vc.points = Vc.MBS_POLYGON.createField('points', G.LIST))); }; Vc.new_MbsPolygon_list = function (a) { return new Ta(a, Vc.MBS_POLYGON, new Vc(a)); }; Vc.__super__ = Rd; Vc.prototype = r(Rd.prototype, { getMbsType: function () { return Vc.MBS_POLYGON; }, _points: null, allocateNew: function () { this.setAddress(this.data.allocate(Vc.MBS_POLYGON.getSize())); }, getPoints: function () { this._points.setAddress(this.data.readInt(this.address + Vc.points.address)); return this._points; }, createPoints: function (a) { this._points.allocateNew(a); this.data.writeInt(this.address + Vc.points.address, this._points.getAddress()); return this._points; }, __class__: Vc }); var rd = function (a) { Vc.call(this, a); }; h['com.stencyl.io.mbs.shape.MbsPolyRegion'] = rd; rd.__name__ = 'com.stencyl.io.mbs.shape.MbsPolyRegion'; rd.initializeType = function () { null == rd.MBS_POLY_REGION && (Vc.initializeType(), (rd.MBS_POLY_REGION = new wb('MbsPolyRegion')), rd.MBS_POLY_REGION.setInstantiator(function (a) { return new rd(a); }), rd.MBS_POLY_REGION.inherit(Vc.MBS_POLYGON), (rd.width = rd.MBS_POLY_REGION.createField('width', G.INTEGER)), (rd.height = rd.MBS_POLY_REGION.createField('height', G.INTEGER))); }; rd.new_MbsPolyRegion_list = function (a) { return new Ta(a, rd.MBS_POLY_REGION, new rd(a)); }; rd.__super__ = Vc; rd.prototype = r(Vc.prototype, { getMbsType: function () { return rd.MBS_POLY_REGION; }, allocateNew: function () { this.setAddress(this.data.allocate(rd.MBS_POLY_REGION.getSize())); }, getWidth: function () { return this.data.readInt(this.address + rd.width.address); }, setWidth: function (a) { this.data.writeInt(this.address + rd.width.address, a); }, getHeight: function () { return this.data.readInt(this.address + rd.height.address); }, setHeight: function (a) { this.data.writeInt(this.address + rd.height.address, a); }, __class__: rd }); var ge = function (a) { Vc.call(this, a); this._position = new rc(a); }; h['com.stencyl.io.mbs.shape.MbsWireframe'] = ge; ge.__name__ = 'com.stencyl.io.mbs.shape.MbsWireframe'; ge.initializeType = function () { null == ge.MBS_WIREFRAME && (Vc.initializeType(), (ge.MBS_WIREFRAME = new wb('MbsWireframe')), ge.MBS_WIREFRAME.setInstantiator(function (a) { return new ge(a); }), ge.MBS_WIREFRAME.inherit(Vc.MBS_POLYGON), (ge.position = ge.MBS_WIREFRAME.createField('position', rc.MBS_POINT))); }; ge.new_MbsWireframe_list = function (a) { return new Ta(a, ge.MBS_WIREFRAME, new ge(a)); }; ge.__super__ = Vc; ge.prototype = r(Vc.prototype, { getMbsType: function () { return ge.MBS_WIREFRAME; }, _position: null, allocateNew: function () { this.setAddress(this.data.allocate(ge.MBS_WIREFRAME.getSize())); }, getPosition: function () { this._position.setAddress(this.address + ge.position.address); return this._position; }, __class__: ge }); var bd = function (a) { this.data = a; }; h['com.stencyl.io.mbs.snippet.MbsAttribute'] = bd; bd.__name__ = 'com.stencyl.io.mbs.snippet.MbsAttribute'; bd.initializeType = function () { null == bd.MBS_ATTRIBUTE && ((bd.MBS_ATTRIBUTE = new wb('MbsAttribute')), bd.MBS_ATTRIBUTE.setInstantiator(function (a) { return new bd(a); }), (bd.id = bd.MBS_ATTRIBUTE.createField('id', G.INTEGER)), (bd.type = bd.MBS_ATTRIBUTE.createField('type', G.STRING)), (bd.value = bd.MBS_ATTRIBUTE.createField('value', G.DYNAMIC))); }; bd.new_MbsAttribute_list = function (a) { return new Ta(a, bd.MBS_ATTRIBUTE, new bd(a)); }; bd.__super__ = mb; bd.prototype = r(mb.prototype, { getMbsType: function () { return bd.MBS_ATTRIBUTE; }, allocateNew: function () { this.setAddress(this.data.allocate(bd.MBS_ATTRIBUTE.getSize())); }, getId: function () { return this.data.readInt(this.address + bd.id.address); }, setId: function (a) { this.data.writeInt(this.address + bd.id.address, a); }, getType: function () { return this.data.readString(this.address + bd.type.address); }, setType: function (a) { this.data.writeString(this.address + bd.type.address, a); }, getValue: function () { return de.readDynamic(this.data, this.address + bd.value.address); }, setValue: function (a) { de.writeDynamic(this.data, this.address + bd.value.address, a); }, __class__: bd }); var Cb = function (a) { this.data = a; }; h['com.stencyl.io.mbs.snippet.MbsAttributeDef'] = Cb; Cb.__name__ = 'com.stencyl.io.mbs.snippet.MbsAttributeDef'; Cb.initializeType = function () { null == Cb.MBS_ATTRIBUTE_DEF && ((Cb.MBS_ATTRIBUTE_DEF = new wb('MbsAttributeDef')), Cb.MBS_ATTRIBUTE_DEF.setInstantiator(function (a) { return new Cb(a); }), (Cb.type = Cb.MBS_ATTRIBUTE_DEF.createField('type', G.STRING)), (Cb.defaultValue = Cb.MBS_ATTRIBUTE_DEF.createField('defaultValue', G.DYNAMIC)), (Cb.description = Cb.MBS_ATTRIBUTE_DEF.createField('description', G.STRING)), (Cb.dropdown = Cb.MBS_ATTRIBUTE_DEF.createField('dropdown', G.STRING)), (Cb.fullname = Cb.MBS_ATTRIBUTE_DEF.createField('fullname', G.STRING)), (Cb.hidden = Cb.MBS_ATTRIBUTE_DEF.createField('hidden', G.BOOLEAN)), (Cb.id = Cb.MBS_ATTRIBUTE_DEF.createField('id', G.INTEGER)), (Cb.$name = Cb.MBS_ATTRIBUTE_DEF.createField('name', G.STRING)), (Cb.order = Cb.MBS_ATTRIBUTE_DEF.createField('order', G.INTEGER))); }; Cb.new_MbsAttributeDef_list = function (a) { return new Ta(a, Cb.MBS_ATTRIBUTE_DEF, new Cb(a)); }; Cb.__super__ = mb; Cb.prototype = r(mb.prototype, { getMbsType: function () { return Cb.MBS_ATTRIBUTE_DEF; }, allocateNew: function () { this.setAddress(this.data.allocate(Cb.MBS_ATTRIBUTE_DEF.getSize())); }, getType: function () { return this.data.readString(this.address + Cb.type.address); }, setType: function (a) { this.data.writeString(this.address + Cb.type.address, a); }, getDefaultValue: function () { return de.readDynamic(this.data, this.address + Cb.defaultValue.address); }, setDefaultValue: function (a) { de.writeDynamic(this.data, this.address + Cb.defaultValue.address, a); }, getDescription: function () { return this.data.readString(this.address + Cb.description.address); }, setDescription: function (a) { this.data.writeString(this.address + Cb.description.address, a); }, getDropdown: function () { return this.data.readString(this.address + Cb.dropdown.address); }, setDropdown: function (a) { this.data.writeString(this.address + Cb.dropdown.address, a); }, getFullname: function () { return this.data.readString(this.address + Cb.fullname.address); }, setFullname: function (a) { this.data.writeString(this.address + Cb.fullname.address, a); }, getHidden: function () { return this.data.readBool(this.address + Cb.hidden.address); }, setHidden: function (a) { this.data.writeBool(this.address + Cb.hidden.address, a); }, getId: function () { return this.data.readInt(this.address + Cb.id.address); }, setId: function (a) { this.data.writeInt(this.address + Cb.id.address, a); }, getName: function () { return this.data.readString(this.address + Cb.$name.address); }, setName: function (a) { this.data.writeString(this.address + Cb.$name.address, a); }, getOrder: function () { return this.data.readInt(this.address + Cb.order.address); }, setOrder: function (a) { this.data.writeInt(this.address + Cb.order.address, a); }, __class__: Cb }); var ad = function (a) { this.data = a; }; h['com.stencyl.io.mbs.snippet.MbsBlock'] = ad; ad.__name__ = 'com.stencyl.io.mbs.snippet.MbsBlock'; ad.initializeType = function () { null == ad.MBS_BLOCK && ((ad.MBS_BLOCK = new wb('MbsBlock')), ad.MBS_BLOCK.setInstantiator(function (a) { return new ad(a); }), (ad.type = ad.MBS_BLOCK.createField('type', G.STRING)), (ad.id = ad.MBS_BLOCK.createField('id', G.INTEGER)), (ad.blockID = ad.MBS_BLOCK.createField('blockID', G.INTEGER))); }; ad.new_MbsBlock_list = function (a) { return new Ta(a, ad.MBS_BLOCK, new ad(a)); }; ad.__super__ = mb; ad.prototype = r(mb.prototype, { getMbsType: function () { return ad.MBS_BLOCK; }, allocateNew: function () { this.setAddress(this.data.allocate(ad.MBS_BLOCK.getSize())); }, getType: function () { return this.data.readString(this.address + ad.type.address); }, setType: function (a) { this.data.writeString(this.address + ad.type.address, a); }, getId: function () { return this.data.readInt(this.address + ad.id.address); }, setId: function (a) { this.data.writeInt(this.address + ad.id.address, a); }, getBlockID: function () { return this.data.readInt(this.address + ad.blockID.address); }, setBlockID: function (a) { this.data.writeInt(this.address + ad.blockID.address, a); }, __class__: ad }); var ic = function (a) { this.data = a; }; h['com.stencyl.io.mbs.snippet.MbsEvent'] = ic; ic.__name__ = 'com.stencyl.io.mbs.snippet.MbsEvent'; ic.initializeType = function () { null == ic.MBS_EVENT && ((ic.MBS_EVENT = new wb('MbsEvent')), ic.MBS_EVENT.setInstantiator(function (a) { return new ic(a); }), (ic.displayName = ic.MBS_EVENT.createField('displayName', G.STRING)), (ic.enabled = ic.MBS_EVENT.createField('enabled', G.BOOLEAN)), (ic.id = ic.MBS_EVENT.createField('id', G.INTEGER)), (ic.$name = ic.MBS_EVENT.createField('name', G.STRING)), (ic.order = ic.MBS_EVENT.createField('order', G.INTEGER)), (ic.repeats = ic.MBS_EVENT.createField('repeats', G.BOOLEAN))); }; ic.new_MbsEvent_list = function (a) { return new Ta(a, ic.MBS_EVENT, new ic(a)); }; ic.__super__ = mb; ic.prototype = r(mb.prototype, { getMbsType: function () { return ic.MBS_EVENT; }, allocateNew: function () { this.setAddress(this.data.allocate(ic.MBS_EVENT.getSize())); }, getDisplayName: function () { return this.data.readString(this.address + ic.displayName.address); }, setDisplayName: function (a) { this.data.writeString(this.address + ic.displayName.address, a); }, getEnabled: function () { return this.data.readBool(this.address + ic.enabled.address); }, setEnabled: function (a) { this.data.writeBool(this.address + ic.enabled.address, a); }, getId: function () { return this.data.readInt(this.address + ic.id.address); }, setId: function (a) { this.data.writeInt(this.address + ic.id.address, a); }, getName: function () { return this.data.readString(this.address + ic.$name.address); }, setName: function (a) { this.data.writeString(this.address + ic.$name.address, a); }, getOrder: function () { return this.data.readInt(this.address + ic.order.address); }, setOrder: function (a) { this.data.writeInt(this.address + ic.order.address, a); }, getRepeats: function () { return this.data.readBool(this.address + ic.repeats.address); }, setRepeats: function (a) { this.data.writeBool(this.address + ic.repeats.address, a); }, __class__: ic }); var Ed = function (a) { this.data = a; }; h['com.stencyl.io.mbs.snippet.MbsMapElement'] = Ed; Ed.__name__ = 'com.stencyl.io.mbs.snippet.MbsMapElement'; Ed.initializeType = function () { null == Ed.MBS_MAP_ELEMENT && ((Ed.MBS_MAP_ELEMENT = new wb('MbsMapElement')), Ed.MBS_MAP_ELEMENT.setInstantiator(function (a) { return new Ed(a); }), (Ed.key = Ed.MBS_MAP_ELEMENT.createField('key', G.STRING)), (Ed.value = Ed.MBS_MAP_ELEMENT.createField('value', G.DYNAMIC))); }; Ed.new_MbsMapElement_list = function (a) { return new Ta(a, Ed.MBS_MAP_ELEMENT, new Ed(a)); }; Ed.__super__ = mb; Ed.prototype = r(mb.prototype, { getMbsType: function () { return Ed.MBS_MAP_ELEMENT; }, allocateNew: function () { this.setAddress(this.data.allocate(Ed.MBS_MAP_ELEMENT.getSize())); }, getKey: function () { return this.data.readString(this.address + Ed.key.address); }, setKey: function (a) { this.data.writeString(this.address + Ed.key.address, a); }, getValue: function () { return de.readDynamic(this.data, this.address + Ed.value.address); }, setValue: function (a) { de.writeDynamic(this.data, this.address + Ed.value.address, a); }, __class__: Ed }); var Hc = function (a) { this.data = a; this._properties = new Ta(a, bd.MBS_ATTRIBUTE, new bd(a)); }; h['com.stencyl.io.mbs.snippet.MbsSnippet'] = Hc; Hc.__name__ = 'com.stencyl.io.mbs.snippet.MbsSnippet'; Hc.initializeType = function () { null == Hc.MBS_SNIPPET && ((Hc.MBS_SNIPPET = new wb('MbsSnippet')), Hc.MBS_SNIPPET.setInstantiator(function (a) { return new Hc(a); }), (Hc.enabled = Hc.MBS_SNIPPET.createField('enabled', G.BOOLEAN)), (Hc.id = Hc.MBS_SNIPPET.createField('id', G.INTEGER)), (Hc.properties = Hc.MBS_SNIPPET.createField('properties', G.LIST))); }; Hc.new_MbsSnippet_list = function (a) { return new Ta(a, Hc.MBS_SNIPPET, new Hc(a)); }; Hc.__super__ = mb; Hc.prototype = r(mb.prototype, { getMbsType: function () { return Hc.MBS_SNIPPET; }, _properties: null, allocateNew: function () { this.setAddress(this.data.allocate(Hc.MBS_SNIPPET.getSize())); }, getEnabled: function () { return this.data.readBool(this.address + Hc.enabled.address); }, setEnabled: function (a) { this.data.writeBool(this.address + Hc.enabled.address, a); }, getId: function () { return this.data.readInt(this.address + Hc.id.address); }, setId: function (a) { this.data.writeInt(this.address + Hc.id.address, a); }, getProperties: function () { this._properties.setAddress(this.data.readInt(this.address + Hc.properties.address)); return this._properties; }, createProperties: function (a) { this._properties.allocateNew(a); this.data.writeInt(this.address + Hc.properties.address, this._properties.getAddress()); return this._properties; }, __class__: Hc }); var ib = function (a) { this.data = a; this._attributes = new Ta(a, Cb.MBS_ATTRIBUTE_DEF, new Cb(a)); this._blocks = new Ta(a, ad.MBS_BLOCK, new ad(a)); this._events = new Ta(a, ic.MBS_EVENT, new ic(a)); }; h['com.stencyl.io.mbs.snippet.MbsSnippetDef'] = ib; ib.__name__ = 'com.stencyl.io.mbs.snippet.MbsSnippetDef'; ib.initializeType = function () { null == ib.MBS_SNIPPET_DEF && ((ib.MBS_SNIPPET_DEF = new wb('MbsSnippetDef')), ib.MBS_SNIPPET_DEF.setInstantiator(function (a) { return new ib(a); }), (ib.attachedEvent = ib.MBS_SNIPPET_DEF.createField('attachedEvent', G.BOOLEAN)), (ib.actorID = ib.MBS_SNIPPET_DEF.createField('actorID', G.INTEGER)), (ib.classname = ib.MBS_SNIPPET_DEF.createField('classname', G.STRING)), (ib.description = ib.MBS_SNIPPET_DEF.createField('description', G.STRING)), (ib.design = ib.MBS_SNIPPET_DEF.createField('design', G.BOOLEAN)), (ib.drawOrder = ib.MBS_SNIPPET_DEF.createField('drawOrder', G.INTEGER)), (ib.id = ib.MBS_SNIPPET_DEF.createField('id', G.INTEGER)), (ib.$name = ib.MBS_SNIPPET_DEF.createField('name', G.STRING)), (ib.packageName = ib.MBS_SNIPPET_DEF.createField('packageName', G.STRING)), (ib.sceneID = ib.MBS_SNIPPET_DEF.createField('sceneID', G.INTEGER)), (ib.type = ib.MBS_SNIPPET_DEF.createField('type', G.STRING)), (ib.attributes = ib.MBS_SNIPPET_DEF.createField('attributes', G.LIST)), (ib.blocks = ib.MBS_SNIPPET_DEF.createField('blocks', G.LIST)), (ib.events = ib.MBS_SNIPPET_DEF.createField('events', G.LIST))); }; ib.new_MbsSnippetDef_list = function (a) { return new Ta(a, ib.MBS_SNIPPET_DEF, new ib(a)); }; ib.__super__ = mb; ib.prototype = r(mb.prototype, { getMbsType: function () { return ib.MBS_SNIPPET_DEF; }, _attributes: null, _blocks: null, _events: null, allocateNew: function () { this.setAddress(this.data.allocate(ib.MBS_SNIPPET_DEF.getSize())); }, getAttachedEvent: function () { return this.data.readBool(this.address + ib.attachedEvent.address); }, setAttachedEvent: function (a) { this.data.writeBool(this.address + ib.attachedEvent.address, a); }, getActorID: function () { return this.data.readInt(this.address + ib.actorID.address); }, setActorID: function (a) { this.data.writeInt(this.address + ib.actorID.address, a); }, getClassname: function () { return this.data.readString(this.address + ib.classname.address); }, setClassname: function (a) { this.data.writeString(this.address + ib.classname.address, a); }, getDescription: function () { return this.data.readString(this.address + ib.description.address); }, setDescription: function (a) { this.data.writeString(this.address + ib.description.address, a); }, getDesign: function () { return this.data.readBool(this.address + ib.design.address); }, setDesign: function (a) { this.data.writeBool(this.address + ib.design.address, a); }, getDrawOrder: function () { return this.data.readInt(this.address + ib.drawOrder.address); }, setDrawOrder: function (a) { this.data.writeInt(this.address + ib.drawOrder.address, a); }, getId: function () { return this.data.readInt(this.address + ib.id.address); }, setId: function (a) { this.data.writeInt(this.address + ib.id.address, a); }, getName: function () { return this.data.readString(this.address + ib.$name.address); }, setName: function (a) { this.data.writeString(this.address + ib.$name.address, a); }, getPackageName: function () { return this.data.readString(this.address + ib.packageName.address); }, setPackageName: function (a) { this.data.writeString(this.address + ib.packageName.address, a); }, getSceneID: function () { return this.data.readInt(this.address + ib.sceneID.address); }, setSceneID: function (a) { this.data.writeInt(this.address + ib.sceneID.address, a); }, getType: function () { return this.data.readString(this.address + ib.type.address); }, setType: function (a) { this.data.writeString(this.address + ib.type.address, a); }, getAttributes: function () { this._attributes.setAddress(this.data.readInt(this.address + ib.attributes.address)); return this._attributes; }, createAttributes: function (a) { this._attributes.allocateNew(a); this.data.writeInt(this.address + ib.attributes.address, this._attributes.getAddress()); return this._attributes; }, getBlocks: function () { this._blocks.setAddress(this.data.readInt(this.address + ib.blocks.address)); return this._blocks; }, createBlocks: function (a) { this._blocks.allocateNew(a); this.data.writeInt(this.address + ib.blocks.address, this._blocks.getAddress()); return this._blocks; }, getEvents: function () { this._events.setAddress(this.data.readInt(this.address + ib.events.address)); return this._events; }, createEvents: function (a) { this._events.allocateNew(a); this.data.writeInt(this.address + ib.events.address, this._events.getAddress()); return this._events; }, __class__: ib }); var tb = function (a, b, c, e, f, d, p, l, v, n, h, m, t, u, r, w, x, Ge, ia, z) { null == z && (z = 0); null == ia && (ia = !1); null == Ge && (Ge = !0); null == w && (w = !1); null == r && (r = !1); null == u && (u = !1); null == t && (t = !1); null == l && (l = 32); null == p && (p = 32); null == d && (d = -1); null == f && (f = 0); null == e && (e = 0); this.customizedBehaviors = !1; this.maxMove = 99999; this.minMove = 3; this.moveXDistance = this.moveYDistance = 0; this.moveMultiplier = 0.33; this.drawX = this.drawY = 0; this.smoothMove = this.firstMove = this.snapOnSet = !1; this.attachedImages = null; Ca.call(this); k.NO_PHYSICS && 0 == z && (this.physicsMode = z = 1); this.dummy = new P(); this.zero = new P(0, 0); this._point = X.point; this._moveX = this._moveY = 0; this.HITBOX = new kg(); this.set_shape(this.HITBOX); this instanceof pd && k.NO_PHYSICS && ((x = this.HITBOX = new id(p | 0, l | 0, 0, 0, !1, -2)), this.set_shape(x)); this.set_x(0); this.set_y(0); this.set_rotation(0); this.realAngle = this.realY = this.realX = 0; this.realScaleY = this.realScaleX = 1; this.collidable = !0; this.solid = !t; this.updateMatrix = !0; this.colY = this.colX = 0; this.lastScale = new na(1, 1); this.lastY = this.lastX = -1e3; this.lastAngle = 0; this.tweenProps = new jo(); this.tweenProps.xy.doOnUpdate(q(this, this.updateTweenXY)); this.tweenProps.angle.doOnUpdate(q(this, this.updateTweenAngle)); this.tweenProps.alpha.doOnUpdate(q(this, this.updateTweenAlpha)); this.tweenProps.realScaleXY.doOnUpdate(q(this, this.updateTweenScaleXY)); this.transformPoint = new na(0, 0); this.transformMatrix = new Ia(); this.drawMatrix = new Ia(); this.currOrigin = new na(0, 0); this.currOffset = new na(0, 0); this.registry = new qa(); this.attachedImages = []; this.physicsMode = z; this.autoScale = Ge; this.mouseState = this.rSpeed = this.ySpeed = this.xSpeed = 0; this.isTerrainRegion = this.isRegion = this.isCamera = this.isOnScreenCache = this.lastSceneState = this.lastScreenState = !1; this.drawActor = !0; this.fixedRotation = this.continuousCollision = this.isHUD = this.alwaysSimulate = this.killLeaveScreen = !1; this.defaultGravity = this.ignoreGravity = ia; this.resetOrigin = !0; this.allListeners = new Za(); this.allEventReferences = []; this.whenCreated = new Fc(); this.whenUpdated = new Fc(); this.whenDrawing = new Fc(); this.whenKilled = new Fc(); this.whenMousedOver = new Fc(); this.whenPositionStateChanged = new Fc(); this.whenCollided = new Fc(); this.destroyed = this.paused = this.recycled = !1; this.set_name('Unknown'); this.ID = b; this.groupID = c; this.typeID = null != h ? h.ID : -1; this.engine = a; this.collidedList = []; this.collisions = new ye(16); this.simpleCollisions = new ye(16); this.contacts = new ye(16); this.regionContacts = new ye(16); this.collisions.reuseIterator = !0; this.simpleCollisions.reuseIterator = !0; this.contacts.reuseIterator = !0; this.regionContacts.reuseIterator = !0; this.collisionsCount = this.contactCount = 0; this.handlesCollisions = !0; this.behaviors = new Aj(); this.currAnimationName = ''; this.animationMap = new qa(); this.shapeMap = new qa(); this.originMap = new qa(); this.sprite = v; this.type = h; if (null != v) for (b = v.animations.iterator(); b.hasNext(); ) (Ge = b.next()), this.addAnim(Ge), Ge.animID == v.defaultAnimation && (this.defaultAnim = Ge.animName); null == tb.recycledAnimation && (tb.recycledAnimation = new se( -1, 'recyclingDefault', null, null, null, !1, !1, 1, 1, 0, 0, [10], 1, 1, 1 )); this.addAnim(tb.recycledAnimation); if (null != m && 0 == z) m.bullet && (ec.m_continuousPhysics = !0), (m.groupID = c), this.initFromBody(m), (c = new Db()), c.setAsBox(1, 1), this.body.createFixture2(c, 0.1), (this.md = new tj()), (this.md.mass = m.mass), (this.md.I = m.aMass), (this.md.center.x = 0), (this.md.center.y = 0), this.body.setMassData(this.md), (this.bodyScale = new na(1, 1)); else { if (null == x || ma.typeof(x) == sb.TFloat) x = tb.createBox(p, l); null != m && (this.continuousCollision = m.bullet); this instanceof pd && ((t = !0), (w = !1)); this instanceof Pg && (w = !1); null != x && x instanceof kg ? (this.set_shape(x), (this.isTerrain = !0)) : 0 == z && this.initBody(c, t, u, r, w, x); } this.cacheAnchor = new na(0, 0); this.switchToDefaultAnimation(); null != v ? this.setLocation(e, f) : null != x && x instanceof kg ? ((e = new Mc(new ja(1, 1, !0, 0))), e.set_x(p), e.set_y(l), this.addChild(e), (this.cacheWidth = this.set_width(p)), (this.cacheHeight = this.set_height(l))) : 0 == z && this.body.setPosition(new P(k.toPhysicalUnits(e), k.toPhysicalUnits(f))); null != n ? (this.customizedBehaviors = !0) : null != h && (n = h.behaviorValues); -1 != d && a.moveActorToLayer(this, a.getLayerById(d)); k.initBehaviors(this.behaviors, n, this, a, !1); }; h['com.stencyl.models.Actor'] = tb; tb.__name__ = 'com.stencyl.models.Actor'; tb.resetStatics = function () { tb.lastCollided = null; tb.manifold = new sj(); }; tb.createBox = function (a, b) { var c = new Db(); c.setAsBox(k.toPhysicalUnits(a / 2), k.toPhysicalUnits(b / 2)); return c; }; tb.scaleShape = function (a, b, c) { if (a instanceof Lc) a.m_radius *= c; else if (a instanceof Db) { for (var e = a.m_vertices, f = [], d = 0; d < e.length; ) { var p = e[d]; ++d; p.subtract(b); p.multiply(c); p.add(b); f.push(p); } a.setAsArray(f); } }; tb.__super__ = Ca; tb.prototype = r(Ca.prototype, { engine: null, createTime: null, ID: null, groupID: null, cachedLayer: null, layer: null, typeID: null, type: null, recycled: null, paused: null, isRegion: null, isTerrainRegion: null, isTerrain: null, destroyed: null, drawActor: null, isHUD: null, alwaysSimulate: null, isCamera: null, killLeaveScreen: null, physicsMode: null, autoScale: null, dead: null, dying: null, fixedRotation: null, ignoreGravity: null, defaultGravity: null, collidable: null, solid: null, resetOrigin: null, realX: null, realY: null, realAngle: null, realScaleX: null, realScaleY: null, lastX: null, lastY: null, lastAngle: null, lastScale: null, colX: null, colY: null, xSpeed: null, ySpeed: null, rSpeed: null, continuousCollision: null, tweenProps: null, cacheWidth: null, cacheHeight: null, currAnimation: null, currAnimationName: null, animationMap: null, bitmapFilters: null, sprite: null, shapeMap: null, originMap: null, defaultAnim: null, currOrigin: null, currOffset: null, cacheAnchor: null, transformObj: null, transformPoint: null, transformMatrix: null, updateMatrix: null, drawMatrix: null, label: null, attachedImages: null, smoothMove: null, firstMove: null, snapOnSet: null, drawX: null, drawY: null, moveMultiplier: null, moveXDistance: null, moveYDistance: null, minMove: null, maxMove: null, behaviors: null, customizedBehaviors: null, registry: null, allListeners: null, allEventReferences: null, whenCreated: null, whenUpdated: null, whenDrawing: null, whenKilled: null, whenMousedOver: null, whenPositionStateChanged: null, whenCollided: null, mouseState: null, lastScreenState: null, lastSceneState: null, isOnScreenCache: null, body: null, bodyDef: null, md: null, bodyScale: null, handlesCollisions: null, contacts: null, regionContacts: null, collisions: null, dummy: null, zero: null, destroy: function () { if (!this.destroyed) { this.destroyed = !0; for (var a = this.animationMap.h, b = Object.keys(a), c = b.length, e = 0; e < c; ) a[b[e++]].set_visible(!1); X.removeAllChildren(this); if (null != this.body && 0 == this.physicsMode) { for (a = this.body.getContactList(); null != a; ) k.engine.world.m_contactManager.m_contactListener.endContact(a.contact), (a = a.next); k.engine.world.destroyBody(this.body); } this.cancelTweens(); this.regionContacts = this.contacts = this.sprite = this.body = this.currOrigin = this.currOffset = this.currAnimation = this.animationMap = this.defaultAnim = this.originMap = this.shapeMap = tb.lastCollided = null; this.collisionsCount = this.contactCount = 0; this.registry = this.allEventReferences = this.allListeners = this.whenCollided = this.whenPositionStateChanged = this.whenMousedOver = this.whenKilled = this.whenDrawing = this.whenUpdated = this.whenCreated = this.transformMatrix = this.transformPoint = null; for (a = this.collisions.keys(); a.hasNext(); ) { c = a.next(); b = this.collisions; var f = b.mH; e = f.mHash[(73856093 * c) & f.mMask]; if (-1 == e) c = -2147483648; else if (((f = f.mData), f[e] == c)) c = f[e + 1]; else { var d = -2147483648; for (e = f[e + 2]; -1 != e; ) { if (f[e] == c) { d = f[e + 1]; break; } e = f[e + 2]; } c = d; } for (b = -2147483648 == c ? null : b.mVals[c]; 0 < b.points.length; ) Od.free(b.points.pop()); } this.simpleCollisions = this.collisions = null; null != this.bodyDef && (this.bodyDef = this.bodyDef.userData = null); this.behaviors.destroy(); } }, resetListeners: function () { for (var a = this.allListeners.keys(); a.hasNext(); ) { var b = a.next(); this.allListeners.remove(b); } for (; 0 < this.allEventReferences.length; ) this.allEventReferences.pop(); 0 < this.whenUpdated.length && this.whenUpdated.removeAll(); 0 < this.whenDrawing.length && this.whenDrawing.removeAll(); 0 < this.whenKilled.length && this.whenKilled.removeAll(); 0 < this.whenMousedOver.length && this.whenMousedOver.removeAll(); 0 < this.whenPositionStateChanged.length && this.whenPositionStateChanged.removeAll(); 0 < this.whenCollided.length && this.whenCollided.removeAll(); }, defaultHitbox: null, defaultMasklist: null, addAnim: function (a) { var b = 0 == this.physicsMode ? a.physicsShapes : a.simpleShapes; if (null != b) { var c = []; if (1 == this.physicsMode) for (b = b.iterator(); b.hasNext(); ) { var e = b.next(); e instanceof id && 0 != this.physicsMode && ((e = x.__cast(e, id).clone()), e.assignTo(this)); c.push(e); } else if (2 != this.physicsMode) for (b = b.iterator(); b.hasNext(); ) (e = b.next()), c.push(e); 0 != this.physicsMode ? ((b = this.shapeMap), (e = a.animName), (c = new Ai(c, this)), (b.h[e] = c)) : (this.shapeMap.h[a.animName] = c); } b = this.animationMap; e = a.animName; c = new Jj(a); b.h[e] = c; b = this.originMap; e = a.animName; c = new P(a.originX, a.originY); b.h[e] = c; }, reloadAnimationGraphics: function (a) { if (-1 == a) { for (a = this.sprite.animations.iterator(); a.hasNext(); ) { var b = a.next(); b = this.animationMap.h[b.animName]; b.framesUpdated(); } this.updateChildrenPositions(); } else (a = this.sprite.animations.h[a]), (b = this.animationMap.h[a.animName]), b.framesUpdated(), b == this.currAnimation && this.updateChildrenPositions(); }, initScripts: function () { if (2 == this.physicsMode) this.handlesCollisions = !1; else if ( ((this.handlesCollisions = !0), this.behaviors.initScripts(), 0 < this.whenCreated.length) ) for ( this.whenCreated._dispatchIndex = 0; this.whenCreated._dispatchIndex < this.whenCreated.length; ) { try { this.whenCreated.listeners[this.whenCreated._dispatchIndex](); } catch (a) { if (((la.lastError = a), 'string' != typeof M.caught(a).unwrap())) throw a; } ++this.whenCreated._dispatchIndex; } }, initFromBody: function (a) { a.allowSleep = !1; a.userData = this; this.bodyDef = a; this.body = k.engine.world.createBody(a); }, initBody: function (a, b, c, e, f, d) { var g = new ri(); g.groupID = a; a = this.get_x(); g.position.x = k.toPhysicalUnits(a); a = this.get_y(); g.position.y = k.toPhysicalUnits(a); g.angle = 0; g.fixedRotation = !f; g.allowSleep = !1; g.type = c ? va.b2_staticBody : e ? va.b2_kinematicBody : va.b2_dynamicBody; if (d instanceof Array) for ( g.userData = this, this.body = k.engine.world.createBody(g), b = x.__cast(d, Array), d = 0; d < b.length; ) (e = b[d]), ++d, (c = new If()), (c.shape = e), (c.friction = 1), (c.density = 0.1), (c.restitution = 0), (c.isSensor = !1), (c.groupID = 1), (c.userData = this), this.body.createFixture(c); else (c = new If()), (c.shape = d), (c.friction = 1), (c.density = 0.1), (c.restitution = 0), (c.isSensor = b), (c.groupID = -1e3), (c.userData = this), (g.userData = this), (this.body = k.engine.world.createBody(g)), this.body.createFixture(c); this.bodyDef = g; }, addAnimation: function (a, b) { this.animationMap.h[a] = b; }, getAnimation: function () { return this.currAnimationName; }, setAnimation: function (a) { this.switchAnimation(a); }, switchToDefaultAnimation: function () { null != this.defaultAnim && (this.switchAnimation(this.defaultAnim, this.defaultShapeChanged()), this.setCurrentFrame(0)); }, isAnimationPlaying: function () { return !this.currAnimation.isFinished(); }, getCurrentFrame: function () { return this.currAnimation.getCurrentFrame(); }, setCurrentFrame: function (a) { this.currAnimation.setFrame(a); }, getNumFrames: function () { return this.currAnimation.getNumFrames(); }, defaultShapeChanged: function () { if (0 != this.physicsMode) return !0; var a = this.shapeMap.h[this.defaultAnim]; if ( null == this.getBody() || null == this.getBody().getFixtureList() || null == this.getBody().getFixtureList().getShape() ) { if (null != a && 0 < a.length) return !0; } else { if (null == a || 0 == a.length || 1 < a.length) return !0; var b = a[0]; if (null == b) return !0; var c = this.getBody().getFixtureList(); a = this.getBody().getFixtureList().getShape(); var e = b.shape; if ( c.groupID == b.groupID && this.getBody().getFixtureList().isSensor() == b.isSensor && x.getClass(a) == x.getClass(e) ) if (x.getClass(a) == Db) { if (a.m_vertexCount != e.m_vertexCount) return !0; b = 0; for (c = a.m_vertexCount; b < c; ) { var f = b++; if ( a.m_vertices[f].x != e.m_vertices[f].x || a.m_vertices[f].y != e.m_vertices[f].y ) return !0; } } else { if ( x.getClass(a) == Lc && (a.m_radius != e.m_radius || a.m_p.x != e.m_p.x || a.m_p.y != e.m_p.y) ) return !0; } else return !0; } return !1; }, switchAnimation: function (a, b) { null == b && (b = !1); if (a != this.currAnimationName || b) { var c = this.animationMap.h[a]; if (null != c) { null != this.currAnimation && this.removeChild(this.currAnimation); if (null != this.body && 0 == this.physicsMode && !b) { var e = this.shapeMap.h[this.currAnimationName], f = this.shapeMap.h[a]; if (null == e || null == f) b = !0; else if (e.length != f.length || 1 < e.length) b = !0; else { var d = e[0], p = f[0]; if (null == d || null == p) b = !0; else if (((f = d.shape), (e = p.shape), d.isSensor != p.isSensor)) b = !0; else if (d.groupID != p.groupID) b = !0; else if (x.getClass(f) == x.getClass(e)) if (x.getClass(f) == Db) if (f.m_vertexCount != e.m_vertexCount) b = !0; else for (d = 0, p = f.m_vertexCount; d < p; ) { var l = d++; if (f.m_vertices[l].x != e.m_vertices[l].x) { b = !0; break; } else if (f.m_vertices[l].y != e.m_vertices[l].y) { b = !0; break; } } else x.getClass(f) != Lc || (f.m_radius == e.m_radius && f.m_p.x == e.m_p.x && f.m_p.y == e.m_p.y) || (b = !0); else b = !0; } } this.currAnimationName = a; this.currAnimation = c; this.currAnimation.set_filter(this.bitmapFilters); this.currAnimation.set_visible(this.drawActor); this.addChild(c); c = this.originMap.h[a]; f = this.currAnimation.get_width() / k.SCALE / 2 - c.x; e = this.currAnimation.get_height() / k.SCALE / 2 - c.y; if (null != this.body && b && 0 == this.physicsMode) { b = []; for (d = this.body.getContactList(); null != d; ) d.other.getUserData() instanceof pd && d.contact.isTouching() && b.push(d.other.getUserData()), k.engine.world.m_contactManager.m_contactListener.endContact(d.contact), (d = d.next); for (d = this.collisions.keys(); d.hasNext(); ) { p = d.next(); var v = this.collisions, n = v.mH; l = n.mHash[(73856093 * p) & n.mMask]; if (-1 == l) l = -2147483648; else if (((n = n.mData), n[l] == p)) l = n[l + 1]; else { var h = -2147483648; for (l = n[l + 2]; -1 != l; ) { if (n[l] == p) { h = n[l + 1]; break; } l = n[l + 2]; } l = h; } for (l = -2147483648 == l ? null : v.mVals[l]; 0 < l.points.length; ) Od.free(l.points.pop()); this.collisions.unset(p); } this.collisions = new ye(16); this.simpleCollisions = new ye(16); this.contacts = new ye(16); this.regionContacts = new ye(16); this.collisions.reuseIterator = !0; this.simpleCollisions.reuseIterator = !0; this.contacts.reuseIterator = !0; this.regionContacts.reuseIterator = !0; for (this.collisionsCount = this.contactCount = 0; 0 < this.body.m_fixtureCount; ) this.body.DestroyFixture(this.body.getFixtureList()); d = 0; for (p = x.__cast(this.shapeMap.h[a], Array); d < p.length; ) { l = p[d]; ++d; a = new If(); 1.79769313486231e308 > this.bodyDef.friction && ((a.friction = this.bodyDef.friction), (a.restitution = this.bodyDef.bounciness), 0 < this.bodyDef.mass && (a.density = 0.1)); a.density = l.density; a.isSensor = l.isSensor; a.groupID = l.groupID; a.shape = l.shape; if (null != c) if ( ((this.body.origin.x = k.toPhysicalUnits(-c.x)), (this.body.origin.y = k.toPhysicalUnits(-c.y)), l.shape instanceof Db) ) { n = new Xe(); l = l.shape; h = new Db(); h.setAsArray(l.m_vertices, l.m_vertices.length); var m = h.m_vertices, t = h.m_normals; v = n.position; l = k.toPhysicalUnits(f); var u = k.toPhysicalUnits(e); null == u && (u = 0); null == l && (l = 0); v.x = l; v.y = u; n.R.setAngle(0); v = 0; for (u = h.m_vertexCount; v < u; ) (l = v++), (m[l] = n.multiply(m[l])), (t[l] = n.R.multiplyV(t[l])); h.setAsArray(m, m.length); h.m_normals = t; a.shape = h; } else l.shape instanceof Lc && ((v = l.shape), (l = new Lc()), l.setRadius(v.getRadius()), (n = v.m_p.x), (h = k.toPhysicalUnits(f)), (l.m_p.x = n + h), (v = v.m_p.y), (n = k.toPhysicalUnits(e)), (l.m_p.y = v + n), (a.shape = l)); this.body.createFixture(a).SetUserData(this); } if (null != this.body.getFixtureList()) for (this.bodyScale.x = 1, this.bodyScale.y = 1, d = 0; d < b.length; ) (f = b[d]), ++d, (e = this.body.getFixtureList().m_aabb), f.getBody().getFixtureList().m_aabb.testOverlap(e) && f.addActor(this); null != this.md && this.body.setMassData(this.md); } else null != this.shapeMap.h[a] && 1 == this.physicsMode && (this.set_shape(this.shapeMap.h[a]), (this.HITBOX = this._mask)); this.cacheWidth = this.currAnimation.get_width() / k.SCALE; this.cacheHeight = this.currAnimation.get_height() / k.SCALE; null != this.body && ((this.body.size.x = k.toPhysicalUnits(this.cacheWidth)), (this.body.size.y = k.toPhysicalUnits(this.cacheHeight))); 0 == this.physicsMode && ((this.realX = this.getX(!1)), (this.realY = this.getY(!1)), this.updateBodyScale()); null != c && this.setOriginPoint(c.x | 0, c.y | 0); this.updateChildrenPositions(); this.updateMatrix = !0; v = this.currAnimation; v.timer = 0; v.frameIndex = 0; v.finished = !1; null != v.filter ? (v.filteredFrames[v.frameIndex] || ((v.frames[v.frameIndex] = v.applyFilters( v.frames[v.frameIndex], v.model.frames[v.frameIndex], v.filter )), (v.filteredFrames[v.frameIndex] = !0)), v.set_bitmapData(v.frames[v.frameIndex])) : v.set_bitmapData(v.model.frames[v.frameIndex]); v.smoothing = aa.antialias; } } }, updateChildrenPositions: function () { var a = null != this.currAnimation ? new na(-this.currAnimation.get_x(), -this.currAnimation.get_y()) : new na(0, 0); if (!a.equals(this.cacheAnchor)) { this.cacheAnchor.copyFrom(a); a = 0; for (var b = this.attachedImages; a < b.length; ) { var c = b[a]; ++a; c.updatePosition(); } null != this.label && this.label.updatePosition(); } }, removeAttachedImages: function () { for (var a = 0, b = this.attachedImages; a < b.length; ) { var c = b[a]; ++a; c.cacheParentAnchor = X.zero; this.removeChild(c); } this.attachedImages = []; }, update: function (a) { this.innerUpdate(a, !0); }, innerUpdate: function (a, b) { if ( !( this.paused || this.isCamera || this.dying || this.dead || this.destroyed || (b && (this.isHUD || this.alwaysSimulate)) ) ) { if (0 < this.whenMousedOver.length) if (this.isMouseOver()) { if (0 >= this.mouseState) { if (((this.mouseState = 1), 0 < this.whenMousedOver.length)) for ( this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length; ) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex]( this.mouseState ); } catch (ia) { if (((la.lastError = ia), 'string' != typeof M.caught(ia).unwrap())) throw ia; } ++this.whenMousedOver._dispatchIndex; } } else this.mouseState = 2; if (D.mousePressed) { if (((this.mouseState = 3), 0 < this.whenMousedOver.length)) for ( this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length; ) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex]( this.mouseState ); } catch (ia) { if (((la.lastError = ia), 'string' != typeof M.caught(ia).unwrap())) throw ia; } ++this.whenMousedOver._dispatchIndex; } } else if (D.mouseDown && ((this.mouseState = 4), 0 < this.whenMousedOver.length)) for ( this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length; ) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex]( this.mouseState ); } catch (ia) { if (((la.lastError = ia), 'string' != typeof M.caught(ia).unwrap())) throw ia; } ++this.whenMousedOver._dispatchIndex; } if (D.mouseReleased && ((this.mouseState = 5), 0 < this.whenMousedOver.length)) for ( this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length; ) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex]( this.mouseState ); } catch (ia) { if (((la.lastError = ia), 'string' != typeof M.caught(ia).unwrap())) throw ia; } ++this.whenMousedOver._dispatchIndex; } } else if (0 < this.mouseState) { if (((this.mouseState = -1), 0 < this.whenMousedOver.length)) for ( this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length; ) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex]( this.mouseState ); } catch (ia) { if (((la.lastError = ia), 'string' != typeof M.caught(ia).unwrap())) throw ia; } ++this.whenMousedOver._dispatchIndex; } } else -1 == this.mouseState && (this.mouseState = 0); b = this.type.ID; var c = 1e6 + this.groupID, e = this.engine.whenCollidedEvents, f = this.engine.whenTypeGroupPositionStateChangedEvents; if ( 0 == this.physicsMode && (0 < this.whenCollided.length || null != e.h[b] || null != e.h[c]) ) { if (0 < this.contactCount) for (var d = 0, p, l = this.contacts.iterator(); l.hasNext(); ) { p = l.next(); var v = p.key; var n = this.collisions.mH; var k = n.mHash[(73856093 * v) & n.mMask]; if (-1 == k) k = !1; else if (((n = n.mData), n[k] == v)) k = !0; else { var m = !1; for (k = n[k + 2]; -1 != k; ) { if (n[k] == v) { m = !0; break; } k = n[k + 2]; } k = m; } if (k) { k = this.collisions; m = k.mH; n = m.mHash[(73856093 * v) & m.mMask]; if (-1 == n) v = -2147483648; else if (((m = m.mData), m[n] == v)) v = m[n + 1]; else { var h = -2147483648; for (n = m[n + 2]; -1 != n; ) { if (m[n] == v) { h = m[n + 1]; break; } n = m[n + 2]; } v = h; } v = -2147483648 == v ? null : k.mVals[v]; p.getWorldManifold(tb.manifold); k = 0; for (n = tb.manifold.m_points; k < n.length; ) (m = n[k]), ++k, 0 != m.x && 0 != m.y && ((p = v.points[d]), null == p ? (v.points[d] = Od.get( m.x, m.y, tb.manifold.m_normal.x, tb.manifold.m_normal.y )) : ((p = v.points[d]), (p.x = m.x), (p.y = m.y), (p.normalX = tb.manifold.m_normal.x), (p.normalY = tb.manifold.m_normal.y)), ++d); for (; v.points.length > d; ) Od.free(v.points.pop()); d = 0; } else { var t = p.getFixtureA().getUserData(), u = p.getFixtureB().getUserData(); t == this ? ((k = u), (n = p.getFixtureB()), (m = p.getFixtureA())) : ((k = t), (n = p.getFixtureA()), (m = p.getFixtureB())); h = new uc(); h.otherActor = k; h.otherShape = n; h.thisActor = this; h.thisShape = m; h.actorA = t; h.actorB = u; p.getWorldManifold(tb.manifold); this.collisions.set(v, h); this.collisionsCount++; v = this.getBody(); t = k.getBody(); u = p.getFixtureA().getBody(); for ( var q = p.getFixtureB().getBody(), r = 0, w = tb.manifold.m_points; r < w.length; ) ((p = w[r]), ++r, 0 == p.x || 0 == p.y || m.isSensor()) ? m.isSensor() && (null != k && ((h.thisCollidedWithActor = h.thisCollidedWithActor || (1 != k.groupID && -2 != k.groupID && !k.isTerrainRegion)), (h.thisCollidedWithTerrain = h.thisCollidedWithTerrain || k.isTerrainRegion), (h.thisCollidedWithTile = h.thisCollidedWithTile || 1 == k.groupID)), (h.otherCollidedWithActor = h.otherCollidedWithActor || (1 != this.groupID && -2 != this.groupID && !this.isTerrainRegion)), (h.otherCollidedWithTerrain = h.otherCollidedWithTerrain || this.isTerrainRegion), (h.otherCollidedWithTile = h.otherCollidedWithTile || 1 == this.groupID), (h.thisCollidedWithSensor = h.thisCollidedWithSensor || n.isSensor()), (h.otherCollidedWithSensor = h.otherCollidedWithSensor || m.isSensor())) : ((p = Od.get(p.x, p.y, tb.manifold.m_normal.x, tb.manifold.m_normal.y)), h.points.push(p), u == v ? ((h.thisFromBottom = h.thisFromBottom || 0 < p.normalY), (h.thisFromTop = h.thisFromTop || 0 > p.normalY), (h.thisFromLeft = h.thisFromLeft || 0 > p.normalX), (h.thisFromRight = h.thisFromRight || 0 < p.normalX)) : q == v && ((h.thisFromBottom = h.thisFromBottom || 0 > p.normalY), (h.thisFromTop = h.thisFromTop || 0 < p.normalY), (h.thisFromLeft = h.thisFromLeft || 0 < p.normalX), (h.thisFromRight = h.thisFromRight || 0 > p.normalX)), u == t ? ((h.otherFromBottom = h.otherFromBottom || 0 < p.normalY), (h.otherFromTop = h.otherFromTop || 0 > p.normalY), (h.otherFromLeft = h.otherFromLeft || 0 > p.normalX), (h.otherFromRight = h.otherFromRight || 0 < p.normalX)) : q == t && ((h.otherFromBottom = h.otherFromBottom || 0 > p.normalY), (h.otherFromTop = h.otherFromTop || 0 < p.normalY), (h.otherFromLeft = h.otherFromLeft || 0 < p.normalX), (h.otherFromRight = h.otherFromRight || 0 > p.normalX)), null != k && ((h.thisCollidedWithActor = h.thisCollidedWithActor || (1 != k.groupID && -2 != k.groupID && !k.isTerrainRegion)), (h.thisCollidedWithTerrain = h.thisCollidedWithTerrain || k.isTerrainRegion), (h.thisCollidedWithTile = h.thisCollidedWithTile || 1 == k.groupID)), (h.otherCollidedWithActor = h.otherCollidedWithActor || (1 != this.groupID && -2 != this.groupID && !this.isTerrainRegion)), (h.otherCollidedWithTerrain = h.otherCollidedWithTerrain || this.isTerrainRegion), (h.otherCollidedWithTile = h.otherCollidedWithTile || 1 == this.groupID), (h.thisCollidedWithSensor = h.thisCollidedWithSensor || n.isSensor()), (h.otherCollidedWithSensor = h.otherCollidedWithSensor || m.isSensor())); } } if (0 < this.collisionsCount) for (d = this.collisions.iterator(); d.hasNext(); ) if ( ((l = d.next()), null != l && null != l.thisActor && null != l.otherActor && l.thisActor.handlesCollisions && l.otherActor.handlesCollisions) ) { tb.lastCollided = l.otherActor; if (0 < this.whenCollided.length) for ( this.whenCollided._dispatchIndex = 0; this.whenCollided._dispatchIndex < this.whenCollided.length; ) { try { this.whenCollided.listeners[this.whenCollided._dispatchIndex](l); } catch (ia) { if (((la.lastError = ia), 'string' != typeof M.caught(ia).unwrap())) throw ia; } ++this.whenCollided._dispatchIndex; } this.engine.handleCollision(this, l); } } this.internalUpdate(a, !0); 1 == this.physicsMode && ((0 < this.whenCollided.length || null != e.h[b] || null != e.h[c]) && this.handleCollisionsSimple(), this.disposeRemovedCollisionInfo()); if (2 != this.physicsMode && 0 < this.whenUpdated.length) for ( this.whenUpdated._dispatchIndex = 0; this.whenUpdated._dispatchIndex < this.whenUpdated.length; ) { try { this.whenUpdated.listeners[this.whenUpdated._dispatchIndex](a); } catch (ia) { if (((la.lastError = ia), 'string' != typeof M.caught(ia).unwrap())) throw ia; } ++this.whenUpdated._dispatchIndex; } (0 < this.whenPositionStateChanged.length || null != f.h[b] || null != f.h[c]) && this.checkScreenState(); null != this.label && this.label.setAlpha(this.get_alpha()); } }, internalUpdate: function (a, b) { if (!this.paused) { if (0 != this.physicsMode) { 1 != this.physicsMode || this.ignoreGravity || this.isHUD || ((this.xSpeed += a * this.engine.gravityX * 0.001), (this.ySpeed += a * this.engine.gravityY * 0.001)); if (0 != this.xSpeed || 0 != this.ySpeed) this.resetReal(this.realX, this.realY), this.moveActorBy( (10 / k.STEP_SIZE) * this.xSpeed * a * 0.01, (10 / k.STEP_SIZE) * this.ySpeed * a * 0.01, !1 ); 0 != this.rSpeed && (this.realAngle += a * this.rSpeed * 0.001); this.fixedRotation && (this.rSpeed = this.realAngle = 0); } else { var c = this.body.getPosition(); this.realX = c.x * k.physicsScale; this.realY = c.y * k.physicsScale; this.resetReal(this.realX, this.realY); this.realAngle = 57.29577951308402 * this.body.getAngle(); } if ( this.lastX != this.realX || this.lastY != this.realY || this.lastAngle != this.realAngle || this.lastScale.x != this.realScaleX || this.lastScale.y != this.realScaleY ) this.updateMatrix = !0; this.lastX = this.realX; this.lastY = this.realY; this.lastAngle = this.realAngle; this.lastScale.x = this.realScaleX; this.lastScale.y = this.realScaleY; b && null != this.currAnimation && ((b = this.currAnimation), b.model.sync && b.model.looping ? ((a = b.frameIndex), (b.timer = b.model.sharedTimer), (b.frameIndex = b.model.sharedFrameIndex), a != b.frameIndex && (null != b.filter ? (b.filteredFrames[b.frameIndex] || ((b.frames[b.frameIndex] = b.applyFilters( b.frames[b.frameIndex], b.model.frames[b.frameIndex], b.filter )), (b.filteredFrames[b.frameIndex] = !0)), b.set_bitmapData(b.frames[b.frameIndex])) : b.set_bitmapData(b.model.frames[b.frameIndex]), (b.smoothing = aa.antialias))) : ((b.timer += a), 0 < b.numFrames && b.timer > b.durations[b.frameIndex] && ((a = b.frameIndex), (b.timer -= b.durations[b.frameIndex]), b.frameIndex++, b.frameIndex >= b.numFrames && (b.model.looping ? (b.frameIndex = 0) : ((b.finished = !0), b.frameIndex--)), a != b.frameIndex && (null != b.filter ? (b.filteredFrames[b.frameIndex] || ((b.frames[b.frameIndex] = b.applyFilters( b.frames[b.frameIndex], b.model.frames[b.frameIndex], b.filter )), (b.filteredFrames[b.frameIndex] = !0)), b.set_bitmapData(b.frames[b.frameIndex])) : b.set_bitmapData(b.model.frames[b.frameIndex]), (b.smoothing = aa.antialias))))); } }, updateDrawingMatrix: function (a) { null == a && (a = !1); if (!this.paused || a) this.smoothMove ? (this.firstMove || ((this.drawX = this.realX), (this.drawY = this.realY), (this.firstMove = !0)), (this.moveXDistance = this.realX - this.drawX), (this.moveYDistance = this.realY - this.drawY), (this.drawX = this.moveXDistance > this.minMove ? this.moveXDistance * this.moveMultiplier > this.minMove ? this.moveXDistance > this.maxMove ? this.realX : this.drawX + this.moveXDistance * this.moveMultiplier : this.drawX + this.minMove : this.moveXDistance < -1 * this.minMove ? this.moveXDistance * this.moveMultiplier < -1 * this.minMove ? this.moveXDistance < -1 * this.maxMove ? this.realX : this.drawX + this.moveXDistance * this.moveMultiplier : this.drawX - this.minMove : this.realX), (this.drawY = this.moveYDistance > this.minMove ? this.moveYDistance * this.moveMultiplier > this.minMove ? this.moveYDistance > this.maxMove ? this.realY : this.drawY + this.moveYDistance * this.moveMultiplier : this.drawY + this.minMove : this.moveYDistance < -1 * this.minMove ? this.moveYDistance * this.moveMultiplier < -1 * this.minMove ? this.moveYDistance < -1 * this.maxMove ? this.realY : this.drawY + this.moveYDistance * this.moveMultiplier : this.drawY - this.minMove : this.realY)) : 0 != this.physicsMode ? ((this.drawX = this.realX), (this.drawY = this.realY)) : ((a = this.body.getPosition()), (this.drawX = a.x * k.physicsScale), (this.drawY = a.y * k.physicsScale)), (this.transformPoint.x = (this.currOrigin.x - this.cacheWidth / 2) * k.SCALE), (this.transformPoint.y = (this.currOrigin.y - this.cacheHeight / 2) * k.SCALE), this.transformMatrix.identity(), this.transformMatrix.translate(-this.transformPoint.x, -this.transformPoint.y), this.transformMatrix.scale(this.realScaleX, this.realScaleY), 0 != this.realAngle && this.transformMatrix.rotate(0.01745329251994278 * this.realAngle), aa.pixelsnap ? this.transformMatrix.translate( Math.round(this.drawX) * k.SCALE, Math.round(this.drawY) * k.SCALE ) : this.transformMatrix.translate(this.drawX * k.SCALE, this.drawY * k.SCALE), null == this.transformObj && (this.transformObj = this.get_transform()), this.transformObj.set_matrix(this.transformMatrix); }, updateTweenAlpha: function () { this.set_alpha(this.tweenProps.alpha.value); }, updateTweenScaleXY: function () { this.realScaleX = this.tweenProps.realScaleXY.value1; this.realScaleY = this.tweenProps.realScaleXY.value2; this.updateBodyScale(); }, updateTweenAngle: function () { this.setAngle(this.tweenProps.angle.value, !1); }, updateTweenXY: function () { 0 == this.physicsMode ? this.setXY(this.tweenProps.xy.value1, this.tweenProps.xy.value2) : (this.moveActorBy( this.tweenProps.xy.value1 - this.getX(!1), this.tweenProps.xy.value2 - this.getY(!1), !1 ), (this.updateMatrix = !0)); this.tweenProps.xy.finished && null != this.currOffset && this.resetReal(this.realX, this.realY); }, updateBodyScale: function () { this.autoScale && 0 == this.physicsMode && null != this.body && this.bodyDef.type != va.b2_staticBody && 0 != this.realScaleX && 0 != this.realScaleY && this.scaleBody(this.realScaleX, this.realScaleY); }, scaleBody: function (a, b) { for (var c = [], e = this.body.getFixtureList(); null != e; ) c.push(e), (e = e.getNext()); for (e = 0; e < c.length; ) { var f = c[e]; ++e; var d = f.getShape(); f = this.body.getLocalCenter(); if (d instanceof Lc) { var p = d, l = (1 / this.bodyScale.x) * a, v = (1 / this.bodyScale.y) * b, n = p.m_p; n.subtract(f); n.x *= l; n.y *= v; p.m_p = f.copy(); p.m_p.add(n); d.m_radius *= Math.abs(l); } else if (d instanceof Db) { p = d.m_vertices; l = []; v = (0 < this.bodyScale.x && 0 > a) || (0 > this.bodyScale.x && 0 < a); n = (0 < this.bodyScale.y && 0 > b) || (0 > this.bodyScale.y && 0 < b); for (var h = 0; h < p.length; ) { var m = p[h]; ++h; m.subtract(f); m.x = (1 / Math.abs(this.bodyScale.x)) * m.x * Math.abs(a); m.y = (1 / Math.abs(this.bodyScale.y)) * m.y * Math.abs(b); v && (m.x = -m.x); n && (m.y = -m.y); var t = f.copy(); t.add(m); l.push(t); } (v && n) || (!v && !n) || l.reverse(); d.setAsArray(l, l.length); } } this.bodyScale.x = a; this.bodyScale.y = b; this.body.size.x = k.toPhysicalUnits(this.cacheWidth * a); this.body.size.y = k.toPhysicalUnits(this.cacheHeight * b); }, checkScreenState: function () { var a = this.isOnScreen(), b = a || this.isInScene(), c = !this.lastScreenState && a, e = !this.lastSceneState && b, f = this.lastScreenState && !a, d = this.lastSceneState && !b; if (0 < this.whenPositionStateChanged.length) for ( this.whenPositionStateChanged._dispatchIndex = 0; this.whenPositionStateChanged._dispatchIndex < this.whenPositionStateChanged.length; ) { try { this.whenPositionStateChanged.listeners[ this.whenPositionStateChanged._dispatchIndex ](c, f, e, d); } catch (v) { if (((la.lastError = v), 'string' != typeof M.caught(v).unwrap())) throw v; } ++this.whenPositionStateChanged._dispatchIndex; } var p = this.engine.whenTypeGroupPositionStateChangedEvents.h[this.groupID + 1e6], l = this.engine.whenTypeGroupPositionStateChangedEvents.h[this.typeID]; if (null != p && 0 < p.length) for (p._dispatchIndex = 0; p._dispatchIndex < p.length; ) { try { p.listeners[p._dispatchIndex](this, c, f, e, d); } catch (v) { if (((la.lastError = v), 'string' != typeof M.caught(v).unwrap())) throw v; } ++p._dispatchIndex; } if (null != l && 0 < l.length) for (l._dispatchIndex = 0; l._dispatchIndex < l.length; ) { try { l.listeners[l._dispatchIndex](this, c, f, e, d); } catch (v) { if (((la.lastError = v), 'string' != typeof M.caught(v).unwrap())) throw v; } ++l._dispatchIndex; } this.lastScreenState = a; this.lastSceneState = b; }, contactCount: null, collisionsCount: null, handleCollisions: function () { if (0 < this.contactCount) for (var a = 0, b, c = this.contacts.iterator(); c.hasNext(); ) { b = c.next(); var e = b.key; var f = this.collisions.mH; var d = f.mHash[(73856093 * e) & f.mMask]; if (-1 == d) d = !1; else if (((f = f.mData), f[d] == e)) d = !0; else { var p = !1; for (d = f[d + 2]; -1 != d; ) { if (f[d] == e) { p = !0; break; } d = f[d + 2]; } d = p; } if (d) { d = this.collisions; p = d.mH; f = p.mHash[(73856093 * e) & p.mMask]; if (-1 == f) e = -2147483648; else if (((p = p.mData), p[f] == e)) e = p[f + 1]; else { var l = -2147483648; for (f = p[f + 2]; -1 != f; ) { if (p[f] == e) { l = p[f + 1]; break; } f = p[f + 2]; } e = l; } e = -2147483648 == e ? null : d.mVals[e]; b.getWorldManifold(tb.manifold); d = 0; for (f = tb.manifold.m_points; d < f.length; ) (p = f[d]), ++d, 0 != p.x && 0 != p.y && ((b = e.points[a]), null == b ? (e.points[a] = Od.get( p.x, p.y, tb.manifold.m_normal.x, tb.manifold.m_normal.y )) : ((b = e.points[a]), (b.x = p.x), (b.y = p.y), (b.normalX = tb.manifold.m_normal.x), (b.normalY = tb.manifold.m_normal.y)), ++a); for (; e.points.length > a; ) Od.free(e.points.pop()); a = 0; } else { var v = b.getFixtureA().getUserData(), n = b.getFixtureB().getUserData(); v == this ? ((d = n), (f = b.getFixtureB()), (p = b.getFixtureA())) : ((d = v), (f = b.getFixtureA()), (p = b.getFixtureB())); l = new uc(); l.otherActor = d; l.otherShape = f; l.thisActor = this; l.thisShape = p; l.actorA = v; l.actorB = n; b.getWorldManifold(tb.manifold); this.collisions.set(e, l); this.collisionsCount++; e = this.getBody(); v = d.getBody(); n = b.getFixtureA().getBody(); for ( var k = b.getFixtureB().getBody(), m = 0, h = tb.manifold.m_points; m < h.length; ) ((b = h[m]), ++m, 0 == b.x || 0 == b.y || p.isSensor()) ? p.isSensor() && (null != d && ((l.thisCollidedWithActor = l.thisCollidedWithActor || (1 != d.groupID && -2 != d.groupID && !d.isTerrainRegion)), (l.thisCollidedWithTerrain = l.thisCollidedWithTerrain || d.isTerrainRegion), (l.thisCollidedWithTile = l.thisCollidedWithTile || 1 == d.groupID)), (l.otherCollidedWithActor = l.otherCollidedWithActor || (1 != this.groupID && -2 != this.groupID && !this.isTerrainRegion)), (l.otherCollidedWithTerrain = l.otherCollidedWithTerrain || this.isTerrainRegion), (l.otherCollidedWithTile = l.otherCollidedWithTile || 1 == this.groupID), (l.thisCollidedWithSensor = l.thisCollidedWithSensor || f.isSensor()), (l.otherCollidedWithSensor = l.otherCollidedWithSensor || p.isSensor())) : ((b = Od.get(b.x, b.y, tb.manifold.m_normal.x, tb.manifold.m_normal.y)), l.points.push(b), n == e ? ((l.thisFromBottom = l.thisFromBottom || 0 < b.normalY), (l.thisFromTop = l.thisFromTop || 0 > b.normalY), (l.thisFromLeft = l.thisFromLeft || 0 > b.normalX), (l.thisFromRight = l.thisFromRight || 0 < b.normalX)) : k == e && ((l.thisFromBottom = l.thisFromBottom || 0 > b.normalY), (l.thisFromTop = l.thisFromTop || 0 < b.normalY), (l.thisFromLeft = l.thisFromLeft || 0 < b.normalX), (l.thisFromRight = l.thisFromRight || 0 > b.normalX)), n == v ? ((l.otherFromBottom = l.otherFromBottom || 0 < b.normalY), (l.otherFromTop = l.otherFromTop || 0 > b.normalY), (l.otherFromLeft = l.otherFromLeft || 0 > b.normalX), (l.otherFromRight = l.otherFromRight || 0 < b.normalX)) : k == v && ((l.otherFromBottom = l.otherFromBottom || 0 > b.normalY), (l.otherFromTop = l.otherFromTop || 0 < b.normalY), (l.otherFromLeft = l.otherFromLeft || 0 < b.normalX), (l.otherFromRight = l.otherFromRight || 0 > b.normalX)), null != d && ((l.thisCollidedWithActor = l.thisCollidedWithActor || (1 != d.groupID && -2 != d.groupID && !d.isTerrainRegion)), (l.thisCollidedWithTerrain = l.thisCollidedWithTerrain || d.isTerrainRegion), (l.thisCollidedWithTile = l.thisCollidedWithTile || 1 == d.groupID)), (l.otherCollidedWithActor = l.otherCollidedWithActor || (1 != this.groupID && -2 != this.groupID && !this.isTerrainRegion)), (l.otherCollidedWithTerrain = l.otherCollidedWithTerrain || this.isTerrainRegion), (l.otherCollidedWithTile = l.otherCollidedWithTile || 1 == this.groupID), (l.thisCollidedWithSensor = l.thisCollidedWithSensor || f.isSensor()), (l.otherCollidedWithSensor = l.otherCollidedWithSensor || p.isSensor())); } } if (0 < this.collisionsCount) for (a = this.collisions.iterator(); a.hasNext(); ) if ( ((c = a.next()), null != c && null != c.thisActor && null != c.otherActor && c.thisActor.handlesCollisions && c.otherActor.handlesCollisions) ) { tb.lastCollided = c.otherActor; if (0 < this.whenCollided.length) for ( this.whenCollided._dispatchIndex = 0; this.whenCollided._dispatchIndex < this.whenCollided.length; ) { try { this.whenCollided.listeners[this.whenCollided._dispatchIndex](c); } catch (Mg) { if (((la.lastError = Mg), 'string' != typeof M.caught(Mg).unwrap())) throw Mg; } ++this.whenCollided._dispatchIndex; } this.engine.handleCollision(this, c); } }, addContact: function (a) { null != this.contacts && (this.contacts.set(a.key, a), this.contactCount++); }, removeContact: function (a) { if (null != this.collisions) { var b = this.collisions, c = a.key, e = b.mH, f = e.mHash[(73856093 * c) & e.mMask]; if (-1 == f) c = -2147483648; else if (((e = e.mData), e[f] == c)) c = e[f + 1]; else { var d = -2147483648; for (f = e[f + 2]; -1 != f; ) { if (e[f] == c) { d = e[f + 1]; break; } f = e[f + 2]; } c = d; } e = -2147483648 == c ? null : b.mVals[c]; if (null != e) for (this.collisions.unset(a.key), this.collisionsCount--; 0 < e.points.length; ) Od.free(e.points.pop()); } null != this.contacts && this.contacts.unset(a.key) && this.contactCount--; }, addRegionContact: function (a) { null != this.regionContacts && this.regionContacts.set(a.key, a); }, removeRegionContact: function (a) { null != this.regionContacts && this.regionContacts.unset(a.key); }, getID: function () { return this.ID; }, getName: function () { return this.get_name(); }, getGroupID: function () { return 0 != this.physicsMode ? this.groupID : this.body.groupID; }, getLayerID: function () { return this.layer.ID; }, getLayer: function () { return this.layer; }, getLayerName: function () { return this.layer.layerName; }, getLayerOrder: function () { return this.layer.order; }, getType: function () { return this.type; }, isPausable: function () { return this.getType().pausable; }, isPaused: function () { return this.paused; }, pause: function () { if (this.isPausable()) { this.tweenProps.pause(); for (var a = 0, b = this.behaviors.behaviors; a < b.length; ) { var c = b[a]; ++a; null != c.script && c.script.pauseTweens(); } this.paused = !0; 0 == this.physicsMode && this.body.setPaused(!0); } }, unpause: function () { if (this.isPausable()) { this.tweenProps.unpause(); for (var a = 0, b = this.behaviors.behaviors; a < b.length; ) { var c = b[a]; ++a; null != c.script && c.script.unpauseTweens(); } this.paused = !1; 0 == this.physicsMode && this.body.setPaused(!1); } }, getGroup: function () { var a = this.engine.groups, b = this.getGroupID(); return a.h[b]; }, getIsRegion: function () { return this.isRegion; }, getIsTerrainRegion: function () { return this.isTerrainRegion; }, moveToLayer: function (a) { !this.isHUD && a instanceof Ec && this.engine.moveActorToLayer(this, a); }, bringToFront: function () { this.isHUD || (this.engine.bringToFront(this), this.moveToTop()); }, bringForward: function () { this.isHUD || this.engine.bringForward(this); }, sendToBack: function () { this.isHUD || (this.engine.sendToBack(this), this.moveToBottom()); }, sendBackward: function () { this.isHUD || this.engine.sendBackward(this); }, moveToBottom: function () { this.parent.setChildIndex(this, 0); }, moveToTop: function () { this.parent.setChildIndex(this, this.parent.get_numChildren() - 1); }, moveDown: function () { var a = this.parent.getChildIndex(this); 0 < a && this.parent.setChildIndex(this, a - 1); }, moveUp: function () { var a = this.parent.getChildIndex(this), b = this.parent.get_numChildren() - 1; a < b && this.parent.setChildIndex(this, a + 1); }, getZIndex: function () { return this.parent.getChildIndex(this); }, setZIndex: function (a) { var b = this.parent.get_numChildren() - 1; a > b && (a = b); 0 > a && (a = 0); this.parent.setChildIndex(this, a); }, enableSmoothMotion: function () { this.smoothMove = !0; }, getX: function (a) { null == a && (a = !0); var b = -1; k.NO_PHYSICS || (this.isRegion || this.isTerrainRegion ? (b = k.toPixelUnits(this.body.getPosition().x) - this.cacheWidth / 2) : 0 == this.physicsMode && (b = this.body.getPosition().x * k.physicsScale - Math.floor(this.cacheWidth / 2) - this.currOffset.x)); if (k.NO_PHYSICS || 0 != this.physicsMode) b = this.realX - Math.floor(this.cacheWidth / 2) - this.currOffset.x; return a ? Math.round(b) : b; }, getY: function (a) { null == a && (a = !0); var b = -1; k.NO_PHYSICS || (this.isRegion || this.isTerrainRegion ? (b = k.toPixelUnits(this.body.getPosition().y) - this.cacheHeight / 2) : 0 == this.physicsMode && (b = this.body.getPosition().y * k.physicsScale - Math.floor(this.cacheHeight / 2) - this.currOffset.y)); if (k.NO_PHYSICS || 0 != this.physicsMode) b = this.realY - Math.floor(this.cacheHeight / 2) - this.currOffset.y; return a ? Math.round(b) : b; }, getXCenter: function () { return 0 == this.physicsMode ? Math.round(k.toPixelUnits(this.body.getWorldCenter().x) - this.currOffset.x) : this.realX - this.currOffset.x; }, getYCenter: function () { return 0 == this.physicsMode ? Math.round(k.toPixelUnits(this.body.getWorldCenter().y) - this.currOffset.y) : this.realY - this.currOffset.y; }, getScreenX: function () { return this.isHUD ? this.getX(!0) : this.getX(!0) - k.cameraX / k.SCALE; }, getScreenY: function () { return this.isHUD ? this.getY(!0) : this.getY(!0) - k.cameraY / k.SCALE; }, setX: function (a, b, c) { null == c && (c = !1); null == b && (b = !1); 1 == this.physicsMode ? ((b = c || !this.continuousCollision), null == b && (b = !0), this.moveActorBy( a + Math.floor(this.cacheWidth / 2) + this.currOffset.x - this.realX, this.realY - this.realY, b, !1 )) : 2 == this.physicsMode ? this.resetReal(a + Math.floor(this.cacheWidth / 2) + this.currOffset.x, this.realY) : ((this.dummy.x = this.isRegion || this.isTerrainRegion ? k.toPhysicalUnits(a) : k.toPhysicalUnits(a + Math.floor(this.cacheWidth / 2) + this.currOffset.x)), (this.dummy.y = this.body.getPosition().y), this.body.setPosition(this.dummy), b && this.body.setLinearVelocity(this.zero)); this.snapOnSet && ((this.drawX = this.realX), (this.drawY = this.realY)); this.updateMatrix = !0; }, setY: function (a, b, c) { null == c && (c = !1); null == b && (b = !1); 1 == this.physicsMode ? ((b = c || !this.continuousCollision), null == b && (b = !0), this.moveActorBy( this.realX - this.realX, a + Math.floor(this.cacheHeight / 2) + this.currOffset.y - this.realY, b, !1 )) : 2 == this.physicsMode ? this.resetReal(this.realX, a + Math.floor(this.cacheHeight / 2) + this.currOffset.y) : ((this.dummy.y = this.isRegion || this.isTerrainRegion ? k.toPhysicalUnits(a) : k.toPhysicalUnits(a + Math.floor(this.cacheHeight / 2) + this.currOffset.y)), (this.dummy.x = this.body.getPosition().x), this.body.setPosition(this.dummy), b && this.body.setLinearVelocity(this.zero)); this.snapOnSet && ((this.drawX = this.realX), (this.drawY = this.realY)); this.updateMatrix = !0; }, setXY: function (a, b, c, e) { null == e && (e = !1); null == c && (c = !1); 1 == this.physicsMode ? ((c = e || !this.continuousCollision), null == c && (c = !0), this.moveActorBy( a + Math.floor(this.cacheWidth / 2) + this.currOffset.x - this.realX, b + Math.floor(this.cacheHeight / 2) + this.currOffset.y - this.realY, c, !1 ), 0 == this.colX && 0 == this.colY && this.resetReal(this.realX, this.realY)) : 2 == this.physicsMode ? this.resetReal( a + Math.floor(this.cacheWidth / 2) + this.currOffset.x, b + Math.floor(this.cacheHeight / 2) + this.currOffset.y ) : (this.isRegion || this.isTerrainRegion ? ((this.dummy.x = k.toPhysicalUnits(a)), (this.dummy.y = k.toPhysicalUnits(b))) : ((this.dummy.x = k.toPhysicalUnits( a + Math.floor(this.cacheWidth / 2) + this.currOffset.x )), (this.dummy.y = k.toPhysicalUnits( b + Math.floor(this.cacheHeight / 2) + this.currOffset.y ))), this.body.setPosition(this.dummy), c && this.body.setLinearVelocity(this.zero)); this.snapOnSet && ((this.drawX = this.realX), (this.drawY = this.realY)); this.updateMatrix = !0; }, setXCenter: function (a) { this.setX(a - this.getWidth() / 2); }, setYCenter: function (a) { this.setY(a - this.getHeight() / 2); }, setScreenX: function (a) { this.isHUD ? this.setX(a) : this.setX(a + k.cameraX / k.SCALE); }, setScreenY: function (a) { this.isHUD ? this.setY(a) : this.setY(a + k.cameraY / k.SCALE); }, follow: function (a) { if (null != a) if (0 != this.physicsMode) { var b = a.getXCenter(); a = a.getYCenter(); this.moveActorBy(b - this.realX, a - this.realY, !0, !1); } else this.body.setPosition(a.body.getWorldCenter()); }, followWithOffset: function (a, b, c) { 0 != this.physicsMode ? ((b = a.getXCenter() + b), (c = a.getYCenter() + c), this.moveActorBy(b - this.realX, c - this.realY, !0, !1)) : ((a = a.body.getWorldCenter()), (a.x += k.toPhysicalUnits(b)), (a.y += k.toPhysicalUnits(c)), this.body.setPosition(a)); }, setOriginPoint: function (a, b) { var c = 0 == this.physicsMode ? this.body.getPosition() : new P(k.toPhysicalUnits(this.realX), k.toPhysicalUnits(this.realY)); var e = new P(this.currOffset.x, this.currOffset.y), f = this.getAngle(), d = (a - this.cacheWidth / 2) | 0, p = (b - this.cacheHeight / 2) | 0; if ( null != this.currOrigin && ((this.currOffset.x | 0) != d || (this.currOffset.y | 0) != p) && 0 != ((57.29577951308402 * f) | 0) ) { var l = f + Math.atan2(-this.currOffset.y, -this.currOffset.x); f += Math.atan2(-p, -d); var v = Math.sqrt(Math.pow(this.currOffset.x, 2) + Math.pow(this.currOffset.y, 2)), n = Math.sqrt(Math.pow(d, 2) + Math.pow(p, 2)), h = Math.round(this.currOrigin.y + Math.sin(l) * v), m = Math.round(b + Math.sin(f) * n); c.x += k.toPhysicalUnits( Math.round(this.currOrigin.x + Math.cos(l) * v) - Math.round(a + Math.cos(f) * n) ); c.y += k.toPhysicalUnits(h - m); } this.currOrigin.x = a; this.currOrigin.y = b; this.currOffset.x = d; this.currOffset.y = p; e.x = this.currOffset.x - e.x; e.y = this.currOffset.y - e.y; c.x += k.toPhysicalUnits(e.x); c.y += k.toPhysicalUnits(e.y); 0 == this.physicsMode ? this.body.setPosition(c) : ((this.realX = k.toPixelUnits(c.x)), (this.realY = k.toPixelUnits(c.y))); this.resetOrigin = !0; }, getXVelocity: function () { return 0 != this.physicsMode ? this.xSpeed : this.body.getLinearVelocity().x; }, getYVelocity: function () { return 0 != this.physicsMode ? this.ySpeed : this.body.getLinearVelocity().y; }, setXVelocity: function (a) { if (0 != this.physicsMode) this.xSpeed = a; else { var b = this.body.getLinearVelocity(); b.x = a; this.body.setLinearVelocity(b); this.body.setAwake(!0); } }, setYVelocity: function (a) { if (0 != this.physicsMode) this.ySpeed = a; else { var b = this.body.getLinearVelocity(); b.y = a; this.body.setLinearVelocity(b); this.body.setAwake(!0); } }, setVelocity: function (a, b) { this.setXVelocity(b * Math.cos(0.01745329251994278 * a)); this.setYVelocity(b * Math.sin(0.01745329251994278 * a)); }, accelerateX: function (a) { this.setXVelocity(this.getXVelocity() + a); }, accelerateY: function (a) { this.setYVelocity(this.getYVelocity() + a); }, accelerate: function (a, b) { this.setXVelocity(this.getXVelocity() + b * Math.cos(0.01745329251994278 * a)); this.setYVelocity(this.getYVelocity() + b * Math.sin(0.01745329251994278 * a)); }, getAngle: function () { return 0 != this.physicsMode ? 0.01745329251994278 * this.realAngle : this.body.getAngle(); }, getAngleInDegrees: function () { return 0 != this.physicsMode ? this.realAngle : 57.29577951308402 * this.body.getAngle(); }, setAngle: function (a, b) { null == b && (b = !0); b ? 0 != this.physicsMode ? (this.realAngle = 57.29577951308402 * a) : this.body.setAngle(a) : 0 != this.physicsMode ? (this.realAngle = a) : this.body.setAngle(0.01745329251994278 * a); this.updateMatrix = !0; }, rotate: function (a, b) { null == b && (b = !0); b ? 0 != this.physicsMode ? (this.realAngle += 57.29577951308402 * a) : this.body.setAngle(this.body.getAngle() + a) : 0 != this.physicsMode ? (this.realAngle += a) : this.body.setAngle(this.body.getAngle() + 0.01745329251994278 * a); }, getAngularVelocity: function () { return 0 != this.physicsMode ? 0.01745329251994278 * this.rSpeed : this.body.getAngularVelocity(); }, setAngularVelocity: function (a) { 0 != this.physicsMode ? (this.rSpeed = 57.29577951308402 * a) : (this.body.setAngularVelocity(a), this.body.setAwake(!0)); }, changeAngularVelocity: function (a) { 0 != this.physicsMode ? (this.rSpeed += 57.29577951308402 * a) : (this.body.setAngularVelocity(this.body.getAngularVelocity() + a), this.body.setAwake(!0)); }, push: function (a, b, c) { if (0 != this.physicsMode) (this.dummy.x = a), (this.dummy.y = b), this.dummy.normalize(), this.accelerateX(this.dummy.x * c * 0.01), this.accelerateY(this.dummy.y * c * 0.01); else if (0 != a || 0 != b) (this.dummy.x = a), (this.dummy.y = b), this.dummy.normalize(), this.dummy.multiply(c), this.body.applyForce(this.dummy, this.body.getWorldCenter()); }, pushInDirection: function (a, b) { this.push(Math.cos(0.01745329251994278 * a), Math.sin(0.01745329251994278 * a), b); }, applyImpulse: function (a, b, c) { if (0 != this.physicsMode) (this.dummy.x = a), (this.dummy.y = b), this.dummy.normalize(), this.accelerateX(this.dummy.x * c), this.accelerateY(this.dummy.y * c); else if (0 != a || 0 != b) (this.dummy.x = a), (this.dummy.y = b), this.dummy.normalize(), this.dummy.multiply(c), this.body.applyImpulse(this.dummy, this.body.getWorldCenter()); }, applyImpulseInDirection: function (a, b) { this.applyImpulse( Math.cos(0.01745329251994278 * a), Math.sin(0.01745329251994278 * a), b ); }, applyTorque: function (a) { 0 != this.physicsMode ? this.fixedRotation || (this.rSpeed -= a) : (this.body.applyTorque(a), this.body.setAwake(!0)); }, getWidth: function () { return this.cacheWidth; }, getHeight: function () { return this.cacheHeight; }, getPhysicsWidth: function () { return this.cacheWidth / k.physicsScale; }, getPhysicsHeight: function () { return this.cacheHeight / k.physicsScale; }, getBody: function () { return this.body; }, enableRotation: function () { 0 != this.physicsMode ? (this.fixedRotation = !1) : this.body.setFixedRotation(!1); }, disableRotation: function () { 0 != this.physicsMode ? (this.fixedRotation = !0) : this.body.setFixedRotation(!0); }, setIgnoreGravity: function (a) { this.ignoreGravity = a; 0 == this.physicsMode && this.body.setIgnoreGravity(a); }, ignoresGravity: function () { return 0 != this.physicsMode ? this.ignoreGravity : this.body.isIgnoringGravity(); }, getFriction: function () { return 0 == this.physicsMode && null != this.body.m_fixtureList ? this.body.m_fixtureList.m_friction : 0; }, getBounciness: function () { return 0 == this.physicsMode && null != this.body.m_fixtureList ? this.body.m_fixtureList.m_restitution : 0; }, getMass: function () { return 0 == this.physicsMode ? this.md.mass : 0; }, getAngularMass: function () { return 0 == this.physicsMode ? this.md.I : 0; }, getLinearDamping: function () { return 0 == this.physicsMode ? this.body.getLinearDamping() : 0; }, getAngularDamping: function () { return 0 == this.physicsMode ? this.body.getAngularDamping() : 0; }, setFriction: function (a) { 0 == this.physicsMode && this.body.setFriction(a); }, setBounciness: function (a) { 0 == this.physicsMode && this.body.setBounciness(a); }, setMass: function (a) { 0 == this.physicsMode && ((this.md.mass = a), this.body.setMassData(this.md)); }, setAngularMass: function (a) { 0 == this.physicsMode && ((this.md.I = a), this.body.setMassData(this.md)); }, setLinearDamping: function (a) { 0 == this.physicsMode && this.body.setLinearDamping(a); }, setAngularDamping: function (a) { 0 == this.physicsMode && this.body.setAngularDamping(a); }, isMouseOver: function () { if (this.isHUD) { var a = (D.mouseX - k.engine.hudLayer.get_x()) / k.SCALE; var b = (D.mouseY - k.engine.hudLayer.get_y()) / k.SCALE; } else (a = (D.mouseX + k.cameraX * this.layer.scrollFactorX) / k.SCALE), (b = (D.mouseY + k.cameraY * this.layer.scrollFactorY) / k.SCALE); var c = Math.abs(this.realScaleX), e = Math.abs(this.realScaleY), f = this.currOrigin.x * (c - 1), d = (this.cacheWidth - this.currOrigin.x) * (c - 1), p = this.currOrigin.y * (e - 1), l = (this.cacheHeight - this.currOrigin.y) * (e - 1); 0 == this.physicsMode || (this.currOrigin.x == this.cacheWidth / 2 && this.currOrigin.y == this.cacheHeight / 2) || this.resetReal(this.realX, this.realY); var v = this.colX - f, n = this.colY - p; if (0 != this.get_rotation()) { c = v + this.currOrigin.x * c; e = n + this.currOrigin.y * e; a -= c; b -= e; var h = 0.01745329251994278 * this.get_rotation(); e = e - a * Math.sin(h) + b * Math.cos(h); a = c + a * Math.cos(h) + b * Math.sin(h); b = e; } return this.isHUD && !k.engine.isHUDZoomable ? a >= v / k.engine.zoomMultiplier && b >= n / k.engine.zoomMultiplier && a < (v + this.cacheWidth + f + d) / k.engine.zoomMultiplier ? b < (n + this.cacheHeight + p + l) / k.engine.zoomMultiplier : !1 : a >= v && b >= n && a < v + this.cacheWidth + f + d ? b < n + this.cacheHeight + p + l : !1; }, isMouseHover: function () { return this.isMouseOver() ? !D.mouseDown : !1; }, isMouseDown: function () { return this.isMouseOver() ? D.mouseDown : !1; }, isMousePressed: function () { return this.isMouseOver() ? D.mousePressed : !1; }, isMouseReleased: function () { return this.isMouseOver() ? D.mouseReleased : !1; }, cancelTweens: function () { this.tweenProps.cancel(); }, fadeTo: function (a, b, c) { null == b && (b = 1); this.tweenProps.alpha.tween(this.get_alpha(), a, c, (1e3 * b) | 0); }, growTo: function (a, b, c, e) { null == c && (c = 1); null == b && (b = 1); null == a && (a = 1); this.tweenProps.realScaleXY.tween( this.realScaleX, a, this.realScaleY, b, e, (1e3 * c) | 0 ); }, spinTo: function (a, b, c) { null == b && (b = 1); this.tweenProps.angle.tween(this.getAngleInDegrees(), a, c, (1e3 * b) | 0); }, moveTo: function (a, b, c, e) { null == c && (c = 1); this.tweenProps.xy.tween(this.getX(!1), a, this.getY(!1), b, e, (1e3 * c) | 0); }, spinBy: function (a, b, c) { null == b && (b = 1); this.spinTo(this.getAngleInDegrees() + a, b, c); }, moveBy: function (a, b, c, e) { null == c && (c = 1); this.moveTo(this.getX(!1) + a, this.getY(!1) + b, c, e); }, drawImage: function (a) { if (null != this.currAnimation) { var b = 0, c = 0; 0 < this.realAngle && (this.drawMatrix.identity(), (this.transformPoint.x = -(this.cacheWidth / 2) * k.SCALE), (this.transformPoint.y = -(this.cacheHeight / 2) * k.SCALE), this.drawMatrix.translate(-this.transformPoint.x, -this.transformPoint.y), this.drawMatrix.scale(this.realScaleX, this.realScaleY), this.drawMatrix.rotate(0.01745329251994278 * this.realAngle), this.drawMatrix.translate(this.colX * k.SCALE, this.colY * k.SCALE), (b += this.transformMatrix.tx - this.drawMatrix.tx), (c += this.transformMatrix.ty - this.drawMatrix.ty)); var e = this.currAnimation.get_visible(); this.currAnimation.set_visible(!0); var f = this.currAnimation, d = 0.01745329251994278 * this.realAngle; if (!aa.disposeImages || f.model.checkImageReadable()) { f = f.get_bitmapData(); null == d && (d = 0); b *= a.scaleX; c *= a.scaleY; a.rect.x = 0; a.rect.y = 0; a.rect.width = f.width; a.rect.height = f.height; a.drawActor ? null != a.actor && a.actor.isHUD ? ((a.point.x = a.x + b), (a.point.y = a.y + c)) : ((a.point.x = a.x + b - k.cameraX), (a.point.y = a.y + c - k.cameraY)) : ((a.point.x = a.x + b), (a.point.y = a.y + c)); a.mtx.identity(); a.mtx.rotate(d); a.mtx.translate(a.point.x, a.point.y); if (0 == d) 1 != a.alpha && ((a.point2.x = 0), (a.point2.y = 0), (a.rect2.width = f.width), (a.rect2.height = f.height), (c = new ja(f.width, f.height, !0, a.toARGB(0, (255 * a.alpha) | 0))), (b = new ja(f.width, f.height, !0, 0)), b.copyPixels(f, a.rect2, a.point2, c, null, !0), (f = b)), a.graphics.beginBitmapFill(f, a.mtx), a.graphics.drawRect(a.point.x, a.point.y, f.width, f.height); else { 1 != a.alpha && ((a.point2.x = 0), (a.point2.y = 0), (a.rect2.width = f.width), (a.rect2.height = f.height), (c = new ja(f.width, f.height, !0, a.toARGB(0, (255 * a.alpha) | 0))), (b = new ja(f.width, f.height, !0, 0)), b.copyPixels(f, a.rect2, a.point2, c, null, !0), (f = b)); c = new ja(f.width + 2, f.height + 2, !0, 0); b = Math.sqrt(Math.pow(c.width, 2) + Math.pow(c.height, 2)) | 0; d = new fa(0, 0, f.width, f.height); var p = new na(1, 1); c.copyPixels(f, d, p); a.graphics.beginBitmapFill(c, a.mtx, !1, aa.antialias); a.graphics.drawRect(a.x - (b - f.width) / 2, a.y - (b - f.height) / 2, b, b); } a.graphics.endFill(); } this.currAnimation.set_visible(e); } }, getCurrentImage: function () { return this.currAnimation.getCurrentImage(); }, enableActorDrawing: function () { this.drawActor = !0; null != this.currAnimation && this.currAnimation.set_visible(!0); }, disableActorDrawing: function () { this.drawActor = !1; null != this.currAnimation && this.currAnimation.set_visible(!1); }, drawsImage: function () { return this.drawActor; }, setFilter: function (a) { null == this.bitmapFilters && (this.bitmapFilters = []); this.bitmapFilters = this.bitmapFilters.concat(a); null != this.currAnimation && this.currAnimation.set_filter(this.bitmapFilters); }, clearFilters: function () { this.bitmapFilters = null; null != this.currAnimation && this.currAnimation.set_filter(null); }, setBlendMode: function (a) { this.set_blendMode(a); }, resetBlendMode: function () { this.set_blendMode(10); }, addBehavior: function (a) { null != this.behaviors && this.behaviors.add(a); }, hasBehavior: function (a) { return null != this.behaviors ? this.behaviors.hasBehavior(a) : !1; }, enableBehavior: function (a) { null != this.behaviors && this.behaviors.enableBehavior(a); }, disableBehavior: function (a) { null != this.behaviors && this.behaviors.disableBehavior(a); }, isBehaviorEnabled: function (a) { return null != this.behaviors ? this.behaviors.isBehaviorEnabled(a) : !1; }, enableAllBehaviors: function () { if (null != this.behaviors) for (var a = 0, b = this.behaviors.behaviors; a < b.length; ) { var c = b[a]; ++a; c.enabled = !0; } }, getValue: function (a, b) { return this.behaviors.getAttribute(a, b); }, setValue: function (a, b, c) { this.behaviors.setAttribute(a, b, c); }, shout: function (a, b) { return this.behaviors.call(a, b); }, say: function (a, b, c) { return this.behaviors.call2(a, b, c); }, setActorValue: function (a, b) { null != this.registry && (this.registry.h[a] = b); }, getActorValue: function (a) { return null == this.registry ? null : this.registry.h[a]; }, hasActorValue: function (a) { return null == this.registry ? null : null != this.registry.h[a]; }, registerListener: function (a, b) { var c = X.indexOf(this.allEventReferences, a); -1 != c ? (a = this.allListeners.h[c]) : (this.allEventReferences.push(a), (c = this.allEventReferences.length - 1), (a = []), (this.allListeners.h[c] = a)); a.push(b); }, removeAllListeners: function () { for (var a = 0, b = this.allEventReferences.length; a < b; ) { var c = a++, e = this.allEventReferences[c]; if (null != e && ((c = x.__cast(this.allListeners.h[c], Array)), null != c)) for (var f = 0, d = c.length; f < d; ) { var p = f++; e.remove(c[p]); } } this.allEventReferences.length = 0; }, anchorToScreen: function () { this.isHUD || this.engine.moveActorToLayer(this, this.engine.hudLayer); }, unanchorFromScreen: function () { this.isHUD && this.engine.moveActorToLayer(this, this.cachedLayer); }, isAnchoredToScreen: function () { return this.isHUD; }, makeAlwaysSimulate: function (a) { null == a && (a = !0); this.alwaysSimulate || (0 == this.physicsMode && a && (this.body.setAlwaysActive(!0), this.body.setActive(!0)), (this.alwaysSimulate = !0)); }, makeSometimesSimulate: function (a) { null == a && (a = !0); this.alwaysSimulate && (0 == this.physicsMode && a && (this.body.setAlwaysActive(!1), this.body.setActive(!1)), (this.alwaysSimulate = !1)); }, alwaysSimulates: function () { return this.alwaysSimulate; }, die: function () { this.dying = !0; var a = this.engine.whenTypeGroupKilledEvents, b = this.getType(), c = a.h[b.__id__]; a = this.engine.whenTypeGroupKilledEvents; b = this.getGroup(); a = a.h[b.__id__]; if (0 < this.whenKilled.length) for ( this.whenKilled._dispatchIndex = 0; this.whenKilled._dispatchIndex < this.whenKilled.length; ) { try { this.whenKilled.listeners[this.whenKilled._dispatchIndex](); } catch (e) { if (((la.lastError = e), 'string' != typeof M.caught(e).unwrap())) throw e; } ++this.whenKilled._dispatchIndex; } if (null != c && 0 < c.length) for (c._dispatchIndex = 0; c._dispatchIndex < c.length; ) { try { c.listeners[c._dispatchIndex](this); } catch (e) { if (((la.lastError = e), 'string' != typeof M.caught(e).unwrap())) throw e; } ++c._dispatchIndex; } if (null != a && 0 < a.length) for (a._dispatchIndex = 0; a._dispatchIndex < a.length; ) { try { a.listeners[a._dispatchIndex](this); } catch (e) { if (((la.lastError = e), 'string' != typeof M.caught(e).unwrap())) throw e; } ++a._dispatchIndex; } this.removeAllListeners(); }, isDying: function () { return this.dying; }, isAlive: function () { return !(this.dead || this.dying || this.recycled); }, isOnScreen: function () { var a = k.cameraX / k.SCALE, b = k.cameraY / k.SCALE, c = k.paddingLeft, e = k.paddingTop, f = k.paddingRight, d = k.paddingBottom; return (0 != this.physicsMode || this.body.isActive()) && this.getX(!0) + this.cacheWidth * this.realScaleX >= a - c && this.getY(!0) + this.cacheHeight * this.realScaleY >= b - e && this.getX(!0) < a + k.screenWidth + f ? this.getY(!0) < b + k.screenHeight + d : !1; }, isInScene: function () { return (0 != this.physicsMode || this.body.isActive()) && 0 <= this.getX(!0) + this.cacheWidth * this.realScaleX && 0 <= this.getY(!0) + this.cacheHeight * this.realScaleY && this.getX(!0) < k.sceneWidth ? this.getY(!0) < k.sceneHeight : !1; }, getLastCollidedActor: function () { return tb.lastCollided; }, killSelfAfterLeavingScreen: function () { this.killLeaveScreen = !0; }, toString: function () { return null == this.get_name() ? 'Unknown Actor ' + this.ID : '[Actor ' + this.ID + ',' + this.get_name() + ']'; }, addRectangularShape: function (a, b, c, e) { if (0 == this.physicsMode) { var f = new Db(), d = []; a = k.toPhysicalUnits(a - Math.floor(this.cacheWidth / 2) - this.currOffset.x); b = k.toPhysicalUnits(b - Math.floor(this.cacheHeight / 2) - this.currOffset.y); c = k.toPhysicalUnits(c); e = k.toPhysicalUnits(e); d.push(new P(a, b)); d.push(new P(a + c, b)); d.push(new P(a + c, b + e)); d.push(new P(a, b + e)); f.setAsVector(d); this.createFixture(f).SetUserData(this); } }, addCircularShape: function (a, b, c) { if (0 == this.physicsMode) { var e = new Lc(); e.m_radius = k.toPhysicalUnits(c); e.m_p.x = k.toPhysicalUnits(a); e.m_p.y = k.toPhysicalUnits(b); this.createFixture(e).SetUserData(this); } }, addVertex: function (a, b, c) { b = k.toPhysicalUnits(b - Math.floor(this.cacheWidth / 2) - this.currOffset.x); c = k.toPhysicalUnits(c - Math.floor(this.cacheHeight / 2) - this.currOffset.y); a.push(new P(b, c)); }, addPolygonalShape: function (a) { if (0 == this.physicsMode) { var b = new Db(); b.setAsArray(a); this.createFixture(b).SetUserData(this); } }, createFixture: function (a) { var b = new If(); b.shape = a; b.density = 0.1 * this.bodyDef.mass; b.friction = this.bodyDef.friction; b.restitution = this.bodyDef.bounciness; return this.body.createFixture(b); }, getLastCreatedFixture: function () { return 0 == this.physicsMode ? this.body.getFixtureList() : null; }, setLocation: function (a, b) { this.realX = a; this.realY = b; this.setXY(a, b, !1, !0); }, get_shape: function () { return this._mask; }, set_shape: function (a) { if (this._mask == a) return a; null != this._mask && this._mask.assignTo(null); this._mask = a; null != a && this._mask.assignTo(this); return this._mask; }, collide: function (a, b, c) { a = this.engine.getGroup(a); this._x = this.realX; this._y = this.realY; this.resetReal(b, c); if (null == this._mask) { b = 0; for (c = a.list; b < c.length; ) if ( ((a = c[b]), ++b, !a.recycled && this.colX + this.cacheWidth >= a.colX && this.colY + this.cacheHeight >= a.colY && this.colX <= a.colX + a.cacheWidth && this.colY <= a.colY + a.cacheHeight && a.collidable && a != this && (null == a._mask || a._mask.collide(this.HITBOX))) ) return (this.colMask = a._mask), this.resetReal(this._x, this._y), a; this.resetReal(this._x, this._y); return null; } b = 0; for (c = a.list; b < c.length; ) if ( ((a = c[b]), ++b, !a.recycled && this.colX + this.cacheWidth >= a.colX && this.colY + this.cacheHeight >= a.colY && this.colX <= a.colX + a.cacheWidth && this.colY <= a.colY + a.cacheHeight && a.collidable && a != this && this._mask.collide(null != a._mask ? a._mask : a.HITBOX)) ) return ( (this.colMask = null != a._mask ? a._mask : a.HITBOX), this.resetReal(this._x, this._y), a ); this.resetReal(this._x, this._y); return null; }, collideTypes: function (a, b, c) { for (var e = this.collidedList.length, f, d = 0; d < a.length; ) (f = a[d]), ++d, -2 != f && this.collideInto(f, b, c, this.collidedList); return this.collidedList.length > e ? this.collidedList[this.collidedList.length - 1] : null; }, collideWith: function (a, b, c) { this._x = this.realX; this._y = this.realY; this.resetReal(b, c); if ( this.colX + this.cacheWidth >= a.colX && this.colY + this.cacheHeight >= a.colY && this.colX <= a.colX + a.cacheWidth && this.colY <= a.colY + a.cacheHeight && this.collidable && a.collidable ) { if (null == this._mask) { if (null == a._mask || a._mask.collide(this.HITBOX)) return this.resetReal(this._x, this._y), a; this.resetReal(this._x, this._y); return null; } if (this._mask.collide(null != a._mask ? a._mask : a.HITBOX)) return this.resetReal(this._x, this._y), a; } this.resetReal(this._x, this._y); return null; }, collideInto: function (a, b, c, e) { a = this.engine.getGroup(a); this._x = this.realX; this._y = this.realY; this.resetReal(b, c); b = e.length; if (null == this._mask) for (c = 0, a = a.list; c < a.length; ) { var f = a[c]; ++c; f.recycled || (this.colX + this.cacheWidth >= f.colX && this.colY + this.cacheHeight >= f.colY && this.colX <= f.colX + f.cacheWidth && this.colY <= f.colY + f.cacheHeight && f.collidable && f != this && (null == f._mask || f._mask.collide(this.HITBOX)) && (X.contains(e, f) || (e[b++] = f))); } else for (c = 0, a = a.list; c < a.length; ) (f = a[c]), ++c, this.colX + this.cacheWidth >= f.colX && this.colY + this.cacheHeight >= f.colY && this.colX <= f.colX + f.cacheWidth && this.colY <= f.colY + f.cacheHeight && f.collidable && f != this && this._mask.collide(null != f._mask ? f._mask : f.HITBOX) && (X.contains(e, f) || (e[b++] = f)); this.resetReal(this._x, this._y); }, clearCollisionInfoList: function () { if (0 < this.collisionsCount) for (var a = this.simpleCollisions.iterator(); a.hasNext(); ) { var b = a.next(); b.remove = !0; null != b.linkedCollision && (b.linkedCollision.remove = !0); } }, disposeRemovedCollisionInfo: function () { if (0 < this.collisionsCount) { for (var a = -1, b = this.simpleCollisions.keys(); b.hasNext(); ) { var c = b.next(), e = this.simpleCollisions, f = e.mH, d = f.mHash[(73856093 * c) & f.mMask]; if (-1 == d) d = -2147483648; else if (((f = f.mData), f[d] == c)) d = f[d + 1]; else { var p = -2147483648; for (d = f[d + 2]; -1 != d; ) { if (f[d] == c) { p = f[d + 1]; break; } d = f[d + 2]; } d = p; } (-2147483648 == d ? null : e.mVals[d]).remove ? this.simpleCollisions.unset(c) : c > a && (a = c); } this.collisionsCount = a + 1; } }, clearCollidedList: function () { for (; 0 < this.collidedList.length; ) this.collidedList.pop(); this.listChecked = 0; }, addCollision: function (a) { var b = this.alreadyCollided(a); if (-1 != b) { var c = this.simpleCollisions, e = c.mH, f = e.mHash[(73856093 * b) & e.mMask]; if (-1 == f) f = -2147483648; else if (((e = e.mData), e[f] == b)) f = e[f + 1]; else { var d = -2147483648; for (f = e[f + 2]; -1 != f; ) { if (e[f] == b) { d = e[f + 1]; break; } f = e[f + 2]; } f = d; } c = -2147483648 == f ? null : c.mVals[f]; a.switchData(c.linkedCollision); a.linkedCollision.remove = !1; a.remove = !1; uc.recycle(c); this.simpleCollisions.unset(b); this.simpleCollisions.set(b, a); return a; } this.simpleCollisions.unset(this.collisionsCount); this.simpleCollisions.set(this.collisionsCount, a); this.collisionsCount++; return a; }, alreadyCollided: function (a) { for (var b = this.simpleCollisions.keys(); b.hasNext(); ) { var c = b.next(), e = this.simpleCollisions, f = e.mH, d = f.mHash[(73856093 * c) & f.mMask]; if (-1 == d) d = -2147483648; else if (((f = f.mData), f[d] == c)) d = f[d + 1]; else { var p = -2147483648; for (d = f[d + 2]; -1 != d; ) { if (f[d] == c) { p = f[d + 1]; break; } d = f[d + 2]; } d = p; } e = -2147483648 == d ? null : e.mVals[d]; if ( null != e && ((e.maskA == a.maskA && e.maskB == a.maskB) || (e.maskA == a.maskB && e.maskB == a.maskA)) ) if (e.solidCollision) if (1 == e.maskA.groupID || 1 == e.maskB.groupID) { if (e.thisFromLeft || e.thisFromRight) if (a.thisFromLeft || a.thisFromRight) return c; if (e.thisFromTop || e.thisFromBottom) if (a.thisFromTop || a.thisFromBottom) return c; } else return c; else return c; } return -1; }, resetReal: function (a, b) { this.realX = a; this.realY = b; this.colX = this.realX - Math.floor(this.cacheWidth / 2) - this.currOffset.x; this.colY = this.realY - Math.floor(this.cacheHeight / 2) - this.currOffset.y; }, adjustByWidth: function (a) { if ( null != this._mask && null != this._mask.lastCheckedMask && this._mask.lastCheckedMask instanceof id ) { var b = this._mask.lastCheckedMask; return a ? this.cacheWidth / 2 - (this.cacheWidth - (b._x + b._width)) : this.cacheWidth / 2 - b._x; } return this.cacheWidth / 2; }, adjustByHeight: function (a) { if ( null != this._mask && null != this._mask.lastCheckedMask && this._mask.lastCheckedMask instanceof id ) { var b = this._mask.lastCheckedMask; return a ? this.cacheHeight / 2 - (this.cacheHeight - (b._y + b._height)) : this.cacheHeight / 2 - b._y; } return this.cacheHeight / 2; }, getAllCollisionInfo: function (a, b) { for (var c = null; this.listChecked < this.collidedList.length; ) { var e = uc.get(); this.colMask = this.collidedList[this.listChecked]._mask; this.fillCollisionInfo(e, this.collidedList[this.listChecked], a, b); this.addCollision(e); if (null == e.linkedCollision) { var f = uc.get(); e.switchData(f); this.collidedList[this.listChecked].addCollision(f); } e.solidCollision && (c = e); this.listChecked++; } return c; }, moveActorBy: function (a, b, c, e) { null == e && (e = !1); null == c && (c = !0); if (0 != a || 0 != b) { this.clearCollisionInfoList(); if (!c && this.collidable && null != this.HITBOX.collideTypes) { c = this.HITBOX.collideTypes; if (0 != a) { var f = 0 < a ? Math.ceil(this.realX + a) : Math.floor(this.realX + a); this.clearCollidedList(); if (e || null != this.collideTypes(c, f, this.realY)) for (this.clearCollidedList(); 0 != a; ) { var d = 1 <= a || -1 >= a ? 1 : Math.abs(a); d = 0 < a ? d : -d; f = 0 < d ? Math.ceil(this.realX + d) : Math.floor(this.realX + d); var p = this.collide(-2, f, this.realY); null != p && x.__cast(p, pd).addActor(this); p = this.collideTypes(c, f, this.realY); if (null != p && ((f = this.getAllCollisionInfo(d, 0)), null != f)) { this.xSpeed = 0; f.useBounds && (this.realX = 0 < d ? f.bounds.x - Math.ceil(this.adjustByWidth(!0)) : f.bounds.x + f.bounds.width + Math.floor(this.adjustByWidth(!1))); break; } this.realX += d; a -= d; } else this.realX += a; } if (0 != b) if ( ((f = 0 < b ? Math.ceil(this.realY + b) : Math.floor(this.realY + b)), this.clearCollidedList(), e || null != this.collideTypes(c, this.realX, f)) ) for (this.clearCollidedList(); 0 != b; ) { d = 1 <= b || -1 >= b ? 1 : Math.abs(b); d = 0 < b ? d : -d; f = 0 < d ? Math.ceil(this.realY + d) : Math.floor(this.realY + d); p = this.collide(-2, this.realX, f); null != p && x.__cast(p, pd).addActor(this); p = this.collideTypes(c, this.realX, f); if (null != p && ((f = this.getAllCollisionInfo(0, d)), null != f)) { this.ySpeed = 0; f.useBounds && (this.realY = 0 < d ? f.bounds.y - Math.ceil(this.adjustByHeight(!0)) : f.bounds.y + f.bounds.height + Math.floor(this.adjustByHeight(!1))); break; } this.realY += d; b -= d; } else this.realY += b; } else (this.realX += a), (this.realY += b); this.resetReal(this.realX, this.realY); } }, moveActorTo: function (a, b, c, e) { null == e && (e = !1); null == c && (c = !0); this.moveActorBy(a - this.realX, b - this.realY, c, e); }, moveActorTowards: function (a, b, c, e, f) { null == f && (f = !1); null == e && (e = !0); this._point.x = a - this.realX; this._point.y = b - this.realY; this._point.normalize(c); this.moveActorBy(this._point.x, this._point.y, e, f); }, moveCollideX: function (a, b) {}, moveCollideY: function (a, b) {}, fillCollisionInfo: function (a, b, c, e) { if (b instanceof pd) b.addActor(this); else { a.thisActor = a.actorA = this; a.otherActor = a.actorB = b; a.maskA = this._mask; a.maskB = this.colMask; a.solidCollision = this._mask.solid && this.colMask.solid; a.groupA = this._mask.lastCheckedMask.groupID; a.groupB = this._mask.lastCheckedMask.lastColID; var f = uc.collisionResponses, d = this.getGroupID(); f = f.h[d]; var p = !1, l = !1; null != f ? ((d = b.getGroupID()), (d = null != f.h[d])) : (d = !1); d && ((d = b.getGroupID()), 'sensor' == f.h[d] ? ((a.solidCollision = !1), (p = !0)) : (l = a.solidCollision = !0)); null != this.colMask && ((a.useBounds = !0), (a.bounds.x = this.colMask.lastBounds.x), (a.bounds.y = this.colMask.lastBounds.y), (a.bounds.width = this.colMask.lastBounds.width), (a.bounds.height = this.colMask.lastBounds.height)); 0 != c && (1e8 == b.ID ? ((a.thisFromLeft = 0 > c), (a.thisFromRight = 0 < c)) : ((a.thisFromLeft = b.colX < this.colX), (a.thisFromRight = b.colX > this.colX)), (a.otherFromLeft = !a.thisFromLeft), (a.otherFromRight = !a.thisFromRight), (a.thisFromTop = a.otherFromTop = !1), (a.thisFromBottom = a.otherFromBottom = !1)); 0 != e && (1e8 == b.ID ? ((a.thisFromTop = 0 > e), (a.thisFromBottom = 0 < e)) : ((a.thisFromTop = b.colY < this.colY), (a.thisFromBottom = b.colY > this.colY)), (a.otherFromTop = !a.thisFromTop), (a.otherFromBottom = !a.thisFromBottom), (a.thisFromLeft = a.otherFromLeft = !1), (a.thisFromRight = a.otherFromRight = !1)); a.thisCollidedWithActor = !0; a.thisCollidedWithTile = 1e8 == b.ID; a.thisCollidedWithSensor = null != a ? p || (!l && !a.maskB.solid) : !1; a.thisCollidedWithTerrain = !1; a.otherCollidedWithActor = !0; a.otherCollidedWithTile = 1e8 == b.ID; a.otherCollidedWithSensor = null != a ? !a.maskA.solid : !1; a.otherCollidedWithTerrain = !1; } }, handleCollisionsSimple: function () { if (0 < this.collisionsCount) for (var a = this.simpleCollisions.iterator(); a.hasNext(); ) { var b = a.next(); if (null != b && 1 != b.remove) { tb.lastCollided = b.otherActor; if (0 < this.whenCollided.length) for ( this.whenCollided._dispatchIndex = 0; this.whenCollided._dispatchIndex < this.whenCollided.length; ) { try { this.whenCollided.listeners[this.whenCollided._dispatchIndex](b); } catch (c) { if (((la.lastError = c), 'string' != typeof M.caught(c).unwrap())) throw c; } ++this.whenCollided._dispatchIndex; } this.engine.handleCollision(this, b); } } }, HITBOX: null, _mask: null, colMask: null, _x: null, _y: null, _moveX: null, _moveY: null, _point: null, simpleCollisions: null, collidedList: null, listChecked: null, __class__: tb, __properties__: r(Ca.prototype.__properties__, { set_shape: 'set_shape', get_shape: 'get_shape' }) }); var ko = function (a, b, c, e) { this.ID = a; this.name = b; this.allScenes = c; this.members = e; this.active = !0; }; h['com.stencyl.models.Atlas'] = ko; ko.__name__ = 'com.stencyl.models.Atlas'; ko.prototype = { ID: null, name: null, allScenes: null, active: null, members: null, __class__: ko }; var Uh = function () {}; h['com.stencyl.models.Background'] = Uh; Uh.__name__ = 'com.stencyl.models.Background'; Uh.__isInterface__ = !0; Uh.prototype = { update: null, draw: null, __class__: Uh }; var hl = function (a, b) { this.group1 = a; this.group2 = b; }; h['com.stencyl.models.CollisionGroupDef'] = hl; hl.__name__ = 'com.stencyl.models.CollisionGroupDef'; hl.prototype = { group1: null, group2: null, __class__: hl }; var jd = function (a, b, c) { this.ID = a; this.atlasID = c; this.name = b; this.sID = a + ',' + b; }; h['com.stencyl.models.Resource'] = jd; jd.__name__ = 'com.stencyl.models.Resource'; jd.prototype = { ID: null, atlasID: null, name: null, sID: null, toString: function () { return this.sID; }, isAtlasActive: function () { var a = Fa.get().atlases.h[this.atlasID]; return null == a ? !1 : a.active; }, loadGraphics: function () {}, unloadGraphics: function () {}, reloadGraphics: function (a) { this.unloadGraphics(); this.loadGraphics(); }, __class__: jd }; var Bf = function (a, b, c, e) { jd.call(this, a, c, b); this.isDefault = e; this.isAtlasActive() && this.loadGraphics(); }; h['com.stencyl.models.Font'] = Bf; Bf.__name__ = 'com.stencyl.models.Font'; Bf.resetStatics = function () { Bf.defaultFont = null; }; Bf.__super__ = jd; Bf.prototype = r(jd.prototype, { font: null, fontScale: null, letterSpacing: null, isDefault: null, graphicsLoaded: null, getHeight: function () { return null != this.font ? (this.font.getFontHeight() * this.fontScale) | 0 : 0; }, getTextWidth: function (a) { return null != this.font ? this.font.getTextWidth(a, this.letterSpacing, this.fontScale) : 0; }, loadGraphics: function () { if (!this.graphicsLoaded) { if (this.isDefault) { var a = Da.getText('assets/graphics/default-font.fnt'); a = T.parse(a); Bf.defaultFont = this.font = new kf().loadAngelCode( Da.getBitmapData('assets/graphics/default-font.html'), a ); this.fontScale = k.SCALE; this.letterSpacing = 0; Bf.defaultFont.isDefault = !0; } else { a = Da.getText('assets/graphics/' + k.IMG_BASE + '/font-' + this.ID + '.fnt'); a = T.parse(a); var b = Da.getBitmapData( 'assets/graphics/' + k.IMG_BASE + '/font-' + this.ID + '.png', !1 ); this.font = new kf().loadAngelCode(b, a); this.fontScale = 1; this.letterSpacing = 0; } this.graphicsLoaded = !0; } }, unloadGraphics: function () { this.graphicsLoaded && ((this.font = Bf.defaultFont), (this.fontScale = 1), (this.letterSpacing = 0), (this.graphicsLoaded = !1)); }, reloadGraphics: function (a) { jd.prototype.reloadGraphics.call(this, a); }, setLetterSpacing: function (a) { this.letterSpacing = a | 0; }, isBitmapFont: function (a) { null == a && ((a = Da.getText('assets/graphics/' + k.IMG_BASE + '/font-' + this.ID + '.fnt')), (a = T.parse(a))); for (a = a.elements(); a.hasNext(); ) { var b = a.next(); if (b.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == b.nodeType ? 'null' : ua.toString(b.nodeType)) ); if ('font' == b.nodeName) for (b = b.elements(); b.hasNext(); ) { var c = b.next(); if (c.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == c.nodeType ? 'null' : ua.toString(c.nodeType)) ); if ('info' == c.nodeName) for (c = c.attributes(); c.hasNext(); ) if ('lspace' == c.next()) return !0; } } return !1; }, __class__: Bf }); var Fa = function () { var a = lc.get().gameMbs.getRoot(); this.shapes = this.readShapes(a); this.atlases = this.readAtlases(a); this.autotileFormats = this.readAutotileFormats(a); this.groups = this.readGroups(a); this.groups.push(new xh(-2, 'Regions')); this.groups.push(new xh(0, 'Players')); this.groups.push(new xh(1, 'Terrain')); this.groups.push(new xh(2, 'Doodads')); this.groups.push(new xh(3, 'Actors')); this.groupsCollidesWith = new Za(); this.collisionGroups = this.readCollisionGroups(a); Fa.collisionMap = []; for (var b = 0, c = 0, e = this.groups; c < e.length; ) { var f = e[c]; ++c; b = Math.max(f.ID | 0, b) | 0; } ++b; c = 0; for (e = b; c < e; ) { f = c++; Fa.collisionMap.push([]); for (var d = 0, p = b; d < p; ) d++, Fa.collisionMap[f].push(!1); } if (k.NO_PHYSICS) for (c = 0, e = this.groups; c < e.length; ) (f = e[c]), ++c, this.collisionGroups.push(new hl(f.ID, -2)); c = 0; for (e = this.collisionGroups; c < e.length; ) { f = e[c]; ++c; b = f.group1; f = f.group2; this.groupsCollidesWith.h.hasOwnProperty(b) || (this.groupsCollidesWith.h[b] = []); this.groupsCollidesWith.h.hasOwnProperty(f) || (this.groupsCollidesWith.h[f] = []); if (!k.NO_PHYSICS || (0 <= b && 0 <= f)) (Fa.collisionMap[b][f] = !0), (Fa.collisionMap[f][b] = !0); this.groupsCollidesWith.h[b].push(f); this.groupsCollidesWith.h[f].push(b); } this.gameAttributes = Fa.readGameAttributes(a); lc.get().gameMbs = null; }; h['com.stencyl.models.GameModel'] = Fa; Fa.__name__ = 'com.stencyl.models.GameModel'; Fa.resetStatics = function () { Fa.instance = null; Fa.collisionMap = null; }; Fa.get = function () { null == Fa.instance && (Fa.instance = new Fa()); return Fa.instance; }; Fa.readGameAttributes = function (a) { return te.readMap(a.getGameAttributes()); }; Fa.prototype = { groups: null, groupsCollidesWith: null, collisionGroups: null, gameAttributes: null, shapes: null, atlases: null, scenes: null, autotileFormats: null, loadScenes: function () { this.scenes = new Za(); for (var a = lc.get().sceneListMbs.getRoot(), b = 0, c = a.length(); b < c; ) { b++; var e = a.getNextObject(), f = e.getId(), d = this.scenes; e = new il(f, e.getName()); d.h[f] = e; } lc.get().sceneListMbs = null; }, readShapes: function (a) { var b = new Za(); a = a.getShapes(); for (var c = 0, e = a.length(); c < e; ) { c++; var f = a.getNextObject(), d = f.getPoints(), p = [], l = 0; for (d = wd.readPoints(d); l < d.length; ) { var v = d[l]; ++l; p.push(new P(3.1 * v.x, 3.1 * v.y)); } wd.EnsureCorrectVertexDirection(p); l = new Db(); l.setAsArray(p, p.length); f = f.getId(); b.h[f] = l; } return b; }, readAtlases: function (a) { var b = new Za(); a = a.getAtlases(); for (var c = 0, e = a.length(); c < e; ) { c++; var f = a.getNextObject(), d = f.getId(), p = f.getName(), l = f.getAllScenes(); f = f.getMembers(); for (var v = [], n = 0, k = f.length(); n < k; ) n++, v.push(f.readInt()); p = new ko(d, p, l, v); b.h[d] = p; } return b; }, readAutotileFormats: function (a) { var b = new Za(); a = a.getAutotileFormats(); for (var c = 0, e = a.length(); c < e; ) { c++; for ( var f = a.getNextObject(), d = f.getName(), p = f.getId(), l = f.getAcross(), v = f.getDown(), n = [], k = [], m = f.getCorners(), h = 0, t = m.length(); h < t; ) { h++; var u = m.getNextObject(), q = u.getTopLeft(); q = new na(q.getX(), q.getY()); var r = u.getTopRight(); r = new na(r.getX(), r.getY()); var w = u.getBottomLeft(); w = new na(w.getX(), w.getY()); u = u.getBottomRight(); k.push(new lo(q, r, w, new na(u.getX(), u.getY()))); } f = f.getFlags(); m = 0; for (h = f.length(); m < h; ) (t = m++), (n[t] = k[f.readInt()]); d = new mo(d, p, l, v, n); b.h[p] = d; } return b; }, readGroups: function (a) { var b = []; a = a.getGroups(); for (var c = 0, e = a.length(); c < e; ) { c++; var f = a.getNextObject(); b.push(new xh(f.getId(), f.getName())); } return b; }, readCollisionGroups: function (a) { var b = []; a = a.getCgroups(); for (var c = 0, e = a.length(); c < e; ) { c++; var f = a.getNextObject(); b.push(new hl(f.getGroup1(), f.getGroup2())); } return b; }, __class__: Fa }; var xh = function (a, b) { this.ID = a; this.name = b; }; h['com.stencyl.models.GroupDef'] = xh; xh.__name__ = 'com.stencyl.models.GroupDef'; xh.prototype = { ID: null, name: null, __class__: xh }; var Ha = function () { this.isPressed = !1; this.outerAlphaWhenReleased = this.outerAlphaWhenPressed = this.innerAlphaWhenReleased = this.innerAlphaWhenPressed = 1; this.outerImage = this.innerImage = null; this.hideWhenReleased = !1; this.joystickDistance = this.joystickDirection = this.joystickDefaultDirection = this.joystickType = 0; Ca.call(this); }; h['com.stencyl.models.Joystick'] = Ha; Ha.__name__ = 'com.stencyl.models.Joystick'; Ha.resetStatics = function () { Ha.joystickMap = null; Ha.fixedCenter = 0; Ha.showWherePressed = 1; Ha.viewOffsetX = Ha.viewOffsetY = 0; Ha.initialized = !1; }; Ha.addJoystick = function (a, b, c, e, f, d, p, l, v) { null == v && (v = !1); null == l && (l = 0); null == p && (p = 0); null == d && (d = 0); null == f && (f = 0); null == e && (e = 0); null != Ha.joystickMap && Ha.joystickMap.h.hasOwnProperty(a) && Ha.removeJoystick(a); var g = Object.create(Ha.prototype); g.start(); g.id = a; g.joystickTouchID = -1; g.joystickDistance = 0; g.joystickDirection = 0; g.joystickDefaultDirection = 0; g.joystickType = e; g.center = new na(b * k.SCALE, c * k.SCALE); Ha.joystickMap.h[a] = g; Ha.setJoystickImage(a, !0, 'outer-joystick'); Ha.setJoystickImage(a, !1, 'inner-joystick'); g.outerAlphaWhenPressed = 1; g.outerAlphaWhenReleased = 1; g.innerAlphaWhenPressed = 1; g.innerAlphaWhenReleased = 1; g.joystickType == Ha.showWherePressed && (g.joystickBounds = new fa( f * k.SCALE + Ha.viewOffsetX, d * k.SCALE + Ha.viewOffsetY, p * k.SCALE, l * k.SCALE )); v && ((g.hideWhenReleased = !0), g.outerImage.set_visible(!1), g.innerImage.set_visible(!1)); }; Ha.removeJoystick = function (a) { if (Ha.joystickMap.h.hasOwnProperty(a)) { var b = Ha.joystickMap.h[a], c = k.engine.root; Ha.joystickMap.remove(a); c.removeChild(b.outerImage); c.removeChild(b.innerImage); } }; Ha.getJoystickDisDir = function (a, b) { null == b && (b = !0); var c = 0; Ha.joystickMap.h.hasOwnProperty(a) && ((a = Ha.joystickMap.h[a]), (c = b ? a.joystickDistance : a.joystickDirection)); return c; }; Ha.setJoystickCenter = function (a, b, c) { Ha.joystickMap.h.hasOwnProperty(a) && ((a = Ha.joystickMap.h[a]), (a.center = new na(b * k.SCALE, c * k.SCALE)), a.outerImage.set_x(a.center.x - 0.5 * a.outerImage.get_width()), a.outerImage.set_y(a.center.y - 0.5 * a.outerImage.get_height()), a.innerImage.set_x(a.center.x - 0.5 * a.innerImage.get_width()), a.innerImage.set_y(a.center.y - 0.5 * a.innerImage.get_height())); }; Ha.getJoystickCenter = function (a, b) { null == b && (b = !0); var c = 0; Ha.joystickMap.h.hasOwnProperty(a) && ((a = Ha.joystickMap.h[a]), (c = (b ? a.center.x : a.center.y) / k.SCALE)); return c; }; Ha.setJoystickRadius = function (a, b, c) { null == b && (b = !0); Ha.joystickMap.h.hasOwnProperty(a) && ((a = Ha.joystickMap.h[a]), b && a.outerRadius != c * k.SCALE ? (a.outerRadius = c * k.SCALE) : a.innerRadius != c * k.SCALE && (a.innerRadius = c * k.SCALE)); }; Ha.getJoystickRadius = function (a, b) { null == b && (b = !0); var c = 0; Ha.joystickMap.h.hasOwnProperty(a) && ((a = Ha.joystickMap.h[a]), (c = (b ? a.innerRadius : a.outerRadius) / k.SCALE)); return c; }; Ha.alwaysHideRJ = function (a) { Ha.joystickMap.h.hasOwnProperty(a) && ((a = Ha.joystickMap.h[a]), (a.hideWhenReleased = !0), a.outerImage.set_visible(!1), a.innerImage.set_visible(!1)); }; Ha.setDefaultDirection = function (a, b) { Ha.joystickMap.h.hasOwnProperty(a) && ((a = Ha.joystickMap.h[a]), (a.joystickDefaultDirection = b), (a.joystickDirection = b)); }; Ha.isJoystickPressed = function (a) { return Ha.joystickMap.h.hasOwnProperty(a) ? Ha.joystickMap.h[a].isPressed : !1; }; Ha.setTouchRegionForRJ = function (a, b, c, e, f) { null == f && (f = 0); null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); Ha.joystickMap.h.hasOwnProperty(a) && ((a = Ha.joystickMap.h[a]), a.joystickType == Ha.showWherePressed && (a.joystickBounds = new fa( b * k.SCALE + Ha.viewOffsetX, c * k.SCALE + Ha.viewOffsetY, e * k.SCALE, f * k.SCALE ))); }; Ha.getTouchRegionPropertyForRJ = function (a, b) { return Ha.joystickMap.h.hasOwnProperty(a) && ((a = Ha.joystickMap.h[a]), a.joystickType == Ha.showWherePressed) ? 1 == b ? a.joystickBounds.x - Ha.viewOffsetX : 2 == b ? a.joystickBounds.y - Ha.viewOffsetY : 3 == b ? a.joystickBounds.width / k.SCALE : a.joystickBounds.height / k.SCALE : 0; }; Ha.setJoystickImage = function (a, b, c) { if (Ha.joystickMap.h.hasOwnProperty(a)) { a = Ha.joystickMap.h[a]; var e = k.engine.root; c = 1 == k.SCALE ? Da.getBitmapData('assets/data/' + c + '.png') : 1.5 == k.SCALE ? Da.getBitmapData('assets/data/' + c + '@1.5x.png') : 2 == k.SCALE ? Da.getBitmapData('assets/data/' + c + '@2x.png') : Da.getBitmapData('assets/data/' + c + '@4x.png'); b ? (null != a.outerImage && e.removeChild(a.outerImage), (a.outerImage = new Mc(c)), a.outerImage.set_x(a.center.x - 0.5 * a.outerImage.get_width()), a.outerImage.set_y(a.center.y - 0.5 * a.outerImage.get_height()), e.addChild(a.outerImage), (a.outerRadius = 0.5 * a.outerImage.get_width())) : (null != a.innerImage && e.removeChild(a.innerImage), (a.innerImage = new Mc(c)), a.innerImage.set_x(a.center.x - 0.5 * a.innerImage.get_width()), a.innerImage.set_y(a.center.y - 0.5 * a.innerImage.get_height()), e.addChild(a.innerImage), (a.innerRadius = a.outerRadius - 0.5 * a.innerImage.get_width())); } }; Ha.setJoystickAlpha = function (a, b, c, e) { null == e && (e = !0); null == c && (c = 1); null == b && (b = !0); Ha.joystickMap.h.hasOwnProperty(a) && ((a = Ha.joystickMap.h[a]), b ? e ? ((a.outerAlphaWhenReleased = c), a.outerImage.set_alpha(c)) : (a.outerAlphaWhenPressed = c) : e ? ((a.innerAlphaWhenReleased = c), a.innerImage.set_alpha(c)) : (a.innerAlphaWhenPressed = c)); }; Ha.__super__ = Ca; Ha.prototype = r(Ca.prototype, { center: null, outerRadius: null, innerRadius: null, joystickBounds: null, joystickTouchID: null, id: null, joystickDistance: null, joystickDirection: null, joystickDefaultDirection: null, joystickType: null, hideWhenReleased: null, outerImage: null, innerImage: null, outerAlphaWhenReleased: null, outerAlphaWhenPressed: null, innerAlphaWhenReleased: null, innerAlphaWhenPressed: null, isPressed: null, start: function () { Ha.initialized || ((Ha.initialized = !0), (Ha.joystickMap = new Za()), (Ha.viewOffsetX = k.screenOffsetX), (Ha.viewOffsetY = k.screenOffsetY)); ue.get_supportsTouchEvents() ? (k.stage.addEventListener('touchBegin', q(this, this.onTouchBegin)), k.stage.addEventListener('touchMove', q(this, this.onTouchMove)), k.stage.addEventListener('touchEnd', q(this, this.onTouchEnd)), (ue.inputMode = 2)) : (k.stage.addEventListener('mouseDown', q(this, this.onMouseDown)), k.stage.addEventListener('mouseMove', q(this, this.onMouseMove)), k.stage.addEventListener('mouseUp', q(this, this.onMouseUp))); }, stop: function () { ue.get_supportsTouchEvents() ? (k.stage.removeEventListener('touchBegin', q(this, this.onTouchBegin)), k.stage.removeEventListener('touchMove', q(this, this.onTouchMove)), k.stage.removeEventListener('touchEnd', q(this, this.onTouchEnd))) : (k.stage.removeEventListener('mouseDown', q(this, this.onMouseDown)), k.stage.removeEventListener('mouseMove', q(this, this.onMouseMove)), k.stage.removeEventListener('mouseUp', q(this, this.onMouseUp))); Ha.joystickMap = null; }, onTouchBegin: function (a) { this.onBegin(a.stageX, a.stageY, a.touchPointID); }, onTouchMove: function (a) { this.onMove(a.stageX, a.stageY, a.touchPointID); }, onTouchEnd: function (a) { this.onEnd(a.stageX, a.stageY, a.touchPointID); }, onMouseDown: function (a) { this.onBegin(a.stageX, a.stageY, 0); }, onMouseMove: function (a) { this.onMove(a.stageX, a.stageY, 0); }, onMouseUp: function (a) { this.onEnd(a.stageX, a.stageY, 0); }, onBegin: function (a, b, c) { if (-1 == this.joystickTouchID) if ( ((a /= k.screenScaleX), (b /= k.screenScaleY), this.outerImage.set_alpha(this.outerAlphaWhenPressed), this.innerImage.set_alpha(this.innerAlphaWhenPressed), this.joystickType == Ha.fixedCenter) ) { var e = Math.sqrt( Math.pow(this.center.x + Ha.viewOffsetX - a, 2) + Math.pow(this.center.y + Ha.viewOffsetY - b, 2) ), f = Math.atan2( this.center.y + Ha.viewOffsetY - b, this.center.x + Ha.viewOffsetX - a ); e > this.outerRadius || (e > this.outerRadius - this.innerRadius ? ((e = this.outerRadius - this.innerRadius), this.innerImage.set_x( this.center.x - Math.cos(f) * (this.outerRadius - this.innerRadius) - 0.5 * this.innerImage.get_width() ), this.innerImage.set_y( this.center.y - Math.sin(f) * (this.outerRadius - this.innerRadius) - 0.5 * this.innerImage.get_height() )) : (this.innerImage.set_x(a - Ha.viewOffsetX - 0.5 * this.innerImage.get_width()), this.innerImage.set_y(b - Ha.viewOffsetY - 0.5 * this.innerImage.get_height())), (this.isPressed = !0), (this.joystickTouchID = c), (this.joystickDistance = e / (this.outerRadius - this.innerRadius)), (this.joystickDirection = (180 * f) / 3.1415926535 + 180)); } else this.joystickType != Ha.showWherePressed || a < this.joystickBounds.x || a > this.joystickBounds.x + this.joystickBounds.width || b < this.joystickBounds.y || b > this.joystickBounds.y + this.joystickBounds.height || ((this.isPressed = !0), (this.center.x = a - Ha.viewOffsetX), (this.center.y = b - Ha.viewOffsetY), this.outerImage.set_x(this.center.x - 0.5 * this.outerImage.get_width()), this.outerImage.set_y(this.center.y - 0.5 * this.outerImage.get_height()), this.innerImage.set_x(this.center.x - 0.5 * this.innerImage.get_width()), this.innerImage.set_y(this.center.y - 0.5 * this.innerImage.get_height()), this.hideWhenReleased && (this.outerImage.set_visible(!0), this.innerImage.set_visible(!0)), (this.joystickTouchID = c)); }, onMove: function (a, b, c) { if (c == this.joystickTouchID) { a /= k.screenScaleX; b /= k.screenScaleY; c = Math.sqrt( Math.pow(this.center.x + Ha.viewOffsetX - a, 2) + Math.pow(this.center.y + Ha.viewOffsetY - b, 2) ); var e = Math.atan2( this.center.y + Ha.viewOffsetY - b, this.center.x + Ha.viewOffsetX - a ); c > this.outerRadius - this.innerRadius ? ((c = this.outerRadius - this.innerRadius), this.innerImage.set_x( this.center.x - Math.cos(e) * (this.outerRadius - this.innerRadius) - 0.5 * this.innerImage.get_width() ), this.innerImage.set_y( this.center.y - Math.sin(e) * (this.outerRadius - this.innerRadius) - 0.5 * this.innerImage.get_height() )) : (this.innerImage.set_x(a - Ha.viewOffsetX - 0.5 * this.innerImage.get_width()), this.innerImage.set_y(b - Ha.viewOffsetY - 0.5 * this.innerImage.get_height())); this.joystickDistance = c / (this.outerRadius - this.innerRadius); this.joystickDirection = (180 * e) / 3.1415926535 + 180; } }, onEnd: function (a, b, c) { c == this.joystickTouchID && ((this.joystickTouchID = -1), (this.isPressed = !1), this.outerImage.set_alpha(this.outerAlphaWhenReleased), this.innerImage.set_alpha(this.innerAlphaWhenReleased), (a = this.outerImage.get_x()), (this.center.x = a + this.outerRadius), (a = this.outerImage.get_y()), (this.center.y = a + this.outerRadius), this.innerImage.set_x(this.center.x - 0.5 * this.innerImage.get_width()), this.innerImage.set_y(this.center.y - 0.5 * this.innerImage.get_height()), this.hideWhenReleased && (this.outerImage.set_visible(!1), this.innerImage.set_visible(!1)), (this.joystickDistance = 0), (this.joystickDirection = this.joystickDefaultDirection)); }, __class__: Ha }); var Mn = { _new: function (a) { return a; }, fromInt: function (a) { return Mn._new(a); }, fromString: function (a) { switch (a) { case 'MINIMAL_PHYSICS': return 2; case 'NORMAL_PHYSICS': return 0; case 'SIMPLE_PHYSICS': return 1; default: return 0; } }, toString: function (a) { switch (a) { case 0: return 'NORMAL_PHYSICS'; case 1: return 'SIMPLE_PHYSICS'; case 2: return 'MINIMAL_PHYSICS'; default: return 'NORMAL_PHYSICS'; } } }, pd = function (a, b, c, e, f) { tb.call( this, a, -1, -2, b, c, -1, k.NO_PHYSICS ? f.width : 1, k.NO_PHYSICS ? f.height : 1, null, null, null, null, !1, !1, !1, !1, k.NO_PHYSICS ? null : e[0], k.NO_PHYSICS ); this.isRegion = this.alwaysSimulate = !0; this.solid = this.isTerrainRegion = !1; this.set_name('Region'); this.simpleBounds = f; this.copy = e[0]; this.containedActors = new Za(); this.whenActorEntered = new Fc(); this.whenActorExited = new Fc(); this.justAdded = []; this.justRemoved = []; k.NO_PHYSICS || (this.body.setSleepingAllowed(!0), this.body.setAwake(!1), this.body.setIgnoreGravity(!0)); a = 0; var d = 0; if (k.NO_PHYSICS) { var p = f.width; f = f.height; this.cacheWidth = this.originalWidth = this.regionWidth = Math.round(Math.abs(a - p)); this.cacheHeight = this.originalHeight = this.regionHeight = Math.round(Math.abs(d - f)); this.currOffset.x = -(this.cacheWidth / 2); this.currOffset.y = -(this.cacheHeight / 2); this.resetReal(b, c); } else if (e[0] instanceof Db) { this.isCircle = !1; b = new Xe(); b.setIdentity(); c = new ka(); x.__cast(e[0], Db).computeAABB(c, b); a = c.lowerBound.x; p = c.upperBound.x; d = c.lowerBound.y; f = c.upperBound.y; for (var l = 0, v = e.length; l < v; ) { var n = l++, h = new If(); h.isSensor = !0; h.userData = this; h.shape = e[n]; h.friction = 1; h.density = 0.1; h.restitution = 0; h.groupID = -1e3; this.body.createFixture(h); x.__cast(e[n], Db).computeAABB(c, b); a = Math.min(a, c.lowerBound.x); p = Math.max(p, c.upperBound.x); d = Math.min(d, c.lowerBound.y); f = Math.max(f, c.upperBound.y); } this.cacheWidth = this.originalWidth = this.regionWidth = Math.round(k.toPixelUnits(Math.abs(a - p))); this.cacheHeight = this.originalHeight = this.regionHeight = Math.round(k.toPixelUnits(Math.abs(d - f))); } else e[0] instanceof Lc && ((this.isCircle = !0), (this.cacheWidth = this.originalWidth = this.regionWidth = k.toPixelUnits(2 * x.__cast(e[0], Lc).m_radius)), (this.cacheHeight = this.originalHeight = this.regionHeight = k.toPixelUnits(2 * x.__cast(e[0], Lc).m_radius))); }; h['com.stencyl.models.Region'] = pd; pd.__name__ = 'com.stencyl.models.Region'; pd.__super__ = tb; pd.prototype = r(tb.prototype, { isCircle: null, containedActors: null, copy: null, simpleBounds: null, regionWidth: null, regionHeight: null, originalWidth: null, originalHeight: null, whenActorEntered: null, whenActorExited: null, justAdded: null, justRemoved: null, containsActor: function (a) { return null != a ? this.containedActors.h.hasOwnProperty(a.ID) : !1; }, getContainedActors: function () { return this.containedActors; }, addActor: function (a) { if (null != a && -1 != a.ID && !this.containedActors.h.hasOwnProperty(a.ID)) { this.containedActors.h[a.ID] = a.ID; var b = X.indexOf(this.justRemoved, a); -1 == b ? this.justAdded.push(a) : this.justRemoved.splice(b, 1); } }, removeActor: function (a) { null != a && -1 != a.ID && -1 == X.indexOf(this.justRemoved, a) && (this.containedActors.remove(a.ID), this.justRemoved.push(a)); }, follow: function (a) { var b = a.realY + a.cacheHeight / 2; this.setX(a.realX + a.cacheWidth / 2); this.setY(b); }, resetSize: function () { this.setRegionSize(this.originalWidth, this.originalHeight); }, setRegionDiameter: function (a) { this.setRegionSize(a, a); }, setRegionSize: function (a, b) { var c = this.regionWidth, e = this.regionHeight; a = k.toPhysicalUnits(a); b = k.toPhysicalUnits(b); if (this.isCircle) { var f = new Lc(); f.m_radius = a / 2; } else (f = new Db()), f.setAsBox(a / 2, b / 2); var d = new If(); d.isSensor = !0; d.userData = this; d.shape = f; d.groupID = -1e3; if (null != this.body && null != this.body.getFixtureList()) { for (; 0 < this.body.m_fixtureCount; ) this.body.DestroyFixture(this.body.getFixtureList()); this.body.createFixture(d); this.cacheWidth = this.regionWidth = k.toPixelUnits(a); this.cacheHeight = this.regionHeight = k.toPixelUnits(b); } a = this.regionWidth - c; e = this.regionHeight - e; this.setLocation(this.getX() + a / 2, this.getY() + e / 2); }, setLocation: function (a, b) { this.setX(a + this.regionWidth / 2); this.setY(b + this.regionHeight / 2); }, getWidth: function () { return this.regionWidth; }, getHeight: function () { return this.regionHeight; }, isMouseOver: function () { var a = (D.mouseX + k.cameraX) / k.SCALE, b = (D.mouseY + k.cameraY) / k.SCALE, c = this.getX(), e = this.getY(); return a >= c && b >= e && a < c + this.regionWidth ? b < e + this.regionHeight : !1; }, innerUpdate: function (a, b) { this.clearCollisionInfoList(); if (k.NO_PHYSICS) for (a = this.containedActors.iterator(); a.hasNext(); ) (b = a.next()), (b = k.engine.getActor(b)), null == this.HITBOX || null == b || this.HITBOX.collide(b.HITBOX) || this.removeActor(b); for (; null != this.justAdded && 0 < this.justAdded.length; ) if (((b = x.__cast(this.justAdded.pop(), tb)), 0 < this.whenActorEntered.length)) for ( this.whenActorEntered._dispatchIndex = 0; this.whenActorEntered._dispatchIndex < this.whenActorEntered.length; ) { try { this.whenActorEntered.listeners[this.whenActorEntered._dispatchIndex](b); } catch (c) { if (((la.lastError = c), 'string' != typeof M.caught(c).unwrap())) throw c; } ++this.whenActorEntered._dispatchIndex; } for (; null != this.justRemoved && 0 < this.justRemoved.length; ) if (((b = x.__cast(this.justRemoved.pop(), tb)), 0 < this.whenActorExited.length)) for ( this.whenActorExited._dispatchIndex = 0; this.whenActorExited._dispatchIndex < this.whenActorExited.length; ) { try { this.whenActorExited.listeners[this.whenActorExited._dispatchIndex](b); } catch (c) { if (((la.lastError = c), 'string' != typeof M.caught(c).unwrap())) throw c; } ++this.whenActorExited._dispatchIndex; } if (null != this.whenMousedOver && 0 < this.whenMousedOver.length) if (this.isMouseOver()) { if (0 >= this.mouseState) { if (((this.mouseState = 1), 0 < this.whenMousedOver.length)) for ( this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length; ) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex]( this.mouseState ); } catch (c) { if (((la.lastError = c), 'string' != typeof M.caught(c).unwrap())) throw c; } ++this.whenMousedOver._dispatchIndex; } } else this.mouseState = 2; if (D.mousePressed) { if (((this.mouseState = 3), 0 < this.whenMousedOver.length)) for ( this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length; ) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex]( this.mouseState ); } catch (c) { if (((la.lastError = c), 'string' != typeof M.caught(c).unwrap())) throw c; } ++this.whenMousedOver._dispatchIndex; } } else if (D.mouseDown && ((this.mouseState = 4), 0 < this.whenMousedOver.length)) for ( this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length; ) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex]( this.mouseState ); } catch (c) { if (((la.lastError = c), 'string' != typeof M.caught(c).unwrap())) throw c; } ++this.whenMousedOver._dispatchIndex; } if (D.mouseReleased && ((this.mouseState = 5), 0 < this.whenMousedOver.length)) for ( this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length; ) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex]( this.mouseState ); } catch (c) { if (((la.lastError = c), 'string' != typeof M.caught(c).unwrap())) throw c; } ++this.whenMousedOver._dispatchIndex; } } else if (0 < this.mouseState) { if (((this.mouseState = -1), 0 < this.whenMousedOver.length)) for ( this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length; ) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex]( this.mouseState ); } catch (c) { if (((la.lastError = c), 'string' != typeof M.caught(c).unwrap())) throw c; } ++this.whenMousedOver._dispatchIndex; } } else -1 == this.mouseState && (this.mouseState = 0); }, __class__: pd }); var il = function (a, b) { this.currW = this.currH = 0; this.ID = a; this.name = b; }; h['com.stencyl.models.Scene'] = il; il.__name__ = 'com.stencyl.models.Scene'; il.prototype = { ID: null, name: null, sceneWidth: null, sceneHeight: null, tileWidth: null, tileHeight: null, gravityX: null, gravityY: null, eventID: null, colorBackground: null, layers: null, actors: null, behaviorValues: null, atlases: null, retainsAtlases: null, wireframes: null, joints: null, regions: null, terrainRegions: null, animatedTiles: null, load: function () { var a = new Sg(jf.get(), !1, !0); a.readData(zb.toBytes(Da.getBytes('assets/data/scene-' + this.ID + '.mbs'))); a = a.getRoot(); var b = a.getDepth(); this.sceneWidth = a.getWidth(); this.sceneHeight = a.getHeight(); this.tileWidth = a.getTileWidth(); this.tileHeight = a.getTileHeight(); this.gravityX = a.getGravityX(); this.gravityY = a.getGravityY(); this.animatedTiles = []; this.actors = this.readActors(a.getActorInstances()); this.behaviorValues = te.readBehaviors(a.getSnippets()); var c = a.getEventSnippetID(); if (-1 < c) { var e = this.behaviorValues, f = new Ij(c, new qa()); e.h['' + c] = f; } this.joints = this.readJoints(a.getJoints()); this.regions = this.readRegions(a.getRegions()); this.terrainRegions = this.readTerrainRegions(a.getTerrainRegions()); this.wireframes = this.readWireframes(a.getTerrain()); c = Da.getBytes('assets/data/scene-' + this.ID + '.scn'); c.__endian = 0; b = this.readRawLayers(c, b); this.layers = this.readAllLayers(a.getLayers(), b); this.atlases = (this.retainsAtlases = a.getRetainAtlases()) ? [] : this.readAtlases(a.getAtlasMembers()); }, unload: function () { this.animatedTiles = this.terrainRegions = this.regions = this.joints = this.wireframes = this.layers = this.behaviorValues = this.actors = this.colorBackground = null; }, readRegions: function (a) { for (var b = new Za(), c = 0, e = a.length(); c < e; ) { c++; var f = this.readRegion(a.getNextObject()); b.h[f.ID] = f; } return b; }, readRegion: function (a) { var b = a.getId(), c = a.getName(), e = a.getX(), f = a.getY(); this.shapeList = []; var d = a.getShape(); if (d instanceof rd) { a = this.currW = d.getWidth(); var p = (this.currH = d.getHeight()); d = d.getPoints(); k.NO_PHYSICS ? (b = new Bi(this.shapeList, b, c, e, f, 0, new fa(0, 0, a, p))) : ((a = wd.readPoints(d).slice(0)), new Ac(a).decompose(q(this, this.addPolygonRegion)), (b = new Bi(this.shapeList, b, c, e, f))); } else (p = d.getRadius()), k.NO_PHYSICS ? (b = new Bi(this.shapeList, b, c, e, f, 0, new fa(0, 0, 2 * p, 2 * p))) : ((a = new Lc()), (a.m_radius = k.toPhysicalUnits(p)), (this.shapeList[0] = a), (b = new Bi(this.shapeList, b, c, e, f))); return b; }, shapeList: null, currW: null, currH: null, addPolygonRegion: function (a) { a = x.__cast(wd.createPolygon('MbsPolyRegion', a.points, this.currW, this.currH), Db); this.shapeList.push(a); }, addPolygonTerrain: function (a) { a = x.__cast(wd.createPolygon('MbsPolyRegion', a.points, this.currW, this.currH), Db); this.shapeList.push(a); }, readTerrainRegions: function (a) { for (var b = new Za(), c = 0, e = a.length(); c < e; ) { c++; var f = this.readTerrainRegion(a.getNextObject()); b.h[f.ID] = f; } return b; }, readTerrainRegion: function (a) { var b = a.getId(), c = a.getName(), e = a.getGroupID(), f = k.toPhysicalUnits(a.getX()), d = k.toPhysicalUnits(a.getY()), p = a.getColor(); this.shapeList = []; a = a.getShape(); if (a instanceof rd) (this.currW = a.getWidth()), (this.currH = a.getHeight()), (a = wd.readPoints(a.getPoints()).slice(0)), new Ac(a).decompose(q(this, this.addPolygonTerrain)); else { var l = a.getRadius(); a = new Lc(); a.m_radius = k.toPhysicalUnits(l); this.shapeList[0] = a; } return new no(this.shapeList, b, c, f, d, e, p); }, readJoints: function (a) { for (var b = new Za(), c = 0, e = a.length(); c < e; ) { c++; var f = this.readJoint(a.readObject()); b.h[f.ID] = f; } return b; }, readJoint: function (a) { var b = a.getId(), c = a.getActor1(), e = a.getActor2(), f = a.getCollide(); if (a instanceof Dd) { var d = new Mh(); d.ID = b; d.actor1 = c; d.actor2 = e; d.localAnchorA = null; d.localAnchorB = null; d.collideConnected = f; d.dampingRatio = a.getDamping(); d.frequencyHz = a.getFrequency(); return d; } return a instanceof hc ? ((d = new Nh()), (d.ID = b), (d.actor1 = c), (d.actor2 = e), (d.localAnchorA = null), (d.localAnchorB = null), (d.collideConnected = f), (d.enableLimit = a.getLimit()), (d.enableMotor = a.getMotor()), (d.lowerAngle = a.getLower()), (d.upperAngle = a.getUpper()), (d.maxMotorTorque = a.getTorque()), (d.motorSpeed = a.getSpeed()), d) : a instanceof Rb ? ((d = new Oh()), (d.ID = b), (d.actor1 = c), (d.actor2 = e), (d.localAnchorA = null), (d.localAnchorB = null), (d.collideConnected = f), (d.enableLimit = a.getLimit()), (d.enableMotor = a.getMotor()), (d.lowerTranslation = a.getLower()), (d.upperTranslation = a.getUpper()), (d.maxMotorForce = a.getForce()), (d.motorSpeed = a.getSpeed()), (d.localAxisA.x = a.getX()), (d.localAxisA.y = a.getY()), d) : null; }, readAllLayers: function (a, b) { var c = new ye(16); c.reuseIterator = !0; for (var e = 0, f = a.length(); e < f; ) { e++; var d = a.readObject(); if (d instanceof ee || d instanceof Bd) this.colorBackground = this.readColorBackground(d); else { var p = d, l = p.getId(), v = p.getName(), n = p.getOrder(), k = p.getScrollFactorX(), m = p.getScrollFactorY(), h = p.getOpacity() / 100; p = fl.get(p.getBlendmode()); if (d instanceof fe) { var t = b.mH; d = t.mHash[(73856093 * l) & t.mMask]; if (-1 == d) d = -2147483648; else if (((t = t.mData), t[d] == l)) d = t[d + 1]; else { var u = -2147483648; for (d = t[d + 2]; -1 != d; ) { if (t[d] == l) { u = t[d + 1]; break; } d = t[d + 2]; } d = u; } d = -2147483648 == d ? null : b.mVals[d]; null == d && (d = new me( l, this, Math.floor(this.sceneWidth / this.tileWidth) | 0, Math.floor(this.sceneHeight / this.tileHeight) | 0 )); d.set_name(v); l = new Ec(l, v, n, k, m, h, p, d); c.set(l.ID, l); } else d instanceof Cd && ((t = d), (d = t.getResourceID()), (t = t.getCustomScroll()), (l = new Wd(l, v, n, k, m, h, p, d, t)), c.set(l.ID, l)); } } return c; }, readColorBackground: function (a) { if (a instanceof ee) { var b = a.getColor(); return new Kf(b); } return a instanceof Bd ? ((b = a.getColor1()), (a = a.getColor2()), new xi(b, a)) : null; }, readRawLayers: function (a, b) { var c = new ye(16); c.reuseIterator = !0; var e = []; if (null != a) { for (var f = 0, d = b; f < d; ) { var p = f++; e[p] = a.readInt(); } f = 0; for (d = b; f < d; ) (p = f++), (b = this.readRawLayer(a, e[p])), c.set(b.layerID, b); } return c; }, readRawLayer: function (a, b) { var c = Math.floor(this.sceneWidth / this.tileWidth) | 0, e = Math.floor(this.sceneHeight / this.tileHeight) | 0, f = a.readInt(); b -= 4; a.readInt(); b -= 4; e = new me(f, this, c, e); var d = (f = 0); b = (b / 8) | 0; var p = new jl(this.sceneWidth, this.sceneHeight, this.tileWidth, this.tileHeight); e.grid = p; for (var l = 0; l < b; ) { l++; var v = a.readShort(), n = a.readShort(), k = a.readShort(), m = a.readShort(), h = null; -1 != n && (h = lc.get().resources.get(n)); 0 > v && (v = Math.abs(v + 1) | 0); for (n = 0; n < m; ) { n++; if (null == h || 0 > k) e.setTileAt(f, d, null, !1); else { var t = h.tiles[k]; if (null == t) e.setTileAt(f, d, null, !1); else if ( (e.setTileAt(f, d, t, !1), (e.autotileData[f][d] = v), 0 <= t.collisionID && p.setTile(d, f, !0), 1 < t.durations.length) ) { for ( var u = !1, q = 0, r = this.animatedTiles; q < r.length && !((u = r[q]), ++q, (u = u == t)); ); u || this.animatedTiles.push(t); } } ++d; d >= c && ((d = 0), ++f); } } return e; }, readAtlases: function (a) { for (var b = [], c = 0, e = a.length(); c < e; ) { c++; var f = a.readInt(); Fa.get().atlases.h[f].allScenes || b.push(f); } return b; }, readWireframes: function (a) { if (k.NO_PHYSICS) return []; for (var b = [], c = 0, e = a.length(); c < e; ) { c++; var f = a.getNextObject(), d = f.getPosition(); d = new na(d.getX(), d.getY()); f = wd.readPoints(f.getPoints()).slice(0); f = wd.createPolygon('MbsWireframe', f); b.push(new oo(d.x, d.y, f.h[1], f.h[2], f.h[0], null)); } return b; }, readActors: function (a) { for (var b = new Za(), c = 0, e = a.length(); c < e; ) { c++; var f = this.readActorInstance(a.getNextObject()); null != f && (b.h[f.elementID] = f); } return b; }, readActorInstance: function (a) { var b = a.getAid(), c = a.getX(), e = a.getY(), f = a.getScaleX(), d = a.getScaleY(), p = a.getZ(), l = a.getOrderInLayer(), v = a.getAngle() | 0, n = a.getGroupID(), k = a.getId(), m = a.getCustomized(), h = null; m && (h = te.readBehaviors(a.getSnippets())); if (0 == f || 0 == d) d = f = 1; m || (h = null); if (null == lc.get().resources.get(k)) return null; a = new Zk(b, c, e, f, d, p, l, v, n, k, h, m); null != a.actorType && (a.groupID = a.actorType.groupID); return a; }, getID: function () { return this.ID; }, __class__: il }; var Ph = function (a, b, c, e, f, d, p, l) { jd.call(this, a, b, -1); this.streaming = c; this.looping = e; this.panning = f; this.volume = d; this.ext = p; this.atlasID = l; this.ext = 'ogg'; a = Fa.get().atlases.h[l]; null != a && a.active && this.loadGraphics(); }; h['com.stencyl.models.Sound'] = Ph; Ph.__name__ = 'com.stencyl.models.Sound'; Ph.__super__ = jd; Ph.prototype = r(jd.prototype, { streaming: null, looping: null, panning: null, volume: null, ext: null, src: null, loadGraphics: function () { this.src = Da.getSound( 'assets/' + (this.streaming ? 'music' : 'sfx') + '/sound-' + this.ID + '.' + this.ext, !1 ); }, unloadGraphics: function () { this.streaming || (null != this.src && (this.stopInstances(), this.src.close()), (this.src = null)); }, play: function (a, b) { null == b && (b = 0); this.streaming && null == this.src && (this.src = this.getStreamingSource()); return null == this.src ? null : this.src.play(b); }, loop: function (a, b) { null == b && (b = 0); this.streaming && null == this.src && (this.src = this.getStreamingSource()); return null == this.src ? null : this.src.play(b, 1e8); }, getStreamingSource: function () { return Da.getSound('assets/music/sound-' + this.ID + '.' + this.ext, !1); }, stopInstances: function () { for (var a = 0; 32 > a; ) { var b = a++; b = k.engine.channels[b]; b.currentSource == this.src && b.stopSound(); } }, __class__: Ph }); var Xb = function (a, b) { this.paused = !1; this.currentClip = this.currentSound = null; this.looping = !1; this.volume = 1; this.position = this.panning = 0; this.channelNum = b; this.engine = a; this.transform = new lf(); this.tweenVolume = new Ae(); this.tweenVolume.doOnUpdate(q(this, this.tweenUpdated)); }; h['com.stencyl.models.SoundChannel'] = Xb; Xb.__name__ = 'com.stencyl.models.SoundChannel'; Xb.resetStatics = function () { Xb.muted = !1; Xb.masterVolume = 1; }; Xb.prototype = { currentSource: null, currentSound: null, currentClip: null, volume: null, panning: null, channelNum: null, looping: null, paused: null, position: null, engine: null, transform: null, tweenVolume: null, playSound: function (a, b) { null == b && (b = 0); null != this.currentSound && (this.currentSound.stop(), (this.paused = !1)); if (null != a) { a.volume = this.volume * Xb.masterVolume; this.currentClip = a; this.currentSound = a.play(this.channelNum, b); if (null == this.currentSound) return (this.currentClip = null); this.setVolume(this.volume); this.setPanning(this.panning); this.currentSound.addEventListener('soundComplete', q(this, this.stopped)); } null != a && (this.currentSource = a.src); this.looping = !1; return this.currentSound; }, loopSound: function (a, b) { null == b && (b = 0); null != this.currentSound && this.currentSound.stop(); if (null != a) { a.volume = this.volume * Xb.masterVolume; this.currentClip = a; this.currentSound = a.play(this.channelNum, b); if (null == this.currentSound) return (this.currentClip = null); this.setVolume(this.volume); this.setPanning(this.panning); this.currentSound.addEventListener('soundComplete', q(this, this.looped)); } null != a && (this.currentSource = a.src); this.looping = !0; return this.currentSound; }, setPause: function (a) { null != this.currentSound && (a ? (this.currentSound.removeEventListener('soundComplete', q(this, this.looped)), (this.position = this.currentSound.get_position()), this.currentSound.stop(), (this.paused = !0)) : null != this.currentSource && this.paused && ((this.currentSound = this.currentClip.play(this.channelNum, this.position)), this.currentSound.set_soundTransform(this.transform), this.currentSound.addEventListener('soundComplete', q(this, this.stopped)), this.looping && this.currentSound.addEventListener('soundComplete', q(this, this.looped)), (this.paused = !1))); }, looped: function (a) { null != this.currentSound && this.currentSound.removeEventListener('soundComplete', q(this, this.looped)); this.loopSound(this.currentClip); }, stopped: function (a) { null != this.currentSound && this.currentSound.removeEventListener('soundComplete', q(this, this.stopped)); k.engine.soundFinished(this.channelNum); }, stopSound: function () { null != this.currentSound && (this.currentSound.stop(), (this.position = 0), (this.currentSound = this.currentSource = null), (this.paused = !1)); }, tweenUpdated: function () { this.setVolume(this.tweenVolume.value); }, fadeInSound: function (a) { null != this.currentSound && this.tweenVolume.tween(this.transform.volume, 1, J.linear, (1e3 * a) | 0); }, fadeOutSound: function (a) { null != this.currentSound && this.tweenVolume.tween(this.transform.volume, 0, J.linear, (1e3 * a) | 0); }, fadeSound: function (a, b) { null != this.currentSound && this.tweenVolume.tween(this.transform.volume, b, J.linear, (1e3 * a) | 0); }, setVolume: function (a) { this.volume = a; null != this.currentSound && ((this.transform.volume = a * Xb.masterVolume), this.currentSound.set_soundTransform(this.transform)); }, setPanning: function (a) { this.panning = a; null != this.currentSound && ((this.transform.pan = a), this.currentSound.set_soundTransform(this.transform)); }, __class__: Xb }; var Pg = function (a, b, c, e, f, d) { null == d && (d = 0); tb.call(this, a, -1, f, b, c, -1, 1, 1, null, null, null, null, !1, !0, !1, !1, e[0]); 0 == d && ((c = b = a = 0), null == c && (c = 0), null == b && (b = 0), null == a && (a = 0), (d = (a << 16) | (b << 8) | c)); this.fillColor = d; this.alwaysSimulate = !0; this.isRegion = !1; this.isTerrainRegion = !0; this.copy = e[0]; this.body.setSleepingAllowed(!0); this.body.setAwake(!1); this.body.setIgnoreGravity(!0); if (e[0] instanceof Db) { this.isCircle = !1; var g = new Xe(); g.setIdentity(); var l = new ka(); x.__cast(e[0], Db).computeAABB(l, g); a = l.lowerBound.x; b = l.upperBound.x; c = l.lowerBound.y; d = l.upperBound.y; for (var v = 0, n = e.length; v < n; ) { var h = v++, m = new If(); m.isSensor = !1; m.userData = this; m.shape = e[h]; m.friction = 1; m.density = 0.1; m.restitution = 0; m.groupID = f; this.body.createFixture(m); x.__cast(e[h], Db).computeAABB(l, g); a = Math.min(a, l.lowerBound.x); b = Math.max(b, l.upperBound.x); c = Math.min(c, l.lowerBound.y); d = Math.max(d, l.upperBound.y); } this.originalWidth = this.regionWidth = Math.round(k.toPixelUnits(Math.abs(a - b))); this.originalHeight = this.regionHeight = Math.round(k.toPixelUnits(Math.abs(c - d))); } else e[0] instanceof Lc && ((this.isCircle = !0), (this.originalWidth = this.regionWidth = k.toPixelUnits(2 * x.__cast(e[0], Lc).m_radius)), (this.originalHeight = this.regionHeight = k.toPixelUnits(2 * x.__cast(e[0], Lc).m_radius))); }; h['com.stencyl.models.Terrain'] = Pg; Pg.__name__ = 'com.stencyl.models.Terrain'; Pg.__super__ = tb; Pg.prototype = r(tb.prototype, { isCircle: null, fillColor: null, copy: null, originalWidth: null, originalHeight: null, regionWidth: null, regionHeight: null, follow: function (a) { var b = a.realY + a.cacheHeight / 2; this.setX(a.realX + a.cacheWidth / 2); this.setY(b); }, resetSize: function () { this.setRegionSize(this.originalWidth, this.originalHeight); }, setRegionDiameter: function (a) { this.setRegionSize(a, a); }, setRegionSize: function (a, b) { var c = this.regionWidth, e = this.regionHeight; a = k.toPhysicalUnits(a); b = k.toPhysicalUnits(b); if (this.isCircle) { var f = new Lc(); f.m_radius = a / 2; } else (f = new Db()), f.setAsBox(a / 2, b / 2); var d = new If(); d.isSensor = !0; d.userData = this; d.shape = f; if (null != this.body && null != this.body.getFixtureList()) { for (; 0 < this.body.m_fixtureCount; ) this.body.DestroyFixture(this.body.getFixtureList()); this.body.createFixture(d); this.regionWidth = k.toPixelUnits(a); this.regionHeight = k.toPixelUnits(b); } a = this.regionWidth - c; e = this.regionHeight - e; this.setLocation(this.getX() + a / 2, this.getY() + e / 2); }, setLocation: function (a, b) { this.setX(a + this.regionWidth / 2); this.setY(b + this.regionHeight / 2); }, getWidth: function () { return this.regionWidth; }, getHeight: function () { return this.regionHeight; }, getFillColor: function () { return this.fillColor; }, __class__: Pg }); var jo = function () { this.xy = new Lf(); this.angle = new Ae(); this.alpha = new Ae(); this.realScaleXY = new Lf(); }; h['com.stencyl.models.actor.ActorTweenProperties'] = jo; jo.__name__ = 'com.stencyl.models.actor.ActorTweenProperties'; jo.prototype = { xy: null, angle: null, alpha: null, realScaleXY: null, pause: function () { this.xy.paused = !0; this.angle.paused = !0; this.alpha.paused = !0; this.realScaleXY.paused = !0; }, unpause: function () { this.xy.paused = !1; this.angle.paused = !1; this.alpha.paused = !1; this.realScaleXY.paused = !1; }, cancel: function () { this.xy.active && vb.cancel(this.xy); this.angle.active && vb.cancel(this.angle); this.alpha.active && vb.cancel(this.alpha); this.realScaleXY.active && vb.cancel(this.realScaleXY); }, __class__: jo }; var dg = function (a, b, c, e, f, d, p, l, v, n, k) { jd.call(this, a, c, b); this.groupID = e; this.spriteID = f; this.behaviorValues = d; this.bodyDef = p; this.physicsMode = l; this.autoScale = v; this.pausable = n; this.ignoreGravity = k; }; h['com.stencyl.models.actor.ActorType'] = dg; dg.__name__ = 'com.stencyl.models.actor.ActorType'; dg.__super__ = jd; dg.prototype = r(jd.prototype, { groupID: null, spriteID: null, behaviorValues: null, bodyDef: null, physicsMode: null, autoScale: null, pausable: null, ignoreGravity: null, toString: function () { return this.name; }, loadGraphics: function () { lc.get().resources.get(this.spriteID).loadGraphics(); }, unloadGraphics: function () { lc.get().resources.get(this.spriteID).unloadGraphics(); }, __class__: dg }); var se = function (a, b, c, e, f, d, p, l, v, n, k, m, h, t, u) { this.sharedTimer = this.sharedFrameIndex = 0; this.animID = a; this.animName = b; this.parent = c; this.simpleShapes = e; this.physicsShapes = f; this.looping = d; this.sync = p; this.durations = m; null == se.UNLOADED && (se.UNLOADED = new ja(1, 1)); a = []; for (b = 0; b < h; ) b++, a.push(se.UNLOADED); this.frames = a; this.frameWidth = (l / t) | 0; this.frameHeight = (v / u) | 0; this.imgWidth = l; this.imgHeight = v; this.frameCount = h; this.framesAcross = t; this.framesDown = u; this.originX = n; this.originY = k; null == c ? (this.frames = [se.UNLOADED]) : ((c = Fa.get().atlases.h[c.atlasID]), null != c && c.active && this.loadGraphics(), 1 < h && d && se.allAnimations.push(this)); }; h['com.stencyl.models.actor.Animation'] = se; se.__name__ = 'com.stencyl.models.actor.Animation'; se.resetStatics = function () { se.allAnimations = []; }; se.updateAll = function (a) { for (var b = 0, c = se.allAnimations; b < c.length; ) { var e = c[b]; ++b; e.sharedTimer += a; 1 < e.frameCount && e.sharedTimer > e.durations[e.sharedFrameIndex] && ((e.sharedTimer -= e.durations[e.sharedFrameIndex]), e.sharedFrameIndex++, e.sharedFrameIndex >= e.frameCount && (e.looping ? (e.sharedFrameIndex = 0) : e.sharedFrameIndex--)); } }; se.prototype = { animID: null, animName: null, parent: null, simpleShapes: null, physicsShapes: null, looping: null, sync: null, durations: null, frames: null, frameWidth: null, frameHeight: null, originX: null, originY: null, sharedTimer: null, sharedFrameIndex: null, imgWidth: null, imgHeight: null, frameCount: null, framesAcross: null, framesDown: null, graphicsLoaded: null, loadGraphics: function () { if (!this.graphicsLoaded) { var a = Da.getBitmapData( 'assets/graphics/' + k.IMG_BASE + '/sprite-' + this.parent.ID + '-' + this.animID + '.png', !1 ); null == a.rect && (a = null); if (null == a) { var b = [], c = 0; for (a = this.frameCount; c < a; ) c++, b.push(se.UNLOADED); this.frames = b; } else { if (1 == this.frameCount) this.frames[0] = a; else { var e = (this.frameWidth * k.SCALE) | 0, f = (this.frameHeight * k.SCALE) | 0, d = new na(0, 0); b = 0; for (c = this.frameCount; b < c; ) { var p = b++; var l = new fa( (p % this.framesAcross) * e, Math.floor(p / this.framesAcross) * f, e, f ), v = new ja(e, f, !0, 0); v.copyPixels(a, l, d); this.frames[p] = v; } a.dispose(); } if (aa.disposeImages && null != this.parent && !this.parent.readableImages) for (b = 0, c = this.frames; b < c.length; ) (a = c[b]), ++b, gd.uploadTexture(a, !0); this.graphicsLoaded = !0; } } }, unloadGraphics: function () { if (this.graphicsLoaded) { for (var a = 0, b = this.frameCount; a < b; ) { var c = a++; this.frames[c].readable && this.frames[c].dispose(); this.frames[c] = se.UNLOADED; } this.graphicsLoaded = !1; } }, checkImageReadable: function () { return this.frames[0].readable ? !0 : !1; }, update: function (a) { this.sharedTimer += a; 1 < this.frameCount && this.sharedTimer > this.durations[this.sharedFrameIndex] && ((this.sharedTimer -= this.durations[this.sharedFrameIndex]), this.sharedFrameIndex++, this.sharedFrameIndex >= this.frameCount && (this.looping ? (this.sharedFrameIndex = 0) : this.sharedFrameIndex--)); }, __class__: se }; var uc = function () { this.points = []; this.bounds = new fa(); this.clear(); }; h['com.stencyl.models.actor.Collision'] = uc; uc.__name__ = 'com.stencyl.models.actor.Collision'; uc.resetStatics = function () { uc.recycledCollisions = []; uc.collisionResponses = new Za(); }; uc.addResponse = function (a, b, c) { var e = -1, f = -1; a instanceof dg ? (e = a.groupID) : a instanceof ze && (e = a.ID); b instanceof dg ? (f = b.groupID) : b instanceof ze && (f = b.ID); null == uc.collisionResponses.h[e] && ((a = uc.collisionResponses), (b = new Za()), (a.h[e] = b)); null == uc.collisionResponses.h[f] && ((a = uc.collisionResponses), (b = new Za()), (a.h[f] = b)); uc.collisionResponses.h[e].h[f] = c; uc.collisionResponses.h[f].h[e] = c; }; uc.preSolve = function (a, b) { b = a.getFixtureA().getBody().groupID; var c = a.getFixtureB().getBody().groupID; null != uc.collisionResponses.h[b] && 'sensor' == uc.collisionResponses.h[b].h[c] && a.setEnabled(!1); }; uc.get = function () { return 0 < uc.recycledCollisions.length ? uc.recycledCollisions.pop() : new uc(); }; uc.recycle = function (a) { a.clear(); uc.recycledCollisions.push(a); }; uc.prototype = { thisFromTop: null, thisFromLeft: null, thisFromBottom: null, thisFromRight: null, thisCollidedWithActor: null, thisCollidedWithTile: null, thisCollidedWithSensor: null, thisCollidedWithTerrain: null, otherFromTop: null, otherFromLeft: null, otherFromBottom: null, otherFromRight: null, otherCollidedWithActor: null, otherCollidedWithTile: null, otherCollidedWithSensor: null, otherCollidedWithTerrain: null, points: null, thisActor: null, otherActor: null, thisShape: null, otherShape: null, actorA: null, actorB: null, maskA: null, maskB: null, groupA: null, groupB: null, bounds: null, useBounds: null, remove: null, solidCollision: null, linkedCollision: null, clear: function () { for (; 0 < this.points.length; ) this.points.pop(); this.remove = this.solidCollision = this.useBounds = this.otherCollidedWithTerrain = this.otherCollidedWithSensor = this.otherCollidedWithTile = this.otherCollidedWithActor = this.otherFromRight = this.otherFromBottom = this.otherFromLeft = this.otherFromTop = this.thisCollidedWithTerrain = this.thisCollidedWithSensor = this.thisCollidedWithTile = this.thisCollidedWithActor = this.thisFromRight = this.thisFromBottom = this.thisFromLeft = this.thisFromTop = !1; this.linkedCollision = this.maskA = this.maskB = this.actorB = this.actorA = this.otherShape = this.thisShape = this.otherActor = this.thisActor = null; this.bounds.setEmpty(); }, switchData: function (a) { if (null == a) return null; a.thisActor = this.otherActor; a.thisShape = this.otherShape; a.thisFromTop = this.otherFromTop; a.thisFromLeft = this.otherFromLeft; a.thisFromBottom = this.otherFromBottom; a.thisFromRight = this.otherFromRight; a.thisCollidedWithActor = this.otherCollidedWithActor; a.thisCollidedWithTile = this.otherCollidedWithTile; a.thisCollidedWithSensor = this.otherCollidedWithSensor; a.thisCollidedWithTerrain = this.otherCollidedWithTerrain; a.otherActor = this.thisActor; a.otherShape = this.thisShape; a.otherFromTop = this.thisFromTop; a.otherFromLeft = this.thisFromLeft; a.otherFromBottom = this.thisFromBottom; a.otherFromRight = this.thisFromRight; a.otherCollidedWithActor = this.thisCollidedWithActor; a.otherCollidedWithTile = this.thisCollidedWithTile; a.otherCollidedWithSensor = this.thisCollidedWithSensor; a.otherCollidedWithTerrain = this.thisCollidedWithTerrain; a.actorA = this.actorA; a.actorB = this.actorB; a.points = this.points; a.useBounds = this.useBounds; a.maskA = this.maskA; a.maskB = this.maskB; a.solidCollision = this.solidCollision; a.groupA = this.groupA; a.groupB = this.groupB; a.linkedCollision = this; return (this.linkedCollision = a); }, __class__: uc }; var Od = function (a, b, c, e) { this.x = a; this.y = b; this.normalX = c; this.normalY = e; }; h['com.stencyl.models.actor.CollisionPoint'] = Od; Od.__name__ = 'com.stencyl.models.actor.CollisionPoint'; Od.resetStatics = function () { Od.freedCollisionPoints = []; }; Od.get = function (a, b, c, e) { if (0 < Od.freedCollisionPoints.length) { var f = Od.freedCollisionPoints.pop(); f.x = a; f.y = b; f.normalX = c; f.normalY = e; return f; } return new Od(a, b, c, e); }; Od.free = function (a) { Od.freedCollisionPoints.push(a); }; Od.prototype = { x: null, y: null, normalX: null, normalY: null, __class__: Od }; var ze = function (a, b) { this.name = b; this.ID = a; this.sID = '[Group ' + a + ',' + b + ']'; this.list = []; }; h['com.stencyl.models.actor.Group'] = ze; ze.__name__ = 'com.stencyl.models.actor.Group'; ze.prototype = { list: null, name: null, ID: null, sID: null, addChild: function (a) { this.list.push(a); }, removeChild: function (a) {}, toString: function () { return this.sID; }, __class__: ze }; var ui = function (a, b, c, e, f) { jd.call(this, a, c, b); this.defaultAnimation = e; this.readableImages = f; this.animations = new Za(); }; h['com.stencyl.models.actor.Sprite'] = ui; ui.__name__ = 'com.stencyl.models.actor.Sprite'; ui.__super__ = jd; ui.prototype = r(jd.prototype, { defaultAnimation: null, animations: null, readableImages: null, loadGraphics: function () { for (var a = this.animations.iterator(); a.hasNext(); ) a.next().loadGraphics(); }, unloadGraphics: function () { for (var a = this.animations.iterator(); a.hasNext(); ) a.next().unloadGraphics(); }, reloadGraphics: function (a) { -1 == a ? (this.unloadGraphics(), this.loadGraphics()) : (this.animations.h[a].unloadGraphics(), this.animations.h[a].loadGraphics()); for (var b = k.engine.allActors.iterator(); b.hasNext(); ) { var c = b.next(); null == c || c.dead || c.recycled || (c.type.spriteID == this.ID && c.reloadAnimationGraphics(a)); } }, get_width: function () { var a = this.animations.h[this.defaultAnimation]; return (a.imgWidth / a.framesAcross) | 0; }, get_height: function () { var a = this.animations.h[this.defaultAnimation]; return (a.imgHeight / a.framesDown) | 0; }, __class__: ui, __properties__: { get_height: 'get_height', get_width: 'get_width' } }); var Kf = function (a) { jd.call(this, 0, 'Color Background', -1); this.bgColor = a; a == Kf.WHITE && (this.bgColor = 16777215); }; h['com.stencyl.models.background.ColorBackground'] = Kf; Kf.__name__ = 'com.stencyl.models.background.ColorBackground'; Kf.__interfaces__ = [Uh]; Kf.__super__ = jd; Kf.prototype = r(jd.prototype, { bgColor: null, update: function () {}, draw: function (a, b, c, e, f) { this.bgColor != Kf.TRANSPARENT && (a.clear(), a.beginFill(this.bgColor), a.drawRect(0, 0, e, f), a.endFill(), a.drawCircle(1, 1, 1)); }, __class__: Kf }); var xi = function (a, b) { jd.call(this, 0, 'Gradient Background', -1); this.topColor = a; this.bottomColor = b; }; h['com.stencyl.models.background.GradientBackground'] = xi; xi.__name__ = 'com.stencyl.models.background.GradientBackground'; xi.__interfaces__ = [Uh]; xi.__super__ = jd; xi.prototype = r(jd.prototype, { topColor: null, bottomColor: null, update: function () {}, draw: function (a, b, c, e, f) { b = [this.topColor, this.bottomColor]; c = new Ia(); c.createGradientBox(e, f, Math.PI / 2, 0, 0); a.clear(); var d = new ja(1, 1); a.beginBitmapFill(d); a.endFill(); a.beginGradientFill(0, b, [100, 100], [0, 255], c, 0); a.drawRect(0, 0, e, f); a.endFill(); }, __class__: xi }); var Ag = function (a, b, c, e, f, d, p) { jd.call(this, a, c, b); this.parallaxX = f; this.parallaxY = d; this.durations = e; this.repeats = p; this.currFrame = this.currTime = 0; this.isAtlasActive() && this.loadGraphics(); this.repeated = !1; }; h['com.stencyl.models.background.ImageBackground'] = Ag; Ag.__name__ = 'com.stencyl.models.background.ImageBackground'; Ag.__interfaces__ = [Uh]; Ag.__super__ = jd; Ag.prototype = r(jd.prototype, { currFrame: null, currTime: null, img: null, frames: null, durations: null, parallaxX: null, parallaxY: null, repeats: null, repeated: null, graphicsLoaded: null, update: function () {}, draw: function (a, b, c, e, f) {}, drawRepeated: function (a, b, c) { a = this.img.width; var e = this.img.height, f = new fa(0, 0, a, e); if (!(a >= b && e >= c)) { a < b && (b += (a | 0) - (b % (a | 0))); e < c && (c += (e | 0) - (c % (e | 0))); var d = new ja(Math.max(b, a) | 0, Math.max(c, e) | 0), p = 0; for (c = ((c / e) | 0) + 1; p < c; ) for (var l = p++, v = 0, n = ((b / a) | 0) + 1; v < n; ) { var k = v++; d.copyPixels(this.img, f, new na(k * a, l * e)); } this.img = d; } this.repeated = !0; }, loadGraphics: function () { if (!this.graphicsLoaded) { var a = [], b = this.durations.length; if (0 < b) for (var c = 0; c < b; ) { var e = c++; a.push( Da.getBitmapData( 'assets/graphics/' + k.IMG_BASE + '/background-' + this.ID + '-' + e + '.png', !1 ) ); } else a.push( Da.getBitmapData( 'assets/graphics/' + k.IMG_BASE + '/background-' + this.ID + '-0.png', !1 ) ); this.frames = []; c = 0; for (b = a.length; c < b; ) (e = c++), this.repeats ? ((this.img = a[e]), this.drawRepeated( null, (k.screenWidth * k.SCALE) | 0, (k.screenHeight * k.SCALE) | 0 ), this.frames.push(this.img)) : this.frames.push(a[e]); this.img = this.frames[0]; this.graphicsLoaded = !0; } }, unloadGraphics: function () { if (this.graphicsLoaded) { this.img = new ja(1, 1); this.currFrame = 0; this.repeated = !1; this.frames = []; for (var a = 0, b = this.durations; a < b.length; ) ++a, this.frames.push(this.img); this.graphicsLoaded = !1; } }, reloadGraphics: function (a) { jd.prototype.reloadGraphics.call(this, a); a = 0; for (var b = k.engine.backgroundLayers; a < b.length; ) { var c = b[a]; ++a; c.model == this && c.reload(c.resourceID); } }, __class__: Ag }); var wh = function (a, b, c, e, f, d, p, l, v) { Ag.call(this, a, b, c, e, f, d, p); this.xVelocity = l; this.yVelocity = v; }; h['com.stencyl.models.background.ScrollingBackground'] = wh; wh.__name__ = 'com.stencyl.models.background.ScrollingBackground'; wh.__interfaces__ = [Uh]; wh.__super__ = Ag; wh.prototype = r(Ag.prototype, { xVelocity: null, yVelocity: null, update: function () {}, draw: function (a, b, c, e, f) {}, __class__: wh }); var Cf = function () { this.reset(); }; h['com.stencyl.models.collision.CollisionInfo'] = Cf; Cf.__name__ = 'com.stencyl.models.collision.CollisionInfo'; Cf.resetStatics = function () { Cf.infoArray = []; }; Cf.getCollisionInfo = function () { return 0 < Cf.infoArray.length ? Cf.infoArray.pop() : new Cf(); }; Cf.recycle = function (a) { Cf.infoArray.push(a); }; Cf.prototype = { max: null, min: null, maskA: null, maskB: null, solidCollision: null, reset: function () { this.max = this.min = 0; this.maskA = this.maskB = null; this.solidCollision = !0; }, __class__: Cf }; var kg = function () { this.collideTypes = []; this.solid = !0; this._class = x.getClass(this).__name__; var a = (this._check = new qa()), b = kg.__name__; a.h[b] = q(this, this.collideMask); a = this._check; b = Ai.__name__; a.h[b] = q(this, this.collideMasklist); this.lastBounds = new fa(); this.lastColID = -1; }; h['com.stencyl.models.collision.Mask'] = kg; kg.__name__ = 'com.stencyl.models.collision.Mask'; kg.prototype = { parent: null, groupID: null, list: null, lastBounds: null, lastCheckedMask: null, lastColID: null, solid: null, collideTypes: null, collide: function (a) { if (null == this.parent) throw M.thrown('Mask must be attached to a parent Entity'); var b = this._check.h[a._class]; if (null != b) return b(a); b = a._check.h[this._class]; return null != b ? b(this) : !1; }, collideMask: function (a) { return this.parent.colX + this.parent.cacheWidth > a.parent.colX && this.parent.colY + this.parent.cacheHeight > a.parent.colY && this.parent.colX < a.parent.colX + a.parent.cacheWidth && this.parent.colY < a.parent.colY + a.parent.cacheHeight ? ((this.lastBounds.x = this.parent.colX), (this.lastBounds.y = this.parent.colY), (this.lastBounds.width = this.parent.cacheWidth), (this.lastBounds.height = this.parent.cacheHeight), (this.lastCheckedMask = this), !0) : !1; }, collideMasklist: function (a) { return a.collide(this); }, assignTo: function (a) { this.parent = a; null != a && this.update(); }, debugDraw: function (a, b, c) {}, update: function () {}, projectMask: function (a, b) { var c = -9999999999, e = 9999999999, f = -this.parent.currOffset.x * a.x - this.parent.currOffset.y * a.y; f < e && (e = f); f > c && (c = f); f = (-this.parent.currOffset.x + this.parent.cacheWidth) * a.x - this.parent.currOffset.y * a.y; f < e && (e = f); f > c && (c = f); f = -this.parent.currOffset.x * a.x + (-this.parent.currOffset.y + this.parent.cacheHeight) * a.y; f < e && (e = f); f > c && (c = f); f = (-this.parent.currOffset.x + this.parent.cacheWidth) * a.x + (-this.parent.currOffset.y + this.parent.cacheHeight) * a.y; f < e && (e = f); f > c && (c = f); b.min = e; b.max = c; }, _class: null, _check: null, __class__: kg }; var id = function (a, b, c, e, f, d) { null == d && (d = 0); null == f && (f = !0); null == e && (e = 0); null == c && (c = 0); null == b && (b = 1); null == a && (a = 1); kg.call(this); this.lastBounds.width = this._width = a; this.lastBounds.height = this._height = b; this._x = c; this._y = e; this.solid = f; this.groupID = d; this._check.h[id.__name__] = q(this, this.collideHitbox); }; h['com.stencyl.models.collision.Hitbox'] = id; id.__name__ = 'com.stencyl.models.collision.Hitbox'; id.__super__ = kg; id.prototype = r(kg.prototype, { clone: function () { return new id(this._width, this._height, this._x, this._y, this.solid, this.groupID); }, collideMask: function (a) { return this.parent.colX + this._x + this._width > a.parent.colX && this.parent.colY + this._y + this._height > a.parent.colY && this.parent.colX + this._x < a.parent.colX + a.parent.cacheWidth && this.parent.colY + this._y < a.parent.colY + a.parent.cacheHeight ? ((this.lastBounds.x = this.parent.colX + this.parent.cacheWidth), (this.lastBounds.y = this.parent.colY + this.parent.cacheHeight), (this.lastBounds.width = this.parent.cacheWidth), (this.lastBounds.height = this.parent.cacheHeight), (this.lastCheckedMask = this), !0) : !1; }, collideHitbox: function (a) { return this.parent.colX + this._x + this._width > a.parent.colX + a._x && this.parent.colY + this._y + this._height > a.parent.colY + a._y && this.parent.colX + this._x < a.parent.colX + a._x + a._width && this.parent.colY + this._y < a.parent.colY + a._y + a._height ? ((this.lastBounds.x = this.parent.colX + this._x), (this.lastBounds.y = this.parent.colY + this._y), (this.lastBounds.width = this._width), (this.lastBounds.height = this._height), (this.lastCheckedMask = this), !0) : !1; }, get_x: function () { return this._x; }, set_x: function (a) { if (this._x == a) return a; this._x = a; null != this.list ? this.list.update() : null != this.parent && this.update(); return this._x; }, get_y: function () { return this._y; }, set_y: function (a) { if (this._y == a) return a; this._y = a; null != this.list ? this.list.update() : null != this.parent && this.update(); return this._y; }, get_width: function () { return this._width; }, set_width: function (a) { if (this._width == a) return a; this._width = a; null != this.list ? this.list.update() : null != this.parent && this.update(); return this._width; }, get_height: function () { return this._height; }, set_height: function (a) { if (this._height == a) return a; this._height = a; null != this.list ? this.list.update() : null != this.parent && this.update(); return this._height; }, update: function () { null != this.parent && null != this.list && this.list.update(); }, _width: null, _height: null, _x: null, _y: null, __class__: id, __properties__: { set_height: 'set_height', get_height: 'get_height', set_width: 'set_width', get_width: 'get_width', set_y: 'set_y', get_y: 'get_y', set_x: 'set_x', get_x: 'get_x' } }); var jl = function (a, b, c, e, f, d) { null == d && (d = 0); null == f && (f = 0); id.call(this); if (0 == a || 0 == b || 0 == c || 0 == e) throw M.thrown('Illegal Grid, sizes cannot be 0.'); this._rect = X.rect; this._point = X.point; this._point2 = X.point2; this.columns = (a / c) | 0; this.rows = (b / e) | 0; this._tile = new fa(0, 0, c, e); this._x = f; this._y = d; this._width = a; this._height = b; this.usePositions = !1; this.groupID = 1; a = this._check; b = kg.__name__; a.h[b] = q(this, this.collideMask); a = this._check; b = id.__name__; a.h[b] = q(this, this.collideHitbox); a = this._check; b = Lj.__name__; a.h[b] = q(this, this.collidePixelmask); this.data = []; a = 0; for (b = this.rows; a < b; ) a++, this.data.push([]); }; h['com.stencyl.models.collision.Grid'] = jl; jl.__name__ = 'com.stencyl.models.collision.Grid'; jl.__super__ = id; jl.prototype = r(id.prototype, { usePositions: null, setTile: function (a, b, c) { null == c && (c = !0); null == b && (b = 0); null == a && (a = 0); 0 > a || a > this.columns - 1 || 0 > b || b > this.rows - 1 || (this.usePositions && ((a = (a / this._tile.width) | 0), (b = (b / this._tile.height) | 0)), (this.data[b][a] = c)); }, clearTile: function (a, b) { null == b && (b = 0); null == a && (a = 0); this.setTile(a, b, !1); }, checkTile: function (a, b) { return 0 > a || a > this.columns - 1 || 0 > b || b > this.rows - 1 ? !1 : !0; }, getTile: function (a, b) { null == b && (b = 0); null == a && (a = 0); if (0 > a || a > this.columns - 1 || 0 > b || b > this.rows - 1) return !1; this.usePositions && ((a = (a / this._tile.width) | 0), (b = (b / this._tile.height) | 0)); return this.data[b][a]; }, setRect: function (a, b, c, e, f) { null == f && (f = !0); null == e && (e = 1); null == c && (c = 1); null == b && (b = 0); null == a && (a = 0); this.usePositions && ((a = (a / this._tile.width) | 0), (b = (b / this._tile.height) | 0), (c = (c / this._tile.width) | 0), (e = (e / this._tile.height) | 0)); var d = b; for (b += e; d < b; ) { e = d++; for (var p = a, l = a + c; p < l; ) { var v = p++; this.setTile(v, e, f); } } }, clearRect: function (a, b, c, e) { null == e && (e = 1); null == c && (c = 1); null == b && (b = 0); null == a && (a = 0); this.setRect(a, b, c, e, !1); }, get_tileWidth: function () { return this._tile.width | 0; }, get_tileHeight: function () { return this._tile.height | 0; }, columns: null, rows: null, data: null, collideMask: function (a) { this._rect.x = a.parent.colX - this.parent.colX; this._rect.y = a.parent.colY - this.parent.colY; var b = (((this._rect.x + a.parent.cacheWidth - 1) / this._tile.width) | 0) + 1, c = (this._rect.x / this._tile.width) | 0, e = (this._rect.y / this._tile.height) | 0; for ( a = (((this._rect.y + a.parent.cacheHeight - 1) / this._tile.height) | 0) + 1; e < a; ) for (var f = e++, d = c, p = b; d < p; ) { var l = d++; if (this.getTile(l, f)) return !0; } return !1; }, collideHitbox: function (a) { this._rect.x = a.parent.colX + a._x; this._rect.y = a.parent.colY + a._y; for ( var b = (((this._rect.x + a._width - 1) / this._tile.width) | 0) + 1, c = (this._rect.x / this._tile.width) | 0, e = (this._rect.y / this._tile.height) | 0, f = (((this._rect.y + a._height - 1) / this._tile.height) | 0) + 1; e < f; ) for (var d = e++, p = c, l = b; p < l; ) { var v = p++; if (this.getTile(v, d)) return ( (this.lastBounds.x = v * this._tile.width), (this.lastBounds.y = d * this._tile.height), (this.lastBounds.width = this._tile.width), (this.lastBounds.height = this._tile.height), (a.lastColID = this.groupID), !0 ); } return !1; }, collidePixelmask: function (a) { return !1; }, squareProjection: function (a, b) { a.x < a.y ? ((b.x = a.x), (b.y = a.y)) : ((b.y = a.x), (b.x = a.y)); }, _tile: null, _rect: null, _point: null, _point2: null, __class__: jl, __properties__: r(id.prototype.__properties__, { get_tileHeight: 'get_tileHeight', get_tileWidth: 'get_tileWidth' }) }); var Ai = function (a, b) { this._count = 0; id.call(this); this._masks = []; this._temp = []; this.solid = !1; this.parent = b; for (var c = 0; c < a.length; ) (b = a[c]), ++c, this.add(b); }; h['com.stencyl.models.collision.Masklist'] = Ai; Ai.__name__ = 'com.stencyl.models.collision.Masklist'; Ai.__super__ = id; Ai.prototype = r(id.prototype, { collide: function (a) { for (var b, c = 0, e = this._masks; c < e.length; ) if ( ((b = e[c]), ++c, (b.groupID = -1e3 == b.groupID ? b.parent.groupID : b.groupID), (a instanceof Ai || -2 == a.groupID || Fa.collisionMap[b.groupID][a.groupID]) && b.collide(a)) ) return ( (this.lastBounds.x = b.lastBounds.x), (this.lastBounds.y = b.lastBounds.y), (this.lastBounds.width = b.lastBounds.width), (this.lastBounds.height = b.lastBounds.height), (this.lastCheckedMask = b), (this.lastColID = a.groupID), !0 ); return !1; }, collideMasklist: function (a) { for (var b, c, e = 0, f = this._masks; e < f.length; ) { b = f[e]; ++e; b.groupID = -1e3 == b.groupID ? b.parent.groupID : b.groupID; for (var d = 0, p = a._masks; d < p.length; ) if ( ((c = p[d]), ++d, (c.groupID = -1e3 == c.groupID ? c.parent.groupID : c.groupID), b.collide(c)) ) return ( (a.lastBounds.x = c.lastBounds.x), (a.lastBounds.y = c.lastBounds.y), (a.lastBounds.width = c.lastBounds.width), (a.lastBounds.height = c.lastBounds.height), (a.lastCheckedMask = c), (a.lastColID = b.groupID), !0 ); } return !0; }, add: function (a) { this._masks[this._count++] = a; a.list = this; a.parent = this.parent; this.solid = this.solid || a.solid; this.update(); a.groupID = -1e3 == a.groupID ? this.parent.groupID : a.groupID; var b = Fa.get().groupsCollidesWith.h[a.groupID]; if (null != b) for (var c = 0; c < b.length; ) { var e = b[c]; ++c; X.contains(this.collideTypes, e) || this.collideTypes.push(e); } return a; }, remove: function (a) { if (0 > Tc.indexOf(this._masks, a)) return a; this._temp.length = 0; for (var b, c = 0, e = this._masks; c < e.length; ) (b = e[c]), ++c, b == a ? ((a.list = null), (a.parent = null), this._count--, this.update()) : (this._temp[this._temp.length] = b); b = this._masks; this._masks = this._temp; this._temp = b; return a; }, removeAt: function (a) { null == a && (a = 0); this._temp.length = 0; var b = this._masks.length; for (a %= b; 0 < b--; ) b == a ? ((this._masks[a].list = null), this._count--, this.update()) : (this._temp[this._temp.length] = this._masks[a]); a = this._masks; this._masks = this._temp; this._temp = a; }, removeAll: function () { for (var a, b = 0, c = this._masks; b < c.length; ) (a = c[b]), ++b, (a.list = null); this._count = 0; this._masks.length = 0; this._temp.length = 0; this.update(); }, getMask: function (a) { null == a && (a = 0); return this._masks[a % this._masks.length]; }, assignTo: function (a) { for (var b = 0, c = this._masks; b < c.length; ) { var e = c[b]; ++b; e.parent = a; } id.prototype.assignTo.call(this, a); }, update: function () { for (var a = 1e5, b = 1e5, c = 0, e = 0, f, d = this._count; 0 < d--; ) (f = x.__cast(this._masks[d], id)), null != f && (f._x < b && (b = f._x), f._y < a && (a = f._y), f._x + f._width > c && (c = f._x + f._width), f._y + f._height > e && (e = f._y + f._height)); this._x = b; this._y = a; this._width = c - b; this._height = e - a; id.prototype.update.call(this); }, count: null, get_count: function () { return this._count; }, _masks: null, _temp: null, _count: null, __class__: Ai, __properties__: r(id.prototype.__properties__, { get_count: 'get_count' }) }); var Lj = function (a, b, c) { null == c && (c = 0); null == b && (b = 0); id.call(this); a instanceof ja && (this._data = a); if (null == this._data) throw M.thrown('Invalid Pixelmask source image.'); this.threshold = 1; this._rect = X.rect; this._point = X.point; this._point2 = X.point2; this._width = this.get_data().width; this._height = this.get_data().height; this._x = b; this._y = c; a = this._check; b = kg.__name__; a.h[b] = q(this, this.collideMask); a = this._check; b = Lj.__name__; a.h[b] = q(this, this.collidePixelmask); a = this._check; b = id.__name__; a.h[b] = q(this, this.collideHitbox); }; h['com.stencyl.models.collision.Pixelmask'] = Lj; Lj.__name__ = 'com.stencyl.models.collision.Pixelmask'; Lj.__super__ = id; Lj.prototype = r(id.prototype, { threshold: null, collideMask: function (a) { this._point.x = this.parent.colX + this._x; this._point.y = this.parent.colY + this._y; this._rect.x = a.parent.colX; this._rect.y = a.parent.colY; this._rect.width = a.parent.cacheWidth; this._rect.height = a.parent.cacheHeight; return !1; }, collideHitbox: function (a) { this._point.x = this.parent.colX + this._x; this._point.y = this.parent.colY + this._y; this._rect.x = a.parent.colX + a._x; this._rect.y = a.parent.colY + a._y; this._rect.width = a._width; this._rect.height = a._height; return !1; }, collidePixelmask: function (a) { this._point.x = this.parent.colX + this._x; this._point.y = this.parent.colY + this._y; this._point2.x = a.parent.colX + a._x; this._point2.y = a.parent.colY + a._y; return !1; }, get_data: function () { return this._data; }, set_data: function (a) { this._data = a; this._width = a.width; this._height = a.height; this.update(); return this._data; }, _data: null, _rect: null, _point: null, _point2: null, __class__: Lj, __properties__: r(id.prototype.__properties__, { set_data: 'set_data', get_data: 'get_data' }) }); var Zk = function (a, b, c, e, f, d, p, l, v, n, k, m) { this.elementID = a; this.x = b; this.y = c; this.scaleX = e; this.scaleY = f; this.layerID = d; this.orderInLayer = p; this.angle = l; this.groupID = v; this.actorID = n; this.behaviorValues = k; this.isCustomized = m; this.actorType = x.__cast(lc.get().resources.get(n), dg); }; h['com.stencyl.models.scene.ActorInstance'] = Zk; Zk.__name__ = 'com.stencyl.models.scene.ActorInstance'; Zk.prototype = { elementID: null, x: null, y: null, scaleX: null, scaleY: null, layerID: null, orderInLayer: null, angle: null, groupID: null, actorID: null, isCustomized: null, behaviorValues: null, actorType: null, __class__: Zk }; var Je = function () {}; h['com.stencyl.models.scene.Autotile'] = Je; Je.__name__ = 'com.stencyl.models.scene.Autotile'; var mo = function (a, b, c, e, f) { this.animIndex = []; this.defaultAnimationIndex = 0; this.name = a; this.id = b; this.tilesAcross = c; this.tilesDown = e; a = 0; b = new Jc(); c = 0; for (e = 256; c < e; ) { var d = c++; null != b.h.__keys__[f[d].__id__] ? (this.animIndex[d] = b.h[f[d].__id__]) : ((this.animIndex[d] = a), b.set(f[d], a), ++a); } this.defaultAnimationIndex = this.animIndex[255]; this.autotileArrayLength = a; this.animCorners = []; c = 0; for (e = 256; c < e; ) (d = c++), (this.animCorners[this.animIndex[d]] = f[d]); }; h['com.stencyl.models.scene.AutotileFormat'] = mo; mo.__name__ = 'com.stencyl.models.scene.AutotileFormat'; mo.prototype = { autotileArrayLength: null, defaultAnimationIndex: null, name: null, id: null, tilesAcross: null, tilesDown: null, animIndex: null, animCorners: null, __class__: mo }; var lo = function (a, b, c, e) { this.tl = a; this.tr = b; this.bl = c; this.br = e; }; h['com.stencyl.models.scene.Corners'] = lo; lo.__name__ = 'com.stencyl.models.scene.Corners'; lo.prototype = { tl: null, tr: null, bl: null, br: null, toString: function () { return ( 'TL: ' + B.string(this.tl) + ', TR: ' + B.string(this.tr) + ', BL: ' + B.string(this.bl) + ', BR: ' + B.string(this.br) ); }, __class__: lo }; var Pn = function (a, b, c, e) { this.type = a; this.x = b; this.y = c; this.layer = e; }; h['com.stencyl.models.scene.DeferredActor'] = Pn; Pn.__name__ = 'com.stencyl.models.scene.DeferredActor'; Pn.prototype = { type: null, x: null, y: null, layer: null, __class__: Pn }; var zg = function (a, b, c, e, f, d, p) { Ca.call(this); this.ID = a; this.set_name(b); this.layerName = b; this.order = c; this.scrollFactorX = e; this.scrollFactorY = f; this.set_alpha(d); this.set_blendMode(p); }; h['com.stencyl.models.scene.layers.RegularLayer'] = zg; zg.__name__ = 'com.stencyl.models.scene.layers.RegularLayer'; zg.__super__ = Ca; zg.prototype = r(Ca.prototype, { ID: null, layerName: null, order: null, scrollFactorX: null, scrollFactorY: null, opacity: null, alphaTween: null, updatePosition: function (a, b, c) {}, __class__: zg }); var Ec = function (a, b, c, e, f, d, p, l) { this.cameraOldX = this.cameraOldY = -1; this.cameraMoved = !0; zg.call(this, a, b, c, e, f, d, p); this.tiles = l; null != this.tiles && (this.tiles.set_name(b + ' - TileLayer'), this.tiles.set_blendMode(p)); this.actorContainer = new Ca(); this.actorContainer.set_name(b + ' - ActorLayer'); this.overlay = new Ca(); this.overlay.set_name(b + ' - Overlay'); null != this.tiles && this.addChild(this.tiles); this.addChild(this.actorContainer); this.addChild(this.overlay); this.attachedImages = []; }; h['com.stencyl.models.scene.Layer'] = Ec; Ec.__name__ = 'com.stencyl.models.scene.Layer'; Ec.__super__ = zg; Ec.prototype = r(zg.prototype, { tiles: null, actorContainer: null, overlay: null, attachedImages: null, cameraMoved: null, cameraOldX: null, cameraOldY: null, updatePosition: function (a, b, c) { if (aa.pixelsnap) { c = (a * this.scrollFactorX) | 0; var e = (b * this.scrollFactorY) | 0; a = Math.round(a); b = Math.round(b); this.set_x(-((a * this.scrollFactorX) | 0)); this.set_y(-((b * this.scrollFactorY) | 0)); var f = (c / (k.engine.scene.tileWidth * k.SCALE)) | 0; var d = (e / (k.engine.scene.tileHeight * k.SCALE)) | 0; } else (c = a * this.scrollFactorX), (e = b * this.scrollFactorY), this.set_x(-a * this.scrollFactorX), this.set_y(-b * this.scrollFactorY), (f = c / (k.engine.scene.tileWidth * k.SCALE)), (d = e / (k.engine.scene.tileHeight * k.SCALE)); this.tiles.setPosition(c, e); this.overlay.set_x(a); this.overlay.set_y(b); this.cameraMoved = this.cameraMoved || this.cameraOldX != f || this.cameraOldY != d; this.cameraOldX = f; this.cameraOldY = d; }, clear: function () { for (var a = 0, b = this.attachedImages; a < b.length; ) { var c = b[a]; ++a; this.removeChild(c); } this.attachedImages = []; X.removeAllChildren(this.actorContainer); this.overlay.get_graphics().clear(); null != this.tiles && this.tiles.clear(); }, __class__: Ec }); var Bi = function (a, b, c, e, f, d, p) { null == d && (d = 0); this.x = e; this.y = f; this.shapes = a; this.shape = this.shapes[0]; this.ID = b; this.name = c; this.shapeID = d; this.simpleBounds = p; }; h['com.stencyl.models.scene.RegionDef'] = Bi; Bi.__name__ = 'com.stencyl.models.scene.RegionDef'; Bi.prototype = { x: null, y: null, shape: null, shapes: null, ID: null, name: null, shapeID: null, simpleBounds: null, __class__: Bi }; var Nf = function (a, b, c, e, f, d, p) { null == p && (p = !0); null == d && (d = 0); null == f && (f = 0); null == e && (e = 0); Ca.call(this); this.curStep = 0; this.running = !0; this.repeats = p; this.image1 = new Mc(a); this.addChild(this.image1); this.cacheWidth = this.image1.get_width(); this.cacheHeight = this.image1.get_height(); p && ((this.image2 = new Mc(a)), this.image2.set_x(this.image1.get_x() - this.cacheWidth), this.addChild(this.image2), (this.image3 = new Mc(a)), this.image3.set_x(this.image1.get_x() + this.cacheWidth), this.addChild(this.image3), (this.image4 = new Mc(a)), this.image4.set_x(this.image1.get_x() - this.cacheWidth), this.image4.set_y(this.image1.get_y() - this.cacheHeight), this.addChild(this.image4), (this.image5 = new Mc(a)), this.image5.set_y(this.image1.get_y() - this.cacheHeight), this.addChild(this.image5), (this.image6 = new Mc(a)), this.image6.set_x(this.image1.get_x() + this.cacheWidth), this.image6.set_y(this.image1.get_y() - this.cacheHeight), this.addChild(this.image6), (this.image7 = new Mc(a)), this.image7.set_x(this.image1.get_x() - this.cacheWidth), this.image7.set_y(this.image1.get_y() + this.cacheHeight), this.addChild(this.image7), (this.image8 = new Mc(a)), this.image8.set_y(this.image1.get_y() + this.cacheHeight), this.addChild(this.image8), (this.image9 = new Mc(a)), this.image9.set_x(this.image1.get_x() + this.cacheWidth), this.image9.set_y(this.image1.get_y() + this.cacheHeight), this.addChild(this.image9)); this.yPos = this.xPos = this.yP = this.xP = 0; this.xVelocity = b; this.yVelocity = c; this.parallaxX = e; this.parallaxY = f; this.scrolling = 0 != b || 0 != c; this.parallax = 0 != e || 0 != f; this.backgroundID = d; }; h['com.stencyl.models.scene.ScrollingBitmap'] = Nf; Nf.__name__ = 'com.stencyl.models.scene.ScrollingBitmap'; Nf.__super__ = Ca; Nf.prototype = r(Ca.prototype, { image1: null, image2: null, image3: null, image4: null, image5: null, image6: null, image7: null, image8: null, image9: null, speed: null, curStep: null, running: null, parallax: null, scrolling: null, cacheWidth: null, cacheHeight: null, xP: null, yP: null, xPos: null, yPos: null, xVelocity: null, yVelocity: null, parallaxX: null, parallaxY: null, backgroundID: null, repeats: null, update: function (a, b, c) { c = !1; this.parallax ? ((this.xPos = -((a * this.parallaxX) | 0)), (this.yPos = -((b * this.parallaxY) | 0)), (c = !0)) : this.running ? (this.yPos = this.xPos = 0) : ((this.xPos = this.xP), (this.yPos = this.yP)); if (this.scrolling && this.running) { a = this.cacheWidth; b = this.cacheHeight; this.xP += (this.xVelocity / 10) * k.SCALE; this.yP += (this.yVelocity / 10) * k.SCALE; if (this.repeats) { if (this.xP < -a || this.xP > a) this.xP = 0; if (this.yP < -b || this.yP > b) this.yP = 0; } this.xPos += Math.floor(this.xP); this.yPos += Math.floor(this.yP); this.curStep += 1; 1 <= this.curStep && ((c = !0), (this.curStep -= Math.floor(this.curStep))); } c && this.resetPositions(); }, resetPositions: function () { this.cacheWidth = this.image1.get_width(); this.cacheHeight = this.image1.get_height(); this.repeats && (this.xPos < -this.cacheWidth && (this.xPos %= this.cacheWidth), this.yPos < -this.cacheHeight && (this.yPos %= this.cacheHeight)); this.image1.set_x(this.xPos); this.image1.set_y(this.yPos); this.repeats && (this.image2.set_x(this.xPos - this.cacheWidth), this.image2.set_y(this.yPos), this.image3.set_x(this.xPos + this.cacheWidth), this.image3.set_y(this.yPos), this.image4.set_x(this.xPos - this.cacheWidth), this.image4.set_y(this.yPos - this.cacheHeight), this.image5.set_x(this.xPos), this.image5.set_y(this.yPos - this.cacheHeight), this.image6.set_x(this.xPos + this.cacheWidth), this.image6.set_y(this.yPos - this.cacheHeight), this.image7.set_x(this.xPos - this.cacheWidth), this.image7.set_y(this.yPos + this.cacheHeight), this.image8.set_x(this.xPos), this.image8.set_y(this.yPos + this.cacheHeight), this.image9.set_x(this.xPos + this.cacheWidth), this.image9.set_y(this.yPos + this.cacheHeight)); }, start: function () { this.running = !0; }, stop: function () { this.running = !1; }, __class__: Nf }); var no = function (a, b, c, e, f, d, p) { null == p && (p = 0); null == d && (d = 0); this.x = e; this.y = f; this.shapes = a; this.shape = this.shapes[0]; this.ID = b; this.name = c; this.groupID = d; 0 == this.fillColor && ((c = b = a = 0), null == c && (c = 0), null == b && (b = 0), null == a && (a = 0), (this.fillColor = (a << 16) | (b << 8) | c)); this.fillColor = p; }; h['com.stencyl.models.scene.TerrainDef'] = no; no.__name__ = 'com.stencyl.models.scene.TerrainDef'; no.prototype = { x: null, y: null, shape: null, shapes: null, ID: null, name: null, groupID: null, fillColor: null, __class__: no }; var Nc = function (a, b, c, e, f, d, p, l) { this.tileID = a; this.collisionID = b; this.metadata = c; this.frameIndex = e; this.durations = f; this.parent = l; var g = Fa.get().atlases.h[l.atlasID]; if (null != d) { this.autotileFormat = d; this.autotileMergeSet = p; p = []; var n = 0; for (d = d.autotileArrayLength; n < d; ) n++, p.push(new Nc(a, b, c, e, f, null, null, l)); this.autotiles = p; } null != g && g.active && this.loadGraphics(); this.currTime = this.currFrame = 0; this.updateSource = !1; }; h['com.stencyl.models.scene.Tile'] = Nc; Nc.__name__ = 'com.stencyl.models.scene.Tile'; Nc.prototype = { tileID: null, collisionID: null, metadata: null, frameIndex: null, parent: null, autotileFormat: null, autotiles: null, autotileMergeSet: null, pixels: null, durations: null, frames: null, currFrame: null, currTime: null, updateSource: null, data: null, update: function (a) { 1 == this.durations.length || k.paused || ((this.currTime += Math.floor(a)), this.currTime > (this.durations[this.currFrame] | 0) && ((this.currTime -= this.durations[this.currFrame] | 0), this.currFrame + 1 < this.durations.length ? this.currFrame++ : (this.currFrame = 0), (this.updateSource = !0))); }, getSource: function (a, b) { return new fa(this.currFrame * a * k.SCALE, 0, a * k.SCALE, b * k.SCALE); }, loadGraphics: function () { var a = null; if (1 < this.durations.length || null != this.autotileFormat) a = Da.getBitmapData( 'assets/graphics/' + k.IMG_BASE + '/tileset-' + this.parent.ID + '-' + this.tileID + '.png', !1 ); if (null != this.autotileFormat) { var b = 0, c = 0; for (a = this.createAutotileAnimations(a, this.autotileFormat); c < a.length; ) { var e = a[c]; ++c; this.autotiles[b++].loadAnimationPixels(e); } } else this.loadAnimationPixels(a); }, unloadGraphics: function () { this.data = this.pixels = null; if (null != this.autotiles) for (var a = 0, b = this.autotiles; a < b.length; ) { var c = b[a]; ++a; c.pixels = null; c.data = null; } }, loadAnimationPixels: function (a) { if (null != a) { this.pixels = a; this.data = new Rh(a); a = 0; for (var b = this.durations.length; a < b; ) (this.currFrame = a++), this.data.addRect(this.getSource(this.parent.tileWidth, this.parent.tileHeight)); } }, createAutotileAnimations: function (a, b) { var c = [], e = this.durations.length, f = (a.width / e / b.tilesAcross) | 0, d = (a.height / b.tilesDown) | 0, p = (f / 2) | 0, l = (d / 2) | 0; Nc.dummyRect.width = p; Nc.dummyRect.height = l; for (var v = 0, n = b.animCorners; v < n.length; ) { var k = n[v]; ++v; for ( var m = new ja(f * e, d), h = (function (a, b) { return function (c, e) { a[0](b[0], c, e); }; })([q(m, m.copyPixels)], [a]), t = 0, u = e; t < u; ) { var r = t++, w = f * b.tilesAcross * r; r *= f; var Ge = k.tl; Nc.dummyRect.x = w + Ge.x * Nc.dummyRect.width; Nc.dummyRect.y = Ge.y * Nc.dummyRect.height; h(Nc.dummyRect, new na(r, 0)); Ge = k.tr; Nc.dummyRect.x = w + Ge.x * Nc.dummyRect.width; Nc.dummyRect.y = Ge.y * Nc.dummyRect.height; h(Nc.dummyRect, new na(r + p, 0)); Ge = k.br; Nc.dummyRect.x = w + Ge.x * Nc.dummyRect.width; Nc.dummyRect.y = Ge.y * Nc.dummyRect.height; h(Nc.dummyRect, new na(r + p, l)); Ge = k.bl; Nc.dummyRect.x = w + Ge.x * Nc.dummyRect.width; Nc.dummyRect.y = Ge.y * Nc.dummyRect.height; h(Nc.dummyRect, new na(r, l)); } c.push(m); } return c; }, sourceRect: function (a, b) { Nc.dummyRect.x = b + a.x * Nc.dummyRect.width; Nc.dummyRect.y = a.y * Nc.dummyRect.height; return Nc.dummyRect; }, __class__: Nc }; var me = function (a, b, c, e) { Ca.call(this); this.layerID = a; this.scene = b; this.numRows = e; this.numCols = c; this.clear(); this.tilemaps = new Jc(); }; h['com.stencyl.models.scene.TileLayer'] = me; me.__name__ = 'com.stencyl.models.scene.TileLayer'; me.__interfaces__ = [rh]; me.resetStatics = function () { me.cacheSource = new Za(); }; me.__super__ = Ca; me.prototype = r(Ca.prototype, { layerID: null, rows: null, autotileData: null, grid: null, scene: null, numRows: null, numCols: null, tilemaps: null, noTiles: null, clear: function () { if (null != this.tilemaps) for (var a = this.tilemaps.iterator(); a.hasNext(); ) a.next().removeTiles(); this.noTiles = !0; this.rows = []; this.autotileData = []; a = 0; for (var b = this.numRows; a < b; ) { var c = a++; this.rows[c] = []; this.autotileData[c] = []; for (var e = 0, f = this.numCols; e < f; ) { var d = e++; this.rows[c][d] = null; this.autotileData[c][d] = 0; } } }, setPosition: function (a, b) {}, mountGrid: function () { if (null != this.grid) { var a = new tb( k.engine, 1e8, 1, 0, 0, -1, this.grid.get_width(), this.grid.get_height(), null, new qa(), null, null, !1, !0, !1, !1, this.grid, k.NO_PHYSICS ); a.set_name('Terrain'); a.typeID = -1; a.set_visible(!1); a.ignoreGravity = !0; k.engine.getGroup(1).addChild(a); } }, setTileAt: function (a, b, c, e) { null == e && (e = !0); if (!(0 > b || 0 > a || b >= this.numCols || a >= this.numRows)) { this.noTiles && null != c && (this.noTiles = !1); var f = this.rows[a][b]; e && (e = (null != f && null != f.autotiles) || (null != c && null != c.autotiles)); this.rows[a][b] = c; this.autotileData[a][b] = 0; e && this.updateAutotilesNear(a, b); } }, getTileAt: function (a, b) { return 0 > b || 0 > a || b >= this.numCols || a >= this.numRows ? null : this.rows[a][b]; }, updateAutotilesNear: function (a, b) { var c = a - 1; for (a += 2; c < a; ) for (var e = c++, f = b - 1, d = b + 2; f < d; ) { var p = f++; 0 > p || 0 > e || p >= this.numCols || e >= this.numRows || this.updateAutotile(e, p); } }, updateAutotile: function (a, b) { var c = this.rows[a][b]; if (null != c && null != c.autotiles) { for (var e = 0, f = me.autotileFlagPointMap.keys(); f.hasNext(); ) { var d = f.next(), p = me.autotileFlagPointMap.h[d], l = (b + p.x) | 0; p = (a + p.y) | 0; 0 > l || 0 > p || l >= this.numCols || p >= this.numRows || this.rows[p][l] == c || (e |= d); } this.autotileData[a][b] = c.autotileFormat.animIndex[e]; } }, draw: function (a, b) { if (!this.noTiles) { for (var c = this.tilemaps.iterator(); c.hasNext(); ) c.next().removeTiles(); a = Math.floor(a); b = Math.floor(b); var e = this.numRows; c = this.scene.tileWidth; var f = this.scene.tileHeight; a = (a / k.SCALE / c) | 0; var d = (b / k.SCALE / f) | 0; b = 2 + a + ((k.screenWidth / c) | 0); var p = 2 + d + ((k.screenHeight / f) | 0); b = Math.min(b, this.numCols) | 0; p = Math.min(p, e) | 0; for (e = d; e < p; ) { for (d = a; d < b; ) { var l = this.getTileAt(e, d); if (null != l && l.parent.graphicsLoaded) { if (null == me.cacheSource.h[1e6 * l.parent.ID + l.tileID] || l.updateSource) if (((l.updateSource = !1), null == l.pixels && null == l.autotiles)) { var v = me.cacheSource, n = 1e6 * l.parent.ID + l.tileID, h = l.parent.getImageSourceForTile(l.tileID, c, f); v.h[n] = h; } else (v = me.cacheSource), (n = 1e6 * l.parent.ID + l.tileID), (h = l.getSource(c, f)), (v.h[n] = h); null != me.cacheSource.h[1e6 * l.parent.ID + l.tileID] && (null != l.autotiles && (l = l.autotiles[this.autotileData[e][d]]), null == l.data ? ((v = l.parent.sheetMap.h[l.tileID]), this.getTilemap(l.parent.flTileset).addTile( new ig(v, d * c * k.SCALE, e * f * k.SCALE) )) : ((v = l.currFrame), this.getTilemap(l.data).addTile( new ig(v, d * c * k.SCALE, e * f * k.SCALE) ))); } ++d; } ++e; } } }, updateScale: function () { for (var a = this.tilemaps.iterator(); a.hasNext(); ) { var b = a.next(); b.set_width(k.sceneWidth * k.SCALE); b.set_height(k.sceneHeight * k.SCALE); } }, getTilemap: function (a) { if (null == this.tilemaps.h.__keys__[a.__id__]) { var b = new jg( (k.sceneWidth * k.SCALE) | 0, (k.sceneHeight * k.SCALE) | 0, a, aa.antialias ); this.tilemaps.set(a, b); this.addChild(b); } return this.tilemaps.h[a.__id__]; }, __class__: me }); var sf = function (a, b, c, e, f, d, p, l, v) { jd.call(this, a, c, b); this.framesAcross = e; this.framesDown = f; this.tileWidth = d; this.tileHeight = p; this.readableImages = l; this.tiles = v; }; h['com.stencyl.models.scene.Tileset'] = sf; sf.__name__ = 'com.stencyl.models.scene.Tileset'; sf.__super__ = jd; sf.prototype = r(jd.prototype, { framesAcross: null, framesDown: null, tileWidth: null, tileHeight: null, tiles: null, readableImages: null, pixels: null, graphicsLoaded: null, flTileset: null, sheetMap: null, setupFLTileset: function () { this.sheetMap = new Za(); if (null != this.pixels) { this.flTileset = new Rh(this.convertPixels(this.pixels)); for (var a = 0, b = this.tiles; a < b.length; ) { var c = b[a]; ++a; if (null != c) { var e = this.getImageSourceForTile( c.tileID, this.tileWidth | 0, this.tileHeight | 0 ), f = this.sheetMap; c = c.tileID; e = this.flTileset.addRect(e); f.h[c] = e; } } } }, getImageSourceForTile: function (a, b, c) { var e = this.tiles[a]; null == e ? ((sf.temp.x = 0), (sf.temp.y = 0)) : ((a = Math.floor(e.frameIndex / this.framesAcross)), (e = Math.floor(e.frameIndex % this.framesAcross)), (sf.temp.x = e * b * k.SCALE + 2 * e + 1), (sf.temp.y = a * c * k.SCALE + 2 * a + 1)); sf.temp.width = b * k.SCALE; sf.temp.height = c * k.SCALE; return sf.temp.clone(); }, loadGraphics: function () { if (!this.graphicsLoaded) { this.pixels = Da.getBitmapData( 'assets/graphics/' + k.IMG_BASE + '/tileset-' + this.ID + '.png', !1 ); for (var a = 0, b = this.tiles; a < b.length; ) { var c = b[a]; ++a; null != c && c.loadGraphics(); } this.setupFLTileset(); aa.disposeImages && !this.readableImages && this.pixels.dispose(); this.graphicsLoaded = !0; } }, unloadGraphics: function () { if (this.graphicsLoaded) { this.pixels.readable && this.pixels.dispose(); this.flTileset = this.pixels = null; for (var a = 0, b = this.tiles; a < b.length; ) { var c = b[a]; ++a; null != c && c.unloadGraphics(); } this.graphicsLoaded = !1; } }, reloadGraphics: function (a) { if (-1 == a) { this.unloadGraphics(); this.loadGraphics(); a = 0; for (var b = this.tiles; a < b.length; ) { var c = b[a]; ++a; null != c && (c.updateSource = !0); } } else (a = this.tiles[a]), null != a && (a.unloadGraphics(), a.loadGraphics()); k.engine.tileUpdated = !0; }, convertPixels: function (a) { for ( var b = (this.tileWidth * k.SCALE) | 0, c = (this.tileHeight * k.SCALE) | 0, e = (a.width / b) | 0, f = (a.height / c) | 0, d = new ja((a.width + 2 * e) | 0, (a.height + 2 * f) | 0, !0, 0), p, l, v, n, h = 0; h < f; ) { for (p = 0; p < e; ) (l = (p * b + 2 * p + 1) | 0), (v = (h * c + 2 * h + 1) | 0), (n = new fa(p * b, h * c, b, c)), (l = new na(l, v)), d.copyPixels(a, n, l), ++p; ++h; } for (h = 0; h < f; ) { for (p = 0; p < e; ) { l = (p * b + 2 * p + 1) | 0; v = (h * c + 2 * h + 1) | 0; for (a = 0; a < b; ) (n = d.getPixel32(l + a, v)), d.setPixel32(l + a, v - 1, n), (n = d.getPixel32(l + a, v + c - 1)), d.setPixel32(l + a, v + c, n), ++a; for (a = 0; a < c; ) (n = d.getPixel32(l, v + a)), d.setPixel32(l - 1, v + a, n), (n = d.getPixel32(l + b - 1, v + a)), d.setPixel32(l + b, v + a, n), ++a; ++p; } ++h; } return d; }, __class__: sf }); var oo = function (a, b, c, e, f, d) { this.x = a; this.y = b; this.width = c; this.height = e; this.shape = f; this.shape2 = d; }; h['com.stencyl.models.scene.Wireframe'] = oo; oo.__name__ = 'com.stencyl.models.scene.Wireframe'; oo.prototype = { x: null, y: null, shape: null, shape2: null, width: null, height: null, __class__: oo }; var Wd = function (a, b, c, e, f, d, p, l, v) { zg.call(this, a, b, c, e, f, d, p); this.resourceID = l; this.customScroll = v; this.model = x.__cast(lc.get().resources.get(l), Ag); }; h['com.stencyl.models.scene.layers.BackgroundLayer'] = Wd; Wd.__name__ = 'com.stencyl.models.scene.layers.BackgroundLayer'; Wd.__super__ = zg; Wd.prototype = r(zg.prototype, { model: null, bitmap: null, resourceID: null, customScroll: null, isAnimated: null, frameCount: null, currIndex: null, currTime: null, cacheIndex: null, cacheWidth: null, cacheHeight: null, bgChild: null, load: function () { if (null != this.model && null != this.model.img) { this.bitmap = new Mc(this.model.img, 1, !0); this.bitmap.smoothing = aa.antialias; this.currTime = this.currIndex = 0; this.isAnimated = 1 < this.model.frames.length; this.frameCount = this.model.frames.length; this.model.repeats && !this.model.repeated && this.model.drawRepeated( this, (k.screenWidth * k.SCALE) | 0, (k.screenHeight * k.SCALE) | 0 ); var a = 0, b = 0; if (this.customScroll) (a = this.scrollFactorX), (b = this.scrollFactorY); else if (this.model.repeats) (a = this.model.parallaxX), (b = this.model.parallaxY); else { var c = this.model.img.width, e = this.model.img.height, f = (k.screenWidth * k.SCALE) | 0, d = (k.screenHeight * k.SCALE) | 0, p = (k.sceneWidth * k.SCALE) | 0, l = (k.sceneHeight * k.SCALE) | 0; c > f && c < p && (a = 1 - (p - c) / (p - f)); e > d && e < l && (b = 1 - (l - e) / (l - d)); } this.model instanceof wh ? ((c = x.__cast(this.model, wh)), (a = new Nf( this.model.img, c.xVelocity, c.yVelocity, a, b, this.resourceID, this.model.repeats )), this.addChild((this.bgChild = a))) : this.model.repeats ? ((a = new Nf(this.model.img, 0, 0, a, b, this.resourceID)), this.addChild((this.bgChild = a))) : ((this.cacheWidth = this.model.img.width), (this.cacheHeight = this.model.img.height), (this.scrollFactorX = a), (this.scrollFactorY = b), this.addChild((this.bgChild = this.bitmap))); } }, loadFromImg: function (a, b) { this.model = new wh(-1, -1, '', [100], 0, 0, b, 0, 0); this.model.img = a; this.model.frames = [a]; this.load(); }, setScrollFactor: function (a, b) { this.scrollFactorX = a; this.scrollFactorY = b; if (this.bgChild instanceof Nf) { var c = x.__cast(this.bgChild, Nf); c.parallaxX = a; c.parallaxY = b; c.parallax = 0 != a || 0 != b; } }, setScrollSpeed: function (a, b) { if (this.bgChild instanceof Nf) { var c = x.__cast(this.bgChild, Nf); c.xVelocity = a; c.yVelocity = b; c.scrolling = 0 != a || 0 != b; } }, reload: function (a) { null != this.bgChild && (this.removeChild(this.bgChild), (this.bgChild = null)); this.resourceID = a; this.model = x.__cast(lc.get().resources.get(this.resourceID), Ag); this.load(); }, setImage: function (a) { this.bitmap.set_bitmapData(a); this.currTime = this.currIndex = 0; this.isAnimated = 1 < this.model.frames.length; this.frameCount = this.model.frames.length; }, updateAnimation: function (a) { this.currTime += a; null != this.model && this.currTime >= this.model.durations[this.currIndex] && ((this.currTime = 0), this.currIndex++, this.currIndex >= this.frameCount && (this.currIndex = 0), this.bgChild instanceof Nf ? ((this.cacheIndex = this.currIndex), this.model.repeats && this.model.drawRepeated( this, (k.screenWidth * k.SCALE) | 0, (k.screenHeight * k.SCALE) | 0 ), (this.currIndex = this.cacheIndex), (a = this.bgChild.image1), a.set_bitmapData(this.model.frames[this.currIndex]), this.model.repeats && ((a = this.bgChild.image2), a.set_bitmapData(this.model.frames[this.currIndex]), (a = this.bgChild.image3), a.set_bitmapData(this.model.frames[this.currIndex]), (a = this.bgChild.image4), a.set_bitmapData(this.model.frames[this.currIndex]), (a = this.bgChild.image5), a.set_bitmapData(this.model.frames[this.currIndex]), (a = this.bgChild.image6), a.set_bitmapData(this.model.frames[this.currIndex]), (a = this.bgChild.image7), a.set_bitmapData(this.model.frames[this.currIndex]), (a = this.bgChild.image8), a.set_bitmapData(this.model.frames[this.currIndex]), (a = this.bgChild.image9), a.set_bitmapData(this.model.frames[this.currIndex]))) : this.bitmap.set_bitmapData(this.model.frames[this.currIndex])); }, updatePosition: function (a, b, c) { this.bgChild instanceof Nf ? x.__cast(this.bgChild, Nf).update(a, b, c) : (this.set_x(-((a * this.scrollFactorX) | 0)), this.set_y(-((b * this.scrollFactorY) | 0))); this.isAnimated && this.updateAnimation(c); }, getBitmap: function () { return this.bgChild; }, __class__: Wd }); var Pc = function (a, b, c, e) { null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.a = a; this.r = b; this.g = c; this.b = e; }; h['com.stencyl.utils.ARGB'] = Pc; Pc.__name__ = 'com.stencyl.utils.ARGB'; Pc.setARGBi = function (a, b, c, e) { return ((a & 255) << 24) | ((b & 255) << 16) | ((c & 255) << 8) | (e & 255); }; Pc.setARGBf = function (a, b, c, e) { a = 255 * (0 > a ? 0 : 1 < a ? 1 : a); b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); c = 255 * (0 > c ? 0 : 1 < c ? 1 : c); e = 255 * (0 > e ? 0 : 1 < e ? 1 : e); return ( ((((0 < a ? a + 0.5 : 0 > a ? a - 0.5 : 0) | 0) & 255) << 24) | ((((0 < b ? b + 0.5 : 0 > b ? b - 0.5 : 0) | 0) & 255) << 16) | ((((0 < c ? c + 0.5 : 0 > c ? c - 0.5 : 0) | 0) & 255) << 8) | (((0 < e ? e + 0.5 : 0 > e ? e - 0.5 : 0) | 0) & 255) ); }; Pc.toARGB = function (a) { return new Pc( 0.00392156862745098 * (a >>> 24), 0.00392156862745098 * ((a >>> 16) & 255), 0.00392156862745098 * ((a >>> 8) & 255), 0.00392156862745098 * (a & 255) ); }; Pc.getRGB = function (a) { return a & 16777215; }; Pc.setRGB = function (a, b, c, e) { return (b << 16) | (c << 8) | e | (a & -16777216); }; Pc.getA = function (a) { return a >>> 24; }; Pc.getAf = function (a) { return 0.00392156862745098 * (a >>> 24); }; Pc.getR = function (a) { return (a >>> 16) & 255; }; Pc.getRf = function (a) { return 0.00392156862745098 * ((a >>> 16) & 255); }; Pc.getG = function (a) { return (a >>> 8) & 255; }; Pc.getGf = function (a) { return 0.00392156862745098 * ((a >>> 8) & 255); }; Pc.getB = function (a) { return a & 255; }; Pc.getBf = function (a) { return 0.00392156862745098 * (a & 255); }; Pc.setA = function (a, b) { return (b << 24) | (a & 16777215); }; Pc.setAf = function (a, b) { b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); return (((0 < b ? b + 0.5 : 0 > b ? b - 0.5 : 0) | 0) << 24) | (a & 16777215); }; Pc.setR = function (a, b) { return ((b & 255) << 16) | (a & -16711681); }; Pc.setRf = function (a, b) { b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); return ((((0 < b ? b + 0.5 : 0 > b ? b - 0.5 : 0) | 0) & 255) << 16) | (a & -16711681); }; Pc.setG = function (a, b) { return (b << 8) | (a & -65281); }; Pc.setGf = function (a, b) { b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); return (((0 < b ? b + 0.5 : 0 > b ? b - 0.5 : 0) | 0) << 8) | (a & -65281); }; Pc.setB = function (a, b) { return b | (a & -256); }; Pc.setBf = function (a, b) { b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); return (0 < b ? b + 0.5 : 0 > b ? b - 0.5 : 0) | 0 | (a & -256); }; Pc.prototype = { a: null, r: null, g: null, b: null, set: function (a, b, c, e) { this.a = a; this.r = b; this.g = c; this.b = e; }, lerp: function (a, b, c) { c.a = this.a + (a.a - this.a) * b; c.r = this.r + (a.r - this.r) * b; c.g = this.g + (a.g - this.g) * b; c.b = this.b + (a.b - this.b) * b; }, getA8: function () { var a = 255 * this.a; return (0 < a ? a + 0.5 : 0 > a ? a - 0.5 : 0) | 0; }, getR8: function () { var a = 255 * this.r; return (0 < a ? a + 0.5 : 0 > a ? a - 0.5 : 0) | 0; }, getG8: function () { var a = 255 * this.g; return (0 < a ? a + 0.5 : 0 > a ? a - 0.5 : 0) | 0; }, getB8: function () { var a = 255 * this.b; return (0 < a ? a + 0.5 : 0 > a ? a - 0.5 : 0) | 0; }, get24: function () { var a = 255 * this.r, b = 255 * this.g, c = 255 * this.b; return ( (((0 < a ? a + 0.5 : 0 > a ? a - 0.5 : 0) | 0) << 16) | (((0 < b ? b + 0.5 : 0 > b ? b - 0.5 : 0) | 0) << 8) | (0 < c ? c + 0.5 : 0 > c ? c - 0.5 : 0) | 0 ); }, set24: function (a, b, c) { this.a = this.a; this.r = 0.00392156862745098 * (a & 255); this.g = 0.00392156862745098 * (b & 255); this.b = 0.00392156862745098 * (c & 255); }, get32: function () { var a = 255 * this.a, b = 255 * this.r, c = 255 * this.g, e = 255 * this.b; return ( (((0 < a ? a + 0.5 : 0 > a ? a - 0.5 : 0) | 0) << 24) | (((0 < b ? b + 0.5 : 0 > b ? b - 0.5 : 0) | 0) << 16) | (((0 < c ? c + 0.5 : 0 > c ? c - 0.5 : 0) | 0) << 8) | (0 < e ? e + 0.5 : 0 > e ? e - 0.5 : 0) | 0 ); }, set32: function (a, b, c, e) { this.a = 0.00392156862745098 * (a & 255); this.r = 0.00392156862745098 * (b & 255); this.g = 0.00392156862745098 * (c & 255); this.b = 0.00392156862745098 * (e & 255); }, copy: function (a) { a.a = this.a; a.r = this.r; a.g = this.g; a.b = this.b; return a; }, __class__: Pc }; var Vh = (E['com.stencyl.utils.ColorDeficiencyTypes'] = { __ename__: 'com.stencyl.utils.ColorDeficiencyTypes', __constructs__: null, Protanopia: { _hx_name: 'Protanopia', _hx_index: 0, __enum__: 'com.stencyl.utils.ColorDeficiencyTypes', toString: w }, Protanomaly: { _hx_name: 'Protanomaly', _hx_index: 1, __enum__: 'com.stencyl.utils.ColorDeficiencyTypes', toString: w }, Deuteranopia: { _hx_name: 'Deuteranopia', _hx_index: 2, __enum__: 'com.stencyl.utils.ColorDeficiencyTypes', toString: w }, Deuteranomaly: { _hx_name: 'Deuteranomaly', _hx_index: 3, __enum__: 'com.stencyl.utils.ColorDeficiencyTypes', toString: w }, Tritanopia: { _hx_name: 'Tritanopia', _hx_index: 4, __enum__: 'com.stencyl.utils.ColorDeficiencyTypes', toString: w }, Tritanomaly: { _hx_name: 'Tritanomaly', _hx_index: 5, __enum__: 'com.stencyl.utils.ColorDeficiencyTypes', toString: w }, Achromatopsia: { _hx_name: 'Achromatopsia', _hx_index: 6, __enum__: 'com.stencyl.utils.ColorDeficiencyTypes', toString: w }, Achromatomaly: { _hx_name: 'Achromatomaly', _hx_index: 7, __enum__: 'com.stencyl.utils.ColorDeficiencyTypes', toString: w } }); Vh.__constructs__ = [ Vh.Protanopia, Vh.Protanomaly, Vh.Deuteranopia, Vh.Deuteranomaly, Vh.Tritanopia, Vh.Tritanomaly, Vh.Achromatopsia, Vh.Achromatomaly ]; var $a = function () { this.identity(); this.matrix = []; }; h['com.stencyl.utils.ColorMatrix'] = $a; $a.__name__ = 'com.stencyl.utils.ColorMatrix'; $a.mulMatrixMatrix = function (a, b, c) { var e = a.m11, f = a.m12, d = a.m13, p = a.m14; c.m11 = a.m11 * b.m11 + a.m12 * b.m21 + a.m13 * b.m31 + a.m14 * b.m41; c.m12 = e * b.m12 + a.m12 * b.m22 + a.m13 * b.m32 + a.m14 * b.m42; c.m13 = e * b.m13 + f * b.m23 + a.m13 * b.m33 + a.m14 * b.m43; c.m14 = e * b.m14 + f * b.m24 + d * b.m34 + a.m14 * b.m44; c.m15 = e * b.m15 + f * b.m25 + d * b.m35 + p * b.m45; e = a.m21; f = a.m22; d = a.m23; p = a.m24; c.m21 = a.m21 * b.m11 + a.m22 * b.m21 + a.m23 * b.m31 + a.m24 * b.m41; c.m22 = e * b.m12 + a.m22 * b.m22 + a.m23 * b.m32 + a.m24 * b.m42; c.m23 = e * b.m13 + f * b.m23 + a.m23 * b.m33 + a.m24 * b.m43; c.m24 = e * b.m14 + f * b.m24 + d * b.m34 + a.m24 * b.m44; c.m25 = e * b.m15 + f * b.m25 + d * b.m35 + p * b.m45; e = a.m31; f = a.m32; d = a.m33; p = a.m34; c.m31 = a.m31 * b.m11 + a.m32 * b.m21 + a.m33 * b.m31 + a.m34 * b.m41; c.m32 = e * b.m12 + a.m32 * b.m22 + a.m33 * b.m32 + a.m34 * b.m42; c.m33 = e * b.m13 + f * b.m23 + a.m33 * b.m33 + a.m34 * b.m43; c.m34 = e * b.m14 + f * b.m24 + d * b.m34 + a.m34 * b.m44; c.m35 = e * b.m15 + f * b.m25 + d * b.m35 + p * b.m45; e = a.m41; f = a.m42; d = a.m43; p = a.m44; c.m41 = a.m41 * b.m11 + a.m42 * b.m21 + a.m43 * b.m31 + a.m44 * b.m41; c.m42 = e * b.m12 + a.m42 * b.m22 + a.m43 * b.m32 + a.m44 * b.m42; c.m43 = e * b.m13 + f * b.m23 + a.m43 * b.m33 + a.m44 * b.m43; c.m44 = e * b.m14 + f * b.m24 + d * b.m34 + a.m44 * b.m44; c.m45 = e * b.m15 + f * b.m25 + d * b.m35 + p * b.m45; return c; }; $a.blendMatrixMatrix = function (a, b, c, e) { var f = 1 - e; c.m11 = f * a.m11 + e * b.m11; c.m12 = f * a.m12 + e * b.m12; c.m13 = f * a.m13 + e * b.m13; c.m14 = f * a.m14 + e * b.m14; c.m15 = f * a.m15 + e * b.m15; c.m21 = f * a.m21 + e * b.m21; c.m22 = f * a.m22 + e * b.m22; c.m23 = f * a.m23 + e * b.m23; c.m24 = f * a.m24 + e * b.m24; c.m25 = f * a.m25 + e * b.m25; c.m31 = f * a.m31 + e * b.m31; c.m32 = f * a.m32 + e * b.m32; c.m33 = f * a.m33 + e * b.m33; c.m34 = f * a.m34 + e * b.m34; c.m35 = f * a.m35 + e * b.m35; c.m41 = f * a.m41 + e * b.m41; c.m42 = f * a.m42 + e * b.m42; c.m43 = f * a.m43 + e * b.m43; c.m44 = f * a.m44 + e * b.m44; c.m45 = f * a.m45 + e * b.m45; return c; }; $a.prototype = { m11: null, m12: null, m13: null, m14: null, m15: null, m21: null, m22: null, m23: null, m24: null, m25: null, m31: null, m32: null, m33: null, m34: null, m35: null, m41: null, m42: null, m43: null, m44: null, m45: null, matrix: null, preHue: null, postHue: null, hueInitialized: null, getFilter: function () { var a = this.matrix; a[0] = this.m11; a[1] = this.m12; a[2] = this.m13; a[3] = this.m14; a[4] = this.m15; a[5] = this.m21; a[6] = this.m22; a[7] = this.m23; a[8] = this.m24; a[9] = this.m25; a[10] = this.m31; a[11] = this.m32; a[12] = this.m33; a[13] = this.m34; a[14] = this.m35; a[15] = this.m41; a[16] = this.m42; a[17] = this.m43; a[18] = this.m44; a[19] = this.m45; return new hg(this.matrix); }, identity: function () { this.m11 = 1; this.m21 = this.m15 = this.m14 = this.m13 = this.m12 = 0; this.m22 = 1; this.m32 = this.m31 = this.m25 = this.m24 = this.m23 = 0; this.m33 = 1; this.m43 = this.m42 = this.m41 = this.m35 = this.m34 = 0; this.m44 = 1; this.m45 = 0; return this; }, invert: function () { var a = this.m11, b = this.m12, c = this.m13, e = this.m14; this.m11 = -1 * this.m11 + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0 * a + -1 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m13 = 0 * a + 0 * b + -1 * this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + this.m14; this.m15 = 255 * a + 255 * b + 255 * c + 0 * e; a = this.m21; b = this.m22; c = this.m23; e = this.m24; this.m21 = -1 * this.m21 + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0 * a + -1 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m23 = 0 * a + 0 * b + -1 * this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + this.m24; this.m25 = 255 * a + 255 * b + 255 * c + 0 * e; a = this.m31; b = this.m32; c = this.m33; e = this.m34; this.m31 = -1 * this.m31 + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0 * a + -1 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m33 = 0 * a + 0 * b + -1 * this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + this.m34; this.m35 = 255 * a + 255 * b + 255 * c + 0 * e; a = this.m41; b = this.m42; c = this.m43; e = this.m44; this.m41 = -1 * this.m41 + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0 * a + -1 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m43 = 0 * a + 0 * b + -1 * this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + this.m44; this.m45 = 255 * a + 255 * b + 255 * c + 0 * e; return this; }, adjustSaturation: function (a) { var b = 1 - a, c = b * $a.LUMA_R, e = b * $a.LUMA_G; b *= $a.LUMA_B; var f = c + a, d = e + a; a = b + a; var p = this.m11, l = this.m12, v = this.m13, n = this.m14; this.m11 = this.m11 * f + this.m12 * c + this.m13 * c + 0 * this.m14; this.m12 = p * e + this.m12 * d + this.m13 * e + 0 * this.m14; this.m13 = p * b + l * b + this.m13 * a + 0 * this.m14; this.m14 = 0 * p + 0 * l + 0 * v + this.m14; this.m15 = 0 * p + 0 * l + 0 * v + 0 * n; p = this.m21; l = this.m22; v = this.m23; n = this.m24; this.m21 = this.m21 * f + this.m22 * c + this.m23 * c + 0 * this.m24; this.m22 = p * e + this.m22 * d + this.m23 * e + 0 * this.m24; this.m23 = p * b + l * b + this.m23 * a + 0 * this.m24; this.m24 = 0 * p + 0 * l + 0 * v + this.m24; this.m25 = 0 * p + 0 * l + 0 * v + 0 * n; p = this.m31; l = this.m32; v = this.m33; n = this.m34; this.m31 = this.m31 * f + this.m32 * c + this.m33 * c + 0 * this.m34; this.m32 = p * e + this.m32 * d + this.m33 * e + 0 * this.m34; this.m33 = p * b + l * b + this.m33 * a + 0 * this.m34; this.m34 = 0 * p + 0 * l + 0 * v + this.m34; this.m35 = 0 * p + 0 * l + 0 * v + 0 * n; p = this.m41; l = this.m42; v = this.m43; n = this.m44; this.m41 = this.m41 * f + this.m42 * c + this.m43 * c + 0 * this.m44; this.m42 = p * e + this.m42 * d + this.m43 * e + 0 * this.m44; this.m43 = p * b + l * b + this.m43 * a + 0 * this.m44; this.m44 = 0 * p + 0 * l + 0 * v + this.m44; this.m45 = 0 * p + 0 * l + 0 * v + 0 * n; return this; }, adjustBrightness: function (a) { this.adjustBrightnessRGB(a, a, a); return this; }, adjustBrightnessRGB: function (a, b, c) { a *= 255; b *= 255; c *= 255; var e = this.m11, f = this.m12, d = this.m13, p = this.m14; this.m11 = this.m11 + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0 * e + this.m12 + 0 * this.m13 + 0 * this.m14; this.m13 = 0 * e + 0 * f + this.m13 + 0 * this.m14; this.m14 = 0 * e + 0 * f + 0 * d + this.m14; this.m15 = e * a + f * b + d * c + 0 * p; e = this.m21; f = this.m22; d = this.m23; p = this.m24; this.m21 = this.m21 + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0 * e + this.m22 + 0 * this.m23 + 0 * this.m24; this.m23 = 0 * e + 0 * f + this.m23 + 0 * this.m24; this.m24 = 0 * e + 0 * f + 0 * d + this.m24; this.m25 = e * a + f * b + d * c + 0 * p; e = this.m31; f = this.m32; d = this.m33; p = this.m34; this.m31 = this.m31 + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0 * e + this.m32 + 0 * this.m33 + 0 * this.m34; this.m33 = 0 * e + 0 * f + this.m33 + 0 * this.m34; this.m34 = 0 * e + 0 * f + 0 * d + this.m34; this.m35 = e * a + f * b + d * c + 0 * p; e = this.m41; f = this.m42; d = this.m43; p = this.m44; this.m41 = this.m41 + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0 * e + this.m42 + 0 * this.m43 + 0 * this.m44; this.m43 = 0 * e + 0 * f + this.m43 + 0 * this.m44; this.m44 = 0 * e + 0 * f + 0 * d + this.m44; this.m45 = e * a + f * b + d * c + 0 * p; return this; }, adjustContrast: function (a) { this.adjustContrastRGB(a, a, a); return this; }, adjustContrastRGB: function (a, b, c) { a += 1; b += 1; c += 1; var e = 128 * (1 - a), f = 128 * (1 - b), d = 128 * (1 - c), p = this.m11, l = this.m12, v = this.m13, n = this.m14; this.m11 = this.m11 * a + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0 * p + this.m12 * b + 0 * this.m13 + 0 * this.m14; this.m13 = 0 * p + 0 * l + this.m13 * c + 0 * this.m14; this.m14 = 0 * p + 0 * l + 0 * v + this.m14; this.m15 = p * e + l * f + v * d + 0 * n; p = this.m21; l = this.m22; v = this.m23; n = this.m24; this.m21 = this.m21 * a + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0 * p + this.m22 * b + 0 * this.m23 + 0 * this.m24; this.m23 = 0 * p + 0 * l + this.m23 * c + 0 * this.m24; this.m24 = 0 * p + 0 * l + 0 * v + this.m24; this.m25 = p * e + l * f + v * d + 0 * n; p = this.m31; l = this.m32; v = this.m33; n = this.m34; this.m31 = this.m31 * a + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0 * p + this.m32 * b + 0 * this.m33 + 0 * this.m34; this.m33 = 0 * p + 0 * l + this.m33 * c + 0 * this.m34; this.m34 = 0 * p + 0 * l + 0 * v + this.m34; this.m35 = p * e + l * f + v * d + 0 * n; p = this.m41; l = this.m42; v = this.m43; n = this.m44; this.m41 = this.m41 * a + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0 * p + this.m42 * b + 0 * this.m43 + 0 * this.m44; this.m43 = 0 * p + 0 * l + this.m43 * c + 0 * this.m44; this.m44 = 0 * p + 0 * l + 0 * v + this.m44; this.m45 = p * e + l * f + v * d + 0 * n; return this; }, adjustHue: function (a) { a *= 0.01745329251994278; var b = Math.cos(a), c = Math.sin(a); a = $a.LUMA_R + b * (1 - $a.LUMA_R) + c * -$a.LUMA_R; var e = $a.LUMA_G + b * -$a.LUMA_G + c * -$a.LUMA_G, f = $a.LUMA_B + b * -$a.LUMA_B + c * (1 - $a.LUMA_B), d = $a.LUMA_R + b * -$a.LUMA_R + 0.143 * c, p = $a.LUMA_G + b * (1 - $a.LUMA_G) + 0.14 * c, l = $a.LUMA_B + b * -$a.LUMA_B + -0.283 * c, v = $a.LUMA_R + b * -$a.LUMA_R + c * -(1 - $a.LUMA_R), n = $a.LUMA_G + b * -$a.LUMA_G + c * $a.LUMA_G; b = $a.LUMA_B + b * (1 - $a.LUMA_B) + c * $a.LUMA_B; c = this.m11; var k = this.m12, m = this.m13, h = this.m14; this.m11 = this.m11 * a + this.m12 * d + this.m13 * v + 0 * this.m14; this.m12 = c * e + this.m12 * p + this.m13 * n + 0 * this.m14; this.m13 = c * f + k * l + this.m13 * b + 0 * this.m14; this.m14 = 0 * c + 0 * k + 0 * m + this.m14; this.m15 = 0 * c + 0 * k + 0 * m + 0 * h; c = this.m21; k = this.m22; m = this.m23; h = this.m24; this.m21 = this.m21 * a + this.m22 * d + this.m23 * v + 0 * this.m24; this.m22 = c * e + this.m22 * p + this.m23 * n + 0 * this.m24; this.m23 = c * f + k * l + this.m23 * b + 0 * this.m24; this.m24 = 0 * c + 0 * k + 0 * m + this.m24; this.m25 = 0 * c + 0 * k + 0 * m + 0 * h; c = this.m31; k = this.m32; m = this.m33; h = this.m34; this.m31 = this.m31 * a + this.m32 * d + this.m33 * v + 0 * this.m34; this.m32 = c * e + this.m32 * p + this.m33 * n + 0 * this.m34; this.m33 = c * f + k * l + this.m33 * b + 0 * this.m34; this.m34 = 0 * c + 0 * k + 0 * m + this.m34; this.m35 = 0 * c + 0 * k + 0 * m + 0 * h; c = this.m41; k = this.m42; m = this.m43; h = this.m44; this.m41 = this.m41 * a + this.m42 * d + this.m43 * v + 0 * this.m44; this.m42 = c * e + this.m42 * p + this.m43 * n + 0 * this.m44; this.m43 = c * f + k * l + this.m43 * b + 0 * this.m44; this.m44 = 0 * c + 0 * k + 0 * m + this.m44; this.m45 = 0 * c + 0 * k + 0 * m + 0 * h; return this; }, luminance2Alpha: function () { var a = $a.LUMA_R, b = $a.LUMA_G, c = $a.LUMA_B, e = this.m11, f = this.m12, d = this.m13, p = this.m14; this.m11 = 0 * this.m11 + 0 * this.m12 + 0 * this.m13 + this.m14 * a; this.m12 = 0 * e + 0 * this.m12 + 0 * this.m13 + this.m14 * b; this.m13 = 0 * e + 0 * f + 0 * this.m13 + this.m14 * c; this.m14 = 0 * e + 0 * f + 0 * d + 0 * this.m14; this.m15 = 255 * e + 255 * f + 255 * d + 0 * p; e = this.m21; f = this.m22; d = this.m23; p = this.m24; this.m21 = 0 * this.m21 + 0 * this.m22 + 0 * this.m23 + this.m24 * a; this.m22 = 0 * e + 0 * this.m22 + 0 * this.m23 + this.m24 * b; this.m23 = 0 * e + 0 * f + 0 * this.m23 + this.m24 * c; this.m24 = 0 * e + 0 * f + 0 * d + 0 * this.m24; this.m25 = 255 * e + 255 * f + 255 * d + 0 * p; e = this.m31; f = this.m32; d = this.m33; p = this.m34; this.m31 = 0 * this.m31 + 0 * this.m32 + 0 * this.m33 + this.m34 * a; this.m32 = 0 * e + 0 * this.m32 + 0 * this.m33 + this.m34 * b; this.m33 = 0 * e + 0 * f + 0 * this.m33 + this.m34 * c; this.m34 = 0 * e + 0 * f + 0 * d + 0 * this.m34; this.m35 = 255 * e + 255 * f + 255 * d + 0 * p; e = this.m41; f = this.m42; d = this.m43; p = this.m44; this.m41 = 0 * this.m41 + 0 * this.m42 + 0 * this.m43 + this.m44 * a; this.m42 = 0 * e + 0 * this.m42 + 0 * this.m43 + this.m44 * b; this.m43 = 0 * e + 0 * f + 0 * this.m43 + this.m44 * c; this.m44 = 0 * e + 0 * f + 0 * d + 0 * this.m44; this.m45 = 255 * e + 255 * f + 255 * d + 0 * p; return this; }, adjustAlphaContrast: function (a) { a += 1; var b = 128 * (1 - a), c = this.m11, e = this.m12, f = this.m13, d = this.m14; this.m11 = this.m11 + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0 * c + this.m12 + 0 * this.m13 + 0 * this.m14; this.m13 = 0 * c + 0 * e + this.m13 + 0 * this.m14; this.m14 = 0 * c + 0 * e + 0 * f + this.m14 * a; this.m15 = 0 * c + 0 * e + 0 * f + d * b; c = this.m21; e = this.m22; f = this.m23; d = this.m24; this.m21 = this.m21 + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0 * c + this.m22 + 0 * this.m23 + 0 * this.m24; this.m23 = 0 * c + 0 * e + this.m23 + 0 * this.m24; this.m24 = 0 * c + 0 * e + 0 * f + this.m24 * a; this.m25 = 0 * c + 0 * e + 0 * f + d * b; c = this.m31; e = this.m32; f = this.m33; d = this.m34; this.m31 = this.m31 + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0 * c + this.m32 + 0 * this.m33 + 0 * this.m34; this.m33 = 0 * c + 0 * e + this.m33 + 0 * this.m34; this.m34 = 0 * c + 0 * e + 0 * f + this.m34 * a; this.m35 = 0 * c + 0 * e + 0 * f + d * b; c = this.m41; e = this.m42; f = this.m43; d = this.m44; this.m41 = this.m41 + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0 * c + this.m42 + 0 * this.m43 + 0 * this.m44; this.m43 = 0 * c + 0 * e + this.m43 + 0 * this.m44; this.m44 = 0 * c + 0 * e + 0 * f + this.m44 * a; this.m45 = 0 * c + 0 * e + 0 * f + d * b; return this; }, colorize: function (a, b) { null == b && (b = 1); var c = 0.00392156862745098 * ((a >>> 16) & 255), e = 0.00392156862745098 * ((a >>> 8) & 255), f = 0.00392156862745098 * (a & 255), d = 1 - b; a = d + b * c * $a.LUMA_R; var p = b * c * $a.LUMA_G; c = b * c * $a.LUMA_B; var l = b * e * $a.LUMA_R, v = d + b * e * $a.LUMA_G; e = b * e * $a.LUMA_B; var n = b * f * $a.LUMA_R, k = b * f * $a.LUMA_G; b = d + b * f * $a.LUMA_B; f = this.m11; d = this.m12; var m = this.m13, h = this.m14; this.m11 = this.m11 * a + this.m12 * l + this.m13 * n + 0 * this.m14; this.m12 = f * p + this.m12 * v + this.m13 * k + 0 * this.m14; this.m13 = f * c + d * e + this.m13 * b + 0 * this.m14; this.m14 = 0 * f + 0 * d + 0 * m + this.m14; this.m15 = 0 * f + 0 * d + 0 * m + 0 * h; f = this.m21; d = this.m22; m = this.m23; h = this.m24; this.m21 = this.m21 * a + this.m22 * l + this.m23 * n + 0 * this.m24; this.m22 = f * p + this.m22 * v + this.m23 * k + 0 * this.m24; this.m23 = f * c + d * e + this.m23 * b + 0 * this.m24; this.m24 = 0 * f + 0 * d + 0 * m + this.m24; this.m25 = 0 * f + 0 * d + 0 * m + 0 * h; f = this.m31; d = this.m32; m = this.m33; h = this.m34; this.m31 = this.m31 * a + this.m32 * l + this.m33 * n + 0 * this.m34; this.m32 = f * p + this.m32 * v + this.m33 * k + 0 * this.m34; this.m33 = f * c + d * e + this.m33 * b + 0 * this.m34; this.m34 = 0 * f + 0 * d + 0 * m + this.m34; this.m35 = 0 * f + 0 * d + 0 * m + 0 * h; f = this.m41; d = this.m42; m = this.m43; h = this.m44; this.m41 = this.m41 * a + this.m42 * l + this.m43 * n + 0 * this.m44; this.m42 = f * p + this.m42 * v + this.m43 * k + 0 * this.m44; this.m43 = f * c + d * e + this.m43 * b + 0 * this.m44; this.m44 = 0 * f + 0 * d + 0 * m + this.m44; this.m45 = 0 * f + 0 * d + 0 * m + 0 * h; return this; }, rotateHue: function (a) { if (!this.hueInitialized) { this.hueInitialized = !0; this.preHue = new $a(); this.preHue.rotateRed(45); this.preHue.rotateGreen(-39.182655); var b = []; b[0] = $a.LUMA_R2; b[1] = $a.LUMA_G2; b[2] = $a.LUMA_B2; b[3] = 1; this.preHue.transformVector(b); var c = b[0] / b[2]; b = b[1] / b[2]; this.preHue.shearBlue(c, b); this.postHue = new $a(); this.postHue.shearBlue(-c, -b); this.postHue.rotateGreen(39.182655); this.postHue.rotateRed(-45); } c = this.preHue; b = this.m11; var e = this.m12, f = this.m13, d = this.m14; this.m11 = this.m11 * c.m11 + this.m12 * c.m21 + this.m13 * c.m31 + this.m14 * c.m41; this.m12 = b * c.m12 + this.m12 * c.m22 + this.m13 * c.m32 + this.m14 * c.m42; this.m13 = b * c.m13 + e * c.m23 + this.m13 * c.m33 + this.m14 * c.m43; this.m14 = b * c.m14 + e * c.m24 + f * c.m34 + this.m14 * c.m44; this.m15 = b * c.m15 + e * c.m25 + f * c.m35 + d * c.m45; b = this.m21; e = this.m22; f = this.m23; d = this.m24; this.m21 = this.m21 * c.m11 + this.m22 * c.m21 + this.m23 * c.m31 + this.m24 * c.m41; this.m22 = b * c.m12 + this.m22 * c.m22 + this.m23 * c.m32 + this.m24 * c.m42; this.m23 = b * c.m13 + e * c.m23 + this.m23 * c.m33 + this.m24 * c.m43; this.m24 = b * c.m14 + e * c.m24 + f * c.m34 + this.m24 * c.m44; this.m25 = b * c.m15 + e * c.m25 + f * c.m35 + d * c.m45; b = this.m31; e = this.m32; f = this.m33; d = this.m34; this.m31 = this.m31 * c.m11 + this.m32 * c.m21 + this.m33 * c.m31 + this.m34 * c.m41; this.m32 = b * c.m12 + this.m32 * c.m22 + this.m33 * c.m32 + this.m34 * c.m42; this.m33 = b * c.m13 + e * c.m23 + this.m33 * c.m33 + this.m34 * c.m43; this.m34 = b * c.m14 + e * c.m24 + f * c.m34 + this.m34 * c.m44; this.m35 = b * c.m15 + e * c.m25 + f * c.m35 + d * c.m45; b = this.m41; e = this.m42; f = this.m43; d = this.m44; this.m41 = this.m41 * c.m11 + this.m42 * c.m21 + this.m43 * c.m31 + this.m44 * c.m41; this.m42 = b * c.m12 + this.m42 * c.m22 + this.m43 * c.m32 + this.m44 * c.m42; this.m43 = b * c.m13 + e * c.m23 + this.m43 * c.m33 + this.m44 * c.m43; this.m44 = b * c.m14 + e * c.m24 + f * c.m34 + this.m44 * c.m44; this.m45 = b * c.m15 + e * c.m25 + f * c.m35 + d * c.m45; this.rotateBlue(a); c = this.postHue; b = this.m11; e = this.m12; f = this.m13; d = this.m14; this.m11 = this.m11 * c.m11 + this.m12 * c.m21 + this.m13 * c.m31 + this.m14 * c.m41; this.m12 = b * c.m12 + this.m12 * c.m22 + this.m13 * c.m32 + this.m14 * c.m42; this.m13 = b * c.m13 + e * c.m23 + this.m13 * c.m33 + this.m14 * c.m43; this.m14 = b * c.m14 + e * c.m24 + f * c.m34 + this.m14 * c.m44; this.m15 = b * c.m15 + e * c.m25 + f * c.m35 + d * c.m45; b = this.m21; e = this.m22; f = this.m23; d = this.m24; this.m21 = this.m21 * c.m11 + this.m22 * c.m21 + this.m23 * c.m31 + this.m24 * c.m41; this.m22 = b * c.m12 + this.m22 * c.m22 + this.m23 * c.m32 + this.m24 * c.m42; this.m23 = b * c.m13 + e * c.m23 + this.m23 * c.m33 + this.m24 * c.m43; this.m24 = b * c.m14 + e * c.m24 + f * c.m34 + this.m24 * c.m44; this.m25 = b * c.m15 + e * c.m25 + f * c.m35 + d * c.m45; b = this.m31; e = this.m32; f = this.m33; d = this.m34; this.m31 = this.m31 * c.m11 + this.m32 * c.m21 + this.m33 * c.m31 + this.m34 * c.m41; this.m32 = b * c.m12 + this.m32 * c.m22 + this.m33 * c.m32 + this.m34 * c.m42; this.m33 = b * c.m13 + e * c.m23 + this.m33 * c.m33 + this.m34 * c.m43; this.m34 = b * c.m14 + e * c.m24 + f * c.m34 + this.m34 * c.m44; this.m35 = b * c.m15 + e * c.m25 + f * c.m35 + d * c.m45; b = this.m41; e = this.m42; f = this.m43; d = this.m44; this.m41 = this.m41 * c.m11 + this.m42 * c.m21 + this.m43 * c.m31 + this.m44 * c.m41; this.m42 = b * c.m12 + this.m42 * c.m22 + this.m43 * c.m32 + this.m44 * c.m42; this.m43 = b * c.m13 + e * c.m23 + this.m43 * c.m33 + this.m44 * c.m43; this.m44 = b * c.m14 + e * c.m24 + f * c.m34 + this.m44 * c.m44; this.m45 = b * c.m15 + e * c.m25 + f * c.m35 + d * c.m45; return this; }, setChannels: function (a, b, c, e) { null == e && (e = 8); null == c && (c = 4); null == b && (b = 2); null == a && (a = 1); var f = (1 == (a & 1) ? 1 : 0) + (2 == (a & 2) ? 1 : 0) + (4 == (a & 4) ? 1 : 0) + (8 == (a & 8) ? 1 : 0); 0 < f && (f = 1 / f); var d = (1 == (b & 1) ? 1 : 0) + (2 == (b & 2) ? 1 : 0) + (4 == (b & 4) ? 1 : 0) + (8 == (b & 8) ? 1 : 0); 0 < d && (d = 1 / d); var p = (1 == (c & 1) ? 1 : 0) + (2 == (c & 2) ? 1 : 0) + (4 == (c & 4) ? 1 : 0) + (8 == (c & 8) ? 1 : 0); 0 < p && (p = 1 / p); var l = (1 == (e & 1) ? 1 : 0) + (2 == (e & 2) ? 1 : 0) + (4 == (e & 4) ? 1 : 0) + (8 == (e & 8) ? 1 : 0); 0 < l && (l = 1 / l); var v = 1 == (a & 1) ? f : 0, n = 2 == (a & 2) ? f : 0, k = 4 == (a & 4) ? f : 0; a = 8 == (a & 8) ? f : 0; f = 1 == (b & 1) ? d : 0; var m = 2 == (b & 2) ? d : 0, h = 4 == (b & 4) ? d : 0; b = 8 == (b & 8) ? d : 0; d = 1 == (c & 1) ? p : 0; var t = 2 == (c & 2) ? p : 0, u = 4 == (c & 4) ? p : 0; c = 8 == (c & 8) ? p : 0; p = 1 == (e & 1) ? l : 0; var q = 2 == (e & 2) ? l : 0, r = 4 == (e & 4) ? l : 0; e = 8 == (e & 8) ? l : 0; l = this.m11; var w = this.m12, ia = this.m13, x = this.m14; this.m11 = this.m11 * v + this.m12 * f + this.m13 * d + this.m14 * p; this.m12 = l * n + this.m12 * m + this.m13 * t + this.m14 * q; this.m13 = l * k + w * h + this.m13 * u + this.m14 * r; this.m14 = l * a + w * b + ia * c + this.m14 * e; this.m15 = 0 * l + 0 * w + 0 * ia + 0 * x; l = this.m21; w = this.m22; ia = this.m23; x = this.m24; this.m21 = this.m21 * v + this.m22 * f + this.m23 * d + this.m24 * p; this.m22 = l * n + this.m22 * m + this.m23 * t + this.m24 * q; this.m23 = l * k + w * h + this.m23 * u + this.m24 * r; this.m24 = l * a + w * b + ia * c + this.m24 * e; this.m25 = 0 * l + 0 * w + 0 * ia + 0 * x; l = this.m31; w = this.m32; ia = this.m33; x = this.m34; this.m31 = this.m31 * v + this.m32 * f + this.m33 * d + this.m34 * p; this.m32 = l * n + this.m32 * m + this.m33 * t + this.m34 * q; this.m33 = l * k + w * h + this.m33 * u + this.m34 * r; this.m34 = l * a + w * b + ia * c + this.m34 * e; this.m35 = 0 * l + 0 * w + 0 * ia + 0 * x; l = this.m41; w = this.m42; ia = this.m43; x = this.m44; this.m41 = this.m41 * v + this.m42 * f + this.m43 * d + this.m44 * p; this.m42 = l * n + this.m42 * m + this.m43 * t + this.m44 * q; this.m43 = l * k + w * h + this.m43 * u + this.m44 * r; this.m44 = l * a + w * b + ia * c + this.m44 * e; this.m45 = 0 * l + 0 * w + 0 * ia + 0 * x; return this; }, average: function (a, b, c) { null == c && (c = 0.33333333); null == b && (b = 0.33333333); null == a && (a = 0.33333333); var e = this.m11, f = this.m12, d = this.m13, p = this.m14; this.m11 = this.m11 * a + this.m12 * a + this.m13 * a + 0 * this.m14; this.m12 = e * b + this.m12 * b + this.m13 * b + 0 * this.m14; this.m13 = e * c + f * c + this.m13 * c + 0 * this.m14; this.m14 = 0 * e + 0 * f + 0 * d + this.m14; this.m15 = 0 * e + 0 * f + 0 * d + 0 * p; e = this.m21; f = this.m22; d = this.m23; p = this.m24; this.m21 = this.m21 * a + this.m22 * a + this.m23 * a + 0 * this.m24; this.m22 = e * b + this.m22 * b + this.m23 * b + 0 * this.m24; this.m23 = e * c + f * c + this.m23 * c + 0 * this.m24; this.m24 = 0 * e + 0 * f + 0 * d + this.m24; this.m25 = 0 * e + 0 * f + 0 * d + 0 * p; e = this.m31; f = this.m32; d = this.m33; p = this.m34; this.m31 = this.m31 * a + this.m32 * a + this.m33 * a + 0 * this.m34; this.m32 = e * b + this.m32 * b + this.m33 * b + 0 * this.m34; this.m33 = e * c + f * c + this.m33 * c + 0 * this.m34; this.m34 = 0 * e + 0 * f + 0 * d + this.m34; this.m35 = 0 * e + 0 * f + 0 * d + 0 * p; e = this.m41; f = this.m42; d = this.m43; p = this.m44; this.m41 = this.m41 * a + this.m42 * a + this.m43 * a + 0 * this.m44; this.m42 = e * b + this.m42 * b + this.m43 * b + 0 * this.m44; this.m43 = e * c + f * c + this.m43 * c + 0 * this.m44; this.m44 = 0 * e + 0 * f + 0 * d + this.m44; this.m45 = 0 * e + 0 * f + 0 * d + 0 * p; return this; }, threshold: function (a, b) { null == b && (b = 256); var c = $a.LUMA_R * b, e = $a.LUMA_G * b, f = $a.LUMA_B * b, d = -b * a, p = $a.LUMA_R * b, l = $a.LUMA_G * b, v = $a.LUMA_B * b, n = -b * a, k = $a.LUMA_R * b, m = $a.LUMA_G * b, h = $a.LUMA_B * b; a *= -b; b = this.m11; var t = this.m12, u = this.m13, q = this.m14; this.m11 = this.m11 * c + this.m12 * p + this.m13 * k + 0 * this.m14; this.m12 = b * e + this.m12 * l + this.m13 * m + 0 * this.m14; this.m13 = b * f + t * v + this.m13 * h + 0 * this.m14; this.m14 = 0 * b + 0 * t + 0 * u + this.m14; this.m15 = b * d + t * n + u * a + 0 * q; b = this.m21; t = this.m22; u = this.m23; q = this.m24; this.m21 = this.m21 * c + this.m22 * p + this.m23 * k + 0 * this.m24; this.m22 = b * e + this.m22 * l + this.m23 * m + 0 * this.m24; this.m23 = b * f + t * v + this.m23 * h + 0 * this.m24; this.m24 = 0 * b + 0 * t + 0 * u + this.m24; this.m25 = b * d + t * n + u * a + 0 * q; b = this.m31; t = this.m32; u = this.m33; q = this.m34; this.m31 = this.m31 * c + this.m32 * p + this.m33 * k + 0 * this.m34; this.m32 = b * e + this.m32 * l + this.m33 * m + 0 * this.m34; this.m33 = b * f + t * v + this.m33 * h + 0 * this.m34; this.m34 = 0 * b + 0 * t + 0 * u + this.m34; this.m35 = b * d + t * n + u * a + 0 * q; b = this.m41; t = this.m42; u = this.m43; q = this.m44; this.m41 = this.m41 * c + this.m42 * p + this.m43 * k + 0 * this.m44; this.m42 = b * e + this.m42 * l + this.m43 * m + 0 * this.m44; this.m43 = b * f + t * v + this.m43 * h + 0 * this.m44; this.m44 = 0 * b + 0 * t + 0 * u + this.m44; this.m45 = b * d + t * n + u * a + 0 * q; return this; }, desaturate: function () { var a = $a.LUMA_R, b = $a.LUMA_G, c = $a.LUMA_B, e = $a.LUMA_R, f = $a.LUMA_G, d = $a.LUMA_B, p = $a.LUMA_R, l = $a.LUMA_G, v = $a.LUMA_B, n = this.m11, k = this.m12, m = this.m13, h = this.m14; this.m11 = this.m11 * a + this.m12 * e + this.m13 * p + 0 * this.m14; this.m12 = n * b + this.m12 * f + this.m13 * l + 0 * this.m14; this.m13 = n * c + k * d + this.m13 * v + 0 * this.m14; this.m14 = 0 * n + 0 * k + 0 * m + this.m14; this.m15 = 0 * n + 0 * k + 0 * m + 0 * h; n = this.m21; k = this.m22; m = this.m23; h = this.m24; this.m21 = this.m21 * a + this.m22 * e + this.m23 * p + 0 * this.m24; this.m22 = n * b + this.m22 * f + this.m23 * l + 0 * this.m24; this.m23 = n * c + k * d + this.m23 * v + 0 * this.m24; this.m24 = 0 * n + 0 * k + 0 * m + this.m24; this.m25 = 0 * n + 0 * k + 0 * m + 0 * h; n = this.m31; k = this.m32; m = this.m33; h = this.m34; this.m31 = this.m31 * a + this.m32 * e + this.m33 * p + 0 * this.m34; this.m32 = n * b + this.m32 * f + this.m33 * l + 0 * this.m34; this.m33 = n * c + k * d + this.m33 * v + 0 * this.m34; this.m34 = 0 * n + 0 * k + 0 * m + this.m34; this.m35 = 0 * n + 0 * k + 0 * m + 0 * h; n = this.m41; k = this.m42; m = this.m43; h = this.m44; this.m41 = this.m41 * a + this.m42 * e + this.m43 * p + 0 * this.m44; this.m42 = n * b + this.m42 * f + this.m43 * l + 0 * this.m44; this.m43 = n * c + k * d + this.m43 * v + 0 * this.m44; this.m44 = 0 * n + 0 * k + 0 * m + this.m44; this.m45 = 0 * n + 0 * k + 0 * m + 0 * h; return this; }, setMultiplicators: function (a, b, c, e) { null == e && (e = 1); null == c && (c = 1); null == b && (b = 1); null == a && (a = 1); var f = this.m11, d = this.m12, p = this.m13, l = this.m14; this.m11 = this.m11 * a + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0 * f + this.m12 * b + 0 * this.m13 + 0 * this.m14; this.m13 = 0 * f + 0 * d + this.m13 * c + 0 * this.m14; this.m14 = 0 * f + 0 * d + 0 * p + this.m14 * e; this.m15 = 0 * f + 0 * d + 0 * p + 0 * l; f = this.m21; d = this.m22; p = this.m23; l = this.m24; this.m21 = this.m21 * a + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0 * f + this.m22 * b + 0 * this.m23 + 0 * this.m24; this.m23 = 0 * f + 0 * d + this.m23 * c + 0 * this.m24; this.m24 = 0 * f + 0 * d + 0 * p + this.m24 * e; this.m25 = 0 * f + 0 * d + 0 * p + 0 * l; f = this.m31; d = this.m32; p = this.m33; l = this.m34; this.m31 = this.m31 * a + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0 * f + this.m32 * b + 0 * this.m33 + 0 * this.m34; this.m33 = 0 * f + 0 * d + this.m33 * c + 0 * this.m34; this.m34 = 0 * f + 0 * d + 0 * p + this.m34 * e; this.m35 = 0 * f + 0 * d + 0 * p + 0 * l; f = this.m41; d = this.m42; p = this.m43; l = this.m44; this.m41 = this.m41 * a + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0 * f + this.m42 * b + 0 * this.m43 + 0 * this.m44; this.m43 = 0 * f + 0 * d + this.m43 * c + 0 * this.m44; this.m44 = 0 * f + 0 * d + 0 * p + this.m44 * e; this.m45 = 0 * f + 0 * d + 0 * p + 0 * l; return this; }, clearChannels: function (a, b, c, e) { null == e && (e = !1); null == c && (c = !1); null == b && (b = !1); null == a && (a = !1); a && (this.m11 = this.m12 = this.m13 = this.m14 = this.m15 = 0); b && (this.m21 = this.m22 = this.m23 = this.m24 = this.m25 = 0); c && (this.m31 = this.m32 = this.m33 = this.m34 = this.m35 = 0); e && (this.m41 = this.m42 = this.m43 = this.m44 = this.m45 = 0); return this; }, thresholdAlpha: function (a, b) { null == b && (b = 256); a *= -b; var c = this.m11, e = this.m12, f = this.m13, d = this.m14; this.m11 = this.m11 + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0 * c + this.m12 + 0 * this.m13 + 0 * this.m14; this.m13 = 0 * c + 0 * e + this.m13 + 0 * this.m14; this.m14 = 0 * c + 0 * e + 0 * f + this.m14 * b; this.m15 = 0 * c + 0 * e + 0 * f + d * a; c = this.m21; e = this.m22; f = this.m23; d = this.m24; this.m21 = this.m21 + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0 * c + this.m22 + 0 * this.m23 + 0 * this.m24; this.m23 = 0 * c + 0 * e + this.m23 + 0 * this.m24; this.m24 = 0 * c + 0 * e + 0 * f + this.m24 * b; this.m25 = 0 * c + 0 * e + 0 * f + d * a; c = this.m31; e = this.m32; f = this.m33; d = this.m34; this.m31 = this.m31 + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0 * c + this.m32 + 0 * this.m33 + 0 * this.m34; this.m33 = 0 * c + 0 * e + this.m33 + 0 * this.m34; this.m34 = 0 * c + 0 * e + 0 * f + this.m34 * b; this.m35 = 0 * c + 0 * e + 0 * f + d * a; c = this.m41; e = this.m42; f = this.m43; d = this.m44; this.m41 = this.m41 + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0 * c + this.m42 + 0 * this.m43 + 0 * this.m44; this.m43 = 0 * c + 0 * e + this.m43 + 0 * this.m44; this.m44 = 0 * c + 0 * e + 0 * f + this.m44 * b; this.m45 = 0 * c + 0 * e + 0 * f + d * a; return this; }, averageRGB2Alpha: function () { var a = $a.INV3, b = $a.INV3, c = $a.INV3, e = this.m11, f = this.m12, d = this.m13, p = this.m14; this.m11 = 0 * this.m11 + 0 * this.m12 + 0 * this.m13 + this.m14 * a; this.m12 = 0 * e + 0 * this.m12 + 0 * this.m13 + this.m14 * b; this.m13 = 0 * e + 0 * f + 0 * this.m13 + this.m14 * c; this.m14 = 0 * e + 0 * f + 0 * d + 0 * this.m14; this.m15 = 255 * e + 255 * f + 255 * d + 0 * p; e = this.m21; f = this.m22; d = this.m23; p = this.m24; this.m21 = 0 * this.m21 + 0 * this.m22 + 0 * this.m23 + this.m24 * a; this.m22 = 0 * e + 0 * this.m22 + 0 * this.m23 + this.m24 * b; this.m23 = 0 * e + 0 * f + 0 * this.m23 + this.m24 * c; this.m24 = 0 * e + 0 * f + 0 * d + 0 * this.m24; this.m25 = 255 * e + 255 * f + 255 * d + 0 * p; e = this.m31; f = this.m32; d = this.m33; p = this.m34; this.m31 = 0 * this.m31 + 0 * this.m32 + 0 * this.m33 + this.m34 * a; this.m32 = 0 * e + 0 * this.m32 + 0 * this.m33 + this.m34 * b; this.m33 = 0 * e + 0 * f + 0 * this.m33 + this.m34 * c; this.m34 = 0 * e + 0 * f + 0 * d + 0 * this.m34; this.m35 = 255 * e + 255 * f + 255 * d + 0 * p; e = this.m41; f = this.m42; d = this.m43; p = this.m44; this.m41 = 0 * this.m41 + 0 * this.m42 + 0 * this.m43 + this.m44 * a; this.m42 = 0 * e + 0 * this.m42 + 0 * this.m43 + this.m44 * b; this.m43 = 0 * e + 0 * f + 0 * this.m43 + this.m44 * c; this.m44 = 0 * e + 0 * f + 0 * d + 0 * this.m44; this.m45 = 255 * e + 255 * f + 255 * d + 0 * p; return this; }, invertAlpha: function () { var a = this.m11, b = this.m12, c = this.m13, e = this.m14; this.m11 = this.m11 + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0 * a + this.m12 + 0 * this.m13 + 0 * this.m14; this.m13 = 0 * a + 0 * b + this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + -1 * this.m14; this.m15 = 0 * a + 0 * b + 0 * c + 255 * e; a = this.m21; b = this.m22; c = this.m23; e = this.m24; this.m21 = this.m21 + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0 * a + this.m22 + 0 * this.m23 + 0 * this.m24; this.m23 = 0 * a + 0 * b + this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + -1 * this.m24; this.m25 = 0 * a + 0 * b + 0 * c + 255 * e; a = this.m31; b = this.m32; c = this.m33; e = this.m34; this.m31 = this.m31 + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0 * a + this.m32 + 0 * this.m33 + 0 * this.m34; this.m33 = 0 * a + 0 * b + this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + -1 * this.m34; this.m35 = 0 * a + 0 * b + 0 * c + 255 * e; a = this.m41; b = this.m42; c = this.m43; e = this.m44; this.m41 = this.m41 + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0 * a + this.m42 + 0 * this.m43 + 0 * this.m44; this.m43 = 0 * a + 0 * b + this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + -1 * this.m44; this.m45 = 0 * a + 0 * b + 0 * c + 255 * e; return this; }, rgb2Alpha: function (a, b, c) { var e = this.m11, f = this.m12, d = this.m13, p = this.m14; this.m11 = 0 * this.m11 + 0 * this.m12 + 0 * this.m13 + this.m14 * a; this.m12 = 0 * e + 0 * this.m12 + 0 * this.m13 + this.m14 * b; this.m13 = 0 * e + 0 * f + 0 * this.m13 + this.m14 * c; this.m14 = 0 * e + 0 * f + 0 * d + 0 * this.m14; this.m15 = 255 * e + 255 * f + 255 * d + 0 * p; e = this.m21; f = this.m22; d = this.m23; p = this.m24; this.m21 = 0 * this.m21 + 0 * this.m22 + 0 * this.m23 + this.m24 * a; this.m22 = 0 * e + 0 * this.m22 + 0 * this.m23 + this.m24 * b; this.m23 = 0 * e + 0 * f + 0 * this.m23 + this.m24 * c; this.m24 = 0 * e + 0 * f + 0 * d + 0 * this.m24; this.m25 = 255 * e + 255 * f + 255 * d + 0 * p; e = this.m31; f = this.m32; d = this.m33; p = this.m34; this.m31 = 0 * this.m31 + 0 * this.m32 + 0 * this.m33 + this.m34 * a; this.m32 = 0 * e + 0 * this.m32 + 0 * this.m33 + this.m34 * b; this.m33 = 0 * e + 0 * f + 0 * this.m33 + this.m34 * c; this.m34 = 0 * e + 0 * f + 0 * d + 0 * this.m34; this.m35 = 255 * e + 255 * f + 255 * d + 0 * p; e = this.m41; f = this.m42; d = this.m43; p = this.m44; this.m41 = 0 * this.m41 + 0 * this.m42 + 0 * this.m43 + this.m44 * a; this.m42 = 0 * e + 0 * this.m42 + 0 * this.m43 + this.m44 * b; this.m43 = 0 * e + 0 * f + 0 * this.m43 + this.m44 * c; this.m44 = 0 * e + 0 * f + 0 * d + 0 * this.m44; this.m45 = 255 * e + 255 * f + 255 * d + 0 * p; return this; }, setAlpha: function (a) { var b = this.m11, c = this.m12, e = this.m13, f = this.m14; this.m11 = this.m11 + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0 * b + this.m12 + 0 * this.m13 + 0 * this.m14; this.m13 = 0 * b + 0 * c + this.m13 + 0 * this.m14; this.m14 = 0 * b + 0 * c + 0 * e + this.m14 * a; this.m15 = 0 * b + 0 * c + 0 * e + 0 * f; b = this.m21; c = this.m22; e = this.m23; f = this.m24; this.m21 = this.m21 + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0 * b + this.m22 + 0 * this.m23 + 0 * this.m24; this.m23 = 0 * b + 0 * c + this.m23 + 0 * this.m24; this.m24 = 0 * b + 0 * c + 0 * e + this.m24 * a; this.m25 = 0 * b + 0 * c + 0 * e + 0 * f; b = this.m31; c = this.m32; e = this.m33; f = this.m34; this.m31 = this.m31 + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0 * b + this.m32 + 0 * this.m33 + 0 * this.m34; this.m33 = 0 * b + 0 * c + this.m33 + 0 * this.m34; this.m34 = 0 * b + 0 * c + 0 * e + this.m34 * a; this.m35 = 0 * b + 0 * c + 0 * e + 0 * f; b = this.m41; c = this.m42; e = this.m43; f = this.m44; this.m41 = this.m41 + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0 * b + this.m42 + 0 * this.m43 + 0 * this.m44; this.m43 = 0 * b + 0 * c + this.m43 + 0 * this.m44; this.m44 = 0 * b + 0 * c + 0 * e + this.m44 * a; this.m45 = 0 * b + 0 * c + 0 * e + 0 * f; return this; }, rotateRed: function (a) { a *= 0.01745329251994278; var b = Math.cos(a); a = Math.cos(a); this.m11 = 1; this.m21 = this.m15 = this.m14 = this.m13 = this.m12 = 0; this.m22 = b; this.m23 = -a; this.m31 = this.m25 = this.m24 = 0; this.m32 = a; this.m33 = b; this.m43 = this.m42 = this.m41 = this.m35 = this.m34 = 0; this.m44 = 1; this.m45 = 0; return this; }, rotateGreen: function (a) { a *= 0.01745329251994278; var b = Math.cos(a); a = Math.cos(a); this.m11 = b; this.m12 = 0; this.m13 = a; this.m21 = this.m15 = this.m14 = 0; this.m22 = 1; this.m25 = this.m24 = this.m23 = 0; this.m31 = -a; this.m32 = 0; this.m33 = b; this.m43 = this.m42 = this.m41 = this.m35 = this.m34 = 0; this.m44 = 1; this.m45 = 0; return this; }, rotateBlue: function (a) { a *= 0.01745329251994278; var b = Math.cos(a); a = Math.cos(a); this.m11 = b; this.m12 = -a; this.m15 = this.m14 = this.m13 = 0; this.m21 = a; this.m22 = b; this.m32 = this.m31 = this.m25 = this.m24 = this.m23 = 0; this.m33 = 1; this.m43 = this.m42 = this.m41 = this.m35 = this.m34 = 0; this.m44 = 1; this.m45 = 0; return this; }, shearRed: function (a, b) { this.m11 = 1; this.m12 = a; this.m13 = b; this.m21 = this.m15 = this.m14 = 0; this.m22 = 1; this.m32 = this.m31 = this.m25 = this.m24 = this.m23 = 0; this.m33 = 1; this.m43 = this.m42 = this.m41 = this.m35 = this.m34 = 0; this.m44 = 1; this.m45 = 0; return this; }, shearGreen: function (a, b) { this.m11 = 1; this.m15 = this.m14 = this.m13 = this.m12 = 0; this.m21 = a; this.m22 = 1; this.m23 = b; this.m32 = this.m31 = this.m25 = this.m24 = 0; this.m33 = 1; this.m43 = this.m42 = this.m41 = this.m35 = this.m34 = 0; this.m44 = 1; this.m45 = 0; return this; }, shearBlue: function (a, b) { this.m11 = 1; this.m21 = this.m15 = this.m14 = this.m13 = this.m12 = 0; this.m22 = 1; this.m25 = this.m24 = this.m23 = 0; this.m31 = a; this.m32 = b; this.m33 = 1; this.m43 = this.m42 = this.m41 = this.m35 = this.m34 = 0; this.m44 = 1; this.m45 = 0; return this; }, applyColorDeficiency: function (a) { switch (a._hx_index) { case 0: a = this.m11; var b = this.m12, c = this.m13, e = this.m14; this.m11 = 0.567 * this.m11 + 0.558 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0.433 * a + 0.442 * this.m12 + 0.242 * this.m13 + 0 * this.m14; this.m13 = 0 * a + 0 * b + 0.758 * this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + this.m14; this.m15 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m21; b = this.m22; c = this.m23; e = this.m24; this.m21 = 0.567 * this.m21 + 0.558 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0.433 * a + 0.442 * this.m22 + 0.242 * this.m23 + 0 * this.m24; this.m23 = 0 * a + 0 * b + 0.758 * this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + this.m24; this.m25 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m31; b = this.m32; c = this.m33; e = this.m34; this.m31 = 0.567 * this.m31 + 0.558 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0.433 * a + 0.442 * this.m32 + 0.242 * this.m33 + 0 * this.m34; this.m33 = 0 * a + 0 * b + 0.758 * this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + this.m34; this.m35 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m41; b = this.m42; c = this.m43; e = this.m44; this.m41 = 0.567 * this.m41 + 0.558 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0.433 * a + 0.442 * this.m42 + 0.242 * this.m43 + 0 * this.m44; this.m43 = 0 * a + 0 * b + 0.758 * this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + this.m44; this.m45 = 0 * a + 0 * b + 0 * c + 0 * e; break; case 1: a = this.m11; b = this.m12; c = this.m13; e = this.m14; this.m11 = 0.817 * this.m11 + 0.333 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0.183 * a + 0.667 * this.m12 + 0.125 * this.m13 + 0 * this.m14; this.m13 = 0 * a + 0 * b + 0.875 * this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + this.m14; this.m15 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m21; b = this.m22; c = this.m23; e = this.m24; this.m21 = 0.817 * this.m21 + 0.333 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0.183 * a + 0.667 * this.m22 + 0.125 * this.m23 + 0 * this.m24; this.m23 = 0 * a + 0 * b + 0.875 * this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + this.m24; this.m25 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m31; b = this.m32; c = this.m33; e = this.m34; this.m31 = 0.817 * this.m31 + 0.333 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0.183 * a + 0.667 * this.m32 + 0.125 * this.m33 + 0 * this.m34; this.m33 = 0 * a + 0 * b + 0.875 * this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + this.m34; this.m35 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m41; b = this.m42; c = this.m43; e = this.m44; this.m41 = 0.817 * this.m41 + 0.333 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0.183 * a + 0.667 * this.m42 + 0.125 * this.m43 + 0 * this.m44; this.m43 = 0 * a + 0 * b + 0.875 * this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + this.m44; this.m45 = 0 * a + 0 * b + 0 * c + 0 * e; break; case 2: a = this.m11; b = this.m12; c = this.m13; e = this.m14; this.m11 = 0.625 * this.m11 + 0.7 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0.375 * a + 0.3 * this.m12 + 0.3 * this.m13 + 0 * this.m14; this.m13 = 0 * a + 0 * b + 0.7 * this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + this.m14; this.m15 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m21; b = this.m22; c = this.m23; e = this.m24; this.m21 = 0.625 * this.m21 + 0.7 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0.375 * a + 0.3 * this.m22 + 0.3 * this.m23 + 0 * this.m24; this.m23 = 0 * a + 0 * b + 0.7 * this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + this.m24; this.m25 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m31; b = this.m32; c = this.m33; e = this.m34; this.m31 = 0.625 * this.m31 + 0.7 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0.375 * a + 0.3 * this.m32 + 0.3 * this.m33 + 0 * this.m34; this.m33 = 0 * a + 0 * b + 0.7 * this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + this.m34; this.m35 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m41; b = this.m42; c = this.m43; e = this.m44; this.m41 = 0.625 * this.m41 + 0.7 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0.375 * a + 0.3 * this.m42 + 0.3 * this.m43 + 0 * this.m44; this.m43 = 0 * a + 0 * b + 0.7 * this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + this.m44; this.m45 = 0 * a + 0 * b + 0 * c + 0 * e; break; case 3: a = this.m11; b = this.m12; c = this.m13; e = this.m14; this.m11 = 0.8 * this.m11 + 0.258 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0.2 * a + 0.742 * this.m12 + 0.142 * this.m13 + 0 * this.m14; this.m13 = 0 * a + 0 * b + 0.858 * this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + this.m14; this.m15 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m21; b = this.m22; c = this.m23; e = this.m24; this.m21 = 0.8 * this.m21 + 0.258 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0.2 * a + 0.742 * this.m22 + 0.142 * this.m23 + 0 * this.m24; this.m23 = 0 * a + 0 * b + 0.858 * this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + this.m24; this.m25 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m31; b = this.m32; c = this.m33; e = this.m34; this.m31 = 0.8 * this.m31 + 0.258 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0.2 * a + 0.742 * this.m32 + 0.142 * this.m33 + 0 * this.m34; this.m33 = 0 * a + 0 * b + 0.858 * this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + this.m34; this.m35 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m41; b = this.m42; c = this.m43; e = this.m44; this.m41 = 0.8 * this.m41 + 0.258 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0.2 * a + 0.742 * this.m42 + 0.142 * this.m43 + 0 * this.m44; this.m43 = 0 * a + 0 * b + 0.858 * this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + this.m44; this.m45 = 0 * a + 0 * b + 0 * c + 0 * e; break; case 4: a = this.m11; b = this.m12; c = this.m13; e = this.m14; this.m11 = 0.95 * this.m11 + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0.05 * a + 0.433 * this.m12 + 0.475 * this.m13 + 0 * this.m14; this.m13 = 0 * a + 0.567 * b + 0.525 * this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + this.m14; this.m15 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m21; b = this.m22; c = this.m23; e = this.m24; this.m21 = 0.95 * this.m21 + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0.05 * a + 0.433 * this.m22 + 0.475 * this.m23 + 0 * this.m24; this.m23 = 0 * a + 0.567 * b + 0.525 * this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + this.m24; this.m25 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m31; b = this.m32; c = this.m33; e = this.m34; this.m31 = 0.95 * this.m31 + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0.05 * a + 0.433 * this.m32 + 0.475 * this.m33 + 0 * this.m34; this.m33 = 0 * a + 0.567 * b + 0.525 * this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + this.m34; this.m35 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m41; b = this.m42; c = this.m43; e = this.m44; this.m41 = 0.95 * this.m41 + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0.05 * a + 0.433 * this.m42 + 0.475 * this.m43 + 0 * this.m44; this.m43 = 0 * a + 0.567 * b + 0.525 * this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + this.m44; this.m45 = 0 * a + 0 * b + 0 * c + 0 * e; break; case 5: a = this.m11; b = this.m12; c = this.m13; e = this.m14; this.m11 = 0.967 * this.m11 + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0.033 * a + 0.733 * this.m12 + 0.183 * this.m13 + 0 * this.m14; this.m13 = 0 * a + 0.267 * b + 0.817 * this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + this.m14; this.m15 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m21; b = this.m22; c = this.m23; e = this.m24; this.m21 = 0.967 * this.m21 + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0.033 * a + 0.733 * this.m22 + 0.183 * this.m23 + 0 * this.m24; this.m23 = 0 * a + 0.267 * b + 0.817 * this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + this.m24; this.m25 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m31; b = this.m32; c = this.m33; e = this.m34; this.m31 = 0.967 * this.m31 + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0.033 * a + 0.733 * this.m32 + 0.183 * this.m33 + 0 * this.m34; this.m33 = 0 * a + 0.267 * b + 0.817 * this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + this.m34; this.m35 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m41; b = this.m42; c = this.m43; e = this.m44; this.m41 = 0.967 * this.m41 + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0.033 * a + 0.733 * this.m42 + 0.183 * this.m43 + 0 * this.m44; this.m43 = 0 * a + 0.267 * b + 0.817 * this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + this.m44; this.m45 = 0 * a + 0 * b + 0 * c + 0 * e; break; case 6: a = this.m11; b = this.m12; c = this.m13; e = this.m14; this.m11 = 0.299 * this.m11 + 0.299 * this.m12 + 0.299 * this.m13 + 0 * this.m14; this.m12 = 0.587 * a + 0.587 * this.m12 + 0.587 * this.m13 + 0 * this.m14; this.m13 = 0.114 * a + 0.114 * b + 0.114 * this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + this.m14; this.m15 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m21; b = this.m22; c = this.m23; e = this.m24; this.m21 = 0.299 * this.m21 + 0.299 * this.m22 + 0.299 * this.m23 + 0 * this.m24; this.m22 = 0.587 * a + 0.587 * this.m22 + 0.587 * this.m23 + 0 * this.m24; this.m23 = 0.114 * a + 0.114 * b + 0.114 * this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + this.m24; this.m25 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m31; b = this.m32; c = this.m33; e = this.m34; this.m31 = 0.299 * this.m31 + 0.299 * this.m32 + 0.299 * this.m33 + 0 * this.m34; this.m32 = 0.587 * a + 0.587 * this.m32 + 0.587 * this.m33 + 0 * this.m34; this.m33 = 0.114 * a + 0.114 * b + 0.114 * this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + this.m34; this.m35 = 0 * a + 0 * b + 0 * c + 0 * e; a = this.m41; b = this.m42; c = this.m43; e = this.m44; this.m41 = 0.299 * this.m41 + 0.299 * this.m42 + 0.299 * this.m43 + 0 * this.m44; this.m42 = 0.587 * a + 0.587 * this.m42 + 0.587 * this.m43 + 0 * this.m44; this.m43 = 0.114 * a + 0.114 * b + 0.114 * this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + this.m44; this.m45 = 0 * a + 0 * b + 0 * c + 0 * e; break; case 7: (a = this.m11), (b = this.m12), (c = this.m13), (e = this.m14), (this.m11 = 0.618 * this.m11 + 0.163 * this.m12 + 0.163 * this.m13 + 0 * this.m14), (this.m12 = 0.32 * a + 0.775 * this.m12 + 0.32 * this.m13 + 0 * this.m14), (this.m13 = 0.062 * a + 0.062 * b + 0.516 * this.m13 + 0 * this.m14), (this.m14 = 0 * a + 0 * b + 0 * c + this.m14), (this.m15 = 0 * a + 0 * b + 0 * c + 0 * e), (a = this.m21), (b = this.m22), (c = this.m23), (e = this.m24), (this.m21 = 0.618 * this.m21 + 0.163 * this.m22 + 0.163 * this.m23 + 0 * this.m24), (this.m22 = 0.32 * a + 0.775 * this.m22 + 0.32 * this.m23 + 0 * this.m24), (this.m23 = 0.062 * a + 0.062 * b + 0.516 * this.m23 + 0 * this.m24), (this.m24 = 0 * a + 0 * b + 0 * c + this.m24), (this.m25 = 0 * a + 0 * b + 0 * c + 0 * e), (a = this.m31), (b = this.m32), (c = this.m33), (e = this.m34), (this.m31 = 0.618 * this.m31 + 0.163 * this.m32 + 0.163 * this.m33 + 0 * this.m34), (this.m32 = 0.32 * a + 0.775 * this.m32 + 0.32 * this.m33 + 0 * this.m34), (this.m33 = 0.062 * a + 0.062 * b + 0.516 * this.m33 + 0 * this.m34), (this.m34 = 0 * a + 0 * b + 0 * c + this.m34), (this.m35 = 0 * a + 0 * b + 0 * c + 0 * e), (a = this.m41), (b = this.m42), (c = this.m43), (e = this.m44), (this.m41 = 0.618 * this.m41 + 0.163 * this.m42 + 0.163 * this.m43 + 0 * this.m44), (this.m42 = 0.32 * a + 0.775 * this.m42 + 0.32 * this.m43 + 0 * this.m44), (this.m43 = 0.062 * a + 0.062 * b + 0.516 * this.m43 + 0 * this.m44), (this.m44 = 0 * a + 0 * b + 0 * c + this.m44), (this.m45 = 0 * a + 0 * b + 0 * c + 0 * e); } return this; }, applyMatrix: function (a, b) { var c = a.a, e = a.r, f = a.g, d = a.b; a = X.clamp( (0.5 + e * this.m41 + f * this.m42 + d * this.m43 + c * this.m44 + this.m45) | 0, 0, 255 ); var p = X.clamp( (0.5 + e * this.m11 + f * this.m12 + d * this.m13 + c * this.m14 + this.m15) | 0, 0, 255 ), l = X.clamp( (0.5 + e * this.m21 + f * this.m22 + d * this.m23 + c * this.m24 + this.m25) | 0, 0, 255 ); c = X.clamp( (0.5 + e * this.m31 + f * this.m32 + d * this.m33 + c * this.m34 + this.m35) | 0, 0, 255 ); b.a = a; b.r = p; b.g = l; b.b = c; return b; }, transformVector: function (a) { var b = a[0], c = a[1], e = a[2], f = a[3], d = b * this.m21 + c * this.m22 + e * this.m23 + f * this.m24 + this.m25, p = b * this.m31 + c * this.m32 + e * this.m33 + f * this.m34 + this.m35, l = b * this.m41 + c * this.m42 + e * this.m43 + f * this.m44 + this.m45; a[0] = b * this.m11 + c * this.m12 + e * this.m13 + f * this.m14 + this.m15; a[1] = d; a[2] = p; a[3] = l; return a; }, initHue: function () { if (!this.hueInitialized) { this.hueInitialized = !0; this.preHue = new $a(); this.preHue.rotateRed(45); this.preHue.rotateGreen(-39.182655); var a = []; a[0] = $a.LUMA_R2; a[1] = $a.LUMA_G2; a[2] = $a.LUMA_B2; a[3] = 1; this.preHue.transformVector(a); var b = a[0] / a[2]; a = a[1] / a[2]; this.preHue.shearBlue(b, a); this.postHue = new $a(); this.postHue.shearBlue(-b, -a); this.postHue.rotateGreen(39.182655); this.postHue.rotateRed(-45); } }, toArray: function (a) { a[0] = this.m11; a[1] = this.m12; a[2] = this.m13; a[3] = this.m14; a[4] = this.m15; a[5] = this.m21; a[6] = this.m22; a[7] = this.m23; a[8] = this.m24; a[9] = this.m25; a[10] = this.m31; a[11] = this.m32; a[12] = this.m33; a[13] = this.m34; a[14] = this.m35; a[15] = this.m41; a[16] = this.m42; a[17] = this.m43; a[18] = this.m44; a[19] = this.m45; return a; }, set: function (a, b, c, e, f, d, p, l, v, n, k, m, h, t, u, q, r, w, ia, x) { this.m11 = a; this.m12 = b; this.m13 = c; this.m14 = e; this.m15 = f; this.m21 = d; this.m22 = p; this.m23 = l; this.m24 = v; this.m25 = n; this.m31 = k; this.m32 = m; this.m33 = h; this.m34 = t; this.m35 = u; this.m41 = q; this.m42 = r; this.m43 = w; this.m44 = ia; this.m45 = x; }, mul: function (a, b, c, e, f, d, p, l, v, n, k, m, h, t, u, q, r, w, ia, x) { var g = this.m11, Fe = this.m12, Lg = this.m13, Mg = this.m14; this.m11 = this.m11 * a + this.m12 * d + this.m13 * k + this.m14 * q; this.m12 = g * b + this.m12 * p + this.m13 * m + this.m14 * r; this.m13 = g * c + Fe * l + this.m13 * h + this.m14 * w; this.m14 = g * e + Fe * v + Lg * t + this.m14 * ia; this.m15 = g * f + Fe * n + Lg * u + Mg * x; g = this.m21; Fe = this.m22; Lg = this.m23; Mg = this.m24; this.m21 = this.m21 * a + this.m22 * d + this.m23 * k + this.m24 * q; this.m22 = g * b + this.m22 * p + this.m23 * m + this.m24 * r; this.m23 = g * c + Fe * l + this.m23 * h + this.m24 * w; this.m24 = g * e + Fe * v + Lg * t + this.m24 * ia; this.m25 = g * f + Fe * n + Lg * u + Mg * x; g = this.m31; Fe = this.m32; Lg = this.m33; Mg = this.m34; this.m31 = this.m31 * a + this.m32 * d + this.m33 * k + this.m34 * q; this.m32 = g * b + this.m32 * p + this.m33 * m + this.m34 * r; this.m33 = g * c + Fe * l + this.m33 * h + this.m34 * w; this.m34 = g * e + Fe * v + Lg * t + this.m34 * ia; this.m35 = g * f + Fe * n + Lg * u + Mg * x; g = this.m41; Fe = this.m42; Lg = this.m43; Mg = this.m44; this.m41 = this.m41 * a + this.m42 * d + this.m43 * k + this.m44 * q; this.m42 = g * b + this.m42 * p + this.m43 * m + this.m44 * r; this.m43 = g * c + Fe * l + this.m43 * h + this.m44 * w; this.m44 = g * e + Fe * v + Lg * t + this.m44 * ia; this.m45 = g * f + Fe * n + Lg * u + Mg * x; }, __class__: $a }; var $w = function () {}; h['com.stencyl.utils.HaxeDefines'] = $w; $w.__name__ = 'com.stencyl.utils.HaxeDefines'; var Rk = function (a, b) { this.map = a; this.initializer = b; }; h['com.stencyl.utils.LazyIntMap'] = Rk; Rk.__name__ = 'com.stencyl.utils.LazyIntMap'; Rk.prototype = { map: null, initializer: null, get: function (a) { var b = this.map.h[a]; null == b && ((b = this.initializer(a)), (this.map.h[a] = b)); return b; }, set: function (a, b) { this.map.h[a] = b; }, exists: function (a) { return this.map.h.hasOwnProperty(a); }, remove: function (a) { return this.map.remove(a); }, keys: function () { return this.map.keys(); }, iterator: function () { return this.map.iterator(); }, __class__: Rk }; var Nn = function (a, b) { this.map = a; this.initializer = b; }; h['com.stencyl.utils.LazyStringMap'] = Nn; Nn.__name__ = 'com.stencyl.utils.LazyStringMap'; Nn.prototype = { map: null, initializer: null, get: function (a) { var b = this.map.h[a]; null == b && ((b = this.initializer(a)), (this.map.h[a] = b)); return b; }, set: function (a, b) { this.map.h[a] = b; }, exists: function (a) { return Object.prototype.hasOwnProperty.call(this.map.h, a); }, remove: function (a) { var b = this.map; return Object.prototype.hasOwnProperty.call(b.h, a) ? (delete b.h[a], !0) : !1; }, keys: function () { return new pj(this.map.h); }, iterator: function () { return new Ci(this.map.h); }, __class__: Nn }; var po = function () {}; h['com.stencyl.utils.Mathematics'] = po; po.__name__ = 'com.stencyl.utils.Mathematics'; po.round = function (a) { return (0 < a ? a + 0.5 : 0 > a ? a - 0.5 : 0) | 0; }; po.clamp = function (a, b, c) { return a < b ? b : a > c ? c : a; }; po.fclamp = function (a, b, c) { return a < b ? b : a > c ? c : a; }; var Ac = function (a) { this.points = a; this.combineClosePoints(); this.combineColinearPoints(); this.makeCCW(); }; h['com.stencyl.utils.PolyDecompBayazit'] = Ac; Ac.__name__ = 'com.stencyl.utils.PolyDecompBayazit'; Ac.area = function (a, b, c) { return (b.x - a.x) * (c.y - a.y) - (c.x - a.x) * (b.y - a.y); }; Ac.right = function (a, b, c) { return 0 > Ac.area(a, b, c); }; Ac.rightOn = function (a, b, c) { return 0 >= Ac.area(a, b, c); }; Ac.left = function (a, b, c) { return 0 < Ac.area(a, b, c); }; Ac.leftOn = function (a, b, c) { return 0 <= Ac.area(a, b, c); }; Ac.sqdist = function (a, b) { var c = b.x - a.x; a = b.y - a.y; return c * c + a * a; }; Ac.getIntersection = function (a, b, c, e) { var f = b.y - a.y; b = a.x - b.x; a = f * a.x + b * a.y; var d = e.y - c.y; e = c.x - e.x; c = d * c.x + e * c.y; var p = f * e - d * b; return Math.abs(p) > Number.MIN_VALUE ? new na((e * a - b * c) / p, (f * c - d * a) / p) : null; }; Ac.prototype = { combineColinearPoints: function () { for (var a = [], b = 0, c = this.points.length; b < c; ) { var e = b++, f = this.at(e - 1), d = this.at(e); e = this.at(e + 1); null != Ac.getIntersection(f, d, d, e) && a.push(d); } this.points = a; }, points: null, combineClosePoints: function () { for (var a = [], b = 0, c = this.points.length; b < c; ) { var e = b++, f = this.at(e); e = this.at(e + 1); Ac.sqdist(f, e) > Number.MIN_VALUE && a.push(f); } this.points = a; }, at: function (a) { var b = this.points.length; return this.points[(a + b) % b]; }, isReflex: function (a) { return Ac.right(this.at(a - 1), this.at(a), this.at(a + 1)); }, polyFromRange: function (a, b) { return a < b ? new Ac(this.points.slice(a, b + 1)) : new Ac(this.points.slice(a).concat(this.points.slice(0, b + 1))); }, decompose: function (a) { if (!(3 > this.points.length)) { for (var b = 0, c = this.points.length; b < c; ) { var e = b++; if (this.isReflex(e)) { var f = Number.MAX_VALUE, d = null; b = 0; for ( var p = Number.MAX_VALUE, l = null, v = (c = 0), n = this.points.length; v < n; ) { var k = v++; if ( Ac.left(this.at(e - 1), this.at(e), this.at(k)) && Ac.rightOn(this.at(e - 1), this.at(e), this.at(k - 1)) ) { var m = Ac.getIntersection( this.at(e - 1), this.at(e), this.at(k), this.at(k - 1) ); if (Ac.right(this.at(e + 1), this.at(e), m)) { var h = Ac.sqdist(this.at(e), m); h < p && ((p = h), (l = m), (c = k)); } } Ac.left(this.at(e + 1), this.at(e), this.at(k + 1)) && Ac.rightOn(this.at(e + 1), this.at(e), this.at(k)) && ((m = Ac.getIntersection( this.at(e + 1), this.at(e), this.at(k), this.at(k + 1) )), Ac.left(this.at(e - 1), this.at(e), m) && ((h = Ac.sqdist(this.at(e), m)), h < f && ((f = h), (d = m), (b = k)))); } if (c == (b + 1) % this.points.length) (f = new na(0.5 * (l.x + d.x), 0.5 * (l.y + d.y))), (d = this.polyFromRange(e, b)), d.points.push(f), (e = e < b ? this.polyFromRange(c, e) : this.polyFromRange(0, e)), e.points.push(f); else { c > b && (b += this.points.length); f = 0; for (d = Number.MAX_VALUE; c <= b; ) Ac.leftOn(this.at(e - 1), this.at(e), this.at(c)) && Ac.rightOn(this.at(e + 1), this.at(e), this.at(c)) && ((p = Ac.sqdist(this.at(e), this.at(c))), p < d && ((d = p), this.at(c), (f = c % this.points.length))), ++c; d = this.polyFromRange(e, f); e = this.polyFromRange(f, e); } d.points.length < e.points.length ? (d.decompose(a), e.decompose(a)) : (e.decompose(a), d.decompose(a)); return; } } 3 <= this.points.length && a(this); } }, makeCCW: function () { for (var a = 0, b = 1, c = this.points.length; b < c; ) { var e = b++; if ( this.at(e).y < this.at(a).y || (this.at(e).y == this.at(a).y && this.at(e).x > this.at(a).x) ) a = e; } Ac.left(this.at(a - 1), this.at(a), this.at(a + 1)) || this.points.reverse(); }, __class__: Ac }; var Id = function (a, b, c) { null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.r = a; this.g = b; this.b = c; }; h['com.stencyl.utils.RGB'] = Id; Id.__name__ = 'com.stencyl.utils.RGB'; Id.setRGBi = function (a, b, c) { return ((a & 255) << 16) | ((b & 255) << 8) | (c & 255); }; Id.setRGBf = function (a, b, c) { a = 255 * (0 > a ? 0 : 1 < a ? 1 : a); b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); c = 255 * (0 > c ? 0 : 1 < c ? 1 : c); return ( ((((0 < a ? a + 0.5 : 0 > a ? a - 0.5 : 0) | 0) & 255) << 16) | ((((0 < b ? b + 0.5 : 0 > b ? b - 0.5 : 0) | 0) & 255) << 8) | (((0 < c ? c + 0.5 : 0 > c ? c - 0.5 : 0) | 0) & 255) ); }; Id.getR = function (a) { return (a >>> 16) & 255; }; Id.getRf = function (a) { return 0.00392156862745098 * ((a >>> 16) & 255); }; Id.getG = function (a) { return (a >>> 8) & 255; }; Id.getGf = function (a) { return 0.00392156862745098 * ((a >>> 8) & 255); }; Id.getB = function (a) { return a & 255; }; Id.getBf = function (a) { return 0.00392156862745098 * (a & 255); }; Id.setR = function (a, b) { return ((b & 255) << 16) | (a & -16711681); }; Id.setRf = function (a, b) { b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); return ((((0 < b ? b + 0.5 : 0 > b ? b - 0.5 : 0) | 0) & 255) << 16) | (a & -16711681); }; Id.setG = function (a, b) { return ((b & 255) << 8) | (a & -65281); }; Id.setGf = function (a, b) { b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); return ((((0 < b ? b + 0.5 : 0 > b ? b - 0.5 : 0) | 0) & 255) << 8) | (a & -65281); }; Id.setB = function (a, b) { return (b & 255) | (a & -256); }; Id.setBf = function (a, b) { b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); return (((0 < b ? b + 0.5 : 0 > b ? b - 0.5 : 0) | 0) & 255) | (a & -256); }; Id.prototype = { r: null, g: null, b: null, set: function (a, b, c) { this.r = a; this.g = b; this.b = c; }, lerp: function (a, b, c) { b.r = this.r + (a.r - this.r) * c; b.g = this.g + (a.g - this.g) * c; b.b = this.b + (a.b - this.b) * c; }, getR8: function () { var a = 255 * this.r; return (0 < a ? a + 0.5 : 0 > a ? a - 0.5 : 0) | 0; }, getG8: function () { var a = 255 * this.g; return (0 < a ? a + 0.5 : 0 > a ? a - 0.5 : 0) | 0; }, getB8: function () { var a = 255 * this.b; return (0 < a ? a + 0.5 : 0 > a ? a - 0.5 : 0) | 0; }, get24: function () { var a = 255 * this.r, b = 255 * this.g, c = 255 * this.b; return ( (((0 < a ? a + 0.5 : 0 > a ? a - 0.5 : 0) | 0) << 16) | (((0 < b ? b + 0.5 : 0 > b ? b - 0.5 : 0) | 0) << 8) | (0 < c ? c + 0.5 : 0 > c ? c - 0.5 : 0) | 0 ); }, set24: function (a, b, c) { this.r = 0.00392156862745098 * (a & 255); this.g = 0.00392156862745098 * (b & 255); this.b = 0.00392156862745098 * (c & 255); }, copy: function (a) { a.r = this.r; a.g = this.g; a.b = this.b; return a; }, __class__: Id }; var lf = function (a, b) { null == b && (b = 0); null == a && (a = 1); this.volume = a; this.pan = b; this.rightToRight = this.rightToLeft = this.leftToRight = this.leftToLeft = 0; }; h['openfl.media.SoundTransform'] = lf; lf.__name__ = 'openfl.media.SoundTransform'; lf.prototype = { leftToLeft: null, leftToRight: null, pan: null, rightToLeft: null, rightToRight: null, volume: null, clone: function () { return new lf(this.volume, this.pan); }, __class__: lf }; var qa = function () { this.h = Object.create(null); }; h['haxe.ds.StringMap'] = qa; qa.__name__ = 'haxe.ds.StringMap'; qa.__interfaces__ = [ed]; qa.stringify = function (a) { var b = '{', c = !0, e; for (e in a) c ? (c = !1) : (b += ','), (b += e + ' => ' + B.string(a[e])); return b + '}'; }; qa.prototype = { h: null, exists: function (a) { return Object.prototype.hasOwnProperty.call(this.h, a); }, get: function (a) { return this.h[a]; }, set: function (a, b) { this.h[a] = b; }, remove: function (a) { return Object.prototype.hasOwnProperty.call(this.h, a) ? (delete this.h[a], !0) : !1; }, keys: function () { return new pj(this.h); }, iterator: function () { return new Ci(this.h); }, keyValueIterator: function () { return new qo(this.h); }, __class__: qa }; var Za = function () { this.h = {}; }; h['haxe.ds.IntMap'] = Za; Za.__name__ = 'haxe.ds.IntMap'; Za.__interfaces__ = [ed]; Za.prototype = { h: null, set: function (a, b) { this.h[a] = b; }, get: function (a) { return this.h[a]; }, exists: function (a) { return this.h.hasOwnProperty(a); }, remove: function (a) { if (!this.h.hasOwnProperty(a)) return !1; delete this.h[a]; return !0; }, keys: function () { var a = [], b; for (b in this.h) this.h.hasOwnProperty(b) && a.push(b | 0); return new Me(a); }, iterator: function () { return { ref: this.h, it: this.keys(), hasNext: function () { return this.it.hasNext(); }, next: function () { var a = this.it.next(); return this.ref[a]; } }; }, keyValueIterator: function () { return new ih(this); }, __class__: Za }; var Wh = function (a, b, c, e, f, d) { null == d && (d = 0); null == f && (f = 0); null == e && (e = 1); null == c && (c = 0); null == b && (b = 0); null == a && (a = 1); this.a = a; this.b = b; this.c = c; this.d = e; this.tx = f; this.ty = d; }; h['lime.math.Matrix3'] = Wh; Wh.__name__ = 'lime.math.Matrix3'; Wh.prototype = { a: null, b: null, c: null, d: null, tx: null, ty: null, clone: function () { return new Wh(this.a, this.b, this.c, this.d, this.tx, this.ty); }, concat: function (a) { var b = this.a * a.a + this.b * a.c; this.b = this.a * a.b + this.b * a.d; this.a = b; b = this.c * a.a + this.d * a.c; this.d = this.c * a.b + this.d * a.d; this.c = b; b = this.tx * a.a + this.ty * a.c + a.tx; this.ty = this.tx * a.b + this.ty * a.d + a.ty; this.tx = b; }, copyColumnFrom: function (a, b) { if (2 < a) throw M.thrown('Column ' + a + ' out of bounds (2)'); 0 == a ? ((this.a = b.x), (this.b = b.y)) : 1 == a ? ((this.c = b.x), (this.d = b.y)) : ((this.tx = b.x), (this.ty = b.y)); }, copyColumnTo: function (a, b) { if (2 < a) throw M.thrown('Column ' + a + ' out of bounds (2)'); 0 == a ? ((b.x = this.a), (b.y = this.b), (b.z = 0)) : 1 == a ? ((b.x = this.c), (b.y = this.d), (b.z = 0)) : ((b.x = this.tx), (b.y = this.ty), (b.z = 1)); }, copyFrom: function (a) { this.a = a.a; this.b = a.b; this.c = a.c; this.d = a.d; this.tx = a.tx; this.ty = a.ty; }, copyRowFrom: function (a, b) { if (2 < a) throw M.thrown('Row ' + a + ' out of bounds (2)'); 0 == a ? ((this.a = b.x), (this.c = b.y), (this.tx = b.z)) : 1 == a && ((this.b = b.x), (this.d = b.y), (this.ty = b.z)); }, copyRowTo: function (a, b) { if (2 < a) throw M.thrown('Row ' + a + ' out of bounds (2)'); 0 == a ? ((b.x = this.a), (b.y = this.c), (b.z = this.tx)) : 1 == a ? ((b.x = this.b), (b.y = this.d), (b.z = this.ty)) : ((b.x = 0), (b.y = 0), (b.z = 1)); }, createBox: function (a, b, c, e, f) { null == f && (f = 0); null == e && (e = 0); null == c && (c = 0); if (0 != c) { var d = Math.cos(c); c = Math.sin(c); this.a = d * a; this.b = c * b; this.c = -c * a; this.d = d * b; } else (this.a = a), (this.c = this.b = 0), (this.d = b); this.tx = e; this.ty = f; }, createGradientBox: function (a, b, c, e, f) { null == f && (f = 0); null == e && (e = 0); null == c && (c = 0); this.a = a / 1638.4; this.d = b / 1638.4; if (0 != c) { var d = Math.cos(c); c = Math.sin(c); this.b = c * this.d; this.c = -c * this.a; this.a *= d; this.d *= d; } else this.c = this.b = 0; this.tx = e + a / 2; this.ty = f + b / 2; }, equals: function (a) { return null != a && this.tx == a.tx && this.ty == a.ty && this.a == a.a && this.b == a.b && this.c == a.c ? this.d == a.d : !1; }, deltaTransformVector: function (a, b) { null == b && (b = new Xd()); b.x = a.x * this.a + a.y * this.c; b.y = a.x * this.b + a.y * this.d; return b; }, identity: function () { this.a = 1; this.c = this.b = 0; this.d = 1; this.ty = this.tx = 0; }, invert: function () { var a = this.a * this.d - this.b * this.c; if (0 == a) (this.a = this.b = this.c = this.d = 0), (this.tx = -this.tx), (this.ty = -this.ty); else { a = 1 / a; var b = this.d * a; this.d = this.a * a; this.a = b; this.b *= -a; this.c *= -a; a = -this.a * this.tx - this.c * this.ty; this.ty = -this.b * this.tx - this.d * this.ty; this.tx = a; } return this; }, rotate: function (a) { var b = Math.cos(a); a = Math.sin(a); var c = this.a * b - this.b * a; this.b = this.a * a + this.b * b; this.a = c; c = this.c * b - this.d * a; this.d = this.c * a + this.d * b; this.c = c; c = this.tx * b - this.ty * a; this.ty = this.tx * a + this.ty * b; this.tx = c; }, scale: function (a, b) { this.a *= a; this.b *= b; this.c *= a; this.d *= b; this.tx *= a; this.ty *= b; }, setRotation: function (a, b) { null == b && (b = 1); this.a = Math.cos(a) * b; this.c = Math.sin(a) * b; this.b = -this.c; this.d = this.a; }, setTo: function (a, b, c, e, f, d) { this.a = a; this.b = b; this.c = c; this.d = e; this.tx = f; this.ty = d; }, to3DString: function (a) { null == a && (a = !1); return a ? 'matrix3d(' + this.a + ', ' + this.b + ', 0, 0, ' + this.c + ', ' + this.d + ', 0, 0, 0, 0, 1, 0, ' + (this.tx | 0) + ', ' + (this.ty | 0) + ', 0, 1)' : 'matrix3d(' + this.a + ', ' + this.b + ', 0, 0, ' + this.c + ', ' + this.d + ', 0, 0, 0, 0, 1, 0, ' + this.tx + ', ' + this.ty + ', 0, 1)'; }, toString: function () { return ( 'matrix(' + this.a + ', ' + this.b + ', ' + this.c + ', ' + this.d + ', ' + this.tx + ', ' + this.ty + ')' ); }, transformRect: function (a, b) { null == b && (b = new Qd()); var c = this.a * a.x + this.c * a.y, e = c, f = this.b * a.x + this.d * a.y, d = f, p = this.a * (a.x + a.width) + this.c * a.y, l = this.b * (a.x + a.width) + this.d * a.y; p < c && (c = p); l < f && (f = l); p > e && (e = p); l > d && (d = l); p = this.a * (a.x + a.width) + this.c * (a.y + a.height); l = this.b * (a.x + a.width) + this.d * (a.y + a.height); p < c && (c = p); l < f && (f = l); p > e && (e = p); l > d && (d = l); p = this.a * a.x + this.c * (a.y + a.height); l = this.b * a.x + this.d * (a.y + a.height); p < c && (c = p); l < f && (f = l); p > e && (e = p); l > d && (d = l); b.setTo(c + p, f + l, e - c, d - f); return b; }, transformVector: function (a, b) { null == b && (b = new Xd()); b.x = a.x * this.a + a.y * this.c + this.tx; b.y = a.x * this.b + a.y * this.d + this.ty; return b; }, translate: function (a, b) { this.tx += a; this.ty += b; }, __class__: Wh }; var Ia = function (a, b, c, e, f, d) { null == d && (d = 0); null == f && (f = 0); null == e && (e = 1); null == c && (c = 0); null == b && (b = 0); null == a && (a = 1); this.a = a; this.b = b; this.c = c; this.d = e; this.tx = f; this.ty = d; }; h['openfl.geom.Matrix'] = Ia; Ia.__name__ = 'openfl.geom.Matrix'; Ia.prototype = { a: null, b: null, c: null, d: null, tx: null, ty: null, __array: null, clone: function () { return new Ia(this.a, this.b, this.c, this.d, this.tx, this.ty); }, concat: function (a) { var b = this.a * a.a + this.b * a.c; this.b = this.a * a.b + this.b * a.d; this.a = b; b = this.c * a.a + this.d * a.c; this.d = this.c * a.b + this.d * a.d; this.c = b; b = this.tx * a.a + this.ty * a.c + a.tx; this.ty = this.tx * a.b + this.ty * a.d + a.ty; this.tx = b; }, copyColumnFrom: function (a, b) { if (2 < a) throw M.thrown('Column ' + a + ' out of bounds (2)'); 0 == a ? ((this.a = b.x), (this.b = b.y)) : 1 == a ? ((this.c = b.x), (this.d = b.y)) : ((this.tx = b.x), (this.ty = b.y)); }, copyColumnTo: function (a, b) { if (2 < a) throw M.thrown('Column ' + a + ' out of bounds (2)'); 0 == a ? ((b.x = this.a), (b.y = this.b), (b.z = 0)) : 1 == a ? ((b.x = this.c), (b.y = this.d), (b.z = 0)) : ((b.x = this.tx), (b.y = this.ty), (b.z = 1)); }, copyFrom: function (a) { this.a = a.a; this.b = a.b; this.c = a.c; this.d = a.d; this.tx = a.tx; this.ty = a.ty; }, copyRowFrom: function (a, b) { if (2 < a) throw M.thrown('Row ' + a + ' out of bounds (2)'); 0 == a ? ((this.a = b.x), (this.c = b.y), (this.tx = b.z)) : 1 == a && ((this.b = b.x), (this.d = b.y), (this.ty = b.z)); }, copyRowTo: function (a, b) { if (2 < a) throw M.thrown('Row ' + a + ' out of bounds (2)'); 0 == a ? ((b.x = this.a), (b.y = this.c), (b.z = this.tx)) : 1 == a ? ((b.x = this.b), (b.y = this.d), (b.z = this.ty)) : b.setTo(0, 0, 1); }, createBox: function (a, b, c, e, f) { null == f && (f = 0); null == e && (e = 0); null == c && (c = 0); if (0 != c) { var d = Math.cos(c); c = Math.sin(c); this.a = d * a; this.b = c * b; this.c = -c * a; this.d = d * b; } else (this.a = a), (this.c = this.b = 0), (this.d = b); this.tx = e; this.ty = f; }, createGradientBox: function (a, b, c, e, f) { null == f && (f = 0); null == e && (e = 0); null == c && (c = 0); this.a = a / 1638.4; this.d = b / 1638.4; if (0 != c) { var d = Math.cos(c); c = Math.sin(c); this.b = c * this.d; this.c = -c * this.a; this.a *= d; this.d *= d; } else this.c = this.b = 0; this.tx = e + a / 2; this.ty = f + b / 2; }, deltaTransformPoint: function (a) { return new na(a.x * this.a + a.y * this.c, a.x * this.b + a.y * this.d); }, equals: function (a) { return null != a && this.tx == a.tx && this.ty == a.ty && this.a == a.a && this.b == a.b && this.c == a.c ? this.d == a.d : !1; }, identity: function () { this.a = 1; this.c = this.b = 0; this.d = 1; this.ty = this.tx = 0; }, invert: function () { var a = this.a * this.d - this.b * this.c; if (0 == a) (this.a = this.b = this.c = this.d = 0), (this.tx = -this.tx), (this.ty = -this.ty); else { a = 1 / a; var b = this.d * a; this.d = this.a * a; this.a = b; this.b *= -a; this.c *= -a; a = -this.a * this.tx - this.c * this.ty; this.ty = -this.b * this.tx - this.d * this.ty; this.tx = a; } return this; }, rotate: function (a) { var b = Math.cos(a); a = Math.sin(a); var c = this.a * b - this.b * a; this.b = this.a * a + this.b * b; this.a = c; c = this.c * b - this.d * a; this.d = this.c * a + this.d * b; this.c = c; c = this.tx * b - this.ty * a; this.ty = this.tx * a + this.ty * b; this.tx = c; }, scale: function (a, b) { this.a *= a; this.b *= b; this.c *= a; this.d *= b; this.tx *= a; this.ty *= b; }, setRotation: function (a, b) { null == b && (b = 1); this.a = Math.cos(a) * b; this.c = Math.sin(a) * b; this.b = -this.c; this.d = this.a; }, setTo: function (a, b, c, e, f, d) { this.a = a; this.b = b; this.c = c; this.d = e; this.tx = f; this.ty = d; }, to3DString: function (a) { null == a && (a = !1); return a ? 'matrix3d(' + this.a + ', ' + this.b + ', 0, 0, ' + this.c + ', ' + this.d + ', 0, 0, 0, 0, 1, 0, ' + (this.tx | 0) + ', ' + (this.ty | 0) + ', 0, 1)' : 'matrix3d(' + this.a + ', ' + this.b + ', 0, 0, ' + this.c + ', ' + this.d + ', 0, 0, 0, 0, 1, 0, ' + this.tx + ', ' + this.ty + ', 0, 1)'; }, toMozString: function () { return ( 'matrix(' + this.a + ', ' + this.b + ', ' + this.c + ', ' + this.d + ', ' + this.tx + 'px, ' + this.ty + 'px)' ); }, toString: function () { return ( 'matrix(' + this.a + ', ' + this.b + ', ' + this.c + ', ' + this.d + ', ' + this.tx + ', ' + this.ty + ')' ); }, transformPoint: function (a) { return new na( a.x * this.a + a.y * this.c + this.tx, a.x * this.b + a.y * this.d + this.ty ); }, translate: function (a, b) { this.tx += a; this.ty += b; }, toArray: function (a) { null == a && (a = !1); null == this.__array && (this.__array = new Float32Array(9)); a ? ((this.__array[0] = this.a), (this.__array[1] = this.b), (this.__array[2] = 0), (this.__array[3] = this.c), (this.__array[4] = this.d), (this.__array[5] = 0), (this.__array[6] = this.tx), (this.__array[7] = this.ty)) : ((this.__array[0] = this.a), (this.__array[1] = this.c), (this.__array[2] = this.tx), (this.__array[3] = this.b), (this.__array[4] = this.d), (this.__array[5] = this.ty), (this.__array[6] = 0), (this.__array[7] = 0)); this.__array[8] = 1; return this.__array; }, __cleanValues: function () { this.a = Math.round(1e3 * this.a) / 1e3; this.b = Math.round(1e3 * this.b) / 1e3; this.c = Math.round(1e3 * this.c) / 1e3; this.d = Math.round(1e3 * this.d) / 1e3; this.tx = Math.round(10 * this.tx) / 10; this.ty = Math.round(10 * this.ty) / 10; }, __toMatrix3: function () { Ia.__matrix3.setTo(this.a, this.b, this.c, this.d, this.tx, this.ty); return Ia.__matrix3; }, __transformInversePoint: function (a) { var b = this.a * this.d - this.b * this.c; if (0 == b) (a.x = -this.tx), (a.y = -this.ty); else { var c = (1 / b) * (this.c * (this.ty - a.y) + this.d * (a.x - this.tx)); a.y = (1 / b) * (this.a * (a.y - this.ty) + this.b * (this.tx - a.x)); a.x = c; } }, __transformInverseX: function (a, b) { var c = this.a * this.d - this.b * this.c; return 0 == c ? -this.tx : (1 / c) * (this.c * (this.ty - b) + this.d * (a - this.tx)); }, __transformInverseY: function (a, b) { var c = this.a * this.d - this.b * this.c; return 0 == c ? -this.ty : (1 / c) * (this.a * (b - this.ty) + this.b * (this.tx - a)); }, __transformPoint: function (a) { var b = a.x, c = a.y; a.x = b * this.a + c * this.c + this.tx; a.y = b * this.b + c * this.d + this.ty; }, __transformX: function (a, b) { return a * this.a + b * this.c + this.tx; }, __transformY: function (a, b) { return a * this.b + b * this.d + this.ty; }, __translateTransformed: function (a, b) { this.tx = a * this.a + b * this.c + this.tx; this.ty = a * this.b + b * this.d + this.ty; }, __class__: Ia }; var Kc = function (a, b, c, e, f, d, p, l) { null == l && (l = 0); null == p && (p = 0); null == d && (d = 0); null == f && (f = 0); null == e && (e = 1); null == c && (c = 1); null == b && (b = 1); null == a && (a = 1); this.redMultiplier = a; this.greenMultiplier = b; this.blueMultiplier = c; this.alphaMultiplier = e; this.redOffset = f; this.greenOffset = d; this.blueOffset = p; this.alphaOffset = l; }; h['openfl.geom.ColorTransform'] = Kc; Kc.__name__ = 'openfl.geom.ColorTransform'; Kc.prototype = { alphaMultiplier: null, alphaOffset: null, blueMultiplier: null, blueOffset: null, greenMultiplier: null, greenOffset: null, redMultiplier: null, redOffset: null, concat: function (a) { this.redOffset = a.redOffset * this.redMultiplier + this.redOffset; this.greenOffset = a.greenOffset * this.greenMultiplier + this.greenOffset; this.blueOffset = a.blueOffset * this.blueMultiplier + this.blueOffset; this.alphaOffset = a.alphaOffset * this.alphaMultiplier + this.alphaOffset; this.redMultiplier *= a.redMultiplier; this.greenMultiplier *= a.greenMultiplier; this.blueMultiplier *= a.blueMultiplier; this.alphaMultiplier *= a.alphaMultiplier; }, toString: function () { return ( '(redMultiplier=' + this.redMultiplier + ', greenMultiplier=' + this.greenMultiplier + ', blueMultiplier=' + this.blueMultiplier + ', alphaMultiplier=' + this.alphaMultiplier + ', redOffset=' + this.redOffset + ', greenOffset=' + this.greenOffset + ', blueOffset=' + this.blueOffset + ', alphaOffset=' + this.alphaOffset + ')' ); }, __clone: function () { return new Kc( this.redMultiplier, this.greenMultiplier, this.blueMultiplier, this.alphaMultiplier, this.redOffset, this.greenOffset, this.blueOffset, this.alphaOffset ); }, __copyFrom: function (a) { this.redMultiplier = a.redMultiplier; this.greenMultiplier = a.greenMultiplier; this.blueMultiplier = a.blueMultiplier; this.alphaMultiplier = a.alphaMultiplier; this.redOffset = a.redOffset; this.greenOffset = a.greenOffset; this.blueOffset = a.blueOffset; this.alphaOffset = a.alphaOffset; }, __combine: function (a) { this.redMultiplier *= a.redMultiplier; this.greenMultiplier *= a.greenMultiplier; this.blueMultiplier *= a.blueMultiplier; this.alphaMultiplier *= a.alphaMultiplier; this.redOffset += a.redOffset; this.greenOffset += a.greenOffset; this.blueOffset += a.blueOffset; this.alphaOffset += a.alphaOffset; }, __identity: function () { this.alphaMultiplier = this.blueMultiplier = this.greenMultiplier = this.redMultiplier = 1; this.alphaOffset = this.blueOffset = this.greenOffset = this.redOffset = 0; }, __invert: function () { this.redMultiplier = 0 != this.redMultiplier ? 1 / this.redMultiplier : 1; this.greenMultiplier = 0 != this.greenMultiplier ? 1 / this.greenMultiplier : 1; this.blueMultiplier = 0 != this.blueMultiplier ? 1 / this.blueMultiplier : 1; this.alphaMultiplier = 0 != this.alphaMultiplier ? 1 / this.alphaMultiplier : 1; this.redOffset = -this.redOffset; this.greenOffset = -this.greenOffset; this.blueOffset = -this.blueOffset; this.alphaOffset = -this.alphaOffset; }, __equals: function (a, b) { return null == a || this.redMultiplier != a.redMultiplier || this.greenMultiplier != a.greenMultiplier || this.blueMultiplier != a.blueMultiplier || (!b && this.alphaMultiplier != a.alphaMultiplier) || this.redOffset != a.redOffset || this.greenOffset != a.greenOffset || this.blueOffset != a.blueOffset ? !1 : this.alphaOffset == a.alphaOffset; }, __isDefault: function (a) { return a ? 1 == this.redMultiplier && 1 == this.greenMultiplier && 1 == this.blueMultiplier && 0 == this.redOffset && 0 == this.greenOffset && 0 == this.blueOffset ? 0 == this.alphaOffset : !1 : 1 == this.redMultiplier && 1 == this.greenMultiplier && 1 == this.blueMultiplier && 1 == this.alphaMultiplier && 0 == this.redOffset && 0 == this.greenOffset && 0 == this.blueOffset ? 0 == this.alphaOffset : !1; }, __setArrays: function (a, b) { a[0] = this.redMultiplier; a[1] = this.greenMultiplier; a[2] = this.blueMultiplier; a[3] = this.alphaMultiplier; b[0] = this.redOffset; b[1] = this.greenOffset; b[2] = this.blueOffset; b[3] = this.alphaOffset; }, get_color: function () { return ((this.redOffset | 0) << 16) | ((this.greenOffset | 0) << 8) | this.blueOffset | 0; }, set_color: function (a) { this.redOffset = (a >> 16) & 255; this.greenOffset = (a >> 8) & 255; this.blueOffset = a & 255; this.blueMultiplier = this.greenMultiplier = this.redMultiplier = 0; return this.get_color(); }, __toLimeColorMatrix: function () { if (null == Kc.__limeColorMatrix) { var a = new Float32Array(20); Kc.__limeColorMatrix = a; } Kc.__limeColorMatrix[0] = this.redMultiplier; Kc.__limeColorMatrix[4] = this.redOffset / 255; Kc.__limeColorMatrix[6] = this.greenMultiplier; Kc.__limeColorMatrix[9] = this.greenOffset / 255; Kc.__limeColorMatrix[12] = this.blueMultiplier; Kc.__limeColorMatrix[14] = this.blueOffset / 255; Kc.__limeColorMatrix[18] = this.alphaMultiplier; Kc.__limeColorMatrix[19] = this.alphaOffset / 255; return Kc.__limeColorMatrix; }, __class__: Kc, __properties__: { set_color: 'set_color', get_color: 'get_color' } }; var X = function () {}; h['com.stencyl.utils.Utils'] = X; X.__name__ = 'com.stencyl.utils.Utils'; X.__properties__ = { set_time: 'set_time', set_pan: 'set_pan', get_pan: 'get_pan', set_volume: 'set_volume', get_volume: 'get_volume' }; X.toBoolean = function (a) { return 'true' == a ? !0 : !1; }; X.clear = function (a) { a.length = 0; }; X.removeValueFromArray = function (a, b) { for (var c = a.length - 1; -1 < c; ) a[c] == b && a.splice(c, 1), --c; }; X.contains = function (a, b) { if (null == a) return !1; for (var c = a.length - 1; -1 < c; ) { if (a[c] == b) return !0; --c; } return !1; }; X.mapContainsValue = function (a, b) { a = a.h; for (var c = Object.keys(a), e = c.length, f = 0; f < e; ) if (a[c[f++]] == b) return !0; return !1; }; X.mapCount = function (a) { var b = 0; a = Object.keys(a.h).length; for (var c = 0; c < a; ) c++, ++b; return b; }; X.mapToList = function (a, b) { var c = []; if ('keys' == b) { b = a.h; b = Object.keys(b); for (var e = b.length, f = 0; f < e; ) { var d = b[f++]; c.push(d); } } else for (a = b = a.h, b = Object.keys(b), e = b.length, f = 0; f < e; ) (d = a[b[f++]]), c.push(d); return c; }; X.clone = function (a) { return X.cloner.clone(a); }; X.copyMap = function (a) { for (var b = new qa(), c = Object.keys(a.h), e = c.length, f = 0; f < e; ) { var d = c[f++]; b.h[d] = a.h[d]; } return b; }; X.applyToAllChildren = function (a, b) { for (var c = 0, e = a.get_numChildren(); c < e; ) { var f = c++; f = a.getChildAt(f); f instanceof Ya && X.applyToAllChildren(f, b); b(f); } }; X.removeAllChildren = function (a) { for (; 0 < a.get_numChildren(); ) { var b = a.getChildAt(0); b instanceof Ya && X.removeAllChildren(x.__cast(b, Ya)); b instanceof jg && X.removeAllTiles(b); a.removeChild(b); } }; X.removeAllTiles = function (a) { for (; 0 < a.get_numTiles(); ) { var b = a.getTileAt(0); x.__implements(b, Di) && X.removeAllTiles(b); a.removeTile(b); } }; X.demouse = function (a) { for (var b = 0, c = a.get_numChildren(); b < c; ) { var e = b++; e = a.getChildAt(e); e instanceof Ya && X.demouse(x.__cast(e, Ya)); a.mouseChildren = !1; a.mouseEnabled = !1; } }; X.getAnchorPoint = function (a) { a = a.getRect(a); return new na(-1 * a.x, -1 * a.y); }; X.setCamera = function (a, b) { null == b && (b = 0); null == a && (a = 0); X.camera.x = a; X.camera.y = b; }; X.resetCamera = function () { X.camera.x = X.camera.y = 0; }; X.get_volume = function () { return X._volume; }; X.set_volume = function (a) { 0 > a && (a = 0); if (X._volume == a) return a; X._soundTransform.volume = X._volume = a; return X._volume; }; X.get_pan = function () { return X._pan; }; X.set_pan = function (a) { -1 > a && (a = -1); 1 < a && (a = 1); if (X._pan == a) return a; X._soundTransform.pan = X._pan = a; return X._pan; }; X.sign = function (a) { return 0 > a ? -1 : 0 < a ? 1 : 0; }; X.approach = function (a, b, c) { return a < b ? (b < a + c ? b : a + c) : b > a - c ? b : a - c; }; X.lerp = function (a, b, c) { null == c && (c = 1); return a + (b - a) * c; }; X.colorLerp = function (a, b, c) { null == c && (c = 1); if (0 >= c) return a; if (1 <= c) return b; var e = (a >> 24) & 255, f = (a >> 16) & 255, d = (a >> 8) & 255; a &= 255; return ( ((e + (((((b >> 24) & 255) - e) * c) | 0)) << 24) | ((f + (((((b >> 16) & 255) - f) * c) | 0)) << 16) | ((d + (((((b >> 8) & 255) - d) * c) | 0)) << 8) | (a + ((((b & 255) - a) * c) | 0)) ); }; X.stepTowards = function (a, b, c, e) { null == e && (e = 1); X.point.x = b - a.x; X.point.y = c - a.y; X.point.get_length() <= e ? ((a.x = b), (a.y = c)) : (X.point.normalize(e), (a.x += X.point.x), (a.y += X.point.y)); }; X.anchorTo = function (a, b, c) { null == c && (c = 0); X.point.x = a.x - b.x; X.point.y = a.y - b.y; X.point.get_length() > c && X.point.normalize(c); a.x = b.x + X.point.x; a.y = b.y + X.point.y; }; X.angle = function (a, b, c, e) { a = 57.29577951308402 * Math.atan2(e - b, c - a); return 0 > a ? a + 360 : a; }; X.angleXY = function (a, b, c, e, f) { null == f && (f = 0); null == e && (e = 0); null == c && (c = 1); b *= 0.01745329251994278; a.x = Math.cos(b) * c + e; a.y = Math.sin(b) * c + f; }; X.rotateAround = function (a, b, c, e) { null == e && (e = !0); null == c && (c = 0); e && ((e = 57.29577951308402 * Math.atan2(a.y - b.y, a.x - b.x)), (c += 0 > e ? e + 360 : e)); e = b.x; var f = b.y, d = a.x, p = a.y; null == p && (p = 0); null == d && (d = 0); e = Math.sqrt((d - e) * (d - e) + (p - f) * (p - f)); f = b.x; b = b.y; null == b && (b = 0); null == f && (f = 0); null == e && (e = 1); c *= 0.01745329251994278; a.x = Math.cos(c) * e + f; a.y = Math.sin(c) * e + b; }; X.distance = function (a, b, c, e) { null == e && (e = 0); null == c && (c = 0); return Math.sqrt((c - a) * (c - a) + (e - b) * (e - b)); }; X.distanceSquared = function (a, b, c, e) { null == e && (e = 0); null == c && (c = 0); return (c - a) * (c - a) + (e - b) * (e - b); }; X.distanceRects = function (a, b, c, e, f, d, p, l) { if (a < f + p && f < a + c) return b < d + l && d < b + e ? 0 : b > d ? b - (d + l) : d - (b + e); if (b < d + l && d < b + e) return a > f ? a - (f + p) : f - (a + c); if (a > f) { if (b > d) return ( (f += p), (d += l), null == d && (d = 0), null == f && (f = 0), Math.sqrt((f - a) * (f - a) + (d - b) * (d - b)) ); b += e; f += p; null == d && (d = 0); null == f && (f = 0); return Math.sqrt((f - a) * (f - a) + (d - b) * (d - b)); } if (b > d) return ( (a += c), (d += l), null == d && (d = 0), null == f && (f = 0), Math.sqrt((f - a) * (f - a) + (d - b) * (d - b)) ); a += c; b += e; null == d && (d = 0); null == f && (f = 0); return Math.sqrt((f - a) * (f - a) + (d - b) * (d - b)); }; X.distanceRectPoint = function (a, b, c, e, f, d) { if (a >= c && a <= c + f) return b >= e && b <= e + d ? 0 : b > e ? b - (e + d) : e - b; if (b >= e && b <= e + d) return a > c ? a - (c + f) : c - a; if (a > c) { if (b > e) return ( (c += f), (e += d), null == e && (e = 0), null == c && (c = 0), Math.sqrt((c - a) * (c - a) + (e - b) * (e - b)) ); c += f; null == e && (e = 0); null == c && (c = 0); return Math.sqrt((c - a) * (c - a) + (e - b) * (e - b)); } if (b > e) return ( (e += d), null == e && (e = 0), null == c && (c = 0), Math.sqrt((c - a) * (c - a) + (e - b) * (e - b)) ); null == e && (e = 0); null == c && (c = 0); return Math.sqrt((c - a) * (c - a) + (e - b) * (e - b)); }; X.clamp = function (a, b, c) { if (c > b) return a < c || (a = c), a > b ? a : b; a < b || (a = b); return a > c ? a : c; }; X.clampInRect = function (a, b, c, e, f, d) { null == d && (d = 0); a.x = X.clamp(a.x, b + d, b + e - d); a.y = X.clamp(a.y, c + d, c + f - d); }; X.scale = function (a, b, c, e, f) { return e + ((a - b) / (c - b)) * (f - e); }; X.scaleClamp = function (a, b, c, e, f) { a = e + ((a - b) / (c - b)) * (f - e); if (f > e) return a < f || (a = f), a > e ? a : e; a < e || (a = e); return a > f ? a : f; }; X.indexOf = function (a, b) { for (var c = 0, e = 0; e < a.length; ) { var f = a[e]; ++e; if (b == f) return c; ++c; } return -1; }; X.next = function (a, b, c) { null == c && (c = !0); return c ? b[(X.indexOf(b, a) + 1) % b.length] : b[Math.max(X.indexOf(b, a) + 1, b.length - 1) | 0]; }; X.prev = function (a, b, c) { null == c && (c = !0); return c ? b[(X.indexOf(b, a) - 1 + b.length) % b.length] : b[Math.max(X.indexOf(b, a) - 1, 0) | 0]; }; X.swap = function (a, b, c) { return a == b ? c : b; }; X.getColorRGB = function (a, b, c) { null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); return (a << 16) | (b << 8) | c; }; X.getRed = function (a) { return (a >> 16) & 255; }; X.getGreen = function (a) { return (a >> 8) & 255; }; X.getBlue = function (a) { return a & 255; }; X.convertColor = function (a) { return 0 > a ? a + 16777216 : a; }; X.timeFlag = function () { var a = new Date().getTime() / 1e3, b = a - X._time; X._time = a; return b; }; X.frames = function (a, b, c) { null == c && (c = 0); var e = []; ++c; if (a < b) for (; a <= b; ) e.push(a), (a += c); else for (; a >= b; ) e.push(a), (a -= c); return e; }; X.set_time = function (a) { X._time = a; return X._time; }; X.printCallstackIfAvailable = function () { return '\n' + mf.toString(mf.callStack()); }; X.printExceptionstackIfAvailable = function () { return '\n' + mf.toString(mf.exceptionStack()); }; X.saveToSharedObject = function (a, b, c) { try { a.data[b] = X.clone(c); } catch (e) { if (((la.lastError = e), (a = M.caught(e).unwrap()), 'string' == typeof a)) { if ('deep clone' != a) throw M.thrown(a); } else throw e; } }; X.loadFromSharedObject = function (a, b) { return X.cloner.clone(Z.field(a.data, b)); }; X.flushSharedObject = function (a, b) { var c = null; try { c = a.flush(); } catch (e) { la.lastError = e; null != b && b(!1); return; } 0 == c && null != b && b(!0); }; X.saveMap = function (a, b, c) { b = ld.getLocal(b, vd.current.meta.h.localSavePath); for (var e = Object.keys(a.h), f = e.length, d = 0; d < f; ) { var p = e[d++]; b.data[p] = a.h[p]; } X.flushSharedObject(b, c); }; X.loadMap = function (a, b, c) { b = ld.getLocal(b, vd.current.meta.h.localSavePath); for (var e = 0, f = Z.fields(b.data); e < f.length; ) { var d = f[e]; ++e; a.h[d] = Z.field(b.data, d); } null != c && c(!0); }; X.convertLegacySharedObject = function (a, b) {}; X.getFlatName = function (a) { a = U.replace(a, '/', '_'); a = U.replace(a, '.', '_'); return (a = U.replace(a, '-', '_')); }; X.getAssetClass = function (a) { a = '__ASSET__' + X.getFlatName(a); return h[a]; }; X.getConfigBytes = function (a) { return yh.getBytes(X.getFlatName(a)); }; X.getConfigText = function (a) { return yh.getString(X.getFlatName(a)); }; X.getConfigBitmap = function (a) { try { var b = X.getFlatName(U.replace(a, '.png', '.txt')), c = yh.getString(b); return ja.loadFromBase64(c, 'png').then(function (a) { return kb.withValue(new Mc(a)); }); } catch (e) { la.lastError = e; a = M.caught(e).unwrap(); if ('string' == typeof a) return kb.withError('(You probably have a old browser) Error occurred: ' + a); throw e; } }; X.loadBytes = function (a) { a = ma.createInstance(X.getAssetClass(a), []); return kc.ofData(zb.toArrayBuffer(a)); }; X.loadText = function (a) { a = X.loadBytes(a); return a.getString(0, a.length); }; X.loadBitmapData = function (a) { a = Fb.fromFile(a); return ja.fromImage(a); }; X.resetStatics = function () { X.width = 0; X.height = 0; X.elapsed = 0; X.rate = 1; X.bounds = null; X.camera = new na(); X._time = 0; X._updateTime = 0; X._renderTime = 0; X._gameTime = 0; X._flashTime = 0; X._bitmap = new qa(); X._seed = 0; X._getSeed = 0; X._volume = 1; X._pan = 0; X._soundTransform = new lf(); X.stage = null; X.point = new na(); X.point2 = new na(); X.zero = new na(); X.rect = new fa(); X.matrix = new Ia(); X.sprite = new Ca(); X.collision = new uc(); }; var Oa = function () {}; h['com.stencyl.utils.motion.EasingFunction'] = Oa; Oa.__name__ = 'com.stencyl.utils.motion.EasingFunction'; Oa.prototype = { apply: function (a) { return 0; }, __class__: Oa }; var kl = function () {}; h['com.stencyl.utils.motion.BackIn'] = kl; kl.__name__ = 'com.stencyl.utils.motion.BackIn'; kl.__super__ = Oa; kl.prototype = r(Oa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : a * a * (2.70158 * a - 1.70158); }, __class__: kl }); var ll = function () {}; h['com.stencyl.utils.motion.BackInOut'] = ll; ll.__name__ = 'com.stencyl.utils.motion.BackInOut'; ll.__super__ = Oa; ll.prototype = r(Oa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : 1 > (a *= 2) ? 0.5 * a * a * (3.5949095 * a - 2.5949095) : 0.5 * ((a -= 2) * a * (3.5949095 * a + 2.5949095) + 2); }, __class__: ll }); var ml = function () {}; h['com.stencyl.utils.motion.BackOut'] = ml; ml.__name__ = 'com.stencyl.utils.motion.BackOut'; ml.__super__ = Oa; ml.prototype = r(Oa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : --a * a * (2.70158 * a + 1.70158) + 1; }, __class__: ml }); var nl = function () {}; h['com.stencyl.utils.motion.BackOutIn'] = nl; nl.__name__ = 'com.stencyl.utils.motion.BackOutIn'; nl.__super__ = Oa; nl.prototype = r(Oa.prototype, { apply: function (a) { if (0 == a) return 0; if (1 == a) return 1; if (0.5 > a) return (a = 2 * a - 1), 0.5 * (a * a * (2.70158 * a + 1.70158) + 1); a = 2 * a - 1; return 0.5 * a * a * (2.70158 * a - 1.70158) + 0.5; }, __class__: nl }); var ol = function () {}; h['com.stencyl.utils.motion.BounceIn'] = ol; ol.__name__ = 'com.stencyl.utils.motion.BounceIn'; ol.__super__ = Oa; ol.prototype = r(Oa.prototype, { apply: function (a) { a = 1 - a; return 0.36363636363636365 > a ? 1 - 7.5625 * a * a : 0.7272727272727273 > a ? 1 - (7.5625 * (a -= 0.5454545454545454) * a + 0.75) : 0.9090909090909091 > a ? 1 - (7.5625 * (a -= 0.8181818181818182) * a + 0.9375) : 1 - (7.5625 * (a -= 0.9545454545454546) * a + 0.984375); }, __class__: ol }); var pl = function () {}; h['com.stencyl.utils.motion.BounceInOut'] = pl; pl.__name__ = 'com.stencyl.utils.motion.BounceInOut'; pl.__super__ = Oa; pl.prototype = r(Oa.prototype, { apply: function (a) { if (0.5 > a) return ( (a = 1 - 2 * a), 0.36363636363636365 > a ? 0.5 * (1 - 7.5625 * a * a) : 0.7272727272727273 > a ? 0.5 * (1 - (7.5625 * (a -= 0.5454545454545454) * a + 0.75)) : 0.9090909090909091 > a ? 0.5 * (1 - (7.5625 * (a -= 0.8181818181818182) * a + 0.9375)) : 0.5 * (1 - (7.5625 * (a -= 0.9545454545454546) * a + 0.984375)) ); a = 2 * a - 1; return 0.36363636363636365 > a ? 7.5625 * a * a * 0.5 + 0.5 : 0.7272727272727273 > a ? 0.5 * (7.5625 * (a -= 0.5454545454545454) * a + 0.75) + 0.5 : 0.9090909090909091 > a ? 0.5 * (7.5625 * (a -= 0.8181818181818182) * a + 0.9375) + 0.5 : 0.5 * (7.5625 * (a -= 0.9545454545454546) * a + 0.984375) + 0.5; }, __class__: pl }); var ql = function () {}; h['com.stencyl.utils.motion.BounceOut'] = ql; ql.__name__ = 'com.stencyl.utils.motion.BounceOut'; ql.__super__ = Oa; ql.prototype = r(Oa.prototype, { apply: function (a) { return 0.36363636363636365 > a ? 7.5625 * a * a : 0.7272727272727273 > a ? 7.5625 * (a -= 0.5454545454545454) * a + 0.75 : 0.9090909090909091 > a ? 7.5625 * (a -= 0.8181818181818182) * a + 0.9375 : 7.5625 * (a -= 0.9545454545454546) * a + 0.984375; }, __class__: ql }); var rl = function () {}; h['com.stencyl.utils.motion.BounceOutIn'] = rl; rl.__name__ = 'com.stencyl.utils.motion.BounceOutIn'; rl.__super__ = Oa; rl.prototype = r(Oa.prototype, { apply: function (a) { if (0.5 > a) return 0.36363636363636365 > (a *= 2) ? 3.78125 * a * a : 0.7272727272727273 > a ? 0.5 * (7.5625 * (a -= 0.5454545454545454) * a + 0.75) : 0.9090909090909091 > a ? 0.5 * (7.5625 * (a -= 0.8181818181818182) * a + 0.9375) : 0.5 * (7.5625 * (a -= 0.9545454545454546) * a + 0.984375); a = 1 - (2 * a - 1); return 0.36363636363636365 > a ? 0.5 - 3.78125 * a * a + 0.5 : 0.7272727272727273 > a ? 0.5 - 0.5 * (7.5625 * (a -= 0.5454545454545454) * a + 0.75) + 0.5 : 0.9090909090909091 > a ? 0.5 - 0.5 * (7.5625 * (a -= 0.8181818181818182) * a + 0.9375) + 0.5 : 0.5 - 0.5 * (7.5625 * (a -= 0.9545454545454546) * a + 0.984375) + 0.5; }, __class__: rl }); var sl = function () {}; h['com.stencyl.utils.motion.CircIn'] = sl; sl.__name__ = 'com.stencyl.utils.motion.CircIn'; sl.__super__ = Oa; sl.prototype = r(Oa.prototype, { apply: function (a) { return -1 > a || 1 < a ? 0 : 1 - Math.sqrt(1 - a * a); }, __class__: sl }); var tl = function () {}; h['com.stencyl.utils.motion.CircInOut'] = tl; tl.__name__ = 'com.stencyl.utils.motion.CircInOut'; tl.__super__ = Oa; tl.prototype = r(Oa.prototype, { apply: function (a) { return -0.5 > a || 1.5 < a ? 0.5 : 1 > (a *= 2) ? -0.5 * (Math.sqrt(1 - a * a) - 1) : 0.5 * (Math.sqrt(1 - (a -= 2) * a) + 1); }, __class__: tl }); var ul = function () {}; h['com.stencyl.utils.motion.CircOut'] = ul; ul.__name__ = 'com.stencyl.utils.motion.CircOut'; ul.__super__ = Oa; ul.prototype = r(Oa.prototype, { apply: function (a) { return 0 > a || 2 < a ? 0 : Math.sqrt(a * (2 - a)); }, __class__: ul }); var vl = function () {}; h['com.stencyl.utils.motion.CircOutIn'] = vl; vl.__name__ = 'com.stencyl.utils.motion.CircOutIn'; vl.__super__ = Oa; vl.prototype = r(Oa.prototype, { apply: function (a) { if (0 > a) return 0; if (1 < a) return 1; if (0.5 > a) return (a = 2 * a - 1), 0.5 * Math.sqrt(1 - a * a); a = 2 * a - 1; return -0.5 * (Math.sqrt(1 - a * a) - 1 - 1); }, __class__: vl }); var wl = function () {}; h['com.stencyl.utils.motion.CubicIn'] = wl; wl.__name__ = 'com.stencyl.utils.motion.CubicIn'; wl.__super__ = Oa; wl.prototype = r(Oa.prototype, { apply: function (a) { return a * a * a; }, __class__: wl }); var xl = function () {}; h['com.stencyl.utils.motion.CubicInOut'] = xl; xl.__name__ = 'com.stencyl.utils.motion.CubicInOut'; xl.__super__ = Oa; xl.prototype = r(Oa.prototype, { apply: function (a) { return 1 > (a *= 2) ? 0.5 * a * a * a : 0.5 * ((a -= 2) * a * a + 2); }, __class__: xl }); var yl = function () {}; h['com.stencyl.utils.motion.CubicOut'] = yl; yl.__name__ = 'com.stencyl.utils.motion.CubicOut'; yl.__super__ = Oa; yl.prototype = r(Oa.prototype, { apply: function (a) { return --a * a * a + 1; }, __class__: yl }); var zl = function () {}; h['com.stencyl.utils.motion.CubicOutIn'] = zl; zl.__name__ = 'com.stencyl.utils.motion.CubicOutIn'; zl.__super__ = Oa; zl.prototype = r(Oa.prototype, { apply: function (a) { a = 2 * a - 1; return 0.5 * (a * a * a + 1); }, __class__: zl }); var Al = function () {}; h['com.stencyl.utils.motion.ElasticIn'] = Al; Al.__name__ = 'com.stencyl.utils.motion.ElasticIn'; Al.__super__ = Oa; Al.prototype = r(Oa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : -( Math.exp(6.931471805599453 * --a) * Math.sin((6.283185307179586 * (0.001 * a - 7.5e-5)) / 3e-4) ); }, __class__: Al }); var Bl = function () {}; h['com.stencyl.utils.motion.ElasticInOut'] = Bl; Bl.__name__ = 'com.stencyl.utils.motion.ElasticInOut'; Bl.__super__ = Oa; Bl.prototype = r(Oa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : 1 > (a *= 2) ? -0.5 * Math.exp(6.931471805599453 * --a) * Math.sin((6.283185307179586 * (0.001 * a - 7.5e-5)) / 3e-4) : Math.exp(-6.931471805599453 * --a) * Math.sin((6.283185307179586 * (0.001 * a - 7.5e-5)) / 3e-4) * 0.5 + 1; }, __class__: Bl }); var Cl = function () {}; h['com.stencyl.utils.motion.ElasticOut'] = Cl; Cl.__name__ = 'com.stencyl.utils.motion.ElasticOut'; Cl.__super__ = Oa; Cl.prototype = r(Oa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : Math.exp(-6.931471805599453 * a) * Math.sin((6.283185307179586 * (0.001 * a - 7.5e-5)) / 3e-4) + 1; }, __class__: Cl }); var Dl = function () {}; h['com.stencyl.utils.motion.ElasticOutIn'] = Dl; Dl.__name__ = 'com.stencyl.utils.motion.ElasticOutIn'; Dl.__super__ = Oa; Dl.prototype = r(Oa.prototype, { apply: function (a) { if (0.5 > a) return 0 == (a *= 2) ? 0 : 0.5 * Math.exp(-6.931471805599453 * a) * Math.sin((6.283185307179586 * (0.001 * a - 7.5e-5)) / 3e-4) + 0.5; if (0.5 == a) return 0.5; if (1 == a) return 1; a = 2 * a - 1; return ( -( 0.5 * Math.exp(6.931471805599453 * --a) * Math.sin((6.283185307179586 * (0.001 * a - 7.5e-5)) / 3e-4) ) + 0.5 ); }, __class__: Dl }); var El = function () {}; h['com.stencyl.utils.motion.ExpoIn'] = El; El.__name__ = 'com.stencyl.utils.motion.ExpoIn'; El.__super__ = Oa; El.prototype = r(Oa.prototype, { apply: function (a) { return 0 == a ? 0 : Math.exp(6.931471805599453 * (a - 1)); }, __class__: El }); var Fl = function () {}; h['com.stencyl.utils.motion.ExpoInOut'] = Fl; Fl.__name__ = 'com.stencyl.utils.motion.ExpoInOut'; Fl.__super__ = Oa; Fl.prototype = r(Oa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : 1 > (a *= 2) ? 0.5 * Math.exp(6.931471805599453 * (a - 1)) : 0.5 * (2 - Math.exp(-6.931471805599453 * (a - 1))); }, __class__: Fl }); var Gl = function () {}; h['com.stencyl.utils.motion.ExpoOut'] = Gl; Gl.__name__ = 'com.stencyl.utils.motion.ExpoOut'; Gl.__super__ = Oa; Gl.prototype = r(Oa.prototype, { apply: function (a) { return 1 == a ? 1 : 1 - Math.exp(-6.931471805599453 * a); }, __class__: Gl }); var Hl = function () {}; h['com.stencyl.utils.motion.ExpoOutIn'] = Hl; Hl.__name__ = 'com.stencyl.utils.motion.ExpoOutIn'; Hl.__super__ = Oa; Hl.prototype = r(Oa.prototype, { apply: function (a) { return 0.5 > a ? 0.5 * (1 - Math.exp(-13.862943611198906 * a)) : 0.5 == a ? 0.5 : 0.5 * (Math.exp(13.862943611198906 * (a - 1)) + 1); }, __class__: Hl }); var Il = function () {}; h['com.stencyl.utils.motion.Linear'] = Il; Il.__name__ = 'com.stencyl.utils.motion.Linear'; Il.__super__ = Oa; Il.prototype = r(Oa.prototype, { apply: function (a) { return a; }, __class__: Il }); var Jl = function () {}; h['com.stencyl.utils.motion.QuadIn'] = Jl; Jl.__name__ = 'com.stencyl.utils.motion.QuadIn'; Jl.__super__ = Oa; Jl.prototype = r(Oa.prototype, { apply: function (a) { return a * a; }, __class__: Jl }); var Kl = function () {}; h['com.stencyl.utils.motion.QuadInOut'] = Kl; Kl.__name__ = 'com.stencyl.utils.motion.QuadInOut'; Kl.__super__ = Oa; Kl.prototype = r(Oa.prototype, { apply: function (a) { return 0.5 > a ? 2 * a * a : -2 * --a * a + 1; }, __class__: Kl }); var Ll = function () {}; h['com.stencyl.utils.motion.QuadOut'] = Ll; Ll.__name__ = 'com.stencyl.utils.motion.QuadOut'; Ll.__super__ = Oa; Ll.prototype = r(Oa.prototype, { apply: function (a) { return -a * (a - 2); }, __class__: Ll }); var Ml = function () {}; h['com.stencyl.utils.motion.QuadOutIn'] = Ml; Ml.__name__ = 'com.stencyl.utils.motion.QuadOutIn'; Ml.__super__ = Oa; Ml.prototype = r(Oa.prototype, { apply: function (a) { if (0.5 > a) return -0.5 * (a *= 2) * (a - 2); a = 2 * a - 1; return 0.5 * a * a + 0.5; }, __class__: Ml }); var Nl = function () {}; h['com.stencyl.utils.motion.QuartIn'] = Nl; Nl.__name__ = 'com.stencyl.utils.motion.QuartIn'; Nl.__super__ = Oa; Nl.prototype = r(Oa.prototype, { apply: function (a) { return (a *= a) * a; }, __class__: Nl }); var Ol = function () {}; h['com.stencyl.utils.motion.QuartInOut'] = Ol; Ol.__name__ = 'com.stencyl.utils.motion.QuartInOut'; Ol.__super__ = Oa; Ol.prototype = r(Oa.prototype, { apply: function (a) { if (1 > (a *= 2)) return 0.5 * (a *= a) * a; a *= a -= 2; return -0.5 * (a * a - 2); }, __class__: Ol }); var Pl = function () {}; h['com.stencyl.utils.motion.QuartOut'] = Pl; Pl.__name__ = 'com.stencyl.utils.motion.QuartOut'; Pl.__super__ = Oa; Pl.prototype = r(Oa.prototype, { apply: function (a) { a *= --a; return 1 - a * a; }, __class__: Pl }); var Ql = function () {}; h['com.stencyl.utils.motion.QuartOutIn'] = Ql; Ql.__name__ = 'com.stencyl.utils.motion.QuartOutIn'; Ql.__super__ = Oa; Ql.prototype = r(Oa.prototype, { apply: function (a) { if (0.5 > a) return (a = 2 * a - 1), -0.5 * (a *= a) * a + 0.5; a = 2 * a - 1; return 0.5 * (a *= a) * a + 0.5; }, __class__: Ql }); var Rl = function () {}; h['com.stencyl.utils.motion.QuintIn'] = Rl; Rl.__name__ = 'com.stencyl.utils.motion.QuintIn'; Rl.__super__ = Oa; Rl.prototype = r(Oa.prototype, { apply: function (a) { return a * (a *= a) * a; }, __class__: Rl }); var Sl = function () {}; h['com.stencyl.utils.motion.QuintInOut'] = Sl; Sl.__name__ = 'com.stencyl.utils.motion.QuintInOut'; Sl.__super__ = Oa; Sl.prototype = r(Oa.prototype, { apply: function (a) { return 1 > (a *= 2) ? 0.5 * a * (a *= a) * a : 0.5 * (a -= 2) * (a *= a) * a + 1; }, __class__: Sl }); var Tl = function () {}; h['com.stencyl.utils.motion.QuintOut'] = Tl; Tl.__name__ = 'com.stencyl.utils.motion.QuintOut'; Tl.__super__ = Oa; Tl.prototype = r(Oa.prototype, { apply: function (a) { return --a * (a *= a) * a + 1; }, __class__: Tl }); var Ul = function () {}; h['com.stencyl.utils.motion.QuintOutIn'] = Ul; Ul.__name__ = 'com.stencyl.utils.motion.QuintOutIn'; Ul.__super__ = Oa; Ul.prototype = r(Oa.prototype, { apply: function (a) { a = 2 * a - 1; return 0.5 * (a * (a *= a) * a + 1); }, __class__: Ul }); var Vl = function () {}; h['com.stencyl.utils.motion.SineIn'] = Vl; Vl.__name__ = 'com.stencyl.utils.motion.SineIn'; Vl.__super__ = Oa; Vl.prototype = r(Oa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : 1 - Math.cos(1.5707963267948966 * a); }, __class__: Vl }); var Wl = function () {}; h['com.stencyl.utils.motion.SineInOut'] = Wl; Wl.__name__ = 'com.stencyl.utils.motion.SineInOut'; Wl.__super__ = Oa; Wl.prototype = r(Oa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : -0.5 * (Math.cos(3.141592653589793 * a) - 1); }, __class__: Wl }); var Xl = function () {}; h['com.stencyl.utils.motion.SineOut'] = Xl; Xl.__name__ = 'com.stencyl.utils.motion.SineOut'; Xl.__super__ = Oa; Xl.prototype = r(Oa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : Math.sin(1.5707963267948966 * a); }, __class__: Xl }); var Yl = function () {}; h['com.stencyl.utils.motion.SineOutIn'] = Yl; Yl.__name__ = 'com.stencyl.utils.motion.SineOutIn'; Yl.__super__ = Oa; Yl.prototype = r(Oa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : 0.5 > a ? 0.5 * Math.sin(3.141592653589793 * a) : -0.5 * Math.cos(1.5707963267948966 * (2 * a - 1)) + 1; }, __class__: Yl }); var Zl = function () {}; h['com.stencyl.utils.motion.WarpIn'] = Zl; Zl.__name__ = 'com.stencyl.utils.motion.WarpIn'; Zl.__super__ = Oa; Zl.prototype = r(Oa.prototype, { apply: function (a) { return 1 > a ? 0 : 1; }, __class__: Zl }); var $l = function () {}; h['com.stencyl.utils.motion.WarpInOut'] = $l; $l.__name__ = 'com.stencyl.utils.motion.WarpInOut'; $l.__super__ = Oa; $l.prototype = r(Oa.prototype, { apply: function (a) { return 0.5 > a ? 0 : 1; }, __class__: $l }); var am = function () {}; h['com.stencyl.utils.motion.WarpOut'] = am; am.__name__ = 'com.stencyl.utils.motion.WarpOut'; am.__super__ = Oa; am.prototype = r(Oa.prototype, { apply: function (a) { return 0 >= a ? 0 : 1; }, __class__: am }); var bm = function () {}; h['com.stencyl.utils.motion.WarpOutIn'] = bm; bm.__name__ = 'com.stencyl.utils.motion.WarpOutIn'; bm.__super__ = Oa; bm.prototype = r(Oa.prototype, { apply: function (a) { return 0 >= a ? 0 : 1 > a ? 0.5 : 1; }, __class__: bm }); var J = function () {}; h['com.stencyl.utils.motion.Easing'] = J; J.__name__ = 'com.stencyl.utils.motion.Easing'; var Xh = function () {}; h['com.stencyl.utils.motion.EasingConstants'] = Xh; Xh.__name__ = 'com.stencyl.utils.motion.EasingConstants'; var lg = function () { this.paused = this.finished = this.active = !1; }; h['com.stencyl.utils.motion.TweenObject'] = lg; lg.__name__ = 'com.stencyl.utils.motion.TweenObject'; lg.prototype = { easing: null, time: null, duration: null, active: null, paused: null, updated: null, finished: null, onUpdate: null, onComplete: null, _tween: function (a, b) { null == a && (a = J.linear); this.easing = a; this.duration = b; this.active || vb.markActive(this); this.time = 0; this.active = !0; this.paused = this.finished = this.updated = !1; 0 == b && ((this.duration = 1), vb.finish(this)); }, update: function (a) { if (!this.paused) if ( ((this.time += a), this.time > this.duration && (this.time = this.duration), this.updateValue(), (this.updated = !0), this.time == this.duration) ) { this.active = !1; this.finished = !0; if (null != this.onUpdate) this.onUpdate(); if (null != this.onComplete) this.onComplete(); } else if (null != this.onUpdate) this.onUpdate(); }, updateValue: function () {}, doOnUpdate: function (a) { this.onUpdate = a; return this; }, doOnComplete: function (a) { this.onComplete = a; return this; }, __class__: lg }; var Ae = function () { lg.call(this); }; h['com.stencyl.utils.motion.TweenFloat'] = Ae; Ae.__name__ = 'com.stencyl.utils.motion.TweenFloat'; Ae.__super__ = lg; Ae.prototype = r(lg.prototype, { startValue: null, endValue: null, value: null, tween: function (a, b, c, e) { this.startValue = a; this.endValue = b; this.value = a; this._tween(c, e); return this; }, updateValue: function () { var a = this.easing.apply(this.time / this.duration); this.value = this.startValue * (1 - a) + this.endValue * a; }, __class__: Ae }); var Lf = function () { lg.call(this); }; h['com.stencyl.utils.motion.TweenFloat2'] = Lf; Lf.__name__ = 'com.stencyl.utils.motion.TweenFloat2'; Lf.__super__ = lg; Lf.prototype = r(lg.prototype, { startValue1: null, endValue1: null, value1: null, startValue2: null, endValue2: null, value2: null, tween: function (a, b, c, e, f, d) { this.startValue1 = a; this.endValue1 = b; this.value1 = a; this.startValue2 = c; this.endValue2 = e; this.value2 = c; this._tween(f, d); return this; }, updateValue: function () { var a = this.easing.apply(this.time / this.duration); this.value1 = this.startValue1 * (1 - a) + this.endValue1 * a; this.value2 = this.startValue2 * (1 - a) + this.endValue2 * a; }, __class__: Lf }); var vb = function () {}; h['com.stencyl.utils.motion.TweenManager'] = vb; vb.__name__ = 'com.stencyl.utils.motion.TweenManager'; vb.resetStatics = function () { vb.activeObjects = []; vb.finishedObjects = []; }; vb.markActive = function (a) { vb.activeObjects.push(a); }; vb.cancel = function (a) { var b = vb.activeObjects.indexOf(a); -1 != b && ((a.active = !1), (a.updated = !1), (a.finished = !1), (a.paused = !1), (vb.activeObjects[b] = vb.activeObjects[vb.activeObjects.length - 1]), vb.activeObjects.pop()); }; vb.finish = function (a) { var b = vb.activeObjects.indexOf(a); -1 != b && (a.update(a.duration - a.time), (vb.activeObjects[b] = vb.activeObjects[vb.activeObjects.length - 1]), vb.activeObjects.pop(), vb.finishedObjects.push(a)); }; vb.update = function (a) { for (var b = vb.finishedObjects.length; 0 < b--; ) vb.finishedObjects.pop().updated = !1; for (b = vb.activeObjects.length; 0 < b--; ) { var c = vb.activeObjects[b]; c.update(a); c.finished && ((vb.activeObjects[b] = vb.activeObjects[vb.activeObjects.length - 1]), vb.activeObjects.pop(), vb.finishedObjects.push(c)); } }; vb.timer = function (a) { return new cm().tween(a); }; var cm = function () { lg.call(this); }; h['com.stencyl.utils.motion.TweenTimer'] = cm; cm.__name__ = 'com.stencyl.utils.motion.TweenTimer'; cm.__super__ = lg; cm.prototype = r(lg.prototype, { tween: function (a) { this._tween(J.linear, a); return this; }, updateValue: function () {}, __class__: cm }); var mg = (E['haxe.StackItem'] = { __ename__: 'haxe.StackItem', __constructs__: null, CFunction: { _hx_name: 'CFunction', _hx_index: 0, __enum__: 'haxe.StackItem', toString: w }, Module: ((I = function (a) { return { _hx_index: 1, m: a, __enum__: 'haxe.StackItem', toString: w }; }), (I._hx_name = 'Module'), (I.__params__ = ['m']), I), FilePos: ((I = function (a, b, c, e) { return { _hx_index: 2, s: a, file: b, line: c, column: e, __enum__: 'haxe.StackItem', toString: w }; }), (I._hx_name = 'FilePos'), (I.__params__ = ['s', 'file', 'line', 'column']), I), Method: ((I = function (a, b) { return { _hx_index: 3, classname: a, method: b, __enum__: 'haxe.StackItem', toString: w }; }), (I._hx_name = 'Method'), (I.__params__ = ['classname', 'method']), I), LocalFunction: ((I = function (a) { return { _hx_index: 4, v: a, __enum__: 'haxe.StackItem', toString: w }; }), (I._hx_name = 'LocalFunction'), (I.__params__ = ['v']), I) }); mg.__constructs__ = [mg.CFunction, mg.Module, mg.FilePos, mg.Method, mg.LocalFunction]; var mf = { callStack: function () { return la.toHaxe(la.callStack()); }, exceptionStack: function (a) { null == a && (a = !1); var b = la.toHaxe(la.exceptionStack()); return a ? b : mf.subtract(b, mf.callStack()); }, toString: function (a) { for (var b = new Sa(), c = 0; c < a.length; ) { var e = a[c]; ++c; b.b += '\nCalled from '; mf.itemToString(b, e); } return b.b; }, subtract: function (a, b) { for (var c = -1, e = -1; ++e < a.length; ) { for (var f = 0, d = b.length; f < d; ) { var p = f++; if (mf.equalItems(a[e], b[p])) { if ((0 > c && (c = e), ++e, e >= a.length)) break; } else c = -1; } if (0 <= c) break; } return 0 <= c ? a.slice(0, c) : a; }, equalItems: function (a, b) { if (null == a) return null == b ? !0 : !1; switch (a._hx_index) { case 0: return null == b ? !1 : 0 == b._hx_index ? !0 : !1; case 1: return null == b ? !1 : 1 == b._hx_index ? a.m == b.m : !1; case 2: if (null == b) return !1; if (2 == b._hx_index) { var c = b.s, e = b.line, f = b.column, d = a.column, p = a.line, l = a.s; return a.file == b.file && p == e && d == f ? mf.equalItems(l, c) : !1; } return !1; case 3: return null == b ? !1 : 3 == b._hx_index ? ((c = b.method), (e = a.method), a.classname == b.classname ? e == c : !1) : !1; case 4: return null == b ? !1 : 4 == b._hx_index ? a.v == b.v : !1; } }, itemToString: function (a, b) { switch (b._hx_index) { case 0: a.b += 'a C function'; break; case 1: b = b.m; a.b += 'module '; a.b += null == b ? 'null' : '' + b; break; case 2: var c = b.s, e = b.file, f = b.line; b = b.column; null != c && (mf.itemToString(a, c), (a.b += ' (')); a.b += null == e ? 'null' : '' + e; a.b += ' line '; a.b += null == f ? 'null' : '' + f; null != b && ((a.b += ' column '), (a.b += null == b ? 'null' : '' + b)); null != c && (a.b += ')'); break; case 3: c = b.classname; b = b.method; a.b += B.string(null == c ? '' : c); a.b += '.'; a.b += null == b ? 'null' : '' + b; break; case 4: (b = b.v), (a.b += 'local function #'), (a.b += null == b ? 'null' : '' + b); } } }, M = function (a, b, c) { Error.call(this, a); this.message = a; this.__previousException = b; this.__nativeException = null != c ? c : this; this.__skipStack = 0; a = Error.prepareStackTrace; Error.prepareStackTrace = function (a) { return a.stack; }; if (c instanceof Error) this.stack = c.stack; else { c = null; if (Error.captureStackTrace) Error.captureStackTrace(this, M), (c = this); else if (((c = Error()), 'undefined' == typeof c.stack)) { try { throw c; } catch (e) {} this.__skipStack++; } this.stack = c.stack; } Error.prepareStackTrace = a; }; h['haxe.Exception'] = M; M.__name__ = 'haxe.Exception'; M.caught = function (a) { return a instanceof M ? a : a instanceof Error ? new M(a.message, null, a) : new Mj(a, null, a); }; M.thrown = function (a) { if (a instanceof M) return a.get_native(); if (a instanceof Error) return a; a = new Mj(a); a.__skipStack++; return a; }; M.__super__ = Error; M.prototype = r(Error.prototype, { __skipStack: null, __nativeException: null, __previousException: null, unwrap: function () { return this.__nativeException; }, toString: function () { return this.get_message(); }, __shiftStack: function () { this.__skipStack++; }, get_message: function () { return this.message; }, get_native: function () { return this.__nativeException; }, get_stack: function () { var a = this.__exceptionStack; null == a && ((a = la.toHaxe(la.normalize(this.stack), this.__skipStack)), this.setProperty('__exceptionStack', a)); return a; }, setProperty: function (a, b) { try { Object.defineProperty(this, a, { value: b }); } catch (c) { this[a] = b; } }, __class__: M, __properties__: { get_native: 'get_native', get_stack: 'get_stack', get_message: 'get_message' } }); var ro = { ucompare: function (a, b) { return 0 > a ? (0 > b ? (~b - ~a) | 0 : 1) : 0 > b ? -1 : (a - b) | 0; } }, ax = { toString: function (a) { var b = a; if (0 == b.high && 0 == b.low) return '0'; var c = '', e = !1; 0 > b.high && (e = !0); for (var f = (a = new cb(0, 10)); 0 != b.high || 0 != b.low; ) if (((a = ax.divMod(b, f)), 0 > a.modulus.high)) { var d = a.modulus; b = ~d.high; d = (~d.low + 1) | 0; 0 == d && b++; c = d + c; b = a.quotient; a = ~b.high; b = (~b.low + 1) | 0; 0 == b && (a++, (a |= 0)); b = a = new cb(a, b); } else (c = a.modulus.low + c), (b = a.quotient); e && (c = '-' + c); return c; }, divMod: function (a, b) { if (0 == b.high) switch (b.low) { case 0: throw M.thrown('divide by zero'); case 1: var c = new cb(a.high, a.low), e = new cb(0, 0); return { quotient: c, modulus: e }; } var f = 0 > a.high != 0 > b.high; if (0 > a.high) { var d = ~a.high; c = (~a.low + 1) | 0; 0 == c && (d++, (d |= 0)); c = new cb(d, c); } else c = new cb(a.high, a.low); var p = c; 0 > b.high && ((d = ~b.high), (c = (~b.low + 1) | 0), 0 == c && (d++, (d |= 0)), (b = c = new cb(d, c))); for ( var l = (c = new cb(0, 0)), v = (c = new cb(0, 1)); !( 0 > b.high || ((d = ro.ucompare(b.high, p.high)), (d = 0 != d ? d : ro.ucompare(b.low, p.low)), (c = 1), (c &= 63), (b = 0 == c ? (c = new cb(b.high, b.low)) : 32 > c ? (e = new cb((b.high << c) | (b.low >>> (32 - c)), b.low << c)) : (c = new cb(b.low << (c - 32), 0))), (c = 1), (c &= 63), (v = 0 == c ? new cb(v.high, v.low) : 32 > c ? new cb((v.high << c) | (v.low >>> (32 - c)), v.low << c) : (c = new cb(v.low << (c - 32), 0))), 0 <= d) ); ); for (; 0 != v.high || 0 != v.low; ) (d = ro.ucompare(p.high, b.high)), 0 <= (0 != d ? d : ro.ucompare(p.low, b.low)) && ((l = c = new cb(l.high | v.high, l.low | v.low)), (d = (p.high - b.high) | 0), (c = (p.low - b.low) | 0), 0 > ro.ucompare(p.low, b.low) && (d--, (d |= 0)), (p = e = new cb(d, c))), (c = 1), (c &= 63), (v = 0 == c ? (c = new cb(v.high, v.low)) : 32 > c ? new cb(v.high >>> c, (v.high << (32 - c)) | (v.low >>> c)) : new cb(0, v.high >>> (c - 32))), (c = 1), (c &= 63), (b = 0 == c ? (c = new cb(b.high, b.low)) : 32 > c ? new cb(b.high >>> c, (b.high << (32 - c)) | (b.low >>> c)) : new cb(0, b.high >>> (c - 32))); f && ((d = ~l.high), (c = (~l.low + 1) | 0), 0 == c && (d++, (d |= 0)), (l = c = new cb(d, c))); 0 > a.high && ((d = ~p.high), (c = (~p.low + 1) | 0), 0 == c && (d++, (d |= 0)), (p = c = new cb(d, c))); return { quotient: l, modulus: p }; } }, cb = function (a, b) { this.high = a; this.low = b; }; h['haxe._Int64.___Int64'] = cb; cb.__name__ = 'haxe._Int64.___Int64'; cb.prototype = { high: null, low: null, __class__: cb }; var jh = function () {}; h['haxe.Log'] = jh; jh.__name__ = 'haxe.Log'; jh.formatOutput = function (a, b) { var c = B.string(a); if (null == b) return c; var e = b.fileName + ':' + b.lineNumber; if (null != b.customParams) { var f = 0; for (b = b.customParams; f < b.length; ) (a = b[f]), ++f, (c += ', ' + B.string(a)); } return e + ': ' + c; }; jh.trace = function (a, b) { a = jh.formatOutput(a, b); 'undefined' != typeof console && null != console.log && console.log(a); }; var la = function () {}; h['haxe.NativeStackTrace'] = la; la.__name__ = 'haxe.NativeStackTrace'; la.saveStack = function (a) { la.lastError = a; }; la.callStack = function () { var a = Error(''), b = la.tryHaxeStack(a); if ('undefined' == typeof b) { try { throw a; } catch (c) {} b = a.stack; } return la.normalize(b, 2); }; la.exceptionStack = function () { return la.normalize(la.tryHaxeStack(la.lastError)); }; la.toHaxe = function (a, b) { null == b && (b = 0); if (null == a) return []; if ('string' == typeof a) { a = a.split('\n'); 'Error' == a[0] && a.shift(); for (var c = [], e = 0, f = a.length; e < f; ) { var d = e++; if (!(b > d)) { var p = a[d]; d = p.match(/^ at ([A-Za-z0-9_. ]+) \(([^)]+):([0-9]+):([0-9]+)\)$/); if (null != d) { p = d[1].split('.'); '$hxClasses' == p[0] && p.shift(); var l = p.pop(), v = d[2], n = B.parseInt(d[3]); d = B.parseInt(d[4]); c.push( mg.FilePos( 'Anonymous function' == l ? mg.LocalFunction() : 'Global code' == l ? null : mg.Method(p.join('.'), l), v, n, d ) ); } else c.push(mg.Module(U.trim(p))); } } return c; } return 0 < b && Array.isArray(a) ? a.slice(b) : a; }; la.tryHaxeStack = function (a) { if (null == a) return []; var b = Error.prepareStackTrace; Error.prepareStackTrace = la.prepareHxStackTrace; a = a.stack; Error.prepareStackTrace = b; return a; }; la.prepareHxStackTrace = function (a, b) { a = []; for (var c = 0; c < b.length; ) { var e = b[c]; ++c; null != la.wrapCallSite && (e = la.wrapCallSite(e)); var f = null, d = e.getFunctionName(); if (null != d) { var p = d.lastIndexOf('.'); 0 <= p ? ((f = d.substring(0, p)), (d = d.substring(p + 1)), (f = mg.Method(f, d))) : (f = mg.Method(null, d)); } d = e.getFileName(); p = null == d ? -1 : d.indexOf('file:'); null != la.wrapCallSite && 0 < p && (d = d.substring(p + 6)); a.push(mg.FilePos(f, d, e.getLineNumber(), e.getColumnNumber())); } return a; }; la.normalize = function (a, b) { null == b && (b = 0); if (Array.isArray(a) && 0 < b) return a.slice(b); if ('string' == typeof a) { switch (a.substring(0, 6)) { case 'Error\n': case 'Error:': ++b; } return la.skipLines(a, b); } return a; }; la.skipLines = function (a, b, c) { null == c && (c = 0); return 0 < b ? ((c = a.indexOf('\n', c)), 0 > c ? '' : la.skipLines(a, --b, c + 1)) : a.substring(c); }; var yh = function () {}; h['haxe.Resource'] = yh; yh.__name__ = 'haxe.Resource'; yh.getString = function (a) { for (var b = 0, c = yh.content; b < c.length; ) { var e = c[b]; ++b; if (e.name == a) return null != e.str ? e.str : zh.decode(e.data).toString(); } return null; }; yh.getBytes = function (a) { for (var b = 0, c = yh.content; b < c.length; ) { var e = c[b]; ++b; if (e.name == a) return null != e.str ? hb.ofString(e.str) : zh.decode(e.data); } return null; }; var Be = function () { this.buf = new Sa(); this.cache = []; this.useCache = Be.USE_CACHE; this.useEnumIndex = Be.USE_ENUM_INDEX; this.shash = new qa(); this.scount = 0; }; h['haxe.Serializer'] = Be; Be.__name__ = 'haxe.Serializer'; Be.run = function (a) { var b = new Be(); b.serialize(a); return b.toString(); }; Be.prototype = { buf: null, cache: null, shash: null, scount: null, useCache: null, useEnumIndex: null, toString: function () { return this.buf.b; }, serializeString: function (a) { var b = this.shash.h[a]; null != b ? ((this.buf.b += 'R'), (this.buf.b += null == b ? 'null' : '' + b)) : ((this.shash.h[a] = this.scount++), (this.buf.b += 'y'), (a = encodeURIComponent(a)), (this.buf.b += B.string(a.length)), (this.buf.b += ':'), (this.buf.b += null == a ? 'null' : '' + a)); }, serializeRef: function (a) { for (var b = typeof a, c = 0, e = this.cache.length; c < e; ) { var f = c++, d = this.cache[f]; if (typeof d == b && d == a) return (this.buf.b += 'r'), (this.buf.b += null == f ? 'null' : '' + f), !0; } this.cache.push(a); return !1; }, serializeFields: function (a) { for (var b = 0, c = Z.fields(a); b < c.length; ) { var e = c[b]; ++b; this.serializeString(e); this.serialize(Z.field(a, e)); } this.buf.b += 'g'; }, serialize: function (a) { var b = ma.typeof(a); switch (b._hx_index) { case 0: this.buf.b += 'n'; break; case 1: if (0 == a) { this.buf.b += 'z'; break; } this.buf.b += 'i'; this.buf.b += null == a ? 'null' : '' + a; break; case 2: isNaN(a) ? (this.buf.b += 'k') : isFinite(a) ? ((this.buf.b += 'd'), (this.buf.b += null == a ? 'null' : '' + a)) : (this.buf.b += 0 > a ? 'm' : 'p'); break; case 3: this.buf.b += a ? 't' : 'f'; break; case 4: x.__instanceof(a, ew) ? ((a = a.__name__), (this.buf.b += 'A'), this.serializeString(a)) : x.__instanceof(a, bx) ? ((this.buf.b += 'B'), this.serializeString(a.__ename__)) : (this.useCache && this.serializeRef(a)) || ((this.buf.b += 'o'), this.serializeFields(a)); break; case 5: throw M.thrown('Cannot serialize function'); case 6: b = b.c; if (b == String) { this.serializeString(a); break; } if (this.useCache && this.serializeRef(a)) break; switch (b) { case Array: var c = 0; this.buf.b += 'a'; for (var e = 0, f = a.length; e < f; ) (b = e++), null == a[b] ? ++c : (0 < c && (1 == c ? (this.buf.b += 'n') : ((this.buf.b += 'u'), (this.buf.b += null == c ? 'null' : '' + c)), (c = 0)), this.serialize(a[b])); 0 < c && (1 == c ? (this.buf.b += 'n') : ((this.buf.b += 'u'), (this.buf.b += null == c ? 'null' : '' + c))); this.buf.b += 'h'; break; case Date: this.buf.b += 'v'; this.buf.b += B.string(a.getTime()); break; case Za: this.buf.b += 'q'; for (b = a.keys(); b.hasNext(); ) (c = b.next()), (this.buf.b += ':'), (this.buf.b += null == c ? 'null' : '' + c), this.serialize(a.h[c]); this.buf.b += 'h'; break; case K: this.buf.b += 'l'; for (a = a.h; null != a; ) (b = a.item), (a = a.next), this.serialize(b); this.buf.b += 'h'; break; case Jc: this.buf.b += 'M'; for (b = a.keys(); b.hasNext(); ) { c = b.next(); var d = Z.field(c, '__id__'); Z.deleteField(c, '__id__'); this.serialize(c); c.__id__ = d; this.serialize(a.h[c.__id__]); } this.buf.b += 'h'; break; case qa: this.buf.b += 'b'; c = Object.keys(a.h); d = c.length; for (e = 0; e < d; ) (b = c[e++]), this.serializeString(b), this.serialize(a.h[b]); this.buf.b += 'h'; break; case hb: this.buf.b += 's'; this.buf.b += B.string(Math.ceil((8 * a.length) / 6)); this.buf.b += ':'; b = 0; c = a.length - 2; d = Be.BASE64_CODES; if (null == d) { d = Array(Be.BASE64.length); e = 0; for (f = Be.BASE64.length; e < f; ) { var p = e++; d[p] = A.cca(Be.BASE64, p); } Be.BASE64_CODES = d; } for (; b < c; ) (e = a.b[b++]), (f = a.b[b++]), (p = a.b[b++]), (this.buf.b += String.fromCodePoint(d[e >> 2])), (this.buf.b += String.fromCodePoint(d[((e << 4) | (f >> 4)) & 63])), (this.buf.b += String.fromCodePoint(d[((f << 2) | (p >> 6)) & 63])), (this.buf.b += String.fromCodePoint(d[p & 63])); b == c ? ((e = a.b[b++]), (f = a.b[b++]), (this.buf.b += String.fromCodePoint(d[e >> 2])), (this.buf.b += String.fromCodePoint(d[((e << 4) | (f >> 4)) & 63])), (this.buf.b += String.fromCodePoint(d[(f << 2) & 63]))) : b == c + 1 && ((e = a.b[b++]), (this.buf.b += String.fromCodePoint(d[e >> 2])), (this.buf.b += String.fromCodePoint(d[(e << 4) & 63]))); break; default: this.useCache && this.cache.pop(), null != a.hxSerialize ? ((this.buf.b += 'C'), this.serializeString(b.__name__), this.useCache && this.cache.push(a), a.hxSerialize(this), (this.buf.b += 'g')) : ((this.buf.b += 'c'), this.serializeString(b.__name__), this.useCache && this.cache.push(a), this.serializeFields(a)); } break; case 7: b = b.e; if (this.useCache) { if (this.serializeRef(a)) break; this.cache.pop(); } this.buf.b += B.string(this.useEnumIndex ? 'j' : 'w'); this.serializeString(b.__ename__); this.useEnumIndex ? ((this.buf.b += ':'), (this.buf.b += B.string(a._hx_index))) : ((b = a), this.serializeString(E[b.__enum__].__constructs__[b._hx_index]._hx_name)); this.buf.b += ':'; c = ma.enumParameters(a); this.buf.b += B.string(c.length); for (b = 0; b < c.length; ) (d = c[b]), ++b, this.serialize(d); this.useCache && this.cache.push(a); break; default: throw M.thrown('Cannot serialize ' + B.string(a)); } }, __class__: Be }; var Qe = function (a) { var b = this; this.id = setInterval(function () { b.run(); }, a); }; h['haxe.Timer'] = Qe; Qe.__name__ = 'haxe.Timer'; Qe.delay = function (a, b) { var c = new Qe(b); c.run = function () { c.stop(); a(); }; return c; }; Qe.measure = function (a, b) { var c = new Date().getTime() / 1e3; a = a(); jh.trace(new Date().getTime() / 1e3 - c + 's', b); return a; }; Qe.stamp = function () { return new Date().getTime() / 1e3; }; Qe.prototype = { id: null, stop: function () { null != this.id && (clearInterval(this.id), (this.id = null)); }, run: function () {}, __class__: Qe }; var dm = function () {}; h['haxe._Unserializer.DefaultResolver'] = dm; dm.__name__ = 'haxe._Unserializer.DefaultResolver'; dm.prototype = { resolveClass: function (a) { return h[a]; }, resolveEnum: function (a) { return E[a]; }, __class__: dm }; var Ke = function (a) { this.buf = a; this.length = this.buf.length; this.pos = 0; this.scache = []; this.cache = []; a = Ke.DEFAULT_RESOLVER; null == a && ((a = new dm()), (Ke.DEFAULT_RESOLVER = a)); this.resolver = a; }; h['haxe.Unserializer'] = Ke; Ke.__name__ = 'haxe.Unserializer'; Ke.initCodes = function () { for (var a = [], b = 0, c = Ke.BASE64.length; b < c; ) { var e = b++; a[Ke.BASE64.charCodeAt(e)] = e; } return a; }; Ke.run = function (a) { return new Ke(a).unserialize(); }; Ke.prototype = { buf: null, pos: null, length: null, cache: null, scache: null, resolver: null, setResolver: function (a) { null == a ? (null == Ei.instance && (Ei.instance = new Ei()), (this.resolver = Ei.instance)) : (this.resolver = a); }, readDigits: function () { for (var a = 0, b = !1, c = this.pos; ; ) { var e = this.buf.charCodeAt(this.pos); if (e != e) break; if (45 == e) { if (this.pos != c) break; b = !0; } else { if (48 > e || 57 < e) break; a = 10 * a + (e - 48); } this.pos++; } b && (a *= -1); return a; }, readFloat: function () { for (var a = this.pos; ; ) { var b = this.buf.charCodeAt(this.pos); if (b != b) break; if ((43 <= b && 58 > b) || 101 == b || 69 == b) this.pos++; else break; } return parseFloat(A.substr(this.buf, a, this.pos - a)); }, unserializeObject: function (a) { for (;;) { if (this.pos >= this.length) throw M.thrown('Invalid object'); if (103 == this.buf.charCodeAt(this.pos)) break; var b = this.unserialize(); if ('string' != typeof b) throw M.thrown('Invalid object key'); var c = this.unserialize(); a[b] = c; } this.pos++; }, unserializeEnum: function (a, b) { if (58 != this.buf.charCodeAt(this.pos++)) throw M.thrown('Invalid enum format'); var c = this.readDigits(); if (0 == c) return ma.createEnum(a, b); for (var e = []; 0 < c--; ) e.push(this.unserialize()); return ma.createEnum(a, b, e); }, unserialize: function () { switch (this.buf.charCodeAt(this.pos++)) { case 65: var a = this.unserialize(), b = this.resolver.resolveClass(a); if (null == b) throw M.thrown('Class not found ' + a); return b; case 66: a = this.unserialize(); b = this.resolver.resolveEnum(a); if (null == b) throw M.thrown('Enum not found ' + a); return b; case 67: a = this.unserialize(); b = this.resolver.resolveClass(a); if (null == b) throw M.thrown('Class not found ' + a); b = Object.create(b.prototype); this.cache.push(b); b.hxUnserialize(this); if (103 != this.buf.charCodeAt(this.pos++)) throw M.thrown('Invalid custom data'); return b; case 77: a = new Jc(); this.cache.push(a); for (var c; 104 != this.buf.charCodeAt(this.pos); ) (b = this.unserialize()), a.set(b, this.unserialize()); this.pos++; return a; case 82: a = this.readDigits(); if (0 > a || a >= this.scache.length) throw M.thrown('Invalid string reference'); return this.scache[a]; case 97: b = []; for (this.cache.push(b); ; ) { c = this.buf.charCodeAt(this.pos); if (104 == c) { this.pos++; break; } 117 == c ? (this.pos++, (a = this.readDigits()), (b[b.length + a - 1] = null)) : b.push(this.unserialize()); } return b; case 98: a = new qa(); for (this.cache.push(a); 104 != this.buf.charCodeAt(this.pos); ) (b = this.unserialize()), (c = this.unserialize()), (a.h[b] = c); this.pos++; return a; case 99: a = this.unserialize(); b = this.resolver.resolveClass(a); if (null == b) throw M.thrown('Class not found ' + a); b = Object.create(b.prototype); this.cache.push(b); this.unserializeObject(b); return b; case 100: return this.readFloat(); case 102: return !1; case 105: return this.readDigits(); case 106: a = this.unserialize(); c = this.resolver.resolveEnum(a); if (null == c) throw M.thrown('Enum not found ' + a); this.pos++; for ( var e = this.readDigits(), f = c.__constructs__, d = Array(f.length), p = 0, l = f.length; p < l; ) (b = p++), (d[b] = f[b]._hx_name); b = d[e]; if (null == b) throw M.thrown('Unknown enum index ' + a + '@' + e); b = this.unserializeEnum(c, b); this.cache.push(b); return b; case 107: return NaN; case 108: b = new K(); for (this.cache.push(b); 104 != this.buf.charCodeAt(this.pos); ) b.add(this.unserialize()); this.pos++; return b; case 109: return -Infinity; case 110: return null; case 111: return (b = {}), this.cache.push(b), this.unserializeObject(b), b; case 112: return Infinity; case 113: a = new Za(); this.cache.push(a); for (c = this.buf.charCodeAt(this.pos++); 58 == c; ) (b = this.readDigits()), (c = this.unserialize()), (a.h[b] = c), (c = this.buf.charCodeAt(this.pos++)); if (104 != c) throw M.thrown('Invalid IntMap format'); return a; case 114: a = this.readDigits(); if (0 > a || a >= this.cache.length) throw M.thrown('Invalid reference'); return this.cache[a]; case 115: a = this.readDigits(); c = this.buf; if (58 != this.buf.charCodeAt(this.pos++) || this.length - this.pos < a) throw M.thrown('Invalid bytes length'); e = Ke.CODES; null == e && ((e = Ke.initCodes()), (Ke.CODES = e)); b = this.pos; f = a & 3; d = b + (a - f); p = new hb(new ArrayBuffer(3 * (a >> 2) + (2 <= f ? f - 1 : 0))); for (l = 0; b < d; ) { var v = e[c.charCodeAt(b++)], n = e[c.charCodeAt(b++)]; p.b[l++] = ((v << 2) | (n >> 4)) & 255; v = e[c.charCodeAt(b++)]; p.b[l++] = ((n << 4) | (v >> 2)) & 255; n = e[c.charCodeAt(b++)]; p.b[l++] = ((v << 6) | n) & 255; } 2 <= f && ((v = e[c.charCodeAt(b++)]), (n = e[c.charCodeAt(b++)]), (p.b[l++] = ((v << 2) | (n >> 4)) & 255), 3 == f && ((v = e[c.charCodeAt(b++)]), (p.b[l++] = ((n << 4) | (v >> 2)) & 255))); this.pos += a; this.cache.push(p); return p; case 116: return !0; case 118: return ( 48 <= this.buf.charCodeAt(this.pos) && 57 >= this.buf.charCodeAt(this.pos) && 48 <= this.buf.charCodeAt(this.pos + 1) && 57 >= this.buf.charCodeAt(this.pos + 1) && 48 <= this.buf.charCodeAt(this.pos + 2) && 57 >= this.buf.charCodeAt(this.pos + 2) && 48 <= this.buf.charCodeAt(this.pos + 3) && 57 >= this.buf.charCodeAt(this.pos + 3) && 45 == this.buf.charCodeAt(this.pos + 4) ? ((b = A.strDate(A.substr(this.buf, this.pos, 19))), (this.pos += 19)) : (b = new Date(this.readFloat())), this.cache.push(b), b ); case 119: a = this.unserialize(); c = this.resolver.resolveEnum(a); if (null == c) throw M.thrown('Enum not found ' + a); b = this.unserializeEnum(c, this.unserialize()); this.cache.push(b); return b; case 120: throw M.thrown(this.unserialize()); case 121: a = this.readDigits(); if (58 != this.buf.charCodeAt(this.pos++) || this.length - this.pos < a) throw M.thrown('Invalid string length'); b = A.substr(this.buf, this.pos, a); this.pos += a; b = decodeURIComponent(b.split('+').join(' ')); this.scache.push(b); return b; case 122: return 0; } this.pos--; throw M.thrown('Invalid char ' + this.buf.charAt(this.pos) + ' at position ' + this.pos); }, __class__: Ke }; var Ei = function () {}; h['haxe._Unserializer.NullResolver'] = Ei; Ei.__name__ = 'haxe._Unserializer.NullResolver'; Ei.prototype = { resolveClass: function (a) { return null; }, resolveEnum: function (a) { return null; }, __class__: Ei }; var Mj = function (a, b, c) { M.call(this, String(a), b, c); this.value = a; this.__skipStack++; }; h['haxe.ValueException'] = Mj; Mj.__name__ = 'haxe.ValueException'; Mj.__super__ = M; Mj.prototype = r(M.prototype, { value: null, unwrap: function () { return this.value; }, __class__: Mj }); var Fi = function () { this.a1 = 1; this.a2 = 0; }; h['haxe.crypto.Adler32'] = Fi; Fi.__name__ = 'haxe.crypto.Adler32'; Fi.read = function (a) { var b = new Fi(), c = a.readByte(), e = a.readByte(), f = a.readByte(); a = a.readByte(); b.a1 = (f << 8) | a; b.a2 = (c << 8) | e; return b; }; Fi.prototype = { a1: null, a2: null, update: function (a, b, c) { var e = this.a1, f = this.a2, d = b; for (b += c; d < b; ) (c = d++), (e = (e + a.b[c]) % 65521), (f = (f + e) % 65521); this.a1 = e; this.a2 = f; }, equals: function (a) { return a.a1 == this.a1 ? a.a2 == this.a2 : !1; }, __class__: Fi }; var hb = function (a) { this.length = a.byteLength; this.b = new Uint8Array(a); this.b.bufferValue = a; a.hxBytes = this; a.bytes = this.b; }; h['haxe.io.Bytes'] = hb; hb.__name__ = 'haxe.io.Bytes'; hb.alloc = function (a) { return new hb(new ArrayBuffer(a)); }; hb.ofString = function (a, b) { b = []; for (var c = 0; c < a.length; ) { var e = a.charCodeAt(c++); 55296 <= e && 56319 >= e && (e = ((e - 55232) << 10) | (a.charCodeAt(c++) & 1023)); 127 >= e ? b.push(e) : (2047 >= e ? b.push(192 | (e >> 6)) : (65535 >= e ? b.push(224 | (e >> 12)) : (b.push(240 | (e >> 18)), b.push(128 | ((e >> 12) & 63))), b.push(128 | ((e >> 6) & 63))), b.push(128 | (e & 63))); } return new hb(new Uint8Array(b).buffer); }; hb.ofData = function (a) { var b = a.hxBytes; return null != b ? b : new hb(a); }; hb.ofHex = function (a) { if (0 != (a.length & 1)) throw M.thrown('Not a hex string (odd number of digits)'); for (var b = [], c = 0, e = a.length >> 1; c < e; ) { var f = a.charCodeAt(2 * c), d = a.charCodeAt(2 * c + 1); f = (f & 15) + 9 * ((f & 64) >> 6); d = (d & 15) + 9 * ((d & 64) >> 6); b.push(((f << 4) | d) & 255); ++c; } return new hb(new Uint8Array(b).buffer); }; hb.fastGet = function (a, b) { return a.bytes[b]; }; hb.prototype = { length: null, b: null, data: null, get: function (a) { return this.b[a]; }, set: function (a, b) { this.b[a] = b & 255; }, blit: function (a, b, c, e) { if (0 > a || 0 > c || 0 > e || a + e > this.length || c + e > b.length) throw M.thrown(Of.OutsideBounds); 0 == c && e == b.b.byteLength ? this.b.set(b.b, a) : this.b.set(b.b.subarray(c, c + e), a); }, fill: function (a, b, c) { for (var e = 0; e < b; ) e++, (this.b[a++] = c & 255); }, sub: function (a, b) { if (0 > a || 0 > b || a + b > this.length) throw M.thrown(Of.OutsideBounds); return new hb(this.b.buffer.slice(a + this.b.byteOffset, a + this.b.byteOffset + b)); }, compare: function (a) { for ( var b = this.b, c = a.b, e = 0, f = this.length < a.length ? this.length : a.length; e < f; ) { var d = e++; if (b[d] != c[d]) return b[d] - c[d]; } return this.length - a.length; }, initData: function () { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)); }, getDouble: function (a) { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)); return this.data.getFloat64(a, !0); }, getFloat: function (a) { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)); return this.data.getFloat32(a, !0); }, setDouble: function (a, b) { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)); this.data.setFloat64(a, b, !0); }, setFloat: function (a, b) { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)); this.data.setFloat32(a, b, !0); }, getUInt16: function (a) { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)); return this.data.getUint16(a, !0); }, setUInt16: function (a, b) { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)); this.data.setUint16(a, b, !0); }, getInt32: function (a) { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)); return this.data.getInt32(a, !0); }, setInt32: function (a, b) { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)); this.data.setInt32(a, b, !0); }, getInt64: function (a) { return new cb(this.getInt32(a + 4), this.getInt32(a)); }, setInt64: function (a, b) { this.setInt32(a, b.low); this.setInt32(a + 4, b.high); }, getString: function (a, b, c) { if (0 > a || 0 > b || a + b > this.length) throw M.thrown(Of.OutsideBounds); c = ''; var e = this.b, f = Fd.fromCharCode, d = a; for (a += b; d < a; ) if (((b = e[d++]), 128 > b)) { if (0 == b) break; c += f(b); } else if (224 > b) c += f(((b & 63) << 6) | (e[d++] & 127)); else if (240 > b) { var p = e[d++]; c += f(((b & 31) << 12) | ((p & 127) << 6) | (e[d++] & 127)); } else { p = e[d++]; var l = e[d++]; b = ((b & 15) << 18) | ((p & 127) << 12) | ((l & 127) << 6) | (e[d++] & 127); c += f((b >> 10) + 55232); c += f((b & 1023) | 56320); } return c; }, readString: function (a, b) { return this.getString(a, b); }, toString: function () { return this.getString(0, this.length); }, toHex: function () { for (var a = '', b = [], c = 0, e = 16; c < e; ) { var f = c++; b.push(A.cca('0123456789abcdef', f)); } c = 0; for (e = this.length; c < e; ) (f = c++), (f = this.b[f]), (a += String.fromCodePoint(b[f >> 4])), (a += String.fromCodePoint(b[f & 15])); return a; }, getData: function () { return this.b.bufferValue; }, __class__: hb }; var zh = function () {}; h['haxe.crypto.Base64'] = zh; zh.__name__ = 'haxe.crypto.Base64'; zh.decode = function (a, b) { null == b && (b = !0); if (b) for (; 61 == A.cca(a, a.length - 1); ) a = A.substr(a, 0, -1); return new Hj(zh.BYTES).decodeBytes(hb.ofString(a)); }; var Hj = function (a) { for (var b = a.length, c = 1; b > 1 << c; ) ++c; if (8 < c || b != 1 << c) throw M.thrown('BaseCode : base length must be a power of two.'); this.base = a; this.nbits = c; }; h['haxe.crypto.BaseCode'] = Hj; Hj.__name__ = 'haxe.crypto.BaseCode'; Hj.prototype = { base: null, nbits: null, tbl: null, encodeBytes: function (a) { for ( var b = this.nbits, c = this.base, e = ((8 * a.length) / b) | 0, f = new hb(new ArrayBuffer(e + (0 == (8 * a.length) % b ? 0 : 1))), d = 0, p = 0, l = (1 << b) - 1, v = 0, n = 0; n < e; ) { for (; p < b; ) (p += 8), (d <<= 8), (d |= a.b[v++]); p -= b; f.b[n++] = c.b[(d >> p) & l] & 255; } 0 < p && (f.b[n++] = c.b[(d << (b - p)) & l] & 255); return f; }, initTable: function () { for (var a = [], b = 0; 256 > b; ) { var c = b++; a[c] = -1; } b = 0; for (var e = this.base.length; b < e; ) (c = b++), (a[this.base.b[c]] = c); this.tbl = a; }, decodeBytes: function (a) { var b = this.nbits; null == this.tbl && this.initTable(); for ( var c = this.tbl, e = (a.length * b) >> 3, f = new hb(new ArrayBuffer(e)), d = 0, p = 0, l = 0, v = 0; v < e; ) { for (; 8 > p; ) { p += b; d <<= b; var n = c[a.b[l++]]; if (-1 == n) throw M.thrown('BaseCode : invalid encoded char'); d |= n; } p -= 8; f.b[v++] = (d >> p) & 255; } return f; }, __class__: Hj }; var he = function () {}; h['haxe.ds.ArraySort'] = he; he.__name__ = 'haxe.ds.ArraySort'; he.sort = function (a, b) { he.rec(a, b, 0, a.length); }; he.rec = function (a, b, c, e) { var f = (c + e) >> 1; if (12 > e - c) { if (!(e <= c)) for (f = c + 1; f < e; ) for (var d = f++; d > c; ) { if (0 > b(a[d], a[d - 1])) he.swap(a, d - 1, d); else break; --d; } } else he.rec(a, b, c, f), he.rec(a, b, f, e), he.doMerge(a, b, c, f, e, f - c, e - f); }; he.doMerge = function (a, b, c, e, f, d, p) { if (0 != d && 0 != p) if (2 == d + p) 0 > b(a[e], a[c]) && he.swap(a, e, c); else { if (d > p) { var g = d >> 1; var v = c + g; var n = he.lower(a, b, e, f, v); var k = n - e; } else (k = p >> 1), (n = e + k), (v = he.upper(a, b, c, e, n)), (g = v - c); he.rotate(a, b, v, e, n); e = v + k; he.doMerge(a, b, c, v, e, g, k); he.doMerge(a, b, e, n, f, d - g, p - k); } }; he.rotate = function (a, b, c, e, f) { if (c != e && e != f) for (b = he.gcd(f - c, e - c); 0 != b--; ) { for (var d = a[c + b], p = e - c, l = c + b, v = c + b + p; v != c + b; ) (a[l] = a[v]), (l = v), (v = f - v > p ? v + p : c + (p - (f - v))); a[l] = d; } }; he.gcd = function (a, b) { for (; 0 != b; ) { var c = a % b; a = b; b = c; } return a; }; he.upper = function (a, b, c, e, f) { e -= c; for (var d, p; 0 < e; ) (d = e >> 1), (p = c + d), 0 > b(a[f], a[p]) ? (e = d) : ((c = p + 1), (e = e - d - 1)); return c; }; he.lower = function (a, b, c, e, f) { e -= c; for (var d, p; 0 < e; ) (d = e >> 1), (p = c + d), 0 > b(a[p], a[f]) ? ((c = p + 1), (e = e - d - 1)) : (e = d); return c; }; he.swap = function (a, b, c) { var e = a[b]; a[b] = a[c]; a[c] = e; }; var Wg = function () {}; h['haxe.ds.BalancedTree'] = Wg; Wg.__name__ = 'haxe.ds.BalancedTree'; Wg.__interfaces__ = [ed]; Wg.iteratorLoop = function (a, b) { null != a && (Wg.iteratorLoop(a.left, b), b.push(a.value), Wg.iteratorLoop(a.right, b)); }; Wg.prototype = { root: null, set: function (a, b) { this.root = this.setLoop(a, b, this.root); }, get: function (a) { for (var b = this.root; null != b; ) { var c = this.compare(a, b.key); if (0 == c) return b.value; b = 0 > c ? b.left : b.right; } return null; }, remove: function (a) { try { return (this.root = this.removeLoop(a, this.root)), !0; } catch (b) { la.lastError = b; if ('string' == typeof M.caught(b).unwrap()) return !1; throw b; } }, exists: function (a) { for (var b = this.root; null != b; ) { var c = this.compare(a, b.key); if (0 == c) return !0; b = 0 > c ? b.left : b.right; } return !1; }, iterator: function () { var a = []; Wg.iteratorLoop(this.root, a); return new Me(a); }, keyValueIterator: function () { return new ih(this); }, keys: function () { var a = []; this.keysLoop(this.root, a); return new Me(a); }, setLoop: function (a, b, c) { if (null == c) return new $e(null, a, b, null); var e = this.compare(a, c.key); if (0 == e) return new $e(c.left, a, b, c.right, null == c ? 0 : c._height); if (0 > e) return (a = this.setLoop(a, b, c.left)), this.balance(a, c.key, c.value, c.right); a = this.setLoop(a, b, c.right); return this.balance(c.left, c.key, c.value, a); }, removeLoop: function (a, b) { if (null == b) throw M.thrown('Not_found'); var c = this.compare(a, b.key); return 0 == c ? this.merge(b.left, b.right) : 0 > c ? this.balance(this.removeLoop(a, b.left), b.key, b.value, b.right) : this.balance(b.left, b.key, b.value, this.removeLoop(a, b.right)); }, keysLoop: function (a, b) { null != a && (this.keysLoop(a.left, b), b.push(a.key), this.keysLoop(a.right, b)); }, merge: function (a, b) { if (null == a) return b; if (null == b) return a; var c = this.minBinding(b); return this.balance(a, c.key, c.value, this.removeMinBinding(b)); }, minBinding: function (a) { if (null == a) throw M.thrown('Not_found'); return null == a.left ? a : this.minBinding(a.left); }, removeMinBinding: function (a) { return null == a.left ? a.right : this.balance(this.removeMinBinding(a.left), a.key, a.value, a.right); }, balance: function (a, b, c, e) { var f = null == a ? 0 : a._height, d = null == e ? 0 : e._height; return f > d + 2 ? ((f = a.left), (d = a.right), (null == f ? 0 : f._height) >= (null == d ? 0 : d._height) ? new $e(a.left, a.key, a.value, new $e(a.right, b, c, e)) : new $e( new $e(a.left, a.key, a.value, a.right.left), a.right.key, a.right.value, new $e(a.right.right, b, c, e) )) : d > f + 2 ? ((f = e.right), (d = e.left), (null == f ? 0 : f._height) > (null == d ? 0 : d._height) ? new $e(new $e(a, b, c, e.left), e.key, e.value, e.right) : new $e( new $e(a, b, c, e.left.left), e.left.key, e.left.value, new $e(e.left.right, e.key, e.value, e.right) )) : new $e(a, b, c, e, (f > d ? f : d) + 1); }, compare: function (a, b) { return Z.compare(a, b); }, __class__: Wg }; var $e = function (a, b, c, e, f) { null == f && (f = -1); this.left = a; this.key = b; this.value = c; this.right = e; -1 == f ? ((a = this.left), (b = this.right), (a = (null == a ? 0 : a._height) > (null == b ? 0 : b._height) ? this.left : this.right), (this._height = (null == a ? 0 : a._height) + 1)) : (this._height = f); }; h['haxe.ds.TreeNode'] = $e; $e.__name__ = 'haxe.ds.TreeNode'; $e.prototype = { left: null, right: null, key: null, value: null, _height: null, __class__: $e }; var Nj = function () {}; h['haxe.ds.EnumValueMap'] = Nj; Nj.__name__ = 'haxe.ds.EnumValueMap'; Nj.__interfaces__ = [ed]; Nj.__super__ = Wg; Nj.prototype = r(Wg.prototype, { compare: function (a, b) { var c = a._hx_index - b._hx_index; if (0 != c) return c; a = ma.enumParameters(a); b = ma.enumParameters(b); return 0 == a.length && 0 == b.length ? 0 : this.compareArgs(a, b); }, compareArgs: function (a, b) { var c = a.length - b.length; if (0 != c) return c; c = 0; for (var e = a.length; c < e; ) { var f = c++; f = this.compareArg(a[f], b[f]); if (0 != f) return f; } return 0; }, compareArg: function (a, b) { return Z.isEnumValue(a) && Z.isEnumValue(b) ? this.compare(a, b) : a instanceof Array && b instanceof Array ? this.compareArgs(a, b) : Z.compare(a, b); }, __class__: Nj }); var sk = function (a, b) { this.item = a; this.next = b; }; h['haxe.ds._List.ListNode'] = sk; sk.__name__ = 'haxe.ds._List.ListNode'; sk.prototype = { item: null, next: null, __class__: sk }; var xn = function (a) { this.head = a; }; h['haxe.ds._List.ListIterator'] = xn; xn.__name__ = 'haxe.ds._List.ListIterator'; xn.prototype = { head: null, hasNext: function () { return null != this.head; }, next: function () { var a = this.head.item; this.head = this.head.next; return a; }, __class__: xn }; var pj = function (a) { this.h = a; this.keys = Object.keys(a); this.length = this.keys.length; this.current = 0; }; h['haxe.ds._StringMap.StringMapKeyIterator'] = pj; pj.__name__ = 'haxe.ds._StringMap.StringMapKeyIterator'; pj.prototype = { h: null, keys: null, length: null, current: null, hasNext: function () { return this.current < this.length; }, next: function () { return this.keys[this.current++]; }, __class__: pj }; var Ci = function (a) { this.h = a; this.keys = Object.keys(a); this.length = this.keys.length; this.current = 0; }; h['haxe.ds._StringMap.StringMapValueIterator'] = Ci; Ci.__name__ = 'haxe.ds._StringMap.StringMapValueIterator'; Ci.prototype = { h: null, keys: null, length: null, current: null, hasNext: function () { return this.current < this.length; }, next: function () { return this.h[this.keys[this.current++]]; }, __class__: Ci }; var qo = function (a) { this.h = a; this.keys = Object.keys(a); this.length = this.keys.length; this.current = 0; }; h['haxe.ds._StringMap.StringMapKeyValueIterator'] = qo; qo.__name__ = 'haxe.ds._StringMap.StringMapKeyValueIterator'; qo.prototype = { h: null, keys: null, length: null, current: null, hasNext: function () { return this.current < this.length; }, next: function () { var a = this.keys[this.current++]; return { key: a, value: this.h[a] }; }, __class__: qo }; var Gi = function (a, b, c) { M.call(this, a, b); this.posInfos = null == c ? { fileName: '(unknown)', lineNumber: 0, className: '(unknown)', methodName: '(unknown)' } : c; this.__skipStack++; }; h['haxe.exceptions.PosException'] = Gi; Gi.__name__ = 'haxe.exceptions.PosException'; Gi.__super__ = M; Gi.prototype = r(M.prototype, { posInfos: null, toString: function () { return ( '' + M.prototype.toString.call(this) + ' in ' + this.posInfos.className + '.' + this.posInfos.methodName + ' at ' + this.posInfos.fileName + ':' + this.posInfos.lineNumber ); }, __class__: Gi }); var em = function (a, b, c) { null == a && (a = 'Not implemented'); Gi.call(this, a, b, c); this.__skipStack++; }; h['haxe.exceptions.NotImplementedException'] = em; em.__name__ = 'haxe.exceptions.NotImplementedException'; em.__super__ = Gi; em.prototype = r(Gi.prototype, { __class__: em }); var fm = function () { this.size = this.pos = 0; }; h['haxe.io.BytesBuffer'] = fm; fm.__name__ = 'haxe.io.BytesBuffer'; fm.prototype = { buffer: null, view: null, u8: null, pos: null, size: null, addByte: function (a) { this.pos == this.size && this.grow(1); this.view.setUint8(this.pos++, a); }, add: function (a) { this.pos + a.length > this.size && this.grow(a.length); if (0 != this.size) { var b = new Uint8Array(a.b.buffer, a.b.byteOffset, a.length); this.u8.set(b, this.pos); this.pos += a.length; } }, addBytes: function (a, b, c) { if (0 > b || 0 > c || b + c > a.length) throw M.thrown(Of.OutsideBounds); this.pos + c > this.size && this.grow(c); 0 != this.size && ((a = new Uint8Array(a.b.buffer, a.b.byteOffset + b, c)), this.u8.set(a, this.pos), (this.pos += c)); }, grow: function (a) { var b = this.pos + a; for (a = 0 == this.size ? 16 : this.size; a < b; ) a = (3 * a) >> 1; b = new ArrayBuffer(a); var c = new Uint8Array(b); 0 < this.size && c.set(this.u8); this.size = a; this.buffer = b; this.u8 = c; this.view = new DataView(this.buffer); }, getBytes: function () { if (0 == this.size) return new hb(new ArrayBuffer(0)); var a = new hb(this.buffer); a.length = this.pos; return a; }, __class__: fm }; var gm = function () {}; h['haxe.io.Input'] = gm; gm.__name__ = 'haxe.io.Input'; gm.prototype = { bigEndian: null, readByte: function () { throw new em(null, null, { fileName: 'haxe/io/Input.hx', lineNumber: 53, className: 'haxe.io.Input', methodName: 'readByte' }); }, readBytes: function (a, b, c) { var e = c, f = a.b; if (0 > b || 0 > c || b + c > a.length) throw M.thrown(Of.OutsideBounds); try { for (; 0 < e; ) (f[b] = this.readByte()), ++b, --e; } catch (g) { if (((la.lastError = g), !(M.caught(g).unwrap() instanceof Oj))) throw g; } return c - e; }, readFullBytes: function (a, b, c) { for (; 0 < c; ) { var e = this.readBytes(a, b, c); if (0 == e) throw M.thrown(Of.Blocked); b += e; c -= e; } }, read: function (a) { for (var b = new hb(new ArrayBuffer(a)), c = 0; 0 < a; ) { var e = this.readBytes(b, c, a); if (0 == e) throw M.thrown(Of.Blocked); c += e; a -= e; } return b; }, readInt16: function () { var a = this.readByte(), b = this.readByte(); a = this.bigEndian ? b | (a << 8) : a | (b << 8); return 0 != (a & 32768) ? a - 65536 : a; }, readUInt16: function () { var a = this.readByte(), b = this.readByte(); return this.bigEndian ? b | (a << 8) : a | (b << 8); }, readInt32: function () { var a = this.readByte(), b = this.readByte(), c = this.readByte(), e = this.readByte(); return this.bigEndian ? e | (c << 8) | (b << 16) | (a << 24) : a | (b << 8) | (c << 16) | (e << 24); }, readString: function (a, b) { var c = new hb(new ArrayBuffer(a)); this.readFullBytes(c, 0, a); return c.getString(0, a, b); }, __class__: gm }; var hm = function (a, b, c) { null == b && (b = 0); null == c && (c = a.length - b); if (0 > b || 0 > c || b + c > a.length) throw M.thrown(Of.OutsideBounds); this.b = a.b; this.pos = b; this.totlen = this.len = c; }; h['haxe.io.BytesInput'] = hm; hm.__name__ = 'haxe.io.BytesInput'; hm.__super__ = gm; hm.prototype = r(gm.prototype, { b: null, pos: null, len: null, totlen: null, readByte: function () { if (0 == this.len) throw M.thrown(new Oj()); this.len--; return this.b[this.pos++]; }, readBytes: function (a, b, c) { if (0 > b || 0 > c || b + c > a.length) throw M.thrown(Of.OutsideBounds); if (0 == this.len && 0 < c) throw M.thrown(new Oj()); this.len < c && (c = this.len); var e = this.b; a = a.b; for (var f = 0, d = c; f < d; ) { var p = f++; a[b + p] = e[this.pos + p]; } this.pos += c; this.len -= c; return c; }, __class__: hm }); var Pw = (E['haxe.io.Encoding'] = { __ename__: 'haxe.io.Encoding', __constructs__: null, UTF8: { _hx_name: 'UTF8', _hx_index: 0, __enum__: 'haxe.io.Encoding', toString: w }, RawNative: { _hx_name: 'RawNative', _hx_index: 1, __enum__: 'haxe.io.Encoding', toString: w } }); Pw.__constructs__ = [Pw.UTF8, Pw.RawNative]; var Oj = function () {}; h['haxe.io.Eof'] = Oj; Oj.__name__ = 'haxe.io.Eof'; Oj.prototype = { toString: function () { return 'Eof'; }, __class__: Oj }; var Of = (E['haxe.io.Error'] = { __ename__: 'haxe.io.Error', __constructs__: null, Blocked: { _hx_name: 'Blocked', _hx_index: 0, __enum__: 'haxe.io.Error', toString: w }, Overflow: { _hx_name: 'Overflow', _hx_index: 1, __enum__: 'haxe.io.Error', toString: w }, OutsideBounds: { _hx_name: 'OutsideBounds', _hx_index: 2, __enum__: 'haxe.io.Error', toString: w }, Custom: ((I = function (a) { return { _hx_index: 3, e: a, __enum__: 'haxe.io.Error', toString: w }; }), (I._hx_name = 'Custom'), (I.__params__ = ['e']), I) }); Of.__constructs__ = [Of.Blocked, Of.Overflow, Of.OutsideBounds, Of.Custom]; var Zd = function () {}; h['haxe.io.FPHelper'] = Zd; Zd.__name__ = 'haxe.io.FPHelper'; Zd.i32ToFloat = function (a) { Zd.helper.setInt32(0, a, !0); return Zd.helper.getFloat32(0, !0); }; Zd.floatToI32 = function (a) { Zd.helper.setFloat32(0, a, !0); return Zd.helper.getInt32(0, !0); }; Zd.i64ToDouble = function (a, b) { Zd.helper.setInt32(0, a, !0); Zd.helper.setInt32(4, b, !0); return Zd.helper.getFloat64(0, !0); }; Zd.doubleToI64 = function (a) { var b = Zd.i64tmp; Zd.helper.setFloat64(0, a, !0); b.low = Zd.helper.getInt32(0, !0); b.high = Zd.helper.getInt32(4, !0); return b; }; var Ah = function (a) { switch (a) { case '.': case '..': this.dir = a; this.file = ''; return; } var b = a.lastIndexOf('/'), c = a.lastIndexOf('\\'); b < c ? ((this.dir = A.substr(a, 0, c)), (a = A.substr(a, c + 1, null)), (this.backslash = !0)) : c < b ? ((this.dir = A.substr(a, 0, b)), (a = A.substr(a, b + 1, null))) : (this.dir = null); b = a.lastIndexOf('.'); -1 != b ? ((this.ext = A.substr(a, b + 1, null)), (this.file = A.substr(a, 0, b))) : ((this.ext = null), (this.file = a)); }; h['haxe.io.Path'] = Ah; Ah.__name__ = 'haxe.io.Path'; Ah.directory = function (a) { a = new Ah(a); return null == a.dir ? '' : a.dir; }; Ah.prototype = { dir: null, file: null, ext: null, backslash: null, __class__: Ah }; var Me = function (a) { this.current = 0; this.array = a; }; h['haxe.iterators.ArrayIterator'] = Me; Me.__name__ = 'haxe.iterators.ArrayIterator'; Me.prototype = { array: null, current: null, hasNext: function () { return this.current < this.array.length; }, next: function () { return this.array[this.current++]; }, __class__: Me }; var ih = function (a) { this.map = a; this.keys = a.keys(); }; h['haxe.iterators.MapKeyValueIterator'] = ih; ih.__name__ = 'haxe.iterators.MapKeyValueIterator'; ih.prototype = { map: null, keys: null, hasNext: function () { return this.keys.hasNext(); }, next: function () { var a = this.keys.next(); return { value: this.map.get(a), key: a }; }, __class__: ih }; var Zw = { resolve: function (a, b) { var c = a.elementsNamed(b).next(); if (null == c) { if (a.nodeType == T.Document) a = 'Document'; else { if (a.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == a.nodeType ? 'null' : ua.toString(a.nodeType)) ); a = a.nodeName; } throw M.thrown(a + ' is missing element ' + b); } if (c.nodeType != T.Document && c.nodeType != T.Element) throw M.thrown( 'Invalid nodeType ' + (null == c.nodeType ? 'null' : ua.toString(c.nodeType)) ); return c; } }, jx = { resolve: function (a, b) { return a.elementsNamed(b).hasNext(); } }, Yw = { __properties__: { get_innerData: 'get_innerData' }, get_innerData: function (a) { if (a.nodeType != T.Document && a.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element or Document but found ' + (null == a.nodeType ? 'null' : ua.toString(a.nodeType)) ); var b = 0, c = a.children; if (b >= c.length) { if (a.nodeType == T.Document) var e = 'Document'; else { if (a.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == a.nodeType ? 'null' : ua.toString(a.nodeType)) ); e = a.nodeName; } throw M.thrown(e + ' does not have data'); } e = c[b++]; if (b < c.length) { var f = c[b++]; if (e.nodeType == T.PCData && f.nodeType == T.CData) { if (e.nodeType == T.Document || e.nodeType == T.Element) throw M.thrown( 'Bad node type, unexpected ' + (null == e.nodeType ? 'null' : ua.toString(e.nodeType)) ); e = '' == U.trim(e.nodeValue); } else e = !1; if (e) { if (b >= c.length) { if (f.nodeType == T.Document || f.nodeType == T.Element) throw M.thrown( 'Bad node type, unexpected ' + (null == f.nodeType ? 'null' : ua.toString(f.nodeType)) ); return f.nodeValue; } e = c[b++]; if (e.nodeType == T.PCData) { if (e.nodeType == T.Document || e.nodeType == T.Element) throw M.thrown( 'Bad node type, unexpected ' + (null == e.nodeType ? 'null' : ua.toString(e.nodeType)) ); e = '' == U.trim(e.nodeValue); } else e = !1; if (e && b >= c.length) { if (f.nodeType == T.Document || f.nodeType == T.Element) throw M.thrown( 'Bad node type, unexpected ' + (null == f.nodeType ? 'null' : ua.toString(f.nodeType)) ); return f.nodeValue; } } if (a.nodeType == T.Document) e = 'Document'; else { if (a.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == a.nodeType ? 'null' : ua.toString(a.nodeType)) ); e = a.nodeName; } throw M.thrown(e + ' does not only have data'); } if (e.nodeType != T.PCData && e.nodeType != T.CData) { if (a.nodeType == T.Document) e = 'Document'; else { if (a.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == a.nodeType ? 'null' : ua.toString(a.nodeType)) ); e = a.nodeName; } throw M.thrown(e + ' does not have data'); } if (e.nodeType == T.Document || e.nodeType == T.Element) throw M.thrown( 'Bad node type, unexpected ' + (null == e.nodeType ? 'null' : ua.toString(e.nodeType)) ); return e.nodeValue; } }, ie = function (a, b, c) { this.xml = b; this.message = a; this.position = c; this.lineNumber = 1; for (a = this.positionAtLine = 0; a < c; ) { var e = a++; e = b.charCodeAt(e); 10 == e ? (this.lineNumber++, (this.positionAtLine = 0)) : 13 != e && this.positionAtLine++; } }; h['haxe.xml.XmlParserException'] = ie; ie.__name__ = 'haxe.xml.XmlParserException'; ie.prototype = { message: null, lineNumber: null, positionAtLine: null, position: null, xml: null, toString: function () { return ( x.getClass(this).__name__ + ': ' + this.message + ' at line ' + this.lineNumber + ' char ' + this.positionAtLine ); }, __class__: ie }; var kh = function () {}; h['haxe.xml.Parser'] = kh; kh.__name__ = 'haxe.xml.Parser'; kh.parse = function (a, b) { null == b && (b = !1); var c = T.createDocument(); kh.doParse(a, b, 0, c); return c; }; kh.doParse = function (a, b, c, e) { null == c && (c = 0); for ( var f = null, d = 1, p = 1, l = null, v = 0, n = 0, k = 0, m = new Sa(), h = 1, t = -1; c < a.length; ) { var u = a.charCodeAt(c); switch (d) { case 0: switch (u) { case 9: case 10: case 13: case 32: break; default: d = p; continue; } break; case 1: if (60 == u) (d = 0), (p = 2); else { v = c; d = 13; continue; } break; case 2: switch (u) { case 33: if (91 == a.charCodeAt(c + 1)) { c += 2; if ('CDATA[' != A.substr(a, c, 6).toUpperCase()) throw M.thrown(new ie('Expected = u) || (65 <= u && 90 >= u) || (48 <= u && 57 >= u) || 58 == u || 46 == u || 95 == u || 45 == u ) ) { if (c == v) throw M.thrown(new ie('Expected node name', a, c)); f = T.createElement(A.substr(a, v, c - v)); e.addChild(f); ++n; d = 0; p = 4; continue; } break; case 4: switch (u) { case 47: d = 11; break; case 62: d = 9; break; default: d = 5; v = c; continue; } break; case 5: if ( !( (97 <= u && 122 >= u) || (65 <= u && 90 >= u) || (48 <= u && 57 >= u) || 58 == u || 46 == u || 95 == u || 45 == u ) ) { if (v == c) throw M.thrown(new ie('Expected attribute name', a, c)); l = A.substr(a, v, c - v); if (f.exists(l)) throw M.thrown(new ie('Duplicate attribute [' + l + ']', a, c)); d = 0; p = 6; continue; } break; case 6: if (61 == u) (d = 0), (p = 7); else throw M.thrown(new ie('Expected =', a, c)); break; case 7: switch (u) { case 34: case 39: m = new Sa(); d = 8; v = c + 1; t = u; break; default: throw M.thrown(new ie('Expected "', a, c)); } break; case 8: switch (u) { case 38: h = c - v; m.b += null == h ? A.substr(a, v, null) : A.substr(a, v, h); d = 18; h = 8; v = c + 1; break; case 60: case 62: if (b) throw M.thrown( new ie( 'Invalid unescaped ' + String.fromCodePoint(u) + ' in attribute value', a, c ) ); u == t && ((p = c - v), (m.b += null == p ? A.substr(a, v, null) : A.substr(a, v, p)), (p = m.b), (m = new Sa()), f.set(l, p), (d = 0), (p = 4)); break; default: u == t && ((p = c - v), (m.b += null == p ? A.substr(a, v, null) : A.substr(a, v, p)), (p = m.b), (m = new Sa()), f.set(l, p), (d = 0), (p = 4)); } break; case 9: v = c = kh.doParse(a, b, c, f); d = 1; break; case 10: if ( !( (97 <= u && 122 >= u) || (65 <= u && 90 >= u) || (48 <= u && 57 >= u) || 58 == u || 46 == u || 95 == u || 45 == u ) ) { if (v == c) throw M.thrown(new ie('Expected node name', a, c)); p = A.substr(a, v, c - v); if (null == e || 0 != e.nodeType) throw M.thrown(new ie('Unexpected , tag is not open', a, c)); if (e.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == e.nodeType ? 'null' : ua.toString(e.nodeType)) ); if (p != e.nodeName) { if (e.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == e.nodeType ? 'null' : ua.toString(e.nodeType)) ); throw M.thrown(new ie('Expected ', a, c)); } d = 0; p = 12; continue; } break; case 11: if (62 == u) d = 1; else throw M.thrown(new ie('Expected >', a, c)); break; case 12: if (62 == u) return 0 == n && e.addChild(T.createPCData('')), c; throw M.thrown(new ie('Expected >', a, c)); case 13: 60 == u ? ((p = c - v), (m.b += null == p ? A.substr(a, v, null) : A.substr(a, v, p)), (p = T.createPCData(m.b)), (m = new Sa()), e.addChild(p), ++n, (d = 0), (p = 2)) : 38 == u && ((h = c - v), (m.b += null == h ? A.substr(a, v, null) : A.substr(a, v, h)), (d = 18), (h = 13), (v = c + 1)); break; case 14: 63 == u && 62 == a.charCodeAt(c + 1) && (++c, (d = A.substr(a, v + 1, c - v - 2)), e.addChild(T.createProcessingInstruction(d)), ++n, (d = 1)); break; case 15: 45 == u && 45 == a.charCodeAt(c + 1) && 62 == a.charCodeAt(c + 2) && (e.addChild(T.createComment(A.substr(a, v, c - v))), ++n, (c += 2), (d = 1)); break; case 16: 91 == u ? ++k : 93 == u ? --k : 62 == u && 0 == k && (e.addChild(T.createDocType(A.substr(a, v, c - v))), ++n, (d = 1)); break; case 17: 93 == u && 93 == a.charCodeAt(c + 1) && 62 == a.charCodeAt(c + 2) && ((d = T.createCData(A.substr(a, v, c - v))), e.addChild(d), ++n, (c += 2), (d = 1)); break; case 18: if (59 == u) { v = A.substr(a, v, c - v); if (35 == v.charCodeAt(0)) (v = 120 == v.charCodeAt(1) ? B.parseInt('0' + A.substr(v, 1, v.length - 1)) : B.parseInt(A.substr(v, 1, v.length - 1))), (m.b += String.fromCodePoint(v)); else if (Object.prototype.hasOwnProperty.call(kh.escapes.h, v)) m.b += B.string(kh.escapes.h[v]); else { if (b) throw M.thrown(new ie('Undefined entity: ' + v, a, c)); m.b += B.string('&' + v + ';'); } v = c + 1; d = h; } else if ( !( (97 <= u && 122 >= u) || (65 <= u && 90 >= u) || (48 <= u && 57 >= u) || 58 == u || 46 == u || 95 == u || 45 == u ) && 35 != u ) { if (b) throw M.thrown( new ie('Invalid character in entity: ' + String.fromCodePoint(u), a, c) ); m.b += String.fromCodePoint(38); d = c - v; m.b += null == d ? A.substr(a, v, null) : A.substr(a, v, d); --c; v = c + 1; d = h; } } ++c; } 1 == d && ((v = c), (d = 13)); if (13 == d) { if (0 == e.nodeType) { if (e.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == e.nodeType ? 'null' : ua.toString(e.nodeType)) ); throw M.thrown(new ie('Unclosed node <' + e.nodeName + '>', a, c)); } if (c != v || 0 == n) (h = c - v), (m.b += null == h ? A.substr(a, v, null) : A.substr(a, v, h)), e.addChild(T.createPCData(m.b)); return c; } if (!b && 18 == d && 13 == h) return ( (m.b += String.fromCodePoint(38)), (h = c - v), (m.b += null == h ? A.substr(a, v, null) : A.substr(a, v, h)), e.addChild(T.createPCData(m.b)), c ); throw M.thrown(new ie('Unexpected end', a, c)); }; var qj = function (a) { this.output = new Sa(); this.pretty = a; }; h['haxe.xml.Printer'] = qj; qj.__name__ = 'haxe.xml.Printer'; qj.print = function (a, b) { null == b && (b = !1); b = new qj(b); b.writeNode(a, ''); return b.output.b; }; qj.prototype = { output: null, pretty: null, writeNode: function (a, b) { switch (a.nodeType) { case 0: this.output.b += B.string(b + '<'); if (a.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element but found ' + (null == a.nodeType ? 'null' : ua.toString(a.nodeType)) ); this.output.b += B.string(a.nodeName); for (var c = a.attributes(); c.hasNext(); ) { var e = c.next(); this.output.b += B.string(' ' + e + '="'); e = U.htmlEscape(a.get(e), !0); this.output.b += B.string(e); this.output.b += '"'; } if (this.hasChildren(a)) { this.output.b += '>'; this.pretty && (this.output.b += '\n'); if (a.nodeType != T.Document && a.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element or Document but found ' + (null == a.nodeType ? 'null' : ua.toString(a.nodeType)) ); c = 0; for (e = a.children; c < e.length; ) { var f = e[c++]; this.writeNode(f, this.pretty ? b + '\t' : b); } this.output.b += B.string(b + ''; } else this.output.b += '/>'; this.pretty && (this.output.b += '\n'); break; case 1: if (a.nodeType == T.Document || a.nodeType == T.Element) throw M.thrown( 'Bad node type, unexpected ' + (null == a.nodeType ? 'null' : ua.toString(a.nodeType)) ); a = a.nodeValue; 0 != a.length && ((e = b + U.htmlEscape(a)), (this.output.b += B.string(e)), this.pretty && (this.output.b += '\n')); break; case 2: this.output.b += B.string(b + ''); this.pretty && (this.output.b += '\n'); break; case 5: if (a.nodeType == T.Document || a.nodeType == T.Element) throw M.thrown( 'Bad node type, unexpected ' + (null == a.nodeType ? 'null' : ua.toString(a.nodeType)) ); this.output.b += B.string(''); this.pretty && (this.output.b += '\n'); break; case 6: if (a.nodeType != T.Document && a.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element or Document but found ' + (null == a.nodeType ? 'null' : ua.toString(a.nodeType)) ); c = 0; for (e = a.children; c < e.length; ) (f = e[c++]), this.writeNode(f, b); } }, hasChildren: function (a) { if (a.nodeType != T.Document && a.nodeType != T.Element) throw M.thrown( 'Bad node type, expected Element or Document but found ' + (null == a.nodeType ? 'null' : ua.toString(a.nodeType)) ); var b = 0; for (a = a.children; b < a.length; ) { var c = a[b++]; switch (c.nodeType) { case 0: case 1: return !0; case 2: case 3: if (c.nodeType == T.Document || c.nodeType == T.Element) throw M.thrown( 'Bad node type, unexpected ' + (null == c.nodeType ? 'null' : ua.toString(c.nodeType)) ); if (0 != U.ltrim(c.nodeValue).length) return !0; } } return !1; }, __class__: qj }; var Hi = (E['haxe.zip.ExtraField'] = { __ename__: 'haxe.zip.ExtraField', __constructs__: null, FUnknown: ((I = function (a, b) { return { _hx_index: 0, tag: a, bytes: b, __enum__: 'haxe.zip.ExtraField', toString: w }; }), (I._hx_name = 'FUnknown'), (I.__params__ = ['tag', 'bytes']), I), FInfoZipUnicodePath: ((I = function (a, b) { return { _hx_index: 1, name: a, crc: b, __enum__: 'haxe.zip.ExtraField', toString: w }; }), (I._hx_name = 'FInfoZipUnicodePath'), (I.__params__ = ['name', 'crc']), I), FUtf8: { _hx_name: 'FUtf8', _hx_index: 2, __enum__: 'haxe.zip.ExtraField', toString: w } }); Hi.__constructs__ = [Hi.FUnknown, Hi.FInfoZipUnicodePath, Hi.FUtf8]; var ng = (E['haxe.zip.Huffman'] = { __ename__: 'haxe.zip.Huffman', __constructs__: null, Found: ((I = function (a) { return { _hx_index: 0, i: a, __enum__: 'haxe.zip.Huffman', toString: w }; }), (I._hx_name = 'Found'), (I.__params__ = ['i']), I), NeedBit: ((I = function (a, b) { return { _hx_index: 1, left: a, right: b, __enum__: 'haxe.zip.Huffman', toString: w }; }), (I._hx_name = 'NeedBit'), (I.__params__ = ['left', 'right']), I), NeedBits: ((I = function (a, b) { return { _hx_index: 2, n: a, table: b, __enum__: 'haxe.zip.Huffman', toString: w }; }), (I._hx_name = 'NeedBits'), (I.__params__ = ['n', 'table']), I) }); ng.__constructs__ = [ng.Found, ng.NeedBit, ng.NeedBits]; var so = function () {}; h['haxe.zip.HuffTools'] = so; so.__name__ = 'haxe.zip.HuffTools'; so.prototype = { treeDepth: function (a) { switch (a._hx_index) { case 0: return 0; case 1: var b = a.right; a = this.treeDepth(a.left); b = this.treeDepth(b); return 1 + (a < b ? a : b); case 2: throw M.thrown('assert'); } }, treeCompress: function (a) { var b = this.treeDepth(a); if (0 == b) return a; if (1 == b) { if (1 == a._hx_index) return (b = a.right), ng.NeedBit(this.treeCompress(a.left), this.treeCompress(b)); throw M.thrown('assert'); } for (var c = [], e = 0, f = 1 << b; e < f; ) e++, c.push(ng.Found(-1)); this.treeWalk(c, 0, 0, b, a); return ng.NeedBits(b, c); }, treeWalk: function (a, b, c, e, f) { if (1 == f._hx_index) { var d = f.left, p = f.right; 0 < e ? (this.treeWalk(a, b, c + 1, e - 1, d), this.treeWalk(a, b | (1 << c), c + 1, e - 1, p)) : (a[b] = this.treeCompress(f)); } else a[b] = this.treeCompress(f); }, treeMake: function (a, b, c, e) { if (e > b) throw M.thrown('Invalid huffman'); var f = (c << 5) | e; if (a.h.hasOwnProperty(f)) return ng.Found(a.h[f]); c <<= 1; ++e; return ng.NeedBit(this.treeMake(a, b, c, e), this.treeMake(a, b, c | 1, e)); }, make: function (a, b, c, e) { if (1 == c) return ng.NeedBit(ng.Found(0), ng.Found(0)); var f = [], d = []; if (32 < e) throw M.thrown('Invalid huffman'); for (var p = 0, l = e; p < l; ) p++, f.push(0), d.push(0); p = 0; for (l = c; p < l; ) { var v = p++; v = a[v + b]; if (v >= e) throw M.thrown('Invalid huffman'); f[v]++; } var n = 0; p = 1; for (l = e - 1; p < l; ) (v = p++), (n = (n + f[v]) << 1), (d[v] = n); f = new Za(); p = 0; for (l = c; p < l; ) (v = p++), (c = a[v + b]), 0 != c && ((n = d[c - 1]), (d[c - 1] = n + 1), (f.h[(n << 5) | c] = v)); return this.treeCompress( ng.NeedBit(this.treeMake(f, e, 0, 1), this.treeMake(f, e, 1, 1)) ); }, __class__: so }; var to = function (a) { this.buffer = new hb(new ArrayBuffer(65536)); this.pos = 0; a && (this.crc = new Fi()); }; h['haxe.zip._InflateImpl.Window'] = to; to.__name__ = 'haxe.zip._InflateImpl.Window'; to.prototype = { buffer: null, pos: null, crc: null, slide: function () { null != this.crc && this.crc.update(this.buffer, 0, 32768); var a = new hb(new ArrayBuffer(65536)); this.pos -= 32768; a.blit(0, this.buffer, 32768, this.pos); this.buffer = a; }, addBytes: function (a, b, c) { 65536 < this.pos + c && this.slide(); this.buffer.blit(this.pos, a, b, c); this.pos += c; }, addByte: function (a) { 65536 == this.pos && this.slide(); this.buffer.b[this.pos] = a & 255; this.pos++; }, getLastChar: function () { return this.buffer.b[this.pos - 1]; }, available: function () { return this.pos; }, checksum: function () { null != this.crc && this.crc.update(this.buffer, 0, this.pos); return this.crc; }, __class__: to }; var Sd = (E['haxe.zip._InflateImpl.State'] = { __ename__: 'haxe.zip._InflateImpl.State', __constructs__: null, Head: { _hx_name: 'Head', _hx_index: 0, __enum__: 'haxe.zip._InflateImpl.State', toString: w }, Block: { _hx_name: 'Block', _hx_index: 1, __enum__: 'haxe.zip._InflateImpl.State', toString: w }, CData: { _hx_name: 'CData', _hx_index: 2, __enum__: 'haxe.zip._InflateImpl.State', toString: w }, Flat: { _hx_name: 'Flat', _hx_index: 3, __enum__: 'haxe.zip._InflateImpl.State', toString: w }, Crc: { _hx_name: 'Crc', _hx_index: 4, __enum__: 'haxe.zip._InflateImpl.State', toString: w }, Dist: { _hx_name: 'Dist', _hx_index: 5, __enum__: 'haxe.zip._InflateImpl.State', toString: w }, DistOne: { _hx_name: 'DistOne', _hx_index: 6, __enum__: 'haxe.zip._InflateImpl.State', toString: w }, Done: { _hx_name: 'Done', _hx_index: 7, __enum__: 'haxe.zip._InflateImpl.State', toString: w } }); Sd.__constructs__ = [ Sd.Head, Sd.Block, Sd.CData, Sd.Flat, Sd.Crc, Sd.Dist, Sd.DistOne, Sd.Done ]; var Ce = function (a, b, c) { null == c && (c = !0); null == b && (b = !0); this.isFinal = !1; this.htools = new so(); this.huffman = this.buildFixedHuffman(); this.huffdist = null; this.dist = this.len = 0; this.state = b ? Sd.Head : Sd.Block; this.input = a; this.needed = this.nbits = this.bits = 0; this.output = null; this.outpos = 0; this.lengths = []; this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.window = new to(c); }; h['haxe.zip.InflateImpl'] = Ce; Ce.__name__ = 'haxe.zip.InflateImpl'; Ce.prototype = { nbits: null, bits: null, state: null, isFinal: null, huffman: null, huffdist: null, htools: null, len: null, dist: null, needed: null, output: null, outpos: null, input: null, lengths: null, window: null, buildFixedHuffman: function () { if (null != Ce.FIXED_HUFFMAN) return Ce.FIXED_HUFFMAN; for (var a = [], b = 0; 288 > b; ) { var c = b++; a.push(143 >= c ? 8 : 255 >= c ? 9 : 279 >= c ? 7 : 8); } Ce.FIXED_HUFFMAN = this.htools.make(a, 0, 288, 10); return Ce.FIXED_HUFFMAN; }, readBytes: function (a, b, c) { this.needed = c; this.outpos = b; this.output = a; if (0 < c) for (; this.inflateLoop(); ); return c - this.needed; }, getBits: function (a) { for (; this.nbits < a; ) (this.bits |= this.input.readByte() << this.nbits), (this.nbits += 8); var b = this.bits & ((1 << a) - 1); this.nbits -= a; this.bits >>= a; return b; }, getBit: function () { 0 == this.nbits && ((this.nbits = 8), (this.bits = this.input.readByte())); var a = 1 == (this.bits & 1); this.nbits--; this.bits >>= 1; return a; }, getRevBits: function (a) { return 0 == a ? 0 : this.getBit() ? (1 << (a - 1)) | this.getRevBits(a - 1) : this.getRevBits(a - 1); }, resetBits: function () { this.nbits = this.bits = 0; }, addBytes: function (a, b, c) { this.window.addBytes(a, b, c); this.output.blit(this.outpos, a, b, c); this.needed -= c; this.outpos += c; }, addByte: function (a) { this.window.addByte(a); this.output.b[this.outpos] = a & 255; this.needed--; this.outpos++; }, addDistOne: function (a) { for (var b = this.window.getLastChar(), c = 0; c < a; ) c++, this.addByte(b); }, addDist: function (a, b) { this.addBytes(this.window.buffer, this.window.pos - a, b); }, applyHuffman: function (a) { switch (a._hx_index) { case 0: var b = a.i; return b; case 1: return (b = a.left), (a = a.right), this.applyHuffman(this.getBit() ? a : b); case 2: return (b = a.n), this.applyHuffman(a.table[this.getBits(b)]); } }, inflateLengths: function (a, b) { for (var c = 0, e = 0; c < b; ) { var f = this.applyHuffman(this.huffman); switch (f) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: e = f; a[c] = f; ++c; break; case 16: f = c + 3 + this.getBits(2); if (f > b) throw M.thrown('Invalid data'); for (; c < f; ) (a[c] = e), ++c; break; case 17: c += 3 + this.getBits(3); if (c > b) throw M.thrown('Invalid data'); break; case 18: c += 11 + this.getBits(7); if (c > b) throw M.thrown('Invalid data'); break; default: throw M.thrown('Invalid data'); } } }, inflateLoop: function () { switch (this.state._hx_index) { case 0: var a = this.input.readByte(); if (8 != (a & 15)) throw M.thrown('Invalid data'); var b = this.input.readByte(), c = 0 != (b & 32); if (0 != ((a << 8) + b) % 31) throw M.thrown('Invalid data'); if (c) throw M.thrown('Unsupported dictionary'); this.state = Sd.Block; return !0; case 1: switch (((this.isFinal = this.getBit()), this.getBits(2))) { case 0: this.len = this.input.readUInt16(); if (this.input.readUInt16() != 65535 - this.len) throw M.thrown('Invalid data'); this.state = Sd.Flat; a = this.inflateLoop(); this.resetBits(); return a; case 1: return ( (this.huffman = this.buildFixedHuffman()), (this.huffdist = null), (this.state = Sd.CData), !0 ); case 2: a = this.getBits(5) + 257; b = this.getBits(5) + 1; var e = this.getBits(4) + 4; c = 0; for (var f = e; c < f; ) { var d = c++; this.lengths[Ce.CODE_LENGTHS_POS[d]] = this.getBits(3); } c = e; for (f = 19; c < f; ) (d = c++), (this.lengths[Ce.CODE_LENGTHS_POS[d]] = 0); this.huffman = this.htools.make(this.lengths, 0, 19, 8); e = []; c = 0; for (f = a + b; c < f; ) c++, e.push(0); this.inflateLengths(e, a + b); this.huffdist = this.htools.make(e, a, b, 16); this.huffman = this.htools.make(e, 0, a, 16); this.state = Sd.CData; return !0; default: throw M.thrown('Invalid data'); } case 2: b = this.applyHuffman(this.huffman); if (256 > b) return this.addByte(b), 0 < this.needed; if (256 == b) this.state = this.isFinal ? Sd.Crc : Sd.Block; else { b -= 257; a = Ce.LEN_EXTRA_BITS_TBL[b]; if (-1 == a) throw M.thrown('Invalid data'); this.len = Ce.LEN_BASE_VAL_TBL[b] + this.getBits(a); b = null == this.huffdist ? this.getRevBits(5) : this.applyHuffman(this.huffdist); a = Ce.DIST_EXTRA_BITS_TBL[b]; if (-1 == a) throw M.thrown('Invalid data'); this.dist = Ce.DIST_BASE_VAL_TBL[b] + this.getBits(a); if (this.dist > this.window.available()) throw M.thrown('Invalid data'); this.state = 1 == this.dist ? Sd.DistOne : Sd.Dist; } return !0; case 3: return ( (a = this.len < this.needed ? this.len : this.needed), (b = this.input.read(a)), (this.len -= a), this.addBytes(b, 0, a), 0 == this.len && (this.state = this.isFinal ? Sd.Crc : Sd.Block), 0 < this.needed ); case 4: a = this.window.checksum(); if (null == a) return (this.state = Sd.Done), !0; b = Fi.read(this.input); if (!a.equals(b)) throw M.thrown('Invalid CRC'); this.state = Sd.Done; return !0; case 5: for (; 0 < this.len && 0 < this.needed; ) (a = this.len < this.dist ? this.len : this.dist), (a = this.needed < a ? this.needed : a), this.addDist(this.dist, a), (this.len -= a); 0 == this.len && (this.state = Sd.CData); return 0 < this.needed; case 6: return ( (a = this.len < this.needed ? this.len : this.needed), this.addDistOne(a), (this.len -= a), 0 == this.len && (this.state = Sd.CData), 0 < this.needed ); case 7: return !1; } }, __class__: Ce }; var Ii = function (a) { this.i = a; }; h['haxe.zip.Reader'] = Ii; Ii.__name__ = 'haxe.zip.Reader'; Ii.readZip = function (a) { return new Ii(a).read(); }; Ii.unzip = function (a) { if (!a.compressed) return a.data; throw M.thrown('No uncompress support'); }; Ii.prototype = { i: null, readZipDate: function () { var a = this.i.readUInt16(), b = (a >> 11) & 31, c = (a >> 5) & 63; a &= 31; var e = this.i.readUInt16(); return new Date((e >> 9) + 1980, ((e >> 5) & 15) - 1, e & 31, b, c, a << 1); }, readExtraFields: function (a) { for (var b = new K(); 0 < a; ) { if (4 > a) throw M.thrown('Invalid extra fields data'); var c = this.i.readUInt16(), e = this.i.readUInt16(); if (a < e) throw M.thrown('Invalid extra fields data'); if (28789 == c) { var f = this.i.readByte(); if (1 != f) { var d = new fm(); d.addByte(f); d.add(this.i.read(e - 1)); b.add(Hi.FUnknown(c, d.getBytes())); } else (c = this.i.readInt32()), (f = this.i.read(e - 5).toString()), b.add(Hi.FInfoZipUnicodePath(f, c)); } else b.add(Hi.FUnknown(c, this.i.read(e))); a -= 4 + e; } return b; }, readEntryHeader: function () { var a = this.i, b = a.readInt32(); if (33639248 == b || 101010256 == b) return null; if (67324752 != b) throw M.thrown('Invalid Zip Data'); a.readUInt16(); b = a.readUInt16(); var c = 0 != (b & 2048), e = a.readUInt16(), f = 0 != e; if (f && 8 != e) throw M.thrown('Unsupported compression ' + e); e = this.readZipDate(); var d = a.readInt32(), p = a.readInt32(), l = a.readInt32(), v = a.readInt16(), n = a.readInt16(); a = a.readString(v); n = this.readExtraFields(n); c && n.push(Hi.FUtf8); 0 != (b & 8) && (p = -1); return { fileName: a, fileSize: l, fileTime: e, compressed: f, dataSize: p, data: null, crc32: d, extraFields: n }; }, read: function () { for (var a = new K(), b = null; ; ) { var c = this.readEntryHeader(); if (null == c) break; if (0 > c.dataSize) { null == b && (b = new hb(new ArrayBuffer(65536))); for (var e = new fm(), f = new Ce(this.i, !1, !1); ; ) { var d = f.readBytes(b, 0, 65536); e.addBytes(b, 0, d); if (65536 > d) break; } c.data = e.getBytes(); c.crc32 = this.i.readInt32(); 134695760 == c.crc32 && (c.crc32 = this.i.readInt32()); c.dataSize = this.i.readInt32(); c.fileSize = this.i.readInt32(); c.dataSize = c.fileSize; c.compressed = !1; } else c.data = this.i.read(c.dataSize); a.add(c); } return a; }, __class__: Ii }; var x = function () {}; h['js.Boot'] = x; x.__name__ = 'js.Boot'; x.getClass = function (a) { if (null == a) return null; if (a instanceof Array) return Array; var b = a.__class__; if (null != b) return b; a = x.__nativeClassName(a); return null != a ? x.__resolveNativeClass(a) : null; }; x.__string_rec = function (a, b) { if (null == a) return 'null'; if (5 <= b.length) return '<...>'; var c = typeof a; 'function' == c && (a.__name__ || a.__ename__) && (c = 'object'); switch (c) { case 'function': return ''; case 'object': if (a.__enum__) { var e = E[a.__enum__].__constructs__[a._hx_index]; c = e._hx_name; if (e.__params__) { b += '\t'; var f = [], d = 0; for (e = e.__params__; d < e.length; ) { var p = e[d]; d += 1; f.push(x.__string_rec(a[p], b)); } return c + '(' + f.join(',') + ')'; } return c; } if (a instanceof Array) { c = '['; b += '\t'; f = 0; for (d = a.length; f < d; ) (e = f++), (c += (0 < e ? ',' : '') + x.__string_rec(a[e], b)); return c + ']'; } try { f = a.toString; } catch (l) { return (la.lastError = l), '???'; } if ( null != f && f != Object.toString && 'function' == typeof f && ((c = a.toString()), '[object Object]' != c) ) return c; c = '{\n'; b += '\t'; f = null != a.hasOwnProperty; d = null; for (d in a) (f && !a.hasOwnProperty(d)) || 'prototype' == d || '__class__' == d || '__super__' == d || '__interfaces__' == d || '__properties__' == d || (2 != c.length && (c += ', \n'), (c += b + d + ' : ' + x.__string_rec(a[d], b))); b = b.substring(1); return c + ('\n' + b + '}'); case 'string': return a; default: return String(a); } }; x.__interfLoop = function (a, b) { if (null == a) return !1; if (a == b) return !0; var c = a.__interfaces__; if (null != c) for (var e = 0, f = c.length; e < f; ) { var d = e++; d = c[d]; if (d == b || x.__interfLoop(d, b)) return !0; } return x.__interfLoop(a.__super__, b); }; x.__instanceof = function (a, b) { if (null == b) return !1; switch (b) { case Array: return a instanceof Array; case Ob: return 'boolean' == typeof a; case kx: return null != a; case Nb: return 'number' == typeof a; case Ab: return 'number' == typeof a ? (a | 0) === a : !1; case String: return 'string' == typeof a; default: if (null != a) if ('function' == typeof b) { if (x.__downcastCheck(a, b)) return !0; } else { if ('object' == typeof b && x.__isNativeObj(b) && a instanceof b) return !0; } else return !1; return (b == ew && null != a.__name__) || (b == bx && null != a.__ename__) ? !0 : null != a.__enum__ ? E[a.__enum__] == b : !1; } }; x.__downcastCheck = function (a, b) { return a instanceof b ? !0 : b.__isInterface__ ? x.__interfLoop(x.getClass(a), b) : !1; }; x.__implements = function (a, b) { return x.__interfLoop(x.getClass(a), b); }; x.__cast = function (a, b) { if (null == a || x.__instanceof(a, b)) return a; throw M.thrown('Cannot cast ' + B.string(a) + ' to ' + B.string(b)); }; x.__nativeClassName = function (a) { a = x.__toStr.call(a).slice(8, -1); return 'Object' == a || 'Function' == a || 'Math' == a || 'JSON' == a ? null : a; }; x.__isNativeObj = function (a) { return null != x.__nativeClassName(a); }; x.__resolveNativeClass = function (a) { return R[a]; }; var Xg = function () {}; h['js.Browser'] = Xg; Xg.__name__ = 'js.Browser'; Xg.__properties__ = { get_supported: 'get_supported' }; Xg.get_supported = function () { return 'undefined' != typeof window && 'undefined' != typeof window.location ? 'string' == typeof window.location.protocol : !1; }; Xg.getLocalStorage = function () { try { var a = window.localStorage; a.getItem(''); if (0 == a.length) { var b = '_hx_' + Math.random(); a.setItem(b, b); a.removeItem(b); } return a; } catch (c) { return (la.lastError = c), null; } }; var fw = function () {}; h['js.html._CanvasElement.CanvasUtil'] = fw; fw.__name__ = 'js.html._CanvasElement.CanvasUtil'; fw.getContextWebGL = function (a, b) { var c = a.getContext('webgl', b); if (null != c) return c; c = a.getContext('experimental-webgl', b); return null != c ? c : null; }; var gw = function () {}; h['js.lib._ArrayBuffer.ArrayBufferCompat'] = gw; gw.__name__ = 'js.lib._ArrayBuffer.ArrayBufferCompat'; gw.sliceImpl = function (a, b) { a = new Uint8Array(this, a, null == b ? null : b - a); b = new Uint8Array(a.byteLength); b.set(a); return b.buffer; }; var uo = function (a) { this.gameDeviceCache = new Za(); this.parent = a; this.nextUpdate = this.lastUpdate = this.currentUpdate = 0; this.framePeriod = -1; xc.init(); this.accelerometer = Pf.registerSensor(Qw.ACCELEROMETER, 0); }; h['lime._internal.backend.html5.HTML5Application'] = uo; uo.__name__ = 'lime._internal.backend.html5.HTML5Application'; uo.prototype = { accelerometer: null, currentUpdate: null, deltaTime: null, framePeriod: null, gameDeviceCache: null, hidden: null, lastUpdate: null, nextUpdate: null, parent: null, convertKeyCode: function (a) { if (65 <= a && 90 >= a) return a + 32; switch (a) { case 12: return 1073741980; case 16: return 1073742049; case 17: return 1073742048; case 18: return 1073742050; case 19: return 1073741896; case 20: return 1073741881; case 33: return 1073741899; case 34: return 1073741902; case 35: return 1073741901; case 36: return 1073741898; case 37: return 1073741904; case 38: return 1073741906; case 39: return 1073741903; case 40: return 1073741905; case 41: return 1073741943; case 43: return 1073741940; case 44: return 1073741894; case 45: return 1073741897; case 46: return 127; case 91: return 1073742051; case 92: return 1073742055; case 93: return 1073742055; case 95: return 1073742106; case 96: return 1073741922; case 97: return 1073741913; case 98: return 1073741914; case 99: return 1073741915; case 100: return 1073741916; case 101: return 1073741917; case 102: return 1073741918; case 103: return 1073741919; case 104: return 1073741920; case 105: return 1073741921; case 106: return 1073741909; case 107: return 1073741911; case 108: return 1073741923; case 109: return 1073741910; case 110: return 1073741923; case 111: return 1073741908; case 112: return 1073741882; case 113: return 1073741883; case 114: return 1073741884; case 115: return 1073741885; case 116: return 1073741886; case 117: return 1073741887; case 118: return 1073741888; case 119: return 1073741889; case 120: return 1073741890; case 121: return 1073741891; case 122: return 1073741892; case 123: return 1073741893; case 124: return 1073741928; case 125: return 1073741929; case 126: return 1073741930; case 127: return 1073741931; case 128: return 1073741932; case 129: return 1073741933; case 130: return 1073741934; case 131: return 1073741935; case 132: return 1073741936; case 133: return 1073741937; case 134: return 1073741938; case 135: return 1073741939; case 144: return 1073741907; case 145: return 1073741895; case 160: return 94; case 161: return 33; case 163: return 35; case 164: return 36; case 166: return 1073742094; case 167: return 1073742095; case 168: return 1073742097; case 169: return 41; case 170: return 42; case 171: return 96; case 172: return 1073741898; case 173: return 45; case 174: return 1073741953; case 175: return 1073741952; case 176: return 1073742082; case 177: return 1073742083; case 178: return 1073742084; case 179: return 1073742085; case 180: return 1073742089; case 181: return 1073742086; case 182: return 1073741953; case 183: return 1073741952; case 186: return 59; case 187: return 61; case 188: return 44; case 189: return 45; case 190: return 46; case 191: return 47; case 192: return 96; case 193: return 63; case 194: return 1073741923; case 219: return 91; case 220: return 92; case 221: return 93; case 222: return 39; case 223: return 96; case 224: return 1073742051; case 226: return 92; } return a; }, exec: function () { window.addEventListener('keydown', q(this, this.handleKeyEvent), !1); window.addEventListener('keyup', q(this, this.handleKeyEvent), !1); window.addEventListener('focus', q(this, this.handleWindowEvent), !1); window.addEventListener('blur', q(this, this.handleWindowEvent), !1); window.addEventListener('resize', q(this, this.handleWindowEvent), !1); window.addEventListener('beforeunload', q(this, this.handleWindowEvent), !1); window.addEventListener('devicemotion', q(this, this.handleSensorEvent), !1); CanvasRenderingContext2D.prototype.isPointInStroke || (CanvasRenderingContext2D.prototype.isPointInStroke = function (a, b, c) { return !1; }); CanvasRenderingContext2D.prototype.isPointInPath || (CanvasRenderingContext2D.prototype.isPointInPath = function (a, b, c) { return !1; }); 0 == 'performance' in window && (window.performance = {}); if (0 == 'now' in window.performance) { var a = Date.now(); performance.timing && performance.timing.navigationStart && (a = performance.timing.navigationStart); window.performance.now = function () { return Date.now() - a; }; } for ( var b = 0, c = ['ms', 'moz', 'webkit', 'o'], e = 0; e < c.length && !window.requestAnimationFrame; ++e ) (window.requestAnimationFrame = window[c[e] + 'RequestAnimationFrame']), (window.cancelAnimationFrame = window[c[e] + 'CancelAnimationFrame'] || window[c[e] + 'CancelRequestAnimationFrame']); window.requestAnimationFrame || (window.requestAnimationFrame = function (a, c) { var e = new Date().getTime(), f = Math.max(0, 16 - (e - b)); c = window.setTimeout(function () { a(e + f); }, f); b = e + f; return c; }); window.cancelAnimationFrame || (window.cancelAnimationFrame = function (a) { clearTimeout(a); }); window.requestAnimFrame = window.requestAnimationFrame; this.lastUpdate = new Date().getTime(); this.handleApplicationEvent(); return 0; }, exit: function () {}, handleApplicationEvent: function (a) { a = 0; for (var b = this.parent.__windows; a < b.length; ) { var c = b[a]; ++a; c.__backend.updateSize(); } this.updateGameDevices(); this.currentUpdate = new Date().getTime(); if (this.currentUpdate >= this.nextUpdate) { this.deltaTime = this.currentUpdate - this.lastUpdate; a = 0; for (b = this.parent.__windows; a < b.length; ) (c = b[a]), ++a, this.parent.onUpdate.dispatch(this.deltaTime | 0), null != c.context && c.onRender.dispatch(c.context); this.nextUpdate = 0 > this.framePeriod ? this.currentUpdate : this.currentUpdate - (this.currentUpdate % this.framePeriod) + this.framePeriod; this.lastUpdate = this.currentUpdate; } window.requestAnimationFrame(q(this, this.handleApplicationEvent)); }, handleKeyEvent: function (a) { if (null != this.parent.__window) { switch (a.keyCode) { case 32: case 37: case 38: case 39: case 40: a.preventDefault(); } var b = this.convertKeyCode(null != a.keyCode ? a.keyCode : a.which), c = (a.shiftKey ? 3 : 0) | (a.ctrlKey ? 192 : 0) | (a.altKey ? 768 : 0) | (a.metaKey ? 3072 : 0); 'keydown' == a.type ? (this.parent.__window.onKeyDown.dispatch(b, c), this.parent.__window.onKeyDown.canceled && a.cancelable && a.preventDefault()) : (this.parent.__window.onKeyUp.dispatch(b, c), this.parent.__window.onKeyUp.canceled && a.cancelable && a.preventDefault()); } }, handleSensorEvent: function (a) { this.accelerometer.onUpdate.dispatch( a.accelerationIncludingGravity.x, a.accelerationIncludingGravity.y, a.accelerationIncludingGravity.z ); }, handleWindowEvent: function (a) { if (null != this.parent.__window) switch (a.type) { case 'blur': this.hidden || (this.parent.__window.onFocusOut.dispatch(), this.parent.__window.onDeactivate.dispatch(), (this.hidden = !0)); break; case 'focus': this.hidden && (this.parent.__window.onFocusIn.dispatch(), this.parent.__window.onActivate.dispatch(), (this.hidden = !1)); break; case 'resize': this.parent.__window.__backend.handleResizeEvent(a); break; case 'visibilitychange': window.document.hidden ? this.hidden || (this.parent.__window.onFocusOut.dispatch(), this.parent.__window.onDeactivate.dispatch(), (this.hidden = !0)) : this.hidden && (this.parent.__window.onFocusIn.dispatch(), this.parent.__window.onActivate.dispatch(), (this.hidden = !1)); } }, updateGameDevices: function () { var a = zc.__getDeviceData(); if (null != a) for (var b, c, e, f, d, p = 0, l = a.length; p < l; ) if (((b = p++), (f = a[b]), null != f)) { if (!this.gameDeviceCache.h.hasOwnProperty(b)) { d = new vo(); d.id = b; d.connected = f.connected; c = 0; for (e = f.buttons.length; c < e; ) { var v = c++; d.buttons.push(f.buttons[v].value); } c = 0; for (e = f.axes.length; c < e; ) (v = c++), d.axes.push(f.axes[v]); 'standard' == f.mapping && (d.isGamepad = !0); this.gameDeviceCache.h[b] = d; f.connected && (zc.__connect(b), d.isGamepad && Jd.__connect(b)); } d = this.gameDeviceCache.h[b]; e = zc.devices.h[b]; c = Jd.devices.h[b]; if (f.connected) { for (var n = 0, k = f.buttons.length; n < k; ) { var m = n++; v = f.buttons[m].value; if (v != d.buttons[m]) { if (6 == m) e.onAxisMove.dispatch(f.axes.length, v), null != c && c.onAxisMove.dispatch(4, v); else if (7 == m) e.onAxisMove.dispatch(f.axes.length + 1, v), null != c && c.onAxisMove.dispatch(5, v); else if ( (0 < v ? e.onButtonDown.dispatch(m) : e.onButtonUp.dispatch(m), null != c) ) { switch (m) { case 0: b = 0; break; case 1: b = 1; break; case 2: b = 2; break; case 3: b = 3; break; case 4: b = 9; break; case 5: b = 10; break; case 8: b = 4; break; case 9: b = 6; break; case 10: b = 7; break; case 11: b = 8; break; case 12: b = 11; break; case 13: b = 12; break; case 14: b = 13; break; case 15: b = 14; break; case 16: b = 5; break; default: continue; } 0 < v ? c.onButtonDown.dispatch(b) : c.onButtonUp.dispatch(b); } d.buttons[m] = v; } } b = 0; for (v = f.axes.length; b < v; ) (n = b++), f.axes[n] != d.axes[n] && (e.onAxisMove.dispatch(n, f.axes[n]), null != c && c.onAxisMove.dispatch(n, f.axes[n]), (d.axes[n] = f.axes[n])); } else d.connected && ((d.connected = !1), zc.__disconnect(b), Jd.__disconnect(b)); } }, __class__: uo }; var vo = function () { this.connected = !0; this.buttons = []; this.axes = []; }; h['lime._internal.backend.html5.GameDeviceData'] = vo; vo.__name__ = 'lime._internal.backend.html5.GameDeviceData'; vo.prototype = { connected: null, id: null, isGamepad: null, buttons: null, axes: null, __class__: vo }; var wo = function (a) { this.parent = a; this.id = -1; this.gain = 1; }; h['lime._internal.backend.html5.HTML5AudioSource'] = wo; wo.__name__ = 'lime._internal.backend.html5.HTML5AudioSource'; wo.prototype = { completed: null, gain: null, id: null, length: null, loops: null, parent: null, playing: null, dispose: function () {}, init: function () {}, play: function () { if (!this.playing && null != this.parent.buffer && null != this.parent.buffer.__srcHowl) { this.playing = !0; var a = this.getCurrentTime(); this.completed = !1; var b = this.parent.buffer.__srcHowl._volume; this.parent.buffer.__srcHowl._volume = this.parent.get_gain(); this.id = this.parent.buffer.__srcHowl.play(); this.parent.buffer.__srcHowl._volume = b; null != this.parent.get_pan() && this.setPan(this.parent.get_pan()); null != this.parent.get_position() && this.setPosition(this.parent.get_position()); this.parent.buffer.__srcHowl.on('end', q(this, this.howl_onEnd), this.id); this.setCurrentTime(a); } }, pause: function () { this.playing = !1; null != this.parent.buffer && null != this.parent.buffer.__srcHowl && this.parent.buffer.__srcHowl.pause(this.id); }, stop: function () { this.playing = !1; null != this.parent.buffer && null != this.parent.buffer.__srcHowl && (this.parent.buffer.__srcHowl.stop(this.id), this.parent.buffer.__srcHowl.off('end', q(this, this.howl_onEnd), this.id)); }, update: function () {}, howl_onEnd: function () { this.playing = !1; 0 < this.loops ? (this.loops--, this.stop(), this.play()) : (null != this.parent.buffer && null != this.parent.buffer.__srcHowl && (this.parent.buffer.__srcHowl.stop(this.id), this.parent.buffer.__srcHowl.off('end', q(this, this.howl_onEnd), this.id)), (this.completed = !0), this.parent.onComplete.dispatch()); }, getCurrentTime: function () { if (-1 == this.id) return 0; if (this.completed) return this.getLength(); if (null != this.parent.buffer && null != this.parent.buffer.__srcHowl) { var a = ((1e3 * this.parent.buffer.__srcHowl.seek(this.id)) | 0) - this.parent.offset; return 0 > a ? 0 : a; } return 0; }, setCurrentTime: function (a) { if (null != this.parent.buffer && null != this.parent.buffer.__srcHowl) { var b = (a + this.parent.offset) / 1e3; 0 > b && (b = 0); this.parent.buffer.__srcHowl.seek(b, this.id); } return a; }, getGain: function () { return this.gain; }, setGain: function (a) { null != this.parent.buffer && null != this.parent.buffer.__srcHowl && -1 != this.id && this.parent.buffer.__srcHowl.volume(a, this.id); return (this.gain = a); }, getLength: function () { return 0 != this.length ? this.length : null != this.parent.buffer && null != this.parent.buffer.__srcHowl ? (1e3 * this.parent.buffer.__srcHowl.duration()) | 0 : 0; }, setLength: function (a) { return (this.length = a); }, getLoops: function () { return this.loops; }, setLoops: function (a) { return (this.loops = a); }, setPan: function (a) { null != this.parent.buffer.__srcHowl && null != this.parent.buffer.__srcHowl.stereo && this.parent.buffer.__srcHowl.stereo(a, this.id); return a; }, setPosition: function (a) { null != this.parent.buffer.__srcHowl && null != this.parent.buffer.__srcHowl.pos && this.parent.buffer.__srcHowl.pos(a.x, a.y, a.z, this.id); return a; }, __class__: wo }; var Ua = function () { this.validStatus0 = new Ja('Tizen', 'gi').match(window.navigator.userAgent); }; h['lime._internal.backend.html5.HTML5HTTPRequest'] = Ua; Ua.__name__ = 'lime._internal.backend.html5.HTML5HTTPRequest'; Ua.loadImage = function (a) { var b = new $d(); Ua.activeRequests < Ua.requestLimit ? (Ua.activeRequests++, Ua.__loadImage(a, b, 0)) : Ua.requestQueue.add({ instance: null, uri: a, promise: b, type: 'IMAGE', options: 0 }); return b.future; }; Ua.loadImageFromBytes = function (a, b) { var c = URL.createObjectURL(new Blob([a.b.bufferValue], { type: b })); return null != c ? ((a = new $d()), Ua.activeRequests < Ua.requestLimit ? (Ua.activeRequests++, Ua.__loadImage(c, a, 1)) : Ua.requestQueue.add({ instance: null, uri: c, promise: a, type: 'IMAGE', options: 1 }), a.future) : Ua.loadImage('data:' + b + ';base64,' + Qf.encode(a)); }; Ua.processQueue = function () { if (Ua.activeRequests < Ua.requestLimit && 0 < Ua.requestQueue.length) { Ua.activeRequests++; var a = Ua.requestQueue.pop(); switch (a.type) { case 'BINARY': a.instance.__loadData(a.uri, a.promise); break; case 'IMAGE': Ua.__loadImage(a.uri, a.promise, a.options); break; case 'TEXT': a.instance.__loadText(a.uri, a.promise); break; default: Ua.activeRequests--; } } }; Ua.__createBlobURIFromBytes = function (a, b) { return URL.createObjectURL(new Blob([a.b.bufferValue], { type: b })); }; Ua.__fixHostname = function (a) { return null == a ? '' : a; }; Ua.__fixPort = function (a, b) { if (null == a || '' == a) switch (b) { case 'ftp:': return '21'; case 'gopher:': return '70'; case 'http:': return '80'; case 'https:': return '443'; case 'ws:': return '80'; case 'wss:': return '443'; default: return ''; } return a; }; Ua.__fixProtocol = function (a) { return null == a || '' == a ? 'http:' : a; }; Ua.__isInMemoryURI = function (a) { return U.startsWith(a, 'data:') ? !0 : U.startsWith(a, 'blob:'); }; Ua.__isSameOrigin = function (a) { if (null == a || '' == a || Ua.__isInMemoryURI(a)) return !0; null == Ua.originElement && ((Ua.originElement = window.document.createElement('a')), (Ua.originHostname = Ua.__fixHostname(R.location.hostname)), (Ua.originProtocol = Ua.__fixProtocol(R.location.protocol)), (Ua.originPort = Ua.__fixPort(R.location.port, Ua.originProtocol))); var b = Ua.originElement; b.href = a; '' == b.hostname && (b.href = b.href); var c = Ua.__fixHostname(b.hostname); a = Ua.__fixProtocol(b.protocol); b = Ua.__fixPort(b.port, a); c = '' == c || c == Ua.originHostname; b = '' == b || b == Ua.originPort; return 'file:' != a && c ? b : !1; }; Ua.__loadImage = function (a, b, c) { var e = new Image(); Ua.__isSameOrigin(a) || (e.crossOrigin = 'Anonymous'); null == Ua.supportsImageProgress && (Ua.supportsImageProgress = 'onprogress' in e); if (Ua.supportsImageProgress || Ua.__isInMemoryURI(a)) e.addEventListener( 'load', function (f) { Ua.__revokeBlobURI(a, c); f = new Rf(null, e.width, e.height); f.__srcImage = e; Ua.activeRequests--; Ua.processQueue(); b.complete(new Fb(f)); }, !1 ), e.addEventListener( 'progress', function (a) { b.progress(a.loaded, a.total); }, !1 ), e.addEventListener( 'error', function (e) { Ua.__revokeBlobURI(a, c); Ua.activeRequests--; Ua.processQueue(); b.error(e.detail); }, !1 ), (e.src = a); else { var f = new XMLHttpRequest(); f.onload = function (a) { Ua.activeRequests--; Ua.processQueue(); new Fb().__fromBytes(hb.ofData(f.response), function (a) { b.complete(a); }); }; f.onerror = function (a) { b.error(a.message); }; f.onprogress = function (a) { a.lengthComputable && b.progress(a.loaded, a.total); }; f.open('GET', a, !0); f.responseType = 'arraybuffer'; f.overrideMimeType('text/plain; charset=x-user-defined'); f.send(null); } }; Ua.__revokeBlobURI = function (a, b) { 0 != (b & 1) && URL.revokeObjectURL(a); }; Ua.prototype = { binary: null, parent: null, request: null, validStatus0: null, cancel: function () { null != this.request && this.request.abort(); }, init: function (a) { this.parent = a; }, load: function (a, b, c) { this.request = new XMLHttpRequest(); 'POST' == this.parent.method ? this.request.upload.addEventListener('progress', b, !1) : this.request.addEventListener('progress', b, !1); this.request.onreadystatechange = c; b = ''; if (null == this.parent.data) { c = Object.keys(this.parent.formData.h); for (var e = c.length, f = 0; f < e; ) { var d = c[f++]; 0 < b.length && (b += '&'); var p = this.parent.formData.h[d]; if (-1 < d.indexOf('[]') && p instanceof Array) { var l = []; for (p = O(p); p.hasNext(); ) { var v = p.next(); l.push(encodeURIComponent(v)); } l = l.join('&' + d + '='); b += encodeURIComponent(d) + '=' + l; } else (l = encodeURIComponent(d) + '='), (d = B.string(p)), (b += l + encodeURIComponent(d)); } 'GET' == this.parent.method && '' != b && ((a = -1 < a.indexOf('?') ? a + ('&' + b) : a + ('?' + b)), (b = '')); } this.request.open(B.string(this.parent.method), a, !0); 0 < this.parent.timeout && (this.request.timeout = this.parent.timeout); this.binary && (this.request.responseType = 'arraybuffer'); a = null; l = 0; for (c = this.parent.headers; l < c.length; ) (e = c[l]), ++l, 'Content-Type' == e.name ? (a = e.value) : this.request.setRequestHeader(e.name, e.value); null != this.parent.contentType && (a = this.parent.contentType); null == a && (null != this.parent.data ? (a = 'application/octet-stream') : '' != b && (a = 'application/x-www-form-urlencoded')); null != a && this.request.setRequestHeader('Content-Type', a); this.parent.withCredentials && (this.request.withCredentials = !0); null != this.parent.data ? this.request.send(this.parent.data.b.bufferValue) : this.request.send(b); }, loadData: function (a) { var b = new $d(); Ua.activeRequests < Ua.requestLimit ? (Ua.activeRequests++, this.__loadData(a, b)) : Ua.requestQueue.add({ instance: this, uri: a, promise: b, type: 'BINARY', options: 0 }); return b.future; }, loadText: function (a) { var b = new $d(); Ua.activeRequests < Ua.requestLimit ? (Ua.activeRequests++, this.__loadText(a, b)) : Ua.requestQueue.add({ instance: this, uri: a, promise: b, type: 'TEXT', options: 0 }); return b.future; }, processResponse: function () { if (this.parent.enableResponseHeaders) { this.parent.responseHeaders = []; for ( var a, b, c = 0, e = this.request.getAllResponseHeaders().split('\n'); c < e.length; ) (b = e[c]), ++c, (a = U.trim(A.substr(b, 0, b.indexOf(':')))), (b = U.trim(A.substr(b, b.indexOf(':') + 1, null))), '' != a && this.parent.responseHeaders.push(new im(a, b)); } this.parent.responseStatus = this.request.status; }, __loadData: function (a, b) { var c = this; this.binary = !0; this.load( a, function (a) { b.progress(a.loaded, a.total); }, function (a) { 4 == c.request.readyState && (null != c.request.status && ((200 <= c.request.status && 400 > c.request.status) || (c.validStatus0 && 0 == c.request.status)) ? ((a = null), '' == c.request.responseType ? null != c.request.responseText && (a = hb.ofString(c.request.responseText)) : null != c.request.response && (a = hb.ofData(c.request.response)), c.processResponse(), b.complete(a)) : (c.processResponse(), b.error(c.request.status)), (c.request = null), Ua.activeRequests--, Ua.processQueue()); } ); }, __loadText: function (a, b) { var c = this; this.binary = !1; this.load( a, function (a) { b.progress(a.loaded, a.total); }, function (a) { 4 == c.request.readyState && (null != c.request.status && ((200 <= c.request.status && 400 >= c.request.status) || (c.validStatus0 && 0 == c.request.status)) ? (c.processResponse(), b.complete(c.request.responseText)) : (c.processResponse(), b.error(c.request.status)), (c.request = null), Ua.activeRequests--, Ua.processQueue()); } ); }, __class__: Ua }; var pb = function (a) { this.inputing = !1; this.unusedTouchesPool = new K(); this.scale = 1; this.currentTouches = new Za(); this.parent = a; this.cursor = nc.DEFAULT; this.cacheMouseY = this.cacheMouseX = 0; var b = a.__attributes; Object.prototype.hasOwnProperty.call(b, 'context') || (b.context = {}); this.renderType = b.context.type; Object.prototype.hasOwnProperty.call(b, 'element') && (a.element = b.element); var c = a.element; Object.prototype.hasOwnProperty.call(b, 'allowHighDPI') && b.allowHighDPI && 'dom' != this.renderType && (this.scale = window.devicePixelRatio); a.__scale = this.scale; this.setWidth = Object.prototype.hasOwnProperty.call(b, 'width') ? b.width : 0; this.setHeight = Object.prototype.hasOwnProperty.call(b, 'height') ? b.height : 0; a.__width = this.setWidth; a.__height = this.setHeight; a.id = pb.windowID++; c instanceof HTMLCanvasElement ? (this.canvas = c) : 'dom' == this.renderType ? (this.div = window.document.createElement('div')) : (this.canvas = window.document.createElement('canvas')); if (null != this.canvas) { var e = this.canvas.style; e.setProperty('-webkit-transform', 'translateZ(0)', null); e.setProperty('transform', 'translateZ(0)', null); } else null != this.div && ((e = this.div.style), e.setProperty('-webkit-transform', 'translate3D(0,0,0)', null), e.setProperty('transform', 'translate3D(0,0,0)', null), (e.position = 'relative'), (e.overflow = 'hidden'), e.setProperty('-webkit-user-select', 'none', null), e.setProperty('-moz-user-select', 'none', null), e.setProperty('-ms-user-select', 'none', null), e.setProperty('-o-user-select', 'none', null)); 0 == a.__width && 0 == a.__height && (null != c ? ((a.__width = c.clientWidth), (a.__height = c.clientHeight)) : ((a.__width = window.innerWidth), (a.__height = window.innerHeight)), (this.cacheElementWidth = a.__width), (this.cacheElementHeight = a.__height), (this.resizeElement = !0)); null != this.canvas ? ((this.canvas.width = Math.round(a.__width * this.scale)), (this.canvas.height = Math.round(a.__height * this.scale)), (this.canvas.style.width = a.__width + 'px'), (this.canvas.style.height = a.__height + 'px')) : ((this.div.style.width = a.__width + 'px'), (this.div.style.height = a.__height + 'px')); if ( (Object.prototype.hasOwnProperty.call(b, 'resizable') && b.resizable) || (!Object.prototype.hasOwnProperty.call(b, 'width') && 0 == this.setWidth && 0 == this.setHeight) ) a.__resizable = !0; this.updateSize(); if (null != c) { null != this.canvas ? c != this.canvas && c.appendChild(this.canvas) : c.appendChild(this.div); b = 'mousedown mouseenter mouseleave mousemove mouseup wheel'.split(' '); for (e = 0; e < b.length; ) { var f = b[e]; ++e; c.addEventListener(f, q(this, this.handleMouseEvent), !0); } c.addEventListener('contextmenu', q(this, this.handleContextMenuEvent), !0); c.addEventListener('dragstart', q(this, this.handleDragEvent), !0); c.addEventListener('dragover', q(this, this.handleDragEvent), !0); c.addEventListener('drop', q(this, this.handleDragEvent), !0); c.addEventListener('touchstart', q(this, this.handleTouchEvent), !0); c.addEventListener('touchmove', q(this, this.handleTouchEvent), !0); c.addEventListener('touchend', q(this, this.handleTouchEvent), !0); c.addEventListener('touchcancel', q(this, this.handleTouchEvent), !0); c.addEventListener('gamepadconnected', q(this, this.handleGamepadEvent), !0); c.addEventListener('gamepaddisconnected', q(this, this.handleGamepadEvent), !0); } this.createContext(); 'webgl' == a.context.type && (this.canvas.addEventListener('webglcontextlost', q(this, this.handleContextEvent), !1), this.canvas.addEventListener( 'webglcontextrestored', q(this, this.handleContextEvent), !1 )); }; h['lime._internal.backend.html5.HTML5Window'] = pb; pb.__name__ = 'lime._internal.backend.html5.HTML5Window'; pb.prototype = { canvas: null, div: null, cacheElementHeight: null, cacheElementWidth: null, cacheMouseX: null, cacheMouseY: null, cursor: null, currentTouches: null, isFullscreen: null, parent: null, primaryTouch: null, renderType: null, requestedFullscreen: null, resizeElement: null, scale: null, setHeight: null, setWidth: null, textInputEnabled: null, unusedTouchesPool: null, alert: function (a, b) { null != a && window.alert(B.string(a)); }, close: function () { this.parent.application.__removeWindow(this.parent); }, createContext: function () { var a = new xo(), b = this.parent.__attributes.context; a.window = this.parent; a.attributes = b; if (null != this.div) (a.dom = this.div), (a.type = 'dom'), (a.version = ''); else if (null != this.canvas) { var c = null, e = 'opengl' == this.renderType || 'opengles' == this.renderType || 'webgl' == this.renderType, f = !Object.prototype.hasOwnProperty.call(b, 'version') || '1' != b.version, d = !1; if (e) { e = Object.prototype.hasOwnProperty.call(b, 'background') && null == b.background; var p = Object.prototype.hasOwnProperty.call(b, 'colorDepth') ? b.colorDepth : 16, l = Object.prototype.hasOwnProperty.call(b, 'antialiasing') && 0 < b.antialiasing, v = Object.prototype.hasOwnProperty.call(b, 'depth') ? b.depth : !0; b = Object.prototype.hasOwnProperty.call(b, 'stencil') && b.stencil; b = { alpha: e || 16 < p, antialias: l, depth: v, premultipliedAlpha: !0, stencil: b, preserveDrawingBuffer: !1, failIfMajorPerformanceCaveat: !1 }; e = ['webgl', 'experimental-webgl']; f && e.unshift('webgl2'); for ( f = 0; f < e.length && ((p = e[f]), ++f, (c = this.canvas.getContext(p, b)), null != c && 'webgl2' == p && (d = !0), null == c); ); } null == c ? ((a.canvas2D = this.canvas.getContext('2d')), (a.type = 'canvas'), (a.version = '')) : ((a.webgl = bc.fromWebGL2RenderContext(c)), d && (a.webgl2 = c), null == t.context && ((t.context = c), (t.type = 'webgl'), (t.version = d ? 2 : 1)), (a.type = 'webgl'), (a.version = d ? '2' : '1')); } this.parent.context = a; }, focus: function () {}, getCursor: function () { return this.cursor; }, getDisplay: function () { return Wa.getDisplay(0); }, getDisplayMode: function () { return Wa.getDisplay(0).currentMode; }, getFrameRate: function () { return null == this.parent.application ? 0 : 0 > this.parent.application.__backend.framePeriod ? 60 : 1e3 == this.parent.application.__backend.framePeriod ? 0 : 1e3 / this.parent.application.__backend.framePeriod; }, getMouseLock: function () { return !1; }, getTextInputEnabled: function () { return this.textInputEnabled; }, handleContextEvent: function (a) { switch (a.type) { case 'webglcontextlost': a.cancelable && a.preventDefault(); this.parent.context = null; this.parent.onRenderContextLost.dispatch(); break; case 'webglcontextrestored': this.createContext(), this.parent.onRenderContextRestored.dispatch(this.parent.context); } }, handleContextMenuEvent: function (a) { (this.parent.onMouseUp.canceled || this.parent.onMouseDown.canceled) && a.cancelable && a.preventDefault(); }, handleCutOrCopyEvent: function (a) { a.clipboardData.setData('text/plain', je.get_text()); a.cancelable && a.preventDefault(); }, handleDragEvent: function (a) { switch (a.type) { case 'dragover': return a.preventDefault(), !1; case 'dragstart': if ('img' == x.__cast(a.target, HTMLElement).nodeName.toLowerCase() && a.cancelable) return a.preventDefault(), !1; break; case 'drop': if (null != a.dataTransfer && 0 < a.dataTransfer.files.length) return ( this.parent.onDropFile.dispatch(a.dataTransfer.files), a.preventDefault(), !1 ); } return !0; }, handleFocusEvent: function (a) { var b = this; this.textInputEnabled && (null == a.relatedTarget || this.isDescendent(a.relatedTarget)) && Qe.delay(function () { b.textInputEnabled && pb.textInput.focus(); }, 20); }, handleFullscreenEvent: function (a) { if ( null != (document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement) ) (this.isFullscreen = !0), (this.parent.__fullscreen = !0), this.requestedFullscreen && ((this.requestedFullscreen = !1), this.parent.onFullscreen.dispatch()); else { this.isFullscreen = !1; this.parent.__fullscreen = !1; this.parent.onRestore.dispatch(); a = [ 'fullscreenchange', 'mozfullscreenchange', 'webkitfullscreenchange', 'MSFullscreenChange' ]; for ( var b = [ 'fullscreenerror', 'mozfullscreenerror', 'webkitfullscreenerror', 'MSFullscreenError' ], c = 0, e = a.length; c < e; ) { var f = c++; window.document.removeEventListener(a[f], q(this, this.handleFullscreenEvent), !1); window.document.removeEventListener(b[f], q(this, this.handleFullscreenEvent), !1); } } }, handleGamepadEvent: function (a) { switch (a.type) { case 'gamepadconnected': zc.__connect(a.gamepad.index); 'standard' == a.gamepad.mapping && Jd.__connect(a.gamepad.index); break; case 'gamepaddisconnected': zc.__disconnect(a.gamepad.index), Jd.__disconnect(a.gamepad.index); } }, handleInputEvent: function (a) { this.inputing || pb.textInput.value == pb.dummyCharacter || ((a = U.replace(pb.textInput.value, pb.dummyCharacter, '')), 0 < a.length && this.parent.onTextInput.dispatch(a), (pb.textInput.value = pb.dummyCharacter)); }, handleMouseEvent: function (a) { if ('wheel' != a.type) { if (null != this.parent.element) if (null != this.canvas) { var b = this.canvas.getBoundingClientRect(); var c = (this.parent.__width / b.width) * (a.clientX - b.left); b = (this.parent.__height / b.height) * (a.clientY - b.top); } else null != this.div ? ((b = this.div.getBoundingClientRect()), (c = a.clientX - b.left), (b = a.clientY - b.top)) : ((b = this.parent.element.getBoundingClientRect()), (c = (this.parent.__width / b.width) * (a.clientX - b.left)), (b = (this.parent.__height / b.height) * (a.clientY - b.top))); else (c = a.clientX), (b = a.clientY); switch (a.type) { case 'mousedown': a.currentTarget == this.parent.element && window.addEventListener('mouseup', q(this, this.handleMouseEvent)); this.parent.onMouseDown.dispatch(c, b, a.button); this.parent.onMouseDown.canceled && a.cancelable && a.preventDefault(); break; case 'mouseenter': a.target == this.parent.element && (this.parent.onEnter.dispatch(), this.parent.onEnter.canceled && a.cancelable && a.preventDefault()); break; case 'mouseleave': a.target == this.parent.element && (this.parent.onLeave.dispatch(), this.parent.onLeave.canceled && a.cancelable && a.preventDefault()); break; case 'mousemove': if (c != this.cacheMouseX || b != this.cacheMouseY) this.parent.onMouseMove.dispatch(c, b), this.parent.onMouseMoveRelative.dispatch( c - this.cacheMouseX, b - this.cacheMouseY ), (this.parent.onMouseMove.canceled || this.parent.onMouseMoveRelative.canceled) && a.cancelable && a.preventDefault(); break; case 'mouseup': window.removeEventListener('mouseup', q(this, this.handleMouseEvent)), a.currentTarget == this.parent.element && a.stopPropagation(), this.parent.onMouseUp.dispatch(c, b, a.button), this.parent.onMouseUp.canceled && a.cancelable && a.preventDefault(); } this.cacheMouseX = c; this.cacheMouseY = b; } else { switch (a.deltaMode) { case 0: c = Bh.PIXELS; break; case 1: c = Bh.LINES; break; case 2: c = Bh.PAGES; break; default: c = Bh.UNKNOWN; } this.parent.onMouseWheel.dispatch(a.deltaX, -a.deltaY, c); this.parent.onMouseWheel.canceled && a.cancelable && a.preventDefault(); } }, handlePasteEvent: function (a) { if (-1 < a.clipboardData.types.indexOf('text/plain')) { var b = a.clipboardData.getData('text/plain'); je.set_text(b); this.textInputEnabled && this.parent.onTextInput.dispatch(b); a.cancelable && a.preventDefault(); } }, handleResizeEvent: function (a) { this.primaryTouch = null; this.updateSize(); }, handleTouchEvent: function (a) { a.cancelable && a.preventDefault(); var b = null; null != this.parent.element && (b = null != this.canvas ? this.canvas.getBoundingClientRect() : null != this.div ? this.div.getBoundingClientRect() : this.parent.element.getBoundingClientRect()); var c = this.setWidth, e = this.setHeight; if (0 == c || 0 == e) null != b ? ((c = b.width), (e = b.height)) : (e = c = 1); for (var f, d, p, l, v, n = 0, k = a.changedTouches; n < k.length; ) { var m = k[n]; ++n; null != b ? ((d = (c / b.width) * (m.clientX - b.left)), (p = (e / b.height) * (m.clientY - b.top))) : ((d = m.clientX), (p = m.clientY)); if ('touchstart' == a.type) (f = this.unusedTouchesPool.pop()), null == f ? (f = new nd(d / c, p / e, m.identifier, 0, 0, m.force, this.parent.id)) : ((f.x = d / c), (f.y = p / e), (f.id = m.identifier), (f.dx = 0), (f.dy = 0), (f.pressure = m.force), (f.device = this.parent.id)), (this.currentTouches.h[m.identifier] = f), nd.onStart.dispatch(f), null == this.primaryTouch && (this.primaryTouch = f), f == this.primaryTouch && this.parent.onMouseDown.dispatch(d, p, 0); else if (((f = this.currentTouches.h[m.identifier]), null != f)) switch ( ((l = f.x), (v = f.y), (f.x = d / c), (f.y = p / e), (f.dx = f.x - l), (f.dy = f.y - v), (f.pressure = m.force), a.type) ) { case 'touchcancel': nd.onCancel.dispatch(f); this.currentTouches.remove(m.identifier); this.unusedTouchesPool.add(f); f == this.primaryTouch && (this.primaryTouch = null); break; case 'touchend': nd.onEnd.dispatch(f); this.currentTouches.remove(m.identifier); this.unusedTouchesPool.add(f); f == this.primaryTouch && (this.parent.onMouseUp.dispatch(d, p, 0), (this.primaryTouch = null)); break; case 'touchmove': nd.onMove.dispatch(f), f == this.primaryTouch && this.parent.onMouseMove.dispatch(d, p); } } }, isDescendent: function (a) { if (a == this.parent.element) return !0; for (; null != a; ) { if (a.parentNode == this.parent.element) return !0; a = a.parentNode; } return !1; }, move: function (a, b) {}, readPixels: function (a) { if (null != this.canvas) { var b = new Qd(0, 0, this.canvas.width, this.canvas.height); null == a ? (a = b) : a.intersection(b, a); if (0 < a.width && 0 < a.height) return ( (b = window.document.createElement('canvas')), (b.width = a.width | 0), (b.height = a.height | 0), b.getContext('2d').drawImage(this.canvas, -a.x, -a.y), Fb.fromCanvas(b) ); } return null; }, resize: function (a, b) {}, setBorderless: function (a) { return a; }, setClipboard: function (a) { null == pb.textArea && ((pb.textArea = window.document.createElement('textarea')), (pb.textArea.style.height = '0px'), (pb.textArea.style.left = '-100px'), (pb.textArea.style.opacity = '0'), (pb.textArea.style.position = 'fixed'), (pb.textArea.style.top = '-100px'), (pb.textArea.style.width = '0px'), window.document.body.appendChild(pb.textArea)); pb.textArea.value = a; pb.textArea.focus(); pb.textArea.select(); window.document.queryCommandEnabled('copy') && window.document.execCommand('copy'); }, setCursor: function (a) { if (this.cursor != a) { if (null == a) this.parent.element.style.cursor = 'none'; else { switch (a._hx_index) { case 0: var b = 'default'; break; case 1: b = 'crosshair'; break; case 3: b = 'move'; break; case 4: b = 'pointer'; break; case 5: b = 'nesw-resize'; break; case 6: b = 'ns-resize'; break; case 7: b = 'nwse-resize'; break; case 8: b = 'ew-resize'; break; case 9: b = 'text'; break; case 10: b = 'wait'; break; case 11: b = 'wait'; break; default: b = 'auto'; } this.parent.element.style.cursor = b; } this.cursor = a; } return this.cursor; }, setDisplayMode: function (a) { return a; }, setFrameRate: function (a) { null != this.parent.application && (60 <= a ? this.parent == this.parent.application.__window && (this.parent.application.__backend.framePeriod = -1) : 0 < a ? this.parent == this.parent.application.__window && (this.parent.application.__backend.framePeriod = 1e3 / a) : this.parent == this.parent.application.__window && (this.parent.application.__backend.framePeriod = 1e3)); return a; }, setFullscreen: function (a) { a ? this.requestedFullscreen || this.isFullscreen || ((this.requestedFullscreen = !0), ((I = this.parent.element), q(I, I.requestFullscreen)) ? (document.addEventListener( 'fullscreenchange', q(this, this.handleFullscreenEvent), !1 ), document.addEventListener( 'fullscreenerror', q(this, this.handleFullscreenEvent), !1 ), this.parent.element.requestFullscreen()) : this.parent.element.mozRequestFullScreen ? (document.addEventListener( 'mozfullscreenchange', q(this, this.handleFullscreenEvent), !1 ), document.addEventListener( 'mozfullscreenerror', q(this, this.handleFullscreenEvent), !1 ), this.parent.element.mozRequestFullScreen()) : this.parent.element.webkitRequestFullscreen ? (document.addEventListener( 'webkitfullscreenchange', q(this, this.handleFullscreenEvent), !1 ), document.addEventListener( 'webkitfullscreenerror', q(this, this.handleFullscreenEvent), !1 ), this.parent.element.webkitRequestFullscreen()) : this.parent.element.msRequestFullscreen && (document.addEventListener( 'MSFullscreenChange', q(this, this.handleFullscreenEvent), !1 ), document.addEventListener( 'MSFullscreenError', q(this, this.handleFullscreenEvent), !1 ), this.parent.element.msRequestFullscreen())) : this.isFullscreen && ((this.requestedFullscreen = !1), document.exitFullscreen ? document.exitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitExitFullscreen ? document.webkitExitFullscreen() : document.msExitFullscreen && document.msExitFullscreen()); return a; }, setIcon: function (a) { Aa.convertToCanvas(a); var b = window.document.querySelector("link[rel*='icon']"); null == b && (b = window.document.createElement('link')); b.type = 'image/x-icon'; b.rel = 'shortcut icon'; b.href = a.buffer.get_src().toDataURL('image/x-icon'); window.document.getElementsByTagName('head')[0].appendChild(b); }, setMaximized: function (a) { return !1; }, setMinimized: function (a) { return !1; }, setMouseLock: function (a) {}, setResizable: function (a) { return a; }, setTextInputEnabled: function (a) { a ? (null == pb.textInput && ((pb.textInput = window.document.createElement('input')), (pb.textInput.type = 'text'), (pb.textInput.style.position = 'absolute'), (pb.textInput.style.opacity = '0'), (pb.textInput.style.color = 'transparent'), (pb.textInput.value = pb.dummyCharacter), (pb.textInput.autocapitalize = 'off'), (pb.textInput.autocorrect = 'off'), (pb.textInput.autocomplete = 'off'), (pb.textInput.style.left = '0px'), (pb.textInput.style.top = '50%'), new Ja('(iPad|iPhone|iPod).*OS 8_', 'gi').match(window.navigator.userAgent) ? ((pb.textInput.style.fontSize = '0px'), (pb.textInput.style.width = '0px'), (pb.textInput.style.height = '0px')) : ((pb.textInput.style.width = '1px'), (pb.textInput.style.height = '1px')), (pb.textInput.style.pointerEvents = 'none'), (pb.textInput.style.zIndex = '-10000000')), null == pb.textInput.parentNode && this.parent.element.appendChild(pb.textInput), this.textInputEnabled || (pb.textInput.addEventListener('input', q(this, this.handleInputEvent), !0), pb.textInput.addEventListener('blur', q(this, this.handleFocusEvent), !0), pb.textInput.addEventListener('cut', q(this, this.handleCutOrCopyEvent), !0), pb.textInput.addEventListener('copy', q(this, this.handleCutOrCopyEvent), !0), pb.textInput.addEventListener('paste', q(this, this.handlePasteEvent), !0), pb.textInput.addEventListener( 'compositionstart', q(this, this.handleCompositionstartEvent), !0 ), pb.textInput.addEventListener( 'compositionend', q(this, this.handleCompositionendEvent), !0 )), pb.textInput.focus(), pb.textInput.select()) : null != pb.textInput && (pb.textInput.removeEventListener('input', q(this, this.handleInputEvent), !0), pb.textInput.removeEventListener('blur', q(this, this.handleFocusEvent), !0), pb.textInput.removeEventListener('cut', q(this, this.handleCutOrCopyEvent), !0), pb.textInput.removeEventListener('copy', q(this, this.handleCutOrCopyEvent), !0), pb.textInput.removeEventListener('paste', q(this, this.handlePasteEvent), !0), pb.textInput.removeEventListener( 'compositionstart', q(this, this.handleCompositionstartEvent), !0 ), pb.textInput.removeEventListener( 'compositionend', q(this, this.handleCompositionendEvent), !0 ), pb.textInput.blur()); return (this.textInputEnabled = a); }, inputing: null, handleCompositionstartEvent: function (a) { this.inputing = !0; }, handleCompositionendEvent: function (a) { this.inputing = !1; this.handleInputEvent(a); }, setTitle: function (a) { null != a && (window.document.title = a); return a; }, updateSize: function () { if (this.parent.__resizable) { if (null != this.parent.element) { var a = this.parent.element.clientWidth; var b = this.parent.element.clientHeight; } else (a = window.innerWidth), (b = window.innerHeight); if (a != this.cacheElementWidth || b != this.cacheElementHeight) { this.cacheElementWidth = a; this.cacheElementHeight = b; var c = this.resizeElement || (0 == this.setWidth && 0 == this.setHeight); if (null != this.parent.element && (null == this.div || (null != this.div && c))) if (c) { if (this.parent.__width != a || this.parent.__height != b) (this.parent.__width = a), (this.parent.__height = b), null != this.canvas ? this.parent.element != this.canvas && ((this.canvas.width = Math.round(a * this.scale)), (this.canvas.height = Math.round(b * this.scale)), (this.canvas.style.width = a + 'px'), (this.canvas.style.height = b + 'px')) : ((this.div.style.width = a + 'px'), (this.div.style.height = b + 'px')), this.parent.onResize.dispatch(a, b); } else { c = 0 != this.setWidth ? a / this.setWidth : 1; var e = 0 != this.setHeight ? b / this.setHeight : 1, f = a, d = b, p = 0, l = 0; c < e ? ((d = Math.floor(this.setHeight * c)), (l = Math.floor((b - d) / 2))) : ((f = Math.floor(this.setWidth * e)), (p = Math.floor((a - f) / 2))); null != this.canvas ? this.parent.element != this.canvas && ((this.canvas.style.width = f + 'px'), (this.canvas.style.height = d + 'px'), (this.canvas.style.marginLeft = p + 'px'), (this.canvas.style.marginTop = l + 'px')) : ((this.div.style.width = f + 'px'), (this.div.style.height = d + 'px'), (this.div.style.marginLeft = p + 'px'), (this.div.style.marginTop = l + 'px')); } } } }, warpMouse: function (a, b) {}, __class__: pb }; var cx = function () {}; h['lime._internal.backend.native.NativeCFFI'] = cx; cx.__name__ = 'lime._internal.backend.native.NativeCFFI'; var hw = function () {}; h['lime._internal.format.BMP'] = hw; hw.__name__ = 'lime._internal.format.html'; hw.encode = function (a, b) { if (a.get_premultiplied() || 0 != a.get_format()) (a = a.clone()), a.set_premultiplied(!1), a.set_format(0); null == b && (b = Yh.RGB); var c = 14, e = 40, f = a.width * a.height * 4; if (null != b) switch (b._hx_index) { case 0: f = (3 * a.width + ((3 * a.width) % 4)) * a.height; break; case 1: e = 108; break; case 2: (c = 0), (f += a.width * a.height); } var d = new hb(new ArrayBuffer(c + e + f)), p = 0; 0 < c && ((d.b[p++] = 66), (d.b[p++] = 77), d.setInt32(p, d.length), (p += 4), d.setUInt16(p, 0), (p += 2), d.setUInt16(p, 0), (p += 2), d.setInt32(p, c + e), (p += 4)); d.setInt32(p, e); p += 4; d.setInt32(p, a.width); p += 4; d.setInt32(p, b == Yh.ICO ? 2 * a.height : a.height); p += 4; d.setUInt16(p, 1); p += 2; d.setUInt16(p, b == Yh.RGB ? 24 : 32); p += 2; d.setInt32(p, b == Yh.BITFIELD ? 3 : 0); p += 4; d.setInt32(p, f); p += 4; d.setInt32(p, 11824); p += 4; d.setInt32(p, 11824); p += 4; d.setInt32(p, 0); p += 4; d.setInt32(p, 0); p += 4; if (b == Yh.BITFIELD) for ( d.setInt32(p, 16711680), p += 4, d.setInt32(p, 65280), p += 4, d.setInt32(p, 255), p += 4, d.setInt32(p, -16777216), p += 4, d.b[p++] = 32, d.b[p++] = 110, d.b[p++] = 105, d.b[p++] = 87, c = 0; 48 > c; ) c++, (d.b[p++] = 0); e = a.getPixels(new Qd(0, 0, a.width, a.height), 1); if (null != b) switch (b._hx_index) { case 0: c = 0; for (b = a.height; c < b; ) { var l = c++; l = 4 * (a.height - 1 - l) * a.width; for (var v = 0, n = a.width; v < n; ) { v++; l++; var k = e.b[l++]; var m = e.b[l++]; var h = e.b[l++]; d.b[p++] = h & 255; d.b[p++] = m & 255; d.b[p++] = k & 255; } f = 0; for (var t = (3 * a.width) % 4; f < t; ) f++, (d.b[p++] = 0); } break; case 1: c = 0; for (b = a.height; c < b; ) for (l = c++, l = 4 * (a.height - 1 - l) * a.width, v = 0, n = a.width; v < n; ) { v++; var u = e.b[l++]; k = e.b[l++]; m = e.b[l++]; h = e.b[l++]; d.b[p++] = h & 255; d.b[p++] = m & 255; d.b[p++] = k & 255; d.b[p++] = u & 255; } break; case 2: f = new hb(new ArrayBuffer(a.width * a.height)); c = t = 0; for (b = a.height; c < b; ) for (l = c++, l = 4 * (a.height - 1 - l) * a.width, v = 0, n = a.width; v < n; ) v++, (u = e.b[l++]), (k = e.b[l++]), (m = e.b[l++]), (h = e.b[l++]), (d.b[p++] = h & 255), (d.b[p++] = m & 255), (d.b[p++] = k & 255), (d.b[p++] = u & 255), (f.b[t++] = 0); d.blit(p, f, 0, a.width * a.height); } return d; }; var Yh = (E['lime._internal.format.BMPType'] = { __ename__: 'lime._internal.format.BMPType', __constructs__: null, RGB: { _hx_name: 'RGB', _hx_index: 0, __enum__: 'lime._internal.format.BMPType', toString: w }, BITFIELD: { _hx_name: 'BITFIELD', _hx_index: 1, __enum__: 'lime._internal.format.BMPType', toString: w }, ICO: { _hx_name: 'ICO', _hx_index: 2, __enum__: 'lime._internal.format.BMPType', toString: w } }); Yh.__constructs__ = [Yh.RGB, Yh.BITFIELD, Yh.ICO]; var Qf = function () {}; h['lime._internal.format.Base64'] = Qf; Qf.__name__ = 'lime._internal.format.Base64'; Qf.decode = function (a) { return zh.decode(a); }; Qf.encode = function (a) { var b = [], c = Qf.DICTIONARY, e = Qf.EXTENDED_DICTIONARY, f = a.length, d = Math.floor(f / 3), p = 2 * d; b.length = 2 * Math.ceil(f / 3); for (var l = 0, v = 0, n; v < p; ) (n = (a.b[l] << 16) | (a.b[l + 1] << 8) | a.b[l + 2]), (b[v] = e[(n >> 12) & 4095]), (b[v + 1] = e[n & 4095]), (l += 3), (v += 2); switch (f - 3 * d) { case 1: n = a.b[l] << 16; b[v] = e[(n >> 12) & 4095]; b[v + 1] = '=='; break; case 2: (n = (a.b[l] << 16) | (a.b[l + 1] << 8)), (b[v] = e[(n >> 12) & 4095]), (b[v + 1] = c[(n >> 6) & 63] + '='); } return b.join(''); }; var jm = function () {}; h['lime._internal.format.Deflate'] = jm; jm.__name__ = 'lime._internal.format.Deflate'; jm.compress = function (a) { a = pako.deflateRaw(a.b.bufferValue); return hb.ofData(a); }; jm.decompress = function (a) { a = pako.inflateRaw(a.b.bufferValue); return hb.ofData(a); }; var km = function () {}; h['lime._internal.format.GZip'] = km; km.__name__ = 'lime._internal.format.GZip'; km.compress = function (a) { a = pako.gzip(a.b.bufferValue); return hb.ofData(a); }; km.decompress = function (a) { a = pako.ungzip(a.b.bufferValue); return hb.ofData(a); }; var lm = function () {}; h['lime._internal.format.JPEG'] = lm; lm.__name__ = 'lime._internal.format.JPEG'; lm.decodeBytes = function (a, b) { return null; }; lm.decodeFile = function (a, b) { return null; }; lm.encode = function (a, b) { if (a.get_premultiplied() || 0 != a.get_format()) (a = a.clone()), a.set_premultiplied(!1), a.set_format(0); Aa.convertToCanvas(a, !1); if (null != a.buffer.__srcCanvas) { a = a.buffer.__srcCanvas.toDataURL('image/jpeg', b / 100); a = window.atob(a.split(';base64,')[1]); b = new hb(new ArrayBuffer(a.length)); for (var c = 0, e = a.length; c < e; ) { var f = c++; b.b[f] = A.cca(a, f) & 255; } return b; } return null; }; var mm = function () {}; h['lime._internal.format.LZMA'] = mm; mm.__name__ = 'lime._internal.format.LZMA'; mm.compress = function (a) { return null; }; mm.decompress = function (a) { return null; }; var Pj = function () {}; h['lime._internal.format.PNG'] = Pj; Pj.__name__ = 'lime._internal.format-2.html'; Pj.decodeBytes = function (a, b) { return null; }; Pj.decodeFile = function (a, b) { return null; }; Pj.encode = function (a) { if (a.get_premultiplied() || 0 != a.get_format()) (a = a.clone()), a.set_premultiplied(!1), a.set_format(0); Aa.convertToCanvas(a, !1); if (null != a.buffer.__srcCanvas) { a = a.buffer.__srcCanvas.toDataURL('image/png'); a = window.atob(a.split(';base64,')[1]); for (var b = new hb(new ArrayBuffer(a.length)), c = 0, e = a.length; c < e; ) { var f = c++; b.b[f] = A.cca(a, f) & 255; } return b; } return null; }; var nm = function () {}; h['lime._internal.format.Zlib'] = nm; nm.__name__ = 'lime._internal.format.Zlib'; nm.compress = function (a) { a = pako.deflate(a.b.bufferValue); return hb.ofData(a); }; nm.decompress = function (a) { a = pako.inflate(a.b.bufferValue); return hb.ofData(a); }; var Aa = function () {}; h['lime._internal.graphics.ImageCanvasUtil'] = Aa; Aa.__name__ = 'lime._internal.graphics.ImageCanvasUtil'; Aa.colorTransform = function (a, b, c) { Aa.convertToData(a); Ra.colorTransform(a, b, c); }; Aa.convertToCanvas = function (a, b) { null == b && (b = !1); var c = a.buffer; null != c.__srcImage ? (null == c.__srcCanvas && (Aa.createCanvas(a, c.__srcImage.width, c.__srcImage.height), c.__srcContext.drawImage(c.__srcImage, 0, 0)), (c.__srcImage = null)) : null == c.__srcCanvas && null != c.data ? (a.set_transparent(!0), Aa.createCanvas(a, c.width, c.height), Aa.createImageData(a), c.__srcContext.putImageData(c.__srcImageData, 0, 0)) : a.type == ve.DATA && null != c.__srcImageData && a.dirty && (c.__srcContext.putImageData(c.__srcImageData, 0, 0), (a.dirty = !1)); b ? ((c.data = null), (c.__srcImageData = null)) : null == c.data && null != c.__srcImageData && (c.data = c.__srcImageData.data); a.type = ve.CANVAS; }; Aa.convertToData = function (a, b) { null == b && (b = !1); var c = a.buffer; null != c.__srcImage && Aa.convertToCanvas(a); if (null != c.__srcCanvas && null == c.data) Aa.createImageData(a), a.type == ve.CANVAS && (a.dirty = !1); else if (a.type == ve.CANVAS && null != c.__srcCanvas && a.dirty) { if (null == c.__srcImageData) Aa.createImageData(a); else { c.__srcImageData = c.__srcContext.getImageData(0, 0, c.width, c.height); var e = c.__srcImageData.data.buffer; e = null != e ? new Uint8Array(e) : null; c.data = e; } a.dirty = !1; } b && ((a.buffer.__srcCanvas = null), (a.buffer.__srcContext = null)); a.type = ve.DATA; }; Aa.copyChannel = function (a, b, c, e, f, d) { Aa.convertToData(b); Aa.convertToData(a); Ra.copyChannel(a, b, c, e, f, d); }; Aa.copyPixels = function (a, b, c, e, f, d, p) { null == p && (p = !1); null == e || e.x >= a.width || e.y >= a.height || null == c || 1 > c.width || 1 > c.height || (null != f && f.get_transparent() && (null == d && (d = new Xd()), (b = b.clone()), b.copyChannel( f, new Qd(c.x + d.x, c.y + d.y, c.width, c.height), new Xd(c.x, c.y), nf.ALPHA, nf.ALPHA )), Aa.convertToCanvas(a, !0), p || (a.get_transparent() && b.get_transparent() && a.buffer.__srcContext.clearRect( e.x + a.offsetX, e.y + a.offsetY, c.width + a.offsetX, c.height + a.offsetY )), Aa.convertToCanvas(b), null != b.buffer.get_src() && ((a.buffer.__srcContext.globalCompositeOperation = 'source-over'), a.buffer.__srcContext.drawImage( b.buffer.get_src(), (c.x + b.offsetX) | 0, (c.y + b.offsetY) | 0, c.width | 0, c.height | 0, (e.x + a.offsetX) | 0, (e.y + a.offsetY) | 0, c.width | 0, c.height | 0 )), (a.dirty = !0), a.version++); }; Aa.createCanvas = function (a, b, c) { var e = a.buffer; null == e.__srcCanvas && ((e.__srcCanvas = window.document.createElement('canvas')), (e.__srcCanvas.width = b), (e.__srcCanvas.height = c), a.get_transparent() ? (e.__srcContext = e.__srcCanvas.getContext('2d')) : (a.get_transparent() || e.__srcCanvas.setAttribute('moz-opaque', 'true'), (e.__srcContext = e.__srcCanvas.getContext('2d', { alpha: !1 })))); }; Aa.createImageData = function (a) { a = a.buffer; if (null == a.__srcImageData) { null == a.data ? (a.__srcImageData = a.__srcContext.getImageData(0, 0, a.width, a.height)) : ((a.__srcImageData = a.__srcContext.createImageData(a.width, a.height)), a.__srcImageData.data.set(a.data)); var b = a.__srcImageData.data.buffer; b = null != b ? new Uint8Array(b) : null; a.data = b; } }; Aa.fillRect = function (a, b, c, e) { Aa.convertToCanvas(a); if (1 == e) { e = (c >> 16) & 255; var f = (c >> 8) & 255; var d = c & 255; c = a.get_transparent() ? (c >> 24) & 255 : 255; } else (e = (c >> 24) & 255), (f = (c >> 16) & 255), (d = (c >> 8) & 255), (c = a.get_transparent() ? c & 255 : 255); 0 == b.x && 0 == b.y && b.width == a.width && b.height == a.height && a.get_transparent() && 0 == c ? (a.buffer.__srcCanvas.width = a.buffer.width) : (255 > c && a.buffer.__srcContext.clearRect( b.x + a.offsetX, b.y + a.offsetY, b.width + a.offsetX, b.height + a.offsetY ), 0 < c && ((a.buffer.__srcContext.fillStyle = 'rgba(' + e + ', ' + f + ', ' + d + ', ' + c / 255 + ')'), a.buffer.__srcContext.fillRect( b.x + a.offsetX, b.y + a.offsetY, b.width + a.offsetX, b.height + a.offsetY )), (a.dirty = !0), a.version++); }; Aa.floodFill = function (a, b, c, e, f) { Aa.convertToData(a); Ra.floodFill(a, b, c, e, f); }; Aa.getPixel = function (a, b, c, e) { Aa.convertToData(a); return Ra.getPixel(a, b, c, e); }; Aa.getPixel32 = function (a, b, c, e) { Aa.convertToData(a); return Ra.getPixel32(a, b, c, e); }; Aa.getPixels = function (a, b, c) { Aa.convertToData(a); return Ra.getPixels(a, b, c); }; Aa.merge = function (a, b, c, e, f, d, p, l) { Aa.convertToData(b); Aa.convertToData(a); Ra.merge(a, b, c, e, f, d, p, l); }; Aa.resize = function (a, b, c) { var e = a.buffer; if (null == e.__srcCanvas) Aa.createCanvas(a, b, c), e.__srcContext.drawImage(e.get_src(), 0, 0, b, c); else { Aa.convertToCanvas(a, !0); var f = e.__srcCanvas; e.__srcCanvas = null; Aa.createCanvas(a, b, c); e.__srcContext.drawImage(f, 0, 0, b, c); } e.__srcImageData = null; e.data = null; a.dirty = !0; a.version++; }; Aa.scroll = function (a, b, c) { if (0 != b % a.width || 0 != c % a.height) { var e = a.clone(); Aa.convertToCanvas(a, !0); a.buffer.__srcContext.clearRect(b, c, a.width, a.height); a.buffer.__srcContext.drawImage(e.get_src(), b, c); a.dirty = !0; a.version++; } }; Aa.setPixel = function (a, b, c, e, f) { Aa.convertToData(a); Ra.setPixel(a, b, c, e, f); }; Aa.setPixel32 = function (a, b, c, e, f) { Aa.convertToData(a); Ra.setPixel32(a, b, c, e, f); }; Aa.setPixels = function (a, b, c, e, f) { Aa.convertToData(a); Ra.setPixels(a, b, c, e, f); }; Aa.sync = function (a, b) { null != a && (a.type != ve.CANVAS || (null == a.buffer.__srcCanvas && null == a.buffer.data) ? a.type == ve.DATA && Aa.convertToData(a, b) : Aa.convertToCanvas(a, b)); }; var Ra = function () {}; h['lime._internal.graphics.ImageDataUtil'] = Ra; Ra.__name__ = 'lime._internal.graphics.ImageDataUtil'; Ra.displaceMap = function (a, b, c, e, f, d, p) { var g = a.buffer.data, v = b.buffer.data, n = c.buffer.data, k = a.buffer.format, m = b.buffer.format, h = c.buffer.format, t = a.get_premultiplied(), u = b.get_premultiplied(), q = c.get_premultiplied(); b = new Le(b); c = new Le(c); for ( var r, w, ia = 0, x = 0, z, E, I, H = 0, C = 0, A = 0, ra = 0, D, J = 0, B = b.height; J < B; ) { var F = J++; r = b.byteOffset + b.stride * F; for (var L = 0, M = b.width; L < M; ) { var G = L++; w = r + 4 * G; I = e.x | 0; z = e.y | 0; if (p) { x = b.byteOffset + b.stride * (F - z + 1) + 4 * (G - I); E = h; D = q; null == D && (D = !1); null == E && (E = 0); switch (E) { case 0: H = ((n[x] & 255) << 24) | ((n[x + 1] & 255) << 16) | ((n[x + 2] & 255) << 8) | (n[x + 3] & 255); break; case 1: H = ((n[x + 1] & 255) << 24) | ((n[x + 2] & 255) << 16) | ((n[x + 3] & 255) << 8) | (n[x] & 255); break; case 2: H = ((n[x + 2] & 255) << 24) | ((n[x + 1] & 255) << 16) | ((n[x] & 255) << 8) | (n[x + 3] & 255); } D && 0 != (H & 255) && 255 != (H & 255) && ((N.unmult = 255 / (H & 255)), (H = ((N.__clamp[Math.round(((H >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((H >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((H >>> 8) & 255) * N.unmult)] & 255) << 8) | (H & 255))); x = b.byteOffset + b.stride * (F - z) + 4 * (G - I + 1); E = h; D = q; null == D && (D = !1); null == E && (E = 0); switch (E) { case 0: C = ((n[x] & 255) << 24) | ((n[x + 1] & 255) << 16) | ((n[x + 2] & 255) << 8) | (n[x + 3] & 255); break; case 1: C = ((n[x + 1] & 255) << 24) | ((n[x + 2] & 255) << 16) | ((n[x + 3] & 255) << 8) | (n[x] & 255); break; case 2: C = ((n[x + 2] & 255) << 24) | ((n[x + 1] & 255) << 16) | ((n[x] & 255) << 8) | (n[x + 3] & 255); } D && 0 != (C & 255) && 255 != (C & 255) && ((N.unmult = 255 / (C & 255)), (C = ((N.__clamp[Math.round(((C >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((C >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((C >>> 8) & 255) * N.unmult)] & 255) << 8) | (C & 255))); x = b.byteOffset + b.stride * (F - z + 1) + 4 * (G - I + 1); E = h; D = q; null == D && (D = !1); null == E && (E = 0); switch (E) { case 0: A = ((n[x] & 255) << 24) | ((n[x + 1] & 255) << 16) | ((n[x + 2] & 255) << 8) | (n[x + 3] & 255); break; case 1: A = ((n[x + 1] & 255) << 24) | ((n[x + 2] & 255) << 16) | ((n[x + 3] & 255) << 8) | (n[x] & 255); break; case 2: A = ((n[x + 2] & 255) << 24) | ((n[x + 1] & 255) << 16) | ((n[x] & 255) << 8) | (n[x + 3] & 255); } D && 0 != (A & 255) && 255 != (A & 255) && ((N.unmult = 255 / (A & 255)), (A = ((N.__clamp[Math.round(((A >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((A >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((A >>> 8) & 255) * N.unmult)] & 255) << 8) | (A & 255))); x = b.byteOffset + b.stride * (F - z) + 4 * (G - I); E = h; D = q; null == D && (D = !1); null == E && (E = 0); switch (E) { case 0: ra = ((n[x] & 255) << 24) | ((n[x + 1] & 255) << 16) | ((n[x + 2] & 255) << 8) | (n[x + 3] & 255); break; case 1: ra = ((n[x + 1] & 255) << 24) | ((n[x + 2] & 255) << 16) | ((n[x + 3] & 255) << 8) | (n[x] & 255); break; case 2: ra = ((n[x + 2] & 255) << 24) | ((n[x + 1] & 255) << 16) | ((n[x] & 255) << 8) | (n[x + 3] & 255); } D && 0 != (ra & 255) && 255 != (ra & 255) && ((N.unmult = 255 / (ra & 255)), (ra = ((N.__clamp[Math.round(((ra >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((ra >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((ra >>> 8) & 255) * N.unmult)] & 255) << 8) | (ra & 255))); x = Ra.bilinear(H, C, A, ra, e.x - I, e.y - z); } else { I = c.byteOffset + c.stride * (F - z) + 4 * (G - I); z = h; E = q; null == E && (E = !1); null == z && (z = 0); switch (z) { case 0: x = ((n[I] & 255) << 24) | ((n[I + 1] & 255) << 16) | ((n[I + 2] & 255) << 8) | (n[I + 3] & 255); break; case 1: x = ((n[I + 1] & 255) << 24) | ((n[I + 2] & 255) << 16) | ((n[I + 3] & 255) << 8) | (n[I] & 255); break; case 2: x = ((n[I + 2] & 255) << 24) | ((n[I + 1] & 255) << 16) | ((n[I] & 255) << 8) | (n[I + 3] & 255); } E && 0 != (x & 255) && 255 != (x & 255) && ((N.unmult = 255 / (x & 255)), (x = ((N.__clamp[Math.round(((x >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((x >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((x >>> 8) & 255) * N.unmult)] & 255) << 8) | (x & 255))); } I = (x & 255) / 255; z = ((((x >>> 24) & 255) - 128) / 255) * I; E = ((((x >>> 16) & 255) - 128) / 255) * I; I = z * f.x + E * d.x; D = z * f.y + E * d.y; z = Math.floor(I * b.width); E = Math.floor(D * b.height); if (p) { ia = b.byteOffset + b.stride * (F + E + 1) + 4 * (G + z); var y = m, K = u; null == K && (K = !1); null == y && (y = 0); switch (y) { case 0: H = ((v[ia] & 255) << 24) | ((v[ia + 1] & 255) << 16) | ((v[ia + 2] & 255) << 8) | (v[ia + 3] & 255); break; case 1: H = ((v[ia + 1] & 255) << 24) | ((v[ia + 2] & 255) << 16) | ((v[ia + 3] & 255) << 8) | (v[ia] & 255); break; case 2: H = ((v[ia + 2] & 255) << 24) | ((v[ia + 1] & 255) << 16) | ((v[ia] & 255) << 8) | (v[ia + 3] & 255); } K && 0 != (H & 255) && 255 != (H & 255) && ((N.unmult = 255 / (H & 255)), (H = ((N.__clamp[Math.round(((H >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((H >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((H >>> 8) & 255) * N.unmult)] & 255) << 8) | (H & 255))); ia = b.byteOffset + b.stride * (F + E) + 4 * (G + z + 1); y = m; K = u; null == K && (K = !1); null == y && (y = 0); switch (y) { case 0: C = ((v[ia] & 255) << 24) | ((v[ia + 1] & 255) << 16) | ((v[ia + 2] & 255) << 8) | (v[ia + 3] & 255); break; case 1: C = ((v[ia + 1] & 255) << 24) | ((v[ia + 2] & 255) << 16) | ((v[ia + 3] & 255) << 8) | (v[ia] & 255); break; case 2: C = ((v[ia + 2] & 255) << 24) | ((v[ia + 1] & 255) << 16) | ((v[ia] & 255) << 8) | (v[ia + 3] & 255); } K && 0 != (C & 255) && 255 != (C & 255) && ((N.unmult = 255 / (C & 255)), (C = ((N.__clamp[Math.round(((C >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((C >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((C >>> 8) & 255) * N.unmult)] & 255) << 8) | (C & 255))); ia = b.byteOffset + b.stride * (F + E + 1) + 4 * (G + z + 1); y = m; K = u; null == K && (K = !1); null == y && (y = 0); switch (y) { case 0: A = ((v[ia] & 255) << 24) | ((v[ia + 1] & 255) << 16) | ((v[ia + 2] & 255) << 8) | (v[ia + 3] & 255); break; case 1: A = ((v[ia + 1] & 255) << 24) | ((v[ia + 2] & 255) << 16) | ((v[ia + 3] & 255) << 8) | (v[ia] & 255); break; case 2: A = ((v[ia + 2] & 255) << 24) | ((v[ia + 1] & 255) << 16) | ((v[ia] & 255) << 8) | (v[ia + 3] & 255); } K && 0 != (A & 255) && 255 != (A & 255) && ((N.unmult = 255 / (A & 255)), (A = ((N.__clamp[Math.round(((A >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((A >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((A >>> 8) & 255) * N.unmult)] & 255) << 8) | (A & 255))); G = b.byteOffset + b.stride * (F + E) + 4 * (G + z); ia = m; y = u; null == y && (y = !1); null == ia && (ia = 0); switch (ia) { case 0: ra = ((v[G] & 255) << 24) | ((v[G + 1] & 255) << 16) | ((v[G + 2] & 255) << 8) | (v[G + 3] & 255); break; case 1: ra = ((v[G + 1] & 255) << 24) | ((v[G + 2] & 255) << 16) | ((v[G + 3] & 255) << 8) | (v[G] & 255); break; case 2: ra = ((v[G + 2] & 255) << 24) | ((v[G + 1] & 255) << 16) | ((v[G] & 255) << 8) | (v[G + 3] & 255); } y && 0 != (ra & 255) && 255 != (ra & 255) && ((N.unmult = 255 / (ra & 255)), (ra = ((N.__clamp[Math.round(((ra >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((ra >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((ra >>> 8) & 255) * N.unmult)] & 255) << 8) | (ra & 255))); ia = Ra.bilinear(H, C, A, ra, I * b.width - z, D * b.height - E); } else { G = b.byteOffset + b.stride * (F + E) + 4 * (G + z); I = m; z = u; null == z && (z = !1); null == I && (I = 0); switch (I) { case 0: ia = ((v[G] & 255) << 24) | ((v[G + 1] & 255) << 16) | ((v[G + 2] & 255) << 8) | (v[G + 3] & 255); break; case 1: ia = ((v[G + 1] & 255) << 24) | ((v[G + 2] & 255) << 16) | ((v[G + 3] & 255) << 8) | (v[G] & 255); break; case 2: ia = ((v[G + 2] & 255) << 24) | ((v[G + 1] & 255) << 16) | ((v[G] & 255) << 8) | (v[G + 3] & 255); } z && 0 != (ia & 255) && 255 != (ia & 255) && ((N.unmult = 255 / (ia & 255)), (ia = ((N.__clamp[Math.round(((ia >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((ia >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((ia >>> 8) & 255) * N.unmult)] & 255) << 8) | (ia & 255))); } G = k; I = t; null == I && (I = !1); null == G && (G = 0); I && (0 == (ia & 255) ? 0 != ia && (ia = 0) : 255 != (ia & 255) && ((N.a16 = N.__alpha16[ia & 255]), (ia = ((((((ia >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((ia >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((ia >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (ia & 255)))); switch (G) { case 0: g[w] = (ia >>> 24) & 255; g[w + 1] = (ia >>> 16) & 255; g[w + 2] = (ia >>> 8) & 255; g[w + 3] = ia & 255; break; case 1: g[w] = ia & 255; g[w + 1] = (ia >>> 24) & 255; g[w + 2] = (ia >>> 16) & 255; g[w + 3] = (ia >>> 8) & 255; break; case 2: (g[w] = (ia >>> 8) & 255), (g[w + 1] = (ia >>> 16) & 255), (g[w + 2] = (ia >>> 24) & 255), (g[w + 3] = ia & 255); } } } a.dirty = !0; a.version++; }; Ra.bilinear = function (a, b, c, e, f, d) { return Ra.lerpRGBA(Ra.lerpRGBA(e, b, f), Ra.lerpRGBA(a, c, f), d); }; Ra.lerpRGBA = function (a, b, c) { var e = 0, f = Math.floor(Ra.lerp((a >>> 24) & 255, (b >>> 24) & 255, c)); e = ((f & 255) << 24) | (((e >>> 16) & 255) << 16) | (((e >>> 8) & 255) << 8) | (e & 255); f = Math.floor(Ra.lerp((a >>> 16) & 255, (b >>> 16) & 255, c)); e = (((e >>> 24) & 255) << 24) | ((f & 255) << 16) | (((e >>> 8) & 255) << 8) | (e & 255); f = Math.floor(Ra.lerp((a >>> 8) & 255, (b >>> 8) & 255, c)); e = (((e >>> 24) & 255) << 24) | (((e >>> 16) & 255) << 16) | ((f & 255) << 8) | (e & 255); f = Math.floor(Ra.lerp(a & 255, b & 255, c)); return ( (((e >>> 24) & 255) << 24) | (((e >>> 16) & 255) << 16) | (((e >>> 8) & 255) << 8) | (f & 255) ); }; Ra.lerp4f = function (a, b, c) { return new Bc( Ra.lerp(a.x, b.x, c), Ra.lerp(a.y, b.y, c), Ra.lerp(a.z, b.z, c), Ra.lerp(a.w, b.w, c) ); }; Ra.lerp = function (a, b, c) { return (1 - c) * a + c * b; }; Ra.colorTransform = function (a, b, c) { var e = a.buffer.data; if (null != e) { var f = a.buffer.format, d = a.buffer.premultiplied; b = new Le(a, b); var p = Kd.getAlphaTable(c), l = Kd.getRedTable(c), v = Kd.getGreenTable(c); c = Kd.getBlueTable(c); for (var n, k, m = 0, h = 0, t = b.height; h < t; ) { n = h++; n = b.byteOffset + b.stride * n; for (var u = 0, q = b.width; u < q; ) { k = u++; k = n + 4 * k; var r = f, w = d; null == w && (w = !1); null == r && (r = 0); switch (r) { case 0: m = ((e[k] & 255) << 24) | ((e[k + 1] & 255) << 16) | ((e[k + 2] & 255) << 8) | (e[k + 3] & 255); break; case 1: m = ((e[k + 1] & 255) << 24) | ((e[k + 2] & 255) << 16) | ((e[k + 3] & 255) << 8) | (e[k] & 255); break; case 2: m = ((e[k + 2] & 255) << 24) | ((e[k + 1] & 255) << 16) | ((e[k] & 255) << 8) | (e[k + 3] & 255); } w && 0 != (m & 255) && 255 != (m & 255) && ((N.unmult = 255 / (m & 255)), (m = ((N.__clamp[Math.round(((m >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((m >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((m >>> 8) & 255) * N.unmult)] & 255) << 8) | (m & 255))); m = ((l[(m >>> 24) & 255] & 255) << 24) | ((v[(m >>> 16) & 255] & 255) << 16) | ((c[(m >>> 8) & 255] & 255) << 8) | (p[m & 255] & 255); r = f; w = d; null == w && (w = !1); null == r && (r = 0); w && (0 == (m & 255) ? 0 != m && (m = 0) : 255 != (m & 255) && ((N.a16 = N.__alpha16[m & 255]), (m = ((((((m >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((m >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((m >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (m & 255)))); switch (r) { case 0: e[k] = (m >>> 24) & 255; e[k + 1] = (m >>> 16) & 255; e[k + 2] = (m >>> 8) & 255; e[k + 3] = m & 255; break; case 1: e[k] = m & 255; e[k + 1] = (m >>> 24) & 255; e[k + 2] = (m >>> 16) & 255; e[k + 3] = (m >>> 8) & 255; break; case 2: (e[k] = (m >>> 8) & 255), (e[k + 1] = (m >>> 16) & 255), (e[k + 2] = (m >>> 24) & 255), (e[k + 3] = m & 255); } } } a.dirty = !0; a.version++; } }; Ra.copyChannel = function (a, b, c, e, f, d) { switch (d._hx_index) { case 0: var g = 0; break; case 1: g = 1; break; case 2: g = 2; break; case 3: g = 3; } switch (f._hx_index) { case 0: var l = 0; break; case 1: l = 1; break; case 2: l = 2; break; case 3: l = 3; } f = b.buffer.data; d = a.buffer.data; if (null != f && null != d) { c = new Le(b, c); e = new Le(a, new Qd(e.x, e.y, c.width, c.height)); var v = b.buffer.format, n = a.buffer.format; b = b.buffer.premultiplied; for ( var k = a.buffer.premultiplied, m, h, t = 0, u = 0, q = 0, r = 0, w = e.height; r < w; ) { h = r++; m = c.byteOffset + c.stride * h; h = e.byteOffset + e.stride * h; for (var x = 0, z = e.width; x < z; ) { x++; var E = v, I = b; null == I && (I = !1); null == E && (E = 0); switch (E) { case 0: t = ((f[m] & 255) << 24) | ((f[m + 1] & 255) << 16) | ((f[m + 2] & 255) << 8) | (f[m + 3] & 255); break; case 1: t = ((f[m + 1] & 255) << 24) | ((f[m + 2] & 255) << 16) | ((f[m + 3] & 255) << 8) | (f[m] & 255); break; case 2: t = ((f[m + 2] & 255) << 24) | ((f[m + 1] & 255) << 16) | ((f[m] & 255) << 8) | (f[m + 3] & 255); } I && 0 != (t & 255) && 255 != (t & 255) && ((N.unmult = 255 / (t & 255)), (t = ((N.__clamp[Math.round(((t >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((t >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((t >>> 8) & 255) * N.unmult)] & 255) << 8) | (t & 255))); E = n; I = k; null == I && (I = !1); null == E && (E = 0); switch (E) { case 0: u = ((d[h] & 255) << 24) | ((d[h + 1] & 255) << 16) | ((d[h + 2] & 255) << 8) | (d[h + 3] & 255); break; case 1: u = ((d[h + 1] & 255) << 24) | ((d[h + 2] & 255) << 16) | ((d[h + 3] & 255) << 8) | (d[h] & 255); break; case 2: u = ((d[h + 2] & 255) << 24) | ((d[h + 1] & 255) << 16) | ((d[h] & 255) << 8) | (d[h + 3] & 255); } I && 0 != (u & 255) && 255 != (u & 255) && ((N.unmult = 255 / (u & 255)), (u = ((N.__clamp[Math.round(((u >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((u >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((u >>> 8) & 255) * N.unmult)] & 255) << 8) | (u & 255))); switch (l) { case 0: q = (t >>> 24) & 255; break; case 1: q = (t >>> 16) & 255; break; case 2: q = (t >>> 8) & 255; break; case 3: q = t & 255; } switch (g) { case 0: u = ((q & 255) << 24) | (((u >>> 16) & 255) << 16) | (((u >>> 8) & 255) << 8) | (u & 255); break; case 1: u = (((u >>> 24) & 255) << 24) | ((q & 255) << 16) | (((u >>> 8) & 255) << 8) | (u & 255); break; case 2: u = (((u >>> 24) & 255) << 24) | (((u >>> 16) & 255) << 16) | ((q & 255) << 8) | (u & 255); break; case 3: u = (((u >>> 24) & 255) << 24) | (((u >>> 16) & 255) << 16) | (((u >>> 8) & 255) << 8) | (q & 255); } E = n; I = k; null == I && (I = !1); null == E && (E = 0); I && (0 == (u & 255) ? 0 != u && (u = 0) : 255 != (u & 255) && ((N.a16 = N.__alpha16[u & 255]), (u = ((((((u >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((u >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((u >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (u & 255)))); switch (E) { case 0: d[h] = (u >>> 24) & 255; d[h + 1] = (u >>> 16) & 255; d[h + 2] = (u >>> 8) & 255; d[h + 3] = u & 255; break; case 1: d[h] = u & 255; d[h + 1] = (u >>> 24) & 255; d[h + 2] = (u >>> 16) & 255; d[h + 3] = (u >>> 8) & 255; break; case 2: (d[h] = (u >>> 8) & 255), (d[h + 1] = (u >>> 16) & 255), (d[h + 2] = (u >>> 24) & 255), (d[h + 3] = u & 255); } m += 4; h += 4; } } a.dirty = !0; a.version++; } }; Ra.copyPixels = function (a, b, c, e, f, d, p) { null == p && (p = !1); if ( a.width == b.width && a.height == b.height && c.width == b.width && c.height == b.height && 0 == c.x && 0 == c.y && 0 == e.x && 0 == e.y && null == f && null == d && 0 == p && a.get_format() == b.get_format() ) a.buffer.data.set(b.buffer.data); else { var g = b.buffer.data, v = a.buffer.data; if (null == g || null == v) return; c = new Le(b, c); var n = new Qd(e.x, e.y, c.width, c.height); n = new Le(a, n); var k = b.buffer.format, m = a.buffer.format, h = 0, t = 0, u = b.buffer.premultiplied, q = a.buffer.premultiplied, r = (b.buffer.bitsPerPixel / 8) | 0, w = (a.buffer.bitsPerPixel / 8) | 0, x = null != f && f.get_transparent(), z = p || (x && !a.get_transparent()) || (!p && !a.get_transparent() && b.get_transparent()); if (x) if ( ((w = f.buffer.data), (b = f.buffer.format), (p = 0), (f = new Le( f, new Qd(c.x + (null == d ? 0 : d.x), c.y + (null == d ? 0 : d.y), c.width, c.height) )), n.clip(e.x | 0, e.y | 0, f.width, f.height), z) ) for (z = 0, r = n.height; z < r; ) for ( x = z++, e = c.byteOffset + c.stride * x, d = n.byteOffset + n.stride * x, x = f.byteOffset + f.stride * x, A = 0, ra = n.width; A < ra; ) { A++; var E = k; var I = u; null == I && (I = !1); null == E && (E = 0); switch (E) { case 0: h = ((g[e] & 255) << 24) | ((g[e + 1] & 255) << 16) | ((g[e + 2] & 255) << 8) | (g[e + 3] & 255); break; case 1: h = ((g[e + 1] & 255) << 24) | ((g[e + 2] & 255) << 16) | ((g[e + 3] & 255) << 8) | (g[e] & 255); break; case 2: h = ((g[e + 2] & 255) << 24) | ((g[e + 1] & 255) << 16) | ((g[e] & 255) << 8) | (g[e + 3] & 255); } I && 0 != (h & 255) && 255 != (h & 255) && ((N.unmult = 255 / (h & 255)), (h = ((N.__clamp[Math.round(((h >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((h >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((h >>> 8) & 255) * N.unmult)] & 255) << 8) | (h & 255))); E = m; I = q; null == I && (I = !1); null == E && (E = 0); switch (E) { case 0: t = ((v[d] & 255) << 24) | ((v[d + 1] & 255) << 16) | ((v[d + 2] & 255) << 8) | (v[d + 3] & 255); break; case 1: t = ((v[d + 1] & 255) << 24) | ((v[d + 2] & 255) << 16) | ((v[d + 3] & 255) << 8) | (v[d] & 255); break; case 2: t = ((v[d + 2] & 255) << 24) | ((v[d + 1] & 255) << 16) | ((v[d] & 255) << 8) | (v[d + 3] & 255); } I && 0 != (t & 255) && 255 != (t & 255) && ((N.unmult = 255 / (t & 255)), (t = ((N.__clamp[Math.round(((t >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((t >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((t >>> 8) & 255) * N.unmult)] & 255) << 8) | (t & 255))); E = b; I = !1; null == I && (I = !1); null == E && (E = 0); switch (E) { case 0: p = ((w[x] & 255) << 24) | ((w[x + 1] & 255) << 16) | ((w[x + 2] & 255) << 8) | (w[x + 3] & 255); break; case 1: p = ((w[x + 1] & 255) << 24) | ((w[x + 2] & 255) << 16) | ((w[x + 3] & 255) << 8) | (w[x] & 255); break; case 2: p = ((w[x + 2] & 255) << 24) | ((w[x + 1] & 255) << 16) | ((w[x] & 255) << 8) | (w[x + 3] & 255); } I && 0 != (p & 255) && 255 != (p & 255) && ((N.unmult = 255 / (p & 255)), (p = ((N.__clamp[Math.round(((p >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((p >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((p >>> 8) & 255) * N.unmult)] & 255) << 8) | (p & 255))); I = ((p & 255) / 255) * ((h & 255) / 255); if (0 < I) { var H = (t & 255) / 255; var C = 1 - I; E = I + H * C; D = N.__clamp[ Math.round((((h >>> 24) & 255) * I + ((t >>> 24) & 255) * H * C) / E) ]; t = ((D & 255) << 24) | (((t >>> 16) & 255) << 16) | (((t >>> 8) & 255) << 8) | (t & 255); D = N.__clamp[ Math.round((((h >>> 16) & 255) * I + ((t >>> 16) & 255) * H * C) / E) ]; t = (((t >>> 24) & 255) << 24) | ((D & 255) << 16) | (((t >>> 8) & 255) << 8) | (t & 255); I = N.__clamp[ Math.round((((h >>> 8) & 255) * I + ((t >>> 8) & 255) * H * C) / E) ]; t = (((t >>> 24) & 255) << 24) | (((t >>> 16) & 255) << 16) | ((I & 255) << 8) | (t & 255); E = N.__clamp[Math.round(255 * E)]; t = (((t >>> 24) & 255) << 24) | (((t >>> 16) & 255) << 16) | (((t >>> 8) & 255) << 8) | (E & 255); E = m; I = q; null == I && (I = !1); null == E && (E = 0); I && (0 == (t & 255) ? 0 != t && (t = 0) : 255 != (t & 255) && ((N.a16 = N.__alpha16[t & 255]), (t = ((((((t >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((t >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((t >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (t & 255)))); switch (E) { case 0: v[d] = (t >>> 24) & 255; v[d + 1] = (t >>> 16) & 255; v[d + 2] = (t >>> 8) & 255; v[d + 3] = t & 255; break; case 1: v[d] = t & 255; v[d + 1] = (t >>> 24) & 255; v[d + 2] = (t >>> 16) & 255; v[d + 3] = (t >>> 8) & 255; break; case 2: (v[d] = (t >>> 8) & 255), (v[d + 1] = (t >>> 16) & 255), (v[d + 2] = (t >>> 24) & 255), (v[d + 3] = t & 255); } } e += 4; d += 4; x += 4; } else for (z = 0, r = n.height; z < r; ) for ( x = z++, e = c.byteOffset + c.stride * x, d = n.byteOffset + n.stride * x, x = f.byteOffset + f.stride * x, A = 0, ra = n.width; A < ra; ) { A++; E = k; I = u; null == I && (I = !1); null == E && (E = 0); switch (E) { case 0: h = ((g[e] & 255) << 24) | ((g[e + 1] & 255) << 16) | ((g[e + 2] & 255) << 8) | (g[e + 3] & 255); break; case 1: h = ((g[e + 1] & 255) << 24) | ((g[e + 2] & 255) << 16) | ((g[e + 3] & 255) << 8) | (g[e] & 255); break; case 2: h = ((g[e + 2] & 255) << 24) | ((g[e + 1] & 255) << 16) | ((g[e] & 255) << 8) | (g[e + 3] & 255); } I && 0 != (h & 255) && 255 != (h & 255) && ((N.unmult = 255 / (h & 255)), (h = ((N.__clamp[Math.round(((h >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((h >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((h >>> 8) & 255) * N.unmult)] & 255) << 8) | (h & 255))); E = b; I = !1; null == I && (I = !1); null == E && (E = 0); switch (E) { case 0: p = ((w[x] & 255) << 24) | ((w[x + 1] & 255) << 16) | ((w[x + 2] & 255) << 8) | (w[x + 3] & 255); break; case 1: p = ((w[x + 1] & 255) << 24) | ((w[x + 2] & 255) << 16) | ((w[x + 3] & 255) << 8) | (w[x] & 255); break; case 2: p = ((w[x + 2] & 255) << 24) | ((w[x + 1] & 255) << 16) | ((w[x] & 255) << 8) | (w[x + 3] & 255); } I && 0 != (p & 255) && 255 != (p & 255) && ((N.unmult = 255 / (p & 255)), (p = ((N.__clamp[Math.round(((p >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((p >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((p >>> 8) & 255) * N.unmult)] & 255) << 8) | (p & 255))); D = Math.round(((p & 255) / 255) * (h & 255)); h = (((h >>> 24) & 255) << 24) | (((h >>> 16) & 255) << 16) | (((h >>> 8) & 255) << 8) | (D & 255); E = m; I = q; null == I && (I = !1); null == E && (E = 0); I && (0 == (h & 255) ? 0 != h && (h = 0) : 255 != (h & 255) && ((N.a16 = N.__alpha16[h & 255]), (h = ((((((h >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((h >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((h >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (h & 255)))); switch (E) { case 0: v[d] = (h >>> 24) & 255; v[d + 1] = (h >>> 16) & 255; v[d + 2] = (h >>> 8) & 255; v[d + 3] = h & 255; break; case 1: v[d] = h & 255; v[d + 1] = (h >>> 24) & 255; v[d + 2] = (h >>> 16) & 255; v[d + 3] = (h >>> 8) & 255; break; case 2: (v[d] = (h >>> 8) & 255), (v[d + 1] = (h >>> 16) & 255), (v[d + 2] = (h >>> 24) & 255), (v[d + 3] = h & 255); } e += 4; d += 4; x += 4; } else if (z) for (z = 0, r = n.height; z < r; ) { x = z++; e = c.byteOffset + c.stride * x; d = n.byteOffset + n.stride * x; for (var A = 0, ra = n.width; A < ra; ) { A++; E = k; I = u; null == I && (I = !1); null == E && (E = 0); switch (E) { case 0: h = ((g[e] & 255) << 24) | ((g[e + 1] & 255) << 16) | ((g[e + 2] & 255) << 8) | (g[e + 3] & 255); break; case 1: h = ((g[e + 1] & 255) << 24) | ((g[e + 2] & 255) << 16) | ((g[e + 3] & 255) << 8) | (g[e] & 255); break; case 2: h = ((g[e + 2] & 255) << 24) | ((g[e + 1] & 255) << 16) | ((g[e] & 255) << 8) | (g[e + 3] & 255); } I && 0 != (h & 255) && 255 != (h & 255) && ((N.unmult = 255 / (h & 255)), (h = ((N.__clamp[Math.round(((h >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((h >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((h >>> 8) & 255) * N.unmult)] & 255) << 8) | (h & 255))); E = m; I = q; null == I && (I = !1); null == E && (E = 0); switch (E) { case 0: t = ((v[d] & 255) << 24) | ((v[d + 1] & 255) << 16) | ((v[d + 2] & 255) << 8) | (v[d + 3] & 255); break; case 1: t = ((v[d + 1] & 255) << 24) | ((v[d + 2] & 255) << 16) | ((v[d + 3] & 255) << 8) | (v[d] & 255); break; case 2: t = ((v[d + 2] & 255) << 24) | ((v[d + 1] & 255) << 16) | ((v[d] & 255) << 8) | (v[d + 3] & 255); } I && 0 != (t & 255) && 255 != (t & 255) && ((N.unmult = 255 / (t & 255)), (t = ((N.__clamp[Math.round(((t >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((t >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((t >>> 8) & 255) * N.unmult)] & 255) << 8) | (t & 255))); I = (h & 255) / 255; H = (t & 255) / 255; C = 1 - I; E = I + H * C; if (0 == E) t = 0; else { var D = N.__clamp[ Math.round((((h >>> 24) & 255) * I + ((t >>> 24) & 255) * H * C) / E) ]; t = ((D & 255) << 24) | (((t >>> 16) & 255) << 16) | (((t >>> 8) & 255) << 8) | (t & 255); D = N.__clamp[ Math.round((((h >>> 16) & 255) * I + ((t >>> 16) & 255) * H * C) / E) ]; t = (((t >>> 24) & 255) << 24) | ((D & 255) << 16) | (((t >>> 8) & 255) << 8) | (t & 255); I = N.__clamp[Math.round((((h >>> 8) & 255) * I + ((t >>> 8) & 255) * H * C) / E)]; t = (((t >>> 24) & 255) << 24) | (((t >>> 16) & 255) << 16) | ((I & 255) << 8) | (t & 255); E = N.__clamp[Math.round(255 * E)]; t = (((t >>> 24) & 255) << 24) | (((t >>> 16) & 255) << 16) | (((t >>> 8) & 255) << 8) | (E & 255); } E = m; I = q; null == I && (I = !1); null == E && (E = 0); I && (0 == (t & 255) ? 0 != t && (t = 0) : 255 != (t & 255) && ((N.a16 = N.__alpha16[t & 255]), (t = ((((((t >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((t >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((t >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (t & 255)))); switch (E) { case 0: v[d] = (t >>> 24) & 255; v[d + 1] = (t >>> 16) & 255; v[d + 2] = (t >>> 8) & 255; v[d + 3] = t & 255; break; case 1: v[d] = t & 255; v[d + 1] = (t >>> 24) & 255; v[d + 2] = (t >>> 16) & 255; v[d + 3] = (t >>> 8) & 255; break; case 2: (v[d] = (t >>> 8) & 255), (v[d + 1] = (t >>> 16) & 255), (v[d + 2] = (t >>> 24) & 255), (v[d + 3] = t & 255); } e += 4; d += 4; } } else if (k == m && u == q && r == w) for (z = 0, r = n.height; z < r; ) (x = z++), (e = c.byteOffset + c.stride * x), (d = n.byteOffset + n.stride * x), v.set(g.subarray(e, e + n.width * w), d); else for (z = 0, r = n.height; z < r; ) for ( x = z++, e = c.byteOffset + c.stride * x, d = n.byteOffset + n.stride * x, A = 0, ra = n.width; A < ra; ) { A++; E = k; I = u; null == I && (I = !1); null == E && (E = 0); switch (E) { case 0: h = ((g[e] & 255) << 24) | ((g[e + 1] & 255) << 16) | ((g[e + 2] & 255) << 8) | (g[e + 3] & 255); break; case 1: h = ((g[e + 1] & 255) << 24) | ((g[e + 2] & 255) << 16) | ((g[e + 3] & 255) << 8) | (g[e] & 255); break; case 2: h = ((g[e + 2] & 255) << 24) | ((g[e + 1] & 255) << 16) | ((g[e] & 255) << 8) | (g[e + 3] & 255); } I && 0 != (h & 255) && 255 != (h & 255) && ((N.unmult = 255 / (h & 255)), (h = ((N.__clamp[Math.round(((h >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((h >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((h >>> 8) & 255) * N.unmult)] & 255) << 8) | (h & 255))); E = m; I = q; null == I && (I = !1); null == E && (E = 0); I && (0 == (h & 255) ? 0 != h && (h = 0) : 255 != (h & 255) && ((N.a16 = N.__alpha16[h & 255]), (h = ((((((h >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((h >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((h >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (h & 255)))); switch (E) { case 0: v[d] = (h >>> 24) & 255; v[d + 1] = (h >>> 16) & 255; v[d + 2] = (h >>> 8) & 255; v[d + 3] = h & 255; break; case 1: v[d] = h & 255; v[d + 1] = (h >>> 24) & 255; v[d + 2] = (h >>> 16) & 255; v[d + 3] = (h >>> 8) & 255; break; case 2: (v[d] = (h >>> 8) & 255), (v[d + 1] = (h >>> 16) & 255), (v[d + 2] = (h >>> 24) & 255), (v[d + 3] = h & 255); } e += 4; d += 4; } } a.dirty = !0; a.version++; }; Ra.fillRect = function (a, b, c, e) { switch (e) { case 1: c = (((c >>> 16) & 255) << 24) | (((c >>> 8) & 255) << 16) | ((c & 255) << 8) | ((c >>> 24) & 255); break; case 2: c = (((c >>> 8) & 255) << 24) | (((c >>> 16) & 255) << 16) | (((c >>> 24) & 255) << 8) | (c & 255); } a.get_transparent() || (c = (((c >>> 24) & 255) << 24) | (((c >>> 16) & 255) << 16) | (((c >>> 8) & 255) << 8) | 255); var f = a.buffer.data; if (null != f) { e = a.buffer.format; var d = a.buffer.premultiplied; d && (0 == (c & 255) ? 0 != c && (c = 0) : 255 != (c & 255) && ((N.a16 = N.__alpha16[c & 255]), (c = ((((((c >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((c >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((c >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (c & 255)))); b = new Le(a, b); for (var p, l = 0, v = b.height; l < v; ) { d = l++; p = b.byteOffset + b.stride * d; for (var n = 0, k = b.width; n < k; ) { d = n++; var m = p + 4 * d, h = e; d = !1; null == d && (d = !1); null == h && (h = 0); d && (0 == (c & 255) ? 0 != c && (c = 0) : 255 != (c & 255) && ((N.a16 = N.__alpha16[c & 255]), (c = ((((((c >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((c >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((c >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (c & 255)))); switch (h) { case 0: f[m] = (c >>> 24) & 255; f[m + 1] = (c >>> 16) & 255; f[m + 2] = (c >>> 8) & 255; f[m + 3] = c & 255; break; case 1: f[m] = c & 255; f[m + 1] = (c >>> 24) & 255; f[m + 2] = (c >>> 16) & 255; f[m + 3] = (c >>> 8) & 255; break; case 2: (f[m] = (c >>> 8) & 255), (f[m + 1] = (c >>> 16) & 255), (f[m + 2] = (c >>> 24) & 255), (f[m + 3] = c & 255); } } } a.dirty = !0; a.version++; } }; Ra.floodFill = function (a, b, c, e, f) { var d = a.buffer.data; if (null != d) { 1 == f && (e = ((e & 16777215) << 8) | ((e >> 24) & 255)); f = a.buffer.format; var p = a.buffer.premultiplied, l = 0, v = 4 * (c + a.offsetY) * a.buffer.width + 4 * (b + a.offsetX), n = f, k = p; null == k && (k = !1); null == n && (n = 0); switch (n) { case 0: l = ((d[v] & 255) << 24) | ((d[v + 1] & 255) << 16) | ((d[v + 2] & 255) << 8) | (d[v + 3] & 255); break; case 1: l = ((d[v + 1] & 255) << 24) | ((d[v + 2] & 255) << 16) | ((d[v + 3] & 255) << 8) | (d[v] & 255); break; case 2: l = ((d[v + 2] & 255) << 24) | ((d[v + 1] & 255) << 16) | ((d[v] & 255) << 8) | (d[v + 3] & 255); } k && 0 != (l & 255) && 255 != (l & 255) && ((N.unmult = 255 / (l & 255)), (l = ((N.__clamp[Math.round(((l >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((l >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((l >>> 8) & 255) * N.unmult)] & 255) << 8) | (l & 255))); a.get_transparent() || ((e = (((e >>> 24) & 255) << 24) | (((e >>> 16) & 255) << 16) | (((e >>> 8) & 255) << 8) | 255), (l = (((l >>> 24) & 255) << 24) | (((l >>> 16) & 255) << 16) | (((l >>> 8) & 255) << 8) | 255)); if (e != l) { p && (0 == (e & 255) ? 0 != e && (e = 0) : 255 != (e & 255) && ((N.a16 = N.__alpha16[e & 255]), (e = ((((((e >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((e >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((e >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (e & 255)))); v = [0, -1, 1, 0]; var m = [-1, 0, 0, 1], h = -a.offsetX, t = -a.offsetY, u = h + a.width, q = t + a.height, r = []; r.push(b); r.push(c); for (var w, x, z, E = 0; 0 < r.length; ) { c = r.pop(); b = r.pop(); for (var I = 0; 4 > I; ) if ( ((n = I++), (w = b + v[n]), (x = c + m[n]), !(w < h || x < t || w >= u || x >= q)) ) { z = 4 * (x * a.width + w); n = f; k = p; null == k && (k = !1); null == n && (n = 0); switch (n) { case 0: E = ((d[z] & 255) << 24) | ((d[z + 1] & 255) << 16) | ((d[z + 2] & 255) << 8) | (d[z + 3] & 255); break; case 1: E = ((d[z + 1] & 255) << 24) | ((d[z + 2] & 255) << 16) | ((d[z + 3] & 255) << 8) | (d[z] & 255); break; case 2: E = ((d[z + 2] & 255) << 24) | ((d[z + 1] & 255) << 16) | ((d[z] & 255) << 8) | (d[z + 3] & 255); } k && 0 != (E & 255) && 255 != (E & 255) && ((N.unmult = 255 / (E & 255)), (E = ((N.__clamp[Math.round(((E >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((E >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((E >>> 8) & 255) * N.unmult)] & 255) << 8) | (E & 255))); if (E == l) { n = f; k = !1; null == k && (k = !1); null == n && (n = 0); k && (0 == (e & 255) ? 0 != e && (e = 0) : 255 != (e & 255) && ((N.a16 = N.__alpha16[e & 255]), (e = ((((((e >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((e >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((e >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (e & 255)))); switch (n) { case 0: d[z] = (e >>> 24) & 255; d[z + 1] = (e >>> 16) & 255; d[z + 2] = (e >>> 8) & 255; d[z + 3] = e & 255; break; case 1: d[z] = e & 255; d[z + 1] = (e >>> 24) & 255; d[z + 2] = (e >>> 16) & 255; d[z + 3] = (e >>> 8) & 255; break; case 2: (d[z] = (e >>> 8) & 255), (d[z + 1] = (e >>> 16) & 255), (d[z + 2] = (e >>> 24) & 255), (d[z + 3] = e & 255); } r.push(w); r.push(x); } } } a.dirty = !0; a.version++; } } }; Ra.gaussianBlur = function (a, b, c, e, f, d, p, l, v) { null == p && (p = 1); null == d && (d = 4); null == f && (f = 4); (l = a.get_premultiplied()) && a.set_premultiplied(!1); af.blur(a, b, c, e, f, d, p); a.dirty = !0; a.version++; l && a.set_premultiplied(!0); return a; }; Ra.getColorBoundsRect = function (a, b, c, e, f) { var d = a.width + 1, p = 0, l = a.height + 1, v = 0; switch (f) { case 1: f = c; c = (((f >>> 16) & 255) << 24) | (((f >>> 8) & 255) << 16) | ((f & 255) << 8) | ((f >>> 24) & 255); f = b; b = (((f >>> 16) & 255) << 24) | (((f >>> 8) & 255) << 16) | ((f & 255) << 8) | ((f >>> 24) & 255); break; case 2: (f = c), (c = (((f >>> 8) & 255) << 24) | (((f >>> 16) & 255) << 16) | (((f >>> 24) & 255) << 8) | (f & 255)), (f = b), (b = (((f >>> 8) & 255) << 24) | (((f >>> 16) & 255) << 16) | (((f >>> 24) & 255) << 8) | (f & 255)); } a.get_transparent() || ((c = (((c >>> 24) & 255) << 24) | (((c >>> 16) & 255) << 16) | (((c >>> 8) & 255) << 8) | 255), (b = (((b >>> 24) & 255) << 24) | (((b >>> 16) & 255) << 16) | (((b >>> 8) & 255) << 8) | 255)); f = 0; for (var n = a.width; f < n; ) { var k = f++; var m = !1; for (var h = 0, t = a.height; h < t; ) { var u = h++; m = a.getPixel32(k, u, 0); if ((m = e ? (m & b) == c : (m & b) != c)) { k < d && (d = k); break; } } if (m) break; } f = 0; for (n = a.width; f < n; ) { k = f++; k = a.width - 1 - k; m = !1; h = 0; for (t = a.height; h < t; ) if (((u = h++), (m = a.getPixel32(k, u, 0)), (m = e ? (m & b) == c : (m & b) != c))) { k > p && (p = k); break; } if (m) break; } f = 0; for (n = a.height; f < n; ) { u = f++; m = !1; h = 0; for (t = a.width; h < t; ) if (((k = h++), (m = a.getPixel32(k, u, 0)), (m = e ? (m & b) == c : (m & b) != c))) { u < l && (l = u); break; } if (m) break; } f = 0; for (n = a.height; f < n; ) { u = f++; u = a.height - 1 - u; m = !1; h = 0; for (t = a.width; h < t; ) if (((k = h++), (m = a.getPixel32(k, u, 0)), (m = e ? (m & b) == c : (m & b) != c))) { u > v && (v = u); break; } if (m) break; } e = p - d; c = v - l; 0 < e && ++e; 0 < c && ++c; 0 > e && (e = 0); 0 > c && (c = 0); d == p && (e = 1); l == v && (c = 1); d > a.width && (d = 0); l > a.height && (l = 0); return new Qd(d, l, e, c); }; Ra.getPixel = function (a, b, c, e) { var f = 0, d = a.buffer.data; b = 4 * (c + a.offsetY) * a.buffer.width + 4 * (b + a.offsetX); c = a.buffer.format; a = a.buffer.premultiplied; null == a && (a = !1); null == c && (c = 0); switch (c) { case 0: f = ((d[b] & 255) << 24) | ((d[b + 1] & 255) << 16) | ((d[b + 2] & 255) << 8) | (d[b + 3] & 255); break; case 1: f = ((d[b + 1] & 255) << 24) | ((d[b + 2] & 255) << 16) | ((d[b + 3] & 255) << 8) | (d[b] & 255); break; case 2: f = ((d[b + 2] & 255) << 24) | ((d[b + 1] & 255) << 16) | ((d[b] & 255) << 8) | (d[b + 3] & 255); } a && 0 != (f & 255) && 255 != (f & 255) && ((N.unmult = 255 / (f & 255)), (f = ((N.__clamp[Math.round(((f >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((f >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((f >>> 8) & 255) * N.unmult)] & 255) << 8) | (f & 255))); f = (((f >>> 24) & 255) << 24) | (((f >>> 16) & 255) << 16) | (((f >>> 8) & 255) << 8) | 0; switch (e) { case 1: return ( ((f & 255) << 24) | (((f >>> 24) & 255) << 16) | (((f >>> 16) & 255) << 8) | ((f >>> 8) & 255) ); case 2: return ( (((f >>> 8) & 255) << 24) | (((f >>> 16) & 255) << 16) | (((f >>> 24) & 255) << 8) | (f & 255) ); default: return f; } }; Ra.getPixel32 = function (a, b, c, e) { var f = 0, d = a.buffer.data; b = 4 * (c + a.offsetY) * a.buffer.width + 4 * (b + a.offsetX); c = a.buffer.format; a = a.buffer.premultiplied; null == a && (a = !1); null == c && (c = 0); switch (c) { case 0: f = ((d[b] & 255) << 24) | ((d[b + 1] & 255) << 16) | ((d[b + 2] & 255) << 8) | (d[b + 3] & 255); break; case 1: f = ((d[b + 1] & 255) << 24) | ((d[b + 2] & 255) << 16) | ((d[b + 3] & 255) << 8) | (d[b] & 255); break; case 2: f = ((d[b + 2] & 255) << 24) | ((d[b + 1] & 255) << 16) | ((d[b] & 255) << 8) | (d[b + 3] & 255); } a && 0 != (f & 255) && 255 != (f & 255) && ((N.unmult = 255 / (f & 255)), (f = ((N.__clamp[Math.round(((f >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((f >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((f >>> 8) & 255) * N.unmult)] & 255) << 8) | (f & 255))); switch (e) { case 1: return ( ((f & 255) << 24) | (((f >>> 24) & 255) << 16) | (((f >>> 16) & 255) << 8) | ((f >>> 8) & 255) ); case 2: return ( (((f >>> 8) & 255) << 24) | (((f >>> 16) & 255) << 16) | (((f >>> 24) & 255) << 8) | (f & 255) ); default: return f; } }; Ra.getPixels = function (a, b, c) { if (null == a.buffer.data) return null; var e = new hb(new ArrayBuffer(4 * ((b.width * b.height) | 0))), f = a.buffer.data, d = a.buffer.format, p = a.buffer.premultiplied; a = new Le(a, b); for (var l, v, n = (b = v = 0), k = a.height; n < k; ) { l = n++; l = a.byteOffset + a.stride * l; for (var m = 0, h = a.width; m < h; ) { m++; var t = d, u = p; null == u && (u = !1); null == t && (t = 0); switch (t) { case 0: v = ((f[l] & 255) << 24) | ((f[l + 1] & 255) << 16) | ((f[l + 2] & 255) << 8) | (f[l + 3] & 255); break; case 1: v = ((f[l + 1] & 255) << 24) | ((f[l + 2] & 255) << 16) | ((f[l + 3] & 255) << 8) | (f[l] & 255); break; case 2: v = ((f[l + 2] & 255) << 24) | ((f[l + 1] & 255) << 16) | ((f[l] & 255) << 8) | (f[l + 3] & 255); } u && 0 != (v & 255) && 255 != (v & 255) && ((N.unmult = 255 / (v & 255)), (v = ((N.__clamp[Math.round(((v >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((v >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((v >>> 8) & 255) * N.unmult)] & 255) << 8) | (v & 255))); switch (c) { case 1: v = ((v & 255) << 24) | (((v >>> 24) & 255) << 16) | (((v >>> 16) & 255) << 8) | ((v >>> 8) & 255); break; case 2: v = (((v >>> 8) & 255) << 24) | (((v >>> 16) & 255) << 16) | (((v >>> 24) & 255) << 8) | (v & 255); } e.b[b++] = (v >>> 24) & 255; e.b[b++] = (v >>> 16) & 255; e.b[b++] = (v >>> 8) & 255; e.b[b++] = v & 255; l += 4; } } return e; }; Ra.merge = function (a, b, c, e, f, d, p, l) { if (null != a.buffer.data && null != b.buffer.data) { c = new Le(b, c); e = new Le(a, new Qd(e.x, e.y, c.width, c.height)); var g = b.buffer.data, n = a.buffer.data, k = b.buffer.format, m = a.buffer.format; b = b.buffer.premultiplied; for (var h = a.buffer.premultiplied, t, u, q = 0, r = 0, w = 0, x = e.height; w < x; ) { u = w++; t = c.byteOffset + c.stride * u; u = e.byteOffset + e.stride * u; for (var z = 0, E = e.width; z < E; ) { z++; var I = k, H = b; null == H && (H = !1); null == I && (I = 0); switch (I) { case 0: q = ((g[t] & 255) << 24) | ((g[t + 1] & 255) << 16) | ((g[t + 2] & 255) << 8) | (g[t + 3] & 255); break; case 1: q = ((g[t + 1] & 255) << 24) | ((g[t + 2] & 255) << 16) | ((g[t + 3] & 255) << 8) | (g[t] & 255); break; case 2: q = ((g[t + 2] & 255) << 24) | ((g[t + 1] & 255) << 16) | ((g[t] & 255) << 8) | (g[t + 3] & 255); } H && 0 != (q & 255) && 255 != (q & 255) && ((N.unmult = 255 / (q & 255)), (q = ((N.__clamp[Math.round(((q >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((q >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((q >>> 8) & 255) * N.unmult)] & 255) << 8) | (q & 255))); I = m; H = h; null == H && (H = !1); null == I && (I = 0); switch (I) { case 0: r = ((n[u] & 255) << 24) | ((n[u + 1] & 255) << 16) | ((n[u + 2] & 255) << 8) | (n[u + 3] & 255); break; case 1: r = ((n[u + 1] & 255) << 24) | ((n[u + 2] & 255) << 16) | ((n[u + 3] & 255) << 8) | (n[u] & 255); break; case 2: r = ((n[u + 2] & 255) << 24) | ((n[u + 1] & 255) << 16) | ((n[u] & 255) << 8) | (n[u + 3] & 255); } H && 0 != (r & 255) && 255 != (r & 255) && ((N.unmult = 255 / (r & 255)), (r = ((N.__clamp[Math.round(((r >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((r >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((r >>> 8) & 255) * N.unmult)] & 255) << 8) | (r & 255))); r = (((((((q >>> 24) & 255) * f + ((r >>> 24) & 255) * (256 - f)) / 256) | 0) & 255) << 24) | (((r >>> 16) & 255) << 16) | (((r >>> 8) & 255) << 8) | (r & 255); r = (((r >>> 24) & 255) << 24) | (((((((q >>> 16) & 255) * d + ((r >>> 16) & 255) * (256 - d)) / 256) | 0) & 255) << 16) | (((r >>> 8) & 255) << 8) | (r & 255); r = (((r >>> 24) & 255) << 24) | (((r >>> 16) & 255) << 16) | (((((((q >>> 8) & 255) * p + ((r >>> 8) & 255) * (256 - p)) / 256) | 0) & 255) << 8) | (r & 255); r = (((r >>> 24) & 255) << 24) | (((r >>> 16) & 255) << 16) | (((r >>> 8) & 255) << 8) | (((((q & 255) * l + (r & 255) * (256 - l)) / 256) | 0) & 255); I = m; H = h; null == H && (H = !1); null == I && (I = 0); H && (0 == (r & 255) ? 0 != r && (r = 0) : 255 != (r & 255) && ((N.a16 = N.__alpha16[r & 255]), (r = ((((((r >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((r >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((r >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (r & 255)))); switch (I) { case 0: n[u] = (r >>> 24) & 255; n[u + 1] = (r >>> 16) & 255; n[u + 2] = (r >>> 8) & 255; n[u + 3] = r & 255; break; case 1: n[u] = r & 255; n[u + 1] = (r >>> 24) & 255; n[u + 2] = (r >>> 16) & 255; n[u + 3] = (r >>> 8) & 255; break; case 2: (n[u] = (r >>> 8) & 255), (n[u + 1] = (r >>> 16) & 255), (n[u + 2] = (r >>> 24) & 255), (n[u + 3] = r & 255); } t += 4; u += 4; } } a.dirty = !0; a.version++; } }; Ra.multiplyAlpha = function (a) { var b = a.buffer.data; if (null != b && a.buffer.transparent) { for (var c = a.buffer.format, e = 0, f = 0, d = (b.length / 4) | 0; f < d; ) { var p = f++, l = 4 * p, v = c, n = !1; null == n && (n = !1); null == v && (v = 0); switch (v) { case 0: e = ((b[l] & 255) << 24) | ((b[l + 1] & 255) << 16) | ((b[l + 2] & 255) << 8) | (b[l + 3] & 255); break; case 1: e = ((b[l + 1] & 255) << 24) | ((b[l + 2] & 255) << 16) | ((b[l + 3] & 255) << 8) | (b[l] & 255); break; case 2: e = ((b[l + 2] & 255) << 24) | ((b[l + 1] & 255) << 16) | ((b[l] & 255) << 8) | (b[l + 3] & 255); } n && 0 != (e & 255) && 255 != (e & 255) && ((N.unmult = 255 / (e & 255)), (e = ((N.__clamp[Math.round(((e >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((e >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((e >>> 8) & 255) * N.unmult)] & 255) << 8) | (e & 255))); p *= 4; l = c; v = !0; null == v && (v = !1); null == l && (l = 0); v && (0 == (e & 255) ? 0 != e && (e = 0) : 255 != (e & 255) && ((N.a16 = N.__alpha16[e & 255]), (e = ((((((e >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((e >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((e >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (e & 255)))); switch (l) { case 0: b[p] = (e >>> 24) & 255; b[p + 1] = (e >>> 16) & 255; b[p + 2] = (e >>> 8) & 255; b[p + 3] = e & 255; break; case 1: b[p] = e & 255; b[p + 1] = (e >>> 24) & 255; b[p + 2] = (e >>> 16) & 255; b[p + 3] = (e >>> 8) & 255; break; case 2: (b[p] = (e >>> 8) & 255), (b[p + 1] = (e >>> 16) & 255), (b[p + 2] = (e >>> 24) & 255), (b[p + 3] = e & 255); } } a.buffer.premultiplied = !0; a.dirty = !0; a.version++; } }; Ra.resize = function (a, b, c) { var e = a.buffer; if (e.width != b || e.height != c) { var f = b * c * 4; f = null != f ? new Uint8Array(f) : null; f = new Rf(f, b, c); for ( var d = a.width, p = a.height, l = a.get_data(), v = f.data, n, k, m, h, t, u, q, r, w, x = 0; x < c; ) for (var z = x++, E = 0, I = b; E < I; ) (t = E++), (r = ((t + 0.5) / b) * d - 0.5), (w = ((z + 0.5) / c) * p - 0.5), (u = r | 0), (q = w | 0), (n = 4 * (q * d + u)), (k = u < d - 1 ? n + 4 : n), (m = q < p - 1 ? n + 4 * d : n), (h = k != n ? m + 4 : m), (t = 4 * (z * b + t)), (u = r - u), (q = w - q), (w = 1 - u), (r = 1 - q), (v[t] = ((Ba.toFloat(l[n]) * w + Ba.toFloat(l[k]) * u) * r + (Ba.toFloat(l[m]) * w + Ba.toFloat(l[h]) * u) * q) | 0), (v[t + 1] = ((Ba.toFloat(l[n + 1]) * w + Ba.toFloat(l[k + 1]) * u) * r + (Ba.toFloat(l[m + 1]) * w + Ba.toFloat(l[h + 1]) * u) * q) | 0), (v[t + 2] = ((Ba.toFloat(l[n + 2]) * w + Ba.toFloat(l[k + 2]) * u) * r + (Ba.toFloat(l[m + 2]) * w + Ba.toFloat(l[h + 2]) * u) * q) | 0), (v[t + 3] = 0 == l[k + 3] || 0 == l[m + 3] || 0 == l[h + 3] ? 0 : l[n + 3]); e.data = f.data; e.width = b; e.height = c; e.__srcImage = null; e.__srcImageData = null; e.__srcCanvas = null; e.__srcContext = null; a.dirty = !0; a.version++; } }; Ra.resizeBuffer = function (a, b, c) { var e = a.buffer, f = a.get_data(), d = b * c * 4; d = null != d ? new Uint8Array(d) : null; for (var p, l, v = 0, n = e.height; v < n; ) for (var k = v++, m = 0, h = e.width; m < h; ) (l = m++), (p = 4 * (k * e.width + l)), (l = 4 * (k * b + l)), (d[l] = f[p]), (d[l + 1] = f[p + 1]), (d[l + 2] = f[p + 2]), (d[l + 3] = f[p + 3]); e.data = d; e.width = b; e.height = c; e.__srcImage = null; e.__srcImageData = null; e.__srcCanvas = null; e.__srcContext = null; a.dirty = !0; a.version++; }; Ra.setFormat = function (a, b) { var c = a.buffer.data; if (null != c) { var e = (c.length / 4) | 0; switch (a.get_format()) { case 0: var f = 0; var d = 1; var p = 2; var l = 3; break; case 1: f = 1; d = 2; p = 3; l = 0; break; case 2: (f = 2), (d = 1), (p = 0), (l = 3); } switch (b) { case 0: var v = 0; var n = 1; var k = 2; var m = 3; break; case 1: v = 1; n = 2; k = 3; m = 0; break; case 2: (v = 2), (n = 1), (k = 0), (m = 3); } for (var h = 0; h < e; ) { var t = 4 * h++; var u = c[t + f]; var q = c[t + d]; var r = c[t + p]; var w = c[t + l]; c[t + v] = u; c[t + n] = q; c[t + k] = r; c[t + m] = w; } a.buffer.format = b; a.dirty = !0; a.version++; } }; Ra.setPixel = function (a, b, c, e, f) { switch (f) { case 1: e = (((e >>> 16) & 255) << 24) | (((e >>> 8) & 255) << 16) | ((e & 255) << 8) | ((e >>> 24) & 255); break; case 2: e = (((e >>> 8) & 255) << 24) | (((e >>> 16) & 255) << 16) | (((e >>> 24) & 255) << 8) | (e & 255); } var d = 0, p = a.buffer.data, l = 4 * (c + a.offsetY) * a.buffer.width + 4 * (b + a.offsetX); f = a.buffer.format; var v = a.buffer.premultiplied; null == v && (v = !1); null == f && (f = 0); switch (f) { case 0: d = ((p[l] & 255) << 24) | ((p[l + 1] & 255) << 16) | ((p[l + 2] & 255) << 8) | (p[l + 3] & 255); break; case 1: d = ((p[l + 1] & 255) << 24) | ((p[l + 2] & 255) << 16) | ((p[l + 3] & 255) << 8) | (p[l] & 255); break; case 2: d = ((p[l + 2] & 255) << 24) | ((p[l + 1] & 255) << 16) | ((p[l] & 255) << 8) | (p[l + 3] & 255); } v && 0 != (d & 255) && 255 != (d & 255) && ((N.unmult = 255 / (d & 255)), (d = ((N.__clamp[Math.round(((d >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((d >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((d >>> 8) & 255) * N.unmult)] & 255) << 8) | (d & 255))); e = (((e >>> 24) & 255) << 24) | (((e >>> 16) & 255) << 16) | (((e >>> 8) & 255) << 8) | (d & 255); p = a.buffer.data; l = 4 * (c + a.offsetY) * a.buffer.width + 4 * (b + a.offsetX); f = a.buffer.format; v = a.buffer.premultiplied; null == v && (v = !1); null == f && (f = 0); v && (0 == (e & 255) ? 0 != e && (e = 0) : 255 != (e & 255) && ((N.a16 = N.__alpha16[e & 255]), (e = ((((((e >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((e >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((e >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (e & 255)))); switch (f) { case 0: p[l] = (e >>> 24) & 255; p[l + 1] = (e >>> 16) & 255; p[l + 2] = (e >>> 8) & 255; p[l + 3] = e & 255; break; case 1: p[l] = e & 255; p[l + 1] = (e >>> 24) & 255; p[l + 2] = (e >>> 16) & 255; p[l + 3] = (e >>> 8) & 255; break; case 2: (p[l] = (e >>> 8) & 255), (p[l + 1] = (e >>> 16) & 255), (p[l + 2] = (e >>> 24) & 255), (p[l + 3] = e & 255); } a.dirty = !0; a.version++; }; Ra.setPixel32 = function (a, b, c, e, f) { switch (f) { case 1: e = (((e >>> 16) & 255) << 24) | (((e >>> 8) & 255) << 16) | ((e & 255) << 8) | ((e >>> 24) & 255); break; case 2: e = (((e >>> 8) & 255) << 24) | (((e >>> 16) & 255) << 16) | (((e >>> 24) & 255) << 8) | (e & 255); } a.get_transparent() || (e = (((e >>> 24) & 255) << 24) | (((e >>> 16) & 255) << 16) | (((e >>> 8) & 255) << 8) | 255); var d = a.buffer.data; b = 4 * (c + a.offsetY) * a.buffer.width + 4 * (b + a.offsetX); f = a.buffer.format; c = a.buffer.premultiplied; null == c && (c = !1); null == f && (f = 0); c && (0 == (e & 255) ? 0 != e && (e = 0) : 255 != (e & 255) && ((N.a16 = N.__alpha16[e & 255]), (e = ((((((e >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((e >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((e >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (e & 255)))); switch (f) { case 0: d[b] = (e >>> 24) & 255; d[b + 1] = (e >>> 16) & 255; d[b + 2] = (e >>> 8) & 255; d[b + 3] = e & 255; break; case 1: d[b] = e & 255; d[b + 1] = (e >>> 24) & 255; d[b + 2] = (e >>> 16) & 255; d[b + 3] = (e >>> 8) & 255; break; case 2: (d[b] = (e >>> 8) & 255), (d[b + 1] = (e >>> 16) & 255), (d[b + 2] = (e >>> 24) & 255), (d[b + 3] = e & 255); } a.dirty = !0; a.version++; }; Ra.setPixels = function (a, b, c, e, f) { if (null != a.buffer.data) { var d = a.buffer.data, p = a.buffer.format, l = a.buffer.premultiplied; b = new Le(a, b); var v = a.get_transparent(), n = c.bytes; c = c.offset; f = f != Bg.BIG_ENDIAN; for (var k = 0, m = b.height; k < m; ) { var h = k++; h = b.byteOffset + b.stride * h; for (var t = 0, u = b.width; t < u; ) { var q = t++; var r = f ? n.getInt32(c) : n.b[c + 3] | (n.b[c + 2] << 8) | (n.b[c + 1] << 16) | (n.b[c] << 24); c += 4; switch (e) { case 1: r = (((r >>> 16) & 255) << 24) | (((r >>> 8) & 255) << 16) | ((r & 255) << 8) | ((r >>> 24) & 255); break; case 2: r = (((r >>> 8) & 255) << 24) | (((r >>> 16) & 255) << 16) | (((r >>> 24) & 255) << 8) | (r & 255); } v || (r = (((r >>> 24) & 255) << 24) | (((r >>> 16) & 255) << 16) | (((r >>> 8) & 255) << 8) | 255); q = h + 4 * q; var w = p, x = l; null == x && (x = !1); null == w && (w = 0); x && (0 == (r & 255) ? 0 != r && (r = 0) : 255 != (r & 255) && ((N.a16 = N.__alpha16[r & 255]), (r = ((((((r >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((r >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((r >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (r & 255)))); switch (w) { case 0: d[q] = (r >>> 24) & 255; d[q + 1] = (r >>> 16) & 255; d[q + 2] = (r >>> 8) & 255; d[q + 3] = r & 255; break; case 1: d[q] = r & 255; d[q + 1] = (r >>> 24) & 255; d[q + 2] = (r >>> 16) & 255; d[q + 3] = (r >>> 8) & 255; break; case 2: (d[q] = (r >>> 8) & 255), (d[q + 1] = (r >>> 16) & 255), (d[q + 2] = (r >>> 24) & 255), (d[q + 3] = r & 255); } } } a.dirty = !0; a.version++; } }; Ra.threshold = function (a, b, c, e, f, d, p, l, v, n) { switch (n) { case 1: var g = p; p = (((g >>> 16) & 255) << 24) | (((g >>> 8) & 255) << 16) | ((g & 255) << 8) | ((g >>> 24) & 255); g = l; l = (((g >>> 16) & 255) << 24) | (((g >>> 8) & 255) << 16) | ((g & 255) << 8) | ((g >>> 24) & 255); g = d; d = (((g >>> 16) & 255) << 24) | (((g >>> 8) & 255) << 16) | ((g & 255) << 8) | ((g >>> 24) & 255); break; case 2: (g = p), (p = (((g >>> 8) & 255) << 24) | (((g >>> 16) & 255) << 16) | (((g >>> 24) & 255) << 8) | (g & 255)), (g = l), (l = (((g >>> 8) & 255) << 24) | (((g >>> 16) & 255) << 16) | (((g >>> 24) & 255) << 8) | (g & 255)), (g = d), (d = (((g >>> 8) & 255) << 24) | (((g >>> 16) & 255) << 16) | (((g >>> 24) & 255) << 8) | (g & 255)); } switch (f) { case '!=': f = 0; break; case '<': f = 2; break; case '<=': f = 3; break; case '==': f = 1; break; case '>': f = 4; break; case '>=': f = 5; break; default: f = -1; } if (-1 == f) return 0; g = b.buffer.data; var k = a.buffer.data; if (null == g || null == k) return 0; var h = 0; c = new Le(b, c); e = new Le(a, new Qd(e.x, e.y, c.width, c.height)); var t = b.buffer.format, u = a.buffer.format; b = b.buffer.premultiplied; for (var q = a.buffer.premultiplied, r, w, x = 0, z = 0, E = e.height; z < E; ) { w = z++; r = c.byteOffset + c.stride * w; w = e.byteOffset + e.stride * w; for (var I = 0, H = e.width; I < H; ) { I++; n = t; var C = b; null == C && (C = !1); null == n && (n = 0); switch (n) { case 0: x = ((g[r] & 255) << 24) | ((g[r + 1] & 255) << 16) | ((g[r + 2] & 255) << 8) | (g[r + 3] & 255); break; case 1: x = ((g[r + 1] & 255) << 24) | ((g[r + 2] & 255) << 16) | ((g[r + 3] & 255) << 8) | (g[r] & 255); break; case 2: x = ((g[r + 2] & 255) << 24) | ((g[r + 1] & 255) << 16) | ((g[r] & 255) << 8) | (g[r + 3] & 255); } C && 0 != (x & 255) && 255 != (x & 255) && ((N.unmult = 255 / (x & 255)), (x = ((N.__clamp[Math.round(((x >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((x >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((x >>> 8) & 255) * N.unmult)] & 255) << 8) | (x & 255))); n = x & l; C = (n >>> 24) & 255; var A = (d >>> 24) & 255; C != A ? (n = Ba.gt(C, A) ? 1 : -1) : ((C = (n >>> 16) & 255), (A = (d >>> 16) & 255), C != A ? (n = Ba.gt(C, A) ? 1 : -1) : ((C = (n >>> 8) & 255), (A = (d >>> 8) & 255), C != A ? (n = Ba.gt(C, A) ? 1 : -1) : ((C = n & 255), (A = d & 255), (n = C != A ? (Ba.gt(C, A) ? 1 : -1) : 0)))); switch (f) { case 0: n = 0 != n; break; case 1: n = 0 == n; break; case 2: n = -1 == n; break; case 3: n = 0 == n || -1 == n; break; case 4: n = 1 == n; break; case 5: n = 0 == n || 1 == n; break; default: n = !1; } if (n) { n = u; C = q; null == C && (C = !1); null == n && (n = 0); C && (0 == (p & 255) ? 0 != p && (p = 0) : 255 != (p & 255) && ((N.a16 = N.__alpha16[p & 255]), (p = ((((((p >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((p >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((p >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (p & 255)))); switch (n) { case 0: k[w] = (p >>> 24) & 255; k[w + 1] = (p >>> 16) & 255; k[w + 2] = (p >>> 8) & 255; k[w + 3] = p & 255; break; case 1: k[w] = p & 255; k[w + 1] = (p >>> 24) & 255; k[w + 2] = (p >>> 16) & 255; k[w + 3] = (p >>> 8) & 255; break; case 2: (k[w] = (p >>> 8) & 255), (k[w + 1] = (p >>> 16) & 255), (k[w + 2] = (p >>> 24) & 255), (k[w + 3] = p & 255); } ++h; } else if (v) switch ( ((n = u), (C = q), null == C && (C = !1), null == n && (n = 0), C && (0 == (x & 255) ? 0 != x && (x = 0) : 255 != (x & 255) && ((N.a16 = N.__alpha16[x & 255]), (x = ((((((x >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((x >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((x >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (x & 255)))), n) ) { case 0: k[w] = (x >>> 24) & 255; k[w + 1] = (x >>> 16) & 255; k[w + 2] = (x >>> 8) & 255; k[w + 3] = x & 255; break; case 1: k[w] = x & 255; k[w + 1] = (x >>> 24) & 255; k[w + 2] = (x >>> 16) & 255; k[w + 3] = (x >>> 8) & 255; break; case 2: (k[w] = (x >>> 8) & 255), (k[w + 1] = (x >>> 16) & 255), (k[w + 2] = (x >>> 24) & 255), (k[w + 3] = x & 255); } r += 4; w += 4; } } 0 < h && ((a.dirty = !0), a.version++); return h; }; Ra.unmultiplyAlpha = function (a) { var b = a.buffer.data; if (null != b) { for (var c = a.buffer.format, e = 0, f = 0, d = (b.length / 4) | 0; f < d; ) { var p = f++, l = 4 * p, v = c, n = !0; null == n && (n = !1); null == v && (v = 0); switch (v) { case 0: e = ((b[l] & 255) << 24) | ((b[l + 1] & 255) << 16) | ((b[l + 2] & 255) << 8) | (b[l + 3] & 255); break; case 1: e = ((b[l + 1] & 255) << 24) | ((b[l + 2] & 255) << 16) | ((b[l + 3] & 255) << 8) | (b[l] & 255); break; case 2: e = ((b[l + 2] & 255) << 24) | ((b[l + 1] & 255) << 16) | ((b[l] & 255) << 8) | (b[l + 3] & 255); } n && 0 != (e & 255) && 255 != (e & 255) && ((N.unmult = 255 / (e & 255)), (e = ((N.__clamp[Math.round(((e >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((e >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((e >>> 8) & 255) * N.unmult)] & 255) << 8) | (e & 255))); p *= 4; l = c; v = !1; null == v && (v = !1); null == l && (l = 0); v && (0 == (e & 255) ? 0 != e && (e = 0) : 255 != (e & 255) && ((N.a16 = N.__alpha16[e & 255]), (e = ((((((e >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((e >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((e >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (e & 255)))); switch (l) { case 0: b[p] = (e >>> 24) & 255; b[p + 1] = (e >>> 16) & 255; b[p + 2] = (e >>> 8) & 255; b[p + 3] = e & 255; break; case 1: b[p] = e & 255; b[p + 1] = (e >>> 24) & 255; b[p + 2] = (e >>> 16) & 255; b[p + 3] = (e >>> 8) & 255; break; case 2: (b[p] = (e >>> 8) & 255), (b[p + 1] = (e >>> 16) & 255), (b[p + 2] = (e >>> 24) & 255), (b[p + 3] = e & 255); } } a.buffer.premultiplied = !1; a.dirty = !0; a.version++; } }; Ra.__boxBlur = function (a, b, c, e, f, d) { b.set(a); f |= 0; d |= 0; Ra.__boxBlurH(b, a, c, e, f, 0); Ra.__boxBlurH(b, a, c, e, f, 1); Ra.__boxBlurH(b, a, c, e, f, 2); Ra.__boxBlurH(b, a, c, e, f, 3); f = 1 / (d + d + 1); for (var g = 4 * c, l, v, n, k, m, h, t = 0, u = c; t < u; ) { l = t++; v = l *= 4; n = l + d * g; k = a[l]; m = a[l + g * (e - 1)]; h = (d + 1) * k; for (var r = 0, q = d; r < q; ) { var w = r++; h += a[l + w * g]; } r = 0; for (q = d + 1; r < q; ) r++, (h += a[n] - k), (b[l] = Math.round(Ba.toFloat(h) * f)), (n += g), (l += g); k = d + 1; for (r = e - d; k < r; ) k++, (h += a[n] - a[v]), (b[l] = Math.round(Ba.toFloat(h) * f)), (v += g), (n += g), (l += g); n = e - d; for (k = e; n < k; ) n++, (h += m - a[v]), (b[l] = Math.round(Ba.toFloat(h) * f)), (v += g), (l += g); } f = 1 / (d + d + 1); g = 4 * c; t = 0; for (u = c; t < u; ) { l = t++; v = l = 4 * l + 1; n = l + d * g; k = a[l]; m = a[l + g * (e - 1)]; h = (d + 1) * k; r = 0; for (q = d; r < q; ) (w = r++), (h += a[l + w * g]); r = 0; for (q = d + 1; r < q; ) r++, (h += a[n] - k), (b[l] = Math.round(Ba.toFloat(h) * f)), (n += g), (l += g); k = d + 1; for (r = e - d; k < r; ) k++, (h += a[n] - a[v]), (b[l] = Math.round(Ba.toFloat(h) * f)), (v += g), (n += g), (l += g); n = e - d; for (k = e; n < k; ) n++, (h += m - a[v]), (b[l] = Math.round(Ba.toFloat(h) * f)), (v += g), (l += g); } f = 1 / (d + d + 1); g = 4 * c; t = 0; for (u = c; t < u; ) { l = t++; v = l = 4 * l + 2; n = l + d * g; k = a[l]; m = a[l + g * (e - 1)]; h = (d + 1) * k; r = 0; for (q = d; r < q; ) (w = r++), (h += a[l + w * g]); r = 0; for (q = d + 1; r < q; ) r++, (h += a[n] - k), (b[l] = Math.round(Ba.toFloat(h) * f)), (n += g), (l += g); k = d + 1; for (r = e - d; k < r; ) k++, (h += a[n] - a[v]), (b[l] = Math.round(Ba.toFloat(h) * f)), (v += g), (n += g), (l += g); n = e - d; for (k = e; n < k; ) n++, (h += m - a[v]), (b[l] = Math.round(Ba.toFloat(h) * f)), (v += g), (l += g); } f = 1 / (d + d + 1); g = 4 * c; t = 0; for (u = c; t < u; ) { l = t++; v = l = 4 * l + 3; n = l + d * g; k = a[l]; m = a[l + g * (e - 1)]; h = (d + 1) * k; r = 0; for (q = d; r < q; ) (w = r++), (h += a[l + w * g]); r = 0; for (q = d + 1; r < q; ) r++, (h += a[n] - k), (b[l] = Math.round(Ba.toFloat(h) * f)), (n += g), (l += g); k = d + 1; for (r = e - d; k < r; ) k++, (h += a[n] - a[v]), (b[l] = Math.round(Ba.toFloat(h) * f)), (v += g), (n += g), (l += g); n = e - d; for (k = e; n < k; ) n++, (h += m - a[v]), (b[l] = Math.round(Ba.toFloat(h) * f)), (v += g), (l += g); } }; Ra.__boxBlurH = function (a, b, c, e, f, d) { for (var g = 1 / (f + f + 1), l, v, k, h, m, t, u = 0; u < e; ) { v = l = u++ * c; k = l + f; h = a[4 * l + d]; m = a[4 * (l + c - 1) + d]; t = (f + 1) * h; for (var r = 0, q = f; r < q; ) { var w = r++; t += a[4 * (l + w) + d]; } r = 0; for (q = f + 1; r < q; ) r++, (t += a[4 * k + d] - h), (b[4 * l + d] = Math.round(Ba.toFloat(t) * g)), ++k, ++l; h = f + 1; for (r = c - f; h < r; ) h++, (t += a[4 * k + d] - a[4 * v + d]), (b[4 * l + d] = Math.round(Ba.toFloat(t) * g)), ++k, ++v, ++l; k = c - f; for (h = c; k < h; ) k++, (t += m - a[4 * v + d]), (b[4 * l + d] = Math.round(Ba.toFloat(t) * g)), ++v, ++l; } }; Ra.__boxBlurT = function (a, b, c, e, f, d) { for (var g = 1 / (f + f + 1), l = 4 * c, v, k, h, m, t, u, r = 0; r < c; ) { k = v = 4 * r++ + d; h = v + f * l; m = a[v]; t = a[v + l * (e - 1)]; u = (f + 1) * m; for (var q = 0, w = f; q < w; ) { var x = q++; u += a[v + x * l]; } q = 0; for (w = f + 1; q < w; ) q++, (u += a[h] - m), (b[v] = Math.round(Ba.toFloat(u) * g)), (h += l), (v += l); m = f + 1; for (q = e - f; m < q; ) m++, (u += a[h] - a[k]), (b[v] = Math.round(Ba.toFloat(u) * g)), (k += l), (h += l), (v += l); h = e - f; for (m = e; h < m; ) h++, (u += t - a[k]), (b[v] = Math.round(Ba.toFloat(u) * g)), (k += l), (v += l); } }; Ra.__calculateSourceOffset = function (a, b, c, e) { c -= b.x | 0; b = e - (b.y | 0); return 0 > c || 0 > b || c >= a.width || b >= a.height ? -1 : 4 * (b * (a.width | 0) + c); }; Ra.__getBoxesForGaussianBlur = function (a, b) { var c = Math.floor(Math.sqrt((12 * a * a) / b + 1)); 0 == c % 2 && --c; var e = c + 2; a = Math.round((12 * a * a - b * c * c - 4 * b * c - 3 * b) / (-4 * c - 4)); for (var f = [], d = 0; d < b; ) { var p = d++; f.push(p < a ? c : e); } return f; }; Ra.__pixelCompare = function (a, b) { var c = (a >>> 24) & 255, e = (b >>> 24) & 255; if (c != e) return Ba.gt(c, e) ? 1 : -1; c = (a >>> 16) & 255; e = (b >>> 16) & 255; if (c != e) return Ba.gt(c, e) ? 1 : -1; c = (a >>> 8) & 255; e = (b >>> 8) & 255; if (c != e) return Ba.gt(c, e) ? 1 : -1; c = a & 255; e = b & 255; return c != e ? (Ba.gt(c, e) ? 1 : -1) : 0; }; Ra.__translatePixel = function (a, b, c, e, f, d, p) { c = 4 * (d * (c.width | 0) + f); b = Ra.__calculateSourceOffset(b, e, f, d); 0 > b ? (a[c] = a[c + 1] = a[c + 2] = a[c + 3] = 0) : ((a[c] = a[b]), (a[c + 1] = a[b + 1]), (a[c + 2] = a[b + 2]), (p = (Ba.toFloat(a[b + 3]) * p) | 0), (a[c + 3] = 0 > p ? 0 : 255 < p ? 255 : p)); }; var Le = function (a, b) { this.image = a; null == b ? (this.rect = a.get_rect()) : (0 > b.x && (b.x = 0), 0 > b.y && (b.y = 0), b.x + b.width > a.width && (b.width = a.width - b.x), b.y + b.height > a.height && (b.height = a.height - b.y), 0 > b.width && (b.width = 0), 0 > b.height && (b.height = 0), (this.rect = b)); this.stride = a.buffer.get_stride(); this.__update(); }; h['lime._internal.graphics._ImageDataUtil.ImageDataView'] = Le; Le.__name__ = 'lime._internal.graphics._ImageDataUtil.ImageDataView'; Le.prototype = { x: null, y: null, height: null, width: null, byteOffset: null, image: null, rect: null, stride: null, tempRect: null, clip: function (a, b, c, e) { null == this.tempRect && (this.tempRect = new Qd()); this.tempRect.setTo(a, b, c, e); this.rect.intersection(this.tempRect, this.rect); this.__update(); }, hasRow: function (a) { return 0 <= a ? a < this.height : !1; }, offset: function (a, b) { 0 > a ? ((this.rect.x += a), 0 > this.rect.x && (this.rect.x = 0)) : ((this.rect.x += a), (this.rect.width -= a)); 0 > b ? ((this.rect.y += b), 0 > this.rect.y && (this.rect.y = 0)) : ((this.rect.y += b), (this.rect.height -= b)); this.__update(); }, row: function (a) { return this.byteOffset + this.stride * a; }, __update: function () { this.x = Math.ceil(this.rect.x); this.y = Math.ceil(this.rect.y); this.width = Math.floor(this.rect.width); this.height = Math.floor(this.rect.height); this.byteOffset = this.stride * (this.y + this.image.offsetY) + 4 * (this.x + this.image.offsetX); }, __class__: Le }; var af = function () {}; h['lime._internal.graphics.StackBlur'] = af; af.__name__ = 'lime._internal.graphics.StackBlur'; af.blur = function (a, b, c, e, f, d, p) { a.copyPixels(b, c, e); af.__stackBlurCanvasRGBA(a, c.width | 0, c.height | 0, f, d, p); }; af.__stackBlurCanvasRGBA = function (a, b, c, e, f, d) { e = Math.round(e) >> 1; f = Math.round(f) >> 1; if ( null != af.MUL_TABLE && (e >= af.MUL_TABLE.length && (e = af.MUL_TABLE.length - 1), f >= af.MUL_TABLE.length && (f = af.MUL_TABLE.length - 1), !(0 > e || 0 > f)) ) { 1 > d && (d = 1); 3 < d && (d = 3); a = a.get_data(); var g, l, v = e + e + 1; var k = f + f + 1; var h = b - 1, m = c - 1, t = e + 1, u = f + 1, r = new Ji(), q = r; var w = 1; for (var x = v; w < x; ) w++, (q = q.n = new Ji()); q.n = r; var z = (v = new Ji()); w = 1; for (x = k; w < x; ) w++, (z = z.n = new Ji()); z.n = v; for ( var E = af.MUL_TABLE[e], I = af.SHG_TABLE[e], H = af.MUL_TABLE[f], C = af.SHG_TABLE[f]; 0 < d; ) { --d; var A = (l = 0); var ra = E, D = I; for (g = c; ; ) { var F = a[l]; k = t * F; var G = a[l + 1]; var J = t * G; var B = a[l + 2]; var L = t * B; w = a[l + 3]; var M = t * w; q = r; for (z = t; (q.r = F), (q.g = G), (q.b = B), (q.a = w), (q = q.n), -1 < --z; ); w = 1; for (x = t; w < x; ) (z = w++), (z = l + ((h < z ? h : z) << 2)), (k += q.r = a[z]), (J += q.g = a[z + 1]), (L += q.b = a[z + 2]), (M += q.a = a[z + 3]), (q = q.n); x = r; q = 0; for (w = b; q < w; ) (z = q++), (a[l++] = (k * ra) >>> D), (a[l++] = (J * ra) >>> D), (a[l++] = (L * ra) >>> D), (a[l++] = (M * ra) >>> D), (z = z + e + 1), (z = (A + (z < h ? z : h)) << 2), (k -= x.r - (x.r = a[z])), (J -= x.g - (x.g = a[z + 1])), (L -= x.b - (x.b = a[z + 2])), (M -= x.a - (x.a = a[z + 3])), (x = x.n); A += b; if (!(0 < --g)) break; } ra = H; D = C; g = 0; for (A = b; g < A; ) { q = g++; l = q << 2; F = a[l]; k = u * F; G = a[l + 1]; J = u * G; B = a[l + 2]; L = u * B; w = a[l + 3]; M = u * w; z = v; l = 0; for (x = u; l < x; ) l++, (z.r = F), (z.g = G), (z.b = B), (z.a = w), (z = z.n); w = b; x = 1; for (F = f + 1; x < F; ) (G = x++), (l = (w + q) << 2), (k += z.r = a[l]), (J += z.g = a[l + 1]), (L += z.b = a[l + 2]), (M += z.a = a[l + 3]), (z = z.n), G < m && (w += b); l = q; x = v; if (0 < d) for (F = 0, G = c; F < G; ) (B = F++), (z = l << 2), (w = (M * ra) >>> D), (a[z + 3] = w), 0 < w ? ((a[z] = (k * ra) >>> D), (a[z + 1] = (J * ra) >>> D), (a[z + 2] = (L * ra) >>> D)) : (a[z] = a[z + 1] = a[z + 2] = 0), (z = B + u), (z = (q + (z < m ? z : m) * b) << 2), (k -= x.r - (x.r = a[z])), (J -= x.g - (x.g = a[z + 1])), (L -= x.b - (x.b = a[z + 2])), (M -= x.a - (x.a = a[z + 3])), (x = x.n), (l += b); else for (var y = 0, N = c; y < N; ) { var K = y++; z = l << 2; w = (M * ra) >>> D; a[z + 3] = w; 0 < w ? ((w = 255 / w), (F = (((k * ra) >>> D) * w) | 0), (G = (((J * ra) >>> D) * w) | 0), (B = (((L * ra) >>> D) * w) | 0), (a[z] = 255 < F ? 255 : F), (a[z + 1] = 255 < G ? 255 : G), (a[z + 2] = 255 < B ? 255 : B)) : (a[z] = a[z + 1] = a[z + 2] = 0); z = K + u; z = (q + (z < m ? z : m) * b) << 2; k -= x.r - (x.r = a[z]); J -= x.g - (x.g = a[z + 1]); L -= x.b - (x.b = a[z + 2]); M -= x.a - (x.a = a[z + 3]); x = x.n; l += b; } } } } }; var Ji = function () { this.a = this.b = this.g = this.r = 0; this.n = null; }; h['lime._internal.graphics.BlurStack'] = Ji; Ji.__name__ = 'lime._internal.graphics.BlurStack'; Ji.prototype = { r: null, g: null, b: null, a: null, n: null, __class__: Ji }; var dx = function () {}; h['lime._internal.macros.AssetsMacro'] = dx; dx.__name__ = 'lime._internal.macros.AssetsMacro'; var yo = function (a) { this.i = 0; this.string = a; this.index = 0; this.endIndex = a.length; }; h['lime._internal.unifill.CodePointIter'] = yo; yo.__name__ = 'lime._internal.unifill.CodePointIter'; yo.prototype = { string: null, index: null, endIndex: null, hasNext: function () { return this.index < this.endIndex; }, i: null, next: function () { var a = (this.i = this.index), b = this.string; b = b.charCodeAt(this.index); this.index = a + (55296 <= b && 56319 >= b ? 2 : 1); b = this.string; return gg.codePointAt(b, this.i); }, __class__: yo }; var Ki = function () {}; h['lime._internal.unifill.Exception'] = Ki; Ki.__name__ = 'lime._internal.unifill.Exception'; Ki.prototype = { toString: function () { throw M.thrown(null); }, __class__: Ki }; var zo = function (a) { this.code = a; }; h['lime._internal.unifill.InvalidCodePoint'] = zo; zo.__name__ = 'lime._internal.unifill.InvalidCodePoint'; zo.__super__ = Ki; zo.prototype = r(Ki.prototype, { code: null, toString: function () { return 'InvalidCodePoint(code: ' + this.code + ')'; }, __class__: zo }); var Ch = function (a) { this.index = a; }; h['lime._internal.unifill.InvalidCodeUnitSequence'] = Ch; Ch.__name__ = 'lime._internal.unifill.InvalidCodeUnitSequence'; Ch.__super__ = Ki; Ch.prototype = r(Ki.prototype, { index: null, toString: function () { return 'InvalidCodeUnitSequence(index: ' + this.index + ')'; }, __class__: Ch }); var bf = function () {}; h['lime._internal.unifill.InternalEncoding'] = bf; bf.__name__ = 'lime._internal.unifill.InternalEncoding'; bf.__properties__ = { get_internalEncoding: 'get_internalEncoding' }; bf.get_internalEncoding = function () { return 'UTF-16'; }; bf.codeUnitAt = function (a, b) { return a.charCodeAt(b); }; bf.codePointAt = function (a, b) { return gg.codePointAt(a, b); }; bf.charAt = function (a, b) { var c = a.charCodeAt(b); return (b = A.substr(a, b, 55296 <= c && 56319 >= c ? 2 : 1)); }; bf.codePointCount = function (a, b, c) { return gg.codePointCount(a, b, c); }; bf.codePointWidthAt = function (a, b) { a = a.charCodeAt(b); return 55296 <= a && 56319 >= a ? 2 : 1; }; bf.codePointWidthBefore = function (a, b) { a = a.charCodeAt(b - 1); return 56320 <= a && 57343 >= a ? 2 : 1; }; bf.offsetByCodePoints = function (a, b, c) { if (0 <= c) for (var e = a.length, f = 0; f < c && b < e; ) { var d = a.charCodeAt(b); b += 55296 <= d && 56319 >= d ? 2 : 1; ++f; } else for (e = 0; e < -c && 0 < b; ) (d = a.charCodeAt(b - 1)), (b -= 56320 <= d && 57343 >= d ? 2 : 1), ++e; return b; }; bf.backwardOffsetByCodePoints = function (a, b, c) { c = -c; if (0 <= c) for (var e = a.length, f = 0; f < c && b < e; ) { var d = a.charCodeAt(b); b += 55296 <= d && 56319 >= d ? 2 : 1; ++f; } else for (e = 0; e < -c && 0 < b; ) (d = a.charCodeAt(b - 1)), (b -= 56320 <= d && 57343 >= d ? 2 : 1), ++e; return b; }; bf.fromCodePoint = function (a) { return 65535 >= a ? String.fromCodePoint(a) : String.fromCodePoint((a >> 10) + 55232) + String.fromCodePoint((a & 1023) | 56320); }; bf.fromCodePoints = function (a) { var b = ''; for (a = O(a); a.hasNext(); ) { var c = a.next(); 65535 >= c ? (b += String.fromCodePoint(c)) : ((b += String.fromCodePoint((c >> 10) + 55232)), (b += String.fromCodePoint((c & 1023) | 56320))); } return b; }; bf.validate = function (a) { gg.validate(a); }; bf.isValidString = function (a) { try { return gg.validate(a), !0; } catch (b) { la.lastError = b; if (M.caught(b).unwrap() instanceof Ch) return !1; throw b; } }; bf.encodeWith = function (a, b) { 65535 >= b ? a(b) : (a((b >> 10) + 55232), a((b & 1023) | 56320)); }; var iw = function (a, b, c) { this.i = 0; this.string = a; this.index = b; this.endIndex = c; }; h['lime._internal.unifill.InternalEncodingIter'] = iw; iw.__name__ = 'lime._internal.unifill.InternalEncodingIter'; iw.prototype = { string: null, index: null, endIndex: null, hasNext: function () { return this.index < this.endIndex; }, i: null, next: function () { var a = (this.i = this.index), b = this.string.charCodeAt(this.index); this.index = a + (55296 <= b && 56319 >= b ? 2 : 1); return this.i; }, __class__: iw }; var Sf = function () {}; h['lime._internal.unifill.Unicode'] = Sf; Sf.__name__ = 'lime._internal.unifill.Unicode'; Sf.decodeSurrogate = function (a, b) { return ((a - 55232) << 10) | (b & 1023); }; Sf.encodeHighSurrogate = function (a) { return (a >> 10) + 55232; }; Sf.encodeLowSurrogate = function (a) { return (a & 1023) | 56320; }; Sf.isScalar = function (a) { return 0 <= a && 1114111 >= a && !(55296 <= a && 56319 >= a) ? !(56320 <= a && 57343 >= a) : !1; }; Sf.isHighSurrogate = function (a) { return 55296 <= a ? 56319 >= a : !1; }; Sf.isLowSurrogate = function (a) { return 56320 <= a ? 57343 >= a : !1; }; var uf = function () {}; h['lime._internal.unifill.Unifill'] = uf; uf.__name__ = 'lime._internal.unifill.Unifill'; uf.uLength = function (a) { return gg.codePointCount(a, 0, a.length); }; uf.uCharAt = function (a, b) { var c = a; if (0 <= b) for (var e = 0, f = c.length, d = 0; d < b && e < f; ) { var p = c.charCodeAt(e); e += 55296 <= p && 56319 >= p ? 2 : 1; ++d; } else for (f = e = 0; f < -b && 0 < e; ) (p = c.charCodeAt(e - 1)), (e -= 56320 <= p && 57343 >= p ? 2 : 1), ++f; b = e; c = a; p = c.charCodeAt(b); return (a = A.substr(c, b, 55296 <= p && 56319 >= p ? 2 : 1)); }; uf.uCharCodeAt = function (a, b) { var c = a; if (0 <= b) for (var e = 0, f = c.length, d = 0; d < b && e < f; ) { var p = c.charCodeAt(e); e += 55296 <= p && 56319 >= p ? 2 : 1; ++d; } else for (f = e = 0; f < -b && 0 < e; ) (p = c.charCodeAt(e - 1)), (e -= 56320 <= p && 57343 >= p ? 2 : 1), ++f; return gg.codePointAt(a, e); }; uf.uCodePointAt = function (a, b) { var c = a; if (0 <= b) for (var e = 0, f = c.length, d = 0; d < b && e < f; ) { var p = c.charCodeAt(e); e += 55296 <= p && 56319 >= p ? 2 : 1; ++d; } else for (f = e = 0; f < -b && 0 < e; ) (p = c.charCodeAt(e - 1)), (e -= 56320 <= p && 57343 >= p ? 2 : 1), ++f; return gg.codePointAt(a, e); }; uf.uIndexOf = function (a, b, c) { null == c && (c = 0); var e = a; if (0 <= c) for (var f = 0, d = e.length, p = 0; p < c && f < d; ) { var l = e.charCodeAt(f); f += 55296 <= l && 56319 >= l ? 2 : 1; ++p; } else for (d = f = 0; d < -c && 0 < f; ) (l = e.charCodeAt(f - 1)), (f -= 56320 <= l && 57343 >= l ? 2 : 1), ++d; f = a.indexOf(b, f); return 0 <= f ? gg.codePointCount(a, 0, f) : -1; }; uf.uLastIndexOf = function (a, b, c) { null == c && (c = a.length - 1); var e = a; if (0 <= c) for (var f = 0, d = e.length, p = 0; p < c && f < d; ) { var l = e.charCodeAt(f); f += 55296 <= l && 56319 >= l ? 2 : 1; ++p; } else for (d = f = 0; d < -c && 0 < f; ) (l = e.charCodeAt(f - 1)), (f -= 56320 <= l && 57343 >= l ? 2 : 1), ++d; f = a.lastIndexOf(b, f); return 0 <= f ? gg.codePointCount(a, 0, f) : -1; }; uf.uSplit = function (a, b) { if (0 == b.length) { b = []; for (var c, e = 0, f = a.length; e < f; ) { c = e; var d = a.charCodeAt(e); e += 55296 <= d && 56319 >= d ? 2 : 1; d = a; var p = d.charCodeAt(c); c = A.substr(d, c, 55296 <= p && 56319 >= p ? 2 : 1); b.push(c); } return b; } return a.split(b); }; uf.uSubstr = function (a, b, c) { var e = 0 <= b ? 0 : a.length; var f = a; if (0 <= b) for (var d = f.length, p = 0; p < b && e < d; ) { var l = f.charCodeAt(e); e += 55296 <= l && 56319 >= l ? 2 : 1; ++p; } else for (d = 0; d < -b && 0 < e; ) (l = f.charCodeAt(e - 1)), (e -= 56320 <= l && 57343 >= l ? 2 : 1), ++d; b = e; if (null == c) c = a.length; else if (0 > c) c = b; else { f = a; if (0 <= c) for (e = b, d = f.length, p = 0; p < c && e < d; ) (l = f.charCodeAt(e)), (e += 55296 <= l && 56319 >= l ? 2 : 1), ++p; else for (e = b, d = 0; d < -c && 0 < e; ) (l = f.charCodeAt(e - 1)), (e -= 56320 <= l && 57343 >= l ? 2 : 1), ++d; c = e; } return a.substring(b, c); }; uf.uSubstring = function (a, b, c) { if (0 > b) b = 0; else { var e = a; if (0 <= b) for (var f = 0, d = e.length, p = 0; p < b && f < d; ) { var l = e.charCodeAt(f); f += 55296 <= l && 56319 >= l ? 2 : 1; ++p; } else for (d = f = 0; d < -b && 0 < f; ) (l = e.charCodeAt(f - 1)), (f -= 56320 <= l && 57343 >= l ? 2 : 1), ++d; b = f; } if (null == c) c = a.length; else if (0 > c) c = 0; else { e = a; if (0 <= c) for (f = 0, d = e.length, p = 0; p < c && f < d; ) (l = e.charCodeAt(f)), (f += 55296 <= l && 56319 >= l ? 2 : 1), ++p; else for (d = f = 0; d < -c && 0 < f; ) (l = e.charCodeAt(f - 1)), (f -= 56320 <= l && 57343 >= l ? 2 : 1), ++d; c = f; } return a.substring(b, c); }; uf.uIterator = function (a) { return new yo(a); }; uf.uCompare = function (a, b) { for (var c, e = 0, f = a.length, d, p = 0, l = b.length; e < f && p < l; ) { c = e; d = a.charCodeAt(e); e += 55296 <= d && 56319 >= d ? 2 : 1; c = gg.codePointAt(a, c); d = p; var v = b.charCodeAt(p); p += 55296 <= v && 56319 >= v ? 2 : 1; d = gg.codePointAt(b, d); if (c < d) return -1; if (c > d) return 1; } return p < l ? -1 : e < f ? 1 : 0; }; uf.uToString = function (a) { var b = ''; for (a = O(a); a.hasNext(); ) { var c = a.next(); 65535 >= c ? (b += String.fromCodePoint(c)) : ((b += String.fromCodePoint((c >> 10) + 55232)), (b += String.fromCodePoint((c & 1023) | 56320))); } return b; }; uf.uAddChar = function (a, b) { 65535 >= b ? (a.b += String.fromCodePoint(b)) : ((a.b += String.fromCodePoint((b >> 10) + 55232)), (a.b += String.fromCodePoint((b & 1023) | 56320))); }; var gg = { __properties__: { get_length: 'get_length' }, fromCodePoint: function (a) { return 65535 >= a ? String.fromCodePoint(a) : String.fromCodePoint((a >> 10) + 55232) + String.fromCodePoint((a & 1023) | 56320); }, fromCodePoints: function (a) { var b = ''; for (a = O(a); a.hasNext(); ) { var c = a.next(); 65535 >= c ? (b += String.fromCodePoint(c)) : ((b += String.fromCodePoint((c >> 10) + 55232)), (b += String.fromCodePoint((c & 1023) | 56320))); } return b; }, fromString: function (a) { return a; }, fromArray: function (a) { for (var b = '', c = 0; c < a.length; ) { var e = a[c]; ++c; b += String.fromCodePoint(e); } return b; }, encodeWith: function (a, b) { 65535 >= b ? a(b) : (a((b >> 10) + 55232), a((b & 1023) | 56320)); }, codeUnitAt: function (a, b) { return a.charCodeAt(b); }, codePointAt: function (a, b) { return Li.decode_code_point( a.length, function (b) { return a.charCodeAt(b); }, b ); }, charAt: function (a, b) { var c = a.charCodeAt(b); return A.substr(a, b, 55296 <= c && 56319 >= c ? 2 : 1); }, codePointCount: function (a, b, c) { for (var e = 0; b < c; ) { var f = a.charCodeAt(b); b += 55296 <= f && 56319 >= f ? 2 : 1; ++e; } return e; }, codePointWidthAt: function (a, b) { a = a.charCodeAt(b); return 55296 <= a && 56319 >= a ? 2 : 1; }, codePointWidthBefore: function (a, b) { a = a.charCodeAt(b - 1); return 56320 <= a && 57343 >= a ? 2 : 1; }, offsetByCodePoints: function (a, b, c) { if (0 <= c) for (var e = a.length, f = 0; f < c && b < e; ) { var d = a.charCodeAt(b); b += 55296 <= d && 56319 >= d ? 2 : 1; ++f; } else for (e = 0; e < -c && 0 < b; ) (d = a.charCodeAt(b - 1)), (b -= 56320 <= d && 57343 >= d ? 2 : 1), ++e; return b; }, substr: function (a, b, c) { return A.substr(a, b, c); }, validate: function (a) { for ( var b = a.length, c = function (b) { return a.charCodeAt(b); }, e = 0; e < b; ) { Li.decode_code_point(b, c, e); var f = a.charCodeAt(e); e += 55296 <= f && 56319 >= f ? 2 : 1; } }, toString: function (a) { return a; }, toArray: function (a) { for (var b = 0, c = a.length, e = []; b < c; ) e.push(a.charCodeAt(b++)); return e; }, _new: function (a) { return a; }, get_length: function (a) { return a.length; }, forward_offset_by_code_points: function (a, b, c) { for (var e = a.length, f = 0; f < c && b < e; ) { var d = a.charCodeAt(b); b += 55296 <= d && 56319 >= d ? 2 : 1; ++f; } return b; }, backward_offset_by_code_points: function (a, b, c) { for (var e = 0; e < c && 0 < b; ) { var f = a.charCodeAt(b - 1); b -= 56320 <= f && 57343 >= f ? 2 : 1; ++e; } return b; } }, Li = function () {}; h['lime._internal.unifill._Utf16.Utf16Impl'] = Li; Li.__name__ = 'lime._internal.unifill._Utf16.Utf16Impl'; Li.code_point_width = function (a) { return 55296 <= a && 56319 >= a ? 2 : 1; }; Li.find_prev_code_point = function (a, b) { a = a(b - 1); return 56320 <= a && 57343 >= a ? 2 : 1; }; Li.encode_code_point = function (a, b) { 65535 >= b ? a(b) : (a((b >> 10) + 55232), a((b & 1023) | 56320)); }; Li.decode_code_point = function (a, b, c) { if (0 > c || a <= c) throw M.thrown(new Ch(c)); var e = b(c); if (55296 <= e && 56319 >= e) { if (0 > c + 1 || a <= c + 1) throw M.thrown(new Ch(c)); a = b(c + 1); if (56320 <= a && 57343 >= a) return ((e - 55232) << 10) | (a & 1023); throw M.thrown(new Ch(c)); } if (56320 <= e && 57343 >= e) throw M.thrown(new Ch(c)); return e; }; var Qj = function () {}; h['lime.app.IModule'] = Qj; Qj.__name__ = 'lime.app.IModule'; Qj.__isInterface__ = !0; Qj.prototype = { __registerLimeModule: null, __unregisterLimeModule: null, __class__: Qj }; var Rj = function () { this.onExit = new Zh(); }; h['lime.app.Module'] = Rj; Rj.__name__ = 'lime.app.Module'; Rj.__interfaces__ = [Qj]; Rj.prototype = { onExit: null, __registerLimeModule: function (a) {}, __unregisterLimeModule: function (a) {}, __class__: Rj }; var vd = function () { this.onCreateWindow = new Ao(); this.onUpdate = new Zh(); this.onExit = new Zh(); null == vd.current && (vd.current = this); this.meta = new qa(); this.modules = []; this.__windowByID = new Za(); this.__windows = []; this.__backend = new uo(this); this.__registerLimeModule(this); this.__preloader = new Bo(); this.__preloader.onProgress.add(q(this, this.onPreloadProgress)); this.__preloader.onComplete.add(q(this, this.onPreloadComplete)); }; h['lime.app.Application'] = vd; vd.__name__ = 'lime.app.Application'; vd.__super__ = Rj; vd.prototype = r(Rj.prototype, { meta: null, modules: null, onUpdate: null, onCreateWindow: null, preloader: null, window: null, windows: null, __backend: null, __preloader: null, __window: null, __windowByID: null, __windows: null, addModule: function (a) { a.__registerLimeModule(this); this.modules.push(a); }, createWindow: function (a) { a = this.__createWindow(a); this.__addWindow(a); return a; }, exec: function () { vd.current = this; return this.__backend.exec(); }, onGamepadAxisMove: function (a, b, c) {}, onGamepadButtonDown: function (a, b) {}, onGamepadButtonUp: function (a, b) {}, onGamepadConnect: function (a) {}, onGamepadDisconnect: function (a) {}, onJoystickAxisMove: function (a, b, c) {}, onJoystickButtonDown: function (a, b) {}, onJoystickButtonUp: function (a, b) {}, onJoystickConnect: function (a) {}, onJoystickDisconnect: function (a) {}, onJoystickHatMove: function (a, b, c) {}, onJoystickTrackballMove: function (a, b, c, e) {}, onKeyDown: function (a, b) {}, onKeyUp: function (a, b) {}, onModuleExit: function (a) {}, onMouseDown: function (a, b, c) {}, onMouseMove: function (a, b) {}, onMouseMoveRelative: function (a, b) {}, onMouseUp: function (a, b, c) {}, onMouseWheel: function (a, b, c) {}, onPreloadComplete: function () {}, onPreloadProgress: function (a, b) {}, onRenderContextLost: function () {}, onRenderContextRestored: function (a) {}, onTextEdit: function (a, b, c) {}, onTextInput: function (a) {}, onTouchCancel: function (a) {}, onTouchEnd: function (a) {}, onTouchMove: function (a) {}, onTouchStart: function (a) {}, onWindowActivate: function () {}, onWindowClose: function () {}, onWindowCreate: function () {}, onWindowDeactivate: function () {}, onWindowDropFile: function (a) {}, onWindowEnter: function () {}, onWindowExpose: function () {}, onWindowFocusIn: function () {}, onWindowFocusOut: function () {}, onWindowFullscreen: function () {}, onWindowLeave: function () {}, onWindowMove: function (a, b) {}, onWindowMinimize: function () {}, onWindowResize: function (a, b) {}, onWindowRestore: function () {}, removeModule: function (a) { null != a && (a.__unregisterLimeModule(this), A.remove(this.modules, a)); }, render: function (a) {}, update: function (a) {}, __addWindow: function (a) { if (null != a) { this.__windows.push(a); this.__windowByID.h[a.id] = a; var b = q(this, this.__onWindowClose); a.onClose.add( function () { b(a); }, !1, -1e4 ); null == this.__window && ((this.__window = a), a.onActivate.add(q(this, this.onWindowActivate)), a.onRenderContextLost.add(q(this, this.onRenderContextLost)), a.onRenderContextRestored.add(q(this, this.onRenderContextRestored)), a.onDeactivate.add(q(this, this.onWindowDeactivate)), a.onDropFile.add(q(this, this.onWindowDropFile)), a.onEnter.add(q(this, this.onWindowEnter)), a.onExpose.add(q(this, this.onWindowExpose)), a.onFocusIn.add(q(this, this.onWindowFocusIn)), a.onFocusOut.add(q(this, this.onWindowFocusOut)), a.onFullscreen.add(q(this, this.onWindowFullscreen)), a.onKeyDown.add(q(this, this.onKeyDown)), a.onKeyUp.add(q(this, this.onKeyUp)), a.onLeave.add(q(this, this.onWindowLeave)), a.onMinimize.add(q(this, this.onWindowMinimize)), a.onMouseDown.add(q(this, this.onMouseDown)), a.onMouseMove.add(q(this, this.onMouseMove)), a.onMouseMoveRelative.add(q(this, this.onMouseMoveRelative)), a.onMouseUp.add(q(this, this.onMouseUp)), a.onMouseWheel.add(q(this, this.onMouseWheel)), a.onMove.add(q(this, this.onWindowMove)), a.onRender.add(q(this, this.render)), a.onResize.add(q(this, this.onWindowResize)), a.onRestore.add(q(this, this.onWindowRestore)), a.onTextEdit.add(q(this, this.onTextEdit)), a.onTextInput.add(q(this, this.onTextInput)), this.onWindowCreate()); this.onCreateWindow.dispatch(a); } }, __createWindow: function (a) { a = new Mi(this, a); return -1 == a.id ? null : a; }, __registerLimeModule: function (a) { a.onUpdate.add(q(this, this.update)); a.onExit.add(q(this, this.onModuleExit), !1, 0); a.onExit.add(q(this, this.__onModuleExit), !1, 0); for (a = Jd.devices.iterator(); a.hasNext(); ) { var b = a.next(); this.__onGamepadConnect(b); } Jd.onConnect.add(q(this, this.__onGamepadConnect)); for (a = zc.devices.iterator(); a.hasNext(); ) (b = a.next()), this.__onJoystickConnect(b); zc.onConnect.add(q(this, this.__onJoystickConnect)); nd.onCancel.add(q(this, this.onTouchCancel)); nd.onStart.add(q(this, this.onTouchStart)); nd.onMove.add(q(this, this.onTouchMove)); nd.onEnd.add(q(this, this.onTouchEnd)); }, __removeWindow: function (a) { null != a && this.__windowByID.h.hasOwnProperty(a.id) && (this.__window == a && (this.__window = null), A.remove(this.__windows, a), this.__windowByID.remove(a.id), a.close(), 0 == this.__windows.length && Wa.exit(0)); }, __onGamepadConnect: function (a) { this.onGamepadConnect(a); var b = q(this, this.onGamepadAxisMove), c = function (c, e) { b(a, c, e); }; a.onAxisMove.add(c); var e = q(this, this.onGamepadButtonDown); c = function (b) { e(a, b); }; a.onButtonDown.add(c); var f = q(this, this.onGamepadButtonUp); c = function (b) { f(a, b); }; a.onButtonUp.add(c); var d = q(this, this.onGamepadDisconnect); a.onDisconnect.add(function () { d(a); }); }, __onJoystickConnect: function (a) { this.onJoystickConnect(a); var b = q(this, this.onJoystickAxisMove), c = function (c, e) { b(a, c, e); }; a.onAxisMove.add(c); var e = q(this, this.onJoystickButtonDown); c = function (b) { e(a, b); }; a.onButtonDown.add(c); var f = q(this, this.onJoystickButtonUp); c = function (b) { f(a, b); }; a.onButtonUp.add(c); var d = q(this, this.onJoystickDisconnect); a.onDisconnect.add(function () { d(a); }); var p = q(this, this.onJoystickHatMove); c = function (b, c) { p(a, b, c); }; a.onHatMove.add(c); var l = q(this, this.onJoystickTrackballMove); c = function (b, c, e) { l(a, b, c, e); }; a.onTrackballMove.add(c); }, __onModuleExit: function (a) { this.__backend.exit(); }, __onWindowClose: function (a) { if (this.__window == a) this.onWindowClose(); this.__removeWindow(a); }, __unregisterLimeModule: function (a) { a.onUpdate.remove(q(this, this.update)); a.onExit.remove(q(this, this.__onModuleExit)); a.onExit.remove(q(this, this.onModuleExit)); Jd.onConnect.remove(q(this, this.__onGamepadConnect)); zc.onConnect.remove(q(this, this.__onJoystickConnect)); nd.onCancel.remove(q(this, this.onTouchCancel)); nd.onStart.remove(q(this, this.onTouchStart)); nd.onMove.remove(q(this, this.onTouchMove)); nd.onEnd.remove(q(this, this.onTouchEnd)); this.onModuleExit(0); }, get_preloader: function () { return this.__preloader; }, get_window: function () { return this.__window; }, get_windows: function () { return this.__windows; }, __class__: vd, __properties__: { get_windows: 'get_windows', get_window: 'get_window', get_preloader: 'get_preloader' } }); var jw = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app.Event'] = jw; jw.__name__ = 'lime.app.Event'; jw.prototype = { canceled: null, __listeners: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, dispatch: null, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __class__: jw }; var kb = function (a, b) { null == b && (b = !1); if (null != a) if (b) (b = new $d()), (b.future = this), Re.queue({ promise: b, work: a }); else try { (this.value = a()), (this.isComplete = !0); } catch (c) { (la.lastError = c), (this.error = M.caught(c).unwrap()), (this.isError = !0); } }; h['lime.app.Future'] = kb; kb.__name__ = 'lime.app.Future'; kb.ofEvents = function (a, b, c) { var e = new $d(); a.add(function (a) { e.complete(a); }, !0); null != b && b.add(function (a) { e.error(a); }, !0); null != c && c.add(function (a, b) { e.progress(a, b); }, !0); return e.future; }; kb.withError = function (a) { var b = new kb(); b.isError = !0; b.error = a; return b; }; kb.withValue = function (a) { var b = new kb(); b.isComplete = !0; b.value = a; return b; }; kb.prototype = { error: null, isComplete: null, isError: null, value: null, __completeListeners: null, __errorListeners: null, __progressListeners: null, onComplete: function (a) { null != a && (this.isComplete ? a(this.value) : this.isError || (null == this.__completeListeners && (this.__completeListeners = []), this.__completeListeners.push(a))); return this; }, onError: function (a) { null != a && (this.isError ? a(this.error) : this.isComplete || (null == this.__errorListeners && (this.__errorListeners = []), this.__errorListeners.push(a))); return this; }, onProgress: function (a) { null != a && (null == this.__progressListeners && (this.__progressListeners = []), this.__progressListeners.push(a)); return this; }, ready: function (a) { this.isComplete || this.isError || Xa.warn('Cannot block thread in JavaScript', { fileName: 'lime/app/Future.hx', lineNumber: 208, className: 'lime.app.Future', methodName: 'ready' }); return this; }, result: function (a) { null == a && (a = -1); this.ready(a); return this.isComplete ? this.value : null; }, then: function (a) { if (this.isComplete) return a(this.value); if (this.isError) { var b = new kb(); b.isError = !0; b.error = this.error; return b; } var c = new $d(); this.onError(q(c, c.error)); this.onProgress(q(c, c.progress)); this.onComplete(function (b) { b = a(b); b.onError(q(c, c.error)); b.onComplete(q(c, c.complete)); }); return c.future; }, __class__: kb }; var Re = function () {}; h['lime.app._Future.FutureWork'] = Re; Re.__name__ = 'lime.app._Future.FutureWork'; Re.queue = function (a) { null == Re.threadPool && ((Re.threadPool = new Co()), Re.threadPool.doWork.add(Re.threadPool_doWork), Re.threadPool.onComplete.add(Re.threadPool_onComplete), Re.threadPool.onError.add(Re.threadPool_onError)); Re.threadPool.queue(a); }; Re.threadPool_doWork = function (a) { try { var b = a.work(); Re.threadPool.sendComplete({ promise: a.promise, result: b }); } catch (c) { (la.lastError = c), (b = M.caught(c).unwrap()), Re.threadPool.sendError({ promise: a.promise, error: b }); } }; Re.threadPool_onComplete = function (a) { a.promise.complete(a.result); }; Re.threadPool_onError = function (a) { a.promise.error(a.error); }; var $d = function () { this.future = new kb(); }; h['lime.app.Promise'] = $d; $d.__name__ = 'lime.app.Promise'; $d.prototype = { future: null, isComplete: null, isError: null, complete: function (a) { if ( !this.future.isError && ((this.future.isComplete = !0), (this.future.value = a), null != this.future.__completeListeners) ) { for (var b = 0, c = this.future.__completeListeners; b < c.length; ) { var e = c[b]; ++b; e(a); } this.future.__completeListeners = null; } return this; }, completeWith: function (a) { a.onComplete(q(this, this.complete)); a.onError(q(this, this.error)); a.onProgress(q(this, this.progress)); return this; }, error: function (a) { if ( !this.future.isComplete && ((this.future.isError = !0), (this.future.error = a), null != this.future.__errorListeners) ) { for (var b = 0, c = this.future.__errorListeners; b < c.length; ) { var e = c[b]; ++b; e(a); } this.future.__errorListeners = null; } return this; }, progress: function (a, b) { if ( !this.future.isError && !this.future.isComplete && null != this.future.__progressListeners ) for (var c = 0, e = this.future.__progressListeners; c < e.length; ) { var f = e[c]; ++c; f(a, b); } return this; }, get_isComplete: function () { return this.future.isComplete; }, get_isError: function () { return this.future.isError; }, __class__: $d, __properties__: { get_isError: 'get_isError', get_isComplete: 'get_isComplete' } }; var $h = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_Dynamic_Void'] = $h; $h.__name__ = 'lime.app._Event_Dynamic_Void'; $h.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a) { this.canceled = !1; for ( var b = this.__listeners, c = this.__repeat, e = 0; e < b.length && (b[e](a), c[e] ? ++e : this.remove(b[e]), !this.canceled); ); }, __class__: $h }; var Do = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_Float_Float_Float_Void'] = Do; Do.__name__ = 'lime.app._Event_Float_Float_Float_Void'; Do.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a, b, c) { this.canceled = !1; for ( var e = this.__listeners, f = this.__repeat, d = 0; d < e.length && (e[d](a, b, c), f[d] ? ++d : this.remove(e[d]), !this.canceled); ); }, __class__: Do }; var Eo = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_Float_Float_Int_Void'] = Eo; Eo.__name__ = 'lime.app._Event_Float_Float_Int_Void'; Eo.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a, b, c) { this.canceled = !1; for ( var e = this.__listeners, f = this.__repeat, d = 0; d < e.length && (e[d](a, b, c), f[d] ? ++d : this.remove(e[d]), !this.canceled); ); }, __class__: Eo }; var Sj = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_Float_Float_Void'] = Sj; Sj.__name__ = 'lime.app._Event_Float_Float_Void'; Sj.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a, b) { this.canceled = !1; for ( var c = this.__listeners, e = this.__repeat, f = 0; f < c.length && (c[f](a, b), e[f] ? ++f : this.remove(c[f]), !this.canceled); ); }, __class__: Sj }; var Fo = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_Float_Float_lime_ui_MouseButton_Void'] = Fo; Fo.__name__ = 'lime.app._Event_Float_Float_lime_ui_MouseButton_Void'; Fo.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a, b, c) { this.canceled = !1; for ( var e = this.__listeners, f = this.__repeat, d = 0; d < e.length && (e[d](a, b, c), f[d] ? ++d : this.remove(e[d]), !this.canceled); ); }, __class__: Fo }; var Go = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_Float_Float_lime_ui_MouseWheelMode_Void'] = Go; Go.__name__ = 'lime.app._Event_Float_Float_lime_ui_MouseWheelMode_Void'; Go.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a, b, c) { this.canceled = !1; for ( var e = this.__listeners, f = this.__repeat, d = 0; d < e.length && (e[d](a, b, c), f[d] ? ++d : this.remove(e[d]), !this.canceled); ); }, __class__: Go }; var Ho = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_Int_Float_Float_Void'] = Ho; Ho.__name__ = 'lime.app._Event_Int_Float_Float_Void'; Ho.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a, b, c) { this.canceled = !1; for ( var e = this.__listeners, f = this.__repeat, d = 0; d < e.length && (e[d](a, b, c), f[d] ? ++d : this.remove(e[d]), !this.canceled); ); }, __class__: Ho }; var Io = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_Int_Float_Void'] = Io; Io.__name__ = 'lime.app._Event_Int_Float_Void'; Io.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a, b) { this.canceled = !1; for ( var c = this.__listeners, e = this.__repeat, f = 0; f < c.length && (c[f](a, b), e[f] ? ++f : this.remove(c[f]), !this.canceled); ); }, __class__: Io }; var om = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_Int_Int_Void'] = om; om.__name__ = 'lime.app._Event_Int_Int_Void'; om.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a, b) { this.canceled = !1; for ( var c = this.__listeners, e = this.__repeat, f = 0; f < c.length && (c[f](a, b), e[f] ? ++f : this.remove(c[f]), !this.canceled); ); }, __class__: om }; var Zh = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_Int_Void'] = Zh; Zh.__name__ = 'lime.app._Event_Int_Void'; Zh.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a) { this.canceled = !1; for ( var b = this.__listeners, c = this.__repeat, e = 0; e < b.length && (b[e](a), c[e] ? ++e : this.remove(b[e]), !this.canceled); ); }, __class__: Zh }; var Jo = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_Int_lime_ui_JoystickHatPosition_Void'] = Jo; Jo.__name__ = 'lime.app._Event_Int_lime_ui_JoystickHatPosition_Void'; Jo.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a, b) { this.canceled = !1; for ( var c = this.__listeners, e = this.__repeat, f = 0; f < c.length && (c[f](a, b), e[f] ? ++f : this.remove(c[f]), !this.canceled); ); }, __class__: Jo }; var Ko = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_String_Int_Int_Void'] = Ko; Ko.__name__ = 'lime.app._Event_String_Int_Int_Void'; Ko.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a, b, c) { this.canceled = !1; for ( var e = this.__listeners, f = this.__repeat, d = 0; d < e.length && (e[d](a, b, c), f[d] ? ++d : this.remove(e[d]), !this.canceled); ); }, __class__: Ko }; var pm = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_String_Void'] = pm; pm.__name__ = 'lime.app._Event_String_Void'; pm.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a) { this.canceled = !1; for ( var b = this.__listeners, c = this.__repeat, e = 0; e < b.length && (b[e](a), c[e] ? ++e : this.remove(b[e]), !this.canceled); ); }, __class__: pm }; var Ld = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_Void_Void'] = Ld; Ld.__name__ = 'lime.app._Event_Void_Void'; Ld.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function () { this.canceled = !1; for ( var a = this.__listeners, b = this.__repeat, c = 0; c < a.length && (a[c](), b[c] ? ++c : this.remove(a[c]), !this.canceled); ); }, __class__: Ld }; var qm = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_lime_graphics_RenderContext_Void'] = qm; qm.__name__ = 'lime.app._Event_lime_graphics_RenderContext_Void'; qm.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a) { this.canceled = !1; for ( var b = this.__listeners, c = this.__repeat, e = 0; e < b.length && (b[e](a), c[e] ? ++e : this.remove(b[e]), !this.canceled); ); }, __class__: qm }; var Lo = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_lime_ui_GamepadAxis_Float_Void'] = Lo; Lo.__name__ = 'lime.app._Event_lime_ui_GamepadAxis_Float_Void'; Lo.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a, b) { this.canceled = !1; for ( var c = this.__listeners, e = this.__repeat, f = 0; f < c.length && (c[f](a, b), e[f] ? ++f : this.remove(c[f]), !this.canceled); ); }, __class__: Lo }; var rm = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_lime_ui_GamepadButton_Void'] = rm; rm.__name__ = 'lime.app._Event_lime_ui_GamepadButton_Void'; rm.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a) { this.canceled = !1; for ( var b = this.__listeners, c = this.__repeat, e = 0; e < b.length && (b[e](a), c[e] ? ++e : this.remove(b[e]), !this.canceled); ); }, __class__: rm }; var Mo = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_lime_ui_Gamepad_Void'] = Mo; Mo.__name__ = 'lime.app._Event_lime_ui_Gamepad_Void'; Mo.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a) { this.canceled = !1; for ( var b = this.__listeners, c = this.__repeat, e = 0; e < b.length && (b[e](a), c[e] ? ++e : this.remove(b[e]), !this.canceled); ); }, __class__: Mo }; var No = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_lime_ui_Joystick_Void'] = No; No.__name__ = 'lime.app._Event_lime_ui_Joystick_Void'; No.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a) { this.canceled = !1; for ( var b = this.__listeners, c = this.__repeat, e = 0; e < b.length && (b[e](a), c[e] ? ++e : this.remove(b[e]), !this.canceled); ); }, __class__: No }; var sm = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_lime_ui_KeyCode_lime_ui_KeyModifier_Void'] = sm; sm.__name__ = 'lime.app._Event_lime_ui_KeyCode_lime_ui_KeyModifier_Void'; sm.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a, b) { this.canceled = !1; for ( var c = this.__listeners, e = this.__repeat, f = 0; f < c.length && (c[f](a, b), e[f] ? ++f : this.remove(c[f]), !this.canceled); ); }, __class__: sm }; var Ni = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_lime_ui_Touch_Void'] = Ni; Ni.__name__ = 'lime.app._Event_lime_ui_Touch_Void'; Ni.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a) { this.canceled = !1; for ( var b = this.__listeners, c = this.__repeat, e = 0; e < b.length && (b[e](a), c[e] ? ++e : this.remove(b[e]), !this.canceled); ); }, __class__: Ni }; var Ao = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_lime_ui_Window_Void'] = Ao; Ao.__name__ = 'lime.app._Event_lime_ui_Window_Void'; Ao.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a) { this.canceled = !1; for ( var b = this.__listeners, c = this.__repeat, e = 0; e < b.length && (b[e](a), c[e] ? ++e : this.remove(b[e]), !this.canceled); ); }, __class__: Ao }; var kw = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; h['lime.app._Event_ofEvents_T_Void'] = kw; kw.__name__ = 'lime.app._Event_ofEvents_T_Void'; kw.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var e = 0, f = this.__priorities.length; e < f; ) { var d = e++; if (c > this.__priorities[d]) { this.__listeners.splice(d, 0, a); this.__priorities.splice(d, 0, c); this.__repeat.splice(d, 0, !b); return; } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b); }, cancel: function () { this.canceled = !0; }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length; ) { var e = c[b]; ++b; if (Z.compareMethods(e, a)) return !0; } return !1; }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b; ) Z.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)); }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a); }, __listeners: null, dispatch: function (a) { this.canceled = !1; for ( var b = this.__listeners, c = this.__repeat, e = 0; e < b.length && (b[e](a), c[e] ? ++e : this.remove(b[e]), !this.canceled); ); }, __class__: kw }; var Fb = function (a, b, c, e, f, d, p) { null == f && (f = -1); null == e && (e = -1); null == c && (c = 0); null == b && (b = 0); this.offsetX = b; this.offsetY = c; this.width = e; this.height = f; this.version = 0; null == p && (p = ve.CANVAS); this.type = p; if (null == a) { if (0 < e && 0 < f) switch (this.type._hx_index) { case 0: this.buffer = new Rf(null, e, f); Aa.createCanvas(this, e, f); null != d && 0 != d && this.fillRect(new Qd(0, 0, e, f), d); break; case 1: (a = e * f * 4), (a = null != a ? new Uint8Array(a) : null), (this.buffer = new Rf(a, e, f)), null != d && 0 != d && this.fillRect(new Qd(0, 0, e, f), d); } } else this.__fromImageBuffer(a); }; h['lime.graphics.Image'] = Fb; Fb.__name__ = 'lime.graphics.Image'; Fb.fromBase64 = function (a, b) { if (null == a) return null; var c = new Fb(); c.__fromBase64(a, b); return c; }; Fb.fromBitmapData = function (a) { return null == a ? null : a.image; }; Fb.fromBytes = function (a) { if (null == a) return null; var b = new Fb(); return b.__fromBytes(a) ? b : null; }; Fb.fromCanvas = function (a) { if (null == a) return null; var b = new Rf(null, a.width, a.height); b.set_src(a); a = new Fb(b); a.type = ve.CANVAS; return a; }; Fb.fromFile = function (a) { if (null == a) return null; var b = new Fb(); return b.__fromFile(a) ? b : null; }; Fb.fromImageElement = function (a) { if (null == a) return null; var b = new Rf(null, a.width, a.height); b.set_src(a); a = new Fb(b); a.type = ve.CANVAS; return a; }; Fb.loadFromBase64 = function (a, b) { return null == a || null == b ? kb.withValue(null) : Ua.loadImage('data:' + b + ';base64,' + a); }; Fb.loadFromBytes = function (a) { if (null == a) return kb.withValue(null); if (Fb.__isPNG(a)) var b = 'image/png'; else if (Fb.__isJPG(a)) b = 'image/jpeg'; else if (Fb.__isGIF(a)) b = 'image/gif'; else if (Fb.__isWebP(a)) b = 'image/webp'; else return kb.withValue(null); return Ua.loadImageFromBytes(a, b); }; Fb.loadFromFile = function (a) { return null == a ? kb.withValue(null) : Ua.loadImage(a); }; Fb.__isGIF = function (a) { if (null == a || 6 > a.length) return !1; a = a.getString(0, 6); return 'GIF87a' != a ? 'GIF89a' == a : !0; }; Fb.__isJPG = function (a) { return null == a || 4 > a.length ? !1 : 255 == a.b[0] && 216 == a.b[1] && 255 == a.b[a.length - 2] ? 217 == a.b[a.length - 1] : !1; }; Fb.__isPNG = function (a) { return null == a || 8 > a.length ? !1 : 137 == a.b[0] && 80 == a.b[1] && 78 == a.b[2] && 71 == a.b[3] && 13 == a.b[4] && 10 == a.b[5] && 26 == a.b[6] ? 10 == a.b[7] : !1; }; Fb.__isWebP = function (a) { return null == a || 16 > a.length ? !1 : 'RIFF' == a.getString(0, 4) ? 'WEBP' == a.getString(8, 4) : !1; }; Fb.prototype = { buffer: null, dirty: null, height: null, offsetX: null, offsetY: null, rect: null, type: null, version: null, width: null, x: null, y: null, clone: function () { if (null != this.buffer) { this.type == ve.CANVAS ? Aa.convertToCanvas(this) : Aa.convertToData(this); var a = new Fb( this.buffer.clone(), this.offsetX, this.offsetY, this.width, this.height, null, this.type ); a.version = this.version; return a; } return new Fb(null, this.offsetX, this.offsetY, this.width, this.height, null, this.type); }, colorTransform: function (a, b) { a = this.__clipRect(a); if (null != this.buffer && null != a) switch (this.type._hx_index) { case 0: Aa.colorTransform(this, a, b); break; case 1: Aa.convertToData(this); Ra.colorTransform(this, a, b); break; case 2: a.offset(this.offsetX, this.offsetY), this.buffer.__srcBitmapData.colorTransform( a.__toFlashRectangle(), Kd.__toFlashColorTransform(b) ); } }, copyChannel: function (a, b, c, e, f) { b = this.__clipRect(b); if ( null != this.buffer && null != b && !((f == nf.ALPHA && !this.get_transparent()) || 0 >= b.width || 0 >= b.height) ) switch ( (b.x + b.width > a.width && (b.width = a.width - b.x), b.y + b.height > a.height && (b.height = a.height - b.y), this.type._hx_index) ) { case 0: Aa.copyChannel(this, a, b, c, e, f); break; case 1: Aa.convertToData(this); Aa.convertToData(a); Ra.copyChannel(this, a, b, c, e, f); break; case 2: switch (e._hx_index) { case 0: var d = 1; break; case 1: d = 2; break; case 2: d = 4; break; case 3: d = 8; } switch (f._hx_index) { case 0: var p = 1; break; case 1: p = 2; break; case 2: p = 4; break; case 3: p = 8; } b.offset(a.offsetX, a.offsetY); c.offset(this.offsetX, this.offsetY); this.buffer.__srcBitmapData.copyChannel( a.buffer.get_src(), b.__toFlashRectangle(), c.__toFlashPoint(), d, p ); } }, copyPixels: function (a, b, c, e, f, d) { null == d && (d = !1); if ( null != this.buffer && null != a && !(0 >= b.width || 0 >= b.height || 0 >= this.width || 0 >= this.height) ) switch ( (b.x + b.width > a.width && (b.width = a.width - b.x), b.y + b.height > a.height && (b.height = a.height - b.y), 0 > b.x && ((b.width += b.x), (b.x = 0)), 0 > b.y && ((b.height += b.y), (b.y = 0)), c.x + b.width > this.width && (b.width = this.width - c.x), c.y + b.height > this.height && (b.height = this.height - c.y), 0 > c.x && ((b.width += c.x), (b.x -= c.x), (c.x = 0)), 0 > c.y && ((b.height += c.y), (b.y -= c.y), (c.y = 0)), a == this && c.x < b.get_right() && c.y < b.get_bottom() && (a = this.clone()), e == a && (null == f || (0 == f.x && 0 == f.y)) && (f = e = null), this.type._hx_index) ) { case 0: null != e ? (Aa.convertToData(this), Aa.convertToData(a), null != e && Aa.convertToData(e), Ra.copyPixels(this, a, b, c, e, f, d)) : (Aa.convertToCanvas(this), Aa.convertToCanvas(a), Aa.copyPixels(this, a, b, c, e, f, d)); break; case 1: Aa.convertToData(this); Aa.convertToData(a); null != e && Aa.convertToData(e); Ra.copyPixels(this, a, b, c, e, f, d); break; case 2: b.offset(a.offsetX, a.offsetY), c.offset(this.offsetX, this.offsetY), null != e && null != f && f.offset(e.offsetX, e.offsetY), this.buffer.__srcBitmapData.copyPixels( a.buffer.__srcBitmapData, b.__toFlashRectangle(), c.__toFlashPoint(), null != e ? e.buffer.get_src() : null, null != f ? f.__toFlashPoint() : null, d ); } }, encode: function (a, b) { null == b && (b = 90); if (null == a) return Pj.encode(this); switch (a._hx_index) { case 0: return hw.encode(this); case 1: return lm.encode(this, b); case 2: return Pj.encode(this); } }, fillRect: function (a, b, c) { a = this.__clipRect(a); if (null != this.buffer && null != a) switch (this.type._hx_index) { case 0: Aa.fillRect(this, a, b, c); break; case 1: Aa.convertToData(this); if (0 == this.buffer.data.length) break; Ra.fillRect(this, a, b, c); break; case 2: a.offset(this.offsetX, this.offsetY); if (null == c) b = ((b & 255) << 24) | (((b >>> 24) & 255) << 16) | (((b >>> 16) & 255) << 8) | ((b >>> 8) & 255); else switch (c) { case 1: break; case 2: b = ((b & 255) << 24) | (((b >>> 8) & 255) << 16) | (((b >>> 16) & 255) << 8) | ((b >>> 24) & 255); break; default: b = ((b & 255) << 24) | (((b >>> 24) & 255) << 16) | (((b >>> 16) & 255) << 8) | ((b >>> 8) & 255); } this.buffer.__srcBitmapData.fillRect(a.__toFlashRectangle(), b); } }, floodFill: function (a, b, c, e) { if (null != this.buffer) switch (this.type._hx_index) { case 0: Aa.floodFill(this, a, b, c, e); break; case 1: Aa.convertToData(this); Ra.floodFill(this, a, b, c, e); break; case 2: if (null == e) c = ((c & 255) << 24) | (((c >>> 24) & 255) << 16) | (((c >>> 16) & 255) << 8) | ((c >>> 8) & 255); else switch (e) { case 1: break; case 2: c = ((c & 255) << 24) | (((c >>> 8) & 255) << 16) | (((c >>> 16) & 255) << 8) | ((c >>> 24) & 255); break; default: c = ((c & 255) << 24) | (((c >>> 24) & 255) << 16) | (((c >>> 16) & 255) << 8) | ((c >>> 8) & 255); } this.buffer.__srcBitmapData.floodFill(a + this.offsetX, b + this.offsetY, c); } }, getColorBoundsRect: function (a, b, c, e) { null == c && (c = !0); if (null == this.buffer) return null; switch (this.type._hx_index) { case 0: return Aa.convertToData(this), Ra.getColorBoundsRect(this, a, b, c, e); case 1: return Ra.getColorBoundsRect(this, a, b, c, e); case 2: return ( (a = this.buffer.__srcBitmapData.getColorBoundsRect(a, b, c)), new Qd(a.x, a.y, a.width, a.height) ); default: return null; } }, getPixel: function (a, b, c) { if (null == this.buffer || 0 > a || 0 > b || a >= this.width || b >= this.height) return 0; switch (this.type._hx_index) { case 0: return Aa.getPixel(this, a, b, c); case 1: return Aa.convertToData(this), Ra.getPixel(this, a, b, c); case 2: a = this.buffer.__srcBitmapData.getPixel(a + this.offsetX, b + this.offsetY); if (null == c) return ( (((a >>> 16) & 255) << 24) | (((a >>> 8) & 255) << 16) | ((a & 255) << 8) | ((a >>> 24) & 255) ); switch (c) { case 1: return a; case 2: return ( ((a & 255) << 24) | (((a >>> 8) & 255) << 16) | (((a >>> 16) & 255) << 8) | ((a >>> 24) & 255) ); default: return ( (((a >>> 16) & 255) << 24) | (((a >>> 8) & 255) << 16) | ((a & 255) << 8) | ((a >>> 24) & 255) ); } default: return 0; } }, getPixel32: function (a, b, c) { if (null == this.buffer || 0 > a || 0 > b || a >= this.width || b >= this.height) return 0; switch (this.type._hx_index) { case 0: return Aa.getPixel32(this, a, b, c); case 1: return Aa.convertToData(this), Ra.getPixel32(this, a, b, c); case 2: a = this.buffer.__srcBitmapData.getPixel32(a + this.offsetX, b + this.offsetY); if (null == c) return ( (((a >>> 16) & 255) << 24) | (((a >>> 8) & 255) << 16) | ((a & 255) << 8) | ((a >>> 24) & 255) ); switch (c) { case 1: return a; case 2: return ( ((a & 255) << 24) | (((a >>> 8) & 255) << 16) | (((a >>> 16) & 255) << 8) | ((a >>> 24) & 255) ); default: return ( (((a >>> 16) & 255) << 24) | (((a >>> 8) & 255) << 16) | ((a & 255) << 8) | ((a >>> 24) & 255) ); } default: return 0; } }, getPixels: function (a, b) { if (null == this.buffer) return null; switch (this.type._hx_index) { case 0: return Aa.getPixels(this, a, b); case 1: return Aa.convertToData(this), Ra.getPixels(this, a, b); case 2: return null; default: return null; } }, merge: function (a, b, c, e, f, d, p) { if (null != this.buffer && null != a) switch (this.type._hx_index) { case 0: Aa.convertToCanvas(this); Aa.merge(this, a, b, c, e, f, d, p); break; case 1: Aa.convertToData(this); Aa.convertToData(a); Ra.merge(this, a, b, c, e, f, d, p); break; case 2: b.offset(this.offsetX, this.offsetY), this.buffer.__srcBitmapData.merge( a.buffer.__srcBitmapData, b.__toFlashRectangle(), c.__toFlashPoint(), e, f, d, p ); } }, resize: function (a, b) { switch (this.type._hx_index) { case 0: Aa.resize(this, a, b); break; case 1: Ra.resize(this, a, b); } this.buffer.width = a; this.buffer.height = b; this.offsetY = this.offsetX = 0; this.width = a; this.height = b; }, scroll: function (a, b) { if (null != this.buffer) switch (this.type._hx_index) { case 0: Aa.scroll(this, a, b); break; case 1: this.copyPixels(this, this.get_rect(), new Xd(a, b)); break; case 2: this.buffer.__srcBitmapData.scroll(a + this.offsetX, b + this.offsetX); } }, setPixel: function (a, b, c, e) { if (!(null == this.buffer || 0 > a || 0 > b || a >= this.width || b >= this.height)) switch (this.type._hx_index) { case 0: Aa.setPixel(this, a, b, c, e); break; case 1: Aa.convertToData(this); Ra.setPixel(this, a, b, c, e); break; case 2: if (null == e) c = ((c & 255) << 24) | (((c >>> 24) & 255) << 16) | (((c >>> 16) & 255) << 8) | ((c >>> 8) & 255); else switch (e) { case 1: break; case 2: c = ((c & 255) << 24) | (((c >>> 8) & 255) << 16) | (((c >>> 16) & 255) << 8) | ((c >>> 24) & 255); break; default: c = ((c & 255) << 24) | (((c >>> 24) & 255) << 16) | (((c >>> 16) & 255) << 8) | ((c >>> 8) & 255); } this.buffer.__srcBitmapData.setPixel(a + this.offsetX, b + this.offsetX, c); } }, setPixel32: function (a, b, c, e) { if (!(null == this.buffer || 0 > a || 0 > b || a >= this.width || b >= this.height)) switch (this.type._hx_index) { case 0: Aa.setPixel32(this, a, b, c, e); break; case 1: Aa.convertToData(this); Ra.setPixel32(this, a, b, c, e); break; case 2: if (null == e) c = ((c & 255) << 24) | (((c >>> 24) & 255) << 16) | (((c >>> 16) & 255) << 8) | ((c >>> 8) & 255); else switch (e) { case 1: break; case 2: c = ((c & 255) << 24) | (((c >>> 8) & 255) << 16) | (((c >>> 16) & 255) << 8) | ((c >>> 24) & 255); break; default: c = ((c & 255) << 24) | (((c >>> 24) & 255) << 16) | (((c >>> 16) & 255) << 8) | ((c >>> 8) & 255); } this.buffer.__srcBitmapData.setPixel32(a + this.offsetX, b + this.offsetY, c); } }, setPixels: function (a, b, c, e) { a = this.__clipRect(a); if (null != this.buffer && null != a) switch ((null == e && (e = Bg.BIG_ENDIAN), this.type._hx_index)) { case 0: Aa.setPixels(this, a, b, c, e); break; case 1: Aa.convertToData(this), Ra.setPixels(this, a, b, c, e); } }, threshold: function (a, b, c, e, f, d, p, l, v) { null == l && (l = !1); null == p && (p = -1); null == d && (d = 0); if (null == this.buffer || null == a || null == b) return 0; switch (this.type._hx_index) { case 0: case 1: return ( Aa.convertToData(this), Aa.convertToData(a), Ra.threshold(this, a, b, c, e, f, d, p, l, v) ); case 2: if (null == v) { var g = d; d = ((g & 255) << 24) | (((g >>> 24) & 255) << 16) | (((g >>> 16) & 255) << 8) | ((g >>> 8) & 255); } else switch (v) { case 1: break; case 2: g = d; d = ((g & 255) << 24) | (((g >>> 8) & 255) << 16) | (((g >>> 16) & 255) << 8) | ((g >>> 24) & 255); break; default: (g = d), (d = ((g & 255) << 24) | (((g >>> 24) & 255) << 16) | (((g >>> 16) & 255) << 8) | ((g >>> 8) & 255)); } if (null == v) (g = p), (p = ((g & 255) << 24) | (((g >>> 24) & 255) << 16) | (((g >>> 16) & 255) << 8) | ((g >>> 8) & 255)); else switch (v) { case 1: break; case 2: g = p; p = ((g & 255) << 24) | (((g >>> 8) & 255) << 16) | (((g >>> 16) & 255) << 8) | ((g >>> 24) & 255); break; default: (g = p), (p = ((g & 255) << 24) | (((g >>> 24) & 255) << 16) | (((g >>> 16) & 255) << 8) | ((g >>> 8) & 255)); } b.offset(a.offsetX, a.offsetY); c.offset(this.offsetX, this.offsetY); return this.buffer.__srcBitmapData.threshold( a.buffer.get_src(), b.__toFlashRectangle(), c.__toFlashPoint(), e, f, d, p, l ); } return 0; }, __clipRect: function (a) { return null == a || (0 > a.x && ((a.width -= -a.x), (a.x = 0), 0 >= a.x + a.width)) || (0 > a.y && ((a.height -= -a.y), (a.y = 0), 0 >= a.y + a.height)) || (a.x + a.width >= this.width && ((a.width -= a.x + a.width - this.width), 0 >= a.width)) || (a.y + a.height >= this.height && ((a.height -= a.y + a.height - this.height), 0 >= a.height)) ? null : a; }, __fromBase64: function (a, b, c) { var e = this, f = new Image(); f.addEventListener( 'load', function (a) { e.buffer = new Rf(null, f.width, f.height); e.buffer.__srcImage = f; e.offsetX = 0; e.offsetY = 0; e.width = e.buffer.width; e.height = e.buffer.height; null != c && c(e); }, !1 ); f.src = 'data:' + b + ';base64,' + a; }, __fromBytes: function (a, b) { if (Fb.__isPNG(a)) var c = 'image/png'; else if (Fb.__isJPG(a)) c = 'image/jpeg'; else if (Fb.__isGIF(a)) c = 'image/gif'; else return !1; this.__fromBase64(Qf.encode(a), c, b); return !0; }, __fromFile: function (a, b, c) { var e = this, f = new Image(); Ua.__isSameOrigin(a) || (f.crossOrigin = 'Anonymous'); f.onload = function (a) { e.buffer = new Rf(null, f.width, f.height); e.buffer.__srcImage = f; e.width = f.width; e.height = f.height; null != b && b(e); }; f.onerror = function (a) { null != c && c(); }; f.src = a; return !0; }, __fromImageBuffer: function (a) { this.buffer = a; null != a && (-1 == this.width && (this.width = a.width), -1 == this.height && (this.height = a.height)); }, get_data: function () { null == this.buffer.data && 0 < this.buffer.width && 0 < this.buffer.height && Aa.convertToData(this); return this.buffer.data; }, set_data: function (a) { return (this.buffer.data = a); }, get_format: function () { return this.buffer.format; }, set_format: function (a) { this.buffer.format != a && 1 == this.type._hx_index && Ra.setFormat(this, a); return (this.buffer.format = a); }, get_powerOfTwo: function () { return 0 != this.buffer.width && (this.buffer.width & (~this.buffer.width + 1)) == this.buffer.width ? 0 != this.buffer.height ? (this.buffer.height & (~this.buffer.height + 1)) == this.buffer.height : !1 : !1; }, set_powerOfTwo: function (a) { if (a != this.get_powerOfTwo()) { for (var b = 1, c = 1; b < this.buffer.width; ) b <<= 1; for (; c < this.buffer.height; ) c <<= 1; if (b == this.buffer.width && c == this.buffer.height) return a; switch (this.type._hx_index) { case 0: Aa.convertToData(this); Ra.resizeBuffer(this, b, c); break; case 1: Ra.resizeBuffer(this, b, c); } } return a; }, get_premultiplied: function () { return this.buffer.premultiplied; }, set_premultiplied: function (a) { if (a && !this.buffer.premultiplied) switch (this.type._hx_index) { case 0: case 1: Aa.convertToData(this), Ra.multiplyAlpha(this); } else !a && this.buffer.premultiplied && 1 == this.type._hx_index && (Aa.convertToData(this), Ra.unmultiplyAlpha(this)); return a; }, get_rect: function () { return new Qd(0, 0, this.width, this.height); }, get_src: function () { null != this.buffer.__srcCanvas || (null == this.buffer.data && this.type != ve.DATA) || Aa.convertToCanvas(this); return this.buffer.get_src(); }, set_src: function (a) { return this.buffer.set_src(a); }, get_transparent: function () { return null == this.buffer ? !1 : this.buffer.transparent; }, set_transparent: function (a) { return null == this.buffer ? !1 : (this.buffer.transparent = a); }, __class__: Fb, __properties__: { set_transparent: 'set_transparent', get_transparent: 'get_transparent', set_src: 'set_src', get_src: 'get_src', get_rect: 'get_rect', set_premultiplied: 'set_premultiplied', get_premultiplied: 'get_premultiplied', set_powerOfTwo: 'set_powerOfTwo', get_powerOfTwo: 'get_powerOfTwo', set_format: 'set_format', get_format: 'get_format', set_data: 'set_data', get_data: 'get_data' } }; var Rf = function (a, b, c, e, f) { null == e && (e = 32); null == c && (c = 0); null == b && (b = 0); this.data = a; this.width = b; this.height = c; this.bitsPerPixel = e; this.format = null == f ? 0 : f; this.premultiplied = !1; this.transparent = !0; }; h['lime.graphics.ImageBuffer'] = Rf; Rf.__name__ = 'lime.graphics.ImageBuffer'; Rf.prototype = { bitsPerPixel: null, data: null, format: null, height: null, premultiplied: null, transparent: null, width: null, __srcBitmapData: null, __srcCanvas: null, __srcContext: null, __srcCustom: null, __srcImage: null, __srcImageData: null, clone: function () { var a = new Rf(this.data, this.width, this.height, this.bitsPerPixel); if (null != this.data) { var b = this.data.byteLength, c = null, e = null, f = null, d = null, p = null; b = null != b ? new Uint8Array(b) : null != c ? new Uint8Array(c) : null != e ? new Uint8Array(e.__array) : null != f ? new Uint8Array(f) : null != d ? null == p ? new Uint8Array(d, 0) : new Uint8Array(d, 0, p) : null; a.data = b; e = c = b = null; f = this.data; p = d = null; b = null != b ? new Uint8Array(b) : null != c ? new Uint8Array(c) : null != e ? new Uint8Array(e.__array) : null != f ? new Uint8Array(f) : null != d ? null == p ? new Uint8Array(d, 0) : new Uint8Array(d, 0, p) : null; a.data.set(b); } else null != this.__srcImageData ? ((a.__srcCanvas = window.document.createElement('canvas')), (a.__srcContext = a.__srcCanvas.getContext('2d')), (a.__srcCanvas.width = this.__srcImageData.width), (a.__srcCanvas.height = this.__srcImageData.height), (a.__srcImageData = a.__srcContext.createImageData( this.__srcImageData.width, this.__srcImageData.height )), (b = new Uint8ClampedArray(this.__srcImageData.data)), a.__srcImageData.data.set(b)) : null != this.__srcCanvas ? ((a.__srcCanvas = window.document.createElement('canvas')), (a.__srcContext = a.__srcCanvas.getContext('2d')), (a.__srcCanvas.width = this.__srcCanvas.width), (a.__srcCanvas.height = this.__srcCanvas.height), a.__srcContext.drawImage(this.__srcCanvas, 0, 0)) : (a.__srcImage = this.__srcImage); a.bitsPerPixel = this.bitsPerPixel; a.format = this.format; a.premultiplied = this.premultiplied; a.transparent = this.transparent; return a; }, get_src: function () { return null != this.__srcImage ? this.__srcImage : this.__srcCanvas; }, set_src: function (a) { a instanceof Image ? (this.__srcImage = a) : a instanceof HTMLCanvasElement && ((this.__srcCanvas = a), (this.__srcContext = this.__srcCanvas.getContext('2d'))); return a; }, get_stride: function () { return this.width * ((this.bitsPerPixel / 8) | 0); }, __class__: Rf, __properties__: { get_stride: 'get_stride', set_src: 'set_src', get_src: 'get_src' } }; var nf = (E['lime.graphics.ImageChannel'] = { __ename__: 'lime.graphics.ImageChannel', __constructs__: null, RED: { _hx_name: 'RED', _hx_index: 0, __enum__: 'lime.graphics.ImageChannel', toString: w }, GREEN: { _hx_name: 'GREEN', _hx_index: 1, __enum__: 'lime.graphics.ImageChannel', toString: w }, BLUE: { _hx_name: 'BLUE', _hx_index: 2, __enum__: 'lime.graphics.ImageChannel', toString: w }, ALPHA: { _hx_name: 'ALPHA', _hx_index: 3, __enum__: 'lime.graphics.ImageChannel', toString: w } }); nf.__constructs__ = [nf.RED, nf.GREEN, nf.BLUE, nf.ALPHA]; var tm = (E['lime.graphics.ImageFileFormat'] = { __ename__: 'lime.graphics.ImageFileFormat', __constructs__: null, BMP: { _hx_name: 'BMP', _hx_index: 0, __enum__: 'lime.graphics.ImageFileFormat', toString: w }, JPEG: { _hx_name: 'JPEG', _hx_index: 1, __enum__: 'lime.graphics.ImageFileFormat', toString: w }, PNG: { _hx_name: 'PNG', _hx_index: 2, __enum__: 'lime.graphics.ImageFileFormat', toString: w } }); tm.__constructs__ = [tm.BMP, tm.JPEG, tm.PNG]; var ve = (E['lime.graphics.ImageType'] = { __ename__: 'lime.graphics.ImageType', __constructs__: null, CANVAS: { _hx_name: 'CANVAS', _hx_index: 0, __enum__: 'lime.graphics.ImageType', toString: w }, DATA: { _hx_name: 'DATA', _hx_index: 1, __enum__: 'lime.graphics.ImageType', toString: w }, FLASH: { _hx_name: 'FLASH', _hx_index: 2, __enum__: 'lime.graphics.ImageType', toString: w }, CUSTOM: { _hx_name: 'CUSTOM', _hx_index: 3, __enum__: 'lime.graphics.ImageType', toString: w } }); ve.__constructs__ = [ve.CANVAS, ve.DATA, ve.FLASH, ve.CUSTOM]; var xo = function () {}; h['lime.graphics.RenderContext'] = xo; xo.__name__ = 'lime.graphics.RenderContext'; xo.prototype = { attributes: null, cairo: null, canvas2D: null, dom: null, flash: null, gl: null, gles2: null, gles3: null, type: null, version: null, webgl: null, webgl2: null, window: null, __class__: xo }; var ex = { bufferData: function (a, b, c, e, f, d) { null != f ? a.bufferData(b, c, e, f, d) : a.bufferData(b, c, e); }, bufferSubData: function (a, b, c, e, f, d) { null != f ? a.bufferSubData(b, c, e, f, d) : a.bufferSubData(b, c, e); }, compressedTexImage2D: function (a, b, c, e, f, d, p, l, v, k) { null != v ? a.compressedTexImage2D(b, c, e, f, d, p, l, v, k) : a.compressedTexImage2D(b, c, e, f, d, p, l); }, compressedTexSubImage2D: function (a, b, c, e, f, d, p, l, v, k, h) { null != k ? a.compressedTexSubImage2D(b, c, e, f, d, p, l, v, k, h) : a.compressedTexSubImage2D(b, c, e, f, d, p, l, v); }, getBufferSubData: function (a, b, c, e, f, d) { null != f ? a.getBufferSubData(b, c, e, f, d) : a.getBufferSubData(b, c, e); }, readPixels: function (a, b, c, e, f, d, p, l, v) { null != v ? a.readPixels(b, c, e, f, d, p, l, v) : a.readPixels(b, c, e, f, d, p, l); }, texImage2D: function (a, b, c, e, f, d, p, l, v, k, h) { null != h ? a.texImage2D(b, c, e, f, d, p, l, v, k, h) : null != l ? a.texImage2D(b, c, e, f, d, p, l, v, k) : a.texImage2D(b, c, e, f, d, p); }, texSubImage2D: function (a, b, c, e, f, d, p, l, v, k, h) { null != h ? a.texSubImage2D(b, c, e, f, d, p, l, v, k, h) : null != v ? a.texSubImage2D(b, c, e, f, d, p, l, v, k) : a.texSubImage2D(b, c, e, f, d, p, l); }, uniform1fv: function (a, b, c, e, f) { null != e ? a.uniform1fv(b, c, e, f) : a.uniform1fv(b, c); }, uniform1iv: function (a, b, c, e, f) { null != e ? a.uniform1iv(b, c, e, f) : a.uniform1iv(b, c); }, uniform2fv: function (a, b, c, e, f) { null != e ? a.uniform2fv(b, c, e, f) : a.uniform2fv(b, c); }, uniform2iv: function (a, b, c, e, f) { null != e ? a.uniform2iv(b, c, e, f) : a.uniform2iv(b, c); }, uniform3fv: function (a, b, c, e, f) { null != e ? a.uniform3fv(b, c, e, f) : a.uniform3fv(b, c); }, uniform3iv: function (a, b, c, e, f) { null != e ? a.uniform3iv(b, c, e, f) : a.uniform3iv(b, c); }, uniform4fv: function (a, b, c, e, f) { null != e ? a.uniform4fv(b, c, e, f) : a.uniform4fv(b, c); }, uniform4iv: function (a, b, c, e, f) { null != e ? a.uniform4iv(b, c, e, f) : a.uniform4iv(b, c); }, uniformMatrix2fv: function (a, b, c, e, f, d) { null != f ? a.uniformMatrix2fv(b, c, e, f, d) : a.uniformMatrix2fv(b, c, e); }, uniformMatrix3fv: function (a, b, c, e, f, d) { null != f ? a.uniformMatrix3fv(b, c, e, f, d) : a.uniformMatrix3fv(b, c, e); }, uniformMatrix4fv: function (a, b, c, e, f, d) { null != f ? a.uniformMatrix4fv(b, c, e, f, d) : a.uniformMatrix4fv(b, c, e); }, fromGL: function (a) { return null; }, fromRenderContext: function (a) { return a.webgl2; }, toWebGLRenderContext: function (a) { return a; } }, bc = { bufferData: function (a, b, c, e) { a.bufferData(b, c, e); }, bufferSubData: function (a, b, c, e) { a.bufferSubData(b, c, e); }, compressedTexImage2D: function (a, b, c, e, f, d, p, l) { a.compressedTexImage2D(b, c, e, f, d, p, l); }, compressedTexSubImage2D: function (a, b, c, e, f, d, p, l, v) { a.compressedTexSubImage2D(b, c, e, f, d, p, l, v); }, readPixels: function (a, b, c, e, f, d, p, l) { a.readPixels(b, c, e, f, d, p, l); }, texImage2D: function (a, b, c, e, f, d, p, l, v, k) { null != l ? a.texImage2D(b, c, e, f, d, p, l, v, k) : a.texImage2D(b, c, e, f, d, p); }, texSubImage2D: function (a, b, c, e, f, d, p, l, k, n) { null != k ? a.texSubImage2D(b, c, e, f, d, p, l, k, n) : a.texSubImage2D(b, c, e, f, d, p, l); }, uniformMatrix2fv: function (a, b, c, e) { a.uniformMatrix2fv(b, c, e); }, uniformMatrix3fv: function (a, b, c, e) { a.uniformMatrix3fv(b, c, e); }, uniformMatrix4fv: function (a, b, c, e) { a.uniformMatrix4fv(b, c, e); }, fromWebGL2RenderContext: function (a) { return a; }, fromRenderContext: function (a) { return a.webgl; }, fromGL: function (a) { return t.context; } }, Tj = function (a) {}; h['lime.graphics.cairo.Cairo'] = Tj; Tj.__name__ = 'lime.graphics.cairo.Cairo'; Tj.__properties__ = { get_versionString: 'get_versionString', get_version: 'get_version' }; Tj.get_version = function () { return 0; }; Tj.get_versionString = function () { return ''; }; Tj.prototype = { target: null, userData: null, handle: null, arc: function (a, b, c, e, f) {}, arcNegative: function (a, b, c, e, f) {}, clip: function () {}, clipExtents: function (a, b, c, e) {}, clipPreserve: function () {}, closePath: function () {}, copyPage: function () {}, curveTo: function (a, b, c, e, f, d) {}, fill: function () {}, fillExtents: function (a, b, c, e) {}, fillPreserve: function () {}, getOperator: function () { return 0; }, identityMatrix: function () {}, inClip: function (a, b) { return !1; }, inFill: function (a, b) { return !1; }, inStroke: function (a, b) { return !1; }, lineTo: function (a, b) {}, mask: function (a) {}, maskSurface: function (a, b, c) {}, moveTo: function (a, b) {}, newPath: function () {}, paint: function () {}, paintWithAlpha: function (a) {}, popGroup: function () { return null; }, popGroupToSource: function () {}, pushGroup: function () {}, pushGroupWithContent: function (a) {}, recreate: function (a) {}, rectangle: function (a, b, c, e) {}, relCurveTo: function (a, b, c, e, f, d) {}, relLineTo: function (a, b) {}, relMoveTo: function (a, b) {}, resetClip: function () {}, restore: function () {}, rotate: function (a) {}, save: function () {}, scale: function (a, b) {}, setFontSize: function (a) {}, setOperator: function (a) { return a; }, setSourceRGB: function (a, b, c) {}, setSourceRGBA: function (a, b, c, e) {}, setSourceSurface: function (a, b, c) {}, showGlyphs: function (a) {}, showPage: function () {}, showText: function (a) {}, status: function () { return 0; }, stroke: function () {}, strokeExtents: function (a, b, c, e) {}, strokePreserve: function () {}, textPath: function (a) {}, transform: function (a) {}, translate: function (a, b) {}, get_antialias: function () { return 0; }, set_antialias: function (a) { return a; }, get_currentPoint: function () { return null; }, get_dash: function () { return []; }, set_dash: function (a) { return a; }, get_dashCount: function () { return 0; }, get_fillRule: function () { return 0; }, set_fillRule: function (a) { return a; }, get_fontFace: function () { return 0; }, set_fontFace: function (a) { return a; }, get_fontOptions: function () { return null; }, set_fontOptions: function (a) { return a; }, get_groupTarget: function () { return 0; }, get_hasCurrentPoint: function () { return !1; }, get_lineCap: function () { return 0; }, set_lineCap: function (a) { return a; }, get_lineJoin: function () { return 0; }, set_lineJoin: function (a) { return a; }, get_lineWidth: function () { return 0; }, set_lineWidth: function (a) { return a; }, get_matrix: function () { return null; }, set_matrix: function (a) { return a; }, get_miterLimit: function () { return 0; }, set_miterLimit: function (a) { return a; }, get_source: function () { return 0; }, set_source: function (a) { return a; }, get_target: function () { return 0; }, get_tolerance: function () { return 0; }, set_tolerance: function (a) { return a; }, __class__: Tj, __properties__: { set_tolerance: 'set_tolerance', get_tolerance: 'get_tolerance', get_target: 'get_target', set_source: 'set_source', get_source: 'get_source', set_miterLimit: 'set_miterLimit', get_miterLimit: 'get_miterLimit', set_matrix: 'set_matrix', get_matrix: 'get_matrix', set_lineWidth: 'set_lineWidth', get_lineWidth: 'get_lineWidth', set_lineJoin: 'set_lineJoin', get_lineJoin: 'get_lineJoin', set_lineCap: 'set_lineCap', get_lineCap: 'get_lineCap', get_hasCurrentPoint: 'get_hasCurrentPoint', get_groupTarget: 'get_groupTarget', set_fontOptions: 'set_fontOptions', get_fontOptions: 'get_fontOptions', set_fontFace: 'set_fontFace', get_fontFace: 'get_fontFace', set_fillRule: 'set_fillRule', get_fillRule: 'get_fillRule', get_dashCount: 'get_dashCount', set_dash: 'set_dash', get_dash: 'get_dash', get_currentPoint: 'get_currentPoint', set_antialias: 'set_antialias', get_antialias: 'get_antialias' } }; var lw = function (a, b, c) { null == c && (c = 0); null == b && (b = 0); this.index = a; this.x = b; this.y = c; }; h['lime.graphics.cairo.CairoGlyph'] = lw; lw.__name__ = 'lime.graphics.cairo.CairoGlyph'; lw.prototype = { index: null, x: null, y: null, __class__: lw }; var lx = { __properties__: { get_width: 'get_width', get_stride: 'get_stride', get_height: 'get_height', get_format: 'get_format', get_data: 'get_data' }, _new: function (a, b, c) { return 0; }, create: function (a, b, c, e, f) { return 0; }, fromImage: function (a) { return null; }, get_data: function (a) { return of.fromFloat(0); }, get_format: function (a) { return 0; }, get_height: function (a) { return 0; }, get_stride: function (a) { return 0; }, get_width: function (a) { return 0; } }, Oo = { __properties__: { set_matrix: 'set_matrix', get_matrix: 'get_matrix', set_filter: 'set_filter', get_filter: 'get_filter', set_extend: 'set_extend', get_extend: 'get_extend', get_colorStopCount: 'get_colorStopCount' }, _new: function (a) { return a; }, addColorStopRGB: function (a, b, c, e, f) {}, addColorStopRGBA: function (a, b, c, e, f, d) {}, createForSurface: function (a) { return 0; }, createLinear: function (a, b, c, e) { return 0; }, createRadial: function (a, b, c, e, f, d) { return 0; }, createRGB: function (a, b, c) { return 0; }, createRGBA: function (a, b, c, e) { return 0; }, get_colorStopCount: function (a) { return 0; }, get_extend: function (a) { return 0; }, set_extend: function (a, b) { return b; }, get_filter: function (a) { return 0; }, set_filter: function (a, b) { return b; }, get_matrix: function (a) { return null; }, set_matrix: function (a, b) { return b; } }, mx = { flush: function (a) {} }, t = function () {}; h['lime.graphics.opengl.GL'] = t; t.__name__ = 'lime.graphics.opengl.GL'; t.activeTexture = function (a) { t.context.activeTexture(a); }; t.attachShader = function (a, b) { t.context.attachShader(a, b); }; t.beginQuery = function (a, b) { t.context.beginQuery(a, b); }; t.beginTransformFeedback = function (a) { t.context.beginTransformFeedback(a); }; t.bindAttribLocation = function (a, b, c) { t.context.bindAttribLocation(a, b, c); }; t.bindBuffer = function (a, b) { t.context.bindBuffer(a, b); }; t.bindBufferBase = function (a, b, c) { t.context.bindBufferBase(a, b, c); }; t.bindBufferRange = function (a, b, c, e, f) { t.context.bindBufferRange(a, b, c, e, of.fromFloat(f)); }; t.bindFramebuffer = function (a, b) { t.context.bindFramebuffer(a, b); }; t.bindRenderbuffer = function (a, b) { t.context.bindRenderbuffer(a, b); }; t.bindSampler = function (a, b) { t.context.bindSampler(a, b); }; t.bindTexture = function (a, b) { t.context.bindTexture(a, b); }; t.bindTransformFeedback = function (a, b) { t.context.bindTransformFeedback(a, b); }; t.bindVertexArray = function (a) { t.context.bindVertexArray(a); }; t.blitFramebuffer = function (a, b, c, e, f, d, p, l, k, n) { t.context.blitFramebuffer(a, b, c, e, f, d, p, l, k, n); }; t.blendColor = function (a, b, c, e) { t.context.blendColor(a, b, c, e); }; t.blendEquation = function (a) { t.context.blendEquation(a); }; t.blendEquationSeparate = function (a, b) { t.context.blendEquationSeparate(a, b); }; t.blendFunc = function (a, b) { t.context.blendFunc(a, b); }; t.blendFuncSeparate = function (a, b, c, e) { t.context.blendFuncSeparate(a, b, c, e); }; t.bufferDataWEBGL = function (a, b, c, e, f) { var d = t.context; null != e ? d.bufferData(a, b, c, e, f) : d.bufferData(a, b, c); }; t.bufferSubDataWEBGL = function (a, b, c, e, f) { var d = t.context; null != e ? d.bufferSubData(a, b, c, e, f) : d.bufferSubData(a, b, c); }; t.checkFramebufferStatus = function (a) { return t.context.checkFramebufferStatus(a); }; t.clear = function (a) { t.context.clear(a); }; t.clearBufferfi = function (a, b, c, e) { t.context.clearBufferfi(a, b, c, e); }; t.clearBufferfvWEBGL = function (a, b, c, e) { t.context.clearBufferfv(a, b, c, e); }; t.clearBufferivWEBGL = function (a, b, c, e) { t.context.clearBufferiv(a, b, c, e); }; t.clearBufferuivWEBGL = function (a, b, c, e) { t.context.clearBufferuiv(a, b, c, e); }; t.clearColor = function (a, b, c, e) { t.context.clearColor(a, b, c, e); }; t.clearDepth = function (a) { t.context.clearDepth(a); }; t.clearStencil = function (a) { t.context.clearStencil(a); }; t.clientWaitSync = function (a, b, c) { return t.context.clientWaitSync(a, b, c); }; t.colorMask = function (a, b, c, e) { t.context.colorMask(a, b, c, e); }; t.compileShader = function (a) { t.context.compileShader(a); }; t.compressedTexImage2DWEBGL = function (a, b, c, e, f, d, p, l, k) { var g = t.context; null != l ? g.compressedTexImage2D(a, b, c, e, f, d, p, l, k) : g.compressedTexImage2D(a, b, c, e, f, d, p); }; t.compressedTexImage3DWEBGL = function (a, b, c, e, f, d, p, l, k, n) { t.context.compressedTexImage3D(a, b, c, e, f, d, p, l, k, n); }; t.compressedTexSubImage2DWEBGL = function (a, b, c, e, f, d, p, l, k, n) { var g = t.context; null != k ? g.compressedTexSubImage2D(a, b, c, e, f, d, p, l, k, n) : g.compressedTexSubImage2D(a, b, c, e, f, d, p, l); }; t.compressedTexSubImage3DWEBGL = function (a, b, c, e, f, d, p, l, k, n, h, m) { t.context.compressedTexSubImage3D(a, b, c, e, f, d, p, l, k, n, h, m); }; t.copyTexImage2D = function (a, b, c, e, f, d, p, l) { t.context.copyTexImage2D(a, b, c, e, f, d, p, l); }; t.copyTexSubImage2D = function (a, b, c, e, f, d, p, l) { t.context.copyTexSubImage2D(a, b, c, e, f, d, p, l); }; t.copyTexSubImage3D = function (a, b, c, e, f, d, p, l, k) { t.context.copyTexSubImage3D(a, b, c, e, f, d, p, l, k); }; t.createBuffer = function () { return t.context.createBuffer(); }; t.createFramebuffer = function () { return t.context.createFramebuffer(); }; t.createProgram = function () { return t.context.createProgram(); }; t.createQuery = function () { return t.context.createQuery(); }; t.createRenderbuffer = function () { return t.context.createRenderbuffer(); }; t.createSampler = function () { return t.context.createSampler(); }; t.createShader = function (a) { return t.context.createShader(a); }; t.createTexture = function () { return t.context.createTexture(); }; t.createTransformFeedback = function () { return t.context.createTransformFeedback(); }; t.createVertexArray = function () { return t.context.createVertexArray(); }; t.cullFace = function (a) { t.context.cullFace(a); }; t.deleteBuffer = function (a) { t.context.deleteBuffer(a); }; t.deleteFramebuffer = function (a) { t.context.deleteFramebuffer(a); }; t.deleteProgram = function (a) { t.context.deleteProgram(a); }; t.deleteQuery = function (a) { t.context.deleteQuery(a); }; t.deleteRenderbuffer = function (a) { t.context.deleteRenderbuffer(a); }; t.deleteSampler = function (a) { t.context.deleteSampler(a); }; t.deleteShader = function (a) { t.context.deleteShader(a); }; t.deleteSync = function (a) { t.context.deleteSync(a); }; t.deleteTexture = function (a) { t.context.deleteTexture(a); }; t.deleteTransformFeedback = function (a) { t.context.deleteTransformFeedback(a); }; t.deleteVertexArray = function (a) { t.context.deleteVertexArray(a); }; t.depthFunc = function (a) { t.context.depthFunc(a); }; t.depthMask = function (a) { t.context.depthMask(a); }; t.depthRange = function (a, b) { t.context.depthRange(a, b); }; t.detachShader = function (a, b) { t.context.detachShader(a, b); }; t.disable = function (a) { t.context.disable(a); }; t.disableVertexAttribArray = function (a) { t.context.disableVertexAttribArray(a); }; t.drawArrays = function (a, b, c) { t.context.drawArrays(a, b, c); }; t.drawArraysInstanced = function (a, b, c, e) { t.context.drawArraysInstanced(a, b, c, e); }; t.drawBuffers = function (a) { t.context.drawBuffers(a); }; t.drawElements = function (a, b, c, e) { t.context.drawElements(a, b, c, e); }; t.drawElementsInstanced = function (a, b, c, e, f) { t.context.drawElementsInstanced(a, b, c, e, f); }; t.drawRangeElements = function (a, b, c, e, f, d) { t.context.drawRangeElements(a, b, c, e, f, d); }; t.enable = function (a) { t.context.enable(a); }; t.enableVertexAttribArray = function (a) { t.context.enableVertexAttribArray(a); }; t.endQuery = function (a) { t.context.endQuery(a); }; t.endTransformFeedback = function () { t.context.endTransformFeedback(); }; t.fenceSync = function (a, b) { return t.context.fenceSync(a, b); }; t.finish = function () { t.context.finish(); }; t.flush = function () { t.context.flush(); }; t.framebufferRenderbuffer = function (a, b, c, e) { t.context.framebufferRenderbuffer(a, b, c, e); }; t.framebufferTexture2D = function (a, b, c, e, f) { t.context.framebufferTexture2D(a, b, c, e, f); }; t.framebufferTextureLayer = function (a, b, c, e, f) { t.context.framebufferTextureLayer(a, b, c, e, f); }; t.frontFace = function (a) { t.context.frontFace(a); }; t.generateMipmap = function (a) { t.context.generateMipmap(a); }; t.getActiveAttrib = function (a, b) { return t.context.getActiveAttrib(a, b); }; t.getActiveUniform = function (a, b) { return t.context.getActiveUniform(a, b); }; t.getActiveUniformBlockName = function (a, b) { return t.context.getActiveUniformBlockName(a, b); }; t.getActiveUniformBlockParameter = function (a, b, c) { return t.context.getActiveUniformBlockParameter(a, b, c); }; t.getActiveUniforms = function (a, b, c) { return t.context.getActiveUniforms(a, b, c); }; t.getAttachedShaders = function (a) { return t.context.getAttachedShaders(a); }; t.getAttribLocation = function (a, b) { return t.context.getAttribLocation(a, b); }; t.getBufferParameter = function (a, b) { return t.context.getBufferParameter(a, b); }; t.getBufferSubDataWEBGL = function (a, b, c, e, f) { var d = t.context; null != e ? d.getBufferSubData(a, b, c, e, f) : d.getBufferSubData(a, b, c); }; t.getContextAttributes = function () { return t.context.getContextAttributes(); }; t.getError = function () { return t.context.getError(); }; t.getExtension = function (a) { return t.context.getExtension(a); }; t.getFragDataLocation = function (a, b) { return t.context.getFragDataLocation(a, b); }; t.getFramebufferAttachmentParameter = function (a, b, c) { return t.context.getFramebufferAttachmentParameter(a, b, c); }; t.getIndexedParameter = function (a, b) { return t.context.getIndexedParameter(a, b); }; t.getInternalformatParameter = function (a, b, c) { return t.context.getInternalformatParameter(a, b, c); }; t.getParameter = function (a) { return t.context.getParameter(a); }; t.getProgramInfoLog = function (a) { return t.context.getProgramInfoLog(a); }; t.getProgramParameter = function (a, b) { return t.context.getProgramParameter(a, b); }; t.getQuery = function (a, b) { return t.context.getQuery(a, b); }; t.getQueryParameter = function (a, b) { return t.context.getQueryParameter(a, b); }; t.getRenderbufferParameter = function (a, b) { return t.context.getRenderbufferParameter(a, b); }; t.getSamplerParameter = function (a, b) { return t.context.getSamplerParameter(a, b); }; t.getShaderInfoLog = function (a) { return t.context.getShaderInfoLog(a); }; t.getShaderParameter = function (a, b) { return t.context.getShaderParameter(a, b); }; t.getShaderPrecisionFormat = function (a, b) { return t.context.getShaderPrecisionFormat(a, b); }; t.getShaderSource = function (a) { return t.context.getShaderSource(a); }; t.getSupportedExtensions = function () { return t.context.getSupportedExtensions(); }; t.getSyncParameter = function (a, b) { return t.context.getSyncParameter(a, b); }; t.getTexParameter = function (a, b) { return t.context.getTexParameter(a, b); }; t.getTransformFeedbackVarying = function (a, b) { return t.context.getTransformFeedbackVarying(a, b); }; t.getUniform = function (a, b) { return t.context.getUniform(a, b); }; t.getUniformBlockIndex = function (a, b) { return t.context.getUniformBlockIndex(a, b); }; t.getUniformIndices = function (a, b) { return t.context.getUniformIndices(a, b); }; t.getUniformLocation = function (a, b) { return t.context.getUniformLocation(a, b); }; t.getVertexAttrib = function (a, b) { return t.context.getVertexAttrib(a, b); }; t.getVertexAttribOffset = function (a, b) { return of.fromFloat(t.context.getVertexAttribOffset(a, b)); }; t.hint = function (a, b) { t.context.hint(a, b); }; t.invalidateFramebuffer = function (a, b) { t.context.invalidateFramebuffer(a, b); }; t.invalidateSubFramebuffer = function (a, b, c, e, f, d) { t.context.invalidateSubFramebuffer(a, b, c, e, f, d); }; t.isBuffer = function (a) { return t.context.isBuffer(a); }; t.isContextLost = function () { return t.context.isContextLost(); }; t.isEnabled = function (a) { return t.context.isEnabled(a); }; t.isFramebuffer = function (a) { return t.context.isFramebuffer(a); }; t.isProgram = function (a) { return t.context.isProgram(a); }; t.isQuery = function (a) { return t.context.isQuery(a); }; t.isRenderbuffer = function (a) { return t.context.isRenderbuffer(a); }; t.isSampler = function (a) { return t.context.isSampler(a); }; t.isShader = function (a) { return t.context.isShader(a); }; t.isSync = function (a) { return t.context.isSync(a); }; t.isTexture = function (a) { return t.context.isTexture(a); }; t.isTransformFeedback = function (a) { return t.context.isTransformFeedback(a); }; t.isVertexArray = function (a) { return t.context.isVertexArray(a); }; t.lineWidth = function (a) { t.context.lineWidth(a); }; t.linkProgram = function (a) { t.context.linkProgram(a); }; t.pauseTransformFeedback = function () { t.context.pauseTransformFeedback(); }; t.pixelStorei = function (a, b) { t.context.pixelStorei(a, b); }; t.polygonOffset = function (a, b) { t.context.polygonOffset(a, b); }; t.readBuffer = function (a) { t.context.readBuffer(a); }; t.readPixelsWEBGL = function (a, b, c, e, f, d, p, l) { var g = t.context; null != l ? g.readPixels(a, b, c, e, f, d, p, l) : g.readPixels(a, b, c, e, f, d, p); }; t.renderbufferStorage = function (a, b, c, e) { t.context.renderbufferStorage(a, b, c, e); }; t.renderbufferStorageMultisample = function (a, b, c, e, f) { t.context.renderbufferStorageMultisample(a, b, c, e, f); }; t.resumeTransformFeedback = function () { t.context.resumeTransformFeedback(); }; t.sampleCoverage = function (a, b) { t.context.sampleCoverage(a, b); }; t.samplerParameterf = function (a, b, c) { t.context.samplerParameterf(a, b, c); }; t.samplerParameteri = function (a, b, c) { t.context.samplerParameteri(a, b, c); }; t.scissor = function (a, b, c, e) { t.context.scissor(a, b, c, e); }; t.shaderSource = function (a, b) { t.context.shaderSource(a, b); }; t.stencilFunc = function (a, b, c) { t.context.stencilFunc(a, b, c); }; t.stencilFuncSeparate = function (a, b, c, e) { t.context.stencilFuncSeparate(a, b, c, e); }; t.stencilMask = function (a) { t.context.stencilMask(a); }; t.stencilMaskSeparate = function (a, b) { t.context.stencilMaskSeparate(a, b); }; t.stencilOp = function (a, b, c) { t.context.stencilOp(a, b, c); }; t.stencilOpSeparate = function (a, b, c, e) { t.context.stencilOpSeparate(a, b, c, e); }; t.texImage2DWEBGL = function (a, b, c, e, f, d, p, l, k, n) { var g = t.context; null != n ? g.texImage2D(a, b, c, e, f, d, p, l, k, n) : null != p ? g.texImage2D(a, b, c, e, f, d, p, l, k) : g.texImage2D(a, b, c, e, f, d); }; t.texImage3DWEBGL = function (a, b, c, e, f, d, p, l, k, n, h) { t.context.texImage3D(a, b, c, e, f, d, p, l, k, n, h); }; t.texStorage2D = function (a, b, c, e, f) { t.context.texStorage2D(a, b, c, e, f); }; t.texStorage3D = function (a, b, c, e, f, d) { t.context.texStorage3D(a, b, c, e, f, d); }; t.texParameterf = function (a, b, c) { t.context.texParameterf(a, b, c); }; t.texParameteri = function (a, b, c) { t.context.texParameteri(a, b, c); }; t.texSubImage2DWEBGL = function (a, b, c, e, f, d, p, l, k, n) { var g = t.context; null != n ? g.texSubImage2D(a, b, c, e, f, d, p, l, k, n) : null != l ? g.texSubImage2D(a, b, c, e, f, d, p, l, k) : g.texSubImage2D(a, b, c, e, f, d, p); }; t.texSubImage3DWEBGL = function (a, b, c, e, f, d, p, l, k, n, h, m) { t.context.texSubImage3D(a, b, c, e, f, d, p, l, k, n, h, m); }; t.transformFeedbackVaryings = function (a, b, c) { t.context.transformFeedbackVaryings(a, b, c); }; t.uniform1f = function (a, b) { t.context.uniform1f(a, b); }; t.uniform1fvWEBGL = function (a, b, c, e) { var f = t.context; null != c ? f.uniform1fv(a, b, c, e) : f.uniform1fv(a, b); }; t.uniform1i = function (a, b) { t.context.uniform1i(a, b); }; t.uniform1ivWEBGL = function (a, b, c, e) { var f = t.context; null != c ? f.uniform1iv(a, b, c, e) : f.uniform1iv(a, b); }; t.uniform1ui = function (a, b) { t.context.uniform1ui(a, b); }; t.uniform1uivWEBGL = function (a, b, c, e) { t.context.uniform1uiv(a, b, c, e); }; t.uniform2f = function (a, b, c) { t.context.uniform2f(a, b, c); }; t.uniform2fvWEBGL = function (a, b, c, e) { ex.uniform2fv(t.context, a, b, c, e); }; t.uniform2i = function (a, b, c) { t.context.uniform2i(a, b, c); }; t.uniform2ivWEBGL = function (a, b, c, e) { var f = t.context; null != c ? f.uniform2iv(a, b, c, e) : f.uniform2iv(a, b); }; t.uniform2ui = function (a, b, c) { t.context.uniform2ui(a, b, c); }; t.uniform2uivWEBGL = function (a, b, c, e) { t.context.uniform2uiv(a, b, c, e); }; t.uniform3f = function (a, b, c, e) { t.context.uniform3f(a, b, c, e); }; t.uniform3fvWEBGL = function (a, b, c, e) { var f = t.context; null != c ? f.uniform3fv(a, b, c, e) : f.uniform3fv(a, b); }; t.uniform3i = function (a, b, c, e) { t.context.uniform3i(a, b, c, e); }; t.uniform3ivWEBGL = function (a, b, c, e) { var f = t.context; null != c ? f.uniform3iv(a, b, c, e) : f.uniform3iv(a, b); }; t.uniform3ui = function (a, b, c, e) { t.context.uniform3ui(a, b, c, e); }; t.uniform3uivWEBGL = function (a, b, c, e) { t.context.uniform3uiv(a, b, c, e); }; t.uniform4f = function (a, b, c, e, f) { t.context.uniform4f(a, b, c, e, f); }; t.uniform4fvWEBGL = function (a, b, c, e) { var f = t.context; null != c ? f.uniform4fv(a, b, c, e) : f.uniform4fv(a, b); }; t.uniform4i = function (a, b, c, e, f) { t.context.uniform4i(a, b, c, e, f); }; t.uniform4ivWEBGL = function (a, b, c, e) { var f = t.context; null != c ? f.uniform4iv(a, b, c, e) : f.uniform4iv(a, b); }; t.uniform4ui = function (a, b, c, e, f) { t.context.uniform4ui(a, b, c, e, f); }; t.uniform4uivWEBGL = function (a, b, c, e) { t.context.uniform4uiv(a, b, c, e); }; t.uniformBlockBinding = function (a, b, c) { t.context.uniformBlockBinding(a, b, c); }; t.uniformMatrix2fvWEBGL = function (a, b, c, e, f) { var d = t.context; null != e ? d.uniformMatrix2fv(a, b, c, e, f) : d.uniformMatrix2fv(a, b, c); }; t.uniformMatrix2x3fvWEBGL = function (a, b, c, e, f) { t.context.uniformMatrix2x3fv(a, b, c, e, f); }; t.uniformMatrix2x4fvWEBGL = function (a, b, c, e, f) { t.context.uniformMatrix2x4fv(a, b, c, e, f); }; t.uniformMatrix3fvWEBGL = function (a, b, c, e, f) { var d = t.context; null != e ? d.uniformMatrix3fv(a, b, c, e, f) : d.uniformMatrix3fv(a, b, c); }; t.uniformMatrix3x2fvWEBGL = function (a, b, c, e, f) { t.context.uniformMatrix3x2fv(a, b, c, e, f); }; t.uniformMatrix3x4fvWEBGL = function (a, b, c, e, f) { t.context.uniformMatrix3x4fv(a, b, c, e, f); }; t.uniformMatrix4fvWEBGL = function (a, b, c, e, f) { var d = t.context; null != e ? d.uniformMatrix4fv(a, b, c, e, f) : d.uniformMatrix4fv(a, b, c); }; t.uniformMatrix4x2fvWEBGL = function (a, b, c, e, f) { t.context.uniformMatrix4x2fv(a, b, c, e, f); }; t.uniformMatrix4x3fvWEBGL = function (a, b, c, e, f) { t.context.uniformMatrix4x3fv(a, b, c, e, f); }; t.useProgram = function (a) { t.context.useProgram(a); }; t.validateProgram = function (a) { t.context.validateProgram(a); }; t.vertexAttrib1f = function (a, b) { t.context.vertexAttrib1f(a, b); }; t.vertexAttrib1fv = function (a, b) { t.context.vertexAttrib1fv(a, b); }; t.vertexAttrib1fvWEBGL = function (a, b) { t.context.vertexAttrib1fv(a, b); }; t.vertexAttrib2f = function (a, b, c) { t.context.vertexAttrib2f(a, b, c); }; t.vertexAttrib2fv = function (a, b) { t.context.vertexAttrib2fv(a, b); }; t.vertexAttrib2fvWEBGL = function (a, b) { t.context.vertexAttrib2fv(a, b); }; t.vertexAttrib3f = function (a, b, c, e) { t.context.vertexAttrib3f(a, b, c, e); }; t.vertexAttrib3fv = function (a, b) { t.context.vertexAttrib3fv(a, b); }; t.vertexAttrib3fvWEBGL = function (a, b) { t.context.vertexAttrib3fv(a, b); }; t.vertexAttrib4f = function (a, b, c, e, f) { t.context.vertexAttrib4f(a, b, c, e, f); }; t.vertexAttrib4fv = function (a, b) { t.context.vertexAttrib4fv(a, b); }; t.vertexAttrib4fvWEBGL = function (a, b) { t.context.vertexAttrib4fv(a, b); }; t.vertexAttribDivisor = function (a, b) { t.context.vertexAttribDivisor(a, b); }; t.vertexAttribI4i = function (a, b, c, e, f) { t.context.vertexAttribI4i(a, b, c, e, f); }; t.vertexAttribI4iv = function (a, b) { t.context.vertexAttribI4iv(a, b); }; t.vertexAttribI4ivWEBGL = function (a, b) { t.context.vertexAttribI4iv(a, b); }; t.vertexAttribI4ui = function (a, b, c, e, f) { t.context.vertexAttribI4ui(a, b, c, e, f); }; t.vertexAttribI4uiv = function (a, b) { t.context.vertexAttribI4uiv(a, b); }; t.vertexAttribI4uivWEBGL = function (a, b) { t.context.vertexAttribI4uiv(a, b); }; t.vertexAttribIPointer = function (a, b, c, e, f) { t.context.vertexAttribIPointer(a, b, c, e, f); }; t.vertexAttribPointer = function (a, b, c, e, f, d) { t.context.vertexAttribPointer(a, b, c, e, f, d); }; t.viewport = function (a, b, c, e) { t.context.viewport(a, b, c, e); }; t.waitSync = function (a, b, c) { t.context.waitSync(a, b, c); }; t.__getObjectID = function (a) { return null == a ? 0 : a.id; }; var mw = function () { this.STACK_UNDERFLOW = 1284; this.STACK_OVERFLOW = 1283; this.CONTEXT_FLAG_DEBUG_BIT = 2; this.DEBUG_OUTPUT = 37600; this.DEBUG_SEVERITY_LOW = 37192; this.DEBUG_SEVERITY_MEDIUM = 37191; this.DEBUG_SEVERITY_HIGH = 37190; this.DEBUG_LOGGED_MESSAGES = 37189; this.MAX_DEBUG_LOGGED_MESSAGES = 37188; this.MAX_DEBUG_MESSAGE_LENGTH = 37187; this.MAX_LABEL_LENGTH = 33512; this.SAMPLER = 33510; this.QUERY = 33507; this.PROGRAM = 33506; this.SHADER = 33505; this.BUFFER = 33504; this.DEBUG_GROUP_STACK_DEPTH = 33389; this.MAX_DEBUG_GROUP_STACK_DEPTH = 33388; this.DEBUG_SEVERITY_NOTIFICATION = 33387; this.DEBUG_TYPE_POP_GROUP = 33386; this.DEBUG_TYPE_PUSH_GROUP = 33385; this.DEBUG_TYPE_MARKER = 33384; this.DEBUG_TYPE_OTHER = 33361; this.DEBUG_TYPE_PERFORMANCE = 33360; this.DEBUG_TYPE_PORTABILITY = 33359; this.DEBUG_TYPE_UNDEFINED_BEHAVIOR = 33358; this.DEBUG_TYPE_DEPRECATED_BEHAVIOR = 33357; this.DEBUG_TYPE_ERROR = 33356; this.DEBUG_SOURCE_OTHER = 33355; this.DEBUG_SOURCE_APPLICATION = 33354; this.DEBUG_SOURCE_THIRD_PARTY = 33353; this.DEBUG_SOURCE_SHADER_COMPILER = 33352; this.DEBUG_SOURCE_WINDOW_SYSTEM = 33351; this.DEBUG_SOURCE_API = 33350; this.DEBUG_CALLBACK_USER_PARAM = 33349; this.DEBUG_CALLBACK_FUNCTION = 33348; this.DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 33347; this.DEBUG_OUTPUT_SYNCHRONOUS = 33346; }; h['lime.graphics.opengl.ext.KHR_debug'] = mw; mw.__name__ = 'lime.graphics.opengl.ext.KHR_debug'; mw.prototype = { DEBUG_OUTPUT_SYNCHRONOUS: null, DEBUG_NEXT_LOGGED_MESSAGE_LENGTH: null, DEBUG_CALLBACK_FUNCTION: null, DEBUG_CALLBACK_USER_PARAM: null, DEBUG_SOURCE_API: null, DEBUG_SOURCE_WINDOW_SYSTEM: null, DEBUG_SOURCE_SHADER_COMPILER: null, DEBUG_SOURCE_THIRD_PARTY: null, DEBUG_SOURCE_APPLICATION: null, DEBUG_SOURCE_OTHER: null, DEBUG_TYPE_ERROR: null, DEBUG_TYPE_DEPRECATED_BEHAVIOR: null, DEBUG_TYPE_UNDEFINED_BEHAVIOR: null, DEBUG_TYPE_PORTABILITY: null, DEBUG_TYPE_PERFORMANCE: null, DEBUG_TYPE_OTHER: null, DEBUG_TYPE_MARKER: null, DEBUG_TYPE_PUSH_GROUP: null, DEBUG_TYPE_POP_GROUP: null, DEBUG_SEVERITY_NOTIFICATION: null, MAX_DEBUG_GROUP_STACK_DEPTH: null, DEBUG_GROUP_STACK_DEPTH: null, BUFFER: null, SHADER: null, PROGRAM: null, QUERY: null, SAMPLER: null, MAX_LABEL_LENGTH: null, MAX_DEBUG_MESSAGE_LENGTH: null, MAX_DEBUG_LOGGED_MESSAGES: null, DEBUG_LOGGED_MESSAGES: null, DEBUG_SEVERITY_HIGH: null, DEBUG_SEVERITY_MEDIUM: null, DEBUG_SEVERITY_LOW: null, DEBUG_OUTPUT: null, CONTEXT_FLAG_DEBUG_BIT: null, STACK_OVERFLOW: null, STACK_UNDERFLOW: null, __class__: mw }; var Kd = { __properties__: { set_redOffset: 'set_redOffset', get_redOffset: 'get_redOffset', set_redMultiplier: 'set_redMultiplier', get_redMultiplier: 'get_redMultiplier', set_greenOffset: 'set_greenOffset', get_greenOffset: 'get_greenOffset', set_greenMultiplier: 'set_greenMultiplier', get_greenMultiplier: 'get_greenMultiplier', set_color: 'set_color', get_color: 'get_color', set_blueOffset: 'set_blueOffset', get_blueOffset: 'get_blueOffset', set_blueMultiplier: 'set_blueMultiplier', get_blueMultiplier: 'get_blueMultiplier', set_alphaOffset: 'set_alphaOffset', get_alphaOffset: 'get_alphaOffset', set_alphaMultiplier: 'set_alphaMultiplier', get_alphaMultiplier: 'get_alphaMultiplier' }, _new: function (a) { if (null == a || 20 != a.length) (a = Kd.__identity), (a = null != a ? new Float32Array(a) : null); return a; }, clone: function (a) { a = Yg.toArrayBufferView(a); a = null != a ? new Float32Array(a) : null; return Kd._new(a); }, concat: function (a, b) { a[0] += b[0]; a[6] += b[6]; a[12] += b[12]; a[18] += b[18]; }, copyFrom: function (a, b) { a.set(b); }, identity: function (a) { a[0] = 1; a[1] = 0; a[2] = 0; a[3] = 0; a[4] = 0; a[5] = 0; a[6] = 1; a[7] = 0; a[8] = 0; a[9] = 0; a[10] = 0; a[11] = 0; a[12] = 1; a[13] = 0; a[14] = 0; a[15] = 0; a[16] = 0; a[17] = 0; a[18] = 1; a[19] = 0; }, getAlphaTable: function (a) { if (null == Kd.__alphaTable) { var b = new Uint8Array(256); Kd.__alphaTable = b; } Kd.__alphaTable[0] = 0; for (var c = 1; 256 > c; ) { var e = c++; b = Math.floor(e * a[18] + 255 * a[19]); 255 < b && (b = 255); 0 > b && (b = 0); Kd.__alphaTable[e] = b; } return Kd.__alphaTable; }, getBlueTable: function (a) { if (null == Kd.__blueTable) { var b = new Uint8Array(256); Kd.__blueTable = b; } for (var c = 0; 256 > c; ) { var e = c++; b = Math.floor(e * a[12] + 255 * a[14]); 255 < b && (b = 255); 0 > b && (b = 0); Kd.__blueTable[e] = b; } return Kd.__blueTable; }, getGreenTable: function (a) { if (null == Kd.__greenTable) { var b = new Uint8Array(256); Kd.__greenTable = b; } for (var c = 0; 256 > c; ) { var e = c++; b = Math.floor(e * a[6] + 255 * a[9]); 255 < b && (b = 255); 0 > b && (b = 0); Kd.__greenTable[e] = b; } return Kd.__greenTable; }, getRedTable: function (a) { if (null == Kd.__redTable) { var b = new Uint8Array(256); Kd.__redTable = b; } for (var c = 0; 256 > c; ) { var e = c++; b = Math.floor(e * a[0] + 255 * a[4]); 255 < b && (b = 255); 0 > b && (b = 0); Kd.__redTable[e] = b; } return Kd.__redTable; }, __toFlashColorTransform: function (a) { return null; }, get_alphaMultiplier: function (a) { return a[18]; }, set_alphaMultiplier: function (a, b) { return (a[18] = b); }, get_alphaOffset: function (a) { return 255 * a[19]; }, set_alphaOffset: function (a, b) { return (a[19] = b / 255); }, get_blueMultiplier: function (a) { return a[12]; }, set_blueMultiplier: function (a, b) { return (a[12] = b); }, get_blueOffset: function (a) { return 255 * a[14]; }, set_blueOffset: function (a, b) { return (a[14] = b / 255); }, get_color: function (a) { return (((255 * a[4]) | 0) << 16) | (((255 * a[9]) | 0) << 8) | (255 * a[14]) | 0; }, set_color: function (a, b) { a[4] = ((b >> 16) & 255) / 255; a[9] = ((b >> 8) & 255) / 255; a[14] = (b & 255) / 255; a[0] = 0; a[6] = 0; a[12] = 0; return Kd.get_color(a); }, get_greenMultiplier: function (a) { return a[6]; }, set_greenMultiplier: function (a, b) { return (a[6] = b); }, get_greenOffset: function (a) { return 255 * a[9]; }, set_greenOffset: function (a, b) { return (a[9] = b / 255); }, get_redMultiplier: function (a) { return a[0]; }, set_redMultiplier: function (a, b) { return (a[0] = b); }, get_redOffset: function (a) { return 255 * a[4]; }, set_redOffset: function (a, b) { return (a[4] = b / 255); }, get: function (a, b) { return a[b]; }, set: function (a, b, c) { return (a[b] = c); } }, ta = { __properties__: { set_position: 'set_position', get_position: 'get_position', get_determinant: 'get_determinant' }, _new: function (a) { if (null == a || 16 != a.length) (a = ta.__identity), (a = null != a ? new Float32Array(a) : null); return a; }, append: function (a, b) { var c = a[0], e = a[4], f = a[8], d = a[12], p = a[1], l = a[5], k = a[9], n = a[13], h = a[2], m = a[6], t = a[10], u = a[14], q = a[3], r = a[7], w = a[11], x = a[15], z = ta.get(b, 0), E = ta.get(b, 4), I = ta.get(b, 8), H = ta.get(b, 12), C = ta.get(b, 1), A = ta.get(b, 5), ra = ta.get(b, 9), D = ta.get(b, 13), F = ta.get(b, 2), G = ta.get(b, 6), J = ta.get(b, 10), B = ta.get(b, 14), L = ta.get(b, 3), M = ta.get(b, 7), y = ta.get(b, 11); b = ta.get(b, 15); a[0] = c * z + p * E + h * I + q * H; a[1] = c * C + p * A + h * ra + q * D; a[2] = c * F + p * G + h * J + q * B; a[3] = c * L + p * M + h * y + q * b; a[4] = e * z + l * E + m * I + r * H; a[5] = e * C + l * A + m * ra + r * D; a[6] = e * F + l * G + m * J + r * B; a[7] = e * L + l * M + m * y + r * b; a[8] = f * z + k * E + t * I + w * H; a[9] = f * C + k * A + t * ra + w * D; a[10] = f * F + k * G + t * J + w * B; a[11] = f * L + k * M + t * y + w * b; a[12] = d * z + n * E + u * I + x * H; a[13] = d * C + n * A + u * ra + x * D; a[14] = d * F + n * G + u * J + x * B; a[15] = d * L + n * M + u * y + x * b; }, appendRotation: function (a, b, c, e) { b = ta.__getAxisRotation(a, c.x, c.y, c.z, b); null != e && ta.appendTranslation(b, e.x, e.y, e.z); ta.append(a, b); }, appendScale: function (a, b, c, e) { b = [b, 0, 0, 0, 0, c, 0, 0, 0, 0, e, 0, 0, 0, 0, 1]; b = null != b ? new Float32Array(b) : null; ta.append(a, ta._new(b)); }, appendTranslation: function (a, b, c, e) { a[12] += b; a[13] += c; a[14] += e; }, clone: function (a) { a = Yg.toArrayBufferView(a); a = null != a ? new Float32Array(a) : null; return ta._new(a); }, copyColumnFrom: function (a, b, c) { switch (b) { case 0: a[0] = c.x; a[1] = c.y; a[2] = c.z; a[3] = c.w; break; case 1: a[4] = c.x; a[5] = c.y; a[6] = c.z; a[7] = c.w; break; case 2: a[8] = c.x; a[9] = c.y; a[10] = c.z; a[11] = c.w; break; case 3: a[12] = c.x; a[13] = c.y; a[14] = c.z; a[15] = c.w; break; default: Xa.error('Column ' + b + ' out of bounds [0, ..., 3]', { fileName: 'lime/math/Matrix4.hx', lineNumber: 187, className: 'lime.math._Matrix4.Matrix4_Impl_', methodName: 'copyColumnFrom' }); } }, copyColumnTo: function (a, b, c) { switch (b) { case 0: c.x = a[0]; c.y = a[1]; c.z = a[2]; c.w = a[3]; break; case 1: c.x = a[4]; c.y = a[5]; c.z = a[6]; c.w = a[7]; break; case 2: c.x = a[8]; c.y = a[9]; c.z = a[10]; c.w = a[11]; break; case 3: c.x = a[12]; c.y = a[13]; c.z = a[14]; c.w = a[15]; break; default: Xa.error('Column ' + b + ' out of bounds [0, ..., 3]', { fileName: 'lime/math/Matrix4.hx', lineNumber: 225, className: 'lime.math._Matrix4.Matrix4_Impl_', methodName: 'copyColumnTo' }); } }, copyFrom: function (a, b) { a.set(b); }, copyRowFrom: function (a, b, c) { switch (b) { case 0: a[0] = c.x; a[4] = c.y; a[8] = c.z; a[12] = c.w; break; case 1: a[1] = c.x; a[5] = c.y; a[9] = c.z; a[13] = c.w; break; case 2: a[2] = c.x; a[6] = c.y; a[10] = c.z; a[14] = c.w; break; case 3: a[3] = c.x; a[7] = c.y; a[11] = c.z; a[15] = c.w; break; default: Xa.error('Row ' + b + ' out of bounds [0, ..., 3]', { fileName: 'lime/math/Matrix4.hx', lineNumber: 272, className: 'lime.math._Matrix4.Matrix4_Impl_', methodName: 'copyRowFrom' }); } }, copyRowTo: function (a, b, c) { switch (b) { case 0: c.x = a[0]; c.y = a[4]; c.z = a[8]; c.w = a[12]; break; case 1: c.x = a[1]; c.y = a[5]; c.z = a[9]; c.w = a[13]; break; case 2: c.x = a[2]; c.y = a[6]; c.z = a[10]; c.w = a[14]; break; case 3: c.x = a[3]; c.y = a[7]; c.z = a[11]; c.w = a[15]; break; default: Xa.error('Row ' + b + ' out of bounds [0, ..., 3]', { fileName: 'lime/math/Matrix4.hx', lineNumber: 310, className: 'lime.math._Matrix4.Matrix4_Impl_', methodName: 'copyRowTo' }); } }, create2D: function (a, b, c, e, f, d, p) { null == p && (p = 0); null == d && (d = 0); a[0] = b; a[1] = c; a[2] = 0; a[3] = 0; a[4] = e; a[5] = f; a[6] = 0; a[7] = 0; a[8] = 0; a[9] = 0; a[10] = 1; a[11] = 0; a[12] = d; a[13] = p; a[14] = 0; a[15] = 1; }, createOrtho: function (a, b, c, e, f, d, p) { var g = 1 / (c - b), k = 1 / (f - e), n = 1 / (p - d); a[0] = 2 * g; a[1] = 0; a[2] = 0; a[3] = 0; a[4] = 0; a[5] = 2 * k; a[6] = 0; a[7] = 0; a[8] = 0; a[9] = 0; a[10] = -2 * n; a[11] = 0; a[12] = -(b + c) * g; a[13] = -(e + f) * k; a[14] = -(d + p) * n; a[15] = 1; }, deltaTransformVector: function (a, b, c) { null == c && (c = new Bc()); var e = b.x, f = b.y; b = b.z; c.x = e * a[0] + f * a[4] + b * a[8] + a[3]; c.y = e * a[1] + f * a[5] + b * a[9] + a[7]; c.z = e * a[2] + f * a[6] + b * a[10] + a[11]; return c; }, fromMatrix3: function (a) { var b = ta._new(); ta.create2D(b, a.a, a.b, a.c, a.d, a.tx, a.ty); return b; }, identity: function (a) { a[0] = 1; a[1] = 0; a[2] = 0; a[3] = 0; a[4] = 0; a[5] = 1; a[6] = 0; a[7] = 0; a[8] = 0; a[9] = 0; a[10] = 1; a[11] = 0; a[12] = 0; a[13] = 0; a[14] = 0; a[15] = 1; }, interpolate: function (a, b, c, e) { null == e && (e = ta._new()); for (var f = 0; 16 > f; ) { var d = f++; ta.set(e, d, ta.get(a, d) + (ta.get(b, d) - ta.get(a, d)) * c); } return e; }, interpolateTo: function (a, b, c) { for (var e = 0; 16 > e; ) { var f = e++; a[f] += (ta.get(b, f) - a[f]) * c; } }, invert: function (a) { var b = ta.get_determinant(a), c = 1e-11 < Math.abs(b); if (c) { b = 1 / b; var e = a[0], f = a[4], d = a[8], p = a[12], l = a[1], k = a[5], n = a[9], h = a[13], m = a[2], t = a[6], u = a[10], q = a[14], r = a[3], w = a[7], x = a[11], z = a[15]; a[0] = b * (k * (u * z - q * x) - n * (t * z - q * w) + h * (t * x - u * w)); a[1] = -b * (l * (u * z - q * x) - n * (m * z - q * r) + h * (m * x - u * r)); a[2] = b * (l * (t * z - q * w) - k * (m * z - q * r) + h * (m * w - t * r)); a[3] = -b * (l * (t * x - u * w) - k * (m * x - u * r) + n * (m * w - t * r)); a[4] = -b * (f * (u * z - q * x) - d * (t * z - q * w) + p * (t * x - u * w)); a[5] = b * (e * (u * z - q * x) - d * (m * z - q * r) + p * (m * x - u * r)); a[6] = -b * (e * (t * z - q * w) - f * (m * z - q * r) + p * (m * w - t * r)); a[7] = b * (e * (t * x - u * w) - f * (m * x - u * r) + d * (m * w - t * r)); a[8] = b * (f * (n * z - h * x) - d * (k * z - h * w) + p * (k * x - n * w)); a[9] = -b * (e * (n * z - h * x) - d * (l * z - h * r) + p * (l * x - n * r)); a[10] = b * (e * (k * z - h * w) - f * (l * z - h * r) + p * (l * w - k * r)); a[11] = -b * (e * (k * x - n * w) - f * (l * x - n * r) + d * (l * w - k * r)); a[12] = -b * (f * (n * q - h * u) - d * (k * q - h * t) + p * (k * u - n * t)); a[13] = b * (e * (n * q - h * u) - d * (l * q - h * m) + p * (l * u - n * m)); a[14] = -b * (e * (k * q - h * t) - f * (l * q - h * m) + p * (l * t - k * m)); a[15] = b * (e * (k * u - n * t) - f * (l * u - n * m) + d * (l * t - k * m)); } return c; }, pointAt: function (a, b, c, e) { null == c && (c = new Bc(0, 0, 1)); null == e && (e = new Bc(0, 1, 0)); var f = null; null == f && (f = new Bc()); f.x = b.x - c.x; f.y = b.y - c.y; f.z = b.z - c.z; c = f; e = new Bc(e.x, e.y, e.z, e.w); f = Math.sqrt(c.x * c.x + c.y * c.y + c.z * c.z); 0 != f && ((c.x /= f), (c.y /= f), (c.z /= f)); f = Math.sqrt(e.x * e.x + e.y * e.y + e.z * e.z); 0 != f && ((e.x /= f), (e.y /= f), (e.z /= f)); var d = new Bc(c.x, c.y, c.z, c.w); f = e.x * c.x + e.y * c.y + e.z * c.z; d.x *= f; d.y *= f; d.z *= f; f = null; null == f && (f = new Bc()); f.x = e.x - d.x; f.y = e.y - d.y; f.z = e.z - d.z; e = f; 0 < Math.sqrt(e.x * e.x + e.y * e.y + e.z * e.z) ? ((f = Math.sqrt(e.x * e.x + e.y * e.y + e.z * e.z)), 0 != f && ((e.x /= f), (e.y /= f), (e.z /= f))) : (e = 0 != c.x ? new Bc(-c.y, c.x, 0) : new Bc(1, 0, 0)); f = null; null == f && (f = new Bc()); d = e.z * c.x - e.x * c.z; var p = e.x * c.y - e.y * c.x; f.x = e.y * c.z - e.z * c.y; f.y = d; f.z = p; f.w = 1; d = f; f = Math.sqrt(d.x * d.x + d.y * d.y + d.z * d.z); 0 != f && ((d.x /= f), (d.y /= f), (d.z /= f)); a[0] = d.x; a[4] = d.y; a[8] = d.z; a[12] = 0; a[1] = e.x; a[5] = e.y; a[9] = e.z; a[13] = 0; a[2] = c.x; a[6] = c.y; a[10] = c.z; a[14] = 0; a[3] = b.x; a[7] = b.y; a[11] = b.z; a[15] = 1; }, prepend: function (a, b) { var c = ta.get(b, 0), e = ta.get(b, 4), f = ta.get(b, 8), d = ta.get(b, 12), p = ta.get(b, 1), l = ta.get(b, 5), k = ta.get(b, 9), n = ta.get(b, 13), h = ta.get(b, 2), m = ta.get(b, 6), t = ta.get(b, 10), u = ta.get(b, 14), q = ta.get(b, 3), r = ta.get(b, 7), w = ta.get(b, 11); b = ta.get(b, 15); var x = a[0], z = a[4], E = a[8], I = a[12], H = a[1], C = a[5], A = a[9], ra = a[13], D = a[2], F = a[6], G = a[10], J = a[14], B = a[3], L = a[7], M = a[11], y = a[15]; a[0] = c * x + p * z + h * E + q * I; a[1] = c * H + p * C + h * A + q * ra; a[2] = c * D + p * F + h * G + q * J; a[3] = c * B + p * L + h * M + q * y; a[4] = e * x + l * z + m * E + r * I; a[5] = e * H + l * C + m * A + r * ra; a[6] = e * D + l * F + m * G + r * J; a[7] = e * B + l * L + m * M + r * y; a[8] = f * x + k * z + t * E + w * I; a[9] = f * H + k * C + t * A + w * ra; a[10] = f * D + k * F + t * G + w * J; a[11] = f * B + k * L + t * M + w * y; a[12] = d * x + n * z + u * E + b * I; a[13] = d * H + n * C + u * A + b * ra; a[14] = d * D + n * F + u * G + b * J; a[15] = d * B + n * L + u * M + b * y; }, prependRotation: function (a, b, c, e) { b = ta.__getAxisRotation(a, c.x, c.y, c.z, b); null != e && ta.appendTranslation(b, e.x, e.y, e.z); ta.prepend(a, b); }, prependScale: function (a, b, c, e) { b = [b, 0, 0, 0, 0, c, 0, 0, 0, 0, e, 0, 0, 0, 0, 1]; b = null != b ? new Float32Array(b) : null; ta.prepend(a, ta._new(b)); }, prependTranslation: function (a, b, c, e) { var f = ta._new(); ta.set_position(f, new Bc(b, c, e)); ta.prepend(a, f); }, transformVector: function (a, b, c) { null == c && (c = new Bc()); var e = b.x, f = b.y; b = b.z; c.x = e * a[0] + f * a[4] + b * a[8] + a[12]; c.y = e * a[1] + f * a[5] + b * a[9] + a[13]; c.z = e * a[2] + f * a[6] + b * a[10] + a[14]; c.w = e * a[3] + f * a[7] + b * a[11] + a[15]; return c; }, transformVectors: function (a, b, c) { for (var e = 0, f, d, p; e + 3 <= b.length; ) (f = b[e]), (d = b[e + 1]), (p = b[e + 2]), (c[e] = f * a[0] + d * a[4] + p * a[8] + a[12]), (c[e + 1] = f * a[1] + d * a[5] + p * a[9] + a[13]), (c[e + 2] = f * a[2] + d * a[6] + p * a[10] + a[14]), (e += 3); }, transpose: function (a) { var b = a[1]; a[1] = a[4]; a[4] = b; b = a[2]; a[2] = a[8]; a[8] = b; b = a[3]; a[3] = a[12]; a[12] = b; b = a[6]; a[6] = a[9]; a[9] = b; b = a[7]; a[7] = a[13]; a[13] = b; b = a[11]; a[11] = a[14]; a[14] = b; }, __getAxisRotation: function (a, b, c, e, f) { a = ta._new(); b = new Bc(b, c, e); f = (Math.PI / 180) * -f; e = Math.cos(f); f = Math.sin(f); c = 1 - e; ta.set(a, 0, e + b.x * b.x * c); ta.set(a, 5, e + b.y * b.y * c); ta.set(a, 10, e + b.z * b.z * c); e = b.x * b.y * c; var d = b.z * f; ta.set(a, 4, e + d); ta.set(a, 1, e - d); e = b.x * b.z * c; d = b.y * f; ta.set(a, 8, e - d); ta.set(a, 2, e + d); e = b.y * b.z * c; d = b.x * f; ta.set(a, 9, e + d); ta.set(a, 6, e - d); return a; }, __swap: function (a, b, c) { var e = a[b]; a[b] = a[c]; a[c] = e; }, get_determinant: function (a) { return ( (a[0] * a[5] - a[4] * a[1]) * (a[10] * a[15] - a[14] * a[11]) - (a[0] * a[9] - a[8] * a[1]) * (a[6] * a[15] - a[14] * a[7]) + (a[0] * a[13] - a[12] * a[1]) * (a[6] * a[11] - a[10] * a[7]) + (a[4] * a[9] - a[8] * a[5]) * (a[2] * a[15] - a[14] * a[3]) - (a[4] * a[13] - a[12] * a[5]) * (a[2] * a[11] - a[10] * a[3]) + (a[8] * a[13] - a[12] * a[9]) * (a[2] * a[7] - a[6] * a[3]) ); }, get_position: function (a) { return new Bc(a[12], a[13], a[14]); }, set_position: function (a, b) { a[12] = b.x; a[13] = b.y; a[14] = b.z; return b; }, get: function (a, b) { return a[b]; }, set: function (a, b, c) { return (a[b] = c); } }, N = { __properties__: { set_r: 'set_r', get_r: 'get_r', set_g: 'set_g', get_g: 'get_g', set_b: 'set_b', get_b: 'get_b', set_a: 'set_a', get_a: 'get_a' }, _new: function (a) { null == a && (a = 0); return a; }, create: function (a, b, c, e) { return ((a & 255) << 24) | ((b & 255) << 16) | ((c & 255) << 8) | (e & 255); }, multiplyAlpha: function (a) { 0 != (a & 255) && 255 != (a & 255) && (N.a16 = N.__alpha16[a & 255]); }, readUInt8: function (a, b, c, e, f) { null == f && (f = !1); null == e && (e = 0); switch (e) { case 0: a = ((b[c] & 255) << 24) | ((b[c + 1] & 255) << 16) | ((b[c + 2] & 255) << 8) | (b[c + 3] & 255); break; case 1: a = ((b[c + 1] & 255) << 24) | ((b[c + 2] & 255) << 16) | ((b[c + 3] & 255) << 8) | (b[c] & 255); break; case 2: a = ((b[c + 2] & 255) << 24) | ((b[c + 1] & 255) << 16) | ((b[c] & 255) << 8) | (b[c + 3] & 255); } f && 0 != (a & 255) && 255 != (a & 255) && (N.unmult = 255 / (a & 255)); }, set: function (a, b, c, e, f) {}, unmultiplyAlpha: function (a) { 0 != (a & 255) && 255 != (a & 255) && (N.unmult = 255 / (a & 255)); }, writeUInt8: function (a, b, c, e, f) { null == f && (f = !1); null == e && (e = 0); f && (0 == (a & 255) ? 0 != a && (a = 0) : 255 != (a & 255) && ((N.a16 = N.__alpha16[a & 255]), (a = ((((((a >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((a >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((a >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (a & 255)))); switch (e) { case 0: b[c] = (a >>> 24) & 255; b[c + 1] = (a >>> 16) & 255; b[c + 2] = (a >>> 8) & 255; b[c + 3] = a & 255; break; case 1: b[c] = a & 255; b[c + 1] = (a >>> 24) & 255; b[c + 2] = (a >>> 16) & 255; b[c + 3] = (a >>> 8) & 255; break; case 2: (b[c] = (a >>> 8) & 255), (b[c + 1] = (a >>> 16) & 255), (b[c + 2] = (a >>> 24) & 255), (b[c + 3] = a & 255); } }, __fromARGB: function (a) { return ( (((a >>> 16) & 255) << 24) | (((a >>> 8) & 255) << 16) | ((a & 255) << 8) | ((a >>> 24) & 255) ); }, __fromBGRA: function (a) { return ( (((a >>> 8) & 255) << 24) | (((a >>> 16) & 255) << 16) | (((a >>> 24) & 255) << 8) | (a & 255) ); }, get_a: function (a) { return a & 255; }, set_a: function (a, b) { return b; }, get_b: function (a) { return (a >>> 8) & 255; }, set_b: function (a, b) { return b; }, get_g: function (a) { return (a >>> 16) & 255; }, set_g: function (a, b) { return b; }, get_r: function (a) { return (a >>> 24) & 255; }, set_r: function (a, b) { return b; } }, Qd = function (a, b, c, e) { null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.x = a; this.y = b; this.width = c; this.height = e; }; h['lime.math.Rectangle'] = Qd; Qd.__name__ = 'lime.math.Rectangle'; Qd.prototype = { height: null, width: null, x: null, y: null, clone: function () { return new Qd(this.x, this.y, this.width, this.height); }, contains: function (a, b) { return a >= this.x && b >= this.y && a < this.get_right() ? b < this.get_bottom() : !1; }, containsPoint: function (a) { return this.containsVector(a); }, containsRect: function (a) { return 0 >= a.width || 0 >= a.height ? a.x > this.x && a.y > this.y && a.get_right() < this.get_right() ? a.get_bottom() < this.get_bottom() : !1 : a.x >= this.x && a.y >= this.y && a.get_right() <= this.get_right() ? a.get_bottom() <= this.get_bottom() : !1; }, containsVector: function (a) { return this.contains(a.x, a.y); }, copyFrom: function (a) { this.x = a.x; this.y = a.y; this.width = a.width; this.height = a.height; }, equals: function (a) { return null != a && this.x == a.x && this.y == a.y && this.width == a.width ? this.height == a.height : !1; }, inflate: function (a, b) { this.x -= a; this.width += 2 * a; this.y -= b; this.height += 2 * b; }, inflateVector: function (a) { this.inflate(a.x, a.y); }, intersection: function (a, b) { null == b && (b = new Qd()); var c = this.x < a.x ? a.x : this.x, e = this.get_right() > a.get_right() ? a.get_right() : this.get_right(); if (e <= c) return b.setEmpty(), b; var f = this.y < a.y ? a.y : this.y; a = this.get_bottom() > a.get_bottom() ? a.get_bottom() : this.get_bottom(); if (a <= f) return b.setEmpty(), b; b.x = c; b.y = f; b.width = e - c; b.height = a - f; return b; }, intersects: function (a) { var b = this.x < a.x ? a.x : this.x; if ((this.get_right() > a.get_right() ? a.get_right() : this.get_right()) <= b) return !1; b = this.y < a.y ? a.y : this.y; return (this.get_bottom() > a.get_bottom() ? a.get_bottom() : this.get_bottom()) > b; }, isEmpty: function () { return 0 >= this.width ? !0 : 0 >= this.height; }, offset: function (a, b) { this.x += a; this.y += b; }, offsetVector: function (a) { this.x += a.x; this.y += a.y; }, setEmpty: function () { this.x = this.y = this.width = this.height = 0; }, setTo: function (a, b, c, e) { this.x = a; this.y = b; this.width = c; this.height = e; }, union: function (a, b) { null == b && (b = new Qd()); if (0 == this.width || 0 == this.height) b.copyFrom(a); else if (0 == a.width || 0 == a.height) b.copyFrom(this); else { var c = this.x > a.x ? a.x : this.x, e = this.get_right() < a.get_right() ? a.get_right() : this.get_right(), f = this.y > a.y ? a.y : this.y; a = this.get_bottom() < a.get_bottom() ? a.get_bottom() : this.get_bottom(); b.setTo(c, f, e - c, a - f); } return b; }, __toFlashRectangle: function () { return null; }, get_bottom: function () { return this.y + this.height; }, set_bottom: function (a) { this.height = a - this.y; return a; }, get_bottomRight: function () { return new Xd(this.x + this.width, this.y + this.height); }, set_bottomRight: function (a) { this.width = a.x - this.x; this.height = a.y - this.y; return a.clone(); }, get_left: function () { return this.x; }, set_left: function (a) { this.width -= a - this.x; return (this.x = a); }, get_right: function () { return this.x + this.width; }, set_right: function (a) { this.width = a - this.x; return a; }, get_size: function () { return new Xd(this.width, this.height); }, set_size: function (a) { this.width = a.x; this.height = a.y; return a.clone(); }, get_top: function () { return this.y; }, set_top: function (a) { this.height -= a - this.y; return (this.y = a); }, get_topLeft: function () { return new Xd(this.x, this.y); }, set_topLeft: function (a) { this.x = a.x; this.y = a.y; return a.clone(); }, __class__: Qd, __properties__: { set_topLeft: 'set_topLeft', get_topLeft: 'get_topLeft', set_top: 'set_top', get_top: 'get_top', set_size: 'set_size', get_size: 'get_size', set_right: 'set_right', get_right: 'get_right', set_left: 'set_left', get_left: 'get_left', set_bottomRight: 'set_bottomRight', get_bottomRight: 'get_bottomRight', set_bottom: 'set_bottom', get_bottom: 'get_bottom' } }; var Xd = function (a, b) { null == b && (b = 0); null == a && (a = 0); this.x = a; this.y = b; }; h['lime.math.Vector2'] = Xd; Xd.__name__ = 'lime.math.Vector2'; Xd.distance = function (a, b) { var c = a.x - b.x; a = a.y - b.y; return Math.sqrt(c * c + a * a); }; Xd.interpolate = function (a, b, c, e) { null == e && (e = new Xd()); e.x = b.x + c * (a.x - b.x); e.y = b.y + c * (a.y - b.y); return e; }; Xd.polar = function (a, b, c) { null == c && (c = new Xd()); var e = a * Math.sin(b); c.x = a * Math.cos(b); c.y = e; return c; }; Xd.prototype = { x: null, y: null, add: function (a, b) { null == b && (b = new Xd()); b.x = a.x + this.x; b.y = a.y + this.y; return b; }, clone: function () { return new Xd(this.x, this.y); }, equals: function (a) { return null != a && a.x == this.x ? a.y == this.y : !1; }, normalize: function (a) { if (0 != this.x || 0 != this.y) (a /= Math.sqrt(this.x * this.x + this.y * this.y)), (this.x *= a), (this.y *= a); }, offset: function (a, b) { this.x += a; this.y += b; }, setTo: function (a, b) { this.x = a; this.y = b; }, subtract: function (a, b) { null == b && (b = new Xd()); b.x = this.x - a.x; b.y = this.y - a.y; return b; }, __toFlashPoint: function () { return null; }, get_length: function () { return Math.sqrt(this.x * this.x + this.y * this.y); }, get_lengthSquared: function () { return this.x * this.x + this.y * this.y; }, __class__: Xd, __properties__: { get_lengthSquared: 'get_lengthSquared', get_length: 'get_length' } }; var Bc = function (a, b, c, e) { null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.w = e; this.x = a; this.y = b; this.z = c; }; h['lime.math.Vector4'] = Bc; Bc.__name__ = 'lime.math.Vector4'; Bc.__properties__ = { get_Z_AXIS: 'get_Z_AXIS', get_Y_AXIS: 'get_Y_AXIS', get_X_AXIS: 'get_X_AXIS' }; Bc.angleBetween = function (a, b) { a = new Bc(a.x, a.y, a.z, a.w); var c = Math.sqrt(a.x * a.x + a.y * a.y + a.z * a.z); 0 != c && ((a.x /= c), (a.y /= c), (a.z /= c)); b = new Bc(b.x, b.y, b.z, b.w); c = Math.sqrt(b.x * b.x + b.y * b.y + b.z * b.z); 0 != c && ((b.x /= c), (b.y /= c), (b.z /= c)); return Math.acos(a.x * b.x + a.y * b.y + a.z * b.z); }; Bc.distance = function (a, b) { var c = b.x - a.x, e = b.y - a.y; a = b.z - a.z; return Math.sqrt(c * c + e * e + a * a); }; Bc.distanceSquared = function (a, b) { var c = b.x - a.x, e = b.y - a.y; a = b.z - a.z; return c * c + e * e + a * a; }; Bc.get_X_AXIS = function () { return new Bc(1, 0, 0); }; Bc.get_Y_AXIS = function () { return new Bc(0, 1, 0); }; Bc.get_Z_AXIS = function () { return new Bc(0, 0, 1); }; Bc.prototype = { w: null, x: null, y: null, z: null, add: function (a, b) { null == b && (b = new Bc()); b.x = this.x + a.x; b.y = this.y + a.y; b.z = this.z + a.z; return b; }, clone: function () { return new Bc(this.x, this.y, this.z, this.w); }, copyFrom: function (a) { this.x = a.x; this.y = a.y; this.z = a.z; }, crossProduct: function (a, b) { null == b && (b = new Bc()); var c = this.z * a.x - this.x * a.z, e = this.x * a.y - this.y * a.x; b.x = this.y * a.z - this.z * a.y; b.y = c; b.z = e; b.w = 1; return b; }, decrementBy: function (a) { this.x -= a.x; this.y -= a.y; this.z -= a.z; }, dotProduct: function (a) { return this.x * a.x + this.y * a.y + this.z * a.z; }, equals: function (a, b) { null == b && (b = !1); return this.x == a.x && this.y == a.y && this.z == a.z ? (b ? this.w == a.w : !0) : !1; }, incrementBy: function (a) { this.x += a.x; this.y += a.y; this.z += a.z; }, nearEquals: function (a, b, c) { null == c && (c = !1); return Math.abs(this.x - a.x) < b && Math.abs(this.y - a.y) < b && Math.abs(this.z - a.z) < b ? c ? Math.abs(this.w - a.w) < b : !0 : !1; }, negate: function () { this.x *= -1; this.y *= -1; this.z *= -1; }, normalize: function () { var a = Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); 0 != a && ((this.x /= a), (this.y /= a), (this.z /= a)); return a; }, project: function () { this.x /= this.w; this.y /= this.w; this.z /= this.w; }, scaleBy: function (a) { this.x *= a; this.y *= a; this.z *= a; }, setTo: function (a, b, c) { this.x = a; this.y = b; this.z = c; }, subtract: function (a, b) { null == b && (b = new Bc()); b.x = this.x - a.x; b.y = this.y - a.y; b.z = this.z - a.z; return b; }, toString: function () { return 'Vector4(' + this.x + ', ' + this.y + ', ' + this.z + ')'; }, get_length: function () { return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); }, get_lengthSquared: function () { return this.x * this.x + this.y * this.y + this.z * this.z; }, __class__: Bc, __properties__: { get_lengthSquared: 'get_lengthSquared', get_length: 'get_length' } }; var Wc = function () {}; h['lime.media.AudioBuffer'] = Wc; Wc.__name__ = 'lime.media.AudioBuffer'; Wc.fromBase64 = function (a) { if (null == a) return null; -1 == a.indexOf(',') && (a = 'data:' + Wc.__getCodec(Qf.decode(a)) + ';base64,' + a); var b = new Wc(); b.set_src(new Howl({ src: [a], html5: !0, preload: !1 })); return b; }; Wc.fromBytes = function (a) { if (null == a) return null; var b = new Wc(); b.set_src( new Howl({ src: ['data:' + Wc.__getCodec(a) + ';base64,' + Qf.encode(a)], html5: !0, preload: !1 }) ); return b; }; Wc.fromFile = function (a) { if (null == a) return null; var b = new Wc(); b.__srcHowl = new Howl({ src: [a], preload: !1 }); return b; }; Wc.fromFiles = function (a) { var b = new Wc(); b.__srcHowl = new Howl({ src: a, preload: !1 }); return b; }; Wc.fromVorbisFile = function (a) { return null; }; Wc.loadFromFile = function (a) { var b = new $d(), c = Wc.fromFile(a); null != c ? null != c && (c.__srcHowl.on('load', function () { b.complete(c); }), c.__srcHowl.on('loaderror', function (a, c) { b.error(c); }), c.__srcHowl.load()) : b.error(null); return b.future; }; Wc.loadFromFiles = function (a) { var b = new $d(), c = Wc.fromFiles(a); null != c ? (c.__srcHowl.on('load', function () { b.complete(c); }), c.__srcHowl.on('loaderror', function () { b.error(null); }), c.__srcHowl.load()) : b.error(null); return b.future; }; Wc.__getCodec = function (a) { switch (a.getString(0, 4)) { case 'OggS': return 'audio/ogg'; case 'RIFF': if ('WAVE' == a.getString(8, 4)) return 'audio/wav'; var b = a.b[1], c = a.b[2]; switch (a.b[0]) { case 73: if (68 == b && 51 == c) return 'audio/mp3'; break; case 255: switch (b) { case 243: case 250: case 251: return 'audio/mp3'; } } break; case 'fLaC': return 'audio/flac'; default: switch (((b = a.b[1]), (c = a.b[2]), a.b[0])) { case 73: if (68 == b && 51 == c) return 'audio/mp3'; break; case 255: switch (b) { case 243: case 250: case 251: return 'audio/mp3'; } } } Xa.error('Unsupported sound format', { fileName: 'lime/media/AudioBuffer.hx', lineNumber: 362, className: 'lime.media.AudioBuffer', methodName: '__getCodec' }); return null; }; Wc.prototype = { bitsPerSample: null, channels: null, data: null, sampleRate: null, __srcAudio: null, __srcBuffer: null, __srcCustom: null, __srcHowl: null, __srcSound: null, __srcVorbisFile: null, dispose: function () { this.__srcHowl.unload(); }, get_src: function () { return this.__srcHowl; }, set_src: function (a) { return (this.__srcHowl = a); }, __class__: Wc, __properties__: { set_src: 'set_src', get_src: 'get_src' } }; var Qo = function (a) { if ('custom' != a) { if (null == a || 'web' == a) try { (window.AudioContext = window.AudioContext || window.webkitAudioContext), (this.web = new window.AudioContext()), (this.type = 'web'); } catch (b) { la.lastError = b; } null == this.web && 'web' != a && ((this.html5 = new Po()), (this.type = 'html5')); } else this.type = 'custom'; }; h['lime.media.AudioContext'] = Qo; Qo.__name__ = 'lime.media.AudioContext'; Qo.prototype = { custom: null, flash: null, html5: null, openal: null, type: null, web: null, __class__: Qo }; var xc = function () {}; h['lime.media.AudioManager'] = xc; xc.__name__ = 'lime.media.AudioManager'; xc.init = function (a) { if (null == xc.context) { if (null == a && ((xc.context = new Qo()), (a = xc.context), 'openal' == a.type)) { var b = a.openal, c = b.openDevice(); c = b.createContext(c); b.makeContextCurrent(c); b.processContext(c); } xc.context = a; } }; xc.resume = function () { if (null != xc.context && 'openal' == xc.context.type) { var a = xc.context.openal, b = a.getCurrentContext(); if (null != b) { var c = a.getContextsDevice(b); a.resumeDevice(c); a.processContext(b); } } }; xc.addAudioSource = function (a) { -1 == xc.audioSources.indexOf(a) && xc.audioSources.push(a); }; xc.removeAudioSource = function (a) { 0 <= xc.audioSources.indexOf(a) && xc.sourcesToRemove.push(a); }; xc.update = function () { for (var a = 0, b = xc.audioSources; a < b.length; ) { var c = b[a]; ++a; c.update(); } for (; 0 < xc.sourcesToRemove.length; ) (c = xc.sourcesToRemove.pop()), -1 != xc.audioSources.indexOf(c) && A.remove(xc.audioSources, c); }; xc.shutdown = function () { if (null != xc.context && 'openal' == xc.context.type) { var a = xc.context.openal, b = a.getCurrentContext(); if (null != b) { var c = a.getContextsDevice(b); a.makeContextCurrent(null); a.destroyContext(b); null != c && a.closeDevice(c); } } xc.context = null; }; xc.suspend = function () { if (null != xc.context && 'openal' == xc.context.type) { var a = xc.context.openal, b = a.getCurrentContext(); null != b && (a.suspendContext(b), (b = a.getContextsDevice(b)), null != b && a.pauseDevice(b)); } }; var Uj = function (a, b, c, e) { null == e && (e = 0); null == b && (b = 0); this.id = Uj.ID++; this.onComplete = new Ld(); this.buffer = a; this.offset = b; this.__backend = new wo(this); null != c && 0 != c && this.set_length(c); this.set_loops(e); null != a && this.init(); }; h['lime.media.AudioSource'] = Uj; Uj.__name__ = 'lime.media.AudioSource'; Uj.prototype = { onComplete: null, id: null, buffer: null, offset: null, _pan: null, _position: null, __backend: null, dispose: function () { this.__backend.dispose(); xc.removeAudioSource(this); }, init: function () { this.__backend.init(); xc.addAudioSource(this); }, play: function () { this.__backend.play(); }, pause: function () { this.__backend.pause(); }, stop: function () { this.__backend.stop(); }, update: function () { this.__backend.update(); }, get_currentTime: function () { return this.__backend.getCurrentTime(); }, set_currentTime: function (a) { return this.__backend.setCurrentTime(a); }, get_gain: function () { return this.__backend.getGain(); }, set_gain: function (a) { return this.__backend.setGain(a); }, get_length: function () { return this.__backend.getLength(); }, set_length: function (a) { return this.__backend.setLength(a); }, get_loops: function () { return this.__backend.getLoops(); }, set_loops: function (a) { return this.__backend.setLoops(a); }, get_pan: function () { return this._pan; }, set_pan: function (a) { if (null != this._position) return this._pan; null == a && (this._pan = this.__backend.setPan(0)); return (this._pan = this.__backend.setPan(a)); }, get_position: function () { return this._position; }, set_position: function (a) { if (null != this._pan) return this._position; null == a && (this._position = this.__backend.setPosition(new Bc(0, 0, 0, 0))); return (this._position = this.__backend.setPosition(a)); }, __class__: Uj, __properties__: { set_position: 'set_position', get_position: 'get_position', set_pan: 'set_pan', get_pan: 'get_pan', set_loops: 'set_loops', get_loops: 'get_loops', set_length: 'set_length', get_length: 'get_length', set_gain: 'set_gain', get_gain: 'get_gain', set_currentTime: 'set_currentTime', get_currentTime: 'get_currentTime' } }; var nw = function () {}; h['lime.media.FlashAudioContext'] = nw; nw.__name__ = 'lime.media.FlashAudioContext'; nw.prototype = { createBuffer: function (a, b) { return null; }, getBytesLoaded: function (a) { return 0; }, getBytesTotal: function (a) { return 0; }, getID3: function (a) { return null; }, getIsBuffering: function (a) { return !1; }, getIsURLInaccessible: function (a) { return !1; }, getLength: function (a) { return 0; }, getURL: function (a) { return null; }, close: function (a) {}, extract: function (a, b, c, e) { return 0; }, load: function (a, b, c) {}, loadCompressedDataFromByteArray: function (a, b, c) {}, loadPCMFromByteArray: function (a, b, c, e, f, d) {}, play: function (a, b, c, e) { return null; }, __class__: nw }; var Po = function () { this.NETWORK_NO_SOURCE = 3; this.NETWORK_LOADING = 2; this.NETWORK_IDLE = 1; this.HAVE_NOTHING = this.NETWORK_EMPTY = 0; this.HAVE_METADATA = 1; this.HAVE_FUTURE_DATA = 3; this.HAVE_ENOUGH_DATA = 4; this.HAVE_CURRENT_DATA = 2; }; h['lime.media.HTML5AudioContext'] = Po; Po.__name__ = 'lime.media.HTML5AudioContext'; Po.prototype = { HAVE_CURRENT_DATA: null, HAVE_ENOUGH_DATA: null, HAVE_FUTURE_DATA: null, HAVE_METADATA: null, HAVE_NOTHING: null, NETWORK_EMPTY: null, NETWORK_IDLE: null, NETWORK_LOADING: null, NETWORK_NO_SOURCE: null, canPlayType: function (a, b) { return null != a.__srcAudio ? a.__srcAudio.canPlayType(b) : null; }, createBuffer: function (a) { var b = new Wc(); b.__srcAudio = new Audio(); b.__srcAudio.src = a; return b; }, getAutoplay: function (a) { return null != a.__srcAudio ? a.__srcAudio.autoplay : !1; }, getBuffered: function (a) { return null != a.__srcAudio ? a.__srcAudio.buffered : null; }, getCurrentSrc: function (a) { return null != a.__srcAudio ? a.__srcAudio.currentSrc : null; }, getCurrentTime: function (a) { return null != a.__srcAudio ? a.__srcAudio.currentTime : 0; }, getDefaultPlaybackRate: function (a) { return null != a.__srcAudio ? a.__srcAudio.defaultPlaybackRate : 1; }, getDuration: function (a) { return null != a.__srcAudio ? a.__srcAudio.duration : 0; }, getEnded: function (a) { return null != a.__srcAudio ? a.__srcAudio.ended : !1; }, getError: function (a) { return null != a.__srcAudio ? a.__srcAudio.error : null; }, getLoop: function (a) { return null != a.__srcAudio ? a.__srcAudio.loop : !1; }, getMuted: function (a) { return null != a.__srcAudio ? a.__srcAudio.muted : !1; }, getNetworkState: function (a) { return null != a.__srcAudio ? a.__srcAudio.networkState : 0; }, getPaused: function (a) { return null != a.__srcAudio ? a.__srcAudio.paused : !1; }, getPlaybackRate: function (a) { return null != a.__srcAudio ? a.__srcAudio.playbackRate : 1; }, getPlayed: function (a) { return null != a.__srcAudio ? a.__srcAudio.played : null; }, getPreload: function (a) { return null != a.__srcAudio ? a.__srcAudio.preload : null; }, getReadyState: function (a) { return null != a.__srcAudio ? a.__srcAudio.readyState : 0; }, getSeekable: function (a) { return null != a.__srcAudio ? a.__srcAudio.seekable : null; }, getSeeking: function (a) { return null != a.__srcAudio ? a.__srcAudio.seeking : !1; }, getSrc: function (a) { return null != a.__srcAudio ? a.__srcAudio.src : null; }, getStartTime: function (a) { return null != a.__srcAudio ? a.__srcAudio.playbackRate : 0; }, getVolume: function (a) { return null != a.__srcAudio ? a.__srcAudio.volume : 1; }, load: function (a) { null != a.__srcAudio && a.__srcAudio.load(); }, pause: function (a) { null != a.__srcAudio && a.__srcAudio.pause(); }, play: function (a) { null != a.__srcAudio && a.__srcAudio.play(); }, setAutoplay: function (a, b) { null != a.__srcAudio && (a.__srcAudio.autoplay = b); }, setCurrentTime: function (a, b) { null != a.__srcAudio && (a.__srcAudio.currentTime = b); }, setDefaultPlaybackRate: function (a, b) { null != a.__srcAudio && (a.__srcAudio.defaultPlaybackRate = b); }, setLoop: function (a, b) { null != a.__srcAudio && (a.__srcAudio.loop = b); }, setMuted: function (a, b) { null != a.__srcAudio && (a.__srcAudio.muted = b); }, setPlaybackRate: function (a, b) { null != a.__srcAudio && (a.__srcAudio.playbackRate = b); }, setPreload: function (a, b) { null != a.__srcAudio && (a.__srcAudio.preload = b); }, setSrc: function (a, b) { null != a.__srcAudio && (a.__srcAudio.src = b); }, setVolume: function (a, b) { null != a.__srcAudio && (a.__srcAudio.volume = b); }, __class__: Po }; var ow = function () { this.ALL_DEVICES_SPECIFIER = 4115; this.DEFAULT_ALL_DEVICES_SPECIFIER = 4114; this.ENUMERATE_ALL_EXT = 1; this.DEVICE_SPECIFIER = 4101; this.DEFAULT_DEVICE_SPECIFIER = 4100; this.ALL_ATTRIBUTES = 4099; this.ATTRIBUTES_SIZE = 4098; this.INVALID_CONTEXT = 40962; this.INVALID_DEVICE = 40961; this.STEREO_SOURCES = 4113; this.MONO_SOURCES = 4112; this.SYNC = 4105; this.REFRESH = 4104; this.EXPONENT_DISTANCE_CLAMPED = 53254; this.EXPONENT_DISTANCE = 53253; this.LINEAR_DISTANCE_CLAMPED = 53252; this.LINEAR_DISTANCE = 53251; this.INVERSE_DISTANCE_CLAMPED = 53250; this.INVERSE_DISTANCE = 53249; this.DISTANCE_MODEL = 53248; this.DOPPLER_VELOCITY = 49153; this.SPEED_OF_SOUND = 49155; this.DOPPLER_FACTOR = 49152; this.EXTENSIONS = 45060; this.RENDERER = 45059; this.VERSION = 45058; this.VENDOR = 45057; this.OUT_OF_MEMORY = 40965; this.INVALID_OPERATION = 40964; this.INVALID_VALUE = 40963; this.INVALID_ENUM = 40962; this.INVALID_NAME = 40961; this.NO_ERROR = 0; this.SIZE = 8196; this.CHANNELS = 8195; this.BITS = 8194; this.FREQUENCY = 8193; this.FORMAT_STEREO16 = 4355; this.FORMAT_STEREO8 = 4354; this.FORMAT_MONO16 = 4353; this.FORMAT_MONO8 = 4352; this.UNDETERMINED = 4144; this.STREAMING = 4137; this.STATIC = 4136; this.SOURCE_TYPE = 4135; this.BYTE_OFFSET = 4134; this.SAMPLE_OFFSET = 4133; this.SEC_OFFSET = 4132; this.MAX_DISTANCE = 4131; this.CONE_OUTER_GAIN = 4130; this.ROLLOFF_FACTOR = 4129; this.REFERENCE_DISTANCE = 4128; this.BUFFERS_PROCESSED = 4118; this.BUFFERS_QUEUED = 4117; this.STOPPED = 4116; this.PAUSED = 4115; this.PLAYING = 4114; this.INITIAL = 4113; this.SOURCE_STATE = 4112; this.ORIENTATION = 4111; this.MAX_GAIN = 4110; this.MIN_GAIN = 4109; this.GAIN = 4106; this.BUFFER = 4105; this.LOOPING = 4103; this.VELOCITY = 4102; this.DIRECTION = 4101; this.POSITION = 4100; this.PITCH = 4099; this.CONE_OUTER_ANGLE = 4098; this.CONE_INNER_ANGLE = 4097; this.SOURCE_RELATIVE = 514; this.TRUE = 1; this.NONE = this.FALSE = 0; }; h['lime.media.OpenALAudioContext'] = ow; ow.__name__ = 'lime.media.OpenALAudioContext'; ow.prototype = { NONE: null, FALSE: null, TRUE: null, SOURCE_RELATIVE: null, CONE_INNER_ANGLE: null, CONE_OUTER_ANGLE: null, PITCH: null, POSITION: null, DIRECTION: null, VELOCITY: null, LOOPING: null, BUFFER: null, GAIN: null, MIN_GAIN: null, MAX_GAIN: null, ORIENTATION: null, SOURCE_STATE: null, INITIAL: null, PLAYING: null, PAUSED: null, STOPPED: null, BUFFERS_QUEUED: null, BUFFERS_PROCESSED: null, REFERENCE_DISTANCE: null, ROLLOFF_FACTOR: null, CONE_OUTER_GAIN: null, MAX_DISTANCE: null, SEC_OFFSET: null, SAMPLE_OFFSET: null, BYTE_OFFSET: null, SOURCE_TYPE: null, STATIC: null, STREAMING: null, UNDETERMINED: null, FORMAT_MONO8: null, FORMAT_MONO16: null, FORMAT_STEREO8: null, FORMAT_STEREO16: null, FREQUENCY: null, BITS: null, CHANNELS: null, SIZE: null, NO_ERROR: null, INVALID_NAME: null, INVALID_ENUM: null, INVALID_VALUE: null, INVALID_OPERATION: null, OUT_OF_MEMORY: null, VENDOR: null, VERSION: null, RENDERER: null, EXTENSIONS: null, DOPPLER_FACTOR: null, SPEED_OF_SOUND: null, DOPPLER_VELOCITY: null, DISTANCE_MODEL: null, INVERSE_DISTANCE: null, INVERSE_DISTANCE_CLAMPED: null, LINEAR_DISTANCE: null, LINEAR_DISTANCE_CLAMPED: null, EXPONENT_DISTANCE: null, EXPONENT_DISTANCE_CLAMPED: null, REFRESH: null, SYNC: null, MONO_SOURCES: null, STEREO_SOURCES: null, INVALID_DEVICE: null, INVALID_CONTEXT: null, ATTRIBUTES_SIZE: null, ALL_ATTRIBUTES: null, DEFAULT_DEVICE_SPECIFIER: null, DEVICE_SPECIFIER: null, ENUMERATE_ALL_EXT: null, DEFAULT_ALL_DEVICES_SPECIFIER: null, ALL_DEVICES_SPECIFIER: null, bufferData: function (a, b, c, e, f) { F.bufferData(a, b, c, e, f); }, buffer3f: function (a, b, c, e, f) { F.buffer3f(a, b, c, e, f); }, buffer3i: function (a, b, c, e, f) { F.buffer3i(a, b, c, e, f); }, bufferf: function (a, b, c) { F.bufferf(a, b, c); }, bufferfv: function (a, b, c) { F.bufferfv(a, b, c); }, bufferi: function (a, b, c) { F.bufferi(a, b, c); }, bufferiv: function (a, b, c) { F.bufferiv(a, b, c); }, closeDevice: function (a) { return Gb.closeDevice(a); }, createContext: function (a, b) { return Gb.createContext(a, b); }, createBuffer: function () { return F.createBuffer(); }, createSource: function () { return F.createSource(); }, deleteBuffer: function (a) { F.deleteBuffer(a); }, deleteBuffers: function (a) { F.deleteBuffers(a); }, deleteSource: function (a) { F.deleteSource(a); }, deleteSources: function (a) { F.deleteSources(a); }, destroyContext: function (a) { null != a && Gb.destroyContext(a); }, disable: function (a) { F.disable(a); }, distanceModel: function (a) { F.distanceModel(a); }, dopplerFactor: function (a) { F.dopplerFactor(a); }, dopplerVelocity: function (a) { F.dopplerVelocity(a); }, enable: function (a) { F.enable(a); }, genSource: function () { return this.createSource(); }, genSources: function (a) { return F.genSources(a); }, genBuffer: function () { return this.createBuffer(); }, genBuffers: function (a) { return F.genBuffers(a); }, getBoolean: function (a) { return F.getBoolean(a); }, getBooleanv: function (a, b) { null == b && (b = 1); return F.getBooleanv(a, b); }, getBuffer3f: function (a, b) { return F.getBuffer3f(a, b); }, getBuffer3i: function (a, b) { return F.getBuffer3i(a, b); }, getBufferf: function (a, b) { return F.getBufferf(a, b); }, getBufferfv: function (a, b, c) { null == c && (c = 1); return F.getBufferfv(a, b, c); }, getBufferi: function (a, b) { return F.getBufferi(a, b); }, getBufferiv: function (a, b, c) { null == c && (c = 1); return F.getBufferiv(a, b, c); }, getContextsDevice: function (a) { return null == a ? null : Gb.getContextsDevice(a); }, getCurrentContext: function () { return Gb.getCurrentContext(); }, getDouble: function (a) { return F.getDouble(a); }, getDoublev: function (a, b) { null == b && (b = 1); return F.getDoublev(a, b); }, getEnumValue: function (a) { return F.getEnumValue(a); }, getError: function (a) { return null == a ? F.getError() : Gb.getError(a); }, getErrorString: function (a) { return null == a ? F.getErrorString() : Gb.getErrorString(a); }, getFloat: function (a) { return F.getFloat(a); }, getFloatv: function (a, b) { null == b && (b = 1); return F.getFloatv(a, b); }, getInteger: function (a) { return F.getInteger(a); }, getIntegerv: function (a, b, c) { null == b && (b = 1); return null == c ? F.getIntegerv(a, b) : Gb.getIntegerv(c, a, b); }, getListener3f: function (a) { return F.getListener3f(a); }, getListener3i: function (a) { return F.getListener3i(a); }, getListenerf: function (a) { return F.getListenerf(a); }, getListenerfv: function (a, b) { null == b && (b = 1); return F.getListenerfv(a, b); }, getListeneri: function (a) { return F.getListeneri(a); }, getListeneriv: function (a, b) { null == b && (b = 1); return F.getListeneriv(a, b); }, getProcAddress: function (a) { return F.getProcAddress(a); }, getSource3f: function (a, b) { return F.getSource3f(a, b); }, getSourcef: function (a, b) { return F.getSourcef(a, b); }, getSource3i: function (a, b) { return F.getSource3i(a, b); }, getSourcefv: function (a, b, c) { return F.getSourcefv(a, b); }, getSourcei: function (a, b) { return F.getSourcei(a, b); }, getSourceiv: function (a, b, c) { null == c && (c = 1); return F.getSourceiv(a, b, c); }, getString: function (a, b) { return null == b ? F.getString(a) : Gb.getString(b, a); }, isBuffer: function (a) { return F.isBuffer(a); }, isEnabled: function (a) { return F.isEnabled(a); }, isExtensionPresent: function (a) { return F.isExtensionPresent(a); }, isSource: function (a) { return F.isSource(a); }, listener3f: function (a, b, c, e) { F.listener3f(a, b, c, e); }, listener3i: function (a, b, c, e) { F.listener3i(a, b, c, e); }, listenerf: function (a, b) { F.listenerf(a, b); }, listenerfv: function (a, b) { F.listenerfv(a, b); }, listeneri: function (a, b) { F.listeneri(a, b); }, listeneriv: function (a, b) { F.listeneriv(a, b); }, makeContextCurrent: function (a) { return Gb.makeContextCurrent(a); }, openDevice: function (a) { return Gb.openDevice(a); }, pauseDevice: function (a) { Gb.pauseDevice(a); }, processContext: function (a) { Gb.processContext(a); }, resumeDevice: function (a) { Gb.resumeDevice(a); }, source3f: function (a, b, c, e, f) { F.source3f(a, b, c, e, f); }, source3i: function (a, b, c, e, f) { F.source3i(a, b, c, e, f); }, sourcef: function (a, b, c) { F.sourcef(a, b, c); }, sourcefv: function (a, b, c) { F.sourcefv(a, b, c); }, sourcei: function (a, b, c) { F.sourcei(a, b, c); }, sourceiv: function (a, b, c) { F.sourceiv(a, b, c); }, sourcePlay: function (a) { F.sourcePlay(a); }, sourcePlayv: function (a) { F.sourcePlayv(a); }, sourceStop: function (a) { F.sourceStop(a); }, sourceStopv: function (a) { F.sourceStopv(a); }, sourceRewind: function (a) { F.sourceRewind(a); }, sourceRewindv: function (a) { F.sourceRewindv(a); }, sourcePause: function (a) { F.sourcePause(a); }, sourcePausev: function (a) { F.sourcePausev(a); }, sourceQueueBuffer: function (a, b) { F.sourceQueueBuffer(a, b); }, sourceQueueBuffers: function (a, b, c) { F.sourceQueueBuffers(a, b, c); }, sourceUnqueueBuffer: function (a) { return F.sourceUnqueueBuffer(a); }, sourceUnqueueBuffers: function (a, b) { return F.sourceUnqueueBuffers(a, b); }, speedOfSound: function (a) { F.speedOfSound(a); }, suspendContext: function (a) { Gb.suspendContext(a); }, __class__: ow }; var F = function () {}; h['lime.media.openal.AL'] = F; F.__name__ = 'lime.media.openal.AL'; F.removeDirectFilter = function (a) {}; F.removeSend = function (a, b) {}; F.auxf = function (a, b, c) {}; F.auxfv = function (a, b, c) {}; F.auxi = function (a, b, c) {}; F.auxiv = function (a, b, c) {}; F.bufferData = function (a, b, c, e, f) {}; F.buffer3f = function (a, b, c, e, f) {}; F.buffer3i = function (a, b, c, e, f) {}; F.bufferf = function (a, b, c) {}; F.bufferfv = function (a, b, c) {}; F.bufferi = function (a, b, c) {}; F.bufferiv = function (a, b, c) {}; F.createAux = function () { return null; }; F.createBuffer = function () { return null; }; F.createEffect = function () { return null; }; F.createFilter = function () { return null; }; F.createSource = function () { return null; }; F.deleteBuffer = function (a) {}; F.deleteBuffers = function (a) {}; F.deleteSource = function (a) {}; F.deleteSources = function (a) {}; F.disable = function (a) {}; F.distanceModel = function (a) {}; F.dopplerFactor = function (a) {}; F.dopplerVelocity = function (a) {}; F.effectf = function (a, b, c) {}; F.effectfv = function (a, b, c) {}; F.effecti = function (a, b, c) {}; F.effectiv = function (a, b, c) {}; F.enable = function (a) {}; F.genSource = function () { return null; }; F.genSources = function (a) { return null; }; F.genBuffer = function () { return null; }; F.genBuffers = function (a) { return null; }; F.getBoolean = function (a) { return !1; }; F.getBooleanv = function (a, b) { return null; }; F.getBuffer3f = function (a, b) { return null; }; F.getBuffer3i = function (a, b) { return null; }; F.getBufferf = function (a, b) { return 0; }; F.getBufferfv = function (a, b, c) { return null; }; F.getBufferi = function (a, b) { return 0; }; F.getBufferiv = function (a, b, c) { return null; }; F.getDouble = function (a) { return 0; }; F.getDoublev = function (a, b) { return null; }; F.getEnumValue = function (a) { return 0; }; F.getError = function () { return 0; }; F.getErrorString = function () { switch (F.getError()) { case 40961: return 'INVALID_NAME: Invalid parameter name'; case 40962: return 'INVALID_ENUM: Invalid enum value'; case 40963: return 'INVALID_VALUE: Invalid parameter value'; case 40964: return 'INVALID_OPERATION: Illegal operation or call'; case 40965: return 'OUT_OF_MEMORY: OpenAL has run out of memory'; default: return ''; } }; F.getFilteri = function (a, b) { return 0; }; F.getFloat = function (a) { return 0; }; F.getFloatv = function (a, b) { return null; }; F.getInteger = function (a) { return 0; }; F.getIntegerv = function (a, b) { return null; }; F.getListener3f = function (a) { return null; }; F.getListener3i = function (a) { return null; }; F.getListenerf = function (a) { return 0; }; F.getListenerfv = function (a, b) { return null; }; F.getListeneri = function (a) { return 0; }; F.getListeneriv = function (a, b) { return null; }; F.getParameter = function (a) { return null; }; F.getProcAddress = function (a) { return null; }; F.getSource3f = function (a, b) { return null; }; F.getSourcef = function (a, b) { return 0; }; F.getSource3i = function (a, b) { return null; }; F.getSourcefv = function (a, b, c) { return null; }; F.getSourcei = function (a, b) { return 0; }; F.getSourceiv = function (a, b, c) { return null; }; F.getString = function (a) { return null; }; F.isBuffer = function (a) { return !1; }; F.isEnabled = function (a) { return !1; }; F.isExtensionPresent = function (a) { return !1; }; F.isAux = function (a) { return !1; }; F.isEffect = function (a) { return !1; }; F.isFilter = function (a) { return !1; }; F.isSource = function (a) { return !1; }; F.listener3f = function (a, b, c, e) {}; F.listener3i = function (a, b, c, e) {}; F.listenerf = function (a, b) {}; F.listenerfv = function (a, b) {}; F.listeneri = function (a, b) {}; F.listeneriv = function (a, b) {}; F.source3f = function (a, b, c, e, f) {}; F.source3i = function (a, b, c, e, f) {}; F.sourcef = function (a, b, c) {}; F.sourcefv = function (a, b, c) {}; F.sourcei = function (a, b, c) {}; F.filteri = function (a, b, c) {}; F.filterf = function (a, b, c) {}; F.sourceiv = function (a, b, c) {}; F.sourcePlay = function (a) {}; F.sourcePlayv = function (a) {}; F.sourceStop = function (a) {}; F.sourceStopv = function (a) {}; F.sourceRewind = function (a) {}; F.sourceRewindv = function (a) {}; F.sourcePause = function (a) {}; F.sourcePausev = function (a) {}; F.sourceQueueBuffer = function (a, b) {}; F.sourceQueueBuffers = function (a, b, c) {}; F.sourceUnqueueBuffer = function (a) { return 0; }; F.sourceUnqueueBuffers = function (a, b) { return null; }; F.speedOfSound = function (a) {}; var Gb = function () {}; h['lime.media.openal.ALC'] = Gb; Gb.__name__ = 'lime.media.openal.ALC'; Gb.closeDevice = function (a) { return !1; }; Gb.createContext = function (a, b) { return null; }; Gb.destroyContext = function (a) {}; Gb.getContextsDevice = function (a) { return null; }; Gb.getCurrentContext = function () { return null; }; Gb.getError = function (a) { return 0; }; Gb.getErrorString = function (a) { switch (Gb.getError(a)) { case 40961: return 'INVALID_DEVICE: Invalid device (or no device?)'; case 40962: return 'INVALID_CONTEXT: Invalid context (or no context?)'; case 40963: return 'INVALID_ENUM: Invalid enum value'; case 40964: return 'INVALID_VALUE: Invalid param value'; case 40965: return 'OUT_OF_MEMORY: OpenAL has run out of memory'; default: return ''; } }; Gb.getIntegerv = function (a, b, c) { return null; }; Gb.getString = function (a, b) { return null; }; Gb.makeContextCurrent = function (a) { return !1; }; Gb.openDevice = function (a) { return null; }; Gb.pauseDevice = function (a) {}; Gb.processContext = function (a) {}; Gb.resumeDevice = function (a) {}; Gb.suspendContext = function (a) {}; var pw = function () {}; h['lime.media.vorbis.VorbisComment'] = pw; pw.__name__ = 'lime.media.vorbis.VorbisComment'; pw.prototype = { userComments: null, vendor: null, __class__: pw }; var um = function (a) { this.handle = a; }; h['lime.media.vorbis.VorbisFile'] = um; um.__name__ = 'lime.media.vorbis.VorbisFile'; um.fromBytes = function (a) { return null; }; um.fromFile = function (a) { return null; }; um.prototype = { bitstream: null, handle: null, bitrate: function (a) { return 0; }, bitrateInstant: function () { return 0; }, clear: function () {}, comment: function (a) { return null; }, crosslap: function (a) { return 0; }, info: function (a) { return null; }, pcmSeek: function (a) { return 0; }, pcmSeekLap: function (a) { return 0; }, pcmSeekPage: function (a) { return 0; }, pcmSeekPageLap: function (a) { return 0; }, pcmTell: function () { return new cb(0, 0); }, pcmTotal: function (a) { return new cb(0, 0); }, rawSeek: function (a) { return 0; }, rawSeekLap: function (a) { return 0; }, rawTell: function () { return new cb(0, 0); }, rawTotal: function (a) { return new cb(0, 0); }, read: function (a, b, c, e, f, d) { return 0; }, readFloat: function (a, b) { return 0; }, seekable: function () { return !1; }, serialNumber: function (a) { return 0; }, streams: function () { return 0; }, timeSeek: function (a) { return 0; }, timeSeekLap: function (a) { return 0; }, timeSeekPage: function (a) { return 0; }, timeSeekPageLap: function (a) { return 0; }, timeTell: function () { return 0; }, timeTotal: function (a) { return 0; }, __class__: um }; var qw = function () {}; h['lime.media.vorbis.VorbisInfo'] = qw; qw.__name__ = 'lime.media.vorbis.VorbisInfo'; qw.prototype = { bitrateLower: null, bitrateNominal: null, bitrateUpper: null, channels: null, rate: null, version: null, __class__: qw }; var vm = function () {}; h['lime.net._IHTTPRequest'] = vm; vm.__name__ = 'lime.net._IHTTPRequest'; vm.__isInterface__ = !0; vm.prototype = { contentType: null, data: null, enableResponseHeaders: null, followRedirects: null, formData: null, headers: null, method: null, responseHeaders: null, responseStatus: null, timeout: null, uri: null, userAgent: null, withCredentials: null, cancel: null, __class__: vm }; var cf = function (a) { this.uri = a; this.contentType = 'application/x-www-form-urlencoded'; this.followRedirects = !0; this.enableResponseHeaders = !1; this.formData = new qa(); this.headers = []; this.method = 'GET'; this.timeout = 3e4; this.withCredentials = !1; this.__backend = new Ua(); this.__backend.init(this); }; h['lime.net._HTTPRequest.AbstractHTTPRequest'] = cf; cf.__name__ = 'lime.net._HTTPRequest.AbstractHTTPRequest'; cf.__interfaces__ = [vm]; cf.prototype = { contentType: null, data: null, enableResponseHeaders: null, followRedirects: null, formData: null, headers: null, method: null, responseData: null, responseHeaders: null, responseStatus: null, timeout: null, uri: null, userAgent: null, withCredentials: null, __backend: null, cancel: function () { this.__backend.cancel(); }, load: function (a) { return null; }, __class__: cf }; var Ro = function (a) { cf.call(this, a); }; h['lime.net.HTTPRequest'] = Ro; Ro.__name__ = 'lime.net.HTTPRequest'; Ro.__super__ = cf; Ro.prototype = r(cf.prototype, { __class__: Ro }); var Zg = function (a) { cf.call(this, a); }; h['lime.net._HTTPRequest_Bytes'] = Zg; Zg.__name__ = 'lime.net._HTTPRequest_Bytes'; Zg.__super__ = cf; Zg.prototype = r(cf.prototype, { fromBytes: function (a) { return a; }, load: function (a) { var b = this; null != a && (this.uri = a); var c = new $d(); a = this.__backend.loadData(this.uri); a.onProgress(q(c, c.progress)); a.onError(q(c, c.error)); a.onComplete(function (a) { b.responseData = b.fromBytes(a); c.complete(b.responseData); }); return c.future; }, __class__: Zg }); var Vj = function (a) { cf.call(this, a); }; h['lime.net._HTTPRequest_String'] = Vj; Vj.__name__ = 'lime.net._HTTPRequest_String'; Vj.__super__ = cf; Vj.prototype = r(cf.prototype, { load: function (a) { var b = this; null != a && (this.uri = a); var c = new $d(); a = this.__backend.loadText(this.uri); a.onProgress(q(c, c.progress)); a.onError(q(c, c.error)); a.onComplete(function (a) { b.responseData = a; c.complete(b.responseData); }); return c.future; }, __class__: Vj }); var im = function (a, b) { null == b && (b = ''); this.name = a; this.value = b; }; h['lime.net.HTTPRequestHeader'] = im; im.__name__ = 'lime.net.HTTPRequestHeader'; im.prototype = { name: null, value: null, __class__: im }; var wm = function (a) { cf.call(this, a); }; h['lime.net._HTTPRequest_lime_text_Font'] = wm; wm.__name__ = 'lime.net._HTTPRequest_lime_text_Font'; wm.__super__ = Zg; wm.prototype = r(Zg.prototype, { fromBytes: function (a) { return Md.fromBytes(a); }, __class__: wm }); var xm = function (a) { cf.call(this, a); }; h['lime.net._HTTPRequest_lime_utils_Bytes'] = xm; xm.__name__ = 'lime.net._HTTPRequest_lime_utils_Bytes'; xm.__super__ = Zg; xm.prototype = r(Zg.prototype, { fromBytes: function (a) { return kc.fromBytes(a); }, __class__: xm }); var ym = function (a) { cf.call(this, a); }; h['lime.net._HTTPRequest_openfl_utils_ByteArray'] = ym; ym.__name__ = 'lime.net._HTTPRequest_openfl_utils_ByteArray'; ym.__super__ = Zg; ym.prototype = r(Zg.prototype, { fromBytes: function (a) { return zb.fromBytes(a); }, __class__: ym }); var $g = function () {}; h['lime.system.CFFI'] = $g; $g.__name__ = 'lime.system.CFFI'; $g.load = function (a, b, c, e) { null == e && (e = !1); null == c && (c = 0); return $g.enabled ? null : Z.makeVarArgs(function (a) { return {}; }); }; $g.__findHaxelib = function (a) { return ''; }; $g.__loaderTrace = function (a) {}; $g.__sysName = function () { return null; }; $g.__tryLoad = function (a, b, c, e) { return null; }; var Nd = { _new: function (a) { return a; }, get: function (a) { return 0; }, equals: function (a, b) { return Nd.get(a) == b; }, equalsPointer: function (a, b) { return Nd.get(a) == Nd.get(b); }, greaterThan: function (a, b) { return Nd.get(a) > b; }, greaterThanPointer: function (a, b) { return Nd.get(a) > Nd.get(b); }, greaterThanOrEqual: function (a, b) { return Nd.get(a) >= b; }, greaterThanOrEqualPointer: function (a, b) { return Nd.get(a) >= Nd.get(b); }, lessThan: function (a, b) { return Nd.get(a) < b; }, lessThanPointer: function (a, b) { return Nd.get(a) < Nd.get(b); }, lessThanOrEqual: function (a, b) { return Nd.get(a) <= b; }, lessThanOrEqualPointer: function (a, b) { return Nd.get(a) <= Nd.get(b); }, notEquals: function (a, b) { return Nd.get(a) != b; }, notEqualsPointer: function (a, b) { return Nd.get(a) != Nd.get(b); } }, je = function () {}; h['lime.system.Clipboard'] = je; je.__name__ = 'lime.system.Clipboard'; je.__properties__ = { set_text: 'set_text', get_text: 'get_text' }; je.__update = function () { var a = je._text; je._text = null; je._text != a && je.onUpdate.dispatch(); }; je.get_text = function () { je.__update(); return je._text; }; je.set_text = function (a) { var b = je._text; je._text = a; var c = vd.current.__window; null != c && c.__backend.setClipboard(a); je._text != b && je.onUpdate.dispatch(); return a; }; var So = function () {}; h['lime.system.Display'] = So; So.__name__ = 'lime.system.Display'; So.prototype = { bounds: null, currentMode: null, id: null, dpi: null, name: null, supportedModes: null, __class__: So }; var To = function (a, b, c, e) { this.width = a; this.height = b; this.refreshRate = c; this.pixelFormat = e; }; h['lime.system.DisplayMode'] = To; To.__name__ = 'lime.system.DisplayMode'; To.prototype = { height: null, pixelFormat: null, refreshRate: null, width: null, __class__: To }; var Bg = (E['lime.system.Endian'] = { __ename__: 'lime.system.Endian', __constructs__: null, LITTLE_ENDIAN: { _hx_name: 'LITTLE_ENDIAN', _hx_index: 0, __enum__: 'lime.system.Endian', toString: w }, BIG_ENDIAN: { _hx_name: 'BIG_ENDIAN', _hx_index: 1, __enum__: 'lime.system.Endian', toString: w } }); Bg.__constructs__ = [Bg.LITTLE_ENDIAN, Bg.BIG_ENDIAN]; var we = function () {}; h['lime.system.JNI'] = we; we.__name__ = 'lime.system.JNI'; we.callMember = function (a, b, c) { switch (c.length) { case 0: return a(b); case 1: return a(b, c[0]); case 2: return a(b, c[0], c[1]); case 3: return a(b, c[0], c[1], c[2]); case 4: return a(b, c[0], c[1], c[2], c[3]); case 5: return a(b, c[0], c[1], c[2], c[3], c[4]); case 6: return a(b, c[0], c[1], c[2], c[3], c[4], c[5]); case 7: return a(b, c[0], c[1], c[2], c[3], c[4], c[5], c[6]); default: return null; } }; we.callStatic = function (a, b) { switch (b.length) { case 0: return a(); case 1: return a(b[0]); case 2: return a(b[0], b[1]); case 3: return a(b[0], b[1], b[2]); case 4: return a(b[0], b[1], b[2], b[3]); case 5: return a(b[0], b[1], b[2], b[3], b[4]); case 6: return a(b[0], b[1], b[2], b[3], b[4], b[5]); case 7: return a(b[0], b[1], b[2], b[3], b[4], b[5], b[6]); default: return null; } }; we.createMemberField = function (a, b, c) { we.init(); return null; }; we.createMemberMethod = function (a, b, c, e, f) { we.init(); return null; }; we.createStaticField = function (a, b, c) { we.init(); return null; }; we.createStaticMethod = function (a, b, c, e, f) { we.init(); return null; }; we.getEnv = function () { we.init(); return null; }; we.init = function () { we.initialized || (we.initialized = !0); }; we.onCallback = function (a, b, c) { b = Z.field(a, b); return null != b ? (null == c && (c = []), b.apply(a, c)) : null; }; we.postUICallback = function (a) { a(); }; var rw = function (a) { this.field = a; }; h['lime.system.JNIMemberField'] = rw; rw.__name__ = 'lime.system.JNIMemberField'; rw.prototype = { field: null, get: function (a) { return null; }, set: function (a, b) { return b; }, __class__: rw }; var sw = function (a) { this.field = a; }; h['lime.system.JNIStaticField'] = sw; sw.__name__ = 'lime.system.JNIStaticField'; sw.prototype = { field: null, get: function () { return null; }, set: function (a) { return a; }, __class__: sw }; var tw = function (a) { this.method = a; }; h['lime.system.JNIMethod'] = tw; tw.__name__ = 'lime.system.JNIMethod'; tw.prototype = { method: null, callMember: function (a) { return null; }, callStatic: function (a) { return null; }, getMemberMethod: function (a) { return a ? q(this, this.callMember) : Z.makeVarArgs(q(this, this.callMember)); }, getStaticMethod: function (a) { return a ? q(this, this.callStatic) : Z.makeVarArgs(q(this, this.callStatic)); }, __class__: tw }; var Se = { __properties__: { get_region: 'get_region', get_language: 'get_language', get_systemLocale: 'get_systemLocale', set_currentLocale: 'set_currentLocale', get_currentLocale: 'get_currentLocale' }, _new: function (a) { return a; }, equals: function (a, b) { var c = Se.get_language(a); a = Se.get_region(a); var e = Se.get_language(b); b = Se.get_region(b); var f = c == e, d = a == b; f || null == c || null == e || (f = c.toLowerCase() == e.toLowerCase()); d || null == a || null == b || (d = a.toLowerCase() == b.toLowerCase()); return f ? d : !1; }, __init: function () { if (null == Se.__systemLocale) { var a = navigator.language; Se.__systemLocale = null != a ? a : 'en-US'; Se.set_currentLocale(Se.__systemLocale); } }, get_language: function (a) { if (null != a) { var b = a.indexOf('_'); if (-1 < b) { var c = a.indexOf('-'); -1 < c && c < b && (b = c); return a.substring(0, b); } b = a.indexOf('-'); if (-1 < b) return a.substring(0, b); } return a; }, get_region: function (a) { if (null != a) { var b = a.indexOf('_'), c = a.indexOf('.'), e = a.indexOf('-'); if (-1 < b) return -1 < c ? a.substring(b + 1, c) : a.substring(b + 1); if (-1 < e) return -1 < c ? a.substring(e + 1, c) : a.substring(e + 1); } return null; }, get_currentLocale: function () { Se.__init(); return Se.currentLocale; }, set_currentLocale: function (a) { Se.__init(); return (Se.currentLocale = a); }, get_systemLocale: function () { Se.__init(); return Se.__systemLocale; } }, Pf = function (a, b) { this.onUpdate = new Do(); this.type = a; this.id = b; }; h['lime.system.Sensor'] = Pf; Pf.__name__ = 'lime.system.Sensor'; Pf.getSensors = function (a) { if (null == a) return Pf.sensors.slice(); for (var b = [], c = 0, e = Pf.sensors; c < e.length; ) { var f = e[c]; ++c; f.type == a && b.push(f); } return b; }; Pf.registerSensor = function (a, b) { a = new Pf(a, b); Pf.sensors.push(a); return (Pf.sensorByID.h[b] = a); }; Pf.prototype = { id: null, onUpdate: null, type: null, __class__: Pf }; var Qw = (E['lime.system.SensorType'] = { __ename__: 'lime.system.SensorType', __constructs__: null, ACCELEROMETER: { _hx_name: 'ACCELEROMETER', _hx_index: 0, __enum__: 'lime.system.SensorType', toString: w } }); Qw.__constructs__ = [Qw.ACCELEROMETER]; var Wa = function () {}; h['lime.system.System'] = Wa; Wa.__name__ = 'lime.system.System'; Wa.__properties__ = { get_userDirectory: 'get_userDirectory', get_platformVersion: 'get_platformVersion', get_platformName: 'get_platformName', get_platformLabel: 'get_platformLabel', get_numDisplays: 'get_numDisplays', get_fontsDirectory: 'get_fontsDirectory', get_endianness: 'get_endianness', get_documentsDirectory: 'get_documentsDirectory', get_deviceVendor: 'get_deviceVendor', get_deviceModel: 'get_deviceModel', get_desktopDirectory: 'get_desktopDirectory', get_applicationStorageDirectory: 'get_applicationStorageDirectory', get_applicationDirectory: 'get_applicationDirectory', set_allowScreenTimeout: 'set_allowScreenTimeout', get_allowScreenTimeout: 'get_allowScreenTimeout' }; Wa.embed = y.lime.embed = function (a, b, c, e, f) { if ( null != Wa.__applicationEntryPoint && Object.prototype.hasOwnProperty.call(Wa.__applicationEntryPoint.h, a) ) { var d = 'string' == typeof b ? window.document.getElementById(b) : null == b ? window.document.createElement('div') : b; null == d ? window.console.log('[lime.embed] ERROR: Cannot find target element: ' + B.string(b)) : (null == c && (c = 0), null == e && (e = 0), null == f && (f = {}), Object.prototype.hasOwnProperty.call(f, 'background') && 'string' == typeof f.background && ((b = U.replace(B.string(f.background), '#', '')), -1 < b.indexOf('0x') ? (f.background = B.parseInt(b)) : (f.background = B.parseInt('0x' + b))), (f.element = d), (f.width = c), (f.height = e), Wa.__applicationEntryPoint.h[a](f)); } }; Wa.exit = function (a) {}; Wa.getDisplay = function (a) { return 0 == a ? ((a = new So()), (a.id = 0), (a.name = 'Generic Display'), (a.dpi = 96 * window.devicePixelRatio), (a.currentMode = new To(window.screen.width, window.screen.height, 60, 1)), (a.supportedModes = [a.currentMode]), (a.bounds = new Qd(0, 0, a.currentMode.width, a.currentMode.height)), a) : null; }; Wa.getTimer = function () { return window.performance.now() | 0; }; Wa.load = function (a, b, c, e) { null == e && (e = !1); null == c && (c = 0); return $g.load(a, b, c, e); }; Wa.openFile = function (a) { null != a && window.open(a, '_blank'); }; Wa.openURL = function (a, b) { null == b && (b = '_blank'); null != a && window.open(a, b); }; Wa.__copyMissingFields = function (a, b) { if (null != b && null != a) for (var c = 0, e = Z.fields(b); c < e.length; ) { var f = e[c]; ++c; Object.prototype.hasOwnProperty.call(a, f) || (a[f] = Z.field(b, f)); } }; Wa.__getDirectory = function (a) { return null; }; Wa.__parseBool = function (a) { return 'true' == a; }; Wa.__registerEntryPoint = function (a, b) { null == Wa.__applicationEntryPoint && (Wa.__applicationEntryPoint = new qa()); Wa.__applicationEntryPoint.h[a] = b; }; Wa.__runProcess = function (a, b) { return null; }; Wa.get_allowScreenTimeout = function () { return !0; }; Wa.set_allowScreenTimeout = function (a) { return !0; }; Wa.get_applicationDirectory = function () { null == Wa.__applicationDirectory && (Wa.__applicationDirectory = Wa.__getDirectory(0)); return Wa.__applicationDirectory; }; Wa.get_applicationStorageDirectory = function () { null == Wa.__applicationStorageDirectory && (Wa.__applicationStorageDirectory = Wa.__getDirectory(1)); return Wa.__applicationStorageDirectory; }; Wa.get_deviceModel = function () { return Wa.__deviceModel; }; Wa.get_deviceVendor = function () { return Wa.__deviceVendor; }; Wa.get_desktopDirectory = function () { null == Wa.__desktopDirectory && (Wa.__desktopDirectory = Wa.__getDirectory(2)); return Wa.__desktopDirectory; }; Wa.get_documentsDirectory = function () { null == Wa.__documentsDirectory && (Wa.__documentsDirectory = Wa.__getDirectory(3)); return Wa.__documentsDirectory; }; Wa.get_endianness = function () { if (null == Wa.__endianness) { var a = new ArrayBuffer(2), b = null, c = null, e = null, f = null, d = null, p = (b = null != b ? new Uint8Array(b) : null != c ? new Uint8Array(c) : null != e ? new Uint8Array(e.__array) : null != f ? new Uint8Array(f) : null != a ? null == d ? new Uint8Array(a, 0) : new Uint8Array(a, 0, d) : null); d = f = e = c = b = null; b = null != b ? new Uint16Array(b) : null != c ? new Uint16Array(c) : null != e ? new Uint16Array(e.__array) : null != f ? new Uint16Array(f) : null != a ? null == d ? new Uint16Array(a, 0) : new Uint16Array(a, 0, d) : null; p[0] = 170; p[1] = 187; Wa.__endianness = 43707 == b[0] ? Bg.BIG_ENDIAN : Bg.LITTLE_ENDIAN; } return Wa.__endianness; }; Wa.get_fontsDirectory = function () { null == Wa.__fontsDirectory && (Wa.__fontsDirectory = Wa.__getDirectory(4)); return Wa.__fontsDirectory; }; Wa.get_numDisplays = function () { return 1; }; Wa.get_platformLabel = function () { if (null == Wa.__platformLabel) { var a = Wa.get_platformName(), b = Wa.get_platformVersion(); null != a && null != b ? (Wa.__platformLabel = a + ' ' + b) : null != a && (Wa.__platformLabel = a); } return Wa.__platformLabel; }; Wa.get_platformName = function () { null == Wa.__platformName && (Wa.__platformName = 'HTML5'); return Wa.__platformName; }; Wa.get_platformVersion = function () { return Wa.__platformVersion; }; Wa.get_userDirectory = function () { null == Wa.__userDirectory && (Wa.__userDirectory = Wa.__getDirectory(5)); return Wa.__userDirectory; }; var Co = function (a, b) { null == b && (b = 1); null == a && (a = 0); this.onRun = new $h(); this.onProgress = new $h(); this.onError = new $h(); this.onComplete = new $h(); this.doWork = new $h(); this.minThreads = a; this.maxThreads = b; this.currentThreads = 0; }; h['lime.system.ThreadPool'] = Co; Co.__name__ = 'lime.system.ThreadPool'; Co.prototype = { currentThreads: null, doWork: null, maxThreads: null, minThreads: null, onComplete: null, onError: null, onProgress: null, onRun: null, queue: function (a) { this.runWork(a); }, sendComplete: function (a) { this.onComplete.dispatch(a); }, sendError: function (a) { this.onError.dispatch(a); }, sendProgress: function (a) { this.onProgress.dispatch(a); }, runWork: function (a) { this.onRun.dispatch(a); this.doWork.dispatch(a); }, __class__: Co }; var zm = (E['lime.system._ThreadPool.ThreadPoolMessageType'] = { __ename__: 'lime.system._ThreadPool.ThreadPoolMessageType', __constructs__: null, COMPLETE: { _hx_name: 'COMPLETE', _hx_index: 0, __enum__: 'lime.system._ThreadPool.ThreadPoolMessageType', toString: w }, ERROR: { _hx_name: 'ERROR', _hx_index: 1, __enum__: 'lime.system._ThreadPool.ThreadPoolMessageType', toString: w }, EXIT: { _hx_name: 'EXIT', _hx_index: 2, __enum__: 'lime.system._ThreadPool.ThreadPoolMessageType', toString: w }, PROGRESS: { _hx_name: 'PROGRESS', _hx_index: 3, __enum__: 'lime.system._ThreadPool.ThreadPoolMessageType', toString: w }, WORK: { _hx_name: 'WORK', _hx_index: 4, __enum__: 'lime.system._ThreadPool.ThreadPoolMessageType', toString: w } }); zm.__constructs__ = [zm.COMPLETE, zm.ERROR, zm.EXIT, zm.PROGRESS, zm.WORK]; var uw = function (a, b) { this.type = a; this.state = b; }; h['lime.system._ThreadPool.ThreadPoolMessage'] = uw; uw.__name__ = 'lime.system._ThreadPool.ThreadPoolMessage'; uw.prototype = { state: null, type: null, __class__: uw }; var Md = function (a) { null != a && (this.name = a); this.__init || (void 0 == this.ascender && (this.ascender = 0), void 0 == this.descender && (this.descender = 0), void 0 == this.height && (this.height = 0), void 0 == this.numGlyphs && (this.numGlyphs = 0), void 0 == this.underlinePosition && (this.underlinePosition = 0), void 0 == this.underlineThickness && (this.underlineThickness = 0), void 0 == this.unitsPerEM && (this.unitsPerEM = 0), null != this.__fontID ? wa.isLocal(this.__fontID) && this.__fromBytes(wa.getBytes(this.__fontID)) : null != this.__fontPath && this.__fromFile(this.__fontPath)); }; h['lime.text.Font'] = Md; Md.__name__ = 'lime.text.Font'; Md.fromBytes = function (a) { if (null == a) return null; var b = new Md(); b.__fromBytes(a); return b; }; Md.fromFile = function (a) { if (null == a) return null; var b = new Md(); b.__fromFile(a); return b; }; Md.loadFromBytes = function (a) { return kb.withValue(Md.fromBytes(a)); }; Md.loadFromFile = function (a) { return new wm().load(a).then(function (a) { return null != a ? kb.withValue(a) : kb.withError(''); }); }; Md.loadFromName = function (a) { return new Md().__loadFromName(a); }; Md.__measureFontNode = function (a) { var b = window.document.createElement('span'); b.setAttribute('aria-hidden', 'true'); var c = window.document.createTextNode('BESbswy'); b.appendChild(c); c = b.style; c.display = 'block'; c.position = 'absolute'; c.top = '-9999px'; c.left = '-9999px'; c.fontSize = '300px'; c.width = 'auto'; c.height = 'auto'; c.lineHeight = 'normal'; c.margin = '0'; c.padding = '0'; c.fontVariant = 'normal'; c.whiteSpace = 'nowrap'; c.fontFamily = a; window.document.body.appendChild(b); return b; }; Md.prototype = { ascender: null, descender: null, height: null, name: null, numGlyphs: null, src: null, underlinePosition: null, underlineThickness: null, unitsPerEM: null, __fontID: null, __fontPath: null, __init: null, decompose: function () { return null; }, getGlyph: function (a) { return -1; }, getGlyphs: function (a) { return null; }, getGlyphMetrics: function (a) { return null; }, renderGlyph: function (a, b) { return null; }, renderGlyphs: function (a, b) { return null; }, __copyFrom: function (a) { null != a && ((this.ascender = a.ascender), (this.descender = a.descender), (this.height = a.height), (this.name = a.name), (this.numGlyphs = a.numGlyphs), (this.src = a.src), (this.underlinePosition = a.underlinePosition), (this.underlineThickness = a.underlineThickness), (this.unitsPerEM = a.unitsPerEM), (this.__fontID = a.__fontID), (this.__fontPath = a.__fontPath), (this.__init = !0)); }, __fromBytes: function (a) { this.__fontPath = null; }, __fromFile: function (a) { this.__fontPath = a; }, __initializeSource: function () { this.__init = !0; }, __loadFromName: function (a) { var b = this, c = new $d(); this.name = a; var e = R.navigator.userAgent.toLowerCase(), f = 0 <= e.indexOf(' safari/') && 0 > e.indexOf(' chrome/'); e = new Ja('(iPhone|iPod|iPad).*AppleWebKit(?!.*Version)', 'i').match(e); if (!f && !e && window.document.fonts && ((I = window.document.fonts), q(I, I.load))) window.document.fonts.load("1em '" + a + "'").then( function (a) { c.complete(b); }, function (e) { Xa.warn('Could not load web font "' + a + '"', { fileName: 'lime/text/Font.hx', lineNumber: 513, className: 'lime.text.Font', methodName: '__loadFromName' }); c.complete(b); } ); else { var d = Md.__measureFontNode("'" + a + "', sans-serif"), p = Md.__measureFontNode("'" + a + "', serif"), l = d.offsetWidth, k = p.offsetWidth, n = -1, h = 0, m, t; n = window.setInterval(function () { h += 1; m = d.offsetWidth != l || p.offsetWidth != k; t = 3e3 <= 50 * h; if (m || t) window.clearInterval(n), d.parentNode.removeChild(d), p.parentNode.removeChild(p), (p = d = null), t && Xa.warn('Could not load web font "' + a + '"', { fileName: 'lime/text/Font.hx', lineNumber: 548, className: 'lime.text.Font', methodName: '__loadFromName' }), c.complete(b); }, 50); } return c.future; }, __setSize: function (a) {}, __class__: Md }; var vw = function () {}; h['lime.text.GlyphMetrics'] = vw; vw.__name__ = 'lime.text.GlyphMetrics'; vw.prototype = { advance: null, height: null, horizontalBearing: null, verticalBearing: null, __class__: vw }; var Rw = function () {}; h['lime.text.harfbuzz.HB'] = Rw; Rw.__name__ = 'lime.text.harfbuzz.HB'; Rw.shape = function (a, b, c) {}; var nx = { __properties__: { set_segmentProperties: 'set_segmentProperties', get_segmentProperties: 'get_segmentProperties', set_script: 'set_script', get_script: 'get_script', set_replacementCodepoint: 'set_replacementCodepoint', get_replacementCodepoint: 'get_replacementCodepoint', set_length: 'set_length', get_length: 'get_length', set_language: 'set_language', get_language: 'get_language', set_flags: 'set_flags', get_flags: 'get_flags', set_direction: 'set_direction', get_direction: 'get_direction', set_contentType: 'set_contentType', get_contentType: 'get_contentType', set_clusterLevel: 'set_clusterLevel', get_clusterLevel: 'get_clusterLevel', get_allocationSuccessful: 'get_allocationSuccessful' }, _new: function () { return null; }, add: function (a, b, c) {}, addCodepoints: function (a, b, c, e, f) {}, addUTF8: function (a, b, c, e) {}, addUTF16: function (a, b, c, e, f) {}, addUTF32: function (a, b, c, e, f) {}, clearContents: function (a) {}, getGlyphInfo: function (a) { return null; }, getGlyphPositions: function (a) { return null; }, guessSegmentProperties: function (a) {}, normalizeGlyphs: function (a) {}, preallocate: function (a, b) { return !1; }, reset: function (a) {}, reverse: function (a) {}, reverseClusters: function (a) {}, get_allocationSuccessful: function (a) { return !1; }, get_clusterLevel: function (a) { return 0; }, set_clusterLevel: function (a, b) { return b; }, get_contentType: function (a) { return 0; }, set_contentType: function (a, b) { return b; }, get_direction: function (a) { return 0; }, set_direction: function (a, b) { return b; }, get_empty: function () { return null; }, get_flags: function (a) { return 0; }, set_flags: function (a, b) { return b; }, get_language: function (a) { return null; }, set_language: function (a, b) { return b; }, get_length: function (a) { return 0; }, set_length: function (a, b) { return b; }, get_replacementCodepoint: function (a) { return 0; }, set_replacementCodepoint: function (a, b) { return b; }, get_script: function (a) { return 0; }, set_script: function (a, b) { return b; }, get_segmentProperties: function (a) { return null; }, set_segmentProperties: function (a, b) { return b; } }, ww = function () {}; h['lime.text.harfbuzz.HBFeature'] = ww; ww.__name__ = 'lime.text.harfbuzz.HBFeature'; ww.prototype = { __class__: ww }; var xw = function () {}; h['lime.text.harfbuzz.HBGlyphInfo'] = xw; xw.__name__ = 'lime.text.harfbuzz.HBGlyphInfo'; xw.prototype = { codepoint: null, mask: null, cluster: null, __class__: xw }; var yw = function () {}; h['lime.text.harfbuzz.HBGlyphPosition'] = yw; yw.__name__ = 'lime.text.harfbuzz.HBGlyphPosition'; yw.prototype = { xAdvance: null, xOffset: null, yAdvance: null, yOffset: null, __class__: yw }; var fx = { _new: function (a) { return null; }, toString: function (a) { return null; }, fromString: function (a) { return fx._new(a); } }, zw = function () {}; h['lime.text.harfbuzz.HBSegmentProperties'] = zw; zw.__name__ = 'lime.text.harfbuzz.HBSegmentProperties'; zw.prototype = { __class__: zw }; var Jd = function (a) { this.onDisconnect = new Ld(); this.onButtonUp = new rm(); this.onButtonDown = new rm(); this.onAxisMove = new Lo(); this.id = a; this.connected = !0; }; h['lime.ui.Gamepad'] = Jd; Jd.__name__ = 'lime.ui.Gamepad'; Jd.addMappings = function (a) {}; Jd.__connect = function (a) { if (!Jd.devices.h.hasOwnProperty(a)) { var b = new Jd(a); Jd.devices.h[a] = b; Jd.onConnect.dispatch(b); } }; Jd.__disconnect = function (a) { var b = Jd.devices.h[a]; null != b && (b.connected = !1); Jd.devices.remove(a); null != b && b.onDisconnect.dispatch(); }; Jd.prototype = { connected: null, id: null, onAxisMove: null, onButtonDown: null, onButtonUp: null, onDisconnect: null, get_guid: function () { return zc.__getDeviceData()[this.id].id; }, get_name: function () { return zc.__getDeviceData()[this.id].id; }, __class__: Jd, __properties__: { get_name: 'get_name', get_guid: 'get_guid' } }; var zc = function (a) { this.onTrackballMove = new Ho(); this.onHatMove = new Jo(); this.onDisconnect = new Ld(); this.onButtonUp = new Zh(); this.onButtonDown = new Zh(); this.onAxisMove = new Io(); this.id = a; this.connected = !0; }; h['lime.ui.Joystick'] = zc; zc.__name__ = 'lime.ui.Joystick'; zc.__connect = function (a) { if (!zc.devices.h.hasOwnProperty(a)) { var b = new zc(a); zc.devices.h[a] = b; zc.onConnect.dispatch(b); } }; zc.__disconnect = function (a) { var b = zc.devices.h[a]; null != b && (b.connected = !1); zc.devices.remove(a); null != b && b.onDisconnect.dispatch(); }; zc.__getDeviceData = function () { return navigator.getGamepads ? navigator.getGamepads() : navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : null; }; zc.prototype = { connected: null, id: null, onAxisMove: null, onButtonDown: null, onButtonUp: null, onDisconnect: null, onHatMove: null, onTrackballMove: null, get_guid: function () { return zc.__getDeviceData()[this.id].id; }, get_name: function () { return zc.__getDeviceData()[this.id].id; }, get_numAxes: function () { return zc.__getDeviceData()[this.id].axes.length; }, get_numButtons: function () { return zc.__getDeviceData()[this.id].buttons.length; }, get_numHats: function () { return 0; }, get_numTrackballs: function () { return 0; }, __class__: zc, __properties__: { get_numTrackballs: 'get_numTrackballs', get_numHats: 'get_numHats', get_numButtons: 'get_numButtons', get_numAxes: 'get_numAxes', get_name: 'get_name', get_guid: 'get_guid' } }; var eg = { __properties__: { set_up: 'set_up', get_up: 'get_up', set_right: 'set_right', get_right: 'get_right', set_left: 'set_left', get_left: 'get_left', set_down: 'set_down', get_down: 'get_down', set_center: 'set_center', get_center: 'get_center' }, _new: function (a) { return a; }, get_center: function (a) { return 0 == a; }, set_center: function (a, b) { return b; }, get_down: function (a) { return 0 < (a & 4); }, set_down: function (a, b) { return b; }, get_left: function (a) { return 0 < (a & 8); }, set_left: function (a, b) { return b; }, get_right: function (a) { return 0 < (a & 2); }, set_right: function (a, b) { return b; }, get_up: function (a) { return 0 < (a & 1); }, set_up: function (a, b) { return b; } }, Bb = { __properties__: { set_shiftKey: 'set_shiftKey', get_shiftKey: 'get_shiftKey', set_numLock: 'set_numLock', get_numLock: 'get_numLock', set_metaKey: 'set_metaKey', get_metaKey: 'get_metaKey', set_ctrlKey: 'set_ctrlKey', get_ctrlKey: 'get_ctrlKey', set_capsLock: 'set_capsLock', get_capsLock: 'get_capsLock', set_altKey: 'set_altKey', get_altKey: 'get_altKey' }, get_altKey: function (a) { return 0 >= (a & 256) ? 0 < (a & 512) : !0; }, set_altKey: function (a, b) { return b; }, get_capsLock: function (a) { return 0 >= (a & 8192) ? 0 < (a & 8192) : !0; }, set_capsLock: function (a, b) { return b; }, get_ctrlKey: function (a) { return 0 >= (a & 64) ? 0 < (a & 128) : !0; }, set_ctrlKey: function (a, b) { return b; }, get_metaKey: function (a) { return 0 >= (a & 1024) ? 0 < (a & 2048) : !0; }, set_metaKey: function (a, b) { return b; }, get_numLock: function (a) { return 0 >= (a & 4096) ? 0 < (a & 4096) : !0; }, set_numLock: function (a, b) { return b; }, get_shiftKey: function (a) { return 0 >= (a & 1) ? 0 < (a & 2) : !0; }, set_shiftKey: function (a, b) { return b; } }, nc = (E['lime.ui.MouseCursor'] = { __ename__: 'lime.ui.MouseCursor', __constructs__: null, ARROW: { _hx_name: 'ARROW', _hx_index: 0, __enum__: 'lime.ui.MouseCursor', toString: w }, CROSSHAIR: { _hx_name: 'CROSSHAIR', _hx_index: 1, __enum__: 'lime.ui.MouseCursor', toString: w }, DEFAULT: { _hx_name: 'DEFAULT', _hx_index: 2, __enum__: 'lime.ui.MouseCursor', toString: w }, MOVE: { _hx_name: 'MOVE', _hx_index: 3, __enum__: 'lime.ui.MouseCursor', toString: w }, POINTER: { _hx_name: 'POINTER', _hx_index: 4, __enum__: 'lime.ui.MouseCursor', toString: w }, RESIZE_NESW: { _hx_name: 'RESIZE_NESW', _hx_index: 5, __enum__: 'lime.ui.MouseCursor', toString: w }, RESIZE_NS: { _hx_name: 'RESIZE_NS', _hx_index: 6, __enum__: 'lime.ui.MouseCursor', toString: w }, RESIZE_NWSE: { _hx_name: 'RESIZE_NWSE', _hx_index: 7, __enum__: 'lime.ui.MouseCursor', toString: w }, RESIZE_WE: { _hx_name: 'RESIZE_WE', _hx_index: 8, __enum__: 'lime.ui.MouseCursor', toString: w }, TEXT: { _hx_name: 'TEXT', _hx_index: 9, __enum__: 'lime.ui.MouseCursor', toString: w }, WAIT: { _hx_name: 'WAIT', _hx_index: 10, __enum__: 'lime.ui.MouseCursor', toString: w }, WAIT_ARROW: { _hx_name: 'WAIT_ARROW', _hx_index: 11, __enum__: 'lime.ui.MouseCursor', toString: w }, CUSTOM: { _hx_name: 'CUSTOM', _hx_index: 12, __enum__: 'lime.ui.MouseCursor', toString: w } }); nc.__constructs__ = [ nc.ARROW, nc.CROSSHAIR, nc.DEFAULT, nc.MOVE, nc.POINTER, nc.RESIZE_NESW, nc.RESIZE_NS, nc.RESIZE_NWSE, nc.RESIZE_WE, nc.TEXT, nc.WAIT, nc.WAIT_ARROW, nc.CUSTOM ]; var Bh = (E['lime.ui.MouseWheelMode'] = { __ename__: 'lime.ui.MouseWheelMode', __constructs__: null, PIXELS: { _hx_name: 'PIXELS', _hx_index: 0, __enum__: 'lime.ui.MouseWheelMode', toString: w }, LINES: { _hx_name: 'LINES', _hx_index: 1, __enum__: 'lime.ui.MouseWheelMode', toString: w }, PAGES: { _hx_name: 'PAGES', _hx_index: 2, __enum__: 'lime.ui.MouseWheelMode', toString: w }, UNKNOWN: { _hx_name: 'UNKNOWN', _hx_index: 3, __enum__: 'lime.ui.MouseWheelMode', toString: w } }); Bh.__constructs__ = [Bh.PIXELS, Bh.LINES, Bh.PAGES, Bh.UNKNOWN]; var nd = function (a, b, c, e, f, d, p) { this.x = a; this.y = b; this.id = c; this.dx = e; this.dy = f; this.pressure = d; this.device = p; }; h['lime.ui.Touch'] = nd; nd.__name__ = 'lime.ui.Touch'; nd.prototype = { device: null, dx: null, dy: null, id: null, pressure: null, x: null, y: null, __class__: nd }; var Mi = function (a, b) { this.onTextInput = new pm(); this.onTextEdit = new Ko(); this.onRestore = new Ld(); this.onResize = new om(); this.onRenderContextRestored = new qm(); this.onRenderContextLost = new Ld(); this.onRender = new qm(); this.onMove = new Sj(); this.onMouseWheel = new Go(); this.onMouseUp = new Eo(); this.onMouseMoveRelative = new Sj(); this.onMouseMove = new Sj(); this.onMouseDown = new Fo(); this.onMinimize = new Ld(); this.onMaximize = new Ld(); this.onLeave = new Ld(); this.onKeyUp = new sm(); this.onKeyDown = new sm(); this.onFullscreen = new Ld(); this.onFocusOut = new Ld(); this.onFocusIn = new Ld(); this.onExpose = new Ld(); this.onEnter = new Ld(); this.onDropFile = new pm(); this.onDeactivate = new Ld(); this.onClose = new Ld(); this.onActivate = new Ld(); this.application = a; this.__attributes = null != b ? b : {}; Object.prototype.hasOwnProperty.call(this.__attributes, 'parameters') && (this.parameters = this.__attributes.parameters); this.__height = this.__width = 0; this.__fullscreen = !1; this.__scale = 1; this.__y = this.__x = 0; this.__title = ''; this.id = -1; this.__backend = new pb(this); }; h['lime.ui.Window'] = Mi; Mi.__name__ = 'lime.ui.Window'; Mi.prototype = { application: null, context: null, display: null, element: null, hidden: null, id: null, onActivate: null, onClose: null, onDeactivate: null, onDropFile: null, onEnter: null, onExpose: null, onFocusIn: null, onFocusOut: null, onFullscreen: null, onKeyDown: null, onKeyUp: null, onLeave: null, onMaximize: null, onMinimize: null, onMouseDown: null, onMouseMove: null, onMouseMoveRelative: null, onMouseUp: null, onMouseWheel: null, onMove: null, onRender: null, onRenderContextLost: null, onRenderContextRestored: null, onResize: null, onRestore: null, onTextEdit: null, onTextInput: null, parameters: null, scale: null, stage: null, __attributes: null, __backend: null, __borderless: null, __fullscreen: null, __height: null, __hidden: null, __maximized: null, __minimized: null, __resizable: null, __scale: null, __title: null, __width: null, __x: null, __y: null, alert: function (a, b) { this.__backend.alert(a, b); }, close: function () { this.__backend.close(); }, focus: function () { this.__backend.focus(); }, move: function (a, b) { this.__backend.move(a, b); this.__x = a; this.__y = b; }, readPixels: function (a) { return this.__backend.readPixels(a); }, resize: function (a, b) { this.__backend.resize(a, b); this.__width = a; this.__height = b; }, setIcon: function (a) { null != a && this.__backend.setIcon(a); }, toString: function () { return '[object Window]'; }, warpMouse: function (a, b) { this.__backend.warpMouse(a, b); }, get_cursor: function () { return this.__backend.getCursor(); }, set_cursor: function (a) { return this.__backend.setCursor(a); }, get_display: function () { return this.__backend.getDisplay(); }, get_displayMode: function () { return this.__backend.getDisplayMode(); }, set_displayMode: function (a) { return this.__backend.setDisplayMode(a); }, get_borderless: function () { return this.__borderless; }, set_borderless: function (a) { return (this.__borderless = this.__backend.setBorderless(a)); }, get_frameRate: function () { return this.__backend.getFrameRate(); }, set_frameRate: function (a) { return this.__backend.setFrameRate(a); }, get_fullscreen: function () { return this.__fullscreen; }, set_fullscreen: function (a) { return (this.__fullscreen = this.__backend.setFullscreen(a)); }, get_height: function () { return this.__height; }, set_height: function (a) { this.resize(this.__width, a); return this.__height; }, get_hidden: function () { return this.__hidden; }, get_maximized: function () { return this.__maximized; }, set_maximized: function (a) { this.__minimized = !1; return (this.__maximized = this.__backend.setMaximized(a)); }, get_minimized: function () { return this.__minimized; }, set_minimized: function (a) { this.__maximized = !1; return (this.__minimized = this.__backend.setMinimized(a)); }, get_mouseLock: function () { return this.__backend.getMouseLock(); }, set_mouseLock: function (a) { this.__backend.setMouseLock(a); return a; }, get_resizable: function () { return this.__resizable; }, set_resizable: function (a) { return (this.__resizable = this.__backend.setResizable(a)); }, get_scale: function () { return this.__scale; }, get_textInputEnabled: function () { return this.__backend.getTextInputEnabled(); }, set_textInputEnabled: function (a) { return this.__backend.setTextInputEnabled(a); }, get_title: function () { return this.__title; }, set_title: function (a) { return (this.__title = this.__backend.setTitle(a)); }, get_width: function () { return this.__width; }, set_width: function (a) { this.resize(a, this.__height); return this.__width; }, get_x: function () { return this.__x; }, set_x: function (a) { this.move(a, this.__y); return this.__x; }, get_y: function () { return this.__y; }, set_y: function (a) { this.move(this.__x, a); return this.__y; }, __class__: Mi, __properties__: { set_y: 'set_y', get_y: 'get_y', set_x: 'set_x', get_x: 'get_x', set_width: 'set_width', get_width: 'get_width', set_title: 'set_title', get_title: 'get_title', set_textInputEnabled: 'set_textInputEnabled', get_textInputEnabled: 'get_textInputEnabled', get_scale: 'get_scale', set_resizable: 'set_resizable', get_resizable: 'get_resizable', set_mouseLock: 'set_mouseLock', get_mouseLock: 'get_mouseLock', set_minimized: 'set_minimized', get_minimized: 'get_minimized', set_maximized: 'set_maximized', get_maximized: 'get_maximized', get_hidden: 'get_hidden', set_height: 'set_height', get_height: 'get_height', set_fullscreen: 'set_fullscreen', get_fullscreen: 'get_fullscreen', set_frameRate: 'set_frameRate', get_frameRate: 'get_frameRate', set_displayMode: 'set_displayMode', get_displayMode: 'get_displayMode', get_display: 'get_display', set_cursor: 'set_cursor', get_cursor: 'get_cursor', set_borderless: 'set_borderless', get_borderless: 'get_borderless' } }; var gx = (E['lime.utils.TAError'] = { __ename__: 'lime.utils.TAError', __constructs__: null, RangeError: { _hx_name: 'RangeError', _hx_index: 0, __enum__: 'lime.utils.TAError', toString: w } }); gx.__constructs__ = [gx.RangeError]; var Tf = function () { this.data = new qa(); this.paths = []; }; h['lime.utils.AssetBundle'] = Tf; Tf.__name__ = 'lime.utils.AssetBundle'; Tf.fromBytes = function (a) { a = new hm(a); return Tf.__extractBundle(a); }; Tf.fromFile = function (a) { return null; }; Tf.loadFromBytes = function (a) { return kb.withValue(Tf.fromBytes(a)); }; Tf.loadFromFile = function (a) { return kc.loadFromFile(a).then(Tf.loadFromBytes); }; Tf.__extractBundle = function (a) { var b = Ii.readZip(a); a = new Tf(); for (b = b.h; null != b; ) { var c = b.item; b = b.next; if (c.compressed) { var e = a.data, f = c.fileName, d = kc.decompress(c.data, ae.DEFLATE); e.h[f] = d; } else a.data.h[c.fileName] = c.data; a.paths.push(c.fileName); } return a; }; Tf.prototype = { data: null, paths: null, __class__: Tf }; var Uo = function () { this.enabled = !0; this.audio = new qa(); this.font = new qa(); this.image = new qa(); this.version = 341688; }; h['lime.utils.AssetCache'] = Uo; Uo.__name__ = 'lime.utils.AssetCache'; Uo.prototype = { audio: null, enabled: null, image: null, font: null, version: null, exists: function (a, b) { return (('IMAGE' == b || null == b) && Object.prototype.hasOwnProperty.call(this.image.h, a)) || (('FONT' == b || null == b) && Object.prototype.hasOwnProperty.call(this.font.h, a)) || (('SOUND' == b || 'MUSIC' == b || null == b) && Object.prototype.hasOwnProperty.call(this.audio.h, a)) ? !0 : !1; }, set: function (a, b, c) { switch (b) { case 'FONT': this.font.h[a] = c; break; case 'IMAGE': if (!(c instanceof Fb)) throw M.thrown('Cannot cache non-Image asset: ' + B.string(c) + ' as Image'); this.image.h[a] = c; break; case 'MUSIC': case 'SOUND': if (!(c instanceof Wc)) throw M.thrown( 'Cannot cache non-AudioBuffer asset: ' + B.string(c) + ' as AudioBuffer' ); this.audio.h[a] = c; break; default: throw M.thrown(b + ' assets are not cachable'); } }, clear: function (a) { if (null == a) (this.audio = new qa()), (this.font = new qa()), (this.image = new qa()); else { var b = this.audio.h; b = Object.keys(b); for (var c = b.length, e = 0; e < c; ) { var f = b[e++]; if (U.startsWith(f, a)) { var d = this.audio; Object.prototype.hasOwnProperty.call(d.h, f) && delete d.h[f]; } } b = this.font.h; b = Object.keys(b); c = b.length; for (e = 0; e < c; ) (f = b[e++]), U.startsWith(f, a) && ((d = this.font), Object.prototype.hasOwnProperty.call(d.h, f) && delete d.h[f]); b = this.image.h; b = Object.keys(b); c = b.length; for (e = 0; e < c; ) (f = b[e++]), U.startsWith(f, a) && ((d = this.image), Object.prototype.hasOwnProperty.call(d.h, f) && delete d.h[f]); } }, __class__: Uo }; var qb = function () { this.types = new qa(); this.sizes = new qa(); this.preload = new qa(); this.paths = new qa(); this.pathGroups = new qa(); this.classTypes = new qa(); this.cachedText = new qa(); this.cachedImages = new qa(); this.cachedFonts = new qa(); this.cachedBytes = new qa(); this.cachedAudioBuffers = new qa(); this.onChange = new Ld(); this.bytesTotal = this.bytesLoaded = 0; }; h['lime.utils.AssetLibrary'] = qb; qb.__name__ = 'lime.utils.AssetLibrary'; qb.fromBytes = function (a, b) { return qb.fromManifest(Ic.fromBytes(a, b)); }; qb.fromFile = function (a, b) { return qb.fromManifest(Ic.fromFile(a, b)); }; qb.fromBundle = function (a) { if (Object.prototype.hasOwnProperty.call(a.data.h, 'library.json')) { var b = Ic.fromBytes(a.data.h['library.json']); if (null != b) { if (null == b.libraryType) var c = new qb(); else if (((c = h[b.libraryType]), null != c)) c = ma.createInstance(c, b.libraryArgs); else return ( Xa.warn('Could not find library type: ' + b.libraryType, { fileName: 'lime/utils/AssetLibrary.hx', lineNumber: 122, className: 'lime.utils.AssetLibrary', methodName: 'fromBundle' }), null ); c.__fromBundle(a, b); return c; } } else return (c = new qb()), c.__fromBundle(a), c; return null; }; qb.fromManifest = function (a) { if (null == a) return null; if (null == a.libraryType) var b = new qb(); else if (((b = h[a.libraryType]), null != b)) b = ma.createInstance(b, a.libraryArgs); else return ( Xa.warn('Could not find library type: ' + a.libraryType, { fileName: 'lime/utils/AssetLibrary.hx', lineNumber: 160, className: 'lime.utils.AssetLibrary', methodName: 'fromManifest' }), null ); b.__fromManifest(a); return b; }; qb.loadFromBytes = function (a, b) { return Ic.loadFromBytes(a, b).then(function (a) { return qb.loadFromManifest(a); }); }; qb.loadFromFile = function (a, b) { return Ic.loadFromFile(a, b).then(function (a) { return qb.loadFromManifest(a); }); }; qb.loadFromManifest = function (a) { a = qb.fromManifest(a); return null != a ? a.load() : kb.withError('Could not load asset manifest'); }; qb.prototype = { onChange: null, assetsLoaded: null, assetsTotal: null, bytesLoaded: null, bytesLoadedCache: null, bytesTotal: null, cachedAudioBuffers: null, cachedBytes: null, cachedFonts: null, cachedImages: null, cachedText: null, classTypes: null, loaded: null, pathGroups: null, paths: null, preload: null, promise: null, sizes: null, types: null, exists: function (a, b) { b = null != b ? x.__cast(b, String) : null; a = this.types.h[a]; return null == a || (a != b && (('SOUND' != b && 'MUSIC' != b) || ('MUSIC' != a && 'SOUND' != a)) && 'BINARY' != b && null != b && ('BINARY' != a || 'TEXT' != b)) ? !1 : !0; }, getAsset: function (a, b) { switch (b) { case 'BINARY': return this.getBytes(a); case 'FONT': return this.getFont(a); case 'IMAGE': return this.getImage(a); case 'MUSIC': case 'SOUND': return this.getAudioBuffer(a); case 'TEMPLATE': throw M.thrown('Not sure how to get template: ' + a); case 'TEXT': return this.getText(a); default: throw M.thrown('Unknown asset type: ' + b); } }, getAudioBuffer: function (a) { return Object.prototype.hasOwnProperty.call(this.cachedAudioBuffers.h, a) ? this.cachedAudioBuffers.h[a] : Object.prototype.hasOwnProperty.call(this.classTypes.h, a) ? Wc.fromBytes(x.__cast(ma.createInstance(this.classTypes.h[a], []), hb)) : Wc.fromFile(this.paths.h[a]); }, getBytes: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a)) return this.cachedBytes.h[a]; if (Object.prototype.hasOwnProperty.call(this.cachedText.h, a)) { var b = kc.ofString(this.cachedText.h[a]); return (this.cachedBytes.h[a] = b); } return Object.prototype.hasOwnProperty.call(this.classTypes.h, a) ? x.__cast(ma.createInstance(this.classTypes.h[a], []), hb) : kc.fromFile(this.paths.h[a]); }, getFont: function (a) { return Object.prototype.hasOwnProperty.call(this.cachedFonts.h, a) ? this.cachedFonts.h[a] : Object.prototype.hasOwnProperty.call(this.classTypes.h, a) ? x.__cast(ma.createInstance(this.classTypes.h[a], []), Md) : Md.fromFile(this.paths.h[a]); }, getImage: function (a) { return Object.prototype.hasOwnProperty.call(this.cachedImages.h, a) ? this.cachedImages.h[a] : Object.prototype.hasOwnProperty.call(this.classTypes.h, a) ? x.__cast(ma.createInstance(this.classTypes.h[a], []), Fb) : Fb.fromFile(this.paths.h[a]); }, getPath: function (a) { return Object.prototype.hasOwnProperty.call(this.paths.h, a) ? this.paths.h[a] : Object.prototype.hasOwnProperty.call(this.pathGroups.h, a) ? this.pathGroups.h[a][0] : null; }, getText: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedText.h, a)) return this.cachedText.h[a]; a = this.getBytes(a); return null == a ? null : a.getString(0, a.length); }, isLocal: function (a, b) { if (Object.prototype.hasOwnProperty.call(this.classTypes.h, a)) return !0; b = null != b ? x.__cast(b, String) : null; if (null == b) return Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a) ? !0 : Object.prototype.hasOwnProperty.call(this.cachedText.h, a); switch (b) { case 'FONT': return Object.prototype.hasOwnProperty.call(this.cachedFonts.h, a); case 'IMAGE': return Object.prototype.hasOwnProperty.call(this.cachedImages.h, a); case 'MUSIC': case 'SOUND': return Object.prototype.hasOwnProperty.call(this.cachedAudioBuffers.h, a); default: return Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a) ? !0 : Object.prototype.hasOwnProperty.call(this.cachedText.h, a); } }, list: function (a) { for ( var b = null != a ? x.__cast(a, String) : null, c = [], e = Object.keys(this.types.h), f = e.length, d = 0; d < f; ) { var p = e[d++]; (null == b || this.exists(p, a)) && c.push(p); } return c; }, loadAsset: function (a, b) { switch (b) { case 'BINARY': return this.loadBytes(a); case 'FONT': return this.loadFont(a); case 'IMAGE': return this.loadImage(a); case 'MUSIC': case 'SOUND': return this.loadAudioBuffer(a); case 'TEMPLATE': throw M.thrown('Not sure how to load template: ' + a); case 'TEXT': return this.loadText(a); default: throw M.thrown('Unknown asset type: ' + b); } }, load: function () { if (this.loaded) return kb.withValue(this); if (null == this.promise) { this.promise = new $d(); this.bytesLoadedCache = new qa(); this.assetsLoaded = 0; this.assetsTotal = 1; for (var a = Object.keys(this.preload.h), b = a.length, c = 0; c < b; ) { var e = a[c++]; if (this.preload.h[e]) { Xa.verbose('Preloading asset: ' + e + ' [' + this.types.h[e] + ']', { fileName: 'lime/utils/AssetLibrary.hx', lineNumber: 405, className: 'lime.utils.AssetLibrary', methodName: 'load' }); var f = this.types.h[e]; if (null != f) switch (f) { case 'BINARY': this.assetsTotal++; f = this.loadBytes(e); f.onProgress( (function (a, b) { return function (c, e) { b[0](a[0], c, e); }; })([e], [q(this, this.load_onProgress)]) ); f.onError( (function (a, b) { return function (c) { b[0](a[0], c); }; })([e], [q(this, this.load_onError)]) ); f.onComplete( (function (a, b) { return function (c) { b[0](a[0], c); }; })([e], [q(this, this.loadBytes_onComplete)]) ); break; case 'FONT': this.assetsTotal++; f = this.loadFont(e); f.onProgress( (function (a, b) { return function (c, e) { b[0](a[0], c, e); }; })([e], [q(this, this.load_onProgress)]) ); f.onError( (function (a, b) { return function (c) { b[0](a[0], c); }; })([e], [q(this, this.load_onError)]) ); f.onComplete( (function (a, b) { return function (c) { b[0](a[0], c); }; })([e], [q(this, this.loadFont_onComplete)]) ); break; case 'IMAGE': this.assetsTotal++; f = this.loadImage(e); f.onProgress( (function (a, b) { return function (c, e) { b[0](a[0], c, e); }; })([e], [q(this, this.load_onProgress)]) ); f.onError( (function (a, b) { return function (c) { b[0](a[0], c); }; })([e], [q(this, this.load_onError)]) ); f.onComplete( (function (a, b) { return function (c) { b[0](a[0], c); }; })([e], [q(this, this.loadImage_onComplete)]) ); break; case 'MUSIC': case 'SOUND': this.assetsTotal++; f = this.loadAudioBuffer(e); f.onProgress( (function (a, b) { return function (c, e) { b[0](a[0], c, e); }; })([e], [q(this, this.load_onProgress)]) ); f.onError( (function (a, b) { return function (c) { b[0](a[0], c); }; })([e], [q(this, this.loadAudioBuffer_onError)]) ); f.onComplete( (function (a, b) { return function (c) { b[0](a[0], c); }; })([e], [q(this, this.loadAudioBuffer_onComplete)]) ); break; case 'TEXT': this.assetsTotal++, (f = this.loadText(e)), f.onProgress( (function (a, b) { return function (c, e) { b[0](a[0], c, e); }; })([e], [q(this, this.load_onProgress)]) ), f.onError( (function (a, b) { return function (c) { b[0](a[0], c); }; })([e], [q(this, this.load_onError)]) ), f.onComplete( (function (a, b) { return function (c) { b[0](a[0], c); }; })([e], [q(this, this.loadText_onComplete)]) ); } } } this.__assetLoaded(null); } return this.promise.future; }, loadAudioBuffer: function (a) { return Object.prototype.hasOwnProperty.call(this.cachedAudioBuffers.h, a) ? kb.withValue(this.cachedAudioBuffers.h[a]) : Object.prototype.hasOwnProperty.call(this.classTypes.h, a) ? kb.withValue(ma.createInstance(this.classTypes.h[a], [])) : Object.prototype.hasOwnProperty.call(this.pathGroups.h, a) ? Wc.loadFromFiles(this.pathGroups.h[a]) : Wc.loadFromFile(this.paths.h[a]); }, loadBytes: function (a) { return Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a) ? kb.withValue(this.cachedBytes.h[a]) : Object.prototype.hasOwnProperty.call(this.classTypes.h, a) ? kb.withValue(ma.createInstance(this.classTypes.h[a], [])) : kc.loadFromFile(this.paths.h[a]); }, loadFont: function (a) { return Object.prototype.hasOwnProperty.call(this.cachedFonts.h, a) ? kb.withValue(this.cachedFonts.h[a]) : Object.prototype.hasOwnProperty.call(this.classTypes.h, a) ? ((a = ma.createInstance(this.classTypes.h[a], [])), a.__loadFromName(a.name)) : Md.loadFromName(this.paths.h[a]); }, loadImage: function (a) { var b = this; return Object.prototype.hasOwnProperty.call(this.cachedImages.h, a) ? kb.withValue(this.cachedImages.h[a]) : Object.prototype.hasOwnProperty.call(this.classTypes.h, a) ? kb.withValue(ma.createInstance(this.classTypes.h[a], [])) : Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a) ? Fb.loadFromBytes(this.cachedBytes.h[a]).then(function (c) { var e = b.cachedBytes; Object.prototype.hasOwnProperty.call(e.h, a) && delete e.h[a]; b.cachedImages.h[a] = c; return kb.withValue(c); }) : Fb.loadFromFile(this.paths.h[a]); }, loadText: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedText.h, a)) return kb.withValue(this.cachedText.h[a]); if ( Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a) || Object.prototype.hasOwnProperty.call(this.classTypes.h, a) ) { var b = this.getBytes(a); if (null == b) return kb.withValue(null); b = b.getString(0, b.length); this.cachedText.h[a] = b; return kb.withValue(b); } return new Vj().load(this.paths.h[a]); }, unload: function () {}, __assetLoaded: function (a) { this.assetsLoaded++; null != a && Xa.verbose( 'Loaded asset: ' + a + ' [' + this.types.h[a] + '] (' + (this.assetsLoaded - 1) + '/' + (this.assetsTotal - 1) + ')', { fileName: 'lime/utils/AssetLibrary.hx', lineNumber: 619, className: 'lime.utils.AssetLibrary', methodName: '__assetLoaded' } ); if (null != a) { var b = Object.prototype.hasOwnProperty.call(this.sizes.h, a) ? this.sizes.h[a] : 0; if (Object.prototype.hasOwnProperty.call(this.bytesLoadedCache.h, a)) { var c = this.bytesLoadedCache.h[a]; c < b && (this.bytesLoaded += b - c); } else this.bytesLoaded += b; this.bytesLoadedCache.h[a] = b; } this.assetsLoaded < this.assetsTotal ? this.promise.progress(this.bytesLoaded, this.bytesTotal) : ((this.loaded = !0), this.promise.progress(this.bytesTotal, this.bytesTotal), this.promise.complete(this)); }, __cacheBreak: function (a) { return wa.__cacheBreak(a); }, __fromBundle: function (a, b) { if (null != b) { var c = 0; for (b = b.assets; c < b.length; ) { var e = b[c]; ++c; var f = Object.prototype.hasOwnProperty.call(e, 'id') ? e.id : e.path; var d = a.data.h[e.path]; if (Object.prototype.hasOwnProperty.call(e, 'type')) { var p = e.type; 'TEXT' == p ? (this.cachedText.h[f] = null != d ? B.string(d) : null) : (this.cachedBytes.h[f] = d); this.types.h[f] = e.type; } else (this.cachedBytes.h[f] = d), (this.types.h[f] = 'BINARY'); } } else for (c = 0, b = a.paths; c < b.length; ) (f = b[c]), ++c, (this.cachedBytes.h[f] = a.data.h[f]), (this.types.h[f] = 'BINARY'); }, __fromManifest: function (a) { var b = 2 <= a.version, c = a.rootPath; null == c && (c = ''); '' != c && (c += '/'); for (var e = 0, f = a.assets; e < f.length; ) { var d = f[e]; ++e; var p = b && Object.prototype.hasOwnProperty.call(d, 'size') ? d.size : 100; var l = Object.prototype.hasOwnProperty.call(d, 'id') ? d.id : d.path; if (Object.prototype.hasOwnProperty.call(d, 'path')) { var k = this.paths; var n = this.__cacheBreak(this.__resolvePath(c + B.string(Z.field(d, 'path')))); k.h[l] = n; } if (Object.prototype.hasOwnProperty.call(d, 'pathGroup')) { k = Z.field(d, 'pathGroup'); n = 0; for (var t = k.length; n < t; ) { var m = n++; k[m] = this.__cacheBreak(this.__resolvePath(c + k[m])); } this.pathGroups.h[l] = k; } this.sizes.h[l] = p; this.types.h[l] = d.type; Object.prototype.hasOwnProperty.call(d, 'preload') && (this.preload.h[l] = Z.field(d, 'preload')); Object.prototype.hasOwnProperty.call(d, 'className') && ((p = Z.field(d, 'className')), (p = h[p]), (this.classTypes.h[l] = p)); } e = this.bytesTotal = 0; for (f = a.assets; e < f.length; ) (d = f[e]), ++e, (l = Object.prototype.hasOwnProperty.call(d, 'id') ? d.id : d.path), Object.prototype.hasOwnProperty.call(this.preload.h, l) && this.preload.h[l] && Object.prototype.hasOwnProperty.call(this.sizes.h, l) && (this.bytesTotal += this.sizes.h[l]); }, __resolvePath: function (a) { a = U.replace(a, '\\', '/'); var b = a.indexOf(':'); U.startsWith(a, 'http') && 0 < b ? ((b += 3), (a = A.substr(a, 0, b) + U.replace(A.substr(a, b, null), '//', '/'))) : (a = U.replace(a, '//', '/')); if (-1 < a.indexOf('./')) { a = a.split('/'); b = []; for (var c = 0, e = a.length; c < e; ) { var f = c++; '..' == a[f] ? 0 == f || '..' == b[f - 1] ? b.push('..') : b.pop() : '.' == a[f] ? 0 == f && b.push('.') : b.push(a[f]); } a = b.join('/'); } return a; }, loadAudioBuffer_onComplete: function (a, b) { this.cachedAudioBuffers.h[a] = b; if (Object.prototype.hasOwnProperty.call(this.pathGroups.h, a)) for ( var c = this.pathGroups.h[a], e = Object.keys(this.pathGroups.h), f = e.length, d = 0; d < f; ) { var p = e[d++]; if (p != a) for (var l = 0; l < c.length; ) { var k = c[l]; ++l; if (-1 < this.pathGroups.h[p].indexOf(k)) { this.cachedAudioBuffers.h[p] = b; break; } } } this.__assetLoaded(a); }, loadAudioBuffer_onError: function (a, b) { null != b && '' != b ? Xa.warn('Could not load "' + a + '": ' + B.string(b), { fileName: 'lime/utils/AssetLibrary.hx', lineNumber: 865, className: 'lime.utils.AssetLibrary', methodName: 'loadAudioBuffer_onError' }) : Xa.warn('Could not load "' + a + '"', { fileName: 'lime/utils/AssetLibrary.hx', lineNumber: 869, className: 'lime.utils.AssetLibrary', methodName: 'loadAudioBuffer_onError' }); this.loadAudioBuffer_onComplete(a, new Wc()); }, loadBytes_onComplete: function (a, b) { this.cachedBytes.h[a] = b; this.__assetLoaded(a); }, loadFont_onComplete: function (a, b) { this.cachedFonts.h[a] = b; this.__assetLoaded(a); }, loadImage_onComplete: function (a, b) { this.cachedImages.h[a] = b; this.__assetLoaded(a); }, loadText_onComplete: function (a, b) { this.cachedText.h[a] = b; this.__assetLoaded(a); }, load_onError: function (a, b) { null != b && '' != b ? this.promise.error('Error loading asset "' + a + '": ' + B.string(b)) : this.promise.error('Error loading asset "' + a + '"'); }, load_onProgress: function (a, b, c) { if (0 < b) { var e = this.sizes.h[a]; 0 < c ? ((b /= c), 1 < b && (b = 1), (b = Math.floor(b * e))) : b > e && (b = e); Object.prototype.hasOwnProperty.call(this.bytesLoadedCache.h, a) ? ((e = this.bytesLoadedCache.h[a]), b != e && (this.bytesLoaded += b - e)) : (this.bytesLoaded += b); this.bytesLoadedCache.h[a] = b; this.promise.progress(this.bytesLoaded, this.bytesTotal); } }, __class__: qb }; var Ic = function () { this.assets = []; this.libraryArgs = []; this.version = 2; }; h['lime.utils.AssetManifest'] = Ic; Ic.__name__ = 'lime.utils.AssetManifest'; Ic.fromBytes = function (a, b) { return null != a ? Ic.parse(a.getString(0, a.length), b) : null; }; Ic.fromFile = function (a, b) { a = Ic.__resolvePath(a); b = Ic.__resolveRootPath(b, a); return null == a ? null : Ic.fromBytes(kc.fromFile(a), b); }; Ic.loadFromBytes = function (a, b) { return kb.withValue(Ic.fromBytes(a, b)); }; Ic.loadFromFile = function (a, b) { a = Ic.__resolvePath(a); b = Ic.__resolveRootPath(b, a); return null == a ? null : kc.loadFromFile(a).then(function (a) { return kb.withValue(Ic.fromBytes(a, b)); }); }; Ic.parse = function (a, b) { if (null == a || '' == a) return null; a = JSON.parse(a); var c = new Ic(); Object.prototype.hasOwnProperty.call(a, 'name') && (c.name = a.name); Object.prototype.hasOwnProperty.call(a, 'libraryType') && (c.libraryType = a.libraryType); Object.prototype.hasOwnProperty.call(a, 'libraryArgs') && (c.libraryArgs = a.libraryArgs); if (Object.prototype.hasOwnProperty.call(a, 'assets')) { var e = a.assets; Object.prototype.hasOwnProperty.call(a, 'version') && 2 >= a.version ? (c.assets = Ke.run(e)) : (c.assets = e); } Object.prototype.hasOwnProperty.call(a, 'rootPath') && (c.rootPath = a.rootPath); null != b && '' != b && (c.rootPath = null == c.rootPath || '' == c.rootPath ? b : b + '/' + c.rootPath); return c; }; Ic.__resolvePath = function (a) { if (null == a) return null; var b = a.indexOf('?'); var c = -1 < b ? A.substr(a, 0, b) : a; for (c = U.replace(c, '\\', '/'); U.endsWith(c, '/'); ) c = A.substr(c, 0, c.length - 1); return U.endsWith(c, '.bundle') ? -1 < b ? c + '/library.json' + A.substr(a, b, null) : c + '/library.json' : a; }; Ic.__resolveRootPath = function (a, b) { if (null != a) return a; a = b.indexOf('?'); a = -1 < a ? A.substr(b, 0, a) : b; for (a = U.replace(a, '\\', '/'); U.endsWith(a, '/'); ) { if ('/' == a) return a; a = A.substr(a, 0, a.length - 1); } return U.endsWith(a, '.bundle') ? a : Ah.directory(a); }; Ic.prototype = { assets: null, libraryArgs: null, libraryType: null, name: null, rootPath: null, version: null, serialize: function () { var a = {}; a.version = this.version; a.libraryType = this.libraryType; a.libraryArgs = this.libraryArgs; a.name = this.name; a.assets = Be.run(this.assets); a.rootPath = this.rootPath; return JSON.stringify(a); }, __class__: Ic }; var wa = function () {}; h['lime.utils.Assets'] = wa; wa.__name__ = 'lime.utils.Assets'; wa.exists = function (a, b) { null == b && (b = 'BINARY'); var c = a.indexOf(':'), e = a.substring(0, c); a = a.substring(c + 1); e = wa.getLibrary(e); return null != e ? e.exists(a, b) : !1; }; wa.getAsset = function (a, b, c) { if (c && wa.cache.enabled) switch (b) { case 'BINARY': case 'TEXT': c = !1; break; case 'FONT': var e = wa.cache.font.h[a]; if (null != e) return e; break; case 'IMAGE': e = wa.cache.image.h[a]; if (wa.isValidImage(e)) return e; break; case 'MUSIC': case 'SOUND': e = wa.cache.audio.h[a]; if (wa.isValidAudio(e)) return e; break; case 'TEMPLATE': throw M.thrown('Not sure how to get template: ' + a); default: return null; } var f = a.indexOf(':'); e = a.substring(0, f); f = a.substring(f + 1); var d = wa.getLibrary(e); if (null != d) if (d.exists(f, b)) { if (d.isLocal(f, b)) return (e = d.getAsset(f, b)), c && wa.cache.enabled && wa.cache.set(a, b, e), e; Xa.error(b + ' asset "' + a + '" exists, but only asynchronously', { fileName: 'lime/utils/Assets.hx', lineNumber: 133, className: 'lime.utils.Assets', methodName: 'getAsset' }); } else Xa.error('There is no ' + b + ' asset with an ID of "' + a + '"', { fileName: 'lime/utils/Assets.hx', lineNumber: 138, className: 'lime.utils.Assets', methodName: 'getAsset' }); else Xa.error(wa.__libraryNotFound(e), { fileName: 'lime/utils/Assets.hx', lineNumber: 143, className: 'lime.utils.Assets', methodName: 'getAsset' }); return null; }; wa.getAudioBuffer = function (a, b) { null == b && (b = !0); return wa.getAsset(a, 'SOUND', b); }; wa.getBytes = function (a) { return wa.getAsset(a, 'BINARY', !1); }; wa.getFont = function (a, b) { null == b && (b = !0); return wa.getAsset(a, 'FONT', b); }; wa.getImage = function (a, b) { null == b && (b = !0); return wa.getAsset(a, 'IMAGE', b); }; wa.getLibrary = function (a) { if (null == a || '' == a) a = 'default'; return wa.libraries.h[a]; }; wa.getPath = function (a) { var b = a.indexOf(':'), c = a.substring(0, b); b = a.substring(b + 1); var e = wa.getLibrary(c); if (null != e) { if (e.exists(b, null)) return e.getPath(b); Xa.error('There is no asset with an ID of "' + a + '"', { fileName: 'lime/utils/Assets.hx', lineNumber: 224, className: 'lime.utils.Assets', methodName: 'getPath' }); } else Xa.error(wa.__libraryNotFound(c), { fileName: 'lime/utils/Assets.hx', lineNumber: 229, className: 'lime.utils.Assets', methodName: 'getPath' }); return null; }; wa.getText = function (a) { return wa.getAsset(a, 'TEXT', !1); }; wa.hasLibrary = function (a) { if (null == a || '' == a) a = 'default'; return Object.prototype.hasOwnProperty.call(wa.libraries.h, a); }; wa.isLocal = function (a, b, c) { null == c && (c = !0); if (c && wa.cache.enabled && wa.cache.exists(a, b)) return !0; var e = a.indexOf(':'); c = a.substring(0, e); a = a.substring(e + 1); c = wa.getLibrary(c); return null != c ? c.isLocal(a, b) : !1; }; wa.isValidAudio = function (a) { return null != a; }; wa.isValidImage = function (a) { return null != a ? null != a.buffer : !1; }; wa.list = function (a) { for (var b = [], c = wa.libraries.h, e = Object.keys(c), f = e.length, d = 0; d < f; ) { var p = c[e[d++]].list(a); null != p && (b = b.concat(p)); } return b; }; wa.loadAsset = function (a, b, c) { if (c && wa.cache.enabled) switch (b) { case 'BINARY': case 'TEXT': c = !1; break; case 'FONT': var e = wa.cache.font.h[a]; if (null != e) return kb.withValue(e); break; case 'IMAGE': e = wa.cache.image.h[a]; if (wa.isValidImage(e)) return kb.withValue(e); break; case 'MUSIC': case 'SOUND': e = wa.cache.audio.h[a]; if (wa.isValidAudio(e)) return kb.withValue(e); break; case 'TEMPLATE': throw M.thrown('Not sure how to get template: ' + a); default: return null; } var f = a.indexOf(':'); e = a.substring(0, f); f = a.substring(f + 1); var d = wa.getLibrary(e); if (null != d) { if (d.exists(f, b)) { e = d.loadAsset(f, b); if (c && wa.cache.enabled) e.onComplete(function (c) { wa.cache.set(a, b, c); }); return e; } return kb.withError('There is no ' + b + ' asset with an ID of "' + a + '"'); } return kb.withError(wa.__libraryNotFound(e)); }; wa.loadAudioBuffer = function (a, b) { null == b && (b = !0); return wa.loadAsset(a, 'SOUND', b); }; wa.loadBytes = function (a) { return wa.loadAsset(a, 'BINARY', !1); }; wa.loadFont = function (a, b) { null == b && (b = !0); return wa.loadAsset(a, 'FONT', b); }; wa.loadImage = function (a, b) { null == b && (b = !0); return wa.loadAsset(a, 'IMAGE', b); }; wa.loadLibrary = function (a) { var b = new $d(), c = wa.getLibrary(a); if (null != c) return c.load(); c = a; var e = null; if (Object.prototype.hasOwnProperty.call(wa.bundlePaths.h, a)) Tf.loadFromFile(wa.bundlePaths.h[a]) .onComplete(function (c) { null == c ? b.error('Cannot load bundle for library "' + a + '"') : ((c = qb.fromBundle(c)), null == c ? b.error('Cannot open library "' + a + '"') : ((wa.libraries.h[a] = c), c.onChange.add(((I = wa.onChange), q(I, I.dispatch))), b.completeWith(c.load()))); }) .onError(function (c) { b.error('There is no asset library with an ID of "' + a + '"'); }); else Object.prototype.hasOwnProperty.call(wa.libraryPaths.h, a) ? ((c = wa.libraryPaths.h[a]), (e = Ah.directory(c))) : (U.endsWith(c, '.bundle') ? ((e = c), (c += '/library.json')) : (e = Ah.directory(c)), (c = wa.__cacheBreak(c))), Ic.loadFromFile(c, e) .onComplete(function (c) { null == c ? b.error('Cannot parse asset manifest for library "' + a + '"') : ((c = qb.fromManifest(c)), null == c ? b.error('Cannot open library "' + a + '"') : ((wa.libraries.h[a] = c), c.onChange.add(((I = wa.onChange), q(I, I.dispatch))), b.completeWith(c.load()))); }) .onError(function (c) { b.error('There is no asset library with an ID of "' + a + '"'); }); return b.future; }; wa.loadText = function (a) { return wa.loadAsset(a, 'TEXT', !1); }; wa.registerLibrary = function (a, b) { if (Object.prototype.hasOwnProperty.call(wa.libraries.h, a)) { if (wa.libraries.h[a] == b) return; wa.unloadLibrary(a); } null != b && b.onChange.add(wa.library_onChange); wa.libraries.h[a] = b; }; wa.unloadLibrary = function (a) { if (null == a || '' == a) a = 'default'; var b = wa.libraries.h[a]; null != b && (wa.cache.clear(a + ':'), b.onChange.remove(wa.library_onChange), b.unload()); b = wa.libraries; Object.prototype.hasOwnProperty.call(b.h, a) && delete b.h[a]; }; wa.__cacheBreak = function (a) { 0 < wa.cache.version && (a = -1 < a.indexOf('?') ? a + ('&' + wa.cache.version) : a + ('?' + wa.cache.version)); return a; }; wa.__libraryNotFound = function (a) { if (null == a || '' == a) a = 'default'; return null == vd.current || null == vd.current.__preloader || vd.current.__preloader.complete ? 'There is no asset library named "' + a + '"' : 'There is no asset library named "' + a + '", or it is not yet preloaded'; }; wa.library_onChange = function () { wa.cache.clear(); wa.onChange.dispatch(); }; var Aw = function (a) { var b = a.indexOf(':'); this.libraryName = a.substring(0, b); this.symbolName = a.substring(b + 1); this.library = wa.getLibrary(this.libraryName); }; h['lime.utils._Assets.LibrarySymbol'] = Aw; Aw.__name__ = 'lime.utils._Assets.LibrarySymbol'; Aw.prototype = { library: null, libraryName: null, symbolName: null, isLocal: function (a) { return this.library.isLocal(this.symbolName, a); }, exists: function (a) { return this.library.exists(this.symbolName, a); }, __class__: Aw }; var ox = { _new: function (a, b) { null == b && (b = 0); return new Uf(a, b); }, set: function (a, b, c, e, f) { null != e && (b = hb.ofData(e)); null != b || null == c ? ((a.bytes = b), (a.offset = null != f ? f : 0)) : ((a.bytes = hb.ofData(c.buffer)), (a.offset = null != f ? c.byteOffset + f : c.byteOffset)); }, __arrayGet: function (a, b) { return null != a.bytes ? a.bytes.b[b + a.offset] : 0; }, __arraySet: function (a, b, c) { null == a.bytes && (a.bytes.b[b + a.offset] = c & 255); return c; }, fromArrayBufferView: function (a) { return null == a ? null : new Uf(hb.ofData(a.buffer), a.byteOffset); }, fromArrayBuffer: function (a) { return null == a ? null : new Uf(hb.ofData(a), 0); }, fromBytes: function (a) { return new Uf(a, 0); }, fromBytesData: function (a) { return null == a ? new Uf(null, 0) : new Uf(hb.ofData(a), 0); }, fromFile: function (a) { return new Uf(kc.fromFile(a), 0); }, fromLimeBytes: function (a) { return new Uf(a, 0); }, toUInt8Array: function (a) { var b = a.bytes.b.bufferValue; a = (a.offset / 8) | 0; null == a && (a = 0); return null != b ? new Uint8Array(b, a) : null; }, toUInt8ClampedArray: function (a) { if (null == a || null == a.bytes) return null; var b = a.bytes.b.bufferValue; a = (a.offset / 8) | 0; null == a && (a = 0); return null != b ? new Uint8ClampedArray(b, a) : null; }, toInt8Array: function (a) { if (null == a || null == a.bytes) return null; var b = a.bytes.b.bufferValue; a = (a.offset / 8) | 0; null == a && (a = 0); return null != b ? new Int8Array(b, a) : null; }, toUInt16Array: function (a) { if (null == a || null == a.bytes) return null; var b = a.bytes.b.bufferValue; a = (a.offset / 16) | 0; null == a && (a = 0); return null != b ? new Uint16Array(b, a) : null; }, toInt16Array: function (a) { if (null == a || null == a.bytes) return null; var b = a.bytes.b.bufferValue; a = (a.offset / 16) | 0; null == a && (a = 0); return null != b ? new Int16Array(b, a) : null; }, toUInt32Array: function (a) { if (null == a || null == a.bytes) return null; var b = a.bytes.b.bufferValue; a = (a.offset / 32) | 0; null == a && (a = 0); return null != b ? new Uint32Array(b, a) : null; }, toInt32Array: function (a) { if (null == a || null == a.bytes) return null; var b = a.bytes.b.bufferValue; a = (a.offset / 32) | 0; null == a && (a = 0); return null != b ? new Int32Array(b, a) : null; }, toFloat32Array: function (a) { if (null == a || null == a.bytes) return null; var b = a.bytes.b.bufferValue; a = (a.offset / 32) | 0; null == a && (a = 0); return null != b ? new Float32Array(b, a) : null; }, toFloat64Array: function (a) { if (null == a || null == a.bytes) return null; var b = a.bytes.b.bufferValue; a = (a.offset / 64) | 0; null == a && (a = 0); return null != b ? new Float64Array(b, a) : null; } }, Uf = function (a, b) { this.bytes = a; this.offset = b; }; h['lime.utils.BytePointerData'] = Uf; Uf.__name__ = 'lime.utils.BytePointerData'; Uf.prototype = { bytes: null, offset: null, __class__: Uf }; var kc = { _new: function (a, b) { return new hb(b); }, alloc: function (a) { return new hb(new ArrayBuffer(a)); }, compress: function (a, b) { switch (b._hx_index) { case 0: return jm.compress(a); case 1: return km.compress(a); case 2: return mm.compress(a); case 3: return nm.compress(a); } }, decompress: function (a, b) { switch (b._hx_index) { case 0: return jm.decompress(a); case 1: return km.decompress(a); case 2: return mm.decompress(a); case 3: return nm.decompress(a); } }, fastGet: function (a, b) { return a.bytes[b]; }, fromBytes: function (a) { return null == a ? null : kc._new(a.length, a.b.bufferValue); }, fromFile: function (a) { return null; }, loadFromBytes: function (a) { return kb.withValue(kc.fromBytes(a)); }, loadFromFile: function (a) { return new xm().load(a); }, ofData: function (a) { a = hb.ofData(a); return kc._new(a.length, a.b.bufferValue); }, ofString: function (a) { a = hb.ofString(a); return kc._new(a.length, a.b.bufferValue); } }, ae = (E['lime.utils.CompressionAlgorithm'] = { __ename__: 'lime.utils.CompressionAlgorithm', __constructs__: null, DEFLATE: { _hx_name: 'DEFLATE', _hx_index: 0, __enum__: 'lime.utils.CompressionAlgorithm', toString: w }, GZIP: { _hx_name: 'GZIP', _hx_index: 1, __enum__: 'lime.utils.CompressionAlgorithm', toString: w }, LZMA: { _hx_name: 'LZMA', _hx_index: 2, __enum__: 'lime.utils.CompressionAlgorithm', toString: w }, ZLIB: { _hx_name: 'ZLIB', _hx_index: 3, __enum__: 'lime.utils.CompressionAlgorithm', toString: w } }); ae.__constructs__ = [ae.DEFLATE, ae.GZIP, ae.LZMA, ae.ZLIB]; var of = { _new: function (a) { return a; }, fromFloat: function (a) { return a; }, fromBytesPointer: function (a) { return of.fromFloat(0); }, fromArrayBufferView: function (a) { return of.fromFloat(0); }, fromArrayBuffer: function (a) { return of.fromFloat(0); }, fromBytes: function (a) { return of.fromFloat(0); }, fromBytesData: function (a) { return of.fromFloat(0); }, fromLimeBytes: function (a) { return of.fromBytes(a); }, fromCFFIPointer: function (a) { return of.fromFloat(0); }, fromFile: function (a) { return of.fromFloat(0); }, __withOffset: function (a, b) { return of.fromFloat(0); }, equals: function (a, b) { return a == b; }, equalsPointer: function (a, b) { return a == b; }, greaterThan: function (a, b) { return a > b; }, greaterThanPointer: function (a, b) { return Nd.get(a) > Nd.get(b); }, greaterThanOrEqual: function (a, b) { return a >= b; }, greaterThanOrEqualPointer: function (a, b) { return Nd.get(a) >= Nd.get(b); }, lessThan: function (a, b) { return a < b; }, lessThanPointer: function (a, b) { return Nd.get(a) < Nd.get(b); }, lessThanOrEqual: function (a, b) { return a <= b; }, lessThanOrEqualPointer: function (a, b) { return Nd.get(a) <= Nd.get(b); }, notEquals: function (a, b) { return a != b; }, notEqualsPointer: function (a, b) { return a != b; }, plus: function (a, b) { return of.__withOffset(a, b); }, plusPointer: function (a, b) { return of.__withOffset(a, b | 0); }, minus: function (a, b) { return of.__withOffset(a, -b); }, minusPointer: function (a, b) { return of.__withOffset(a, -(b | 0)); } }, Yg = { toArrayBufferView: function (a) { return a; }, fromBytes: function (a, b, c) { null == b && (b = 0); return null == b ? new Float32Array(a.b.bufferValue) : null == c ? new Float32Array(a.b.bufferValue, b) : new Float32Array(a.b.bufferValue, b, c); }, toBytes: function (a) { return new hb(new Uint8Array(a.buffer)); }, toString: function (a) { return null != a ? 'Float32Array [byteLength:' + a.byteLength + ', length:' + a.length + ']' : null; } }, Xa = function () {}; h['lime.utils.Log'] = Xa; Xa.__name__ = 'lime.utils.Log'; Xa.debug = function (a, b) { 4 <= Xa.level && console.debug('[' + b.className + '] ' + B.string(a)); }; Xa.error = function (a, b) { if (1 <= Xa.level) { a = '[' + b.className + '] ERROR: ' + B.string(a); if (Xa.throwErrors) throw M.thrown(a); console.error(a); } }; Xa.info = function (a, b) { 3 <= Xa.level && console.info('[' + b.className + '] ' + B.string(a)); }; Xa.print = function (a) { console.log(a); }; Xa.println = function (a) { console.log(a); }; Xa.verbose = function (a, b) { 5 <= Xa.level && ((a = '[' + b.className + '] ' + B.string(a)), console.log(a)); }; Xa.warn = function (a, b) { 2 <= Xa.level && console.warn('[' + b.className + '] WARNING: ' + B.string(a)); }; var og = function (a, b) { this.positions = new qa(); this.lengths = new qa(); qb.call(this); this.id = a; this.type = b; }; h['lime.utils.PackedAssetLibrary'] = og; og.__name__ = 'lime.utils.PackedAssetLibrary'; og.fromBytes = function (a, b) { return og.fromManifest(Ic.fromBytes(a, b)); }; og.fromFile = function (a, b) { return og.fromManifest(Ic.fromFile(a, b)); }; og.fromManifest = function (a) { return qb.fromManifest(a); }; og.loadFromBytes = function (a, b) { return qb.loadFromBytes(a, b).then(function (a) { return kb.withValue(a); }); }; og.loadFromFile = function (a, b) { return qb.loadFromFile(a, b).then(function (a) { return kb.withValue(a); }); }; og.loadFromManifest = function (a) { return qb.loadFromManifest(a).then(function (a) { return kb.withValue(a); }); }; og.__super__ = qb; og.prototype = r(qb.prototype, { id: null, lengths: null, packedData: null, positions: null, type: null, rootPath: null, getAudioBuffer: function (a) { return qb.prototype.getAudioBuffer.call(this, a); }, getBytes: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a)) return this.cachedBytes.h[a]; if (Object.prototype.hasOwnProperty.call(this.cachedText.h, a)) { var b = kc.ofString(this.cachedText.h[a]); this.cachedBytes.h[a] = b; } else if ( ((b = kc.alloc(this.lengths.h[a])), b.blit(0, this.packedData, this.positions.h[a], this.lengths.h[a]), 'gzip' == this.type) ) b = kc.decompress(b, ae.GZIP); else if ('zip' == this.type || 'deflate' == this.type) b = kc.decompress(b, ae.DEFLATE); return b; }, getFont: function (a) { return qb.prototype.getFont.call(this, a); }, getImage: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedImages.h, a)) return this.cachedImages.h[a]; var b = kc.alloc(this.lengths.h[a]); b.blit(0, this.packedData, this.positions.h[a], this.lengths.h[a]); if ('gzip' == this.type) b = kc.decompress(b, ae.GZIP); else if ('zip' == this.type || 'deflate' == this.type) b = kc.decompress(b, ae.DEFLATE); return Fb.fromBytes(b); }, getText: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedText.h, a)) return this.cachedText.h[a]; if ('gzip' == this.type || 'zip' == this.type || 'deflate' == this.type) { var b = kc.alloc(this.lengths.h[a]); b.blit(0, this.packedData, this.positions.h[a], this.lengths.h[a]); if ('gzip' == this.type) b = kc.decompress(b, ae.GZIP); else if ('zip' == this.type || 'deflate' == this.type) b = kc.decompress(b, ae.DEFLATE); return b.getString(0, b.length); } return this.packedData.getString(this.positions.h[a], this.lengths.h[a]); }, isLocal: function (a, b) { return !0; }, load: function () { var a = this; if (this.loaded) return kb.withValue(this); if (null == this.promise) { this.promise = new $d(); var b = function (b) { a.cachedBytes.h[a.id] = b; a.packedData = b; a.assetsLoaded = 0; a.assetsTotal = 1; b = Object.keys(a.preload.h); for (var c = b.length, e = 0; e < c; ) { var d = b[e++]; if (a.preload.h[d]) { Xa.verbose('Preloading asset: ' + d + ' [' + a.types.h[d] + ']', { fileName: 'lime/utils/PackedAssetLibrary.hx', lineNumber: 189, className: 'lime.utils.PackedAssetLibrary', methodName: 'load' }); var l = a.types.h[d]; if (null != l) switch (l) { case 'BINARY': a.assetsTotal++; l = a.loadBytes(d); l.onError( (function (a, b) { return function (c) { b[0](a[0], c); }; })([d], [q(a, a.load_onError)]) ); l.onComplete( (function (a, b) { return function (c) { b[0](a[0], c); }; })([d], [q(a, a.loadBytes_onComplete)]) ); break; case 'FONT': a.assetsTotal++; l = a.loadFont(d); l.onError( (function (a, b) { return function (c) { b[0](a[0], c); }; })([d], [q(a, a.load_onError)]) ); l.onComplete( (function (a, b) { return function (c) { b[0](a[0], c); }; })([d], [q(a, a.loadFont_onComplete)]) ); break; case 'IMAGE': a.assetsTotal++; l = a.loadImage(d); l.onError( (function (a, b) { return function (c) { b[0](a[0], c); }; })([d], [q(a, a.load_onError)]) ); l.onComplete( (function (a, b) { return function (c) { b[0](a[0], c); }; })([d], [q(a, a.loadImage_onComplete)]) ); break; case 'MUSIC': case 'SOUND': a.assetsTotal++; l = a.loadAudioBuffer(d); l.onError( (function (a, b) { return function (c) { b[0](a[0], c); }; })([d], [q(a, a.load_onError)]) ); l.onComplete( (function (a, b) { return function (c) { b[0](a[0], c); }; })([d], [q(a, a.loadAudioBuffer_onComplete)]) ); break; case 'TEXT': a.assetsTotal++, (l = a.loadText(d)), l.onError( (function (a, b) { return function (c) { b[0](a[0], c); }; })([d], [q(a, a.load_onError)]) ), l.onComplete( (function (a, b) { return function (c) { b[0](a[0], c); }; })([d], [q(a, a.loadText_onComplete)]) ); } } } a.__assetLoaded(null); }; if (Object.prototype.hasOwnProperty.call(this.cachedBytes.h, this.id)) b(this.cachedBytes.h[this.id]); else { var c = this.rootPath; null == c && (c = ''); '' == c || U.endsWith(c, '/') || (c += '/'); c += Object.prototype.hasOwnProperty.call(this.paths.h, this.id) ? this.paths.h[this.id] : this.id; c = this.__cacheBreak(c); kc.loadFromFile(c) .onError(((I = this.promise), q(I, I.error))) .onComplete(b); } } return this.promise.future; }, loadAudioBuffer: function (a) { return qb.prototype.loadAudioBuffer.call(this, a); }, loadBytes: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a)) return kb.withValue(this.cachedBytes.h[a]); var b = kc.alloc(this.lengths.h[a]); b.blit(0, this.packedData, this.positions.h[a], this.lengths.h[a]); if ('gzip' == this.type) b = kc.decompress(b, ae.GZIP); else if ('zip' == this.type || 'deflate' == this.type) b = kc.decompress(b, ae.DEFLATE); return kb.withValue(b); }, loadFont: function (a) { return qb.prototype.loadFont.call(this, a); }, loadImage: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedImages.h, a)) return kb.withValue(this.cachedImages.h[a]); var b = kc.alloc(this.lengths.h[a]); b.blit(0, this.packedData, this.positions.h[a], this.lengths.h[a]); if ('gzip' == this.type) b = kc.decompress(b, ae.GZIP); else if ('zip' == this.type || 'deflate' == this.type) b = kc.decompress(b, ae.DEFLATE); return Fb.loadFromBytes(b); }, loadText: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedText.h, a)) return kb.withValue(this.cachedText.h[a]); if (Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a)) { var b = this.getBytes(a); if (null == b) return kb.withValue(null); b = b.getString(0, b.length); this.cachedText.h[a] = b; return kb.withValue(b); } if ('gzip' == this.type || 'deflate' == this.type) { b = kc.alloc(this.lengths.h[a]); b.blit(0, this.packedData, this.positions.h[a], this.lengths.h[a]); if ('gzip' == this.type) b = kc.decompress(b, ae.GZIP); else if ('zip' == this.type || 'deflate' == this.type) b = kc.decompress(b, ae.DEFLATE); return kb.withValue(b.getString(0, b.length)); } return kb.withValue(this.packedData.getString(this.positions.h[a], this.lengths.h[a])); }, unload: function () {}, __fromManifest: function (a) { this.rootPath = a.rootPath; qb.prototype.__fromManifest.call(this, a); var b = 0; for (a = a.assets; b < a.length; ) { var c = a[b]; ++b; Object.prototype.hasOwnProperty.call(c, 'position') && (this.positions.h[c.id] = Z.field(c, 'position')); Object.prototype.hasOwnProperty.call(c, 'length') && (this.lengths.h[c.id] = Z.field(c, 'length')); } }, __assetLoaded: function (a) { this.assetsLoaded++; null != a && Xa.verbose( 'Loaded asset: ' + a + ' [' + this.types.h[a] + '] (' + (this.assetsLoaded - 1) + '/' + (this.assetsTotal - 1) + ')', { fileName: 'lime/utils/PackedAssetLibrary.hx', lineNumber: 426, className: 'lime.utils.PackedAssetLibrary', methodName: '__assetLoaded' } ); this.assetsLoaded >= this.assetsTotal && ((this.loaded = !0), this.promise.complete(this)); }, __class__: og }); var Bo = function () { this.bytesTotalCache = new qa(); this.bytesLoadedCache2 = new qa(); this.bytesLoadedCache = new Jc(); this.onProgress = new om(); this.onComplete = new Ld(); this.bytesTotal = this.bytesLoaded = 0; this.libraries = []; this.libraryNames = []; this.onProgress.add(q(this, this.update)); }; h['lime.utils.Preloader'] = Bo; Bo.__name__ = 'lime.utils.Preloader'; Bo.prototype = { complete: null, onComplete: null, onProgress: null, bytesLoaded: null, bytesLoadedCache: null, bytesLoadedCache2: null, bytesTotal: null, bytesTotalCache: null, initLibraryNames: null, libraries: null, libraryNames: null, loadedLibraries: null, loadedStage: null, preloadComplete: null, preloadStarted: null, simulateProgress: null, addLibrary: function (a) { this.libraries.push(a); }, addLibraryName: function (a) { -1 == this.libraryNames.indexOf(a) && this.libraryNames.push(a); }, load: function () { for (var a = this, b = 0, c = this.libraries; b < c.length; ) { var e = c[b]; ++b; this.bytesTotal += e.bytesTotal; } this.loadedLibraries = -1; this.preloadStarted = !1; b = 0; for (c = this.libraries; b < c.length; ) (e = [c[b]]), ++b, Xa.verbose('Preloading asset library', { fileName: 'lime/utils/Preloader.hx', lineNumber: 132, className: 'lime.utils.Preloader', methodName: 'load' }), e[0] .load() .onProgress( (function (b) { return function (c, e) { a.bytesLoaded = null == a.bytesLoadedCache.h.__keys__[b[0].__id__] ? a.bytesLoaded + c : a.bytesLoaded + (c - a.bytesLoadedCache.h[b[0].__id__]); a.bytesLoadedCache.set(b[0], c); a.simulateProgress || a.onProgress.dispatch(a.bytesLoaded, a.bytesTotal); }; })(e) ) .onComplete( (function (b) { return function (c) { a.bytesLoaded = null == a.bytesLoadedCache.h.__keys__[b[0].__id__] ? a.bytesLoaded + b[0].bytesTotal : a.bytesLoaded + (b[0].bytesTotal - a.bytesLoadedCache.h[b[0].__id__]); a.loadedAssetLibrary(); }; })(e) ) .onError( (function () { return function (a) { Xa.error(a, { fileName: 'lime/utils/Preloader.hx', lineNumber: 168, className: 'lime.utils.Preloader', methodName: 'load' }); }; })() ); b = 0; for (c = this.libraryNames; b < c.length; ) ++b, (this.bytesTotal += 200); this.loadedLibraries++; this.preloadStarted = !0; this.updateProgress(); }, loadedAssetLibrary: function (a) { this.loadedLibraries++; var b = this.loadedLibraries; this.preloadStarted || ++b; var c = this.libraries.length + this.libraryNames.length; null != a ? Xa.verbose('Loaded asset library: ' + a + ' [' + b + '/' + c + ']', { fileName: 'lime/utils/Preloader.hx', lineNumber: 195, className: 'lime.utils.Preloader', methodName: 'loadedAssetLibrary' }) : Xa.verbose('Loaded asset library [' + b + '/' + c + ']', { fileName: 'lime/utils/Preloader.hx', lineNumber: 199, className: 'lime.utils.Preloader', methodName: 'loadedAssetLibrary' }); this.updateProgress(); }, start: function () { this.complete || this.simulateProgress || !this.preloadComplete || ((this.complete = !0), this.onComplete.dispatch()); }, update: function (a, b) {}, updateProgress: function () { var a = this; this.simulateProgress || this.onProgress.dispatch(this.bytesLoaded, this.bytesTotal); if (this.loadedLibraries == this.libraries.length && !this.initLibraryNames) { this.initLibraryNames = !0; for (var b = 0, c = this.libraryNames; b < c.length; ) { var e = [c[b]]; ++b; Xa.verbose('Preloading asset library: ' + e[0], { fileName: 'lime/utils/Preloader.hx', lineNumber: 236, className: 'lime.utils.Preloader', methodName: 'updateProgress' }); wa.loadLibrary(e[0]) .onProgress( (function (b) { return function (c, e) { 0 < e && (Object.prototype.hasOwnProperty.call(a.bytesTotalCache.h, b[0]) || ((a.bytesTotalCache.h[b[0]] = e), (a.bytesTotal += e - 200)), c > e && (c = e), Object.prototype.hasOwnProperty.call(a.bytesLoadedCache2.h, b[0]) ? (a.bytesLoaded += c - a.bytesLoadedCache2.h[b[0]]) : (a.bytesLoaded += c), (a.bytesLoadedCache2.h[b[0]] = c), a.simulateProgress || a.onProgress.dispatch(a.bytesLoaded, a.bytesTotal)); }; })(e) ) .onComplete( (function (b) { return function (c) { c = 200; Object.prototype.hasOwnProperty.call(a.bytesTotalCache.h, b[0]) && (c = a.bytesTotalCache.h[b[0]]); Object.prototype.hasOwnProperty.call(a.bytesLoadedCache2.h, b[0]) ? (a.bytesLoaded += c - a.bytesLoadedCache2.h[b[0]]) : (a.bytesLoaded += c); a.loadedAssetLibrary(b[0]); }; })(e) ) .onError( (function () { return function (a) { Xa.error(a, { fileName: 'lime/utils/Preloader.hx', lineNumber: 290, className: 'lime.utils.Preloader', methodName: 'updateProgress' }); }; })() ); } } this.simulateProgress || this.loadedLibraries != this.libraries.length + this.libraryNames.length || (this.preloadComplete || ((this.preloadComplete = !0), Xa.verbose('Preload complete', { fileName: 'lime/utils/Preloader.hx', lineNumber: 301, className: 'lime.utils.Preloader', methodName: 'updateProgress' })), this.start()); }, __class__: Bo }; var zi = function (a, b, c) { this.name = a; this.type = b; this.address = c; }; h['mbs.core.MbsField'] = zi; zi.__name__ = 'mbs.core.MbsField'; zi.prototype = { name: null, type: null, address: null, getName: function () { return this.name; }, getType: function () { return this.type; }, getAddress: function () { return this.address; }, __class__: zi }; var Am = function (a, b, c) { zi.call(this, a, null, c); this.typeName = b; }; h['mbs.core.reflect.SubstituteField'] = Am; Am.__name__ = 'mbs.core.reflect.SubstituteField'; Am.__super__ = zi; Am.prototype = r(zi.prototype, { typeName: null, toString: function () { return ( 'MbsField [name=' + this.getName() + ', typeName=' + this.typeName + ', address=' + this.address + ']' ); }, __class__: Am }); var Oi = function (a, b, c, e) { wb.call(this, a); this.parentName = b; this.fields = c.slice(0); this.size = e; }; h['mbs.core.reflect.SubstituteType'] = Oi; Oi.__name__ = 'mbs.core.reflect.SubstituteType'; Oi.__super__ = wb; Oi.prototype = r(wb.prototype, { parentName: null, mapTypes: function (a) { this.parent = a.h[this.parentName]; if (null != this.fields) for (var b = 0, c = this.fields.length; b < c; ) { var e = b++; e = this.fields[e]; e.type = a.h[e.typeName]; } }, __class__: Oi }); var de = function () {}; h['mbs.io.MbsDynamicHelper'] = de; de.__name__ = 'mbs.io.MbsDynamicHelper'; de.writeDynamic = function (a, b, c) { null == c && a.writeTypecode(b, G.NULL); 'boolean' == typeof c ? (a.writeTypecode(b, G.BOOLEAN), a.writeBool(b + G.INTEGER.getSize(), c)) : 'number' == typeof c ? (a.writeTypecode(b, G.FLOAT), a.writeFloat(b + G.INTEGER.getSize(), c)) : 'number' == typeof c && (c | 0) === c ? (a.writeTypecode(b, G.INTEGER), a.writeInt(b + G.INTEGER.getSize(), c)) : 'string' == typeof c ? (a.writeTypecode(b, G.STRING), a.writeString(b + G.INTEGER.getSize(), c)) : (a.writeTypecode(b, c.getMbsType()), a.writeInt(b + G.INTEGER.getSize(), c.getAddress())); }; de.readDynamic = function (a, b) { var c = a.readTypecode(b); if (c == G.NULL) return null; if (c == G.BOOLEAN) return a.readBool(b + G.INTEGER.getSize()); if (c == G.FLOAT) return a.readFloat(b + G.INTEGER.getSize()); if (c == G.INTEGER) return a.readInt(b + G.INTEGER.getSize()); if (c == G.STRING) return a.readString(b + G.INTEGER.getSize()); if (c == G.LIST) return ( (b = a.readInt(b + G.INTEGER.getSize())), 0 != b ? ((c = a.readTypecode(b + G.INTEGER.getSize())), (a = c == G.BOOLEAN ? new Wj(a) : c == G.FLOAT ? new Xj(a) : c == G.INTEGER ? new Mf(a) : c == G.STRING ? new Yj(a) : c == G.DYNAMIC ? new vh(a) : new Ta(a, c, c.createInstance(a))), a.setAddress(b), a) : null ); c = c.createInstance(a); c.setAddress(a.readInt(b + G.INTEGER.getSize())); return c; }; de.createObjectPool = function (a) { return new Jc(); }; de.readDynamicUsingPool = function (a, b, c) { var e = a.readTypecode(b); if (e == G.NULL) return null; if (e == G.BOOLEAN) return a.readBool(b + G.INTEGER.getSize()); if (e == G.FLOAT) return a.readFloat(b + G.INTEGER.getSize()); if (e == G.INTEGER) return a.readInt(b + G.INTEGER.getSize()); if (e == G.STRING) return a.readString(b + G.INTEGER.getSize()); if (e == G.LIST) return ( (b = a.readInt(b + G.INTEGER.getSize())), 0 != b ? ((e = a.readTypecode(b + G.INTEGER.getSize())), (a = e == G.BOOLEAN ? new Wj(a) : e == G.FLOAT ? new Xj(a) : e == G.INTEGER ? new Mf(a) : e == G.STRING ? new Yj(a) : e == G.DYNAMIC ? new vh(a) : new Ta(a, e, e.createInstance(a))), a.setAddress(b), a) : null ); var f = c.h[e.__id__]; null == f && ((f = e.createInstance(a)), c.set(e, f)); f.setAddress(a.readInt(b + G.INTEGER.getSize())); return f; }; var Bm = function () {}; h['mbs.io.MbsIO'] = Bm; Bm.__name__ = 'mbs.io.MbsIO'; Bm.__isInterface__ = !0; Bm.prototype = { readBool: null, readFloat: null, readInt: null, readString: null, writeInt: null, writeBool: null, writeFloat: null, writeString: null, isReader: null, isWriter: null, allocate: null, writeTypecode: null, readTypecode: null, __class__: Bm }; var Sw = function () {}; h['mbs.io.MbsInternalVersion'] = Sw; Sw.__name__ = 'mbs.io.MbsInternalVersion'; var ke = function (a, b) { this.data = a; null != b && ((this.type = b), (this.elementSize = b.getSize())); }; h['mbs.io.MbsListBase'] = ke; ke.__name__ = 'mbs.io.MbsListBase'; ke.__super__ = mb; ke.prototype = r(mb.prototype, { type: null, elementAddress: null, elementSize: null, _length: null, setAddress: function (a) { mb.prototype.setAddress.call(this, a); this.data.isReader() && (0 != a ? ((this._length = this.data.readInt(a)), (this.type = this.data.readTypecode(a + G.INTEGER.getSize())), (this.elementSize = this.type.getSize()), (this.elementAddress = a + 2 * G.INTEGER.getSize())) : ((this.type = null), (this.elementAddress = this.elementSize = this._length = 0))); }, allocateNew: function (a) { if (this.data.isWriter()) return ( (this._length = a), (this.address = this.data.allocate(2 * G.INTEGER.getSize() + this.elementSize * a)), this.data.writeInt(this.address, a), this.data.writeTypecode(this.address + G.INTEGER.getSize(), this.type), (this.elementAddress = this.address + 2 * G.INTEGER.getSize()), this.address ); throw M.thrown("Can't allocate new objects when reading"); }, length: function () { return this._length; }, __class__: ke }); var Ta = function (a, b, c) { ke.call(this, a, b); this.obj = c; }; h['mbs.io.MbsList'] = Ta; Ta.__name__ = 'mbs.io.MbsList'; Ta.__super__ = ke; Ta.prototype = r(ke.prototype, { obj: null, getNextObject: function () { this.obj.setAddress(this.elementAddress); this.elementAddress += this.elementSize; return this.obj; }, __class__: Ta }); var Wj = function (a) { ke.call(this, a, G.BOOLEAN); }; h['mbs.io.MbsBoolList'] = Wj; Wj.__name__ = 'mbs.io.MbsBoolList'; Wj.__super__ = ke; Wj.prototype = r(ke.prototype, { readBool: function () { var a = this.data.readBool(this.elementAddress); this.elementAddress += this.elementSize; return a; }, writeBool: function (a) { this.data.writeBool(this.elementAddress, a); this.elementAddress += this.elementSize; }, __class__: Wj }); var Xj = function (a) { ke.call(this, a, G.FLOAT); }; h['mbs.io.MbsFloatList'] = Xj; Xj.__name__ = 'mbs.io.MbsFloatList'; Xj.__super__ = ke; Xj.prototype = r(ke.prototype, { readFloat: function () { var a = this.data.readFloat(this.elementAddress); this.elementAddress += this.elementSize; return a; }, writeFloat: function (a) { this.data.writeFloat(this.elementAddress, a); this.elementAddress += this.elementSize; }, __class__: Xj }); var Mf = function (a) { ke.call(this, a, G.INTEGER); }; h['mbs.io.MbsIntList'] = Mf; Mf.__name__ = 'mbs.io.MbsIntList'; Mf.__super__ = ke; Mf.prototype = r(ke.prototype, { readInt: function () { var a = this.data.readInt(this.elementAddress); this.elementAddress += this.elementSize; return a; }, writeInt: function (a) { this.data.writeInt(this.elementAddress, a); this.elementAddress += this.elementSize; }, __class__: Mf }); var Yj = function (a) { ke.call(this, a, G.STRING); }; h['mbs.io.MbsStringList'] = Yj; Yj.__name__ = 'mbs.io.MbsStringList'; Yj.__super__ = ke; Yj.prototype = r(ke.prototype, { readString: function () { var a = this.data.readString(this.elementAddress); this.elementAddress += this.elementSize; return a; }, writeString: function (a) { this.data.writeString(this.elementAddress, a); this.elementAddress += this.elementSize; }, __class__: Yj }); var vh = function (a) { ke.call(this, a, G.DYNAMIC); }; h['mbs.io.MbsDynamicList'] = vh; vh.__name__ = 'mbs.io.MbsDynamicList'; vh.__super__ = ke; vh.prototype = r(ke.prototype, { readObject: function () { var a = de.readDynamic(this.data, this.elementAddress); this.elementAddress += this.elementSize; return a; }, readObjectUsingPool: function (a) { a = de.readDynamicUsingPool(this.data, this.elementAddress, a); this.elementAddress += this.elementSize; return a; }, writeObject: function (a) { de.writeDynamic(this.data, this.elementAddress, a); this.elementAddress += this.elementSize; }, __class__: vh }); var Sg = function (a, b, c) { this.typedefSet = a; this.readStoredTypeInformation = b; this.initStringList = c; this.header = new vc(this); this.header.setAddress(0); }; h['mbs.io.MbsReader'] = Sg; Sg.__name__ = 'mbs.io.MbsReader'; Sg.__interfaces__ = [Bm]; Sg.prototype = { data: null, stringTable: null, typeTable: null, rootAddress: null, subTypeMap: null, initStringList: null, stringTableAddress: null, readStoredTypeInformation: null, typedefSet: null, header: null, canRead: function (a) { var b = null; if (null == a || a.length < this.header.getMbsType().getSize()) b = 'Missing header'; this.data = a; 2 != this.header.getVersion() && (b = 'Mismatched version -- ' + this.header.getVersion()); this.header.getTypeTableHash() != this.typedefSet.getHash() && (b = 'Mismatched typetable'); this.readStoredTypeInformation && 0 == this.header.getTypeTablePointer() && (b = 'Missing required type information'); this.data = null; return b; }, readData: function (a) { this.data = a; if (2 != this.header.getVersion()) throw M.thrown("Can't read mbs. Wrong version."); if (this.header.getTypeTableHash() != this.typedefSet.getHash()) throw M.thrown("Can't read mbs. Wrong typedef info."); var b = G.INTEGER.getSize(); this.stringTableAddress = this.header.getStringTablePointer(); var c = Array(this.readInt(this.stringTableAddress)); this.stringTable = c; if (this.initStringList) { var e = this.stringTableAddress + b; for (var f = 0, d = this.stringTable.length; f < d; ) { var p = f++, l = this.readInt(e), k = this.readInt(l); this.stringTable[p] = a.getString(l + 4, k); e += b; } } if (this.readStoredTypeInformation) { a = new Oc(this); e = this.header.getTypeTablePointer(); this.typeTable = c = Array(this.readInt(e)); e += b; this.subTypeMap = new qa(); l = Object.create(null); p = G.BOOLEAN; l[p.getName()] = p; p = G.INTEGER; l[p.getName()] = p; p = G.FLOAT; l[p.getName()] = p; p = G.STRING; l[p.getName()] = p; p = G.DYNAMIC; l[p.getName()] = p; p = G.LIST; l[p.getName()] = p; f = 0; for (d = this.typeTable.length; f < d; ) { p = f++; a.setAddress(this.readInt(e)); e += b; k = a.getName(); var n = a.getParent(), h = a.getSize(); c = null; var m = a.getFieldsPointer(); if (0 != m) { var t = this.readInt(m); m += b; c = Array(t); for (var u = new $c(this), q = 0; q < t; ) { var r = q++; u.setAddress(m); m += $c.MBS_FIELD_INFO.getSize(); var w = u.getName(), z = u.getType(), E = u.getFieldAddress(); c[r] = new Am(w, z, E); } } Object.prototype.hasOwnProperty.call(l, k) ? (this.typeTable[p] = l[k]) : (this.typeTable[p] = new Oi(k, n, c, h)); this.subTypeMap.h[k] = this.typeTable[p]; } f = 0; for (d = this.typeTable.length; f < d; ) (p = f++), this.typeTable[p] instanceof Oi && x.__cast(this.typeTable[p], Oi).mapTypes(this.subTypeMap); } else for ( this.typeTable = c = Array(this.typedefSet.getTypes().length), f = 0, d = this.typedefSet.getTypes(); f < d.length; ) (p = d[f]), ++f, (this.typeTable[this.typedefSet.getTypecode(p)] = p); }, reconfigureComposition: function (a) { var b = this.subTypeMap, c = a.getName(); if (Object.prototype.hasOwnProperty.call(b.h, c)) { b = this.subTypeMap; c = a.getName(); var e = b.h[c]; b = Object.create(null); c = 0; for (e = e.getFields(); c < e.length; ) { var f = e[c]; ++c; b[f.getName()] = f; } c = 0; for (e = a.getFields(); c < e.length; ) (f = e[c]), ++c, (f.address = b[f.getName()].address); } }, getRoot: function () { return this.header.getRoot(); }, readInt: function (a) { return ( (this.data.b[a] << 24) | (this.data.b[a + 1] << 16) | (this.data.b[a + 2] << 8) | this.data.b[a + 3] ); }, readBool: function (a) { return 0 != this.data.b[a]; }, readFloat: function (a) { return Zd.i32ToFloat(this.readInt(a)); }, readString: function (a) { if (this.initStringList) return this.stringTable[this.readInt(a)]; a = this.readInt(a); if (null == this.stringTable[a]) { var b = this.readInt(this.stringTableAddress + G.INTEGER.getSize() * (a + 1)), c = this.readInt(b); this.stringTable[a] = this.data.getString(b + 4, c); } return this.stringTable[a]; }, readTypecode: function (a) { return this.typeTable[this.readInt(a)]; }, getTypeTable: function () { return this.typeTable; }, writeInt: function (a, b) { throw M.thrown("Can't write on an MBS reader"); }, writeBool: function (a, b) { throw M.thrown("Can't write on an MBS reader"); }, writeFloat: function (a, b) { throw M.thrown("Can't write on an MBS reader"); }, writeString: function (a, b) { throw M.thrown("Can't write on an MBS reader"); }, isReader: function () { return !0; }, isWriter: function () { return !1; }, allocate: function (a) { throw M.thrown("Can't allocate on an MBS reader"); }, writeTypecode: function (a, b) { throw M.thrown("Can't write on an MBS reader"); }, __class__: Sg }; var Ma = function () {}; h['openfl.Lib'] = Ma; Ma.__name__ = 'openfl.Lib'; Ma.__properties__ = { get_current: 'get_current', get_application: 'get_application' }; Ma.as = function (a, b) { return x.__instanceof(a, b) ? a : null; }; Ma.attach = function (a) { return new pg(); }; Ma.clearInterval = function (a) { Ma.__timers.h.hasOwnProperty(a) && (Ma.__timers.h[a].stop(), Ma.__timers.remove(a)); }; Ma.clearTimeout = function (a) { Ma.__timers.h.hasOwnProperty(a) && (Ma.__timers.h[a].stop(), Ma.__timers.remove(a)); }; Ma.getDefinitionByName = function (a) { return null == a ? null : h[a]; }; Ma.getQualifiedClassName = function (a) { if (null == a) return null; var b = x.__instanceof(a, ew) ? a : x.getClass(a); return null == b ? 'boolean' == typeof a || a == Ob ? 'Bool' : ('number' == typeof a && (a | 0) === a) || a == Ab ? 'Int' : 'number' == typeof a || a == Nb ? 'Float' : null : b.__name__; }; Ma.getQualifiedSuperclassName = function (a) { if (null == a) return null; a = x.__instanceof(a, ew) ? a : x.getClass(a); if (null == a) return null; a = a.__super__; return null == a ? null : a.__name__; }; Ma.getTimer = function () { return Wa.getTimer(); }; Ma.getURL = function (a, b) { Ma.navigateToURL(a, b); }; Ma.navigateToURL = function (a, b) { null == b && (b = '_blank'); var c = a.url; if (ma.typeof(a.data) == sb.TObject) { for (var e = '', f = Z.fields(a.data), d = 0; d < f.length; ) { var p = f[d]; ++d; 0 < e.length && (e += '&'); var l = encodeURIComponent(p) + '='; p = B.string(Z.field(a.data, p)); e += l + encodeURIComponent(p); } c = -1 < c.indexOf('?') ? c + ('&' + e) : c + ('?' + e); } Wa.openURL(c, b); }; Ma.notImplemented = function (a) { var b = a.className + '.' + a.methodName; Object.prototype.hasOwnProperty.call(Ma.__sentWarnings.h, b) || ((Ma.__sentWarnings.h[b] = !0), Xa.warn(a.methodName + ' is not implemented', a)); }; Ma.preventDefaultTouchMove = function () { window.document.addEventListener( 'touchmove', function (a) { a.preventDefault(); }, !1 ); }; Ma.sendToURL = function (a) { new sh().load(a); }; Ma.setInterval = function (a, b, c) { var e = ++Ma.__lastTimerID; b = new Qe(b); Ma.__timers.h[e] = b; b.run = function () { a.apply(a, null == c ? [] : c); }; return e; }; Ma.setTimeout = function (a, b, c) { var e = ++Ma.__lastTimerID, f = Ma.__timers; b = Qe.delay(function () { a.apply(a, null == c ? [] : c); }, b); f.h[e] = b; return e; }; Ma.trace = function (a) { jh.trace(a, { fileName: 'openfl/Lib.hx', lineNumber: 565, className: 'openfl.Lib', methodName: 'trace' }); }; Ma.get_application = function () { return Dc.application; }; Ma.get_current = function () { null == Dc.current && (Dc.current = new pg()); return Dc.current; }; var ah = function () {}; h['openfl._Vector.IVector'] = ah; ah.__name__ = 'openfl._Vector.IVector'; ah.__isInterface__ = !0; ah.prototype = { get_length: null, set_length: null, fixed: null, concat: null, copy: null, filter: null, get: null, indexOf: null, insertAt: null, iterator: null, join: null, lastIndexOf: null, pop: null, push: null, removeAt: null, reverse: null, set: null, shift: null, slice: null, sort: null, splice: null, toString: null, unshift: null, __class__: ah, __properties__: { set_length: 'set_length', get_length: 'get_length' } }; var Df = function (a, b, c) { null == b && (b = !1); null == a && (a = 0); null == c && (c = []); this.__array = c; 0 < a && this.set_length(a); this.fixed = b; }; h['openfl._Vector.BoolVector'] = Df; Df.__name__ = 'openfl._Vector.BoolVector'; Df.__interfaces__ = [ah]; Df.prototype = { fixed: null, __array: null, concat: function (a) { return null == a ? new Df(0, !1, this.__array.slice()) : 0 < a.__array.length ? new Df(0, !1, this.__array.concat(a.__array)) : new Df(0, !1, this.__array.slice()); }, copy: function () { return new Df(0, this.fixed, this.__array.slice()); }, filter: function (a) { for (var b = this.fixed, c = [], e = 0, f = this.__array; e < f.length; ) { var d = f[e]; ++e; a(d) && c.push(d); } return new Df(0, b, c); }, get: function (a) { return a >= this.__array.length ? !1 : this.__array[a]; }, indexOf: function (a, b) { null == b && (b = 0); for (var c = this.__array.length; b < c; ) { var e = b++; if (this.__array[e] == a) return e; } return -1; }, insertAt: function (a, b) { (!this.fixed || a < this.__array.length) && this.__array.splice(a, 0, b); }, iterator: function () { return new Me(this.__array); }, join: function (a) { null == a && (a = ','); return this.__array.join(a); }, lastIndexOf: function (a, b) { for (b = null == b || b >= this.__array.length ? this.__array.length - 1 : b; 0 <= b; ) { if (this.__array[b] == a) return b; --b; } return -1; }, pop: function () { return this.fixed ? null : this.__array.pop(); }, push: function (a) { return this.fixed ? this.__array.length : this.__array.push(a); }, removeAt: function (a) { return !this.fixed || a < this.__array.length ? this.__array.splice(a, 1)[0] : !1; }, reverse: function () { this.__array.reverse(); return this; }, set: function (a, b) { return !this.fixed || a < this.__array.length ? (this.__array[a] = b) : b; }, shift: function () { return this.fixed ? null : this.__array.shift(); }, slice: function (a, b) { null == a && (a = 0); null == b && (b = 16777215); return new Df(0, !1, this.__array.slice(a, b)); }, sort: function (a) { this.__array.sort(a); }, splice: function (a, b) { return new Df(0, !1, this.__array.splice(a, b)); }, toJSON: function () { return this.__array; }, toString: function () { return null != this.__array ? this.__array.toString() : null; }, unshift: function (a) { this.fixed || this.__array.unshift(a); }, get_length: function () { return this.__array.length; }, set_length: function (a) { if (!this.fixed) { var b = this.__array.length; 0 > a && (a = 0); if (a > b) for (; b < a; ) { var c = b++; this.__array[c] = !1; } else for (; this.__array.length > a; ) this.__array.pop(); } return this.__array.length; }, __class__: Df, __properties__: { set_length: 'set_length', get_length: 'get_length' } }; var Ff = function (a, b, c, e) { null == e && (e = !1); null == b && (b = !1); null == a && (a = 0); if (e) { if (((this.__array = []), null != c)) { e = 0; for (var f = c.length; e < f; ) { var d = e++; this.__array[d] = c[d]; } } } else null == c && (c = []), (this.__array = c); 0 < a && this.set_length(a); this.fixed = b; }; h['openfl._Vector.FloatVector'] = Ff; Ff.__name__ = 'openfl._Vector.FloatVector'; Ff.__interfaces__ = [ah]; Ff.prototype = { fixed: null, __array: null, concat: function (a) { return null == a ? new Ff(0, !1, this.__array.slice()) : 0 < a.__array.length ? new Ff(0, !1, this.__array.concat(a.__array)) : new Ff(0, !1, this.__array.slice()); }, copy: function () { return new Ff(0, this.fixed, this.__array.slice()); }, filter: function (a) { for (var b = this.fixed, c = [], e = 0, f = this.__array; e < f.length; ) { var d = f[e]; ++e; a(d) && c.push(d); } return new Ff(0, b, c); }, get: function (a) { return this.__array[a]; }, indexOf: function (a, b) { null == b && (b = 0); for (var c = this.__array.length; b < c; ) { var e = b++; if (this.__array[e] == a) return e; } return -1; }, insertAt: function (a, b) { (!this.fixed || a < this.__array.length) && this.__array.splice(a, 0, b); }, iterator: function () { return new Me(this.__array); }, join: function (a) { null == a && (a = ','); return this.__array.join(a); }, lastIndexOf: function (a, b) { for (b = null == b || b >= this.__array.length ? this.__array.length - 1 : b; 0 <= b; ) { if (this.__array[b] == a) return b; --b; } return -1; }, pop: function () { return this.fixed ? null : this.__array.pop(); }, push: function (a) { return this.fixed ? this.__array.length : this.__array.push(a); }, removeAt: function (a) { return !this.fixed || a < this.__array.length ? this.__array.splice(a, 1)[0] : 0; }, reverse: function () { this.__array.reverse(); return this; }, set: function (a, b) { return !this.fixed || a < this.__array.length ? (this.__array[a] = b) : b; }, shift: function () { return this.fixed ? null : this.__array.shift(); }, slice: function (a, b) { null == a && (a = 0); null == b && (b = 16777215); return new Ff(0, !1, this.__array.slice(a, b)); }, sort: function (a) { this.__array.sort(a); }, splice: function (a, b) { return new Ff(0, !1, this.__array.splice(a, b)); }, toJSON: function () { return this.__array; }, toString: function () { return null != this.__array ? this.__array.toString() : null; }, unshift: function (a) { this.fixed || this.__array.unshift(a); }, get_length: function () { return this.__array.length; }, set_length: function (a) { if (a != this.__array.length && !this.fixed) { var b = this.__array.length; 0 > a && (a = 0); if (a > b) for (; b < a; ) { var c = b++; this.__array[c] = 0; } else for (; this.__array.length > a; ) this.__array.pop(); } return this.__array.length; }, __class__: Ff, __properties__: { set_length: 'set_length', get_length: 'get_length' } }; var Gf = function (a, b, c) { null == b && (b = !1); null == a && (a = 0); null == c && (c = []); this.__array = c; 0 < a && this.set_length(a); this.fixed = b; }; h['openfl._Vector.FunctionVector'] = Gf; Gf.__name__ = 'openfl._Vector.FunctionVector'; Gf.__interfaces__ = [ah]; Gf.prototype = { fixed: null, __array: null, concat: function (a) { return null == a ? new Gf(0, !1, this.__array.slice()) : 0 < a.__array.length ? new Gf(0, !1, this.__array.concat(a.__array)) : new Gf(0, !1, this.__array.slice()); }, copy: function () { return new Gf(0, this.fixed, this.__array.slice()); }, filter: function (a) { for (var b = this.fixed, c = [], e = 0, f = this.__array; e < f.length; ) { var d = f[e]; ++e; a(d) && c.push(d); } return new Gf(0, b, c); }, get: function (a) { return a >= this.__array.length ? null : this.__array[a]; }, indexOf: function (a, b) { null == b && (b = 0); for (var c = this.__array.length; b < c; ) { var e = b++; if (Z.compareMethods(this.__array[e], a)) return e; } return -1; }, insertAt: function (a, b) { (!this.fixed || a < this.__array.length) && this.__array.splice(a, 0, b); }, iterator: function () { return new Me(this.__array); }, join: function (a) { null == a && (a = ','); return this.__array.join(a); }, lastIndexOf: function (a, b) { for (b = null == b || b >= this.__array.length ? this.__array.length - 1 : b; 0 <= b; ) { if (Z.compareMethods(this.__array[b], a)) return b; --b; } return -1; }, pop: function () { return this.fixed ? null : this.__array.pop(); }, push: function (a) { return this.fixed ? this.__array.length : this.__array.push(a); }, removeAt: function (a) { return !this.fixed || a < this.__array.length ? this.__array.splice(a, 1)[0] : null; }, reverse: function () { this.__array.reverse(); return this; }, set: function (a, b) { return !this.fixed || a < this.__array.length ? (this.__array[a] = b) : b; }, shift: function () { return this.fixed ? null : this.__array.shift(); }, slice: function (a, b) { null == a && (a = 0); null == b && (b = 16777215); return new Gf(0, !1, this.__array.slice(a, b)); }, sort: function (a) { this.__array.sort(a); }, splice: function (a, b) { return new Gf(0, !1, this.__array.splice(a, b)); }, toJSON: function () { return this.__array; }, toString: function () { return null != this.__array ? this.__array.toString() : null; }, unshift: function (a) { this.fixed || this.__array.unshift(a); }, get_length: function () { return this.__array.length; }, set_length: function (a) { if (!this.fixed) { var b = this.__array.length; 0 > a && (a = 0); if (a > b) for (; b < a; ) { var c = b++; this.__array[c] = null; } else for (; this.__array.length > a; ) this.__array.pop(); } return this.__array.length; }, __class__: Gf, __properties__: { set_length: 'set_length', get_length: 'get_length' } }; var Ef = function (a, b, c) { null == b && (b = !1); null == a && (a = 0); null == c && (c = []); this.__array = c; 0 < a && this.set_length(a); this.fixed = b; }; h['openfl._Vector.IntVector'] = Ef; Ef.__name__ = 'openfl._Vector.IntVector'; Ef.__interfaces__ = [ah]; Ef.prototype = { fixed: null, __array: null, concat: function (a) { return null == a ? new Ef(0, !1, this.__array.slice()) : 0 < a.__array.length ? new Ef(0, !1, this.__array.concat(a.__array)) : new Ef(0, !1, this.__array.slice()); }, copy: function () { return new Ef(0, this.fixed, this.__array.slice()); }, filter: function (a) { for (var b = this.fixed, c = [], e = 0, f = this.__array; e < f.length; ) { var d = f[e]; ++e; a(d) && c.push(d); } return new Ef(0, b, c); }, get: function (a) { return this.__array[a]; }, indexOf: function (a, b) { null == b && (b = 0); for (var c = this.__array.length; b < c; ) { var e = b++; if (this.__array[e] == a) return e; } return -1; }, insertAt: function (a, b) { (!this.fixed || a < this.__array.length) && this.__array.splice(a, 0, b); }, iterator: function () { return new Me(this.__array); }, join: function (a) { null == a && (a = ','); return this.__array.join(a); }, lastIndexOf: function (a, b) { for (b = null == b || b >= this.__array.length ? this.__array.length - 1 : b; 0 <= b; ) { if (this.__array[b] == a) return b; --b; } return -1; }, pop: function () { return this.fixed ? null : this.__array.pop(); }, push: function (a) { return this.fixed ? this.__array.length : this.__array.push(a); }, removeAt: function (a) { return !this.fixed || a < this.__array.length ? this.__array.splice(a, 1)[0] : 0; }, reverse: function () { this.__array.reverse(); return this; }, set: function (a, b) { return !this.fixed || a < this.__array.length ? (this.__array[a] = b) : b; }, shift: function () { return this.fixed ? null : this.__array.shift(); }, slice: function (a, b) { null == a && (a = 0); null == b && (b = 16777215); return new Ef(0, !1, this.__array.slice(a, b)); }, sort: function (a) { this.__array.sort(a); }, splice: function (a, b) { return new Ef(0, !1, this.__array.splice(a, b)); }, toJSON: function () { return this.__array; }, toString: function () { return null != this.__array ? this.__array.toString() : null; }, unshift: function (a) { this.fixed || this.__array.unshift(a); }, get_length: function () { return this.__array.length; }, set_length: function (a) { if (!this.fixed) { var b = this.__array.length; 0 > a && (a = 0); if (a > b) for (; b < a; ) { var c = b++; this.__array[c] = 0; } else for (; this.__array.length > a; ) this.__array.pop(); } return this.__array.length; }, __class__: Ef, __properties__: { set_length: 'set_length', get_length: 'get_length' } }; var rf = function (a, b, c, e) { null == e && (e = !1); null == b && (b = !1); null == a && (a = 0); if (e) { if (((this.__array = []), null != c)) { e = 0; for (var f = c.length; e < f; ) { var d = e++; this.__array[d] = c[d]; } } } else null == c && (c = []), (this.__array = c); 0 < a && this.set_length(a); this.fixed = b; }; h['openfl._Vector.ObjectVector'] = rf; rf.__name__ = 'openfl._Vector.ObjectVector'; rf.__interfaces__ = [ah]; rf.prototype = { fixed: null, __array: null, concat: function (a) { return null == a ? new rf(0, !1, this.__array.slice()) : 0 < a.__array.length ? new rf(0, !1, this.__array.concat(a.__array)) : new rf(0, !1, this.__array.slice()); }, copy: function () { return new rf(0, this.fixed, this.__array.slice()); }, filter: function (a) { for (var b = this.fixed, c = [], e = 0, f = this.__array; e < f.length; ) { var d = f[e]; ++e; a(d) && c.push(d); } return new rf(0, b, c); }, get: function (a) { return this.__array[a]; }, indexOf: function (a, b) { null == b && (b = 0); for (var c = this.__array.length; b < c; ) { var e = b++; if (this.__array[e] == a) return e; } return -1; }, insertAt: function (a, b) { (!this.fixed || a < this.__array.length) && this.__array.splice(a, 0, b); }, iterator: function () { return new Me(this.__array); }, join: function (a) { null == a && (a = ','); return this.__array.join(a); }, lastIndexOf: function (a, b) { for (b = null == b || b >= this.__array.length ? this.__array.length - 1 : b; 0 <= b; ) { if (this.__array[b] == a) return b; --b; } return -1; }, pop: function () { return this.fixed ? null : this.__array.pop(); }, push: function (a) { return this.fixed ? this.__array.length : this.__array.push(a); }, removeAt: function (a) { return !this.fixed || a < this.__array.length ? this.__array.splice(a, 1)[0] : null; }, reverse: function () { this.__array.reverse(); return this; }, set: function (a, b) { return !this.fixed || a < this.__array.length ? (this.__array[a] = b) : b; }, shift: function () { return this.fixed ? null : this.__array.shift(); }, slice: function (a, b) { null == a && (a = 0); null == b && (b = 16777215); return new rf(0, !1, this.__array.slice(a, b)); }, sort: function (a) { this.__array.sort(a); }, splice: function (a, b) { return new rf(0, !1, this.__array.splice(a, b)); }, toJSON: function () { return this.__array; }, toString: function () { return null != this.__array ? this.__array.toString() : null; }, unshift: function (a) { this.fixed || this.__array.unshift(a); }, get_length: function () { return this.__array.length; }, set_length: function (a) { if (!this.fixed) { var b = this.__array.length; 0 > a && (a = 0); if (a > b) for (; b < a; ) b++, this.__array.push(null); else for (; this.__array.length > a; ) this.__array.pop(); } return this.__array.length; }, __class__: rf, __properties__: { set_length: 'set_length', get_length: 'get_length' } }; var lj = function () { vd.call(this); null == Dc.application && (Dc.application = this); null == Dc.current && (Dc.current = new pg()); Dc.current.__loaderInfo = fg.create(null); Dc.current.__loaderInfo.content = Dc.current; }; h['openfl.display.Application'] = lj; lj.__name__ = 'openfl.display.Application'; lj.__super__ = vd; lj.prototype = r(vd.prototype, { createWindow: function (a) { var b = new Zj(this, a); this.__windows.push(b); this.__windowByID.h[b.id] = b; var c = q(this, this.__onWindowClose); b.onClose.add( function () { c(b); }, !1, -1e4 ); null == this.__window && ((this.__window = b), b.onActivate.add(q(this, this.onWindowActivate)), b.onRenderContextLost.add(q(this, this.onRenderContextLost)), b.onRenderContextRestored.add(q(this, this.onRenderContextRestored)), b.onDeactivate.add(q(this, this.onWindowDeactivate)), b.onDropFile.add(q(this, this.onWindowDropFile)), b.onEnter.add(q(this, this.onWindowEnter)), b.onExpose.add(q(this, this.onWindowExpose)), b.onFocusIn.add(q(this, this.onWindowFocusIn)), b.onFocusOut.add(q(this, this.onWindowFocusOut)), b.onFullscreen.add(q(this, this.onWindowFullscreen)), b.onKeyDown.add(q(this, this.onKeyDown)), b.onKeyUp.add(q(this, this.onKeyUp)), b.onLeave.add(q(this, this.onWindowLeave)), b.onMinimize.add(q(this, this.onWindowMinimize)), b.onMouseDown.add(q(this, this.onMouseDown)), b.onMouseMove.add(q(this, this.onMouseMove)), b.onMouseMoveRelative.add(q(this, this.onMouseMoveRelative)), b.onMouseUp.add(q(this, this.onMouseUp)), b.onMouseWheel.add(q(this, this.onMouseWheel)), b.onMove.add(q(this, this.onWindowMove)), b.onRender.add(q(this, this.render)), b.onResize.add(q(this, this.onWindowResize)), b.onRestore.add(q(this, this.onWindowRestore)), b.onTextEdit.add(q(this, this.onTextEdit)), b.onTextInput.add(q(this, this.onTextInput)), this.onWindowCreate()); this.onCreateWindow.dispatch(b); return b; }, __class__: lj }); var ja = function (a, b, c, e) { null == e && (e = -1); null == c && (c = !0); this.__drawableType = 0; this.transparent = c; null == a && (a = 0); null == b && (b = 0); 0 > a && (a = 0); 0 > b && (b = 0); this.width = a; this.height = b; this.rect = new fa(0, 0, a, b); this.__textureWidth = a; this.__textureHeight = b; 0 < a && 0 < b && (c ? 0 == (e & -16777216) && (e = 0) : (e = -16777216 | (e & 16777215)), (this.image = new Fb(null, 0, 0, a, b, (e << 8) | ((e >>> 24) & 255))), this.image.set_transparent(c), (this.readable = this.__isValid = !0)); this.__renderTransform = new Ia(); this.__worldAlpha = 1; this.__worldTransform = new Ia(); this.__worldColorTransform = new Kc(); this.__renderable = !0; }; h['openfl.display.BitmapData'] = ja; ja.__name__ = 'openfl.display.BitmapData'; ja.__interfaces__ = [oe]; ja.fromBase64 = function (a, b) { return null; }; ja.fromBytes = function (a, b) { return null; }; ja.fromCanvas = function (a, b) { null == b && (b = !0); if (null == a) return null; var c = new ja(0, 0, b, 0); c.__fromImage(Fb.fromCanvas(a)); c.image.set_transparent(b); return c; }; ja.fromFile = function (a) { return null; }; ja.fromImage = function (a, b) { null == b && (b = !0); if (null == a || null == a.buffer) return null; var c = new ja(0, 0, b, 0); c.__fromImage(a); c.image.set_transparent(b); return null != c.image ? c : null; }; ja.fromTexture = function (a) { if (null == a) return null; var b = new ja(a.__width, a.__height, !0, 0); b.readable = !1; b.__texture = a; b.__textureContext = a.__textureContext; b.image = null; return b; }; ja.loadFromBase64 = function (a, b) { return Fb.loadFromBase64(a, b).then(function (a) { return kb.withValue(ja.fromImage(a)); }); }; ja.loadFromBytes = function (a, b) { return Fb.loadFromBytes(zb.toBytes(a)).then(function (a) { a = ja.fromImage(a); null != b && a.__applyAlpha(b); return kb.withValue(a); }); }; ja.loadFromFile = function (a) { return Fb.loadFromFile(a).then(function (a) { return kb.withValue(ja.fromImage(a)); }); }; ja.prototype = { height: null, image: null, readable: null, rect: null, transparent: null, width: null, __blendMode: null, __drawableType: null, __framebuffer: null, __framebufferContext: null, __indexBuffer: null, __indexBufferContext: null, __indexBufferData: null, __indexBufferGrid: null, __isMask: null, __isValid: null, __mask: null, __renderable: null, __renderTransform: null, __scrollRect: null, __stencilBuffer: null, __surface: null, __texture: null, __textureContext: null, __textureHeight: null, __textureVersion: null, __textureWidth: null, __transform: null, __uvRect: null, __vertexBuffer: null, __vertexBufferContext: null, __vertexBufferData: null, __vertexBufferGrid: null, __vertexBufferHeight: null, __vertexBufferScaleX: null, __vertexBufferScaleY: null, __vertexBufferWidth: null, __worldAlpha: null, __worldColorTransform: null, __worldTransform: null, applyFilter: function (a, b, c, e) { if (this.readable && null != a && a.readable) { a = e.__needSecondBitmapData; var f = e.__preserveObject, d = null; var p = a ? new ja(this.width, this.height, !0, 0) : this; f && (d = new ja(this.width, this.height, !0, 0)); e.__preserveObject && d.copyPixels(this, this.rect, c); b = e.__applyFilter(p, this, b, c); e.__preserveObject && b.draw(d, null, null); a && b == p && ((p.image.version = this.image.version), (this.image = p.image)); this.image.dirty = !0; this.image.version++; } }, clone: function () { if (this.__isValid) if (this.readable || null != this.image) var a = ja.fromImage(this.image.clone(), this.transparent); else (a = new ja(0, 0, this.transparent, 0)), (a.width = this.width), (a.height = this.height), (a.__textureWidth = this.__textureWidth), (a.__textureHeight = this.__textureHeight), a.rect.copyFrom(this.rect), (a.__framebuffer = this.__framebuffer), (a.__framebufferContext = this.__framebufferContext), (a.__texture = this.__texture), (a.__textureContext = this.__textureContext), (a.__isValid = !0); else a = new ja(this.width, this.height, this.transparent, 0); a.__worldTransform.copyFrom(this.__worldTransform); a.__renderTransform.copyFrom(this.__renderTransform); return a; }, colorTransform: function (a, b) { this.readable && this.image.colorTransform(a.__toLimeRectangle(), b.__toLimeColorMatrix()); }, compare: function (a) { if (a == this) return 0; if (null == a) return -1; if (0 == this.readable || 0 == a.readable) return -2; if (this.width != a.width) return -3; if (this.height != a.height) return -4; if ( null != this.image && null != a.image && this.image.get_format() == a.image.get_format() ) { for ( var b = this.image.get_data(), c = a.image.get_data(), e = !0, f = 0, d = b.length; f < d; ) { var p = f++; if (b[p] != c[p]) { e = !1; break; } } if (e) return 0; } b = null; f = 0; for (d = this.height; f < d; ) { p = f++; for (var l = 0, k = this.width; l < k; ) { var n = l++; c = !1; var h = this.getPixel32(n, p); var m = a.getPixel32(n, p); e = 0; if (h != m) { var t = ((h >>> 16) & 255) - ((m >>> 16) & 255); var u = ((h >>> 8) & 255) - ((m >>> 8) & 255); var q = (h & 255) - (m & 255); 0 > t && (t *= -1); 0 > u && (u *= -1); 0 > q && (q *= -1); 0 == t && 0 == u && 0 == q ? ((h = ((h >>> 24) & 255) - ((m >>> 24) & 255)), 0 != h && ((e = (((e >>> 24) & 255) << 24) | 16711680 | (((e >>> 8) & 255) << 8) | (e & 255)), (e = (((e >>> 24) & 255) << 24) | (((e >>> 16) & 255) << 16) | 65280 | (e & 255)), (e = (((e >>> 24) & 255) << 24) | (((e >>> 16) & 255) << 16) | (((e >>> 8) & 255) << 8) | 255), (e = ((h & 255) << 24) | (((e >>> 16) & 255) << 16) | (((e >>> 8) & 255) << 8) | (e & 255)), (c = !0))) : ((e = (((e >>> 24) & 255) << 24) | ((t & 255) << 16) | (((e >>> 8) & 255) << 8) | (e & 255)), (e = (((e >>> 24) & 255) << 24) | (((e >>> 16) & 255) << 16) | ((u & 255) << 8) | (e & 255)), (e = (((e >>> 24) & 255) << 24) | (((e >>> 16) & 255) << 16) | (((e >>> 8) & 255) << 8) | (q & 255)), (e = -16777216 | (((e >>> 16) & 255) << 16) | (((e >>> 8) & 255) << 8) | (e & 255)), (c = !0)); } c && (null == b && (b = new ja(this.width, this.height, this.transparent || a.transparent, 0)), b.setPixel32(n, p, e)); } } return null == b ? 0 : b; }, copyChannel: function (a, b, c, e, f) { if (this.readable) { switch (e) { case 1: e = nf.RED; break; case 2: e = nf.GREEN; break; case 4: e = nf.BLUE; break; case 8: e = nf.ALPHA; break; default: return; } switch (f) { case 1: f = nf.RED; break; case 2: f = nf.GREEN; break; case 4: f = nf.BLUE; break; case 8: f = nf.ALPHA; break; default: return; } this.image.copyChannel(a.image, b.__toLimeRectangle(), c.__toLimeVector2(), e, f); } }, copyPixels: function (a, b, c, e, f, d) { null == d && (d = !1); this.readable && null != a && (null != f && ((ja.__tempVector.x = f.x), (ja.__tempVector.y = f.y)), this.image.copyPixels( a.image, b.__toLimeRectangle(), c.__toLimeVector2(), null != e ? e.image : null, null != f ? ja.__tempVector : null, d )); }, dispose: function () { this.image = null; this.height = this.width = 0; this.rect = null; this.readable = this.__isValid = !1; this.__textureContext = this.__texture = this.__framebufferContext = this.__framebuffer = this.__vertexBuffer = this.__surface = null; }, disposeImage: function () { this.readable = !1; }, draw: function (a, b, c, e, f, d) { null == d && (d = !1); if (null != a) { a.__update(!1, !0); var g = Ia.__pool.get(); g.copyFrom(a.__renderTransform); g.invert(); null != b && g.concat(b); b = null; null != f && ((b = Ia.__pool.get()), b.copyFrom(g), b.invert()); var l = new Kc(); l.__copyFrom(a.__worldColorTransform); l.__invert(); if (this.readable || null == Ma.get_current().stage.context3D) { if (null != c) { var k = fa.__pool.get(), n = Ia.__pool.get(); a.__getBounds(k, n); var h = Math.ceil(k.width), m = Math.ceil(k.height); n.tx = -k.x; n.ty = -k.y; h = new ja(h, m, !0, 0); h.draw(a, n); h.colorTransform(h.rect, c); h.__renderTransform.identity(); h.__renderTransform.tx = k.x; h.__renderTransform.ty = k.y; h.__renderTransform.concat(a.__renderTransform); h.__worldAlpha = a.__worldAlpha; h.__worldColorTransform.__copyFrom(a.__worldColorTransform); a = h; fa.__pool.release(k); Ia.__pool.release(n); } Aa.convertToCanvas(this.image); c = new Cg(this.image.buffer.__srcContext); c.__allowSmoothing = d; c.__overrideBlendMode = e; c.__worldTransform = g; c.__worldAlpha = 1 / a.__worldAlpha; c.__worldColorTransform = l; null != f && c.__pushMaskRect(f, b); this.__drawCanvas(a, c); } else null == this.__textureContext && (this.__textureContext = vd.current.__window.context), null != c && l.__combine(c), (c = new Hb(Ma.get_current().stage.context3D, this)), (c.__allowSmoothing = d), (c.__overrideBlendMode = e), (c.__worldTransform = g), (c.__worldAlpha = 1 / a.__worldAlpha), (c.__worldColorTransform = l), c.__resize(this.width, this.height), null != f && c.__pushMaskRect(f, b), this.__drawGL(a, c); null != f && (c.__popMaskRect(), Ia.__pool.release(b)); Ia.__pool.release(g); } }, drawWithQuality: function (a, b, c, e, f, d, p) { null == d && (d = !1); this.draw(a, b, c, e, f, 2 != p && d); }, encode: function (a, b, c) { if (!this.readable || null == a) return null; null == c && (c = new pc(0)); var e = this.image; if (!a.equals(this.rect)) { var f = Ia.__pool.get(); f.tx = Math.round(-a.x); f.ty = Math.round(-a.y); a = new ja(Math.ceil(a.width), Math.ceil(a.height), !0, 0); a.draw(this, f); e = a.image; Ia.__pool.release(f); } return b instanceof Vo ? (c.writeBytes(zb.fromBytes(e.encode(tm.PNG)), 0, 0), c) : b instanceof Cm ? (c.writeBytes(zb.fromBytes(e.encode(tm.JPEG, x.__cast(b, Cm).quality)), 0, 0), c) : null; }, fillRect: function (a, b) { this.__fillRect(a, b, !0); }, floodFill: function (a, b, c) { this.readable && this.image.floodFill(a, b, c, 1); }, generateFilterRect: function (a, b) { return a.clone(); }, getIndexBuffer: function (a, b) { if ( null == this.__indexBuffer || this.__indexBufferContext != a.__context || (null != b && null == this.__indexBufferGrid) || (null != this.__indexBufferGrid && !this.__indexBufferGrid.equals(b)) ) { this.__indexBufferContext = a.__context; this.__indexBuffer = null; if (null != b) { null == this.__indexBufferGrid && (this.__indexBufferGrid = new fa()); this.__indexBufferGrid.copyFrom(b); var c = b.width; b = b.height; 0 != c && 0 != b ? ((this.__indexBufferData = c = new Uint16Array(54)), (this.__indexBufferData[0] = 0), (this.__indexBufferData[1] = 1), (this.__indexBufferData[2] = 2), (this.__indexBufferData[3] = 2), (this.__indexBufferData[4] = 1), (this.__indexBufferData[5] = 3), (this.__indexBufferData[6] = 4), (this.__indexBufferData[7] = 0), (this.__indexBufferData[8] = 5), (this.__indexBufferData[9] = 5), (this.__indexBufferData[10] = 0), (this.__indexBufferData[11] = 2), (this.__indexBufferData[12] = 6), (this.__indexBufferData[13] = 4), (this.__indexBufferData[14] = 7), (this.__indexBufferData[15] = 7), (this.__indexBufferData[16] = 4), (this.__indexBufferData[17] = 5), (this.__indexBufferData[18] = 8), (this.__indexBufferData[19] = 9), (this.__indexBufferData[20] = 0), (this.__indexBufferData[21] = 0), (this.__indexBufferData[22] = 9), (this.__indexBufferData[23] = 1), (this.__indexBufferData[24] = 10), (this.__indexBufferData[25] = 8), (this.__indexBufferData[26] = 4), (this.__indexBufferData[27] = 4), (this.__indexBufferData[28] = 8), (this.__indexBufferData[29] = 0), (this.__indexBufferData[30] = 11), (this.__indexBufferData[31] = 10), (this.__indexBufferData[32] = 6), (this.__indexBufferData[33] = 6), (this.__indexBufferData[34] = 10), (this.__indexBufferData[35] = 4), (this.__indexBufferData[36] = 12), (this.__indexBufferData[37] = 13), (this.__indexBufferData[38] = 8), (this.__indexBufferData[39] = 8), (this.__indexBufferData[40] = 13), (this.__indexBufferData[41] = 9), (this.__indexBufferData[42] = 14), (this.__indexBufferData[43] = 12), (this.__indexBufferData[44] = 10), (this.__indexBufferData[45] = 10), (this.__indexBufferData[46] = 12), (this.__indexBufferData[47] = 8), (this.__indexBufferData[48] = 15), (this.__indexBufferData[49] = 14), (this.__indexBufferData[50] = 11), (this.__indexBufferData[51] = 11), (this.__indexBufferData[52] = 14), (this.__indexBufferData[53] = 10), (this.__indexBuffer = a.createIndexBuffer(54))) : 0 == c && 0 != b ? ((this.__indexBufferData = c = new Uint16Array(18)), (this.__indexBufferData[0] = 0), (this.__indexBufferData[1] = 1), (this.__indexBufferData[2] = 2), (this.__indexBufferData[3] = 2), (this.__indexBufferData[4] = 1), (this.__indexBufferData[5] = 3), (this.__indexBufferData[6] = 4), (this.__indexBufferData[7] = 5), (this.__indexBufferData[8] = 0), (this.__indexBufferData[9] = 0), (this.__indexBufferData[10] = 5), (this.__indexBufferData[11] = 1), (this.__indexBufferData[12] = 6), (this.__indexBufferData[13] = 7), (this.__indexBufferData[14] = 4), (this.__indexBufferData[15] = 4), (this.__indexBufferData[16] = 7), (this.__indexBufferData[17] = 5), (this.__indexBuffer = a.createIndexBuffer(18))) : 0 != c && 0 == b && ((this.__indexBufferData = c = new Uint16Array(18)), (this.__indexBufferData[0] = 0), (this.__indexBufferData[1] = 1), (this.__indexBufferData[2] = 2), (this.__indexBufferData[3] = 2), (this.__indexBufferData[4] = 1), (this.__indexBufferData[5] = 3), (this.__indexBufferData[6] = 4), (this.__indexBufferData[7] = 0), (this.__indexBufferData[8] = 5), (this.__indexBufferData[9] = 5), (this.__indexBufferData[10] = 0), (this.__indexBufferData[11] = 2), (this.__indexBufferData[12] = 6), (this.__indexBufferData[13] = 4), (this.__indexBufferData[14] = 7), (this.__indexBufferData[15] = 7), (this.__indexBufferData[16] = 4), (this.__indexBufferData[17] = 5), (this.__indexBuffer = a.createIndexBuffer(18))); } else this.__indexBufferGrid = null; null == this.__indexBuffer && ((this.__indexBufferData = c = new Uint16Array(6)), (this.__indexBufferData[0] = 0), (this.__indexBufferData[1] = 1), (this.__indexBufferData[2] = 2), (this.__indexBufferData[3] = 2), (this.__indexBufferData[4] = 1), (this.__indexBufferData[5] = 3), (this.__indexBuffer = a.createIndexBuffer(6))); this.__indexBuffer.uploadFromTypedArray(this.__indexBufferData); } return this.__indexBuffer; }, getVertexBuffer: function (a, b, c) { if ( null == this.__vertexBuffer || this.__vertexBufferContext != a.__context || (null != b && null == this.__vertexBufferGrid) || (null != this.__vertexBufferGrid && !this.__vertexBufferGrid.equals(b)) || (null != c && (this.__vertexBufferWidth != c.get_width() || this.__vertexBufferHeight != c.get_height() || this.__vertexBufferScaleX != c.get_scaleX() || this.__vertexBufferScaleY != c.get_scaleY())) ) { this.__uvRect = new fa(0, 0, this.width, this.height); this.__vertexBufferContext = a.__context; this.__vertexBuffer = null; null != c && ((this.__vertexBufferWidth = c.get_width()), (this.__vertexBufferHeight = c.get_height()), (this.__vertexBufferScaleX = c.get_scaleX()), (this.__vertexBufferScaleY = c.get_scaleY())); if (null != b && null != c) { null == this.__vertexBufferGrid && (this.__vertexBufferGrid = new fa()); this.__vertexBufferGrid.copyFrom(b); this.__vertexBufferWidth = c.get_width(); this.__vertexBufferHeight = c.get_height(); this.__vertexBufferScaleX = c.get_scaleX(); this.__vertexBufferScaleY = c.get_scaleY(); var e = b.width, f = b.height; if (0 != e && 0 != f) { var d = new Float32Array(224); this.__vertexBufferData = d; var p = b.x, l = b.y, k = this.width - e - p, n = this.height - f - l; b = p / this.width; d = l / this.height; e /= this.width; f /= this.height; p /= c.get_scaleX(); l /= c.get_scaleY(); k /= c.get_scaleX(); var h = n / c.get_scaleY(); n = c.get_width() / c.get_scaleX() - p - k; k = c.get_height() / c.get_scaleY() - l - h; this.__vertexBufferData[0] = p; this.__vertexBufferData[1] = l; this.__vertexBufferData[3] = 1 * b; this.__vertexBufferData[4] = 1 * d; this.__vertexBufferData[15] = l; this.__vertexBufferData[18] = 1 * d; this.__vertexBufferData[28] = p; this.__vertexBufferData[31] = 1 * b; this.__vertexBufferData[56] = p + n; this.__vertexBufferData[57] = l; this.__vertexBufferData[59] = 1 * (b + e); this.__vertexBufferData[60] = 1 * d; this.__vertexBufferData[70] = p + n; this.__vertexBufferData[73] = 1 * (b + e); this.__vertexBufferData[84] = this.width; this.__vertexBufferData[85] = l; this.__vertexBufferData[87] = 1; this.__vertexBufferData[88] = 1 * d; this.__vertexBufferData[98] = this.width; this.__vertexBufferData[101] = 1; this.__vertexBufferData[112] = p; this.__vertexBufferData[113] = l + k; this.__vertexBufferData[115] = 1 * b; this.__vertexBufferData[116] = 1 * (d + f); this.__vertexBufferData[127] = l + k; this.__vertexBufferData[130] = 1 * (d + f); this.__vertexBufferData[140] = p + n; this.__vertexBufferData[141] = l + k; this.__vertexBufferData[143] = 1 * (b + e); this.__vertexBufferData[144] = 1 * (d + f); this.__vertexBufferData[154] = this.width; this.__vertexBufferData[155] = l + k; this.__vertexBufferData[157] = 1; this.__vertexBufferData[158] = 1 * (d + f); this.__vertexBufferData[168] = p; this.__vertexBufferData[169] = this.height; this.__vertexBufferData[171] = 1 * b; this.__vertexBufferData[172] = 1; this.__vertexBufferData[183] = this.height; this.__vertexBufferData[186] = 1; this.__vertexBufferData[196] = p + n; this.__vertexBufferData[197] = this.height; this.__vertexBufferData[199] = 1 * (b + e); this.__vertexBufferData[200] = 1; this.__vertexBufferData[210] = this.width; this.__vertexBufferData[211] = this.height; this.__vertexBufferData[213] = 1; this.__vertexBufferData[214] = 1; this.__vertexBuffer = a.createVertexBuffer(16, 14); } else 0 == e && 0 != f ? ((this.__vertexBufferData = d = new Float32Array(112)), (l = b.y), (n = this.height - f - l), (d = l / this.height), (f /= this.height), (l /= c.get_scaleY()), (h = n / c.get_scaleY()), (k = c.get_height() / c.get_scaleY() - l - h), (c = c.get_width() / c.get_scaleX()), (this.__vertexBufferData[0] = c), (this.__vertexBufferData[1] = l), (this.__vertexBufferData[3] = 1), (this.__vertexBufferData[4] = 1 * d), (this.__vertexBufferData[15] = l), (this.__vertexBufferData[18] = 1 * d), (this.__vertexBufferData[28] = c), (this.__vertexBufferData[31] = 1), (this.__vertexBufferData[56] = c), (this.__vertexBufferData[57] = l + k), (this.__vertexBufferData[59] = 1), (this.__vertexBufferData[60] = 1 * (d + f)), (this.__vertexBufferData[71] = l + k), (this.__vertexBufferData[74] = 1 * (d + f)), (this.__vertexBufferData[84] = c), (this.__vertexBufferData[85] = this.height), (this.__vertexBufferData[87] = 1), (this.__vertexBufferData[88] = 1), (this.__vertexBufferData[99] = this.height), (this.__vertexBufferData[102] = 1), (this.__vertexBuffer = a.createVertexBuffer(8, 14))) : 0 == f && 0 != e && ((this.__vertexBufferData = d = new Float32Array(112)), (p = b.x), (k = this.width - e - p), (b = p / this.width), (e /= this.width), (p /= c.get_scaleX()), (k /= c.get_scaleX()), (n = c.get_width() / c.get_scaleX() - p - k), (c = c.get_height() / c.get_scaleY()), (this.__vertexBufferData[0] = p), (this.__vertexBufferData[1] = c), (this.__vertexBufferData[3] = 1 * b), (this.__vertexBufferData[4] = 1), (this.__vertexBufferData[15] = c), (this.__vertexBufferData[18] = 1), (this.__vertexBufferData[28] = p), (this.__vertexBufferData[31] = 1 * b), (this.__vertexBufferData[56] = p + n), (this.__vertexBufferData[57] = c), (this.__vertexBufferData[59] = 1 * (b + e)), (this.__vertexBufferData[60] = 1), (this.__vertexBufferData[70] = p + n), (this.__vertexBufferData[73] = 1 * (b + e)), (this.__vertexBufferData[84] = this.width), (this.__vertexBufferData[85] = c), (this.__vertexBufferData[87] = 1), (this.__vertexBufferData[88] = 1), (this.__vertexBufferData[98] = this.width), (this.__vertexBufferData[101] = 1), (this.__vertexBuffer = a.createVertexBuffer(8, 14))); } else this.__vertexBufferGrid = null; null == this.__vertexBuffer && ((this.__vertexBufferData = d = new Float32Array(56)), (this.__vertexBufferData[0] = this.width), (this.__vertexBufferData[1] = this.height), (this.__vertexBufferData[3] = 1), (this.__vertexBufferData[4] = 1), (this.__vertexBufferData[15] = this.height), (this.__vertexBufferData[18] = 1), (this.__vertexBufferData[28] = this.width), (this.__vertexBufferData[31] = 1), (this.__vertexBuffer = a.createVertexBuffer(3, 14))); this.__vertexBuffer.uploadFromTypedArray(Yg.toArrayBufferView(this.__vertexBufferData)); } return this.__vertexBuffer; }, getColorBoundsRect: function (a, b, c) { null == c && (c = !0); if (!this.readable) return new fa(0, 0, this.width, this.height); a = this.image.getColorBoundsRect(a, b, c, 1); return new fa(a.x, a.y, a.width, a.height); }, getPixel: function (a, b) { return this.readable ? this.image.getPixel(a, b, 1) : 0; }, getPixel32: function (a, b) { return this.readable ? this.image.getPixel32(a, b, 1) : 0; }, getPixels: function (a) { if (!this.readable) return null; null == a && (a = this.rect); a = zb.fromBytes(this.image.getPixels(a.__toLimeRectangle(), 1)); a.__endian = 0; return a; }, getSurface: function () { if (!this.readable) return null; null == this.__surface && (this.__surface = lx.fromImage(this.image)); return this.__surface; }, getTexture: function (a) { if (!this.__isValid) return null; if (null == this.__texture || this.__textureContext != a.__context) (this.__textureContext = a.__context), (this.__texture = a.createRectangleTexture(this.width, this.height, 1, !1)), (this.__textureVersion = -1); Aa.sync(this.image, !1); null != this.image && this.image.version > this.__textureVersion && (null != this.__surface && mx.flush(this.__surface), (a = this.image), dc.__supportsBGRA || 0 == a.get_format() || ((a = a.clone()), a.set_format(0)), this.__texture.__uploadFromImage(a), (this.__textureVersion = this.image.version), (this.__textureWidth = a.buffer.width), (this.__textureHeight = a.buffer.height)); this.readable || null == this.image || (this.image = this.__surface = null); return this.__texture; }, getVector: function (a) { a = this.getPixels(a); for ( var b = (Ba.toFloat(zb.get_length(a)) / Ba.toFloat(4)) | 0, c = yb.toIntVector(null, b, !0), e = 0; e < b; ) { var f = e++; c.set(f, a.readUnsignedInt()); } return c; }, histogram: function (a) { a = null != a ? a : new fa(0, 0, this.width, this.height); a = this.getPixels(a); for (var b = [], c = [], e = 0; 256 > e; ) e++, c.push(0); b.push(c); c = []; for (e = 0; 256 > e; ) e++, c.push(0); b.push(c); c = []; for (e = 0; 256 > e; ) e++, c.push(0); b.push(c); c = []; for (e = 0; 256 > e; ) e++, c.push(0); b.push(c); e = b; b = 0; for (c = zb.get_length(a); b < c; ) { var f = b++; ++e[f % 4][a.readUnsignedByte()]; } return e; }, hitTest: function (a, b, c, e, f) { null == f && (f = 1); if (!this.readable) return !1; c instanceof Mc && (c = x.__cast(c, Mc).__bitmapData); if (c instanceof na) { f = c; c = (f.x - a.x) | 0; var d = (f.y - a.y) | 0; if (this.rect.contains(c, d)) { var p = this.getPixel32(c, d); if (((p >> 24) & 255) > b) return !0; } } else if (c instanceof ja) { p = c; null == e ? (d = c = 0) : ((c = Math.round(e.x - a.x)), (d = Math.round(e.y - a.y))); e = fa.__pool.get(); e.setTo(c, d, p.width, p.height); if (this.rect.intersects(e)) { 0 > c ? ((e.x = 0), (e.width = Math.min(p.width + c, this.width))) : (e.width = Math.min(p.width, this.width - c)); 0 > d ? ((e.y = 0), (e.height = Math.min(p.height + d, this.height))) : (e.height = Math.min(p.height, this.height - d)); a = this.getPixels(e); e.x = 0 > c ? -c : 0; e.y = 0 > d ? -d : 0; d = p.getPixels(e); p = (e.width * e.height) | 0; c = 0; for (var l = p; c < l; ) { c++; p = a.readUnsignedInt(); var k = d.readUnsignedInt(); if (Ba.gt((p >>> 24) & 255, b) && Ba.gt((k >>> 24) & 255, f)) return fa.__pool.release(e), !0; } } fa.__pool.release(e); } else if (c instanceof fa) { f = fa.__pool.get(); f.copyFrom(c); f.offset(-a.x, -a.y); f.__contract(0, 0, this.width, this.height); if (0 < f.width && 0 < f.height) for ( a = this.getPixels(f), p = (Ba.toFloat(zb.get_length(a)) / Ba.toFloat(4)) | 0, c = 0, l = p; c < l; ) if ((c++, (p = a.readUnsignedInt()), Ba.gt((p >>> 24) & 255, b))) return fa.__pool.release(f), !0; fa.__pool.release(f); } return !1; }, lock: function () {}, merge: function (a, b, c, e, f, d, p) { this.readable && null != a && a.readable && null != b && null != c && this.image.merge(a.image, b.__toLimeRectangle(), c.__toLimeVector2(), e, f, d, p); }, noise: function (a, b, c, e, f) { null == f && (f = !1); null == e && (e = 7); null == c && (c = 255); null == b && (b = 0); if (this.readable) { var d = function () { a = 1103515245 * a + 12345; return (Math.abs(a / 65536) | 0) % 32768; }; d(); c -= b; var p = 1 == (e & 1), l = 1 == (e & 2) >> 1, k = 1 == (e & 4) >> 2; e = 1 == (e & 8) >> 3; for (var n = 0, h = this.height; n < h; ) for (var m = n++, t = 0, u = this.width; t < u; ) { var q = t++, r = 0, w = 0, x = 0, z = 255; f ? ((r = x = w = b + (d() % c)), (z = 255)) : (p && (r = b + (d() % c)), l && (x = b + (d() % c)), k && (w = b + (d() % c)), e && (z = b + (d() % c))); z = (z << 8) + r; z = (z << 8) + x; z = (z << 8) + w; this.setPixel32(q, m, z); } } }, paletteMap: function (a, b, c, e, f, d, p) { var g = b.width | 0, k = b.height | 0; a = a.getPixels(b); b = 0; for (var n = k * g; b < n; ) { var h = b++; var m = a.readUnsignedInt(); var t = null == p ? m & -16777216 : p[(m >> 24) & 255]; var u = null == e ? m & 16711680 : e[(m >> 16) & 255]; var q = null == f ? m & 65280 : f[(m >> 8) & 255]; m = null == d ? m & 255 : d[m & 255]; u = t + u + q + m; a.position = 4 * h; a.writeUnsignedInt(u); } a.position = 0; e = fa.__pool.get(); e.setTo(c.x, c.y, g, k); this.setPixels(e, a); fa.__pool.release(e); }, perlinNoise: function (a, b, c, e, f, d, p, l, k) { null == l && (l = !1); null == p && (p = 7); this.readable && new ai(e, c, p, l, 0.5, f, 0.15).fill(this, a, b, 0); }, scroll: function (a, b) { this.readable && this.image.scroll(a, b); }, setPixel: function (a, b, c) { this.readable && this.image.setPixel(a, b, c, 1); }, setPixel32: function (a, b, c) { this.readable && this.image.setPixel32(a, b, c, 1); }, setPixels: function (a, b) { if (this.readable && null != a) { var c = a.width * a.height * 4; if (Ba.toFloat(b.length - b.position) < c) throw M.thrown(new dd('End of file was encountered.', 2030)); this.image.setPixels( a.__toLimeRectangle(), zb.toBytePointer(b), 1, Tw.toLimeEndian(b.__endian) ); } }, setVector: function (a, b) { var c = new pc(0); zb.set_length(c, 4 * b.get_length()); for (b = b.iterator(); b.hasNext(); ) { var e = b.next(); c.writeUnsignedInt(e); } c.position = 0; this.setPixels(a, c); }, threshold: function (a, b, c, e, f, d, p, l) { null == l && (l = !1); null == p && (p = -1); null == d && (d = 0); return null == a || null == b || null == c || b.x > a.width || b.y > a.height || c.x > this.width || c.y > this.height ? 0 : this.image.threshold( a.image, b.__toLimeRectangle(), c.__toLimeVector2(), e, f, d, p, l, 1 ); }, unlock: function (a) {}, __applyAlpha: function (a) { Aa.convertToCanvas(this.image); Aa.createImageData(this.image); for (var b = this.image.buffer.data, c = 0, e = zb.get_length(a); c < e; ) { var f = c++; b[4 * f + 3] = a.readUnsignedByte(); } this.image.version++; }, __drawCairo: function (a, b) {}, __drawCanvas: function (a, b) { var c = this.image.buffer; b.__allowSmoothing || b.applySmoothing(c.__srcContext, !1); b.__render(a); b.__allowSmoothing || b.applySmoothing(c.__srcContext, !0); c.__srcContext.setTransform(1, 0, 0, 1, 0, 0); c.__srcImageData = null; c.data = null; this.image.dirty = !0; this.image.version++; }, __drawGL: function (a, b) { var c = b.__context3D, e = c.__state.renderToTexture, f = c.__state.renderToTextureDepthStencil, d = c.__state.renderToTextureAntiAlias, p = c.__state.renderToTextureSurfaceSelector; c.setRenderToTexture(this.getTexture(c), !0); b.__render(a); null != e ? c.setRenderToTexture(e, f, d, p) : c.setRenderToBackBuffer(); }, __fillRect: function (a, b, c) { if (null != a) if ( (this.transparent && 0 == (b & -16777216) && (b = 0), c && null != this.__texture && null != this.__texture.__glFramebuffer && 'opengl' == Ma.get_current().stage.__renderer.__type) ) { c = Ma.get_current().stage.__renderer.__context3D; var e = !this.rect.equals(a), f = c.__state.renderToTexture, d = c.__state.renderToTextureDepthStencil, p = c.__state.renderToTextureAntiAlias, l = c.__state.renderToTextureSurfaceSelector; c.setRenderToTexture(this.__texture); e && c.setScissorRectangle(a); c.clear( ((b >>> 16) & 255) / 255, ((b >>> 8) & 255) / 255, (b & 255) / 255, this.transparent ? ((b >>> 24) & 255) / 255 : 1, 0, 0, 1 ); e && c.setScissorRectangle(null); null != f ? c.setRenderToTexture(f, d, p, l) : c.setRenderToBackBuffer(); } else this.readable && this.image.fillRect(a.__toLimeRectangle(), b, 1); }, __fromBase64: function (a, b) { a = Fb.fromBase64(a, b); this.__fromImage(a); }, __fromBytes: function (a, b) { a = Fb.fromBytes(zb.toBytes(a)); this.__fromImage(a); null != b && this.__applyAlpha(b); }, __fromFile: function (a) { a = Fb.fromFile(a); this.__fromImage(a); }, __fromImage: function (a) { null != a && null != a.buffer && ((this.image = a), (this.width = a.width), (this.height = a.height), (this.rect = new fa(0, 0, a.width, a.height)), (this.__textureWidth = this.width), (this.__textureHeight = this.height), (this.__isValid = this.readable = !0)); }, __getBounds: function (a, b) { var c = fa.__pool.get(); this.rect.__transform(c, b); a.__expand(c.x, c.y, c.width, c.height); fa.__pool.release(c); }, __loadFromBase64: function (a, b) { var c = this; return Fb.loadFromBase64(a, b).then(function (a) { c.__fromImage(a); return kb.withValue(c); }); }, __loadFromBytes: function (a, b) { var c = this; return Fb.loadFromBytes(zb.toBytes(a)).then(function (a) { c.__fromImage(a); null != b && c.__applyAlpha(b); return kb.withValue(c); }); }, __loadFromFile: function (a) { var b = this; return Fb.loadFromFile(a).then(function (a) { b.__fromImage(a); return kb.withValue(b); }); }, __resize: function (a, b) { this.width = a; this.height = b; this.rect.width = a; this.rect.height = b; this.__textureWidth = a; this.__textureHeight = b; }, __setUVRect: function (a, b, c, e, f) { if ( null != this.getVertexBuffer(a) && (e != this.__uvRect.width || f != this.__uvRect.height || b != this.__uvRect.x || c != this.__uvRect.y) ) { null == this.__uvRect && (this.__uvRect = new fa()); this.__uvRect.setTo(b, c, e, f); a = 0 < this.__textureWidth ? b / this.__textureWidth : 0; c = 0 < this.__textureHeight ? c / this.__textureHeight : 0; b = 0 < this.__textureWidth ? e / this.__textureWidth : 0; var d = 0 < this.__textureHeight ? f / this.__textureHeight : 0; this.__vertexBufferData[0] = e; this.__vertexBufferData[1] = f; this.__vertexBufferData[3] = a + b; this.__vertexBufferData[4] = c + d; this.__vertexBufferData[15] = f; this.__vertexBufferData[17] = a; this.__vertexBufferData[18] = c + d; this.__vertexBufferData[28] = e; this.__vertexBufferData[31] = a + b; this.__vertexBufferData[32] = c; this.__vertexBufferData[45] = a; this.__vertexBufferData[46] = c; this.__vertexBuffer.uploadFromTypedArray(Yg.toArrayBufferView(this.__vertexBufferData)); } }, __sync: function () { Aa.sync(this.image, !1); }, __update: function (a, b) { this.__updateTransforms(); }, __updateTransforms: function (a) { null == a ? this.__worldTransform.identity() : this.__worldTransform.copyFrom(a); this.__renderTransform.copyFrom(this.__worldTransform); }, __class__: ja }; var Te = function () { db.call(this); this.__allowSmoothing = !0; this.__tempColorTransform = new Kc(); this.__worldAlpha = 1; }; h['openfl.display.DisplayObjectRenderer'] = Te; Te.__name__ = 'openfl.display.DisplayObjectRenderer'; Te.__super__ = db; Te.prototype = r(db.prototype, { __allowSmoothing: null, __blendMode: null, __cleared: null, __context: null, __overrideBlendMode: null, __roundPixels: null, __stage: null, __tempColorTransform: null, __transparent: null, __type: null, __worldAlpha: null, __worldColorTransform: null, __worldTransform: null, __clear: function () {}, __getAlpha: function (a) { return a * this.__worldAlpha; }, __getColorTransform: function (a) { return null != this.__worldColorTransform ? (this.__tempColorTransform.__copyFrom(this.__worldColorTransform), this.__tempColorTransform.__combine(a), this.__tempColorTransform) : a; }, __popMask: function () {}, __popMaskObject: function (a, b) {}, __popMaskRect: function () {}, __pushMask: function (a) {}, __pushMaskObject: function (a, b) {}, __pushMaskRect: function (a, b) {}, __render: function (a) {}, __renderEvent: function (a) { if (null != a.__customRenderEvent && a.__renderable) { a.__customRenderEvent.allowSmoothing = this.__allowSmoothing; a.__customRenderEvent.objectMatrix.copyFrom(a.__renderTransform); a.__customRenderEvent.objectColorTransform.__copyFrom(a.__worldColorTransform); a.__customRenderEvent.renderer = this; switch (this.__type) { case 'cairo': a.__customRenderEvent.type = 'renderCairo'; break; case 'canvas': a.__customRenderEvent.type = 'renderCanvas'; break; case 'dom': a.__customRenderEvent.type = null != a.stage && a.__worldVisible ? 'renderDOM' : 'clearDOM'; break; case 'opengl': this.__cleared || this.__clear(); this.setShader(a.__worldShader); this.__context3D.__flushGL(); a.__customRenderEvent.type = 'renderOpenGL'; break; default: return; } this.__setBlendMode(a.__worldBlendMode); this.__pushMaskObject(a); a.dispatchEvent(a.__customRenderEvent); this.__popMaskObject(a); 'opengl' == this.__type && this.setViewport(); } }, __resize: function (a, b) {}, __setBlendMode: function (a) {}, __shouldCacheHardware: function (a, b) { if (null == a) return null; switch (a.__drawableType) { case 4: case 5: if (1 == b) return !0; b = this.__shouldCacheHardware_DisplayObject(a, b); if (1 == b) return !0; if (null != a.__children) { var c = 0; for (a = a.__children; c < a.length; ) { var e = a[c]; ++c; b = this.__shouldCacheHardware_DisplayObject(e, b); if (1 == b) return !0; } } return b; case 7: return 1 == b ? !0 : !1; case 9: return !0; default: return this.__shouldCacheHardware_DisplayObject(a, b); } }, __shouldCacheHardware_DisplayObject: function (a, b) { return 1 == b || null != a.__filters ? !0 : 0 == b || (null != a.__graphics && !Qc.isCompatible(a.__graphics)) ? !1 : null; }, __updateCacheBitmap: function (a, b) { if (null == a) return !1; switch (a.__drawableType) { case 2: var c = a; if ( null == c.__bitmapData || (null == c.__filters && 'opengl' == this.__type && null == c.__cacheBitmap) ) return !1; b = null != c.__bitmapData.image && c.__bitmapData.image.version != c.__imageVersion; break; case 7: var e = a; if ( null == e.__filters && 'opengl' == this.__type && null == e.__cacheBitmap && !e.__domRender ) return !1; b && (e.__renderDirty = !0); b = b || e.__dirty; break; case 9: if (null == a.__filters && 'opengl' == this.__type && null == a.__cacheBitmap) return !1; } if (a.__isCacheBitmapRender) return !1; e = Kc.__pool.get(); e.__copyFrom(a.__worldColorTransform); null != this.__worldColorTransform && e.__combine(this.__worldColorTransform); var f = !1; if (a.get_cacheAsBitmap() || ('opengl' != this.__type && !e.__isDefault(!0))) { f = null; var d = (b = null == a.__cacheBitmap || (a.__renderDirty && (b || (null != a.__children && 0 < a.__children.length))) || a.opaqueBackground != a.__cacheBitmapBackground) || (null != a.__graphics && a.__graphics.__softwareDirty) || !a.__cacheBitmapColorTransform.__equals(e, !0), p = b || (null != a.__graphics && a.__graphics.__hardwareDirty), l = this.__type; if (d || p) 'opengl' == l && 0 == this.__shouldCacheHardware(a, null) && (l = 'canvas'), !d || ('canvas' != l && 'cairo' != l) || (b = !0), p && 'opengl' == l && (b = !0); d = b || !a.__cacheBitmap.__worldTransform.equals(a.__worldTransform); if ((c = null != a.__filters) && !b) { p = 0; for (var k = a.__filters; p < k.length; ) { var n = k[p]; ++p; if (n.__renderDirty) { b = !0; break; } } } null == a.__cacheBitmapMatrix && (a.__cacheBitmapMatrix = new Ia()); p = null != a.__cacheAsBitmapMatrix ? a.__cacheAsBitmapMatrix : a.__renderTransform; b || (p.a == a.__cacheBitmapMatrix.a && p.b == a.__cacheBitmapMatrix.b && p.c == a.__cacheBitmapMatrix.c && p.d == a.__cacheBitmapMatrix.d) || (b = !0); !b && 'opengl' != this.__type && null != a.__cacheBitmapData && null != a.__cacheBitmapData.image && a.__cacheBitmapData.image.version < a.__cacheBitmapData.__textureVersion && (b = !0); a.__cacheBitmapMatrix.copyFrom(p); a.__cacheBitmapMatrix.tx = 0; var h = (a.__cacheBitmapMatrix.ty = 0), m = 0, t = 0, u = 0; n = k = 0; if (d || b) (f = fa.__pool.get()), a.__getFilterBounds(f, a.__cacheBitmapMatrix), (t = Math.ceil(f.width)), (u = Math.ceil(f.height)), (k = 0 < f.x ? Math.ceil(f.x) : Math.floor(f.x)), (n = 0 < f.y ? Math.ceil(f.y) : Math.floor(f.y)), null != a.__cacheBitmapData ? t > a.__cacheBitmapData.width || u > a.__cacheBitmapData.height ? ((h = Math.ceil(Math.max(1.25 * t, a.__cacheBitmapData.width))), (m = Math.ceil(Math.max(1.25 * u, a.__cacheBitmapData.height))), (b = !0)) : ((h = a.__cacheBitmapData.width), (m = a.__cacheBitmapData.height)) : ((h = t), (m = u)); if (b) if ( ((d = !0), (a.__cacheBitmapBackground = a.opaqueBackground), 0.5 <= t && 0.5 <= u) ) { var q = null != a.opaqueBackground && (h != t || m != u), r = null != a.opaqueBackground ? -16777216 | a.opaqueBackground : 0, w = q ? 0 : r, z = 'opengl' == this.__type; null == a.__cacheBitmapData || h > a.__cacheBitmapData.width || m > a.__cacheBitmapData.height ? ((a.__cacheBitmapData = new ja(h, m, !0, w)), null == a.__cacheBitmap && (a.__cacheBitmap = new Mc()), (a.__cacheBitmap.__bitmapData = a.__cacheBitmapData), (a.__cacheBitmapRenderer = null)) : a.__cacheBitmapData.__fillRect(a.__cacheBitmapData.rect, w, z); q && (f.setTo(0, 0, t, u), a.__cacheBitmapData.__fillRect(f, r, z)); } else return ( Kc.__pool.release(e), (a.__cacheBitmap = null), (a.__cacheBitmapData = null), (a.__cacheBitmapData2 = null), (a.__cacheBitmapData3 = null), (a.__cacheBitmapRenderer = null), 7 == a.__drawableType && ((e = a), null != e.__cacheBitmap && ((e.__cacheBitmap.__renderTransform.tx -= e.__offsetX), (e.__cacheBitmap.__renderTransform.ty -= e.__offsetY))), !0 ); else (a.__cacheBitmapData = a.__cacheBitmap.get_bitmapData()), (a.__cacheBitmapData2 = null), (a.__cacheBitmapData3 = null); if (d || b) a.__cacheBitmap.__worldTransform.copyFrom(a.__worldTransform), p == a.__renderTransform ? (a.__cacheBitmap.__renderTransform.identity(), (a.__cacheBitmap.__renderTransform.tx = a.__renderTransform.tx + k), (a.__cacheBitmap.__renderTransform.ty = a.__renderTransform.ty + n)) : (a.__cacheBitmap.__renderTransform.copyFrom(a.__cacheBitmapMatrix), a.__cacheBitmap.__renderTransform.invert(), a.__cacheBitmap.__renderTransform.concat(a.__renderTransform), (a.__cacheBitmap.__renderTransform.tx += k), (a.__cacheBitmap.__renderTransform.ty += n)); a.__cacheBitmap.smoothing = this.__allowSmoothing; a.__cacheBitmap.__renderable = a.__renderable; a.__cacheBitmap.__worldAlpha = a.__worldAlpha; a.__cacheBitmap.__worldBlendMode = a.__worldBlendMode; a.__cacheBitmap.__worldShader = a.__worldShader; a.__cacheBitmap.set_mask(a.__mask); if (b) { if (null == a.__cacheBitmapRenderer || l != a.__cacheBitmapRenderer.__type) 'opengl' == l ? (a.__cacheBitmapRenderer = new Hb( x.__cast(this, Hb).__context3D, a.__cacheBitmapData )) : (null == a.__cacheBitmapData.image && ((a.__cacheBitmapData = new ja( h, m, !0, null != a.opaqueBackground ? -16777216 | a.opaqueBackground : 0 )), (a.__cacheBitmap.__bitmapData = a.__cacheBitmapData)), Aa.convertToCanvas(a.__cacheBitmapData.image), (a.__cacheBitmapRenderer = new Cg( a.__cacheBitmapData.image.buffer.__srcContext ))), (a.__cacheBitmapRenderer.__worldTransform = new Ia()), (a.__cacheBitmapRenderer.__worldColorTransform = new Kc()); null == a.__cacheBitmapColorTransform && (a.__cacheBitmapColorTransform = new Kc()); a.__cacheBitmapRenderer.__stage = a.stage; a.__cacheBitmapRenderer.__allowSmoothing = this.__allowSmoothing; a.__cacheBitmapRenderer.__setBlendMode(10); a.__cacheBitmapRenderer.__worldAlpha = 1 / a.__worldAlpha; a.__cacheBitmapRenderer.__worldTransform.copyFrom(a.__renderTransform); a.__cacheBitmapRenderer.__worldTransform.invert(); a.__cacheBitmapRenderer.__worldTransform.concat(a.__cacheBitmapMatrix); a.__cacheBitmapRenderer.__worldTransform.tx -= k; a.__cacheBitmapRenderer.__worldTransform.ty -= n; a.__cacheBitmapRenderer.__worldColorTransform.__copyFrom(e); a.__cacheBitmapRenderer.__worldColorTransform.__invert(); a.__isCacheBitmapRender = !0; if ('opengl' == a.__cacheBitmapRenderer.__type) { r = a.__cacheBitmapRenderer; w = r.__context3D; z = w.__state.renderToTexture; var E = w.__state.renderToTextureDepthStencil, I = w.__state.renderToTextureAntiAlias, H = w.__state.renderToTextureSurfaceSelector, C = this.__blendMode; this.__suspendClipAndMask(); r.__copyShader(this); a.__cacheBitmapData.__setUVRect(w, 0, 0, t, u); r.__setRenderTarget(a.__cacheBitmapData); null != a.__cacheBitmapData.image && (a.__cacheBitmapData.__textureVersion = a.__cacheBitmapData.image.version + 1); a.__cacheBitmapData.__drawGL(a, r); if (c) { var A = !1; p = 0; for (k = a.__filters; p < k.length; ) (n = k[p]), ++p, n.__preserveObject && (A = !0); c = a.__cacheBitmapData; q = null; null == a.__cacheBitmapData2 || h > a.__cacheBitmapData2.width || m > a.__cacheBitmapData2.height ? (a.__cacheBitmapData2 = new ja(h, m, !0, 0)) : (a.__cacheBitmapData2.fillRect(a.__cacheBitmapData2.rect, 0), null != a.__cacheBitmapData2.image && (a.__cacheBitmapData2.__textureVersion = a.__cacheBitmapData2.image.version + 1)); a.__cacheBitmapData2.__setUVRect(w, 0, 0, t, u); l = a.__cacheBitmapData2; A && (null == a.__cacheBitmapData3 || h > a.__cacheBitmapData3.width || m > a.__cacheBitmapData3.height ? (a.__cacheBitmapData3 = new ja(h, m, !0, 0)) : (a.__cacheBitmapData3.fillRect(a.__cacheBitmapData3.rect, 0), null != a.__cacheBitmapData3.image && (a.__cacheBitmapData3.__textureVersion = a.__cacheBitmapData3.image.version + 1)), a.__cacheBitmapData3.__setUVRect(w, 0, 0, t, u), (q = a.__cacheBitmapData3)); r.__setBlendMode(10); r.__worldAlpha = 1; r.__worldTransform.identity(); r.__worldColorTransform.__identity(); p = 0; for (k = a.__filters; p < k.length; ) { n = k[p]; ++p; n.__preserveObject && (r.__setRenderTarget(q), r.__renderFilterPass(c, r.__defaultDisplayShader, n.__smooth)); m = 0; for (t = n.__numShaderPasses; m < t; ) (h = m++), (h = n.__initShader(r, h, n.__preserveObject ? q : null)), r.__setBlendMode(n.__shaderBlendMode), r.__setRenderTarget(l), r.__renderFilterPass(c, h, n.__smooth), (h = c), (c = l), (l = h); n.__renderDirty = !1; } a.__cacheBitmap.__bitmapData = c; } this.__blendMode = 10; this.__setBlendMode(C); this.__copyShader(r); null != z ? w.setRenderToTexture(z, E, I, H) : w.setRenderToBackBuffer(); this.__resumeClipAndMask(r); this.setViewport(); a.__cacheBitmapColorTransform.__copyFrom(e); } else { a.__cacheBitmapData.__drawCanvas(a, a.__cacheBitmapRenderer); if (c) { A = t = !1; p = 0; for (k = a.__filters; p < k.length; ) (n = k[p]), ++p, n.__needSecondBitmapData && (t = !0), n.__preserveObject && (A = !0); c = a.__cacheBitmapData; q = null; t ? (null == a.__cacheBitmapData2 || null == a.__cacheBitmapData2.image || h > a.__cacheBitmapData2.width || m > a.__cacheBitmapData2.height ? (a.__cacheBitmapData2 = new ja(h, m, !0, 0)) : a.__cacheBitmapData2.fillRect(a.__cacheBitmapData2.rect, 0), (l = a.__cacheBitmapData2)) : (l = c); A && (null == a.__cacheBitmapData3 || null == a.__cacheBitmapData3.image || h > a.__cacheBitmapData3.width || m > a.__cacheBitmapData3.height ? (a.__cacheBitmapData3 = new ja(h, m, !0, 0)) : a.__cacheBitmapData3.fillRect(a.__cacheBitmapData3.rect, 0), (q = a.__cacheBitmapData3)); null == a.__tempPoint && (a.__tempPoint = new na()); m = a.__tempPoint; p = 0; for (k = a.__filters; p < k.length; ) (n = k[p]), ++p, n.__preserveObject && q.copyPixels(c, c.rect, m), (h = n.__applyFilter(l, c, c.rect, m)), n.__preserveObject && h.draw( q, null, null != a.__objectTransform ? a.__objectTransform.get_colorTransform() : null ), (n.__renderDirty = !1), t && h == l && ((h = c), (c = l), (l = h)); a.__cacheBitmapData != c && ((h = a.__cacheBitmapData), (a.__cacheBitmapData = c), (a.__cacheBitmapData2 = h), (a.__cacheBitmap.__bitmapData = a.__cacheBitmapData), (a.__cacheBitmapRenderer = null)); a.__cacheBitmap.__imageVersion = a.__cacheBitmapData.__textureVersion; } a.__cacheBitmapColorTransform.__copyFrom(e); a.__cacheBitmapColorTransform.__isDefault(!0) || ((a.__cacheBitmapColorTransform.alphaMultiplier = 1), a.__cacheBitmapData.colorTransform( a.__cacheBitmapData.rect, a.__cacheBitmapColorTransform )); } a.__isCacheBitmapRender = !1; } (d || b) && fa.__pool.release(f); f = d; } else null != a.__cacheBitmap && ('dom' == this.__type && this.__renderDrawableClear(a.__cacheBitmap), (a.__cacheBitmap = null), (a.__cacheBitmapData = null), (a.__cacheBitmapData2 = null), (a.__cacheBitmapData3 = null), (a.__cacheBitmapColorTransform = null), (a.__cacheBitmapRenderer = null), (f = !0)); Kc.__pool.release(e); f && 7 == a.__drawableType && ((e = a), null != e.__cacheBitmap && ((e.__cacheBitmap.__renderTransform.tx -= e.__offsetX), (e.__cacheBitmap.__renderTransform.ty -= e.__offsetY))); return f; }, __class__: Te }); var Dm = function (a) { Te.call(this); }; h['openfl.display.CairoRenderer'] = Dm; Dm.__name__ = 'openfl.display.CairoRenderer'; Dm.__super__ = Te; Dm.prototype = r(Te.prototype, { cairo: null, __matrix: null, __matrix3: null, applyMatrix: function (a, b) { null == b && (b = this.cairo); this.__matrix.copyFrom(a); this.cairo == b && null != this.__worldTransform && this.__matrix.concat(this.__worldTransform); this.__matrix3.a = this.__matrix.a; this.__matrix3.b = this.__matrix.b; this.__matrix3.c = this.__matrix.c; this.__matrix3.d = this.__matrix.d; this.__roundPixels ? ((this.__matrix3.tx = Math.round(this.__matrix.tx)), (this.__matrix3.ty = Math.round(this.__matrix.ty))) : ((this.__matrix3.tx = this.__matrix.tx), (this.__matrix3.ty = this.__matrix.ty)); b.set_matrix(this.__matrix3); }, __clear: function () { if ( null != this.cairo && (this.cairo.identityMatrix(), null != this.__stage && this.__stage.__clearBeforeRender) ) { var a = this.__blendMode; this.__setBlendMode(10); this.cairo.setSourceRGB( this.__stage.__colorSplit[0], this.__stage.__colorSplit[1], this.__stage.__colorSplit[2] ); this.cairo.paint(); this.__setBlendMode(a); } }, __popMask: function () { this.cairo.restore(); }, __popMaskObject: function (a, b) { null == b && (b = !0); a.__isCacheBitmapRender || null == a.__mask || this.__popMask(); b && null != a.__scrollRect && this.__popMaskRect(); }, __popMaskRect: function () { this.cairo.restore(); }, __pushMask: function (a) { this.cairo.save(); this.applyMatrix(a.__renderTransform, this.cairo); this.cairo.newPath(); this.__renderDrawableMask(a); this.cairo.clip(); }, __pushMaskObject: function (a, b) { null == b && (b = !0); b && null != a.__scrollRect && this.__pushMaskRect(a.__scrollRect, a.__renderTransform); a.__isCacheBitmapRender || null == a.__mask || this.__pushMask(a.__mask); }, __pushMaskRect: function (a, b) { this.cairo.save(); this.applyMatrix(b, this.cairo); this.cairo.newPath(); this.cairo.rectangle(a.x, a.y, a.width, a.height); this.cairo.clip(); }, __render: function (a) { null != this.cairo && this.__renderDrawable(a); }, __renderDrawable: function (a) { if (null != a) switch (a.__drawableType) { case 6: !a.__renderable || 0 >= a.__worldAlpha || null == a.__currentState || (this.__pushMaskObject(a), this.__renderDrawable(a.__currentState), this.__popMaskObject(a), this.__renderEvent(a)); } }, __renderDrawableMask: function (a) { if (null != a) switch (a.__drawableType) { case 2: this.cairo.rectangle(0, 0, a.get_width(), a.get_height()); break; case 6: this.__renderDrawableMask(a.__currentState); } }, __setBlendMode: function (a) { null != this.__overrideBlendMode && (a = this.__overrideBlendMode); this.__blendMode != a && ((this.__blendMode = a), this.__setBlendModeCairo(this.cairo, a)); }, __setBlendModeCairo: function (a, b) { switch (b) { case 0: a.setOperator(12); break; case 2: a.setOperator(17); break; case 3: a.setOperator(23); break; case 5: a.setOperator(21); break; case 7: a.setOperator(2); break; case 8: a.setOperator(18); break; case 9: a.setOperator(14); break; case 11: a.setOperator(16); break; case 12: a.setOperator(15); break; default: a.setOperator(2); } }, __class__: Dm }); var Cg = function (a) { this.pixelRatio = 1; Te.call(this); this.context = a; this.__tempMatrix = new Ia(); this.__type = 'canvas'; }; h['openfl.display.CanvasRenderer'] = Cg; Cg.__name__ = 'openfl.display.CanvasRenderer'; Cg.__super__ = Te; Cg.prototype = r(Te.prototype, { context: null, pixelRatio: null, __isDOM: null, __tempMatrix: null, applySmoothing: function (a, b) { a.imageSmoothingEnabled = b; }, setTransform: function (a, b) { null == b ? (b = this.context) : this.context == b && null != this.__worldTransform && (this.__tempMatrix.copyFrom(a), this.__tempMatrix.concat(this.__worldTransform), (a = this.__tempMatrix)); this.__roundPixels ? b.setTransform(a.a, a.b, a.c, a.d, a.tx | 0, a.ty | 0) : b.setTransform(a.a, a.b, a.c, a.d, a.tx, a.ty); }, __clear: function () { if (null != this.__stage) { var a = this.__blendMode; this.__blendMode = null; this.__setBlendMode(10); this.context.setTransform(1, 0, 0, 1, 0, 0); this.context.globalAlpha = 1; !this.__stage.__transparent && this.__stage.__clearBeforeRender ? ((this.context.fillStyle = this.__stage.__colorString), this.context.fillRect( 0, 0, this.__stage.stageWidth * this.__stage.window.__scale, this.__stage.stageHeight * this.__stage.window.__scale )) : this.__stage.__transparent && this.__stage.__clearBeforeRender && this.context.clearRect( 0, 0, this.__stage.stageWidth * this.__stage.window.__scale, this.__stage.stageHeight * this.__stage.window.__scale ); this.__setBlendMode(a); } }, __popMask: function () { this.context.restore(); }, __popMaskObject: function (a, b) { null == b && (b = !0); a.__isCacheBitmapRender || null == a.__mask || this.__popMask(); b && null != a.__scrollRect && this.__popMaskRect(); }, __popMaskRect: function () { this.context.restore(); }, __pushMask: function (a) { this.context.save(); this.setTransform(a.__renderTransform, this.context); this.context.beginPath(); this.__renderDrawableMask(a); this.context.closePath(); this.context.clip(); }, __pushMaskObject: function (a, b) { null == b && (b = !0); b && null != a.__scrollRect && this.__pushMaskRect(a.__scrollRect, a.__renderTransform); a.__isCacheBitmapRender || null == a.__mask || this.__pushMask(a.__mask); }, __pushMaskRect: function (a, b) { this.context.save(); this.setTransform(b, this.context); this.context.beginPath(); this.context.rect(a.x, a.y, a.width, a.height); this.context.clip(); }, __render: function (a) { this.__renderDrawable(a); }, __renderDrawable: function (a) { if (null != a) switch (a.__drawableType) { case 0: Em.renderDrawable(a, this); break; case 2: Pi.renderDrawable(a, this); break; case 3: Dh.renderDrawable(a, this); break; case 4: case 5: Fm.renderDrawable(a, this); break; case 6: Gm.renderDrawable(a, this); break; case 7: V.renderDrawable(a, this); break; case 8: bi.renderDrawable(a, this); break; case 9: Vf.renderDrawable(a, this); } }, __renderDrawableMask: function (a) { if (null != a) switch (a.__drawableType) { case 0: Em.renderDrawableMask(a, this); break; case 2: Pi.renderDrawableMask(a, this); break; case 3: Dh.renderDrawableMask(a, this); break; case 4: case 5: Fm.renderDrawableMask(a, this); break; case 6: Gm.renderDrawableMask(a, this); break; case 7: V.renderDrawableMask(a, this); break; case 8: bi.renderDrawableMask(a, this); break; case 9: Vf.renderDrawableMask(a, this); } }, __setBlendMode: function (a) { null != this.__overrideBlendMode && (a = this.__overrideBlendMode); this.__blendMode != a && ((this.__blendMode = a), this.__setBlendModeContext(this.context, a)); }, __setBlendModeContext: function (a, b) { switch (b) { case 0: a.globalCompositeOperation = 'lighter'; break; case 2: a.globalCompositeOperation = 'darken'; break; case 3: a.globalCompositeOperation = 'difference'; break; case 5: a.globalCompositeOperation = 'hard-light'; break; case 8: a.globalCompositeOperation = 'lighten'; break; case 9: a.globalCompositeOperation = 'multiply'; break; case 11: a.globalCompositeOperation = 'overlay'; break; case 12: a.globalCompositeOperation = 'screen'; break; default: a.globalCompositeOperation = 'source-over'; } }, __class__: Cg }); var Bw = { fromInt: function (a) { return a; }, fromString: function (a) { switch (a) { case 'none': return 0; case 'round': return 1; case 'square': return 2; default: return null; } }, toInt: function (a) { return a; }, toString: function (a) { switch (a) { case 0: return 'none'; case 1: return 'round'; case 2: return 'square'; default: return null; } } }, Hm = function (a) { La.call(this); this.__drawableType = 10; this.__element = a; }; h['openfl.display.DOMElement'] = Hm; Hm.__name__ = 'openfl.display.DOMElement'; Hm.__super__ = La; Hm.prototype = r(La.prototype, { __active: null, __element: null, __class__: Hm }); var Qi = function (a) { this.pixelRatio = 1; Te.call(this); this.element = a; La.__supportDOM = !0; a = window.getComputedStyle(document.documentElement, ''); a = (Array.prototype.slice .call(a) .join('') .match(/-(moz|webkit|ms)-/) || ('' === a.OLink && ['', 'o']))[1]; 'WebKit|Moz|MS|O'.match(new RegExp('(' + a + ')', 'i')); a[0].toUpperCase(); a.substr(1); this.__vendorPrefix = a; this.__transformProperty = 'webkit' == a ? '-webkit-transform' : 'transform'; this.__transformOriginProperty = 'webkit' == a ? '-webkit-transform-origin' : 'transform-origin'; this.__clipRects = []; this.__z = this.__numClipRects = 0; this.__type = 'dom'; this.__canvasRenderer = new Cg(null); this.__canvasRenderer.__isDOM = !0; }; h['openfl.display.DOMRenderer'] = Qi; Qi.__name__ = 'openfl.display.DOMRenderer'; Qi.__super__ = Te; Qi.prototype = r(Te.prototype, { element: null, pixelRatio: null, __canvasRenderer: null, __clipRects: null, __currentClipRect: null, __numClipRects: null, __transformOriginProperty: null, __transformProperty: null, __vendorPrefix: null, __z: null, applyStyle: function (a, b) { null != a && null != b && ((null != a.__style && b.parentElement == this.element) || this.__initializeElement(a, b), (a.__style = b.style), this.__updateClip(a), this.__applyStyle(a, !0, !0, !0)); }, clearStyle: function (a) { null != a && a.parentElement == this.element && this.element.removeChild(a); }, __applyStyle: function (a, b, c, e) { var f = a.__style; if (b && a.__renderTransformChanged) { b = a.__renderTransform; var d = this.__roundPixels; null == d && (d = !1); f.setProperty( this.__transformProperty, d ? 'matrix3d(' + b.a + ', ' + b.b + ', 0, 0, ' + b.c + ', ' + b.d + ', 0, 0, 0, 0, 1, 0, ' + (b.tx | 0) + ', ' + (b.ty | 0) + ', 0, 1)' : 'matrix3d(' + b.a + ', ' + b.b + ', 0, 0, ' + b.c + ', ' + b.d + ', 0, 0, 0, 0, 1, 0, ' + b.tx + ', ' + b.ty + ', 0, 1)', null ); } a.__worldZ != ++this.__z && ((a.__worldZ = this.__z), f.setProperty('z-index', null == a.__worldZ ? 'null' : '' + a.__worldZ, null)); c && a.__worldAlphaChanged && (1 > a.__worldAlpha ? f.setProperty( 'opacity', null == a.__worldAlpha ? 'null' : '' + a.__worldAlpha, null ) : f.removeProperty('opacity')); e && a.__worldClipChanged && (null == a.__worldClip ? f.removeProperty('clip') : ((a = a.__worldClip), f.setProperty( 'clip', 'rect(' + a.y + 'px, ' + a.get_right() + 'px, ' + a.get_bottom() + 'px, ' + a.x + 'px)', null ))); }, __initializeElement: function (a, b) { var c = (a.__style = b.style); c.setProperty('position', 'absolute', null); c.setProperty('top', '0', null); c.setProperty('left', '0', null); c.setProperty(this.__transformOriginProperty, '0 0 0', null); this.element.appendChild(b); a.__worldAlphaChanged = !0; a.__renderTransformChanged = !0; a.__worldVisibleChanged = !0; a.__worldClipChanged = !0; a.__worldClip = null; a.__worldZ = -1; }, __popMask: function () { this.__popMaskRect(); }, __popMaskObject: function (a, b) { null == b && (b = !0); null != a.__mask && this.__popMask(); b && null != a.__scrollRect && this.__popMaskRect(); }, __popMaskRect: function () { 0 < this.__numClipRects && (this.__numClipRects--, (this.__currentClipRect = 0 < this.__numClipRects ? this.__clipRects[this.__numClipRects - 1] : null)); }, __pushMask: function (a) { this.__pushMaskRect(a.getBounds(a), a.__renderTransform); }, __pushMaskObject: function (a, b) { null == b && (b = !0); b && null != a.__scrollRect && this.__pushMaskRect(a.__scrollRect, a.__renderTransform); null != a.__mask && this.__pushMask(a.__mask); }, __pushMaskRect: function (a, b) { this.__numClipRects == this.__clipRects.length && (this.__clipRects[this.__numClipRects] = new fa()); var c = this.__clipRects[this.__numClipRects]; a.__transform(c, b); 0 < this.__numClipRects && ((a = this.__clipRects[this.__numClipRects - 1]), c.__contract(a.x, a.y, a.width, a.height)); 0 > c.height && (c.height = 0); 0 > c.width && (c.width = 0); this.__currentClipRect = c; this.__numClipRects++; }, __render: function (a) { this.element.style.background = this.__stage.__transparent ? 'none' : this.__stage.__colorString; this.__z = 1; this.__renderDrawable(a); }, __renderDrawable: function (a) { if (null != a) switch (a.__drawableType) { case 2: Rc.renderDrawable(a, this); break; case 3: Wf.renderDrawable(a, this); break; case 4: case 5: Im.renderDrawable(a, this); break; case 6: Jm.renderDrawable(a, this); break; case 7: cc.renderDrawable(a, this); break; case 8: bh.renderDrawable(a, this); break; case 9: Dg.renderDrawable(a, this); break; case 10: null != a.stage && a.__worldVisible && a.__renderable ? (a.__active || (this.__initializeElement(a, a.__element), (a.__active = !0)), this.__updateClip(a), this.__applyStyle(a, !0, !0, !0)) : a.__active && (this.element.removeChild(a.__element), (a.__active = !1)), Wf.renderDrawable(a, this); } }, __renderDrawableClear: function (a) { if (null != a) switch (a.__drawableType) { case 2: Rc.renderDrawableClear(a, this); break; case 3: Wf.renderDrawableClear(a, this); break; case 4: case 5: Im.renderDrawableClear(a, this); break; case 6: Jm.renderDrawableClear(a, this); break; case 7: cc.renderDrawableClear(a, this); break; case 8: bh.renderDrawableClear(a, this); break; case 9: Dg.renderDrawableClear(a, this); } }, __setBlendMode: function (a) { null != this.__overrideBlendMode && (a = this.__overrideBlendMode); this.__blendMode != a && (this.__blendMode = a); }, __updateClip: function (a) { if (null == this.__currentClipRect) (a.__worldClipChanged = null != a.__worldClip), (a.__worldClip = null); else { null == a.__worldClip && (a.__worldClip = new fa()); var b = fa.__pool.get(), c = Ia.__pool.get(); c.copyFrom(a.__renderTransform); c.invert(); this.__currentClipRect.__transform(b, c); b.equals(a.__worldClip) ? (a.__worldClipChanged = !1) : (a.__worldClip.copyFrom(b), (a.__worldClipChanged = !0)); fa.__pool.release(b); Ia.__pool.release(c); } }, __class__: Qi }); var df = function (a) { this.byteCode = a; this.precisionHint = 1; this.__glSourceDirty = !0; this.__numPasses = 1; this.__data = hx._new(a); }; h['openfl.display.Shader'] = df; df.__name__ = 'openfl.display.Shader'; df.prototype = { byteCode: null, glProgram: null, precisionHint: null, program: null, __alpha: null, __bitmap: null, __colorMultiplier: null, __colorOffset: null, __context: null, __data: null, __glFragmentSource: null, __glSourceDirty: null, __glVertexSource: null, __hasColorTransform: null, __inputBitmapData: null, __isGenerated: null, __matrix: null, __numPasses: null, __paramBool: null, __paramFloat: null, __paramInt: null, __position: null, __textureCoord: null, __texture: null, __textureSize: null, __clearUseArray: function () { for (var a = 0, b = this.__paramBool; a < b.length; ) { var c = b[a]; ++a; c.__useArray = !1; } a = 0; for (b = this.__paramFloat; a < b.length; ) (c = b[a]), ++a, (c.__useArray = !1); a = 0; for (b = this.__paramInt; a < b.length; ) (c = b[a]), ++a, (c.__useArray = !1); }, __createGLShader: function (a, b) { var c = this.__context.gl, e = c.createShader(b); c.shaderSource(e, a); c.compileShader(e); 0 == c.getShaderParameter(e, c.COMPILE_STATUS) && ((b = b == c.VERTEX_SHADER ? 'Error compiling vertex shader' : 'Error compiling fragment shader'), (b += '\n' + c.getShaderInfoLog(e)), Xa.error(b + ('\n' + a), { fileName: 'openfl/display/Shader.hx', lineNumber: 331, className: 'openfl.display.Shader', methodName: '__createGLShader' })); return e; }, __createGLProgram: function (a, b) { var c = this.__context.gl; a = this.__createGLShader(a, c.VERTEX_SHADER); var e = this.__createGLShader(b, c.FRAGMENT_SHADER); b = c.createProgram(); for (var f = 0, d = this.__paramFloat; f < d.length; ) { var p = d[f]; ++f; if (-1 < p.name.indexOf('Position') && U.startsWith(p.name, 'openfl_')) { c.bindAttribLocation(b, 0, p.name); break; } } c.attachShader(b, a); c.attachShader(b, e); c.linkProgram(b); 0 == c.getProgramParameter(b, c.LINK_STATUS) && ((c = 'Unable to initialize the shader program\n' + c.getProgramInfoLog(b)), Xa.error(c, { fileName: 'openfl/display/Shader.hx', lineNumber: 364, className: 'openfl.display.Shader', methodName: '__createGLProgram' })); return b; }, __disable: function () { null != this.program && this.__disableGL(); }, __disableGL: function () { for ( var a = this.__context.gl, b = 0, c = 0, e = this.__inputBitmapData; c < e.length; ) { var f = e[c]; ++c; f.__disableGL(this.__context, b); ++b; } c = 0; for (e = this.__paramBool; c < e.length; ) (b = e[c]), ++c, b.__disableGL(this.__context); c = 0; for (e = this.__paramFloat; c < e.length; ) (b = e[c]), ++c, b.__disableGL(this.__context); c = 0; for (e = this.__paramInt; c < e.length; ) (b = e[c]), ++c, b.__disableGL(this.__context); this.__context.__bindGLArrayBuffer(null); 'opengl' == this.__context.__context.type && a.disable(a.TEXTURE_2D); }, __enable: function () { this.__init(); null != this.program && this.__enableGL(); }, __enableGL: function () { for ( var a = 0, b = this.__context.gl, c = 0, e = this.__inputBitmapData; c < e.length; ) { var f = e[c]; ++c; b.uniform1i(f.index, a); ++a; } 'opengl' == this.__context.__context.type && 0 < a && b.enable(b.TEXTURE_2D); }, __init: function () { null == this.__data && (this.__data = hx._new(null)); null == this.__glFragmentSource || null == this.__glVertexSource || (null != this.program && !this.__glSourceDirty) || this.__initGL(); }, __initGL: function () { if (this.__glSourceDirty || null == this.__paramBool) (this.__glSourceDirty = !1), (this.program = null), (this.__inputBitmapData = []), (this.__paramBool = []), (this.__paramFloat = []), (this.__paramInt = []), this.__processGLData(this.get_glVertexSource(), 'attribute'), this.__processGLData(this.get_glVertexSource(), 'uniform'), this.__processGLData(this.get_glFragmentSource(), 'uniform'); if (null != this.__context && null == this.program) { var a = this.__context.gl, b = '#ifdef GL_ES\n\t\t\t\t' + (1 == this.precisionHint ? '#ifdef GL_FRAGMENT_PRECISION_HIGH\n\t\t\t\tprecision highp float;\n\t\t\t\t#else\n\t\t\t\tprecision mediump float;\n\t\t\t\t#endif' : 'precision lowp float;') + '\n\t\t\t\t#endif\n\t\t\t\t', c = b + this.get_glVertexSource(); b += this.get_glFragmentSource(); var e = c + b; Object.prototype.hasOwnProperty.call(this.__context.__programs.h, e) ? (this.program = this.__context.__programs.h[e]) : ((this.program = this.__context.createProgram(1)), (this.program.__glProgram = this.__createGLProgram(c, b)), (this.__context.__programs.h[e] = this.program)); if (null != this.program) { this.glProgram = this.program.__glProgram; c = 0; for (b = this.__inputBitmapData; c < b.length; ) (e = b[c]), ++c, (e.index = e.__isUniform ? a.getUniformLocation(this.glProgram, e.name) : a.getAttribLocation(this.glProgram, e.name)); c = 0; for (b = this.__paramBool; c < b.length; ) (e = b[c]), ++c, (e.index = e.__isUniform ? a.getUniformLocation(this.glProgram, e.name) : a.getAttribLocation(this.glProgram, e.name)); c = 0; for (b = this.__paramFloat; c < b.length; ) (e = b[c]), ++c, (e.index = e.__isUniform ? a.getUniformLocation(this.glProgram, e.name) : a.getAttribLocation(this.glProgram, e.name)); c = 0; for (b = this.__paramInt; c < b.length; ) (e = b[c]), ++c, (e.index = e.__isUniform ? a.getUniformLocation(this.glProgram, e.name) : a.getAttribLocation(this.glProgram, e.name)); } } }, __processGLData: function (a, b) { var c = 0, e; for ( e = 'uniform' == b ? new Ja('uniform ([A-Za-z0-9]+) ([A-Za-z0-9_]+)', '') : new Ja('attribute ([A-Za-z0-9]+) ([A-Za-z0-9_]+)', ''); e.matchSub(a, c); ) { var f = e.matched(1); var d = e.matched(2); if (!U.startsWith(d, 'gl_')) { c = 'uniform' == b; if (U.startsWith(f, 'sampler')) { f = new Km(); f.name = d; f.__isUniform = c; this.__inputBitmapData.push(f); switch (d) { case 'bitmap': this.__bitmap = f; break; case 'openfl_Texture': this.__texture = f; } this.__data[d] = f; this.__isGenerated && (this[d] = f); } else if ( !Object.prototype.hasOwnProperty.call(this.__data, d) || null == Z.field(this.__data, d) ) { switch (f) { case 'bool': var p = 0; break; case 'bvec2': p = 1; break; case 'bvec3': p = 2; break; case 'bvec4': p = 3; break; case 'dvec2': case 'vec2': p = 5; break; case 'dvec3': case 'vec3': p = 6; break; case 'double': case 'float': p = 4; break; case 'ivec3': case 'uvec3': p = 10; break; case 'ivec4': case 'uvec4': p = 11; break; case 'mat2': case 'mat2x2': p = 12; break; case 'mat2x3': p = 13; break; case 'mat2x4': p = 14; break; case 'mat3x2': p = 15; break; case 'mat3': case 'mat3x3': p = 16; break; case 'mat3x4': p = 17; break; case 'mat4': case 'mat4x4': p = 20; break; case 'mat4x2': p = 18; break; case 'mat4x3': p = 19; break; case 'int': case 'uint': p = 8; break; case 'ivec2': case 'uvec2': p = 9; break; case 'dvec4': case 'vec4': p = 7; break; default: p = null; } switch (p) { case 1: case 5: case 9: f = 2; break; case 3: case 7: case 11: case 12: f = 4; break; case 2: case 6: case 10: f = 3; break; case 16: f = 9; break; case 20: f = 16; break; default: f = 1; } switch (p) { case 12: var l = 2; break; case 16: l = 3; break; case 20: l = 4; break; default: l = 1; } switch (p) { case 0: case 1: case 2: case 3: var k = new Ri(); k.set_name(d); k.type = p; k.__arrayLength = l; k.__isBool = !0; k.__isUniform = c; k.__length = f; this.__paramBool.push(k); 'openfl_HasColorTransform' == d && (this.__hasColorTransform = k); this.__data[d] = k; this.__isGenerated && (this[d] = k); break; case 8: case 9: case 10: case 11: k = new Ri(); k.set_name(d); k.type = p; k.__arrayLength = l; k.__isInt = !0; k.__isUniform = c; k.__length = f; this.__paramInt.push(k); this.__data[d] = k; this.__isGenerated && (this[d] = k); break; default: k = new Ri(); k.set_name(d); k.type = p; k.__arrayLength = l; 0 < l && ((p = l * l), (p = null != p ? new Float32Array(p) : null), (k.__uniformMatrix = p)); k.__isFloat = !0; k.__isUniform = c; k.__length = f; this.__paramFloat.push(k); if (U.startsWith(d, 'openfl_')) switch (d) { case 'openfl_Alpha': this.__alpha = k; break; case 'openfl_ColorMultiplier': this.__colorMultiplier = k; break; case 'openfl_ColorOffset': this.__colorOffset = k; break; case 'openfl_Matrix': this.__matrix = k; break; case 'openfl_Position': this.__position = k; break; case 'openfl_TextureCoord': this.__textureCoord = k; break; case 'openfl_TextureSize': this.__textureSize = k; } this.__data[d] = k; this.__isGenerated && (this[d] = k); } } d = e.matchedPos(); c = d.pos + d.len; } } }, __update: function () { null != this.program && this.__updateGL(); }, __updateFromBuffer: function (a, b) { null != this.program && this.__updateGLFromBuffer(a, b); }, __updateGL: function () { for (var a = 0, b = 0, c = this.__inputBitmapData; b < c.length; ) { var e = c[b]; ++b; e.__updateGL(this.__context, a); ++a; } b = 0; for (c = this.__paramBool; b < c.length; ) (a = c[b]), ++b, a.__updateGL(this.__context); b = 0; for (c = this.__paramFloat; b < c.length; ) (a = c[b]), ++b, a.__updateGL(this.__context); b = 0; for (c = this.__paramInt; b < c.length; ) (a = c[b]), ++b, a.__updateGL(this.__context); }, __updateGLFromBuffer: function (a, b) { for (var c = 0, e, f, d, p, l, k = 0, n = a.inputCount; k < n; ) (l = k++), (e = a.inputRefs[l]), (f = a.inputs[l]), (d = a.inputFilter[l]), (p = a.inputMipFilter[l]), (l = a.inputWrap[l]), null != f && (e.__updateGL(this.__context, c, f, d, p, l), ++c); k = this.__context.gl; 0 < a.paramDataLength ? (null == a.paramDataBuffer && (a.paramDataBuffer = k.createBuffer()), this.__context.__bindGLArrayBuffer(a.paramDataBuffer), bc.bufferData(k, k.ARRAY_BUFFER, a.paramData, k.DYNAMIC_DRAW)) : this.__context.__bindGLArrayBuffer(null); f = e = c = 0; d = a.paramBoolCount; p = a.paramFloatCount; var h = a.paramData, m = null, t = null, u = null; k = 0; for (n = a.paramCount; k < n; ) { l = k++; var q = !1; if (l < d) { var r = a.paramRefs_Bool[c]; for (var w = 0, x = a.overrideBoolCount; w < x; ) { var z = w++; if (r.name == a.overrideBoolNames[z]) { m = a.overrideBoolValues[z]; q = !0; break; } } q ? r.__updateGL(this.__context, m) : r.__updateGLFromBuffer( this.__context, h, a.paramPositions[l], a.paramLengths[l], b ); ++c; } else if (l < d + p) { r = a.paramRefs_Float[e]; w = 0; for (x = a.overrideFloatCount; w < x; ) if (((z = w++), r.name == a.overrideFloatNames[z])) { t = a.overrideFloatValues[z]; q = !0; break; } q ? r.__updateGL(this.__context, t) : r.__updateGLFromBuffer( this.__context, h, a.paramPositions[l], a.paramLengths[l], b ); ++e; } else { r = a.paramRefs_Int[f]; w = 0; for (x = a.overrideIntCount; w < x; ) if (((z = w++), r.name == a.overrideIntNames[z])) { u = a.overrideIntValues[z]; q = !0; break; } q ? r.__updateGL(this.__context, u) : r.__updateGLFromBuffer( this.__context, h, a.paramPositions[l], a.paramLengths[l], b ); ++f; } } }, get_data: function () { (this.__glSourceDirty || null == this.__data) && this.__init(); return this.__data; }, set_data: function (a) { return (this.__data = a); }, get_glFragmentSource: function () { return this.__glFragmentSource; }, set_glFragmentSource: function (a) { a != this.__glFragmentSource && (this.__glSourceDirty = !0); return (this.__glFragmentSource = a); }, get_glVertexSource: function () { return this.__glVertexSource; }, set_glVertexSource: function (a) { a != this.__glVertexSource && (this.__glSourceDirty = !0); return (this.__glVertexSource = a); }, __class__: df, __properties__: { set_glVertexSource: 'set_glVertexSource', get_glVertexSource: 'get_glVertexSource', set_glFragmentSource: 'set_glFragmentSource', get_glFragmentSource: 'get_glFragmentSource', set_data: 'set_data', get_data: 'get_data' } }; var Lm = function (a) { null == this.__glFragmentSource && (this.__glFragmentSource = 'varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\tvec4 color = texture2D (openfl_Texture, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n\n\t\t}'); null == this.__glVertexSource && (this.__glVertexSource = 'attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t}'); df.call(this, a); this.__isGenerated = !0; this.__initGL(); }; h['openfl.display.DisplayObjectShader'] = Lm; Lm.__name__ = 'openfl.display.DisplayObjectShader'; Lm.__super__ = df; Lm.prototype = r(df.prototype, { openfl_Alpha: null, openfl_ColorMultiplier: null, openfl_ColorOffset: null, openfl_Position: null, openfl_TextureCoord: null, openfl_Matrix: null, openfl_HasColorTransform: null, openfl_TextureSize: null, openfl_Texture: null, __class__: Lm }); var Wo = function (a, b) { db.call(this); this.name = a; this.frame = b; }; h['openfl.display.FrameLabel'] = Wo; Wo.__name__ = 'openfl.display.FrameLabel'; Wo.__super__ = db; Wo.prototype = r(db.prototype, { frame: null, name: null, __class__: Wo }); var Cw = function (a, b) { this.script = a; this.frame = b; }; h['openfl.display.FrameScript'] = Cw; Cw.__name__ = 'openfl.display.FrameScript'; Cw.prototype = { frame: null, script: null, __class__: Cw }; var Ve = function (a) { this.__dirty = !0; this.__owner = a; this.__commands = new De(); this.__positionY = this.__positionX = this.__strokePadding = 0; this.__renderTransform = new Ia(); this.__usedShaderBuffers = new K(); this.__worldTransform = new Ia(); this.__height = this.__width = 0; this.__shaderBufferPool = new ud(function () { return new Mm(); }); this.moveTo(0, 0); }; h['openfl.display.Graphics'] = Ve; Ve.__name__ = 'openfl.display.Graphics'; Ve.prototype = { __bounds: null, __commands: null, __dirty: null, __hardwareDirty: null, __height: null, __managed: null, __positionX: null, __positionY: null, __quadBuffer: null, __renderTransform: null, __shaderBufferPool: null, __softwareDirty: null, __strokePadding: null, __transformDirty: null, __triangleIndexBuffer: null, __triangleIndexBufferCount: null, __triangleIndexBufferData: null, __usedShaderBuffers: null, __vertexBuffer: null, __vertexBufferCount: null, __vertexBufferCountUVT: null, __vertexBufferData: null, __vertexBufferDataUVT: null, __vertexBufferUVT: null, __visible: null, __owner: null, __width: null, __worldTransform: null, __canvas: null, __context: null, __bitmap: null, beginBitmapFill: function (a, b, c, e) { null == e && (e = !1); null == c && (c = !0); this.__commands.beginBitmapFill(a, null != b ? b.clone() : null, c, e); this.__visible = !0; }, beginFill: function (a, b) { null == b && (b = 1); null == a && (a = 0); this.__commands.beginFill(a & 16777215, b); 0 < b && (this.__visible = !0); }, beginGradientFill: function (a, b, c, e, f, d, p, l) { null == l && (l = 0); null == p && (p = 1); null == d && (d = 0); if (null != b && 0 != b.length) { if (null == c) { c = []; for (var g = 0, k = b.length; g < k; ) g++, c.push(1); } if (null == e) for (e = [], g = 0, k = b.length; g < k; ) { var h = g++; e.push(Math.ceil((h / b.length) * 255)); } if (!(c.length < b.length || e.length < b.length)) for (this.__commands.beginGradientFill(a, b, c, e, f, d, p, l), g = 0; g < c.length; ) if (((a = c[g]), ++g, 0 < a)) { this.__visible = !0; break; } } }, beginShaderFill: function (a, b) { null != a && ((b = this.__shaderBufferPool.get()), this.__usedShaderBuffers.add(b), b.update(a), this.__commands.beginShaderFill(b)); }, clear: function () { for (var a = this.__usedShaderBuffers.h; null != a; ) { var b = a.item; a = a.next; this.__shaderBufferPool.release(b); } this.__usedShaderBuffers.clear(); this.__commands.clear(); this.__strokePadding = 0; null != this.__bounds && (this.set___dirty(!0), (this.__transformDirty = !0), (this.__bounds = null)); this.__visible = !1; this.__positionY = this.__positionX = 0; this.moveTo(0, 0); }, copyFrom: function (a) { this.__bounds = null != a.__bounds ? a.__bounds.clone() : null; this.__commands = a.__commands.copy(); this.set___dirty(!0); this.__strokePadding = a.__strokePadding; this.__positionX = a.__positionX; this.__positionY = a.__positionY; this.__transformDirty = !0; this.__visible = a.__visible; }, cubicCurveTo: function (a, b, c, e, f, d) { this.__inflateBounds( this.__positionX - this.__strokePadding, this.__positionY - this.__strokePadding ); this.__inflateBounds( this.__positionX + this.__strokePadding, this.__positionY + this.__strokePadding ); var g = f, l = f; if ( !((a < f && a > this.__positionX) || (a > f && a < this.__positionX)) || !((c < f && c > this.__positionX) || (c > f && c < this.__positionX)) ) { var k = 2 * this.__positionX - 4 * a + 2 * c, n = a - this.__positionX, h = -this.__positionX + 3 * a + f - 3 * c, m = (-k + Math.sqrt(k * k - 4 * n * h)) / (2 * h); k = (-k - Math.sqrt(k * k - 4 * n * h)) / (2 * h); 0 < m && 1 > m && (g = this.__calculateBezierCubicPoint(m, this.__positionX, a, c, f)); 0 < k && 1 > k && (l = this.__calculateBezierCubicPoint(k, this.__positionX, a, c, f)); } var t = d, u = d; (((b < d && b > this.__positionX) || (b > d && b < this.__positionX)) && ((e < d && e > this.__positionX) || (e > d && e < this.__positionX))) || ((k = 2 * this.__positionX - 4 * b + 2 * e), (n = b - this.__positionX), (h = -this.__positionX + 3 * b + d - 3 * e), (m = (-k + Math.sqrt(k * k - 4 * n * h)) / (2 * h)), (k = (-k - Math.sqrt(k * k - 4 * n * h)) / (2 * h)), 0 < m && 1 > m && (t = this.__calculateBezierCubicPoint(m, this.__positionX, b, e, d)), 0 < k && 1 > k && (u = this.__calculateBezierCubicPoint(k, this.__positionX, b, e, d))); this.__inflateBounds(g - this.__strokePadding, t - this.__strokePadding); this.__inflateBounds(g + this.__strokePadding, t + this.__strokePadding); this.__inflateBounds(l - this.__strokePadding, u - this.__strokePadding); this.__inflateBounds(l + this.__strokePadding, u + this.__strokePadding); this.__positionX = f; this.__positionY = d; this.__inflateBounds( this.__positionX - this.__strokePadding, this.__positionY - this.__strokePadding ); this.__inflateBounds( this.__positionX + this.__strokePadding, this.__positionY + this.__strokePadding ); this.__commands.cubicCurveTo(a, b, c, e, f, d); this.set___dirty(!0); }, curveTo: function (a, b, c, e) { this.__inflateBounds( this.__positionX - this.__strokePadding, this.__positionY - this.__strokePadding ); this.__inflateBounds( this.__positionX + this.__strokePadding, this.__positionY + this.__strokePadding ); var f = (a < c && a > this.__positionX) || (a > c && a < this.__positionX) ? c : this.__calculateBezierQuadPoint( (this.__positionX - a) / (this.__positionX - 2 * a + c), this.__positionX, a, c ); var d = (b < e && b > this.__positionY) || (b > e && b < this.__positionY) ? e : this.__calculateBezierQuadPoint( (this.__positionY - b) / (this.__positionY - 2 * b + e), this.__positionY, b, e ); this.__inflateBounds(f - this.__strokePadding, d - this.__strokePadding); this.__inflateBounds(f + this.__strokePadding, d + this.__strokePadding); this.__positionX = c; this.__positionY = e; this.__commands.curveTo(a, b, c, e); this.set___dirty(!0); }, drawCircle: function (a, b, c) { 0 >= c || (this.__inflateBounds(a - c - this.__strokePadding, b - c - this.__strokePadding), this.__inflateBounds(a + c + this.__strokePadding, b + c + this.__strokePadding), this.__commands.drawCircle(a, b, c), this.set___dirty(!0)); }, drawEllipse: function (a, b, c, e) { 0 >= c || 0 >= e || (this.__inflateBounds(a - this.__strokePadding, b - this.__strokePadding), this.__inflateBounds(a + c + this.__strokePadding, b + e + this.__strokePadding), this.__commands.drawEllipse(a, b, c, e), this.set___dirty(!0)); }, drawGraphicsData: function (a) { for (a = a.iterator(); a.hasNext(); ) { var b = a.next(); switch (b.__graphicsDataType) { case 0: if (null != b.fill) { var c = b.thickness; isNaN(c) && (c = null); switch (b.fill.__graphicsFillType) { case 0: var e = b.fill; this.lineStyle( c, e.color, e.alpha, b.pixelHinting, b.scaleMode, b.caps, b.joints, b.miterLimit ); break; case 1: e = b.fill; this.lineStyle( c, 0, 1, b.pixelHinting, b.scaleMode, b.caps, b.joints, b.miterLimit ); this.lineGradientStyle( e.type, e.colors, e.alphas, e.ratios, e.matrix, e.spreadMethod, e.interpolationMethod, e.focalPointRatio ); break; case 2: (e = b.fill), this.lineStyle( c, 0, 1, b.pixelHinting, b.scaleMode, b.caps, b.joints, b.miterLimit ), this.lineBitmapStyle(e.bitmapData, e.matrix, e.repeat, e.smooth); } } else this.lineStyle(); break; case 1: e = b; this.beginFill(e.color, e.alpha); break; case 2: e = b; this.beginGradientFill( e.type, e.colors, e.alphas, e.ratios, e.matrix, e.spreadMethod, e.interpolationMethod, e.focalPointRatio ); break; case 3: this.drawPath(b.commands, b.data, b.winding); break; case 4: e = b; this.beginBitmapFill(e.bitmapData, e.matrix, e.repeat, e.smooth); break; case 5: this.endFill(); break; case 6: this.drawQuads(b.rects, b.indices, b.transforms); break; case 7: this.drawTriangles(b.vertices, b.indices, b.uvtData, b.culling); break; case 8: this.beginShaderFill(b.shader, b.matrix); } } }, drawPath: function (a, b, c) { null == c && (c = 0); var e = 0; 1 == c && this.__commands.windingNonZero(); a = a.iterator(); a: for (; a.hasNext(); ) switch (a.next()) { case 1: this.moveTo(b.get(e), b.get(e + 1)); e += 2; break; case 2: this.lineTo(b.get(e), b.get(e + 1)); e += 2; break; case 3: this.curveTo(b.get(e), b.get(e + 1), b.get(e + 2), b.get(e + 3)); e += 4; break; case 4: this.moveTo(b.get(e + 2), b.get(e + 3)); break a; case 5: this.lineTo(b.get(e + 2), b.get(e + 3)); break a; case 6: this.cubicCurveTo( b.get(e), b.get(e + 1), b.get(e + 2), b.get(e + 3), b.get(e + 4), b.get(e + 5) ), (e += 6); } }, drawQuads: function (a, b, c) { if (null != a) { var e = null != b, f = !1, d = !1, p = e ? b.get_length() : Math.floor(a.get_length() / 4); if (0 != p) { null != c && (c.get_length() >= 6 * p ? (d = f = !0) : c.get_length() >= 4 * p ? (f = !0) : c.get_length() >= 2 * p && (d = !0)); for ( var l = fa.__pool.get(), k = Ia.__pool.get(), n = Infinity, h = Infinity, m = -Infinity, t = -Infinity, u, r = 0; r < p; ) { var q = r++; u = e ? 4 * b.get(q) : 4 * q; 0 > u || (l.setTo(0, 0, a.get(u + 2), a.get(u + 3)), 0 >= l.width || 0 >= l.height || (f && d ? ((u = 6 * q), k.setTo( c.get(u), c.get(u + 1), c.get(u + 2), c.get(u + 3), c.get(u + 4), c.get(u + 5) )) : f ? ((u = 4 * q), k.setTo(c.get(u), c.get(u + 1), c.get(u + 2), c.get(u + 3), l.x, l.y)) : d ? ((u = 2 * q), (k.tx = c.get(u)), (k.ty = c.get(u + 1))) : ((k.tx = l.x), (k.ty = l.y)), l.__transform(l, k), n > l.x && (n = l.x), h > l.y && (h = l.y), m < l.get_right() && (m = l.get_right()), t < l.get_bottom() && (t = l.get_bottom()))); } this.__inflateBounds(n, h); this.__inflateBounds(m, t); this.__commands.drawQuads(a, b, c); this.set___dirty(!0); this.__visible = !0; fa.__pool.release(l); Ia.__pool.release(k); } } }, drawRect: function (a, b, c, e) { if (0 != c || 0 != e) { var f = 0 > c ? -1 : 1, d = 0 > e ? -1 : 1; this.__inflateBounds(a - this.__strokePadding * f, b - this.__strokePadding * d); this.__inflateBounds( a + c + this.__strokePadding * f, b + e + this.__strokePadding * d ); this.__commands.drawRect(a, b, c, e); this.set___dirty(!0); } }, drawRoundRect: function (a, b, c, e, f, d) { if (0 != c || 0 != e) { var g = 0 > c ? -1 : 1, l = 0 > e ? -1 : 1; this.__inflateBounds(a - this.__strokePadding * g, b - this.__strokePadding * l); this.__inflateBounds( a + c + this.__strokePadding * g, b + e + this.__strokePadding * l ); this.__commands.drawRoundRect(a, b, c, e, f, d); this.set___dirty(!0); } }, drawRoundRectComplex: function (a, b, c, e, f, d, p, l) { if (!(0 >= c || 0 >= e)) { this.__inflateBounds(a - this.__strokePadding, b - this.__strokePadding); this.__inflateBounds(a + c + this.__strokePadding, b + e + this.__strokePadding); var g = a + c, k = b + e; c = c < e ? 2 * c : 2 * e; f < c || (f = c); d < c || (d = c); p < c || (p = c); l < c || (l = c); c = 1 - Math.sin((Math.PI / 180) * 45); e = 1 - Math.tan((Math.PI / 180) * 22.5); var h = l * c, m = l * e; this.moveTo(g, k - l); this.curveTo(g, k - m, g - h, k - h); this.curveTo(g - m, k, g - l, k); h = p * c; m = p * e; this.lineTo(a + p, k); this.curveTo(a + m, k, a + h, k - h); this.curveTo(a, k - m, a, k - p); h = f * c; m = f * e; this.lineTo(a, b + f); this.curveTo(a, b + m, a + h, b + h); this.curveTo(a + m, b, a + f, b); h = d * c; m = d * e; this.lineTo(g - d, b); this.curveTo(g - m, b, g - h, b + h); this.curveTo(g, b + m, g, b + d); this.lineTo(g, k - l); this.set___dirty(!0); } }, drawTriangles: function (a, b, c, e) { null == e && (e = 1); if (null != a && 0 != a.get_length()) { var f = (a.get_length() / 2) | 0; if (null == b) { if (0 != f % 3) throw M.thrown(new qi('Not enough vertices to close a triangle.')); b = yb.toIntVector(null); for (var d = 0, p = f; d < p; ) { var l = d++; b.push(l); } } null == e && (e = 1); var k = Infinity, n = Infinity, h = -Infinity, m = -Infinity; d = 0; for (p = f; d < p; ) (l = d++), (f = a.get(2 * l)), (l = a.get(2 * l + 1)), k > f && (k = f), n > l && (n = l), h < f && (h = f), m < l && (m = l); this.__inflateBounds(k, n); this.__inflateBounds(h, m); this.__commands.drawTriangles(a, b, c, e); this.set___dirty(!0); this.__visible = !0; } }, endFill: function () { this.__commands.endFill(); }, lineBitmapStyle: function (a, b, c, e) { null == e && (e = !1); null == c && (c = !0); this.__commands.lineBitmapStyle(a, null != b ? b.clone() : null, c, e); }, lineGradientStyle: function (a, b, c, e, f, d, p, l) { null == l && (l = 0); null == p && (p = 1); null == d && (d = 0); this.__commands.lineGradientStyle(a, b, c, e, f, d, p, l); }, lineStyle: function (a, b, c, e, f, d, p, l) { null == l && (l = 3); null == f && (f = 2); null == e && (e = !1); null == c && (c = 1); null == b && (b = 0); null != a && (1 == p ? a > this.__strokePadding && (this.__strokePadding = a) : a / 2 > this.__strokePadding && (this.__strokePadding = a / 2)); this.__commands.lineStyle(a, b, c, e, f, d, p, l); null != a && (this.__visible = !0); }, lineTo: function (a, b) { isFinite(a) && isFinite(b) && (this.__inflateBounds( this.__positionX - this.__strokePadding, this.__positionY - this.__strokePadding ), this.__inflateBounds( this.__positionX + this.__strokePadding, this.__positionY + this.__strokePadding ), (this.__positionX = a), (this.__positionY = b), this.__inflateBounds( this.__positionX - this.__strokePadding, this.__positionY - this.__strokePadding ), this.__inflateBounds( this.__positionX + 2 * this.__strokePadding, this.__positionY + this.__strokePadding ), this.__commands.lineTo(a, b), this.set___dirty(!0)); }, moveTo: function (a, b) { this.__positionX = a; this.__positionY = b; this.__commands.moveTo(a, b); }, overrideBlendMode: function (a) { null == a && (a = 10); this.__commands.overrideBlendMode(a); }, readGraphicsData: function (a) { null == a && (a = !0); var b = yb.toObjectVector(null); this.__owner.__readGraphicsData(b, a); return b; }, __calculateBezierCubicPoint: function (a, b, c, e, f) { var d = 1 - a; return b * d * d * d + 3 * c * a * d * d + 3 * e * d * a * a + f * a * a * a; }, __calculateBezierQuadPoint: function (a, b, c, e) { var f = 1 - a; return f * f * b + 2 * f * a * c + a * a * e; }, __cleanup: function () { null != this.__bounds && null != this.__canvas && (this.set___dirty(!0), (this.__transformDirty = !0)); this.__context = this.__canvas = this.__bitmap = null; }, __getBounds: function (a, b) { if (null != this.__bounds) { var c = fa.__pool.get(); this.__bounds.__transform(c, b); a.__expand(c.x, c.y, c.width, c.height); fa.__pool.release(c); } }, __hitTest: function (a, b, c, e) { if (null == this.__bounds) return !1; var f = e.a * e.d - e.b * e.c, d = 0 == f ? -e.tx : (1 / f) * (e.c * (e.ty - b) + e.d * (a - e.tx)); f = e.a * e.d - e.b * e.c; a = 0 == f ? -e.ty : (1 / f) * (e.a * (b - e.ty) + e.b * (e.tx - a)); return d > this.__bounds.x && a > this.__bounds.y && this.__bounds.contains(d, a) ? c ? C.hitTest(this, d, a) : !0 : !1; }, __inflateBounds: function (a, b) { null == this.__bounds ? ((this.__bounds = new fa(a, b, 0, 0)), (this.__transformDirty = !0)) : (a < this.__bounds.x && ((this.__bounds.width += this.__bounds.x - a), (this.__bounds.x = a), (this.__transformDirty = !0)), b < this.__bounds.y && ((this.__bounds.height += this.__bounds.y - b), (this.__bounds.y = b), (this.__transformDirty = !0)), a > this.__bounds.x + this.__bounds.width && (this.__bounds.width = a - this.__bounds.x), b > this.__bounds.y + this.__bounds.height && (this.__bounds.height = b - this.__bounds.y)); }, __readGraphicsData: function (a) { for ( var b = new Xf(this.__commands), c = null, e, f = this.__commands.types, d = 0, p = this.__commands.get_length(); d < p; ) { e = d++; e = f[e]; switch (e._hx_index) { case 4: case 5: case 6: case 7: case 9: case 10: case 17: case 18: null == c && (c = new Si()); break; default: null != c && (a.push(c), (c = null)); } switch (e._hx_index) { case 0: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.BEGIN_BITMAP_FILL; e = b; a.push( new Nm( e.buffer.o[e.oPos], e.buffer.o[e.oPos + 1], e.buffer.b[e.bPos], e.buffer.b[e.bPos + 1] ) ); break; case 1: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.BEGIN_FILL; e = b; a.push(new ak(e.buffer.i[e.iPos], 1)); break; case 2: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.BEGIN_GRADIENT_FILL; e = b; a.push( new Om( e.buffer.o[e.oPos], e.buffer.ii[e.iiPos], e.buffer.ff[e.ffPos], e.buffer.ii[e.iiPos + 1], e.buffer.o[e.oPos + 1], e.buffer.o[e.oPos + 2], e.buffer.o[e.oPos + 3], e.buffer.f[e.fPos] ) ); break; case 3: break; case 4: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.CUBIC_CURVE_TO; e = b; c.cubicCurveTo( e.buffer.f[e.fPos], e.buffer.f[e.fPos + 1], e.buffer.f[e.fPos + 2], e.buffer.f[e.fPos + 3], e.buffer.f[e.fPos + 4], e.buffer.f[e.fPos + 5] ); break; case 5: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.CURVE_TO; e = b; c.curveTo( e.buffer.f[e.fPos], e.buffer.f[e.fPos + 1], e.buffer.f[e.fPos + 2], e.buffer.f[e.fPos + 3] ); break; case 6: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.DRAW_CIRCLE; e = b; c.__drawCircle(e.buffer.f[e.fPos], e.buffer.f[e.fPos + 1], e.buffer.f[e.fPos + 2]); break; case 7: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.DRAW_ELLIPSE; e = b; c.__drawEllipse( e.buffer.f[e.fPos], e.buffer.f[e.fPos + 1], e.buffer.f[e.fPos + 2], e.buffer.f[e.fPos + 3] ); break; case 9: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.DRAW_RECT; e = b; c.__drawRect( e.buffer.f[e.fPos], e.buffer.f[e.fPos + 1], e.buffer.f[e.fPos + 2], e.buffer.f[e.fPos + 3] ); break; case 10: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.DRAW_ROUND_RECT; e = b; c.__drawRoundRect( e.buffer.f[e.fPos], e.buffer.f[e.fPos + 1], e.buffer.f[e.fPos + 2], e.buffer.f[e.fPos + 3], e.buffer.f[e.fPos + 4], null != e.buffer.o[e.oPos] ? e.buffer.o[e.oPos] : e.buffer.f[e.fPos + 4] ); break; case 13: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.END_FILL; a.push(new Pm()); break; case 14: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.LINE_BITMAP_STYLE; c = null; break; case 15: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.LINE_GRADIENT_STYLE; break; case 16: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.LINE_STYLE; var l = b; e = new Qm( l.buffer.o[l.oPos], l.buffer.b[l.bPos], l.buffer.o[l.oPos + 1], l.buffer.o[l.oPos + 2], l.buffer.o[l.oPos + 3], l.buffer.f[l.fPos + 1] ); e.fill = new ak(l.buffer.i[l.iPos], l.buffer.f[l.fPos]); a.push(e); break; case 17: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.LINE_TO; e = b; c.lineTo(e.buffer.f[e.fPos], e.buffer.f[e.fPos + 1]); break; case 18: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.MOVE_TO; e = b; c.moveTo(e.buffer.f[e.fPos], e.buffer.f[e.fPos + 1]); break; default: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = e; } } null != c && a.push(c); }, __update: function (a) { if (!(null == this.__bounds || 0 >= this.__bounds.width || 0 >= this.__bounds.height)) { var b = this.__owner.__renderTransform; if (null != b) { var c = 0 == b.b ? Math.abs(b.a) : Math.sqrt(b.a * b.a + b.b * b.b); var e = 0 == b.c ? Math.abs(b.d) : Math.sqrt(b.c * b.c + b.d * b.d); null != a && ((c = 0 == a.b ? c * a.a : c * Math.sqrt(a.a * a.a + a.b * a.b)), (e = 0 == a.c ? e * a.d : e * Math.sqrt(a.c * a.c + a.d * a.d))); a = this.__bounds.width * c; e *= this.__bounds.height; if (1 > a || 1 > e) (1 <= this.__width || 1 <= this.__height) && this.set___dirty(!0), (this.__height = this.__width = 0); else { null != Ve.maxTextureWidth && a > Ve.maxTextureWidth && (a = Ve.maxTextureWidth); null != Ve.maxTextureWidth && e > Ve.maxTextureHeight && (e = Ve.maxTextureHeight); this.__renderTransform.a = a / this.__bounds.width; this.__renderTransform.d = e / this.__bounds.height; c = 1 / this.__renderTransform.a; var f = 1 / this.__renderTransform.d; this.__worldTransform.a = c * b.a; this.__worldTransform.b = c * b.b; this.__worldTransform.c = f * b.c; this.__worldTransform.d = f * b.d; f = this.__bounds.x; var d = this.__bounds.y; c = f * b.a + d * b.c + b.tx; b = f * b.b + d * b.d + b.ty; this.__worldTransform.tx = Math.round(c); this.__worldTransform.ty = Math.round(b); f = this.__worldTransform; d = f.a * f.d - f.b * f.c; this.__renderTransform.tx = 0 == d ? -f.tx : (1 / d) * (f.c * (f.ty - b) + f.d * (c - f.tx)); f = this.__worldTransform; d = f.a * f.d - f.b * f.c; this.__renderTransform.ty = 0 == d ? -f.ty : (1 / d) * (f.a * (b - f.ty) + f.b * (f.tx - c)); a = Math.ceil(a + 1); e = Math.ceil(e + 1); (a == this.__width && e == this.__height) || this.set___dirty(!0); this.__width = a; this.__height = e; } } } }, set___dirty: function (a) { if (a && null != this.__owner) { var b = this.__owner; b.__renderDirty || ((b.__renderDirty = !0), b.__setParentRenderDirty()); } a && (this.__hardwareDirty = this.__softwareDirty = !0); return (this.__dirty = a); }, __class__: Ve, __properties__: { set___dirty: 'set___dirty' } }; var Eh = function () {}; h['openfl.display.IGraphicsFill'] = Eh; Eh.__name__ = 'openfl.display.IGraphicsFill'; Eh.__isInterface__ = !0; Eh.prototype = { __graphicsFillType: null, __class__: Eh }; var Yf = function () {}; h['openfl.display.IGraphicsData'] = Yf; Yf.__name__ = 'openfl.display.IGraphicsData'; Yf.__isInterface__ = !0; Yf.prototype = { __graphicsDataType: null, __class__: Yf }; var Nm = function (a, b, c, e) { null == e && (e = !1); null == c && (c = !0); this.bitmapData = a; this.matrix = b; this.repeat = c; this.smooth = e; this.__graphicsDataType = 4; this.__graphicsFillType = 2; }; h['openfl.display.GraphicsBitmapFill'] = Nm; Nm.__name__ = 'openfl.display.GraphicsBitmapFill'; Nm.__interfaces__ = [Eh, Yf]; Nm.prototype = { bitmapData: null, matrix: null, repeat: null, smooth: null, __graphicsDataType: null, __graphicsFillType: null, __class__: Nm }; var Pm = function () { this.__graphicsDataType = 5; this.__graphicsFillType = 3; }; h['openfl.display.GraphicsEndFill'] = Pm; Pm.__name__ = 'openfl.display.GraphicsEndFill'; Pm.__interfaces__ = [Eh, Yf]; Pm.prototype = { __graphicsDataType: null, __graphicsFillType: null, __class__: Pm }; var Om = function (a, b, c, e, f, d, p, l) { null == l && (l = 0); null == a && (a = 0); null == d && (d = 0); null == p && (p = 1); this.type = a; this.colors = b; this.alphas = c; this.ratios = e; this.matrix = f; this.spreadMethod = d; this.interpolationMethod = p; this.focalPointRatio = l; this.__graphicsDataType = 2; this.__graphicsFillType = 1; }; h['openfl.display.GraphicsGradientFill'] = Om; Om.__name__ = 'openfl.display.GraphicsGradientFill'; Om.__interfaces__ = [Eh, Yf]; Om.prototype = { alphas: null, colors: null, focalPointRatio: null, interpolationMethod: null, matrix: null, ratios: null, spreadMethod: null, type: null, __graphicsDataType: null, __graphicsFillType: null, __class__: Om }; var Rm = function () {}; h['openfl.display.IGraphicsPath'] = Rm; Rm.__name__ = 'openfl.display.IGraphicsPath'; Rm.__isInterface__ = !0; var Si = function (a, b, c) { null == c && (c = 0); this.commands = a; this.data = b; this.winding = c; this.__graphicsDataType = 3; }; h['openfl.display.GraphicsPath'] = Si; Si.__name__ = 'openfl.display.GraphicsPath'; Si.__interfaces__ = [Rm, Yf]; Si.prototype = { commands: null, data: null, winding: null, __graphicsDataType: null, cubicCurveTo: function (a, b, c, e, f, d) { null == this.commands && (this.commands = yb.toIntVector(null)); null == this.data && (this.data = yb.toFloatVector(null)); this.commands.push(6); this.data.push(a); this.data.push(b); this.data.push(c); this.data.push(e); this.data.push(f); this.data.push(d); }, curveTo: function (a, b, c, e) { null == this.commands && (this.commands = yb.toIntVector(null)); null == this.data && (this.data = yb.toFloatVector(null)); this.commands.push(3); this.data.push(a); this.data.push(b); this.data.push(c); this.data.push(e); }, lineTo: function (a, b) { null == this.commands && (this.commands = yb.toIntVector(null)); null == this.data && (this.data = yb.toFloatVector(null)); this.commands.push(2); this.data.push(a); this.data.push(b); }, moveTo: function (a, b) { null == this.commands && (this.commands = yb.toIntVector(null)); null == this.data && (this.data = yb.toFloatVector(null)); this.commands.push(1); this.data.push(a); this.data.push(b); }, wideLineTo: function (a, b) { null == this.commands && (this.commands = yb.toIntVector(null)); null == this.data && (this.data = yb.toFloatVector(null)); this.commands.push(2); this.data.push(a); this.data.push(b); }, wideMoveTo: function (a, b) { null == this.commands && (this.commands = yb.toIntVector(null)); null == this.data && (this.data = yb.toFloatVector(null)); this.commands.push(1); this.data.push(a); this.data.push(b); }, __drawCircle: function (a, b, c) { this.__drawRoundRect(a - c, b - c, 2 * c, 2 * c, 2 * c, 2 * c); }, __drawEllipse: function (a, b, c, e) { this.__drawRoundRect(a, b, c, e, c, e); }, __drawRect: function (a, b, c, e) { this.moveTo(a, b); this.lineTo(a + c, b); this.lineTo(a + c, b + e); this.lineTo(a, b + e); this.lineTo(a, b); }, __drawRoundRect: function (a, b, c, e, f, d) { f *= 0.5; d *= 0.5; f > c / 2 && (f = c / 2); d > e / 2 && (d = e / 2); c = a + c; e = b + e; var g = -f + 0.7071067811865476 * f, l = -f + 0.41421356237309503 * f, k = -d + 0.7071067811865476 * d, n = -d + 0.41421356237309503 * d; this.moveTo(c, e - d); this.curveTo(c, e + n, c + g, e + k); this.curveTo(c + l, e, c - f, e); this.lineTo(a + f, e); this.curveTo(a - l, e, a - g, e + k); this.curveTo(a, e + n, a, e - d); this.lineTo(a, b + d); this.curveTo(a, b - n, a - g, b - k); this.curveTo(a - l, b, a + f, b); this.lineTo(c - f, b); this.curveTo(c + l, b, c + g, b - k); this.curveTo(c, b - n, c, b + d); this.lineTo(c, e - d); }, __class__: Si }; var Xo = function (a, b, c) { this.rects = a; this.indices = b; this.transforms = c; this.__graphicsDataType = 6; }; h['openfl.display.GraphicsQuadPath'] = Xo; Xo.__name__ = 'openfl.display.GraphicsQuadPath'; Xo.__interfaces__ = [Rm, Yf]; Xo.prototype = { indices: null, rects: null, transforms: null, __graphicsDataType: null, __class__: Xo }; var Sm = function (a) { null == this.__glFragmentSource && (this.__glFragmentSource = 'varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tvoid main(void) {\n\n\t\t\tvec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n\n\t\t}'); null == this.__glVertexSource && (this.__glVertexSource = 'attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t}'); df.call(this, a); this.__isGenerated = !0; this.__initGL(); }; h['openfl.display.GraphicsShader'] = Sm; Sm.__name__ = 'openfl.display.GraphicsShader'; Sm.__super__ = df; Sm.prototype = r(df.prototype, { openfl_Alpha: null, openfl_ColorMultiplier: null, openfl_ColorOffset: null, openfl_Position: null, openfl_TextureCoord: null, openfl_Matrix: null, openfl_HasColorTransform: null, openfl_TextureSize: null, bitmap: null, __class__: Sm }); var Yo = function (a, b) { this.shader = a; this.matrix = b; this.__graphicsDataType = 8; this.__graphicsFillType = 4; }; h['openfl.display.GraphicsShaderFill'] = Yo; Yo.__name__ = 'openfl.display.GraphicsShaderFill'; Yo.__interfaces__ = [Eh, Yf]; Yo.prototype = { matrix: null, shader: null, __graphicsDataType: null, __graphicsFillType: null, __class__: Yo }; var ak = function (a, b) { null == b && (b = 1); null == a && (a = 0); this.alpha = b; this.color = a; this.__graphicsDataType = 1; this.__graphicsFillType = 0; }; h['openfl.display.GraphicsSolidFill'] = ak; ak.__name__ = 'openfl.display.GraphicsSolidFill'; ak.__interfaces__ = [Eh, Yf]; ak.prototype = { alpha: null, color: null, __graphicsDataType: null, __graphicsFillType: null, __class__: ak }; var Dw = function () {}; h['openfl.display.IGraphicsStroke'] = Dw; Dw.__name__ = 'openfl.display.IGraphicsStroke'; Dw.__isInterface__ = !0; var Qm = function (a, b, c, e, d, g, p) { null == g && (g = 3); null == d && (d = 2); null == e && (e = 0); null == c && (c = 2); null == b && (b = !1); null == a && (a = NaN); this.caps = e; this.fill = p; this.joints = d; this.miterLimit = g; this.pixelHinting = b; this.scaleMode = c; this.thickness = a; this.__graphicsDataType = 0; }; h['openfl.display.GraphicsStroke'] = Qm; Qm.__name__ = 'openfl.display.GraphicsStroke'; Qm.__interfaces__ = [Dw, Yf]; Qm.prototype = { caps: null, fill: null, joints: null, miterLimit: null, pixelHinting: null, scaleMode: null, thickness: null, __graphicsDataType: null, __class__: Qm }; var Zo = function (a, b, c, e) { null == e && (e = 1); this.vertices = a; this.indices = b; this.uvtData = c; this.culling = e; this.__graphicsDataType = 7; }; h['openfl.display.GraphicsTrianglePath'] = Zo; Zo.__name__ = 'openfl.display.GraphicsTrianglePath'; Zo.__interfaces__ = [Rm, Yf]; Zo.prototype = { culling: null, indices: null, uvtData: null, vertices: null, __graphicsDataType: null, __class__: Zo }; var Di = function () {}; h['openfl.display.ITileContainer'] = Di; Di.__name__ = 'openfl.display.ITileContainer'; Di.__isInterface__ = !0; Di.prototype = { get_numTiles: null, addTile: null, addTileAt: null, addTiles: null, contains: null, getTileAt: null, getTileIndex: null, removeTile: null, removeTileAt: null, removeTiles: null, setTileIndex: null, sortTiles: null, swapTiles: null, swapTilesAt: null, __class__: Di, __properties__: { get_numTiles: 'get_numTiles' } }; var Cm = function (a) { null == a && (a = 80); this.quality = a; }; h['openfl.display.JPEGEncoderOptions'] = Cm; Cm.__name__ = 'openfl.display.JPEGEncoderOptions'; Cm.prototype = { quality: null, __class__: Cm }; var Ew = { fromInt: function (a) { return a; }, fromString: function (a) { switch (a) { case 'bevel': return 0; case 'miter': return 1; case 'round': return 2; default: return null; } }, toInt: function (a) { return a; }, toString: function (a) { switch (a) { case 0: return 'bevel'; case 1: return 'miter'; case 2: return 'round'; default: return null; } } }, Gj = function () { Ya.call(this); this.contentLoaderInfo = fg.create(this); this.uncaughtErrorEvents = this.contentLoaderInfo.uncaughtErrorEvents; this.__unloaded = !0; }; h['openfl.display.Loader'] = Gj; Gj.__name__ = 'openfl.display.Loader'; Gj.__super__ = Ya; Gj.prototype = r(Ya.prototype, { content: null, contentLoaderInfo: null, uncaughtErrorEvents: null, __library: null, __path: null, __unloaded: null, close: function () { Dc.notImplemented({ fileName: 'openfl/display/Loader.hx', lineNumber: 229, className: 'openfl.display.Loader', methodName: 'close' }); }, load: function (a, b) { this.unload(); this.contentLoaderInfo.loaderURL = Ma.get_current().get_loaderInfo().url; this.contentLoaderInfo.url = a.url; this.__unloaded = !1; if (null == a.contentType || '' == a.contentType) { b = ''; this.__path = a.url; var c = this.__path.indexOf('?'); -1 < c && (this.__path = this.__path.substring(0, c)); for (; U.endsWith(this.__path, '/'); ) this.__path = this.__path.substring(0, this.__path.length - 1); U.endsWith(this.__path, '.bundle') && ((this.__path += '/library.json'), (a.url = -1 < c ? this.__path + a.url.substring(c) : this.__path)); c = this.__path.lastIndexOf('.'); -1 < c && (b = this.__path.substring(c + 1)); switch (b) { case 'gif': b = 'image/gif'; break; case 'jpeg': case 'jpg': b = 'image/jpeg'; break; case 'js': b = 'application/javascript'; break; case 'json': b = 'application/json'; break; case 'png': b = 'image/png'; break; case 'swf': b = 'application/x-shockwave-flash'; break; default: b = 'application/x-www-form-urlencoded'; } this.contentLoaderInfo.contentType = b; } else this.contentLoaderInfo.contentType = a.contentType; if ( -1 < this.contentLoaderInfo.contentType.indexOf('image/') && 'GET' == a.method && (null == a.requestHeaders || 0 == a.requestHeaders.length) && null == a.userAgent ) ja.loadFromFile(a.url) .onComplete(q(this, this.BitmapData_onLoad)) .onError(q(this, this.BitmapData_onError)) .onProgress(q(this, this.BitmapData_onProgress)); else { b = new sh(); b.dataFormat = 0; if ( -1 < this.contentLoaderInfo.contentType.indexOf('/json') || -1 < this.contentLoaderInfo.contentType.indexOf('/javascript') || -1 < this.contentLoaderInfo.contentType.indexOf('/ecmascript') ) b.dataFormat = 1; b.addEventListener('complete', q(this, this.loader_onComplete)); b.addEventListener('ioError', q(this, this.loader_onError)); b.addEventListener('progress', q(this, this.loader_onProgress)); b.load(a); } }, loadBytes: function (a, b) { ja.loadFromBytes(a) .onComplete(q(this, this.BitmapData_onLoad)) .onError(q(this, this.BitmapData_onError)); }, removeChild: function (a) { throw M.thrown( new dd('Error #2069: The Loader class does not implement this method.', 2069) ); }, removeChildAt: function (a) { throw M.thrown( new dd('Error #2069: The Loader class does not implement this method.', 2069) ); }, setChildIndex: function (a, b) { throw M.thrown( new dd('Error #2069: The Loader class does not implement this method.', 2069) ); }, unload: function () { this.__unloaded || (null != this.content && this.content.parent == this && Ya.prototype.removeChild.call(this, this.content), null != this.__library && (Da.unloadLibrary(this.contentLoaderInfo.url), (this.__library = null)), (this.content = null), (this.contentLoaderInfo.url = null), (this.contentLoaderInfo.contentType = null), (this.contentLoaderInfo.content = null), (this.contentLoaderInfo.bytesLoaded = 0), (this.contentLoaderInfo.bytesTotal = 0), (this.contentLoaderInfo.width = 0), (this.contentLoaderInfo.height = 0), (this.__unloaded = !0), this.contentLoaderInfo.dispatchEvent(new oa('unload'))); }, unloadAndStop: function (a) { null != this.content && this.content.__stopAllMovieClips(); a = 0; for (var b = this.get_numChildren(); a < b; ) { var c = a++; this.getChildAt(c).__stopAllMovieClips(); } this.unload(); }, __dispatchError: function (a) { var b = new qg('ioError'); b.text = a; this.contentLoaderInfo.dispatchEvent(b); }, __setContent: function (a, b, c) { this.content = a; this.contentLoaderInfo.content = a; this.contentLoaderInfo.width = b; this.contentLoaderInfo.height = c; null != a && Ya.prototype.addChildAt.call(this, a, 0); }, BitmapData_onError: function (a) { this.__dispatchError(B.string(a)); }, BitmapData_onLoad: function (a) { null == a ? this.__dispatchError('Unknown error') : (this.__setContent(new Mc(a), a.width, a.height), this.contentLoaderInfo.dispatchEvent(new oa('complete'))); }, BitmapData_onProgress: function (a, b) { var c = new Eg('progress'); c.bytesLoaded = a; c.bytesTotal = b; this.contentLoaderInfo.dispatchEvent(c); }, loader_onComplete: function (a) { var b = this; a = a.target; if ( null != this.contentLoaderInfo.contentType && -1 < this.contentLoaderInfo.contentType.indexOf('/json') ) { var c = Ic.parse(a.data, Ah.directory(this.__path)); if (null == c) this.__dispatchError('Cannot parse asset manifest'); else { var e = qb.fromManifest(c); if (null == e) this.__dispatchError('Cannot open library'); else if (e instanceof le) e.load() .onComplete(function (a) { b.__library = e; Da.registerLibrary(b.contentLoaderInfo.url, b.__library); null == c.name || Da.hasLibrary(c.name) || Da.registerLibrary(c.name, b.__library); a = b.__library.getMovieClip(''); b.__setContent(a, a.get_width() | 0, a.get_height() | 0); b.contentLoaderInfo.dispatchEvent(new oa('complete')); }) .onError(function (a) { b.__dispatchError(a); }); } } else null != this.contentLoaderInfo.contentType && (-1 < this.contentLoaderInfo.contentType.indexOf('/javascript') || -1 < this.contentLoaderInfo.contentType.indexOf('/ecmascript')) ? (this.__setContent(new Ca(), 0, 0), eval('(function () {' + B.string(a.data) + '})()'), this.contentLoaderInfo.dispatchEvent(new oa('complete'))) : ((this.contentLoaderInfo.bytes = a.data), ja .loadFromBytes(a.data) .onComplete(q(this, this.BitmapData_onLoad)) .onError(q(this, this.BitmapData_onError))); }, loader_onError: function (a) { a.target = this.contentLoaderInfo; this.contentLoaderInfo.dispatchEvent(a); }, loader_onProgress: function (a) { a.target = this.contentLoaderInfo; this.contentLoaderInfo.dispatchEvent(a); }, __class__: Gj }); var fg = function () { db.call(this); this.applicationDomain = Ti.currentDomain; this.bytesTotal = this.bytesLoaded = 0; this.childAllowsParent = !0; this.parameters = {}; }; h['openfl.display.LoaderInfo'] = fg; fg.__name__ = 'openfl.display.LoaderInfo'; fg.create = function (a) { var b = new fg(); b.uncaughtErrorEvents = new Tm(); null != a ? (b.loader = a) : (b.url = fg.__rootURL); return b; }; fg.__super__ = db; fg.prototype = r(db.prototype, { applicationDomain: null, bytes: null, bytesLoaded: null, bytesTotal: null, childAllowsParent: null, content: null, contentType: null, frameRate: null, height: null, loader: null, loaderURL: null, parameters: null, parentAllowsChild: null, sameDomain: null, sharedEvents: null, uncaughtErrorEvents: null, url: null, width: null, __completed: null, __complete: function () { this.__completed || (this.bytesLoaded < this.bytesTotal && (this.bytesLoaded = this.bytesTotal), this.__update(this.bytesLoaded, this.bytesTotal), (this.__completed = !0), this.dispatchEvent(new oa('complete'))); }, __update: function (a, b) { this.bytesLoaded = a; this.bytesTotal = b; this.dispatchEvent(new Eg('progress', !1, !1, a, b)); }, __class__: fg }); var pg = function () { Ca.call(this); this.__enabled = !0; if (null != pg.__constructor) { var a = pg.__constructor; pg.__constructor = null; a(this); } }; h['openfl.display.MovieClip'] = pg; pg.__name__ = 'openfl.display.MovieClip'; pg.fromTimeline = function (a) { var b = new pg(); b.attachTimeline(a); return b; }; pg.__super__ = Ca; pg.prototype = r(Ca.prototype, { __enabled: null, __hasDown: null, __hasOver: null, __hasUp: null, __mouseIsDown: null, __scene: null, __timeline: null, addFrameScript: function (a, b) { null != this.__timeline && this.__timeline.__addFrameScript(a, b); }, attachTimeline: function (a) { this.__timeline = a; null != a && (a.__attachMovieClip(this), this.play()); }, gotoAndPlay: function (a, b) { null != this.__timeline && this.__timeline.__gotoAndPlay(a, b); }, gotoAndStop: function (a, b) { null != this.__timeline && this.__timeline.__gotoAndStop(a, b); }, nextFrame: function () { null != this.__timeline && this.__timeline.__nextFrame(); }, nextScene: function () { null != this.__timeline && this.__timeline.__nextScene(); }, play: function () { null != this.__timeline && this.__timeline.__play(); }, prevFrame: function () { null != this.__timeline && this.__timeline.__prevFrame(); }, prevScene: function () { null != this.__timeline && this.__timeline.__prevScene(); }, stop: function () { null != this.__timeline && this.__timeline.__stop(); }, __enterFrame: function (a) { null != this.__timeline && this.__timeline.__enterFrame(a); for (var b = 0, c = this.__children; b < c.length; ) { var e = c[b]; ++b; e.__enterFrame(a); } }, __stopAllMovieClips: function () { Ca.prototype.__stopAllMovieClips.call(this); this.stop(); }, __tabTest: function (a) { this.__enabled && Ca.prototype.__tabTest.call(this, a); }, __onMouseDown: function (a) { this.__enabled && this.__hasDown && this.gotoAndStop('_down'); this.__mouseIsDown = !0; null != this.stage && this.stage.addEventListener('mouseUp', q(this, this.__onMouseUp), !0); }, __onMouseUp: function (a) { this.__mouseIsDown = !1; null != this.stage && this.stage.removeEventListener('mouseUp', q(this, this.__onMouseUp)); this.__buttonMode && (a.target == this && this.__enabled && this.__hasOver ? this.gotoAndStop('_over') : this.__enabled && this.__hasUp && this.gotoAndStop('_up')); }, __onRollOut: function (a) { this.__enabled && (this.__mouseIsDown && this.__hasOver ? this.gotoAndStop('_over') : this.__hasUp && this.gotoAndStop('_up')); }, __onRollOver: function (a) { this.__enabled && this.__hasOver && this.gotoAndStop('_over'); }, set_buttonMode: function (a) { if (this.__buttonMode != a) { if (a) { this.__hasUp = this.__hasOver = this.__hasDown = !1; for (var b = 0, c = this.get_currentLabels(); b < c.length; ) { var e = c[b]; ++b; switch (e.name) { case '_down': this.__hasDown = !0; break; case '_over': this.__hasOver = !0; break; case '_up': this.__hasUp = !0; } } if (this.__hasDown || this.__hasOver || this.__hasUp) this.addEventListener('rollOver', q(this, this.__onRollOver)), this.addEventListener('rollOut', q(this, this.__onRollOut)), this.addEventListener('mouseDown', q(this, this.__onMouseDown)); } else this.removeEventListener('rollOver', q(this, this.__onRollOver)), this.removeEventListener('rollOut', q(this, this.__onRollOut)), this.removeEventListener('mouseDown', q(this, this.__onMouseDown)); this.__buttonMode = a; } return a; }, get_currentFrame: function () { return null != this.__timeline ? this.__timeline.__currentFrame : 1; }, get_currentFrameLabel: function () { return null != this.__timeline ? this.__timeline.__currentFrameLabel : null; }, get_currentLabel: function () { return null != this.__timeline ? this.__timeline.__currentLabel : null; }, get_currentLabels: function () { return null != this.__timeline ? this.__timeline.__currentLabels.slice() : []; }, get_currentScene: function () { if (null != this.__timeline) return this.__timeline.__currentScene; null == this.__scene && (this.__scene = new $o('', [], 1)); return this.__scene; }, get_enabled: function () { return this.__enabled; }, set_enabled: function (a) { return (this.__enabled = a); }, get_framesLoaded: function () { return null != this.__timeline ? this.__timeline.__framesLoaded : 1; }, get_isPlaying: function () { return null != this.__timeline ? this.__timeline.__isPlaying : !1; }, get_scenes: function () { return null != this.__timeline ? this.__timeline.scenes.slice() : [this.get_currentScene()]; }, get_totalFrames: function () { return null != this.__timeline ? this.__timeline.__totalFrames : 1; }, __class__: pg, __properties__: r(Ca.prototype.__properties__, { get_totalFrames: 'get_totalFrames', get_scenes: 'get_scenes', get_isPlaying: 'get_isPlaying', get_framesLoaded: 'get_framesLoaded', set_enabled: 'set_enabled', get_enabled: 'get_enabled', get_currentScene: 'get_currentScene', get_currentLabels: 'get_currentLabels', get_currentLabel: 'get_currentLabel', get_currentFrameLabel: 'get_currentFrameLabel', get_currentFrame: 'get_currentFrame' }) }); var Hb = function (a, b) { Te.call(this); this.__context3D = a; this.__context = a.__context; this.__gl = this.gl = a.__context.webgl; this.__defaultRenderTarget = b; this.__flipped = null == this.__defaultRenderTarget; null == Ve.maxTextureWidth && (Ve.maxTextureWidth = Ve.maxTextureHeight = this.__gl.getParameter(this.__gl.MAX_TEXTURE_SIZE)); this.__matrix = ta._new(); this.__values = []; this.__softwareRenderer = new Cg(null); this.__type = 'opengl'; this.__setBlendMode(10); this.__context3D.__setGLBlend(!0); this.__clipRects = []; this.__maskObjects = []; this.__numClipRects = 0; this.__projection = ta._new(); this.__projectionFlipped = ta._new(); this.__stencilReference = 0; this.__tempRect = new fa(); this.__defaultDisplayShader = new Lm(); this.__defaultGraphicsShader = new Sm(); this.__defaultShader = this.__defaultDisplayShader; this.__initShader(this.__defaultShader); this.__scrollRectMasks = new ud(function () { return new Oe(); }); this.__maskShader = new ci(); }; h['openfl.display.OpenGLRenderer'] = Hb; Hb.__name__ = 'openfl.display.OpenGLRenderer'; Hb.__super__ = Te; Hb.prototype = r(Te.prototype, { gl: null, __context3D: null, __clipRects: null, __currentDisplayShader: null, __currentGraphicsShader: null, __currentRenderTarget: null, __currentShader: null, __currentShaderBuffer: null, __defaultDisplayShader: null, __defaultGraphicsShader: null, __defaultRenderTarget: null, __defaultShader: null, __displayHeight: null, __displayWidth: null, __flipped: null, __gl: null, __height: null, __maskShader: null, __matrix: null, __maskObjects: null, __numClipRects: null, __offsetX: null, __offsetY: null, __projection: null, __projectionFlipped: null, __scrollRectMasks: null, __softwareRenderer: null, __stencilReference: null, __tempRect: null, __updatedStencil: null, __upscaled: null, __values: null, __width: null, applyAlpha: function (a) { Hb.__alphaValue[0] = a * this.__worldAlpha; null != this.__currentShaderBuffer ? this.__currentShaderBuffer.addFloatOverride('openfl_Alpha', Hb.__alphaValue) : null != this.__currentShader && null != this.__currentShader.__alpha && (this.__currentShader.__alpha.value = Hb.__alphaValue); }, applyBitmapData: function (a, b, c) { null == c && (c = !1); null != this.__currentShaderBuffer ? null != a && ((Hb.__textureSizeValue[0] = a.__textureWidth), (Hb.__textureSizeValue[1] = a.__textureHeight), this.__currentShaderBuffer.addFloatOverride( 'openfl_TextureSize', Hb.__textureSizeValue )) : null != this.__currentShader && (null != this.__currentShader.__bitmap && ((this.__currentShader.__bitmap.input = a), (this.__currentShader.__bitmap.filter = b && this.__allowSmoothing ? 4 : 5), (this.__currentShader.__bitmap.mipFilter = 2), (this.__currentShader.__bitmap.wrap = c ? 2 : 0)), null != this.__currentShader.__texture && ((this.__currentShader.__texture.input = a), (this.__currentShader.__texture.filter = b && this.__allowSmoothing ? 4 : 5), (this.__currentShader.__texture.mipFilter = 2), (this.__currentShader.__texture.wrap = c ? 2 : 0)), null != this.__currentShader.__textureSize && (null != a ? ((Hb.__textureSizeValue[0] = a.__textureWidth), (Hb.__textureSizeValue[1] = a.__textureHeight), (this.__currentShader.__textureSize.value = Hb.__textureSizeValue)) : (this.__currentShader.__textureSize.value = null))); }, applyColorTransform: function (a) { var b = null != a && !a.__isDefault(!0); this.applyHasColorTransform(b); b ? (a.__setArrays(Hb.__colorMultipliersValue, Hb.__colorOffsetsValue), null != this.__currentShaderBuffer ? (this.__currentShaderBuffer.addFloatOverride( 'openfl_ColorMultiplier', Hb.__colorMultipliersValue ), this.__currentShaderBuffer.addFloatOverride( 'openfl_ColorOffset', Hb.__colorOffsetsValue )) : null != this.__currentShader && (null != this.__currentShader.__colorMultiplier && (this.__currentShader.__colorMultiplier.value = Hb.__colorMultipliersValue), null != this.__currentShader.__colorOffset && (this.__currentShader.__colorOffset.value = Hb.__colorOffsetsValue))) : null != this.__currentShaderBuffer ? (this.__currentShaderBuffer.addFloatOverride( 'openfl_ColorMultiplier', Hb.__emptyColorValue ), this.__currentShaderBuffer.addFloatOverride( 'openfl_ColorOffset', Hb.__emptyColorValue )) : null != this.__currentShader && (null != this.__currentShader.__colorMultiplier && (this.__currentShader.__colorMultiplier.value = Hb.__emptyColorValue), null != this.__currentShader.__colorOffset && (this.__currentShader.__colorOffset.value = Hb.__emptyColorValue)); }, applyHasColorTransform: function (a) { Hb.__hasColorTransformValue[0] = a; null != this.__currentShaderBuffer ? this.__currentShaderBuffer.addBoolOverride( 'openfl_HasColorTransform', Hb.__hasColorTransformValue ) : null != this.__currentShader && null != this.__currentShader.__hasColorTransform && (this.__currentShader.__hasColorTransform.value = Hb.__hasColorTransformValue); }, applyMatrix: function (a) { null != this.__currentShaderBuffer ? this.__currentShaderBuffer.addFloatOverride('openfl_Matrix', a) : null != this.__currentShader && null != this.__currentShader.__matrix && (this.__currentShader.__matrix.value = a); }, getMatrix: function (a) { null != this.gl ? ((a = this.__getMatrix(a, 1)), ta.set(this.__matrix, 0, a[0]), ta.set(this.__matrix, 1, a[1]), ta.set(this.__matrix, 2, a[2]), ta.set(this.__matrix, 3, a[3]), ta.set(this.__matrix, 4, a[4]), ta.set(this.__matrix, 5, a[5]), ta.set(this.__matrix, 6, a[6]), ta.set(this.__matrix, 7, a[7]), ta.set(this.__matrix, 8, a[8]), ta.set(this.__matrix, 9, a[9]), ta.set(this.__matrix, 10, a[10]), ta.set(this.__matrix, 11, a[11]), ta.set(this.__matrix, 12, a[12]), ta.set(this.__matrix, 13, a[13]), ta.set(this.__matrix, 14, a[14]), ta.set(this.__matrix, 15, a[15])) : (ta.identity(this.__matrix), ta.set(this.__matrix, 0, a.a), ta.set(this.__matrix, 1, a.b), ta.set(this.__matrix, 4, a.c), ta.set(this.__matrix, 5, a.d), ta.set(this.__matrix, 12, a.tx), ta.set(this.__matrix, 13, a.ty)); return this.__matrix; }, setShader: function (a) { this.__currentShaderBuffer = null; this.__currentShader != a && (null == a ? ((this.__currentShader = null), this.__context3D.setProgram(null)) : ((this.__currentShader = a), this.__initShader(a), this.__context3D.setProgram(a.program), this.__context3D.__flushGLProgram(), this.__currentShader.__enable(), (this.__context3D.__state.shader = a))); }, setViewport: function () { this.__gl.viewport( this.__offsetX, this.__offsetY, this.__displayWidth, this.__displayHeight ); }, updateShader: function () { null != this.__currentShader && (null != this.__currentShader.__position && (this.__currentShader.__position.__useArray = !0), null != this.__currentShader.__textureCoord && (this.__currentShader.__textureCoord.__useArray = !0), this.__context3D.setProgram(this.__currentShader.program), this.__context3D.__flushGLProgram(), this.__context3D.__flushGLTextures(), this.__currentShader.__update()); }, useAlphaArray: function () { null != this.__currentShader && null != this.__currentShader.__alpha && (this.__currentShader.__alpha.__useArray = !0); }, useColorTransformArray: function () { null != this.__currentShader && (null != this.__currentShader.__colorMultiplier && (this.__currentShader.__colorMultiplier.__useArray = !0), null != this.__currentShader.__colorOffset && (this.__currentShader.__colorOffset.__useArray = !0)); }, __cleanup: function () { 0 < this.__stencilReference && ((this.__stencilReference = 0), this.__context3D.setStencilActions(), this.__context3D.setStencilReferenceValue(0, 0, 0)); 0 < this.__numClipRects && ((this.__numClipRects = 0), this.__scissorRect()); }, __clear: function () { null == this.__stage || this.__stage.__transparent ? this.__context3D.clear(0, 0, 0, 0, 0, 0, 1) : this.__context3D.clear( this.__stage.__colorSplit[0], this.__stage.__colorSplit[1], this.__stage.__colorSplit[2], 1, 0, 0, 1 ); this.__cleared = !0; }, __clearShader: function () { null != this.__currentShader && (null == this.__currentShaderBuffer ? null != this.__currentShader.__bitmap && (this.__currentShader.__bitmap.input = null) : this.__currentShaderBuffer.clearOverride(), null != this.__currentShader.__texture && (this.__currentShader.__texture.input = null), null != this.__currentShader.__textureSize && (this.__currentShader.__textureSize.value = null), null != this.__currentShader.__hasColorTransform && (this.__currentShader.__hasColorTransform.value = null), null != this.__currentShader.__position && (this.__currentShader.__position.value = null), null != this.__currentShader.__matrix && (this.__currentShader.__matrix.value = null), this.__currentShader.__clearUseArray()); }, __copyShader: function (a) { this.__currentShader = a.__currentShader; this.__currentShaderBuffer = a.__currentShaderBuffer; this.__currentDisplayShader = a.__currentDisplayShader; this.__currentGraphicsShader = a.__currentGraphicsShader; }, __getMatrix: function (a, b) { var c = Ia.__pool.get(); c.copyFrom(a); c.concat(this.__worldTransform); if ( 0 == b || (1 == b && 0 == c.b && 0 == c.c && 1.001 > c.a && 0.999 < c.a && 1.001 > c.d && 0.999 < c.d) ) (c.tx = Math.round(c.tx)), (c.ty = Math.round(c.ty)); ta.identity(this.__matrix); ta.set(this.__matrix, 0, c.a); ta.set(this.__matrix, 1, c.b); ta.set(this.__matrix, 4, c.c); ta.set(this.__matrix, 5, c.d); ta.set(this.__matrix, 12, c.tx); ta.set(this.__matrix, 13, c.ty); ta.append(this.__matrix, this.__flipped ? this.__projectionFlipped : this.__projection); this.__values[0] = ta.get(this.__matrix, 0); this.__values[1] = ta.get(this.__matrix, 1); this.__values[2] = ta.get(this.__matrix, 2); this.__values[3] = ta.get(this.__matrix, 3); this.__values[4] = ta.get(this.__matrix, 4); this.__values[5] = ta.get(this.__matrix, 5); this.__values[6] = ta.get(this.__matrix, 6); this.__values[7] = ta.get(this.__matrix, 7); this.__values[8] = ta.get(this.__matrix, 8); this.__values[9] = ta.get(this.__matrix, 9); this.__values[10] = ta.get(this.__matrix, 10); this.__values[11] = ta.get(this.__matrix, 11); this.__values[12] = ta.get(this.__matrix, 12); this.__values[13] = ta.get(this.__matrix, 13); this.__values[14] = ta.get(this.__matrix, 14); this.__values[15] = ta.get(this.__matrix, 15); Ia.__pool.release(c); return this.__values; }, __initShader: function (a) { return null != a ? (null == a.__context && ((a.__context = this.__context3D), a.__init()), a) : this.__defaultShader; }, __initDisplayShader: function (a) { return null != a ? (null == a.__context && ((a.__context = this.__context3D), a.__init()), a) : this.__defaultDisplayShader; }, __initGraphicsShader: function (a) { return null != a ? (null == a.__context && ((a.__context = this.__context3D), a.__init()), a) : this.__defaultGraphicsShader; }, __initShaderBuffer: function (a) { return null != a ? this.__initGraphicsShader(a.shader) : this.__defaultGraphicsShader; }, __popMask: function () { if (0 != this.__stencilReference) { var a = this.__maskObjects.pop(); 1 < this.__stencilReference ? (this.__context3D.setStencilActions(2, 1, 0, 0, 5), this.__context3D.setStencilReferenceValue(this.__stencilReference, 255, 255), this.__context3D.setColorMask(!1, !1, !1, !1), this.__renderDrawableMask(a), this.__stencilReference--, this.__context3D.setStencilActions(2, 1, 5, 5, 5), this.__context3D.setStencilReferenceValue(this.__stencilReference, 255, 0), this.__context3D.setColorMask(!0, !0, !0, !0)) : ((this.__stencilReference = 0), this.__context3D.setStencilActions(), this.__context3D.setStencilReferenceValue(0, 0, 0)); } }, __popMaskObject: function (a, b) { null == b && (b = !0); null != a.__mask && this.__popMask(); b && null != a.__scrollRect && (0 != a.__renderTransform.b || 0 != a.__renderTransform.c ? (this.__scrollRectMasks.release(this.__maskObjects[this.__maskObjects.length - 1]), this.__popMask()) : this.__popMaskRect()); }, __popMaskRect: function () { 0 < this.__numClipRects && (this.__numClipRects--, 0 < this.__numClipRects ? this.__scissorRect(this.__clipRects[this.__numClipRects - 1]) : this.__scissorRect()); }, __pushMask: function (a) { 0 == this.__stencilReference && (this.__context3D.clear(0, 0, 0, 0, 0, 0, 4), (this.__updatedStencil = !0)); this.__context3D.setStencilActions(2, 1, 2, 5, 5); this.__context3D.setStencilReferenceValue(this.__stencilReference, 255, 255); this.__context3D.setColorMask(!1, !1, !1, !1); this.__renderDrawableMask(a); this.__maskObjects.push(a); this.__stencilReference++; this.__context3D.setStencilActions(2, 1, 5, 5, 5); this.__context3D.setStencilReferenceValue(this.__stencilReference, 255, 0); this.__context3D.setColorMask(!0, !0, !0, !0); }, __pushMaskObject: function (a, b) { null == b && (b = !0); b && null != a.__scrollRect && (0 != a.__renderTransform.b || 0 != a.__renderTransform.c ? ((b = this.__scrollRectMasks.get()), b.get_graphics().clear(), b.get_graphics().beginFill(65280), b .get_graphics() .drawRect( a.__scrollRect.x, a.__scrollRect.y, a.__scrollRect.width, a.__scrollRect.height ), b.__renderTransform.copyFrom(a.__renderTransform), this.__pushMask(b)) : this.__pushMaskRect(a.__scrollRect, a.__renderTransform)); null != a.__mask && this.__pushMask(a.__mask); }, __pushMaskRect: function (a, b) { this.__numClipRects == this.__clipRects.length && (this.__clipRects[this.__numClipRects] = new fa()); var c = Ia.__pool.get(); c.copyFrom(b); c.concat(this.__worldTransform); b = this.__clipRects[this.__numClipRects]; a.__transform(b, c); 0 < this.__numClipRects && ((a = this.__clipRects[this.__numClipRects - 1]), b.__contract(a.x, a.y, a.width, a.height)); 0 > b.height && (b.height = 0); 0 > b.width && (b.width = 0); Ia.__pool.release(c); this.__scissorRect(b); this.__numClipRects++; }, __render: function (a) { this.__context3D.setColorMask(!0, !0, !0, !0); this.__context3D.setCulling(3); this.__context3D.setDepthTest(!1, 0); this.__context3D.setStencilActions(); this.__context3D.setStencilReferenceValue(0, 0, 0); this.__context3D.setScissorRectangle(null); this.__blendMode = null; this.__setBlendMode(10); if (null == this.__defaultRenderTarget) { if ( (Hb.__scissorRectangle.setTo( this.__offsetX, this.__offsetY, this.__displayWidth, this.__displayHeight ), this.__context3D.setScissorRectangle(Hb.__scissorRectangle), (this.__upscaled = 1 != this.__worldTransform.a || 1 != this.__worldTransform.d), this.__renderDrawable(a), 0 < this.__offsetX || 0 < this.__offsetY) ) 0 < this.__offsetX && (Hb.__scissorRectangle.setTo(0, 0, this.__offsetX, this.__height), this.__context3D.setScissorRectangle(Hb.__scissorRectangle), this.__context3D.__flushGL(), this.__gl.clearColor(0, 0, 0, 1), this.__gl.clear(this.__gl.COLOR_BUFFER_BIT), Hb.__scissorRectangle.setTo( this.__offsetX + this.__displayWidth, 0, this.__width, this.__height ), this.__context3D.setScissorRectangle(Hb.__scissorRectangle), this.__context3D.__flushGL(), this.__gl.clearColor(0, 0, 0, 1), this.__gl.clear(this.__gl.COLOR_BUFFER_BIT)), 0 < this.__offsetY && (Hb.__scissorRectangle.setTo(0, 0, this.__width, this.__offsetY), this.__context3D.setScissorRectangle(Hb.__scissorRectangle), this.__context3D.__flushGL(), this.__gl.clearColor(0, 0, 0, 1), this.__gl.clear(this.__gl.COLOR_BUFFER_BIT), Hb.__scissorRectangle.setTo( 0, this.__offsetY + this.__displayHeight, this.__width, this.__height ), this.__context3D.setScissorRectangle(Hb.__scissorRectangle), this.__context3D.__flushGL(), this.__gl.clearColor(0, 0, 0, 1), this.__gl.clear(this.__gl.COLOR_BUFFER_BIT)), this.__context3D.setScissorRectangle(null); } else { Hb.__scissorRectangle.setTo( this.__offsetX, this.__offsetY, this.__displayWidth, this.__displayHeight ); this.__context3D.setScissorRectangle(Hb.__scissorRectangle); var b = a.__mask, c = a.__scrollRect; a.__mask = null; a.__scrollRect = null; this.__renderDrawable(a); a.__mask = b; a.__scrollRect = c; } this.__context3D.present(); }, __renderDrawable: function (a) { if (null != a) switch (a.__drawableType) { case 0: Um.renderDrawable(a, this); break; case 2: vf.renderDrawable(a, this); break; case 3: ch.renderDrawable(a, this); break; case 4: case 5: Vm.renderDrawable(a, this); break; case 6: Wm.renderDrawable(a, this); break; case 7: dh.renderDrawable(a, this); break; case 8: wf.renderDrawable(a, this); break; case 9: ea.renderDrawable(a, this); } }, __renderDrawableMask: function (a) { if (null != a) switch (a.__drawableType) { case 0: Um.renderDrawableMask(a, this); break; case 2: vf.renderDrawableMask(a, this); break; case 3: ch.renderDrawableMask(a, this); break; case 4: case 5: Vm.renderDrawableMask(a, this); break; case 6: Wm.renderDrawableMask(a, this); break; case 7: dh.renderDrawableMask(a, this); break; case 8: wf.renderDrawableMask(a, this); break; case 9: ea.renderDrawableMask(a, this); } }, __renderFilterPass: function (a, b, c, e) { null == e && (e = !0); if (null != a && null != b && null != this.__defaultRenderTarget) { var d = this.__context3D.__state.renderToTexture, g = this.__context3D.__state.renderToTextureDepthStencil, p = this.__context3D.__state.renderToTextureAntiAlias, l = this.__context3D.__state.renderToTextureSurfaceSelector; this.__context3D.setRenderToTexture( this.__defaultRenderTarget.getTexture(this.__context3D), !1 ); e && this.__context3D.clear(0, 0, 0, 0, 0, 0, 1); b = this.__initShader(b); this.setShader(b); this.applyAlpha(1); this.applyBitmapData(a, c); this.applyColorTransform(null); this.applyMatrix(this.__getMatrix(a.__renderTransform, 1)); this.updateShader(); c = a.getVertexBuffer(this.__context3D); null != b.__position && this.__context3D.setVertexBufferAt(b.__position.index, c, 0, 3); null != b.__textureCoord && this.__context3D.setVertexBufferAt(b.__textureCoord.index, c, 3, 2); a = a.getIndexBuffer(this.__context3D); this.__context3D.drawTriangles(a); null != d ? this.__context3D.setRenderToTexture(d, g, p, l) : this.__context3D.setRenderToBackBuffer(); this.__clearShader(); } }, __resize: function (a, b) { this.__width = a; this.__height = b; a = null == this.__defaultRenderTarget ? this.__stage.stageWidth : this.__defaultRenderTarget.width; b = null == this.__defaultRenderTarget ? this.__stage.stageHeight : this.__defaultRenderTarget.height; if (null == this.__defaultRenderTarget) { var c = this.__worldTransform; c = Math.round(0 * c.a + 0 * c.c + c.tx); } else c = 0; this.__offsetX = c; null == this.__defaultRenderTarget ? ((c = this.__worldTransform), (c = Math.round(0 * c.b + 0 * c.d + c.ty))) : (c = 0); this.__offsetY = c; null == this.__defaultRenderTarget ? ((c = this.__worldTransform), (c = Math.round(a * c.a + 0 * c.c + c.tx - this.__offsetX))) : (c = a); this.__displayWidth = c; null == this.__defaultRenderTarget ? ((c = this.__worldTransform), (c = Math.round(0 * c.b + b * c.d + c.ty - this.__offsetY))) : (c = b); this.__displayHeight = c; ta.createOrtho( this.__projection, 0, this.__displayWidth + 2 * this.__offsetX, 0, this.__displayHeight + 2 * this.__offsetY, -1e3, 1e3 ); ta.createOrtho( this.__projectionFlipped, 0, this.__displayWidth + 2 * this.__offsetX, this.__displayHeight + 2 * this.__offsetY, 0, -1e3, 1e3 ); }, __resumeClipAndMask: function (a) { 0 < this.__stencilReference ? (this.__context3D.setStencilActions(2, 1, 5, 5, 5), this.__context3D.setStencilReferenceValue(this.__stencilReference, 255, 0)) : (this.__context3D.setStencilActions(), this.__context3D.setStencilReferenceValue(0, 0, 0)); 0 < this.__numClipRects ? this.__scissorRect(this.__clipRects[this.__numClipRects - 1]) : this.__scissorRect(); }, __scissorRect: function (a) { if (null != a) { var b = Math.floor(a.x), c = Math.floor(a.y), e = 0 < a.width ? Math.ceil(a.get_right()) - b : 0; a = 0 < a.height ? Math.ceil(a.get_bottom()) - c : 0; 0 > e && (e = 0); 0 > a && (a = 0); Hb.__scissorRectangle.setTo(b, c, e, a); this.__context3D.setScissorRectangle(Hb.__scissorRectangle); } else this.__context3D.setScissorRectangle(null); }, __setBlendMode: function (a) { null != this.__overrideBlendMode && (a = this.__overrideBlendMode); if (this.__blendMode != a) switch (((this.__blendMode = a), a)) { case 0: this.__context3D.setBlendFactors(2, 2); break; case 9: this.__context3D.setBlendFactors(1, 5); break; case 12: this.__context3D.setBlendFactors(2, 6); break; case 14: this.__context3D.setBlendFactors(2, 2); this.__context3D.__setGLBlendEquation(this.__gl.FUNC_REVERSE_SUBTRACT); break; default: this.__context3D.setBlendFactors(2, 5); } }, __setRenderTarget: function (a) { this.__defaultRenderTarget = a; this.__flipped = null == a; null != a && this.__resize(a.width, a.height); }, __setShaderBuffer: function (a) { this.setShader(a.shader); this.__currentShaderBuffer = a; }, __suspendClipAndMask: function () { 0 < this.__stencilReference && (this.__context3D.setStencilActions(), this.__context3D.setStencilReferenceValue(0, 0, 0)); 0 < this.__numClipRects && this.__scissorRect(); }, __updateShaderBuffer: function (a) { null != this.__currentShader && null != this.__currentShaderBuffer && this.__currentShader.__updateFromBuffer(this.__currentShaderBuffer, a); }, __class__: Hb }); var Vo = function (a) { null == a && (a = !1); this.fastCompression = a; }; h['openfl.display.PNGEncoderOptions'] = Vo; Vo.__name__ = 'openfl.display.PNGEncoderOptions'; Vo.prototype = { fastCompression: null, __class__: Vo }; var ap = function (a) { this.onComplete = new Ld(); this.display = a; null != a && (a.addEventListener('unload', q(this, this.display_onUnload)), Ma.get_current().addChild(a)); }; h['openfl.display.Preloader'] = ap; ap.__name__ = 'openfl.display.Preloader'; ap.prototype = { onComplete: null, complete: null, display: null, ready: null, start: function () { this.ready = !0; Ma.get_current().get_loaderInfo().__complete(); if (null != this.display) { var a = new oa('complete', !0, !0); this.display.dispatchEvent(a); a.isDefaultPrevented() || this.display.dispatchEvent(new oa('unload')); } else this.complete || ((this.complete = !0), this.onComplete.dispatch()); }, update: function (a, b) { Ma.get_current().get_loaderInfo().__update(a, b); null != this.display && this.display.dispatchEvent(new Eg('progress', !0, !0, a, b)); }, display_onUnload: function (a) { null != this.display && (this.display.removeEventListener('unload', q(this, this.display_onUnload)), this.display.parent == Ma.get_current() && Ma.get_current().removeChild(this.display), Ma.get_current().stage.set_focus(null), (this.display = null)); this.ready && !this.complete && ((this.complete = !0), this.onComplete.dispatch()); }, __class__: ap }; var Xm = function () { Ca.call(this); var a = this.getBackgroundColor(), b = 0; 70 > 0.299 * ((a >> 16) & 255) + 0.587 * ((a >> 8) & 255) + 0.114 * (a & 255) && (b = 16777215); a = this.getHeight() / 2 - 3.5; var c = this.getWidth() - 60; this.outline = new Oe(); this.outline.get_graphics().beginFill(b, 0.07); this.outline.get_graphics().drawRect(0, 0, c, 7); this.outline.set_x(30); this.outline.set_y(a); this.outline.set_alpha(0); this.addChild(this.outline); this.progress = new Oe(); this.progress.get_graphics().beginFill(b, 0.35); this.progress.get_graphics().drawRect(0, 0, c - 4, 3); this.progress.set_x(32); this.progress.set_y(a + 2); this.progress.set_scaleX(0); this.progress.set_alpha(0); this.addChild(this.progress); this.startAnimation = Ma.getTimer() + 100; this.endAnimation = this.startAnimation + 1e3; this.addEventListener('addedToStage', q(this, this.this_onAddedToStage)); }; h['openfl.display.DefaultPreloader'] = Xm; Xm.__name__ = 'openfl.display.DefaultPreloader'; Xm.__super__ = Ca; Xm.prototype = r(Ca.prototype, { endAnimation: null, outline: null, progress: null, startAnimation: null, getBackgroundColor: function () { var a = Ma.get_current().stage.window.context.attributes; return Object.prototype.hasOwnProperty.call(a, 'background') && null != a.background ? a.background : 0; }, getHeight: function () { var a = Ma.get_current().stage.window.__height; return 0 < a ? a : Ma.get_current().stage.stageHeight; }, getWidth: function () { var a = Ma.get_current().stage.window.__width; return 0 < a ? a : Ma.get_current().stage.stageWidth; }, onInit: function () { this.addEventListener('enterFrame', q(this, this.this_onEnterFrame)); }, onLoaded: function () { this.removeEventListener('enterFrame', q(this, this.this_onEnterFrame)); this.dispatchEvent(new oa('unload')); }, onUpdate: function (a, b) { var c = 0; 0 < b && ((c = a / b), 1 < c && (c = 1)); this.progress.set_scaleX(c); }, this_onAddedToStage: function (a) { this.removeEventListener('addedToStage', q(this, this.this_onAddedToStage)); this.onInit(); this.onUpdate(this.get_loaderInfo().bytesLoaded, this.get_loaderInfo().bytesTotal); this.addEventListener('progress', q(this, this.this_onProgress)); this.addEventListener('complete', q(this, this.this_onComplete)); }, this_onComplete: function (a) { a.preventDefault(); this.removeEventListener('progress', q(this, this.this_onProgress)); this.removeEventListener('complete', q(this, this.this_onComplete)); this.onLoaded(); }, this_onEnterFrame: function (a) { a = (Ma.getTimer() - this.startAnimation) / (this.endAnimation - this.startAnimation); 0 > a && (a = 0); 1 < a && (a = 1); this.outline.set_alpha(this.progress.set_alpha(a)); }, this_onProgress: function (a) { this.onUpdate(a.bytesLoaded | 0, a.bytesTotal | 0); }, __class__: Xm }); var $o = function (a, b, c) { this.name = a; this.labels = b; this.numFrames = c; }; h['openfl.display.Scene'] = $o; $o.__name__ = 'openfl.display.Scene'; $o.prototype = { labels: null, name: null, numFrames: null, __class__: $o }; var hx = { _new: function (a) { return {}; } }, Km = function () { this.channels = 0; this.filter = 5; this.index = this.height = 0; this.mipFilter = 2; this.wrap = this.width = 0; }; h['openfl.display.ShaderInput'] = Km; Km.__name__ = 'openfl.display.ShaderInput'; Km.prototype = { channels: null, filter: null, height: null, index: null, input: null, mipFilter: null, name: null, width: null, wrap: null, __isUniform: null, __disableGL: function (a, b) { a.setTextureAt(b, null); }, __updateGL: function (a, b, c, e, d, g) { c = null != c ? c : this.input; e = null != e ? e : this.filter; d = null != d ? d : this.mipFilter; g = null != g ? g : this.wrap; null != c ? (a.setTextureAt(b, c.getTexture(a)), a.setSamplerStateAt(b, g, e, d)) : a.setTextureAt(b, null); }, __class__: Km }; var Ri = function () { this.index = 0; }; h['openfl.display.ShaderParameter'] = Ri; Ri.__name__ = 'openfl.display.ShaderParameter'; Ri.prototype = { index: null, name: null, type: null, value: null, __arrayLength: null, __internal: null, __isBool: null, __isFloat: null, __isInt: null, __isUniform: null, __length: null, __uniformMatrix: null, __useArray: null, __disableGL: function (a) { a = a.gl; if (!this.__isUniform) for (var b = 0, c = this.__arrayLength; b < c; ) { var e = b++; a.disableVertexAttribArray(this.index + e); } }, __updateGL: function (a, b) { a = a.gl; b = null != b ? b : this.value; var c = this.__isBool ? b : null, e = this.__isFloat ? b : null, d = this.__isInt ? b : null; if (this.__isUniform) if (null != b && b.length >= this.__length) switch (this.type) { case 0: a.uniform1i(this.index, c[0] ? 1 : 0); break; case 1: a.uniform2i(this.index, c[0] ? 1 : 0, c[1] ? 1 : 0); break; case 2: a.uniform3i(this.index, c[0] ? 1 : 0, c[1] ? 1 : 0, c[2] ? 1 : 0); break; case 3: a.uniform4i(this.index, c[0] ? 1 : 0, c[1] ? 1 : 0, c[2] ? 1 : 0, c[3] ? 1 : 0); break; case 4: a.uniform1f(this.index, e[0]); break; case 5: a.uniform2f(this.index, e[0], e[1]); break; case 6: a.uniform3f(this.index, e[0], e[1], e[2]); break; case 7: a.uniform4f(this.index, e[0], e[1], e[2], e[3]); break; case 8: a.uniform1i(this.index, d[0]); break; case 9: a.uniform2i(this.index, d[0], d[1]); break; case 10: a.uniform3i(this.index, d[0], d[1], d[2]); break; case 11: a.uniform4i(this.index, d[0], d[1], d[2], d[3]); break; case 12: this.__uniformMatrix[0] = e[0]; this.__uniformMatrix[1] = e[1]; this.__uniformMatrix[2] = e[2]; this.__uniformMatrix[3] = e[3]; bc.uniformMatrix2fv(a, this.index, !1, this.__uniformMatrix); break; case 16: this.__uniformMatrix[0] = e[0]; this.__uniformMatrix[1] = e[1]; this.__uniformMatrix[2] = e[2]; this.__uniformMatrix[3] = e[3]; this.__uniformMatrix[4] = e[4]; this.__uniformMatrix[5] = e[5]; this.__uniformMatrix[6] = e[6]; this.__uniformMatrix[7] = e[7]; this.__uniformMatrix[8] = e[8]; bc.uniformMatrix3fv(a, this.index, !1, this.__uniformMatrix); break; case 20: (this.__uniformMatrix[0] = e[0]), (this.__uniformMatrix[1] = e[1]), (this.__uniformMatrix[2] = e[2]), (this.__uniformMatrix[3] = e[3]), (this.__uniformMatrix[4] = e[4]), (this.__uniformMatrix[5] = e[5]), (this.__uniformMatrix[6] = e[6]), (this.__uniformMatrix[7] = e[7]), (this.__uniformMatrix[8] = e[8]), (this.__uniformMatrix[9] = e[9]), (this.__uniformMatrix[10] = e[10]), (this.__uniformMatrix[11] = e[11]), (this.__uniformMatrix[12] = e[12]), (this.__uniformMatrix[13] = e[13]), (this.__uniformMatrix[14] = e[14]), (this.__uniformMatrix[15] = e[15]), bc.uniformMatrix4fv(a, this.index, !1, this.__uniformMatrix); } else switch (this.type) { case 1: case 9: a.uniform2i(this.index, 0, 0); break; case 3: case 11: a.uniform4i(this.index, 0, 0, 0, 0); break; case 4: a.uniform1f(this.index, 0); break; case 5: a.uniform2f(this.index, 0, 0); break; case 6: a.uniform3f(this.index, 0, 0, 0); break; case 7: a.uniform4f(this.index, 0, 0, 0, 0); break; case 0: case 8: a.uniform1i(this.index, 0); break; case 2: case 10: a.uniform3i(this.index, 0, 0, 0); break; case 12: this.__uniformMatrix[0] = 0; this.__uniformMatrix[1] = 0; this.__uniformMatrix[2] = 0; this.__uniformMatrix[3] = 0; bc.uniformMatrix2fv(a, this.index, !1, this.__uniformMatrix); break; case 16: this.__uniformMatrix[0] = 0; this.__uniformMatrix[1] = 0; this.__uniformMatrix[2] = 0; this.__uniformMatrix[3] = 0; this.__uniformMatrix[4] = 0; this.__uniformMatrix[5] = 0; this.__uniformMatrix[6] = 0; this.__uniformMatrix[7] = 0; this.__uniformMatrix[8] = 0; bc.uniformMatrix3fv(a, this.index, !1, this.__uniformMatrix); break; case 20: (this.__uniformMatrix[0] = 0), (this.__uniformMatrix[1] = 0), (this.__uniformMatrix[2] = 0), (this.__uniformMatrix[3] = 0), (this.__uniformMatrix[4] = 0), (this.__uniformMatrix[5] = 0), (this.__uniformMatrix[6] = 0), (this.__uniformMatrix[7] = 0), (this.__uniformMatrix[8] = 0), (this.__uniformMatrix[9] = 0), (this.__uniformMatrix[10] = 0), (this.__uniformMatrix[11] = 0), (this.__uniformMatrix[12] = 0), (this.__uniformMatrix[13] = 0), (this.__uniformMatrix[14] = 0), (this.__uniformMatrix[15] = 0), bc.uniformMatrix4fv(a, this.index, !1, this.__uniformMatrix); } else if (this.__useArray || (null != b && b.length != this.__length)) for (g = 0, p = this.__arrayLength; g < p; ) (l = g++), a.enableVertexAttribArray(this.index + l); else { for (var g = 0, p = this.__arrayLength; g < p; ) { var l = g++; a.disableVertexAttribArray(this.index + l); } if (null != b) switch (this.type) { case 0: a.vertexAttrib1f(this.index, c[0] ? 1 : 0); break; case 1: a.vertexAttrib2f(this.index, c[0] ? 1 : 0, c[1] ? 1 : 0); break; case 2: a.vertexAttrib3f(this.index, c[0] ? 1 : 0, c[1] ? 1 : 0, c[2] ? 1 : 0); break; case 3: a.vertexAttrib4f( this.index, c[0] ? 1 : 0, c[1] ? 1 : 0, c[2] ? 1 : 0, c[3] ? 1 : 0 ); break; case 4: a.vertexAttrib1f(this.index, e[0]); break; case 5: a.vertexAttrib2f(this.index, e[0], e[1]); break; case 6: a.vertexAttrib3f(this.index, e[0], e[1], e[2]); break; case 7: a.vertexAttrib4f(this.index, e[0], e[1], e[2], e[3]); break; case 8: a.vertexAttrib1f(this.index, d[0]); break; case 9: a.vertexAttrib2f(this.index, d[0], d[1]); break; case 10: a.vertexAttrib3f(this.index, d[0], d[1], d[2]); break; case 11: a.vertexAttrib4f(this.index, d[0], d[1], d[2], d[3]); break; case 12: a.vertexAttrib2f(this.index + 0, e[0], e[1]); a.vertexAttrib2f(this.index + 1, e[2], e[3]); break; case 16: a.vertexAttrib3f(this.index + 0, e[0], e[1], e[2]); a.vertexAttrib3f(this.index + 1, e[3], e[4], e[5]); a.vertexAttrib3f(this.index + 2, e[6], e[7], e[8]); break; case 20: a.vertexAttrib4f(this.index + 0, e[0], e[1], e[2], e[3]), a.vertexAttrib4f(this.index + 1, e[4], e[5], e[6], e[7]), a.vertexAttrib4f(this.index + 2, e[8], e[9], e[10], e[11]), a.vertexAttrib4f(this.index + 3, e[12], e[13], e[14], e[15]); } else switch (this.type) { case 1: case 5: case 9: a.vertexAttrib2f(this.index, 0, 0); break; case 3: case 7: case 11: a.vertexAttrib4f(this.index, 0, 0, 0, 0); break; case 0: case 4: case 8: a.vertexAttrib1f(this.index, 0); break; case 2: case 6: case 10: a.vertexAttrib3f(this.index, 0, 0, 0); break; case 12: a.vertexAttrib2f(this.index + 0, 0, 0); a.vertexAttrib2f(this.index + 1, 0, 0); break; case 16: a.vertexAttrib3f(this.index + 0, 0, 0, 0); a.vertexAttrib3f(this.index + 1, 0, 0, 0); a.vertexAttrib3f(this.index + 2, 0, 0, 0); break; case 20: a.vertexAttrib4f(this.index + 0, 0, 0, 0, 0), a.vertexAttrib4f(this.index + 1, 0, 0, 0, 0), a.vertexAttrib4f(this.index + 2, 0, 0, 0, 0), a.vertexAttrib4f(this.index + 3, 0, 0, 0, 0); } } }, __updateGLFromBuffer: function (a, b, c, e, d) { a = a.gl; if (this.__isUniform) { if (e >= this.__length) switch (this.type) { case 1: case 9: a.uniform2i(this.index, b[c] | 0, b[c + 1] | 0); break; case 3: case 11: a.uniform4i(this.index, b[c] | 0, b[c + 1] | 0, b[c + 2] | 0, b[c + 3] | 0); break; case 4: a.uniform1f(this.index, b[c]); break; case 5: a.uniform2f(this.index, b[c], b[c + 1]); break; case 6: a.uniform3f(this.index, b[c], b[c + 1], b[c + 2]); break; case 7: a.uniform4f(this.index, b[c], b[c + 1], b[c + 2], b[c + 3]); break; case 0: case 8: a.uniform1i(this.index, b[c] | 0); break; case 2: case 10: a.uniform3i(this.index, b[c] | 0, b[c + 1] | 0, b[c + 2] | 0); break; case 12: this.__uniformMatrix[0] = b[c]; this.__uniformMatrix[1] = b[c + 1]; this.__uniformMatrix[2] = b[c + 2]; this.__uniformMatrix[3] = b[c + 3]; bc.uniformMatrix2fv(a, this.index, !1, this.__uniformMatrix); break; case 16: this.__uniformMatrix[0] = b[c]; this.__uniformMatrix[1] = b[c + 1]; this.__uniformMatrix[2] = b[c + 2]; this.__uniformMatrix[3] = b[c + 3]; this.__uniformMatrix[4] = b[c + 4]; this.__uniformMatrix[5] = b[c + 5]; this.__uniformMatrix[6] = b[c + 6]; this.__uniformMatrix[7] = b[c + 7]; this.__uniformMatrix[8] = b[c + 8]; bc.uniformMatrix3fv(a, this.index, !1, this.__uniformMatrix); break; case 20: (this.__uniformMatrix[0] = b[c]), (this.__uniformMatrix[1] = b[c + 1]), (this.__uniformMatrix[2] = b[c + 2]), (this.__uniformMatrix[3] = b[c + 3]), (this.__uniformMatrix[4] = b[c + 4]), (this.__uniformMatrix[5] = b[c + 5]), (this.__uniformMatrix[6] = b[c + 6]), (this.__uniformMatrix[7] = b[c + 7]), (this.__uniformMatrix[8] = b[c + 8]), (this.__uniformMatrix[9] = b[c + 9]), (this.__uniformMatrix[10] = b[c + 10]), (this.__uniformMatrix[11] = b[c + 11]), (this.__uniformMatrix[12] = b[c + 12]), (this.__uniformMatrix[13] = b[c + 13]), (this.__uniformMatrix[14] = b[c + 14]), (this.__uniformMatrix[15] = b[c + 15]), bc.uniformMatrix4fv(a, this.index, !1, this.__uniformMatrix); } } else if (this.__internal || (0 != e && e != this.__length)) { b = a.FLOAT; this.__isBool ? (b = a.INT) : this.__isInt && (b = a.INT); f = 0; for (p = this.__arrayLength; f < p; ) (l = f++), a.enableVertexAttribArray(this.index + l); if (0 < e) for (f = 0, p = this.__arrayLength; f < p; ) (l = f++), a.vertexAttribPointer( this.index + l, this.__length, b, !1, 4 * this.__length, 4 * (c + d * this.__length + l * this.__arrayLength) ); } else { for (var f = 0, p = this.__arrayLength; f < p; ) { var l = f++; a.disableVertexAttribArray(this.index + l); } if (0 < e) switch (this.type) { case 1: case 5: case 9: a.vertexAttrib2f(this.index, b[c], b[c + 1]); break; case 3: case 7: case 11: a.vertexAttrib4f(this.index, b[c], b[c + 1], b[c + 2], b[c + 3]); break; case 0: case 4: case 8: a.vertexAttrib1f(this.index, b[c]); break; case 2: case 6: case 10: a.vertexAttrib3f(this.index, b[c], b[c + 1], b[c + 2]); break; case 12: a.vertexAttrib2f(this.index + 0, b[c], b[c + 1]); a.vertexAttrib2f(this.index + 1, b[c + 2], b[c + 2 + 1]); break; case 16: a.vertexAttrib3f(this.index + 0, b[c], b[c + 1], b[c + 2]); a.vertexAttrib3f(this.index + 1, b[c + 3], b[c + 3 + 1], b[c + 3 + 2]); a.vertexAttrib3f(this.index + 2, b[c + 6], b[c + 6 + 1], b[c + 6 + 2]); break; case 20: a.vertexAttrib4f(this.index + 0, b[c], b[c + 1], b[c + 2], b[c + 3]), a.vertexAttrib4f( this.index + 1, b[c + 4], b[c + 4 + 1], b[c + 4 + 2], b[c + 4 + 3] ), a.vertexAttrib4f( this.index + 2, b[c + 8], b[c + 8 + 1], b[c + 8 + 2], b[c + 8 + 3] ), a.vertexAttrib4f( this.index + 3, b[c + 12], b[c + 12 + 1], b[c + 12 + 2], b[c + 12 + 3] ); } else switch (this.type) { case 1: case 5: case 9: a.vertexAttrib2f(this.index, 0, 0); break; case 3: case 7: case 11: a.vertexAttrib4f(this.index, 0, 0, 0, 0); break; case 0: case 4: case 8: a.vertexAttrib1f(this.index, 0); break; case 2: case 6: case 10: a.vertexAttrib3f(this.index, 0, 0, 0); break; case 12: a.vertexAttrib2f(this.index + 0, 0, 0); a.vertexAttrib2f(this.index + 1, 0, 0); break; case 16: a.vertexAttrib3f(this.index + 0, 0, 0, 0); a.vertexAttrib3f(this.index + 1, 0, 0, 0); a.vertexAttrib3f(this.index + 2, 0, 0, 0); break; case 20: a.vertexAttrib4f(this.index + 0, 0, 0, 0, 0), a.vertexAttrib4f(this.index + 1, 0, 0, 0, 0), a.vertexAttrib4f(this.index + 2, 0, 0, 0, 0), a.vertexAttrib4f(this.index + 3, 0, 0, 0, 0); } } }, set_name: function (a) { this.__internal = U.startsWith(a, 'openfl_'); return (this.name = a); }, __class__: Ri, __properties__: { set_name: 'set_name' } }; var Oe = function () { La.call(this); this.__drawableType = 3; }; h['openfl.display.Shape'] = Oe; Oe.__name__ = 'openfl.display.Shape'; Oe.__super__ = La; Oe.prototype = r(La.prototype, { get_graphics: function () { null == this.__graphics && (this.__graphics = new Ve(this)); return this.__graphics; }, __class__: Oe, __properties__: r(La.prototype.__properties__, { get_graphics: 'get_graphics' }) }); var Ui = function (a, b, c, e) { lb.call(this); this.__drawableType = 6; this.enabled = !0; this.trackAsMenu = !1; this.useHandCursor = !0; this.__upState = null != a ? a : new La(); this.__overState = b; this.__downState = c; this.set_hitTestState(null != e ? e : new La()); this.addEventListener('mouseDown', q(this, this.__this_onMouseDown)); this.addEventListener('mouseOut', q(this, this.__this_onMouseOut)); this.addEventListener('mouseOver', q(this, this.__this_onMouseOver)); this.addEventListener('mouseUp', q(this, this.__this_onMouseUp)); this.__tabEnabled = !0; this.set___currentState(this.__upState); null != Ui.__constructor && ((a = Ui.__constructor), (Ui.__constructor = null), a(this)); }; h['openfl.display.SimpleButton'] = Ui; Ui.__name__ = 'openfl.display.SimpleButton'; Ui.__super__ = lb; Ui.prototype = r(lb.prototype, { enabled: null, trackAsMenu: null, useHandCursor: null, __currentState: null, __downState: null, __hitTestState: null, __ignoreEvent: null, __overState: null, __previousStates: null, __soundTransform: null, __upState: null, __getBounds: function (a, b) { lb.prototype.__getBounds.call(this, a, b); var c = Ia.__pool.get(), e = this.__currentState.__transform; c.a = e.a * b.a + e.b * b.c; c.b = e.a * b.b + e.b * b.d; c.c = e.c * b.a + e.d * b.c; c.d = e.c * b.b + e.d * b.d; c.tx = e.tx * b.a + e.ty * b.c + b.tx; c.ty = e.tx * b.b + e.ty * b.d + b.ty; this.__currentState.__getBounds(a, c); Ia.__pool.release(c); }, __getRenderBounds: function (a, b) { if (null != this.__scrollRect) lb.prototype.__getRenderBounds.call(this, a, b); else { lb.prototype.__getBounds.call(this, a, b); var c = Ia.__pool.get(), e = this.__currentState.__transform; c.a = e.a * b.a + e.b * b.c; c.b = e.a * b.b + e.b * b.d; c.c = e.c * b.a + e.d * b.c; c.d = e.c * b.b + e.d * b.d; c.tx = e.tx * b.a + e.ty * b.c + b.tx; c.ty = e.tx * b.b + e.ty * b.d + b.ty; this.__currentState.__getRenderBounds(a, c); Ia.__pool.release(c); } }, __getCursor: function () { return this.useHandCursor && !this.__ignoreEvent && this.enabled ? 'button' : null; }, __hitTest: function (a, b, c, e, d, g) { var f = !1; null != this.get_hitTestState() ? this.get_hitTestState().__hitTest(a, b, c, e, d, g) && (null != e && (0 == e.length ? (e[0] = g) : (e[e.length - 1] = g)), (f = !d || this.mouseEnabled)) : null != this.__currentState && (!g.get_visible() || this.__isMask || (d && !this.mouseEnabled) || (null != this.get_mask() && !this.get_mask().__hitTestMask(a, b)) ? (f = !1) : this.__currentState.__hitTest(a, b, c, e, d, g) && (f = d)); if (null != e) for (; 1 < e.length && e[e.length - 1] == e[e.length - 2]; ) e.pop(); return f; }, __hitTestMask: function (a, b) { var c = !1; this.__currentState.__hitTestMask(a, b) && (c = !0); return c; }, __setStageReference: function (a) { lb.prototype.__setStageReference.call(this, a); null != this.__currentState && this.__currentState.__setStageReference(a); null != this.get_hitTestState() && this.get_hitTestState() != this.__currentState && this.get_hitTestState().__setStageReference(a); }, __setTransformDirty: function () { lb.prototype.__setTransformDirty.call(this); null != this.__currentState && this.__currentState.__setTransformDirty(); null != this.get_hitTestState() && this.get_hitTestState() != this.__currentState && this.get_hitTestState().__setTransformDirty(); }, __update: function (a, b) { lb.prototype.__update.call(this, a, b); b && (null != this.__currentState && this.__currentState.__update(a, !0), null != this.get_hitTestState() && this.get_hitTestState() != this.__currentState && this.get_hitTestState().__update(a, !0)); }, __updateTransforms: function (a) { lb.prototype.__updateTransforms.call(this, a); null != this.__currentState && this.__currentState.__updateTransforms(); null != this.get_hitTestState() && this.get_hitTestState() != this.__currentState && this.get_hitTestState().__updateTransforms(); }, get_downState: function () { return this.__downState; }, set_downState: function (a) { null != this.__downState && this.__currentState == this.__downState && this.set___currentState(this.__downState); return (this.__downState = a); }, get_hitTestState: function () { return this.__hitTestState; }, set_hitTestState: function (a) { null != this.__hitTestState && this.__hitTestState != a && this.__hitTestState != this.get_downState() && this.__hitTestState != this.get_upState() && this.__hitTestState != this.get_overState() && (this.__hitTestState.__renderParent = null); null != a && ((a.__renderParent = this), a.__renderDirty || ((a.__renderDirty = !0), a.__setParentRenderDirty())); return (this.__hitTestState = a); }, get_overState: function () { return this.__overState; }, set_overState: function (a) { null != this.__overState && this.__currentState == this.__overState && this.set___currentState(a); return (this.__overState = a); }, get_soundTransform: function () { null == this.__soundTransform && (this.__soundTransform = new lf()); return new lf(this.__soundTransform.volume, this.__soundTransform.pan); }, set_soundTransform: function (a) { this.__soundTransform = new lf(a.volume, a.pan); return a; }, get_upState: function () { return this.__upState; }, set_upState: function (a) { null != this.__upState && this.__currentState == this.__upState && this.set___currentState(a); return (this.__upState = a); }, set___currentState: function (a) { null != this.__currentState && this.__currentState != this.get_hitTestState() && (this.__currentState.__renderParent = null); null != a && null != a.parent && a.parent.removeChild(a); La.__supportDOM && null == this.__previousStates && (this.__previousStates = yb.toObjectVector(null)); if (a != this.__currentState) { if (La.__supportDOM) { null != this.__currentState && (this.__currentState.__setStageReference(null), this.__previousStates.push(this.__currentState)); var b = this.__previousStates.indexOf(a, 0); -1 < b && this.__previousStates.splice(b, 1); } null != a && ((a.__renderParent = this), a.__renderDirty || ((a.__renderDirty = !0), a.__setParentRenderDirty())); this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); } return (this.__currentState = a); }, __this_onMouseDown: function (a) { this.enabled && this.set___currentState(this.get_downState()); }, __this_onMouseOut: function (a) { this.__ignoreEvent = !1; this.get_upState() != this.__currentState && this.set___currentState(this.get_upState()); }, __this_onMouseOver: function (a) { a.buttonDown && (this.__ignoreEvent = !0); this.get_overState() != this.__currentState && null != this.get_overState() && !this.__ignoreEvent && this.enabled && this.set___currentState(this.get_overState()); }, __this_onMouseUp: function (a) { this.__ignoreEvent = !1; this.enabled && null != this.get_overState() ? this.set___currentState(this.get_overState()) : this.set___currentState(this.get_upState()); }, __class__: Ui, __properties__: r(lb.prototype.__properties__, { set___currentState: 'set___currentState', set_upState: 'set_upState', get_upState: 'get_upState', set_soundTransform: 'set_soundTransform', get_soundTransform: 'get_soundTransform', set_overState: 'set_overState', get_overState: 'get_overState', set_hitTestState: 'set_hitTestState', get_hitTestState: 'get_hitTestState', set_downState: 'set_downState', get_downState: 'get_downState' }) }); var Vi = function (a, b) { Ya.call(this); this.__drawableType = 5; this.set_name(null); this.__color = -1; this.__colorSplit = [255, 255, 255]; this.__colorString = '#FFFFFF'; this.__contentsScaleFactor = 1; this.__deltaTime = this.__currentTabOrderIndex = 0; this.__displayState = 2; this.__logicalHeight = this.__logicalWidth = this.__lastClickTime = this.__mouseY = this.__mouseX = 0; this.__displayMatrix = new Ia(); this.__displayRect = new fa(); this.__renderDirty = !0; this.stage3Ds = yb.toObjectVector(null); this.stage3Ds.push(new di(this)); this.stage3Ds.push(new di(this)); this.stage3Ds.push(new di(this)); this.stage3Ds.push(new di(this)); this.stage = this; this.align = 6; this.allowsFullScreenInteractive = this.allowsFullScreen = !0; this.__quality = 1; this.__scaleMode = 2; this.showDefaultContextMenu = !0; this.softKeyboardRect = new fa(); this.stageFocusRect = !0; this.__macKeyboard = (/AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent)) || /Mac/.test(navigator.platform); this.__clearBeforeRender = !0; this.__forceRender = !1; this.__stack = []; this.__rollOutStack = []; this.__mouseOutStack = []; this.__touchData = new Za(); this.application = a.application; this.window = a; this.set_color(b); this.__contentsScaleFactor = a.__scale; this.__wasFullscreen = a.__fullscreen; this.__resize(); null == Ma.get_current().stage && this.stage.addChild(Ma.get_current()); }; h['openfl.display.Stage'] = Vi; Vi.__name__ = 'openfl.display.Stage'; Vi.__interfaces__ = [Qj]; Vi.__super__ = Ya; Vi.prototype = r(Ya.prototype, { align: null, allowsFullScreen: null, allowsFullScreenInteractive: null, application: null, context3D: null, showDefaultContextMenu: null, softKeyboardRect: null, stage3Ds: null, stageFocusRect: null, stageHeight: null, stageWidth: null, window: null, __cacheFocus: null, __clearBeforeRender: null, __color: null, __colorSplit: null, __colorString: null, __contentsScaleFactor: null, __currentTabOrderIndex: null, __deltaTime: null, __dirty: null, __displayMatrix: null, __displayRect: null, __displayState: null, __dragBounds: null, __dragObject: null, __dragOffsetX: null, __dragOffsetY: null, __focus: null, __forceRender: null, __fullscreen: null, __fullScreenSourceRect: null, __invalidated: null, __lastClickTime: null, __logicalWidth: null, __logicalHeight: null, __macKeyboard: null, __mouseDownLeft: null, __mouseDownMiddle: null, __mouseDownRight: null, __mouseOutStack: null, __mouseOverTarget: null, __mouseX: null, __mouseY: null, __pendingMouseEvent: null, __pendingMouseX: null, __pendingMouseY: null, __quality: null, __renderer: null, __rendering: null, __rollOutStack: null, __scaleMode: null, __stack: null, __touchData: null, __transparent: null, __wasDirty: null, __wasFullscreen: null, __primaryTouch: null, invalidate: function () { this.__renderDirty = this.__invalidated = !0; }, localToGlobal: function (a) { return a.clone(); }, __broadcastEvent: function (a) { if (Object.prototype.hasOwnProperty.call(La.__broadcastEvents.h, a.type)) for (var b = La.__broadcastEvents.h[a.type], c = 0; c < b.length; ) { var e = b[c]; ++c; if (e.stage == this || null == e.stage) try { e.__dispatch(a); } catch (f) { (la.lastError = f), (e = M.caught(f).unwrap()), this.__handleError(e); } } }, __createRenderer: function () { var a = 1; 1 < this.window.__scale && (a = this.window.devicePixelRatio || 1); var b = (this.window.__width * this.window.__scale) | 0, c = (this.window.__height * this.window.__scale) | 0; switch (this.window.context.type) { case 'canvas': this.__renderer = new Cg(this.window.context.canvas2D); x.__cast(this.__renderer, Cg).pixelRatio = a; break; case 'dom': (this.__renderer = new Qi(this.window.context.dom)), (x.__cast(this.__renderer, Qi).pixelRatio = a); } null != this.__renderer && ((a = this.get_quality()), (this.__renderer.__allowSmoothing = 2 != a), (this.__renderer.__worldTransform = this.__displayMatrix), (this.__renderer.__stage = this), this.__renderer.__resize(b, c)); }, __dispatchEvent: function (a) { try { return Ya.prototype.__dispatchEvent.call(this, a); } catch (b) { return (la.lastError = b), (a = M.caught(b).unwrap()), this.__handleError(a), !1; } }, __dispatchPendingMouseEvent: function () { this.__pendingMouseEvent && (this.__onMouse('mouseMove', this.__pendingMouseX, this.__pendingMouseY, 0), (this.__pendingMouseEvent = !1)); }, __dispatchStack: function (a, b) { try { var c = b.length; if (0 == c) { a.eventPhase = 2; var e = a.target; e.__dispatch(a); } else { a.eventPhase = 1; a.target = b[b.length - 1]; for (var d = 0, g = c - 1; d < g; ) { var p = d++; b[p].__dispatch(a); if (a.__isCanceled) return; } a.eventPhase = 2; e = a.target; e.__dispatch(a); if (!a.__isCanceled && a.bubbles) for (a.eventPhase = 3, p = c - 2; 0 <= p; ) { b[p].__dispatch(a); if (a.__isCanceled) break; --p; } } } catch (l) { (la.lastError = l), (a = M.caught(l).unwrap()), this.__handleError(a); } }, __dispatchTarget: function (a, b) { try { return a.__dispatchEvent(b); } catch (c) { return (la.lastError = c), (a = M.caught(c).unwrap()), this.__handleError(a), !1; } }, __drag: function (a) { var b = this.__dragObject.parent; if (null != b) { b = b.__getWorldTransform(); var c = b.a * b.d - b.b * b.c; if (0 == c) (a.x = -b.tx), (a.y = -b.ty); else { var e = (1 / c) * (b.c * (b.ty - a.y) + b.d * (a.x - b.tx)); a.y = (1 / c) * (b.a * (a.y - b.ty) + b.b * (b.tx - a.x)); a.x = e; } } b = a.x + this.__dragOffsetX; a = a.y + this.__dragOffsetY; null != this.__dragBounds && (b < this.__dragBounds.x ? (b = this.__dragBounds.x) : b > this.__dragBounds.get_right() && (b = this.__dragBounds.get_right()), a < this.__dragBounds.y ? (a = this.__dragBounds.y) : a > this.__dragBounds.get_bottom() && (a = this.__dragBounds.get_bottom())); this.__dragObject.set_x(b); this.__dragObject.set_y(a); }, __getInteractive: function (a) { null != a && a.push(this); return !0; }, __globalToLocal: function (a, b) { a != b && b.copyFrom(a); return b; }, __handleError: function (a) { var b = new Wi('uncaughtError', !0, !0, a); try { Ma.get_current().__loaderInfo.uncaughtErrorEvents.dispatchEvent(b); } catch (e) { la.lastError = e; } if (!b.__preventDefault) { b = mf.toString(mf.exceptionStack()); console.log(b); b = B.string(a); console.log(b); try { if ( null != a && Object.prototype.hasOwnProperty.call(a, 'stack') && null != a.stack && '' != a.stack ) console.log(a.stack), (a.stack = a.stack); else { var c = mf.toString(mf.callStack()); console.log(c); } } catch (e) { la.lastError = e; } throw a; } }, __onKey: function (a, b, c) { this.__dispatchPendingMouseEvent(); Lb.__altKey = Bb.get_altKey(c); Lb.__commandKey = Bb.get_metaKey(c); Lb.__ctrlKey = Bb.get_ctrlKey(c); Lb.__shiftKey = Bb.get_shiftKey(c); var e = []; null == this.__focus ? this.__getInteractive(e) : this.__focus.__getInteractive(e); if (0 < e.length) { switch (b) { case 1073741908: case 1073741909: case 1073741910: case 1073741911: case 1073741912: case 1073741913: case 1073741914: case 1073741915: case 1073741916: case 1073741917: case 1073741918: case 1073741919: case 1073741920: case 1073741921: case 1073741922: case 1073741923: case 1073742044: var d = 3; break; case 1073742048: case 1073742049: case 1073742050: case 1073742051: d = 1; break; case 1073742052: case 1073742053: case 1073742054: case 1073742055: d = 2; break; default: d = 0; } switch (b) { case 8: b = 8; break; case 9: b = 9; break; case 13: b = 13; break; case 27: b = 27; break; case 32: b = 32; break; case 33: b = 49; break; case 34: b = 222; break; case 35: b = 51; break; case 36: b = 52; break; case 37: b = 53; break; case 38: b = 55; break; case 39: b = 222; break; case 40: b = 57; break; case 41: b = 48; break; case 42: b = 56; break; case 44: b = 188; break; case 45: b = 189; break; case 46: b = 190; break; case 47: b = 191; break; case 48: b = 48; break; case 49: b = 49; break; case 50: b = 50; break; case 51: b = 51; break; case 52: b = 52; break; case 53: b = 53; break; case 54: b = 54; break; case 55: b = 55; break; case 56: b = 56; break; case 57: b = 57; break; case 58: b = 186; break; case 59: b = 186; break; case 60: b = 60; break; case 61: b = 187; break; case 62: b = 190; break; case 63: b = 191; break; case 64: b = 50; break; case 91: b = 219; break; case 92: b = 220; break; case 93: b = 221; break; case 94: b = 54; break; case 95: b = 189; break; case 96: b = 192; break; case 97: b = 65; break; case 98: b = 66; break; case 99: b = 67; break; case 100: b = 68; break; case 101: b = 69; break; case 102: b = 70; break; case 103: b = 71; break; case 104: b = 72; break; case 105: b = 73; break; case 106: b = 74; break; case 107: b = 75; break; case 108: b = 76; break; case 109: b = 77; break; case 110: b = 78; break; case 111: b = 79; break; case 112: b = 80; break; case 113: b = 81; break; case 114: b = 82; break; case 115: b = 83; break; case 116: b = 84; break; case 117: b = 85; break; case 118: b = 86; break; case 119: b = 87; break; case 120: b = 88; break; case 121: b = 89; break; case 122: b = 90; break; case 127: b = 46; break; case 1073741881: b = 20; break; case 1073741882: b = 112; break; case 1073741883: b = 113; break; case 1073741884: b = 114; break; case 1073741885: b = 115; break; case 1073741886: b = 116; break; case 1073741887: b = 117; break; case 1073741888: b = 118; break; case 1073741889: b = 119; break; case 1073741890: b = 120; break; case 1073741891: b = 121; break; case 1073741892: b = 122; break; case 1073741893: b = 123; break; case 1073741894: b = 301; break; case 1073741895: b = 145; break; case 1073741896: b = 19; break; case 1073741897: b = 45; break; case 1073741898: b = 36; break; case 1073741899: b = 33; break; case 1073741901: b = 35; break; case 1073741902: b = 34; break; case 1073741903: b = 39; break; case 1073741904: b = 37; break; case 1073741905: b = 40; break; case 1073741906: b = 38; break; case 1073741907: b = 144; break; case 1073741908: b = 111; break; case 1073741909: b = 106; break; case 1073741910: b = 109; break; case 1073741911: b = 107; break; case 1073741912: b = 13; break; case 1073741913: b = 97; break; case 1073741914: b = 98; break; case 1073741915: b = 99; break; case 1073741916: b = 100; break; case 1073741917: b = 101; break; case 1073741918: b = 102; break; case 1073741919: b = 103; break; case 1073741920: b = 104; break; case 1073741921: b = 105; break; case 1073741922: b = 96; break; case 1073741923: b = 110; break; case 1073741925: b = 302; break; case 1073741928: b = 124; break; case 1073741929: b = 125; break; case 1073741930: b = 126; break; case 1073741982: b = 13; break; case 1073742044: b = 110; break; case 1073742048: b = 17; break; case 1073742049: b = 16; break; case 1073742050: b = 18; break; case 1073742051: b = 15; break; case 1073742052: b = 17; break; case 1073742053: b = 16; break; case 1073742054: b = 18; break; case 1073742055: b = 15; } var g = Ga.__getCharCode(b, Bb.get_shiftKey(c)); if ('keyUp' == a && (32 == b || 13 == b) && this.__focus instanceof Ca) { var p = x.__cast(this.__focus, Ca); if (p.get_buttonMode() && 1 == p.focusRect) { var l = na.__pool.get(), k = na.__pool.get(); k.x = this.__mouseX; k.y = this.__mouseY; p = Lb.__create( 'click', 0, this.__mouseX, this.__mouseY, p.__globalToLocal(k, l), p ); this.__dispatchStack(p, e); na.__pool.release(k); na.__pool.release(l); } } d = new ei( a, !0, !0, g, b, d, this.__macKeyboard ? Bb.get_ctrlKey(c) || Bb.get_metaKey(c) : Bb.get_ctrlKey(c), Bb.get_altKey(c), Bb.get_shiftKey(c), Bb.get_ctrlKey(c), Bb.get_metaKey(c) ); e.reverse(); this.__dispatchStack(d, e); if (d.__preventDefault) 'keyDown' == a ? this.window.onKeyDown.cancel() : this.window.onKeyUp.cancel(); else if ('keyDown' == a && 9 == b) { e = []; this.__tabTest(e); b = -1; a = null; d = Bb.get_shiftKey(c) ? -1 : 1; if (1 < e.length) { he.sort(e, function (a, b) { return a.get_tabIndex() - b.get_tabIndex(); }); if (-1 != e[e.length - 1].get_tabIndex()) for (l = 0; l < e.length; ) { if (-1 < e[l].get_tabIndex()) { 0 < l && e.splice(0, l); break; } ++l; } if (null != this.get_focus()) { l = this.get_focus(); for (g = e.indexOf(l); -1 == g && null != l; ) { b = l.parent; if (null != b && b.get_tabChildren()) { l = b.getChildIndex(l); if (-1 == l) { l = b; continue; } for (l += d; Bb.get_shiftKey(c) ? 0 <= l : l < b.get_numChildren(); ) { k = b.getChildAt(l); if ( k instanceof lb && ((g = x.__cast(k, lb)), (g = e.indexOf(g)), -1 != g) ) { d = 0; break; } l += d; } } else Bb.get_shiftKey(c) && ((g = e.indexOf(b)), -1 != g && (d = 0)); l = b; } b = 0 > g ? 0 : g + d; } else b = this.__currentTabOrderIndex; } else 1 == e.length && ((a = e[0]), this.get_focus() == a && (a = null)); g = 0 <= b && b < e.length; 1 == e.length || (0 == e.length && null != this.get_focus()) ? (b = 0) : 1 < e.length && (0 > b && (b += e.length), (b %= e.length), (a = e[b]), a == this.get_focus() && ((b += d), 0 > b && (b += e.length), (b %= e.length), (a = e[b]))); d = null; null != this.get_focus() && ((d = new Zf('keyFocusChange', !0, !0, a, Bb.get_shiftKey(c), 0)), (e = []), this.get_focus().__getInteractive(e), e.reverse(), this.__dispatchStack(d, e), d.isDefaultPrevented() && this.window.onKeyDown.cancel()); (null != d && d.isDefaultPrevented()) || ((this.__currentTabOrderIndex = b), null != a && this.set_focus(a), g && this.window.onKeyDown.cancel()); } } }, __onLimeCreateWindow: function (a) { if (this.window == a) { var b = q(this, this.__onLimeWindowActivate); a.onActivate.add(function () { b(a); }); var c = q(this, this.__onLimeWindowClose); a.onClose.add( function () { c(a); }, !1, -9e3 ); var e = q(this, this.__onLimeWindowDeactivate); a.onDeactivate.add(function () { e(a); }); var d = q(this, this.__onLimeWindowDropFile); var g = function (b) { d(a, b); }; a.onDropFile.add(g); var p = q(this, this.__onLimeWindowEnter); a.onEnter.add(function () { p(a); }); var l = q(this, this.__onLimeWindowExpose); a.onExpose.add(function () { l(a); }); var k = q(this, this.__onLimeWindowFocusIn); a.onFocusIn.add(function () { k(a); }); var n = q(this, this.__onLimeWindowFocusOut); a.onFocusOut.add(function () { n(a); }); var h = q(this, this.__onLimeWindowFullscreen); a.onFullscreen.add(function () { h(a); }); var m = q(this, this.__onLimeKeyDown); g = function (b, c) { m(a, b, c); }; a.onKeyDown.add(g); var t = q(this, this.__onLimeKeyUp); g = function (b, c) { t(a, b, c); }; a.onKeyUp.add(g); var u = q(this, this.__onLimeWindowLeave); a.onLeave.add(function () { u(a); }); var r = q(this, this.__onLimeWindowMinimize); a.onMinimize.add(function () { r(a); }); var w = q(this, this.__onLimeMouseDown); g = function (b, c, e) { w(a, b, c, e); }; a.onMouseDown.add(g); var x = q(this, this.__onLimeMouseMove); g = function (b, c) { x(a, b, c); }; a.onMouseMove.add(g); var z = q(this, this.__onLimeMouseMoveRelative); g = function (b, c) { z(a, b, c); }; a.onMouseMoveRelative.add(g); var E = q(this, this.__onLimeMouseUp); g = function (b, c, e) { E(a, b, c, e); }; a.onMouseUp.add(g); var I = q(this, this.__onLimeMouseWheel); g = function (b, c, e) { I(a, b, c, e); }; a.onMouseWheel.add(g); var H = q(this, this.__onLimeWindowMove); g = function (b, c) { H(a, b, c); }; a.onMove.add(g); a.onRender.add(q(this, this.__onLimeRender)); a.onRenderContextLost.add(q(this, this.__onLimeRenderContextLost)); a.onRenderContextRestored.add(q(this, this.__onLimeRenderContextRestored)); var C = q(this, this.__onLimeWindowResize); g = function (b, c) { C(a, b, c); }; a.onResize.add(g); var A = q(this, this.__onLimeWindowRestore); a.onRestore.add(function () { A(a); }); var ra = q(this, this.__onLimeTextEdit); g = function (b, c, e) { ra(a, b, c, e); }; a.onTextEdit.add(g); var D = q(this, this.__onLimeTextInput); g = function (b) { D(a, b); }; a.onTextInput.add(g); this.__onLimeWindowCreate(a); } }, __onLimeGamepadAxisMove: function (a, b, c) { try { Zb.__onGamepadAxisMove(a, b, c); } catch (e) { (la.lastError = e), (a = M.caught(e).unwrap()), this.__handleError(a); } }, __onLimeGamepadButtonDown: function (a, b) { try { Zb.__onGamepadButtonDown(a, b); } catch (c) { (la.lastError = c), (a = M.caught(c).unwrap()), this.__handleError(a); } }, __onLimeGamepadButtonUp: function (a, b) { try { Zb.__onGamepadButtonUp(a, b); } catch (c) { (la.lastError = c), (a = M.caught(c).unwrap()), this.__handleError(a); } }, __onLimeGamepadConnect: function (a) { try { Zb.__onGamepadConnect(a); } catch (p) { la.lastError = p; var b = M.caught(p).unwrap(); this.__handleError(b); } var c = q(this, this.__onLimeGamepadAxisMove); b = function (b, e) { c(a, b, e); }; a.onAxisMove.add(b); var e = q(this, this.__onLimeGamepadButtonDown); b = function (b) { e(a, b); }; a.onButtonDown.add(b); var d = q(this, this.__onLimeGamepadButtonUp); b = function (b) { d(a, b); }; a.onButtonUp.add(b); var g = q(this, this.__onLimeGamepadDisconnect); a.onDisconnect.add(function () { g(a); }); }, __onLimeGamepadDisconnect: function (a) { try { Zb.__onGamepadDisconnect(a); } catch (b) { (la.lastError = b), (a = M.caught(b).unwrap()), this.__handleError(a); } }, __onLimeKeyDown: function (a, b, c) { null != this.window && this.window == a && this.__onKey('keyDown', b, c); }, __onLimeKeyUp: function (a, b, c) { null != this.window && this.window == a && this.__onKey('keyUp', b, c); }, __onLimeModuleExit: function (a) { null != this.window && ((a = new oa('deactivate')), this.__broadcastEvent(a)); }, __onLimeMouseDown: function (a, b, c, e) { if (null != this.window && this.window == a) { this.__dispatchPendingMouseEvent(); switch (e) { case 1: var d = 'middleMouseDown'; break; case 2: d = 'rightMouseDown'; break; default: d = 'mouseDown'; } this.__onMouse(d, (b * a.__scale) | 0, (c * a.__scale) | 0, e); this.showDefaultContextMenu || 2 != e || a.onMouseDown.cancel(); } }, __onLimeMouseMove: function (a, b, c) { null != this.window && this.window == a && ((this.__pendingMouseEvent = !0), (this.__pendingMouseX = (b * a.__scale) | 0), (this.__pendingMouseY = (c * a.__scale) | 0)); }, __onLimeMouseMoveRelative: function (a, b, c) {}, __onLimeMouseUp: function (a, b, c, e) { if (null != this.window && this.window == a) { this.__dispatchPendingMouseEvent(); switch (e) { case 1: var d = 'middleMouseUp'; break; case 2: d = 'rightMouseUp'; break; default: d = 'mouseUp'; } this.__onMouse(d, (b * a.__scale) | 0, (c * a.__scale) | 0, e); this.showDefaultContextMenu || 2 != e || a.onMouseUp.cancel(); } }, __onLimeMouseWheel: function (a, b, c, e) { null != this.window && this.window == a && (this.__dispatchPendingMouseEvent(), e == Bh.PIXELS ? this.__onMouseWheel((b * a.__scale) | 0, (c * a.__scale) | 0, e) : this.__onMouseWheel(b | 0, c | 0, e)); }, __onLimeRender: function (a) { if (!this.__rendering) { this.__rendering = !0; this.__broadcastEvent(new oa('enterFrame')); this.__broadcastEvent(new oa('frameConstructed')); this.__broadcastEvent(new oa('exitFrame')); this.__renderable = !0; this.__enterFrame(this.__deltaTime); this.__deltaTime = 0; a = null != this.__renderer && (this.__renderDirty || this.__forceRender); if (this.__invalidated && a) { this.__invalidated = !1; var b = new oa('render'); this.__broadcastEvent(b); } this.__update(!1, !0); if (null != this.__renderer) { if (null != this.context3D) { for (b = this.stage3Ds.iterator(); b.hasNext(); ) { var c = b.next(); this.context3D.__renderStage3D(c); } this.context3D.__present && (a = !0); } a ? (null == this.context3D && this.__renderer.__clear(), this.__renderer.__render(this)) : null == this.context3D && this.window.onRender.cancel(); null != this.context3D && (this.context3D.__present ? (this.__renderer.__cleared || this.__renderer.__clear(), (this.context3D.__present = !1), (this.context3D.__cleared = !1)) : this.window.onRender.cancel()); this.__renderer.__cleared = !1; } this.__rendering = !1; } }, __onLimeRenderContextLost: function () { this.context3D = this.__renderer = null; for (var a = this.stage3Ds.iterator(); a.hasNext(); ) a.next().__lostContext(); }, __onLimeRenderContextRestored: function (a) { this.__createRenderer(); for (a = this.stage3Ds.iterator(); a.hasNext(); ) a.next().__restoreContext(); }, __onLimeTextEdit: function (a, b, c, e) {}, __onLimeTextInput: function (a, b) { if (null != this.window && this.window == a) { var c = []; null == this.__focus ? this.__getInteractive(c) : this.__focus.__getInteractive(c); b = new ef('textInput', !0, !0, b); 0 < c.length ? (c.reverse(), this.__dispatchStack(b, c)) : this.__dispatchEvent(b); b.isDefaultPrevented() && a.onTextInput.cancel(); } }, __onLimeTouchCancel: function (a) { var b = this.__primaryTouch == a; b && (this.__primaryTouch = null); this.__onTouch('touchEnd', a, b); }, __onLimeTouchMove: function (a) { this.__onTouch('touchMove', a, this.__primaryTouch == a); }, __onLimeTouchEnd: function (a) { var b = this.__primaryTouch == a; b && (this.__primaryTouch = null); this.__onTouch('touchEnd', a, b); }, __onLimeTouchStart: function (a) { null == this.__primaryTouch && (this.__primaryTouch = a); this.__onTouch('touchBegin', a, this.__primaryTouch == a); }, __onLimeUpdate: function (a) { this.__deltaTime = a; this.__dispatchPendingMouseEvent(); }, __onLimeWindowActivate: function (a) {}, __onLimeWindowClose: function (a) { this.window == a && (this.window = null); this.__primaryTouch = null; a = new oa('deactivate'); this.__broadcastEvent(a); }, __onLimeWindowCreate: function (a) { null != this.window && this.window == a && null != a.context && this.__createRenderer(); }, __onLimeWindowDeactivate: function (a) {}, __onLimeWindowDropFile: function (a, b) {}, __onLimeWindowEnter: function (a) {}, __onLimeWindowExpose: function (a) { null != this.window && this.window == a && (this.__renderDirty = !0); }, __onLimeWindowFocusIn: function (a) { null != this.window && this.window == a && ((this.__renderDirty = !0), (a = new oa('activate')), this.__broadcastEvent(a), this.set_focus(this.__cacheFocus)); }, __onLimeWindowFocusOut: function (a) { null != this.window && this.window == a && ((this.__primaryTouch = null), (a = new oa('deactivate')), this.__broadcastEvent(a), (a = this.get_focus()), this.set_focus(null), (this.__cacheFocus = a), (Lb.__altKey = !1), (Lb.__commandKey = !1), (Lb.__ctrlKey = !1), (Lb.__shiftKey = !1)); }, __onLimeWindowFullscreen: function (a) { null != this.window && this.window == a && (this.__resize(), this.__wasFullscreen || ((this.__wasFullscreen = !0), 2 == this.__displayState && (this.__displayState = 1), this.__dispatchEvent(new eh('fullScreen', !1, !1, !0, !0)))); }, __onLimeWindowLeave: function (a) { null == this.window || this.window != a || Lb.__buttonDown || (this.__dispatchPendingMouseEvent(), (a = new oa('mouseLeave')), this.__dispatchEvent(a)); }, __onLimeWindowMinimize: function (a) {}, __onLimeWindowMove: function (a, b, c) {}, __onLimeWindowResize: function (a, b, c) { null != this.window && this.window == a && (this.__resize(), this.__wasFullscreen && !a.__fullscreen && ((this.__wasFullscreen = !1), (this.__displayState = 2), this.__dispatchEvent(new eh('fullScreen', !1, !1, !1, !0)))); }, __onLimeWindowRestore: function (a) { null != this.window && this.window == a && this.__wasFullscreen && !a.__fullscreen && ((this.__wasFullscreen = !1), (this.__displayState = 2), this.__dispatchEvent(new eh('fullScreen', !1, !1, !1, !0))); }, __onMouse: function (a, b, c, e) { if (!(2 < e)) { var d = na.__pool.get(); d.setTo(b, c); b = this.__displayMatrix; c = b.a * b.d - b.b * b.c; if (0 == c) (d.x = -b.tx), (d.y = -b.ty); else { var g = (1 / c) * (b.c * (b.ty - d.y) + b.d * (d.x - b.tx)); d.y = (1 / c) * (b.a * (d.y - b.ty) + b.b * (b.tx - d.x)); d.x = g; } this.__mouseX = d.x; this.__mouseY = d.y; b = []; this.__hitTest(this.__mouseX, this.__mouseY, !0, b, !0, this) ? (g = b[b.length - 1]) : ((g = this), (b = [this])); null == g && (g = this); var p = null; switch (a) { case 'middleMouseDown': this.__mouseDownMiddle = g; break; case 'middleMouseUp': this.__mouseDownMiddle == g && (p = 'middleClick'); this.__mouseDownMiddle = null; break; case 'mouseDown': g.__allowMouseFocus() ? null != this.get_focus() ? ((c = new Zf('mouseFocusChange', !0, !0, g, !1, 0)), this.__dispatchStack(c, b), c.isDefaultPrevented() || this.set_focus(g)) : this.set_focus(g) : this.set_focus(null); this.__mouseDownLeft = g; Lb.__buttonDown = !0; break; case 'mouseUp': if (null != this.__mouseDownLeft) { Lb.__buttonDown = !1; if (this.__mouseDownLeft == g) p = 'click'; else { var l = Lb.__create( 'releaseOutside', 1, this.__mouseX, this.__mouseY, new na(this.__mouseX, this.__mouseY), this ); this.__mouseDownLeft.dispatchEvent(l); } this.__mouseDownLeft = null; } break; case 'rightMouseDown': this.__mouseDownRight = g; break; case 'rightMouseUp': this.__mouseDownRight == g && (p = 'rightClick'), (this.__mouseDownRight = null); } c = na.__pool.get(); l = Lb.__create(a, e, this.__mouseX, this.__mouseY, g.__globalToLocal(d, c), g); this.__dispatchStack(l, b); null != p && ((l = Lb.__create(p, e, this.__mouseX, this.__mouseY, g.__globalToLocal(d, c), g)), this.__dispatchStack(l, b), 'mouseUp' == a && x.__cast(g, lb).doubleClickEnabled && ((a = Ma.getTimer()), 500 > a - this.__lastClickTime ? ((l = Lb.__create( 'doubleClick', e, this.__mouseX, this.__mouseY, g.__globalToLocal(d, c), g )), this.__dispatchStack(l, b), (this.__lastClickTime = 0)) : (this.__lastClickTime = a))); if ('auto' == qe.__cursor && !qe.__hidden) { l = null; if (null != this.__mouseDownLeft) l = this.__mouseDownLeft.__getCursor(); else for (a = 0; a < b.length; ) if (((l = b[a]), ++a, (l = l.__getCursor()), null != l)) { this.window.set_cursor(xf.toLimeCursor(l)); break; } null == l && this.window.set_cursor(nc.ARROW); } g != this.__mouseOverTarget && null != this.__mouseOverTarget && ((l = Lb.__create( 'mouseOut', e, this.__mouseX, this.__mouseY, this.__mouseOverTarget.__globalToLocal(d, c), this.__mouseOverTarget )), this.__dispatchStack(l, this.__mouseOutStack)); for (a = 0; a < this.__rollOutStack.length; ) (p = this.__rollOutStack[a]), -1 == b.indexOf(p) ? (A.remove(this.__rollOutStack, p), (l = Lb.__create( 'rollOut', e, this.__mouseX, this.__mouseY, this.__mouseOverTarget.__globalToLocal(d, c), p )), (l.bubbles = !1), this.__dispatchTarget(p, l)) : ++a; for (a = 0; a < b.length; ) (p = b[a]), ++a, -1 == this.__rollOutStack.indexOf(p) && null != this.__mouseOverTarget && (p.hasEventListener('rollOver') && ((l = Lb.__create( 'rollOver', e, this.__mouseX, this.__mouseY, this.__mouseOverTarget.__globalToLocal(d, c), p )), (l.bubbles = !1), this.__dispatchTarget(p, l)), (p.hasEventListener('rollOut') || p.hasEventListener('rollOver')) && this.__rollOutStack.push(p)); g != this.__mouseOverTarget && (null != g && ((l = Lb.__create( 'mouseOver', e, this.__mouseX, this.__mouseY, g.__globalToLocal(d, c), g )), this.__dispatchStack(l, b)), (this.__mouseOverTarget = g), (this.__mouseOutStack = b)); null != this.__dragObject && (this.__drag(d), (e = null), this.__mouseOverTarget == this.__dragObject ? ((g = this.__dragObject.mouseEnabled), (a = this.__dragObject.mouseChildren), (this.__dragObject.mouseEnabled = !1), (this.__dragObject.mouseChildren = !1), (b = []), this.__hitTest(this.__mouseX, this.__mouseY, !0, b, !0, this) && (e = b[b.length - 1]), (this.__dragObject.mouseEnabled = g), (this.__dragObject.mouseChildren = a)) : this.__mouseOverTarget != this && (e = this.__mouseOverTarget), (this.__dragObject.dropTarget = e)); na.__pool.release(d); na.__pool.release(c); } }, __onMouseWheel: function (a, b, c) { var e = this.__mouseX, d = this.__mouseY; a = []; if (this.__hitTest(this.__mouseX, this.__mouseY, !0, a, !0, this)) var g = a[a.length - 1]; else (g = this), (a = [this]); null == g && (g = this); c = na.__pool.get(); c.setTo(e, d); e = this.__displayMatrix; d = e.a * e.d - e.b * e.c; if (0 == d) (c.x = -e.tx), (c.y = -e.ty); else { var p = (1 / d) * (e.c * (e.ty - c.y) + e.d * (c.x - e.tx)); c.y = (1 / d) * (e.a * (c.y - e.ty) + e.b * (e.tx - c.x)); c.x = p; } b |= 0; b = Lb.__create( 'mouseWheel', 0, this.__mouseX, this.__mouseY, g.__globalToLocal(c, c), g, b ); b.cancelable = !0; this.__dispatchStack(b, a); b.isDefaultPrevented() && this.window.onMouseWheel.cancel(); na.__pool.release(c); }, __onTouch: function (a, b, c) { var e = na.__pool.get(); e.setTo( Math.round(b.x * this.window.__width * this.window.__scale), Math.round(b.y * this.window.__height * this.window.__scale) ); var d = this.__displayMatrix, g = d.a * d.d - d.b * d.c; if (0 == g) (e.x = -d.tx), (e.y = -d.ty); else { var p = (1 / g) * (d.c * (d.ty - e.y) + d.d * (e.x - d.tx)); e.y = (1 / g) * (d.a * (e.y - d.ty) + d.b * (d.tx - e.x)); e.x = p; } d = e.x; g = e.y; p = []; if (this.__hitTest(d, g, !1, p, !0, this)) var l = p[p.length - 1]; else (l = this), (p = [this]); null == l && (l = this); var k = b.id; if (this.__touchData.h.hasOwnProperty(k)) var n = this.__touchData.h[k]; else (n = fi.__pool.get()), n.reset(), (n.touch = b), (this.__touchData.h[k] = n); var h = null, m = !1; switch (a) { case 'touchBegin': n.touchDownTarget = l; break; case 'touchEnd': n.touchDownTarget == l && (h = 'touchTap'), (n.touchDownTarget = null), (m = !0); } var t = na.__pool.get(); a = Vd.__create(a, null, d, g, l.__globalToLocal(e, t), l); a.touchPointID = k; a.isPrimaryTouchPoint = c; a.pressure = b.pressure; this.__dispatchStack(a, p); null != h && ((a = Vd.__create(h, null, d, g, l.__globalToLocal(e, t), l)), (a.touchPointID = k), (a.isPrimaryTouchPoint = c), (a.pressure = b.pressure), this.__dispatchStack(a, p)); h = n.touchOverTarget; l != h && null != h && ((a = Vd.__create('touchOut', null, d, g, h.__globalToLocal(e, t), h)), (a.touchPointID = k), (a.isPrimaryTouchPoint = c), (a.pressure = b.pressure), this.__dispatchTarget(h, a)); for (var u = n.rollOutStack, r, q = 0; q < u.length; ) (r = u[q]), -1 == p.indexOf(r) ? (A.remove(u, r), (a = Vd.__create('touchRollOut', null, d, g, h.__globalToLocal(e, t), h)), (a.touchPointID = k), (a.isPrimaryTouchPoint = c), (a.bubbles = !1), (a.pressure = b.pressure), this.__dispatchTarget(r, a)) : ++q; for (q = 0; q < p.length; ) (r = p[q]), ++q, -1 == u.indexOf(r) && (r.hasEventListener('touchRollOver') && ((a = Vd.__create('touchRollOver', null, d, g, h.__globalToLocal(e, t), r)), (a.touchPointID = k), (a.isPrimaryTouchPoint = c), (a.bubbles = !1), (a.pressure = b.pressure), this.__dispatchTarget(r, a)), r.hasEventListener('touchRollOut') && u.push(r)); l != h && (null != l && ((a = Vd.__create('touchOver', null, d, g, l.__globalToLocal(e, t), l)), (a.touchPointID = k), (a.isPrimaryTouchPoint = c), (a.bubbles = !0), (a.pressure = b.pressure), this.__dispatchTarget(l, a)), (n.touchOverTarget = l)); na.__pool.release(e); na.__pool.release(t); m && (this.__touchData.remove(k), n.reset(), fi.__pool.release(n)); }, __registerLimeModule: function (a) { a.onCreateWindow.add(q(this, this.__onLimeCreateWindow)); a.onUpdate.add(q(this, this.__onLimeUpdate)); a.onExit.add(q(this, this.__onLimeModuleExit), !1, 0); for (a = Jd.devices.iterator(); a.hasNext(); ) { var b = a.next(); this.__onLimeGamepadConnect(b); } Jd.onConnect.add(q(this, this.__onLimeGamepadConnect)); nd.onStart.add(q(this, this.__onLimeTouchStart)); nd.onMove.add(q(this, this.__onLimeTouchMove)); nd.onEnd.add(q(this, this.__onLimeTouchEnd)); nd.onCancel.add(q(this, this.__onLimeTouchCancel)); }, __resize: function () { var a = this.stageWidth, b = this.stageHeight, c = (this.window.__width * this.window.__scale) | 0, e = (this.window.__height * this.window.__scale) | 0; this.__logicalWidth = c; this.__logicalHeight = e; this.__displayMatrix.identity(); if (null != this.get_fullScreenSourceRect() && this.window.__fullscreen) { this.stageWidth = this.get_fullScreenSourceRect().width | 0; this.stageHeight = this.get_fullScreenSourceRect().height | 0; var d = c / this.stageWidth, g = e / this.stageHeight; this.__displayMatrix.translate( -this.get_fullScreenSourceRect().x, -this.get_fullScreenSourceRect().y ); this.__displayMatrix.scale(d, g); this.__displayRect.setTo( this.get_fullScreenSourceRect().get_left(), this.get_fullScreenSourceRect().get_right(), this.get_fullScreenSourceRect().get_top(), this.get_fullScreenSourceRect().get_bottom() ); } else { if (0 == this.__logicalWidth && 0 == this.__logicalHeight) (this.stageWidth = c), (this.stageHeight = e); else { this.stageWidth = this.__logicalWidth; this.stageHeight = this.__logicalHeight; d = Math.min(c / this.stageWidth, e / this.stageHeight); g = Math.round((c - this.stageWidth * d) / 2); var p = Math.round((e - this.stageHeight * d) / 2); this.__displayMatrix.scale(d, d); this.__displayMatrix.translate(g, p); } this.__displayRect.setTo(0, 0, this.stageWidth, this.stageHeight); } null != this.context3D && this.context3D.configureBackBuffer(c, e, 0, !0, !0, !0); for (d = this.stage3Ds.iterator(); d.hasNext(); ) d.next().__resize(c, e); null != this.__renderer && this.__renderer.__resize(c, e); if (this.stageWidth != a || this.stageHeight != b) (this.__renderDirty = !0), this.__setTransformDirty(), (a = new oa('resize')), this.__dispatchEvent(a); }, __setLogicalSize: function (a, b) { this.__logicalWidth = a; this.__logicalHeight = b; this.__resize(); }, __startDrag: function (a, b, c) { if (null == c) this.__dragBounds = null; else { this.__dragBounds = new fa(); var e = c.get_right(), d = c.get_bottom(); this.__dragBounds.x = e < c.x ? e : c.x; this.__dragBounds.y = d < c.y ? d : c.y; this.__dragBounds.width = Math.abs(c.width); this.__dragBounds.height = Math.abs(c.height); } this.__dragObject = a; null != this.__dragObject && (b ? (this.__dragOffsetY = this.__dragOffsetX = 0) : ((a = na.__pool.get()), a.setTo(this.get_mouseX(), this.get_mouseY()), (b = this.__dragObject.parent), null != b && ((b = b.__getWorldTransform()), (c = b.a * b.d - b.b * b.c), 0 == c ? ((a.x = -b.tx), (a.y = -b.ty)) : ((e = (1 / c) * (b.c * (b.ty - a.y) + b.d * (a.x - b.tx))), (a.y = (1 / c) * (b.a * (a.y - b.ty) + b.b * (b.tx - a.x))), (a.x = e))), (this.__dragOffsetX = this.__dragObject.get_x() - a.x), (this.__dragOffsetY = this.__dragObject.get_y() - a.y), na.__pool.release(a))); }, __stopDrag: function (a) { this.__dragObject = this.__dragBounds = null; }, __unregisterLimeModule: function (a) { a.onCreateWindow.remove(q(this, this.__onLimeCreateWindow)); a.onUpdate.remove(q(this, this.__onLimeUpdate)); a.onExit.remove(q(this, this.__onLimeModuleExit)); Jd.onConnect.remove(q(this, this.__onLimeGamepadConnect)); nd.onStart.remove(q(this, this.__onLimeTouchStart)); nd.onMove.remove(q(this, this.__onLimeTouchMove)); nd.onEnd.remove(q(this, this.__onLimeTouchEnd)); nd.onCancel.remove(q(this, this.__onLimeTouchCancel)); }, __update: function (a, b) { a ? this.__transformDirty && (Ya.prototype.__update.call(this, !0, b), b && (this.__transformDirty = !1)) : this.__transformDirty || this.__renderDirty ? (Ya.prototype.__update.call(this, !1, b), b && La.__supportDOM && (this.__wasDirty = !0)) : !this.__renderDirty && this.__wasDirty && (Ya.prototype.__update.call(this, !1, b), b && (this.__wasDirty = !1)); }, get_color: function () { return this.__color; }, set_color: function (a) { null == a ? ((this.__transparent = !0), (a = 0)) : (this.__transparent = !1); this.__color != a && ((this.__colorSplit[0] = ((a & 16711680) >>> 16) / 255), (this.__colorSplit[1] = ((a & 65280) >>> 8) / 255), (this.__colorSplit[2] = (a & 255) / 255), (this.__colorString = '#' + U.hex(a & 16777215, 6)), (this.__renderDirty = !0), (this.__color = -16777216 | (a & 16777215))); return a; }, get_contentsScaleFactor: function () { return this.__contentsScaleFactor; }, get_displayState: function () { return this.__displayState; }, set_displayState: function (a) { null != this.window && (2 == a ? this.window.__fullscreen && this.window.set_fullscreen(!1) : this.window.__fullscreen || this.window.set_fullscreen(!0)); return (this.__displayState = a); }, get_focus: function () { return this.__focus; }, set_focus: function (a) { if (a != this.__focus) { var b = this.__focus; this.__cacheFocus = this.__focus = a; if (null != b) { var c = new Zf('focusOut', !0, !1, a, !1, 0), e = []; b.__getInteractive(e); e.reverse(); this.__dispatchStack(c, e); } null != a && ((c = new Zf('focusIn', !0, !1, b, !1, 0)), (e = []), a.__getInteractive(e), e.reverse(), this.__dispatchStack(c, e)); } return a; }, get_frameRate: function () { return null != this.window ? this.window.__backend.getFrameRate() : 0; }, set_frameRate: function (a) { return null != this.window ? this.window.__backend.setFrameRate(a) : a; }, get_fullScreenHeight: function () { return Math.ceil(this.window.get_display().currentMode.height * this.window.__scale); }, get_fullScreenSourceRect: function () { return null == this.__fullScreenSourceRect ? null : this.__fullScreenSourceRect.clone(); }, set_fullScreenSourceRect: function (a) { null == a ? null != this.__fullScreenSourceRect && ((this.__fullScreenSourceRect = null), this.__resize()) : a.equals(this.__fullScreenSourceRect) || ((this.__fullScreenSourceRect = a.clone()), this.__resize()); return a; }, get_fullScreenWidth: function () { return Math.ceil(this.window.get_display().currentMode.width * this.window.__scale); }, set_height: function (a) { return this.get_height(); }, get_mouseX: function () { return this.__mouseX; }, get_mouseY: function () { return this.__mouseY; }, get_quality: function () { return this.__quality; }, set_quality: function (a) { this.__quality = a; if (null != this.__renderer) { var b = this.get_quality(); this.__renderer.__allowSmoothing = 2 != b; } return a; }, set_rotation: function (a) { return 0; }, get_scaleMode: function () { return this.__scaleMode; }, set_scaleMode: function (a) { return (this.__scaleMode = a); }, set_scaleX: function (a) { return 0; }, set_scaleY: function (a) { return 0; }, get_tabEnabled: function () { return !1; }, set_tabEnabled: function (a) { throw M.thrown( new kd('Error: The Stage class does not implement this property or method.') ); }, get_tabIndex: function () { return -1; }, set_tabIndex: function (a) { throw M.thrown( new kd('Error: The Stage class does not implement this property or method.') ); }, set_transform: function (a) { return this.get_transform(); }, set_width: function (a) { return this.get_width(); }, set_x: function (a) { return 0; }, set_y: function (a) { return 0; }, __class__: Vi, __properties__: r(Ya.prototype.__properties__, { set_scaleMode: 'set_scaleMode', get_scaleMode: 'get_scaleMode', set_quality: 'set_quality', get_quality: 'get_quality', get_fullScreenWidth: 'get_fullScreenWidth', set_fullScreenSourceRect: 'set_fullScreenSourceRect', get_fullScreenSourceRect: 'get_fullScreenSourceRect', get_fullScreenHeight: 'get_fullScreenHeight', set_frameRate: 'set_frameRate', get_frameRate: 'get_frameRate', set_focus: 'set_focus', get_focus: 'get_focus', set_displayState: 'set_displayState', get_displayState: 'get_displayState', get_contentsScaleFactor: 'get_contentsScaleFactor', set_color: 'set_color', get_color: 'get_color' }) }); var di = function (a) { db.call(this); this.__stage = a; this.__height = 0; this.__projectionTransform = new be(); this.__renderTransform = new be(); this.__y = this.__x = this.__width = 0; this.visible = !0; 0 < a.stageWidth && 0 < a.stageHeight && this.__resize(a.stageWidth, a.stageHeight); }; h['openfl.display.Stage3D'] = di; di.__name__ = 'openfl.display.Stage3D'; di.__super__ = db; di.prototype = r(db.prototype, { context3D: null, visible: null, __contextLost: null, __contextRequested: null, __height: null, __indexBuffer: null, __projectionTransform: null, __renderTransform: null, __stage: null, __vertexBuffer: null, __width: null, __x: null, __y: null, __canvas: null, __renderContext: null, __style: null, __webgl: null, requestContext3D: function (a, b) { this.__contextLost ? (this.__contextRequested = !0) : null != this.context3D ? ((this.__contextRequested = !0), Qe.delay(q(this, this.__dispatchCreate), 1)) : this.__contextRequested || ((this.__contextRequested = !0), Qe.delay(q(this, this.__createContext), 1)); }, requestContext3DMatchingProfiles: function (a) { this.requestContext3D(); }, __createContext: function () { var a = this.__stage, b = a.__renderer; if ('cairo' == b.__type || 'canvas' == b.__type) this.__dispatchError(); else if ('opengl' == b.__type) (this.context3D = new $b(a, a.context3D.__contextState, this)), this.__dispatchCreate(); else if ('dom' == b.__type) { this.__canvas = window.document.createElement('canvas'); this.__canvas.width = a.stageWidth; this.__canvas.height = a.stageHeight; var c = b.__context.attributes; a = Object.prototype.hasOwnProperty.call(c, 'background') && null == c.background; b = Object.prototype.hasOwnProperty.call(c, 'colorDepth') ? c.colorDepth : 32; c = Object.prototype.hasOwnProperty.call(c, 'antialiasing') && 0 < c.antialiasing; this.__webgl = fw.getContextWebGL(this.__canvas, { alpha: a || 16 < b, antialias: c, depth: !0, premultipliedAlpha: !0, stencil: !0, preserveDrawingBuffer: !1 }); this.__dispatchError(); } }, __dispatchError: function () { this.__contextRequested = !1; this.dispatchEvent(new Ue('error', !1, !1, 'Context3D not available')); }, __dispatchCreate: function () { this.__contextRequested && ((this.__contextRequested = !1), this.dispatchEvent(new oa('context3DCreate'))); }, __lostContext: function () { this.__contextLost = !0; null != this.context3D && (this.context3D.__dispose(), (this.__contextRequested = !0)); }, __resize: function (a, b) { if (a != this.__width || b != this.__height) null != this.__canvas && ((this.__canvas.width = a), (this.__canvas.height = b)), this.__projectionTransform.copyRawDataFrom( yb.toFloatVector(null, null, null, [ 2 / (0 < a ? a : 1), 0, 0, 0, 0, -2 / (0 < b ? b : 1), 0, 0, 0, 0, -0.001, 0, -1, 1, 0, 1 ]) ), this.__renderTransform.identity(), this.__renderTransform.appendTranslation(this.__x, this.__y, 0), this.__renderTransform.append(this.__projectionTransform), (this.__width = a), (this.__height = b); }, __restoreContext: function () { this.__contextLost = !1; this.__createContext(); }, get_x: function () { return this.__x; }, set_x: function (a) { if (this.__x == a) return a; this.__x = a; this.__renderTransform.identity(); this.__renderTransform.appendTranslation(this.__x, this.__y, 0); this.__renderTransform.append(this.__projectionTransform); return a; }, get_y: function () { return this.__y; }, set_y: function (a) { if (this.__y == a) return a; this.__y = a; this.__renderTransform.identity(); this.__renderTransform.appendTranslation(this.__x, this.__y, 0); this.__renderTransform.append(this.__projectionTransform); return a; }, __class__: di, __properties__: { set_y: 'set_y', get_y: 'get_y', set_x: 'set_x', get_x: 'get_x' } }); var ig = function (a, b, c, e, d, g, p, l) { null == l && (l = 0); null == p && (p = 0); null == g && (g = 0); null == d && (d = 1); null == e && (e = 1); null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.__id = a; this.__matrix = new Ia(); 0 != b && this.set_x(b); 0 != c && this.set_y(c); 1 != e && this.set_scaleX(e); 1 != d && this.set_scaleY(d); 0 != g && this.set_rotation(g); this.__dirty = !0; this.__length = 0; this.__originX = p; this.__originY = l; this.__alpha = 1; this.__blendMode = null; this.__visible = !0; }; h['openfl.display.Tile'] = ig; ig.__name__ = 'openfl.display.Tile'; ig.prototype = { data: null, parent: null, __alpha: null, __blendMode: null, __colorTransform: null, __dirty: null, __id: null, __length: null, __matrix: null, __originX: null, __originY: null, __rect: null, __rotation: null, __rotationCosine: null, __rotationSine: null, __scaleX: null, __scaleY: null, __shader: null, __tileset: null, __visible: null, clone: function () { var a = new ig(this.__id); a.__alpha = this.__alpha; a.__blendMode = this.__blendMode; a.__originX = this.__originX; a.__originY = this.__originY; null != this.__rect && (a.__rect = this.__rect.clone()); a.set_matrix(this.__matrix.clone()); a.__shader = this.__shader; a.set_tileset(this.__tileset); null != this.__colorTransform && (a.__colorTransform = this.__colorTransform.__clone()); return a; }, getBounds: function (a) { var b = new fa(); this.__findTileRect(b); var c = Ia.__pool.get(); if (null != a && a != this) { c.copyFrom(this.__getWorldTransform()); var e = Ia.__pool.get(); e.copyFrom(a.__getWorldTransform()); e.invert(); c.concat(e); Ia.__pool.release(e); } else c.identity(); this.__getBounds(b, c); Ia.__pool.release(c); return b; }, __getBounds: function (a, b) { a.__transform(a, b); }, hitTestTile: function (a) { if (null != a && null != a.parent && null != this.parent) { var b = this.getBounds(this); a = a.getBounds(this); return b.intersects(a); } return !1; }, invalidate: function () { this.__setRenderDirty(); }, __findTileRect: function (a) { if (null == this.get_tileset()) if (null != this.parent) { var b = this.parent.__findTileset(); null == b ? a.setTo(0, 0, 0, 0) : ((b = b.getRect(this.get_id())), null == b ? a.setTo(0, 0, 0, 0) : a.copyFrom(b)); } else a.setTo(0, 0, 0, 0); else a.copyFrom(this.get_tileset().getRect(this.get_id())); a.x = 0; a.y = 0; }, __findTileset: function () { return null != this.get_tileset() ? this.get_tileset() : this.parent instanceof jg ? this.parent.get_tileset() : null == this.parent ? null : this.parent.__findTileset(); }, __getWorldTransform: function () { var a = this.get_matrix().clone(); null != this.parent && a.concat(this.parent.__getWorldTransform()); return a; }, __setRenderDirty: function () { this.__dirty || ((this.__dirty = !0), null != this.parent && this.parent.__setRenderDirty()); }, get_alpha: function () { return this.__alpha; }, set_alpha: function (a) { a != this.__alpha && ((this.__alpha = a), this.__setRenderDirty()); return a; }, get_blendMode: function () { return this.__blendMode; }, set_blendMode: function (a) { a != this.__blendMode && ((this.__blendMode = a), this.__setRenderDirty()); return a; }, get_colorTransform: function () { return this.__colorTransform; }, set_colorTransform: function (a) { a != this.__colorTransform && ((this.__colorTransform = a), this.__setRenderDirty()); return a; }, get_height: function () { var a = fa.__pool.get(); this.__findTileRect(a); this.__getBounds(a, this.get_matrix()); var b = a.height; fa.__pool.release(a); return b; }, set_height: function (a) { var b = fa.__pool.get(); this.__findTileRect(b); 0 != b.height && this.set_scaleY(a / b.height); fa.__pool.release(b); return a; }, get_id: function () { return this.__id; }, set_id: function (a) { a != this.__id && ((this.__id = a), this.__setRenderDirty()); return a; }, get_matrix: function () { return this.__matrix; }, set_matrix: function (a) { a != this.__matrix && ((this.__scaleY = this.__scaleX = this.__rotation = null), (this.__matrix = a), this.__setRenderDirty()); return a; }, get_originX: function () { return this.__originX; }, set_originX: function (a) { a != this.__originX && ((this.__originX = a), this.__setRenderDirty()); return a; }, get_originY: function () { return this.__originY; }, set_originY: function (a) { a != this.__originY && ((this.__originY = a), this.__setRenderDirty()); return a; }, get_rect: function () { return this.__rect; }, set_rect: function (a) { a != this.__rect && ((this.__rect = a), this.__setRenderDirty()); return a; }, get_rotation: function () { if (null == this.__rotation) if (0 == this.__matrix.b && 0 == this.__matrix.c) (this.__rotationSine = this.__rotation = 0), (this.__rotationCosine = 1); else { var a = Math.atan2(this.__matrix.d, this.__matrix.c) - Math.PI / 2; this.__rotation = (180 / Math.PI) * a; this.__rotationSine = Math.sin(a); this.__rotationCosine = Math.cos(a); } return this.__rotation; }, set_rotation: function (a) { if (a != this.__rotation) { this.__rotation = a; var b = (Math.PI / 180) * a; this.__rotationSine = Math.sin(b); this.__rotationCosine = Math.cos(b); b = this.get_scaleX(); var c = this.get_scaleY(); this.__matrix.a = this.__rotationCosine * b; this.__matrix.b = this.__rotationSine * b; this.__matrix.c = -this.__rotationSine * c; this.__matrix.d = this.__rotationCosine * c; this.__setRenderDirty(); } return a; }, get_scaleX: function () { null == this.__scaleX && (0 == this.get_matrix().b ? (this.__scaleX = this.__matrix.a) : (this.__scaleX = Math.sqrt( this.__matrix.a * this.__matrix.a + this.__matrix.b * this.__matrix.b ))); return this.__scaleX; }, set_scaleX: function (a) { if (a != this.__scaleX) { this.__scaleX = a; if (0 == this.__matrix.b) this.__matrix.a = a; else { this.get_rotation(); var b = this.__rotationSine * a; this.__matrix.a = this.__rotationCosine * a; this.__matrix.b = b; } this.__setRenderDirty(); } return a; }, get_scaleY: function () { null == this.__scaleY && (this.__scaleY = 0 == this.__matrix.c ? this.get_matrix().d : Math.sqrt(this.__matrix.c * this.__matrix.c + this.__matrix.d * this.__matrix.d)); return this.__scaleY; }, set_scaleY: function (a) { if (a != this.__scaleY) { this.__scaleY = a; if (0 == this.__matrix.c) this.__matrix.d = a; else { this.get_rotation(); var b = this.__rotationCosine * a; this.__matrix.c = -this.__rotationSine * a; this.__matrix.d = b; } this.__setRenderDirty(); } return a; }, get_shader: function () { return this.__shader; }, set_shader: function (a) { a != this.__shader && ((this.__shader = a), this.__setRenderDirty()); return a; }, get_tileset: function () { return this.__tileset; }, set_tileset: function (a) { a != this.__tileset && ((this.__tileset = a), this.__setRenderDirty()); return a; }, get_visible: function () { return this.__visible; }, set_visible: function (a) { a != this.__visible && ((this.__visible = a), this.__setRenderDirty()); return a; }, get_width: function () { var a = fa.__pool.get(); this.__findTileRect(a); this.__getBounds(a, this.get_matrix()); var b = a.width; fa.__pool.release(a); return b; }, set_width: function (a) { var b = fa.__pool.get(); this.__findTileRect(b); 0 != b.width && this.set_scaleX(a / b.width); fa.__pool.release(b); return a; }, get_x: function () { return this.__matrix.tx; }, set_x: function (a) { a != this.__matrix.tx && ((this.__matrix.tx = a), this.__setRenderDirty()); return a; }, get_y: function () { return this.__matrix.ty; }, set_y: function (a) { a != this.__matrix.ty && ((this.__matrix.ty = a), this.__setRenderDirty()); return a; }, __class__: ig, __properties__: { set_y: 'set_y', get_y: 'get_y', set_x: 'set_x', get_x: 'get_x', set_width: 'set_width', get_width: 'get_width', set_visible: 'set_visible', get_visible: 'get_visible', set_tileset: 'set_tileset', get_tileset: 'get_tileset', set_shader: 'set_shader', get_shader: 'get_shader', set_scaleY: 'set_scaleY', get_scaleY: 'get_scaleY', set_scaleX: 'set_scaleX', get_scaleX: 'get_scaleX', set_rotation: 'set_rotation', get_rotation: 'get_rotation', set_rect: 'set_rect', get_rect: 'get_rect', set_originY: 'set_originY', get_originY: 'get_originY', set_originX: 'set_originX', get_originX: 'get_originX', set_matrix: 'set_matrix', get_matrix: 'get_matrix', set_id: 'set_id', get_id: 'get_id', set_height: 'set_height', get_height: 'get_height', set_colorTransform: 'set_colorTransform', get_colorTransform: 'get_colorTransform', set_blendMode: 'set_blendMode', get_blendMode: 'get_blendMode', set_alpha: 'set_alpha', get_alpha: 'get_alpha' } }; var Xi = function (a, b, c, e, d, g, p) { null == p && (p = 0); null == g && (g = 0); null == d && (d = 0); null == e && (e = 1); null == c && (c = 1); null == b && (b = 0); null == a && (a = 0); ig.call(this, -1, a, b, c, e, d, g, p); this.__tiles = []; this.__length = 0; }; h['openfl.display.TileContainer'] = Xi; Xi.__name__ = 'openfl.display.TileContainer'; Xi.__interfaces__ = [Di]; Xi.__super__ = ig; Xi.prototype = r(ig.prototype, { __tiles: null, addTile: function (a) { if (null == a) return null; a.parent == this && (A.remove(this.__tiles, a), this.__length--); this.__tiles[this.get_numTiles()] = a; a.parent = this; this.__length++; this.__setRenderDirty(); return a; }, addTileAt: function (a, b) { if (null == a) return null; a.parent == this && (A.remove(this.__tiles, a), this.__length--); this.__tiles.splice(b, 0, a); a.parent = this; this.__length++; this.__setRenderDirty(); return a; }, addTiles: function (a) { for (var b = 0; b < a.length; ) { var c = a[b]; ++b; this.addTile(c); } return a; }, clone: function () { for (var a = new Xi(), b = 0, c = this.__tiles; b < c.length; ) { var e = c[b]; ++b; a.addTile(e.clone()); } return a; }, contains: function (a) { return -1 < this.__tiles.indexOf(a); }, getBounds: function (a) { for (var b = new fa(), c, e = 0, d = this.__tiles; e < d.length; ) (c = d[e]), ++e, (c = c.getBounds(a)), b.__expand(c.x, c.y, c.width, c.height); return b; }, getTileAt: function (a) { return 0 <= a && a < this.get_numTiles() ? this.__tiles[a] : null; }, getTileIndex: function (a) { for (var b = 0, c = this.__tiles.length; b < c; ) { var e = b++; if (this.__tiles[e] == a) return e; } return -1; }, removeTile: function (a) { null != a && a.parent == this && ((a.parent = null), A.remove(this.__tiles, a), this.__length--, this.__setRenderDirty()); return a; }, removeTileAt: function (a) { return 0 <= a && a < this.get_numTiles() ? this.removeTile(this.__tiles[a]) : null; }, removeTiles: function (a, b) { null == b && (b = 2147483647); null == a && (a = 0); 0 > a && (a = 0); b > this.__tiles.length - 1 && (b = this.__tiles.length - 1); a = this.__tiles.splice(a, b - a + 1); for (b = 0; b < a.length; ) { var c = a[b]; ++b; c.parent = null; } this.__length = this.__tiles.length; this.__setRenderDirty(); }, setTileIndex: function (a, b) { 0 <= b && b <= this.get_numTiles() && a.parent == this && (A.remove(this.__tiles, a), this.__tiles.splice(b, 0, a), this.__setRenderDirty()); }, sortTiles: function (a) { this.__tiles.sort(a); this.__setRenderDirty(); }, swapTiles: function (a, b) { if (a.parent == this && b.parent == this) { var c = this.__tiles.indexOf(a), e = this.__tiles.indexOf(b); this.__tiles[c] = b; this.__tiles[e] = a; this.__setRenderDirty(); } }, swapTilesAt: function (a, b) { var c = this.__tiles[a]; this.__tiles[a] = this.__tiles[b]; this.__tiles[b] = c; this.__setRenderDirty(); }, get_numTiles: function () { return this.__length; }, get_height: function () { for (var a = fa.__pool.get(), b, c = 0, e = this.__tiles; c < e.length; ) (b = e[c]), ++c, (b = b.getBounds(this)), a.__expand(b.x, b.y, b.width, b.height); this.__getBounds(a, this.get_matrix()); c = a.height; fa.__pool.release(a); return c; }, set_height: function (a) { for (var b = fa.__pool.get(), c, e = 0, d = this.__tiles; e < d.length; ) (c = d[e]), ++e, (c = c.getBounds(this)), b.__expand(c.x, c.y, c.width, c.height); 0 != b.height && this.set_scaleY(a / b.height); fa.__pool.release(b); return a; }, get_width: function () { for (var a = fa.__pool.get(), b, c = 0, e = this.__tiles; c < e.length; ) (b = e[c]), ++c, (b = b.getBounds(this)), a.__expand(b.x, b.y, b.width, b.height); this.__getBounds(a, this.get_matrix()); c = a.width; fa.__pool.release(a); return c; }, set_width: function (a) { for (var b = fa.__pool.get(), c, e = 0, d = this.__tiles; e < d.length; ) (c = d[e]), ++e, (c = c.getBounds(this)), b.__expand(c.x, c.y, c.width, c.height); 0 != b.width && this.set_scaleX(a / b.width); fa.__pool.release(b); return a; }, __class__: Xi, __properties__: r(ig.prototype.__properties__, { get_numTiles: 'get_numTiles' }) }); var jg = function (a, b, c, e) { null == e && (e = !0); La.call(this); this.__drawableType = 9; this.__tileset = c; this.smoothing = e; this.tileColorTransformEnabled = this.tileBlendModeEnabled = this.tileAlphaEnabled = !0; this.__group = new Xi(); this.__group.set_tileset(c); this.__width = a; this.__height = b; }; h['openfl.display.Tilemap'] = jg; jg.__name__ = 'openfl.display.Tilemap'; jg.__interfaces__ = [Di]; jg.__super__ = La; jg.prototype = r(La.prototype, { tileAlphaEnabled: null, tileBlendModeEnabled: null, tileColorTransformEnabled: null, smoothing: null, __group: null, __tileset: null, __buffer: null, __bufferDirty: null, __height: null, __width: null, addTile: function (a) { return this.__group.addTile(a); }, addTileAt: function (a, b) { return this.__group.addTileAt(a, b); }, addTiles: function (a) { return this.__group.addTiles(a); }, contains: function (a) { return this.__group.contains(a); }, getTileAt: function (a) { return this.__group.getTileAt(a); }, getTileIndex: function (a) { return this.__group.getTileIndex(a); }, getTiles: function () { return this.__group.clone(); }, removeTile: function (a) { return this.__group.removeTile(a); }, removeTileAt: function (a) { return this.__group.removeTileAt(a); }, removeTiles: function (a, b) { null == b && (b = 2147483647); null == a && (a = 0); this.__group.removeTiles(a, b); }, setTileIndex: function (a, b) { this.__group.setTileIndex(a, b); }, setTiles: function (a) { for (var b = 0, c = this.__group.__tiles; b < c.length; ) { var e = c[b]; ++b; this.removeTile(e); } b = 0; for (c = a.__tiles; b < c.length; ) (e = c[b]), ++b, this.addTile(e); }, sortTiles: function (a) { this.__group.sortTiles(a); }, swapTiles: function (a, b) { this.__group.swapTiles(a, b); }, swapTilesAt: function (a, b) { this.__group.swapTilesAt(a, b); }, __enterFrame: function (a) { this.__group.__dirty && !this.__renderDirty && ((this.__renderDirty = !0), this.__setParentRenderDirty()); }, __getBounds: function (a, b) { var c = fa.__pool.get(); c.setTo(0, 0, this.__width, this.__height); c.__transform(c, b); a.__expand(c.x, c.y, c.width, c.height); fa.__pool.release(c); }, __hitTest: function (a, b, c, e, d, g) { if ( !g.get_visible() || this.__isMask || (null != this.get_mask() && !this.get_mask().__hitTestMask(a, b)) ) return !1; this.__getRenderTransform(); var f = this.__renderTransform, l = f.a * f.d - f.b * f.c; c = 0 == l ? -f.tx : (1 / l) * (f.c * (f.ty - b) + f.d * (a - f.tx)); f = this.__renderTransform; l = f.a * f.d - f.b * f.c; a = 0 == l ? -f.ty : (1 / l) * (f.a * (b - f.ty) + f.b * (f.tx - a)); return 0 < c && 0 < a && c <= this.__width && a <= this.__height ? (null == e || d || e.push(g), !0) : !1; }, __renderFlash: function () {}, get_height: function () { return this.__height * Math.abs(this.get_scaleY()); }, set_height: function (a) { this.__height = a | 0; return this.__height * Math.abs(this.get_scaleY()); }, get_numTiles: function () { return this.__group.__length; }, get_tileset: function () { return this.__tileset; }, set_tileset: function (a) { a != this.__tileset && ((this.__tileset = a), this.__group.set_tileset(a), (this.__group.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); return a; }, get_width: function () { return this.__width * Math.abs(this.__scaleX); }, set_width: function (a) { this.__width = a | 0; return this.__width * Math.abs(this.__scaleX); }, __class__: jg, __properties__: r(La.prototype.__properties__, { set_tileset: 'set_tileset', get_tileset: 'get_tileset', get_numTiles: 'get_numTiles' }) }); var Rh = function (a, b) { this.__bitmapData = a; this.rectData = yb.toFloatVector(null); this.__data = []; if (null != b) for (a = 0; a < b.length; ) { var c = b[a]; ++a; this.addRect(c); } }; h['openfl.display.Tileset'] = Rh; Rh.__name__ = 'openfl.display.Tileset'; Rh.prototype = { rectData: null, __bitmapData: null, __data: null, addRect: function (a) { if (null == a) return -1; this.rectData.push(a.x); this.rectData.push(a.y); this.rectData.push(a.width); this.rectData.push(a.height); a = new Ym(a); a.__update(this.__bitmapData); this.__data.push(a); return this.__data.length - 1; }, clone: function () { for ( var a = new Rh(this.__bitmapData, null), b = fa.__pool.get(), c = 0, e = this.__data; c < e.length; ) { var d = e[c]; ++c; b.setTo(d.x, d.y, d.width, d.height); a.addRect(b); } fa.__pool.release(b); return a; }, hasRect: function (a) { for (var b = 0, c = this.__data; b < c.length; ) { var e = c[b]; ++b; if (a.x == e.x && a.y == e.y && a.width == e.width && a.height == e.height) return !0; } return !1; }, getRect: function (a) { return a < this.__data.length && 0 <= a ? new fa( this.__data[a].x, this.__data[a].y, this.__data[a].width, this.__data[a].height ) : null; }, getRectID: function (a) { for (var b, c = 0, e = this.__data.length; c < e; ) { var d = c++; b = this.__data[d]; if (a.x == b.x && a.y == b.y && a.width == b.width && a.height == b.height) return d; } return null; }, get_bitmapData: function () { return this.__bitmapData; }, set_bitmapData: function (a) { this.__bitmapData = a; for (var b = 0, c = this.__data; b < c.length; ) { var e = c[b]; ++b; e.__update(this.__bitmapData); } return a; }, get_numRects: function () { return this.__data.length; }, __class__: Rh, __properties__: { get_numRects: 'get_numRects', set_bitmapData: 'set_bitmapData', get_bitmapData: 'get_bitmapData' } }; var Ym = function (a) { null != a && ((this.x = a.x | 0), (this.y = a.y | 0), (this.width = a.width | 0), (this.height = a.height | 0)); }; h['openfl.display._Tileset.TileData'] = Ym; Ym.__name__ = 'openfl.display._Tileset.TileData'; Ym.prototype = { height: null, width: null, x: null, y: null, __bitmapData: null, __uvHeight: null, __uvWidth: null, __uvX: null, __uvY: null, __update: function (a) { if (null != a) { var b = a.width; a = a.height; this.__uvX = this.x / b; this.__uvY = this.y / a; this.__uvWidth = (this.x + this.width) / b; this.__uvHeight = (this.y + this.height) / a; } }, __class__: Ym }; var Fw = function () { this.__totalFrames = this.__framesLoaded = 1; this.__currentLabels = []; this.__currentFrame = 1; this.__lastFrameUpdate = this.__lastFrameScriptEval = -1; }; h['openfl.display.Timeline'] = Fw; Fw.__name__ = 'openfl.display.Timeline'; Fw.prototype = { frameRate: null, scenes: null, scripts: null, __currentFrame: null, __currentFrameLabel: null, __currentLabel: null, __currentLabels: null, __currentScene: null, __frameScripts: null, __framesLoaded: null, __frameTime: null, __isPlaying: null, __lastFrameScriptEval: null, __lastFrameUpdate: null, __scope: null, __timeElapsed: null, __totalFrames: null, attachMovieClip: function (a) {}, enterFrame: function (a) {}, __addFrameScript: function (a, b) { 0 > a || ((a += 1), null != b ? (null == this.__frameScripts && (this.__frameScripts = new Za()), (this.__frameScripts.h[a] = function (a) { b(); })) : null != this.__frameScripts && this.__frameScripts.remove(a)); }, __attachMovieClip: function (a) { this.__scope = a; this.__framesLoaded = this.__totalFrames = 0; if (null != this.scenes && 0 < this.scenes.length) { for (var b = 0, c = this.scenes; b < c.length; ) { var e = c[b]; ++b; this.__totalFrames += e.numFrames; this.__framesLoaded += e.numFrames; null != e.labels && (this.__currentLabels = this.__currentLabels.concat(e.labels)); } this.__currentScene = this.scenes[0]; } if (null != this.scripts && 0 < this.scripts.length) for (this.__frameScripts = new Za(), b = 0, c = this.scripts; b < c.length; ) (e = c[b]), ++b, (this.__frameScripts.h[e.frame] = e.script); this.attachMovieClip(a); }, __enterFrame: function (a) { if (this.__isPlaying) { a = this.__getNextFrame(a); if (this.__lastFrameScriptEval == a) return; if (null != this.__frameScripts) { if (a < this.__currentFrame) { if (!this.__evaluateFrameScripts(this.__totalFrames)) return; this.__currentFrame = 1; } if (!this.__evaluateFrameScripts(a)) return; } else this.__currentFrame = a; } this.__updateSymbol(this.__currentFrame); }, __evaluateFrameScripts: function (a) { if (null == this.__frameScripts) return !0; var b = this.__currentFrame; for (a += 1; b < a; ) { var c = b++; if ( c != this.__lastFrameScriptEval && ((this.__currentFrame = this.__lastFrameScriptEval = c), (this.__frameScripts.h.hasOwnProperty(c) && (this.__updateSymbol(c), (0, this.__frameScripts.h[c])(this.__scope), this.__currentFrame != c)) || !this.__isPlaying) ) return !1; } return !0; }, __getNextFrame: function (a) { null != this.frameRate ? ((this.__timeElapsed += a), (a = this.__currentFrame + Math.floor(this.__timeElapsed / this.__frameTime)), 1 > a && (a = 1), a > this.__totalFrames && (a = Math.floor((a - 1) % this.__totalFrames) + 1), (this.__timeElapsed %= this.__frameTime)) : ((a = this.__currentFrame + 1), a > this.__totalFrames && (a = 1)); return a; }, __goto: function (a) { 1 > a ? (a = 1) : a > this.__totalFrames && (a = this.__totalFrames); this.__lastFrameScriptEval = -1; this.__currentFrame = a; this.__updateSymbol(this.__currentFrame); this.__evaluateFrameScripts(this.__currentFrame); }, __gotoAndPlay: function (a, b) { this.__play(); this.__goto(this.__resolveFrameReference(a)); }, __gotoAndStop: function (a, b) { this.__stop(); this.__goto(this.__resolveFrameReference(a)); }, __nextFrame: function () { this.__stop(); this.__goto(this.__currentFrame + 1); }, __nextScene: function () {}, __play: function () { this.__isPlaying || 2 > this.__totalFrames || ((this.__isPlaying = !0), null != this.frameRate && ((this.__frameTime = (1e3 / this.frameRate) | 0), (this.__timeElapsed = 0))); }, __prevFrame: function () { this.__stop(); this.__goto(this.__currentFrame - 1); }, __prevScene: function () {}, __stop: function () { this.__isPlaying = !1; }, __resolveFrameReference: function (a) { if ('number' == typeof a && (a | 0) === a) return a; if ('string' == typeof a) { for (var b = 0, c = this.__currentLabels; b < c.length; ) { var e = c[b]; ++b; if (e.name == a) return e.frame; } throw M.thrown(new qi('Error #2109: Frame label ' + a + ' not found in scene.')); } throw M.thrown('Invalid type for frame ' + a.__name__); }, __updateFrameLabel: function () { this.__currentFrameLabel = this.__currentLabel = null; for (var a = 0, b = this.__currentLabels; a < b.length; ) { var c = b[a]; ++a; if (c.frame < this.__currentFrame) this.__currentLabel = c.name; else if (c.frame == this.__currentFrame) this.__currentFrameLabel = this.__currentLabel = c.name; else break; } }, __updateSymbol: function (a) { this.__currentFrame != this.__lastFrameUpdate && (this.__updateFrameLabel(), this.enterFrame(a), (this.__lastFrameUpdate = this.__currentFrame)); }, __class__: Fw }; var Zj = function (a, b) { Mi.call(this, a, b); this.stage = new Vi( this, Object.prototype.hasOwnProperty.call(b.context, 'background') ? b.context.background : 16777215 ); if (Object.prototype.hasOwnProperty.call(b, 'parameters')) try { this.stage.get_loaderInfo().parameters = b.parameters; } catch (c) { la.lastError = c; } Object.prototype.hasOwnProperty.call(b, 'resizable') && !b.resizable && this.stage.__setLogicalSize(b.width, b.height); a.addModule(this.stage); }; h['openfl.display.Window'] = Zj; Zj.__name__ = 'openfl.display.Window'; Zj.__super__ = Mi; Zj.prototype = r(Mi.prototype, { __class__: Zj }); var Yi = function (a, b, c, e, d, g, p) { null == p && (p = 0.05); null == g && (g = !1); this.stitch = g; this.stitch_threshold = p; this.octaves = b; this.channels = c; this.grayscale = e; this.calculateOctaves(d); }; h['openfl.display._internal.AbstractNoise'] = Yi; Yi.__name__ = 'openfl.display._internal.AbstractNoise'; Yi.prototype = { octaves: null, stitch: null, stitch_threshold: null, channels: null, grayscale: null, octaves_frequencies: null, octaves_persistences: null, persistence_max: null, fill: function (a, b, c, e) {}, stitching: function (a, b, c, e, d, g, p, l) { var f = (b >> 16) & 255, k = (b >> 8) & 255; b &= 255; if (p - d < c) { var h = a.getPixel32(p - c, e), m = (h >> 8) & 255, t = h & 255; d = (p - c) / d; f = this.mixI((h >> 16) & 255, f, d); k = this.mixI(m, k, d); b = this.mixI(t, b, d); } l - g < e && ((h = a.getPixel32(c, l - e)), (m = (h >> 8) & 255), (t = h & 255), (d = (l - e) / g), (f = this.mixI((h >> 16) & 255, f, d)), (k = this.mixI(m, k, d)), (b = this.mixI(t, b, d))); return -16777216 | (f << 16) | (k << 8) | b; }, color: function (a, b, c) { var e = 0, d = 0, g = 0; null != a && (e = this.noiseToColor(a)); null != b && (d = this.noiseToColor(b)); null != c && (g = this.noiseToColor(c)); return -16777216 | (e << 16) | (d << 8) | g; }, noiseToColor: function (a) { return (128 * (a * this.persistence_max + 1)) | 0; }, fade: function (a) { return a * a * a * (a * (6 * a - 15) + 10); }, mixI: function (a, b, c) { return ((1 - c) * a + c * b) | 0; }, mix: function (a, b, c) { return (1 - c) * a + c * b; }, fastfloor: function (a) { return 0 < a ? a | 0 : (a - 1) | 0; }, dot2d: function (a, b, c) { return a[0] * b + a[1] * c; }, dot: function (a, b, c, e) { return a[0] * b + a[1] * c + a[2] * e; }, calculateOctaves: function (a) { this.octaves_frequencies = []; this.octaves_persistences = []; for (var b = (this.persistence_max = 0), c = this.octaves; b < c; ) { var e = b++; var d = Math.pow(2, e); e = Math.pow(a, e); this.persistence_max += e; this.octaves_frequencies.push(d); this.octaves_persistences.push(e); } this.persistence_max = 1 / this.persistence_max; }, __class__: Yi }; var Zm = function () {}; h['openfl.display._internal.CairoBitmap'] = Zm; Zm.__name__ = 'openfl.display._internal.CairoBitmap'; Zm.render = function (a, b) { if (a.__renderable) { var c = b.__getAlpha(a.__worldAlpha); if (0 < c && null != a.__bitmapData && a.__bitmapData.__isValid) { var e = b.cairo; b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); b.applyMatrix(a.__renderTransform, e); var d = a.__bitmapData.getSurface(); null != d && ((d = Oo.createForSurface(d)), Oo.set_filter(d, b.__allowSmoothing && a.smoothing ? 1 : 3), e.set_source(d), 1 == c ? e.paint() : e.paintWithAlpha(c)); b.__popMaskObject(a); b.__setBlendMode(10); } } }; Zm.renderDrawable = function (a, b) {}; Zm.renderDrawableMask = function (a, b) { b.cairo.rectangle(0, 0, a.get_width(), a.get_height()); }; var Gw = function () {}; h['openfl.display._internal.CairoBitmapData'] = Gw; Gw.__name__ = 'openfl.display._internal.CairoBitmapData'; Gw.renderDrawable = function (a, b) {}; Gw.renderDrawableMask = function (a, b) {}; var $m = function () {}; h['openfl.display._internal.CairoDisplayObject'] = $m; $m.__name__ = 'openfl.display._internal.CairoDisplayObject'; $m.render = function (a, b) {}; $m.renderDrawable = function (a, b) {}; $m.renderDrawableMask = function (a, b) {}; var Hw = function () {}; h['openfl.display._internal.CairoDisplayObjectContainer'] = Hw; Hw.__name__ = 'openfl.display._internal.CairoDisplayObjectContainer'; Hw.renderDrawable = function (a, b) {}; Hw.renderDrawableMask = function (a, b) {}; var an = function () {}; h['openfl.display._internal.CairoGraphics'] = an; an.__name__ = 'openfl.display._internal.CairoGraphics'; an.hitTest = function (a, b, c) { return !1; }; an.render = function (a, b) {}; an.renderMask = function (a, b) {}; var bn = function () {}; h['openfl.display._internal.CairoShape'] = bn; bn.__name__ = 'openfl.display._internal.CairoShape'; bn.render = function (a, b) {}; bn.renderDrawable = function (a, b) {}; bn.renderDrawableMask = function (a, b) {}; var Iw = function () {}; h['openfl.display._internal.CairoSimpleButton'] = Iw; Iw.__name__ = 'openfl.display._internal.CairoSimpleButton'; Iw.renderDrawable = function (a, b) { !a.__renderable || 0 >= a.__worldAlpha || null == a.__currentState || (b.__pushMaskObject(a), b.__renderDrawable(a.__currentState), b.__popMaskObject(a), b.__renderEvent(a)); }; Iw.renderDrawableMask = function (a, b) { b.__renderDrawableMask(a.__currentState); }; var cn = function () {}; h['openfl.display._internal.CairoTextField'] = cn; cn.__name__ = 'openfl.display._internal.CairoTextField'; cn.render = function (a, b, c) {}; cn.renderDrawable = function (a, b) {}; cn.renderDrawableMask = function (a, b) {}; var gi = function () {}; h['openfl.display._internal.CairoTilemap'] = gi; gi.__name__ = 'openfl.display._internal.CairoTilemap'; gi.render = function (a, b) { if (a.__renderable && 0 != a.__group.__tiles.length) { var c = b.__getAlpha(a.__worldAlpha); if (!(0 >= c)) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var e = fa.__pool.get(); e.setTo(0, 0, a.__width, a.__height); b.__pushMaskRect(e, a.__renderTransform); gi.renderTileContainer( a.__group, b, a.__renderTransform, a.__tileset, b.__allowSmoothing && a.smoothing, a.tileAlphaEnabled, c, a.tileBlendModeEnabled, a.__worldBlendMode, null, null, null, e, new Wh() ); b.__popMaskRect(); b.__popMaskObject(a); fa.__pool.release(e); } } }; gi.renderTileContainer = function (a, b, c, e, d, g, p, l, k, n, h, m, t, u) { var f = b.cairo, v = Ia.__pool.get(); a = a.__tiles; for (var r, q, w, x, z = null, E = 0; E < a.length; ) if ( ((r = a[E]), ++E, v.setTo(1, 0, 0, 1, -r.get_originX(), -r.get_originY()), v.concat(r.get_matrix()), v.concat(c), (q = null != r.get_tileset() ? r.get_tileset() : e), (w = r.get_alpha() * p), (x = r.get_visible()) && !(0 >= w)) ) if ( (g || (w = 1), l && (z = null != r.__blendMode ? r.__blendMode : k), 0 < r.__length) ) gi.renderTileContainer(r, b, v, q, d, g, w, l, z, n, h, m, t, u); else if (null != q) { x = r.get_id(); if (-1 == x) { if (((r = r.__rect), null == r || 0 >= r.width || 0 >= r.height)) continue; } else { r = q.__data[x]; if (null == r) continue; t.setTo(r.x, r.y, r.width, r.height); r = t; } q = q.__bitmapData; null != q && (q != n && ((h = q.getSurface()), (m = Oo.createForSurface(h)), Oo.set_filter(m, d ? 1 : 3), f.set_source(m), (n = q)), l && b.__setBlendMode(z), b.applyMatrix(v, f), (u.tx = r.x), (u.ty = r.y), Oo.set_matrix(m, u), f.set_source(m), f.save(), f.newPath(), f.rectangle(0, 0, r.width, r.height), f.clip(), 1 == w ? f.paint() : f.paintWithAlpha(w), f.restore()); } Ia.__pool.release(v); }; gi.renderDrawable = function (a, b) {}; gi.renderDrawableMask = function (a, b) {}; var Pi = function () {}; h['openfl.display._internal.CanvasBitmap'] = Pi; Pi.__name__ = 'openfl.display._internal.CanvasBitmap'; Pi.render = function (a, b) { if (a.__renderable) { var c = b.__getAlpha(a.__worldAlpha); if ( 0 < c && null != a.__bitmapData && a.__bitmapData.__isValid && a.__bitmapData.readable ) { var e = b.context; b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a, !1); Aa.convertToCanvas(a.__bitmapData.image); e.globalAlpha = c; c = a.__scrollRect; b.setTransform(a.__renderTransform, e); (b.__allowSmoothing && a.smoothing) || (e.imageSmoothingEnabled = !1); null == c ? e.drawImage( a.__bitmapData.image.get_src(), 0, 0, a.__bitmapData.image.width, a.__bitmapData.image.height ) : e.drawImage(a.__bitmapData.image.get_src(), c.x, c.y, c.width, c.height); (b.__allowSmoothing && a.smoothing) || (e.imageSmoothingEnabled = !0); b.__popMaskObject(a, !1); } } }; Pi.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); null != a.__bitmapData && null != a.__bitmapData.image && (a.__imageVersion = a.__bitmapData.image.version); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { if ( !( (null == a.opaqueBackground && null == a.__graphics) || !a.__renderable || ((w = b.__getAlpha(a.__worldAlpha)), 0 >= w) ) ) { if ( null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height() ) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); x = b.context; b.setTransform(a.__renderTransform, x); var c = a.opaqueBackground; x.fillStyle = 'rgb(' + ((c >>> 16) & 255) + ',' + ((c >>> 8) & 255) + ',' + (c & 255) + ')'; x.fillRect(0, 0, a.get_width(), a.get_height()); b.__popMaskObject(a); } if ( null != a.__graphics && a.__renderable && ((w = b.__getAlpha(a.__worldAlpha)), !(0 >= w)) ) { var e = a.__graphics; if (null != e) { C.render(e, b); var d = e.__width, g = e.__height; c = e.__canvas; if (null != c && e.__visible && 1 <= d && 1 <= g) { var p = e.__worldTransform; x = b.context; z = a.__scrollRect; var l = a.__worldScale9Grid; if (null == z || (0 < z.width && 0 < z.height)) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); x.globalAlpha = w; if (null != l && 0 == p.b && 0 == p.c) { x.setTransform(1, 0, 0, 1, p.tx, p.ty); var k = e.__bounds, n = e.__renderTransform.a, h = e.__renderTransform.d, m = p.a, t = p.d; p = Math.max(1, Math.round(l.x * n)); e = Math.round(l.y * h); w = Math.max(1, Math.round((k.get_right() - l.get_right()) * n)); z = Math.round((k.get_bottom() - l.get_bottom()) * h); n = Math.round(l.width * n); h = Math.round(l.height * h); var u = Math.round(l.x * m), r = Math.round(l.y * t), q = Math.round((k.get_right() - l.get_right()) * m); l = Math.round((k.get_bottom() - l.get_bottom()) * t); k = Math.round(d * m) - u - q; m = Math.round(g * t) - r - l; b.applySmoothing(x, !1); 0 != n && 0 != h ? (x.drawImage(c, 0, 0, p, e, 0, 0, u, r), x.drawImage(c, p, 0, n, e, u, 0, k, r), x.drawImage(c, p + n, 0, w, e, u + k, 0, q, r), x.drawImage(c, 0, e, p, h, 0, r, u, m), x.drawImage(c, p, e, n, h, u, r, k, m), x.drawImage(c, p + n, e, w, h, u + k, r, q, m), x.drawImage(c, 0, e + h, p, z, 0, r + m, u, l), x.drawImage(c, p, e + h, n, z, u, r + m, k, l), x.drawImage(c, p + n, e + h, w, z, u + k, r + m, q, l)) : 0 == n && 0 != h ? ((g = u + k + q), x.drawImage(c, 0, 0, d, e, 0, 0, g, r), x.drawImage(c, 0, e, d, h, 0, r, g, m), x.drawImage(c, 0, e + h, d, z, 0, r + m, g, l)) : 0 == h && 0 != n && ((d = r + m + l), x.drawImage(c, 0, 0, p, g, 0, 0, u, d), x.drawImage(c, p, 0, n, g, u, 0, k, d), x.drawImage(c, p + n, 0, w, g, u + k, 0, q, d)); } else b.setTransform(p, x), b.__isDOM && ((l = 1 / b.pixelRatio), x.scale(l, l)), x.drawImage(c, 0, 0, d, g); b.__popMaskObject(a); } } } } } a.__renderable && ((w = b.__getAlpha(a.__worldAlpha)), 0 < w && null != a.__bitmapData && a.__bitmapData.__isValid && a.__bitmapData.readable && ((x = b.context), b.__setBlendMode(a.__worldBlendMode), b.__pushMaskObject(a, !1), Aa.convertToCanvas(a.__bitmapData.image), (x.globalAlpha = w), (z = a.__scrollRect), b.setTransform(a.__renderTransform, x), (b.__allowSmoothing && a.smoothing) || (x.imageSmoothingEnabled = !1), null == z ? x.drawImage( a.__bitmapData.image.get_src(), 0, 0, a.__bitmapData.image.width, a.__bitmapData.image.height ) : x.drawImage(a.__bitmapData.image.get_src(), z.x, z.y, z.width, z.height), (b.__allowSmoothing && a.smoothing) || (x.imageSmoothingEnabled = !0), b.__popMaskObject(a, !1))); } else if (((c = a.__cacheBitmap), c.__renderable)) { var w = b.__getAlpha(c.__worldAlpha); if ( 0 < w && null != c.__bitmapData && c.__bitmapData.__isValid && c.__bitmapData.readable ) { var x = b.context; b.__setBlendMode(c.__worldBlendMode); b.__pushMaskObject(c, !1); Aa.convertToCanvas(c.__bitmapData.image); x.globalAlpha = w; var z = c.__scrollRect; b.setTransform(c.__renderTransform, x); (b.__allowSmoothing && c.smoothing) || (x.imageSmoothingEnabled = !1); null == z ? x.drawImage( c.__bitmapData.image.get_src(), 0, 0, c.__bitmapData.image.width, c.__bitmapData.image.height ) : x.drawImage(c.__bitmapData.image.get_src(), z.x, z.y, z.width, z.height); (b.__allowSmoothing && c.smoothing) || (x.imageSmoothingEnabled = !0); b.__popMaskObject(c, !1); } } b.__renderEvent(a); }; Pi.renderDrawableMask = function (a, b) { b.context.rect(0, 0, a.get_width(), a.get_height()); }; var Em = function () {}; h['openfl.display._internal.CanvasBitmapData'] = Em; Em.__name__ = 'openfl.display._internal.CanvasBitmapData'; Em.renderDrawable = function (a, b) { if (a.readable) { var c = a.image; c.type == ve.DATA && Aa.convertToCanvas(c); var e = b.context; e.globalAlpha = 1; b.setTransform(a.__renderTransform, e); e.drawImage(c.get_src(), 0, 0, c.width, c.height); } }; Em.renderDrawableMask = function (a, b) {}; var Dh = function () {}; h['openfl.display._internal.CanvasDisplayObject'] = Dh; Dh.__name__ = 'openfl.display._internal.CanvasDisplayObject'; Dh.render = function (a, b) { if ((null != a.opaqueBackground || null != a.__graphics) && a.__renderable) { var c = b.__getAlpha(a.__worldAlpha); if (!(0 >= c)) { if ( null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height() ) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var e = b.context; b.setTransform(a.__renderTransform, e); var d = a.opaqueBackground; e.fillStyle = 'rgb(' + ((d >>> 16) & 255) + ',' + ((d >>> 8) & 255) + ',' + (d & 255) + ')'; e.fillRect(0, 0, a.get_width(), a.get_height()); b.__popMaskObject(a); } if ( null != a.__graphics && a.__renderable && ((c = b.__getAlpha(a.__worldAlpha)), !(0 >= c)) ) { var g = a.__graphics; if (null != g) { C.render(g, b); var p = g.__width, l = g.__height; d = g.__canvas; if (null != d && g.__visible && 1 <= p && 1 <= l) { var k = g.__worldTransform; e = b.context; var n = a.__scrollRect, h = a.__worldScale9Grid; if (null == n || (0 < n.width && 0 < n.height)) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); e.globalAlpha = c; if (null != h && 0 == k.b && 0 == k.c) { e.setTransform(1, 0, 0, 1, k.tx, k.ty); var m = g.__bounds, t = g.__renderTransform.a, u = g.__renderTransform.d, r = k.a, q = k.d; k = Math.max(1, Math.round(h.x * t)); g = Math.round(h.y * u); c = Math.max(1, Math.round((m.get_right() - h.get_right()) * t)); n = Math.round((m.get_bottom() - h.get_bottom()) * u); t = Math.round(h.width * t); u = Math.round(h.height * u); var w = Math.round(h.x * r), x = Math.round(h.y * q), z = Math.round((m.get_right() - h.get_right()) * r); h = Math.round((m.get_bottom() - h.get_bottom()) * q); m = Math.round(p * r) - w - z; r = Math.round(l * q) - x - h; b.applySmoothing(e, !1); 0 != t && 0 != u ? (e.drawImage(d, 0, 0, k, g, 0, 0, w, x), e.drawImage(d, k, 0, t, g, w, 0, m, x), e.drawImage(d, k + t, 0, c, g, w + m, 0, z, x), e.drawImage(d, 0, g, k, u, 0, x, w, r), e.drawImage(d, k, g, t, u, w, x, m, r), e.drawImage(d, k + t, g, c, u, w + m, x, z, r), e.drawImage(d, 0, g + u, k, n, 0, x + r, w, h), e.drawImage(d, k, g + u, t, n, w, x + r, m, h), e.drawImage(d, k + t, g + u, c, n, w + m, x + r, z, h)) : 0 == t && 0 != u ? ((l = w + m + z), e.drawImage(d, 0, 0, p, g, 0, 0, l, x), e.drawImage(d, 0, g, p, u, 0, x, l, r), e.drawImage(d, 0, g + u, p, n, 0, x + r, l, h)) : 0 == u && 0 != t && ((p = x + r + h), e.drawImage(d, 0, 0, k, l, 0, 0, w, p), e.drawImage(d, k, 0, t, l, w, 0, m, p), e.drawImage(d, k + t, 0, c, l, w + m, 0, z, p)); } else b.setTransform(k, e), b.__isDOM && ((h = 1 / b.pixelRatio), e.scale(h, h)), e.drawImage(d, 0, 0, p, l); b.__popMaskObject(a); } } } } } } }; Dh.renderDrawable = function (a, b) { if (null == a.get_mask() || (0 < a.get_mask().get_width() && 0 < a.get_mask().get_height())) if ((b.__updateCacheBitmap(a, !1), null != a.__cacheBitmap && !a.__isCacheBitmapRender)) { var c = a.__cacheBitmap; if (c.__renderable) { var e = b.__getAlpha(c.__worldAlpha); if ( 0 < e && null != c.__bitmapData && c.__bitmapData.__isValid && c.__bitmapData.readable ) { var d = b.context; b.__setBlendMode(c.__worldBlendMode); b.__pushMaskObject(c, !1); Aa.convertToCanvas(c.__bitmapData.image); d.globalAlpha = e; var g = c.__scrollRect; b.setTransform(c.__renderTransform, d); (b.__allowSmoothing && c.smoothing) || (d.imageSmoothingEnabled = !1); null == g ? d.drawImage( c.__bitmapData.image.get_src(), 0, 0, c.__bitmapData.image.width, c.__bitmapData.image.height ) : d.drawImage(c.__bitmapData.image.get_src(), g.x, g.y, g.width, g.height); (b.__allowSmoothing && c.smoothing) || (d.imageSmoothingEnabled = !0); b.__popMaskObject(c, !1); } } } else if ( !( (null == a.opaqueBackground && null == a.__graphics) || !a.__renderable || ((e = b.__getAlpha(a.__worldAlpha)), 0 >= e || (null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height() && (b.__setBlendMode(a.__worldBlendMode), b.__pushMaskObject(a), (d = b.context), b.setTransform(a.__renderTransform, d), (c = a.opaqueBackground), (d.fillStyle = 'rgb(' + ((c >>> 16) & 255) + ',' + ((c >>> 8) & 255) + ',' + (c & 255) + ')'), d.fillRect(0, 0, a.get_width(), a.get_height()), b.__popMaskObject(a)), null == a.__graphics || !a.__renderable || ((e = b.__getAlpha(a.__worldAlpha)), 0 >= e))) ) ) { var p = a.__graphics; if (null != p) { C.render(p, b); var l = p.__width, k = p.__height; c = p.__canvas; if (null != c && p.__visible && 1 <= l && 1 <= k) { var n = p.__worldTransform; d = b.context; g = a.__scrollRect; var h = a.__worldScale9Grid; if (null == g || (0 < g.width && 0 < g.height)) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); d.globalAlpha = e; if (null != h && 0 == n.b && 0 == n.c) { d.setTransform(1, 0, 0, 1, n.tx, n.ty); var m = p.__bounds, t = p.__renderTransform.a, u = p.__renderTransform.d, r = n.a, q = n.d; n = Math.max(1, Math.round(h.x * t)); p = Math.round(h.y * u); e = Math.max(1, Math.round((m.get_right() - h.get_right()) * t)); g = Math.round((m.get_bottom() - h.get_bottom()) * u); t = Math.round(h.width * t); u = Math.round(h.height * u); var w = Math.round(h.x * r), x = Math.round(h.y * q), z = Math.round((m.get_right() - h.get_right()) * r); h = Math.round((m.get_bottom() - h.get_bottom()) * q); m = Math.round(l * r) - w - z; r = Math.round(k * q) - x - h; b.applySmoothing(d, !1); 0 != t && 0 != u ? (d.drawImage(c, 0, 0, n, p, 0, 0, w, x), d.drawImage(c, n, 0, t, p, w, 0, m, x), d.drawImage(c, n + t, 0, e, p, w + m, 0, z, x), d.drawImage(c, 0, p, n, u, 0, x, w, r), d.drawImage(c, n, p, t, u, w, x, m, r), d.drawImage(c, n + t, p, e, u, w + m, x, z, r), d.drawImage(c, 0, p + u, n, g, 0, x + r, w, h), d.drawImage(c, n, p + u, t, g, w, x + r, m, h), d.drawImage(c, n + t, p + u, e, g, w + m, x + r, z, h)) : 0 == t && 0 != u ? ((k = w + m + z), d.drawImage(c, 0, 0, l, p, 0, 0, k, x), d.drawImage(c, 0, p, l, u, 0, x, k, r), d.drawImage(c, 0, p + u, l, g, 0, x + r, k, h)) : 0 == u && 0 != t && ((l = x + r + h), d.drawImage(c, 0, 0, n, k, 0, 0, w, l), d.drawImage(c, n, 0, t, k, w, 0, m, l), d.drawImage(c, n + t, 0, e, k, w + m, 0, z, l)); } else b.setTransform(n, d), b.__isDOM && ((h = 1 / b.pixelRatio), d.scale(h, h)), d.drawImage(c, 0, 0, l, k); b.__popMaskObject(a); } } } } b.__renderEvent(a); }; Dh.renderDrawableMask = function (a, b) { null != a.__graphics && C.renderMask(a.__graphics, b); }; var Fm = function () {}; h['openfl.display._internal.CanvasDisplayObjectContainer'] = Fm; Fm.__name__ = 'openfl.display._internal.CanvasDisplayObjectContainer'; Fm.renderDrawable = function (a, b) { for (var c = a.__removedChildren.iterator(); c.hasNext(); ) { var e = c.next(); null == e.stage && e.__cleanup(); } a.__removedChildren.set_length(0); if ( !( !a.__renderable || 0 >= a.__worldAlpha || (null != a.get_mask() && (0 >= a.get_mask().get_width() || 0 >= a.get_mask().get_height())) ) && (Dh.renderDrawable(a, b), null == a.__cacheBitmap || a.__isCacheBitmapRender) ) { b.__pushMaskObject(a); if (null != b.__stage) { c = 0; for (e = a.__children; c < e.length; ) { var d = e[c]; ++c; b.__renderDrawable(d); d.__renderDirty = !1; } a.__renderDirty = !1; } else for (c = 0, e = a.__children; c < e.length; ) (d = e[c]), ++c, b.__renderDrawable(d); b.__popMaskObject(a); } }; Fm.renderDrawableMask = function (a, b) { for (var c = a.__removedChildren.iterator(); c.hasNext(); ) { var e = c.next(); null == e.stage && e.__cleanup(); } a.__removedChildren.set_length(0); null != a.__graphics && C.renderMask(a.__graphics, b); c = 0; for (a = a.__children; c < a.length; ) (e = a[c]), ++c, b.__renderDrawableMask(e); }; var De = function () { this.__dirty = !0; this.t_i = this.b_i = this.f_i = this.ff_i = this.i_i = this.ii_i = this.o_i = this.__lastLength = 0; null == De.empty ? ((this.types = []), (this.b = []), (this.i = []), (this.f = []), (this.o = []), (this.ff = []), (this.ii = []), (this.objVersions = []), (this.copyOnWrite = !0)) : this.__initFromEmpty(); }; h['openfl.display._internal.DrawCommandBuffer'] = De; De.__name__ = 'openfl.display._internal.DrawCommandBuffer'; De.prototype = { __replace_openfl_display_TriangleCulling: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, __replace_openfl_Vector_Int: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, __replace_openfl_Vector_Float: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, __replace_openfl_display__internal_ShaderBuffer: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, __replace_openfl_display_JointStyle: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, __replace_openfl_display_CapsStyle: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, __replace_openfl_display_LineScaleMode: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, __replace_Int: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, __replace_Bool: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, __replace_openfl_display_InterpolationMethod: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, __replace_openfl_display_SpreadMethod: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, __replace_Array_Float: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, __replace_Array_Int: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, __replace_openfl_display_GradientType: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, __replace_Float: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, __replace_openfl_display__internal_DrawCommandType: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, dirty: null, types: null, b: null, copyOnWrite: null, f: null, ff: null, i: null, ii: null, o: null, t_i: null, b_i: null, f_i: null, ff_i: null, i_i: null, ii_i: null, o_i: null, objVersions: null, __lastLength: null, __dirty: null, append: function (a) { if (0 == this.get_length()) return ( (this.types = a.types), (this.b = a.b), (this.i = a.i), (this.f = a.f), (this.o = a.o), (this.ff = a.ff), (this.ii = a.ii), (this.t_i = a.t_i), (this.b_i = a.b_i), (this.f_i = a.f_i), (this.ff_i = a.ff_i), (this.i_i = a.i_i), (this.ii_i = a.ii_i), (this.o_i = a.o_i), (this.objVersions = a.objVersions), (this.copyOnWrite = a.copyOnWrite = !0), a ); for (var b = new Xf(a), c = 0, e = a.types; c < e.length; ) { var d = e[c]; ++c; switch (d._hx_index) { case 0: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.BEGIN_BITMAP_FILL; d = b; this.beginBitmapFill( d.buffer.o[d.oPos], d.buffer.o[d.oPos + 1], d.buffer.b[d.bPos], d.buffer.b[d.bPos + 1] ); break; case 1: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.BEGIN_FILL; d = b; this.beginFill(d.buffer.i[d.iPos], d.buffer.f[d.fPos]); break; case 2: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.BEGIN_GRADIENT_FILL; d = b; this.beginGradientFill( d.buffer.o[d.oPos], d.buffer.ii[d.iiPos], d.buffer.ff[d.ffPos], d.buffer.ii[d.iiPos + 1], d.buffer.o[d.oPos + 1], d.buffer.o[d.oPos + 2], d.buffer.o[d.oPos + 3], d.buffer.f[d.fPos] ); break; case 3: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.BEGIN_SHADER_FILL; d = b; this.beginShaderFill(d.buffer.o[d.oPos]); break; case 4: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.CUBIC_CURVE_TO; d = b; this.cubicCurveTo( d.buffer.f[d.fPos], d.buffer.f[d.fPos + 1], d.buffer.f[d.fPos + 2], d.buffer.f[d.fPos + 3], d.buffer.f[d.fPos + 4], d.buffer.f[d.fPos + 5] ); break; case 5: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.CURVE_TO; d = b; this.curveTo( d.buffer.f[d.fPos], d.buffer.f[d.fPos + 1], d.buffer.f[d.fPos + 2], d.buffer.f[d.fPos + 3] ); break; case 6: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.DRAW_CIRCLE; d = b; this.drawCircle(d.buffer.f[d.fPos], d.buffer.f[d.fPos + 1], d.buffer.f[d.fPos + 2]); break; case 7: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.DRAW_ELLIPSE; d = b; this.drawEllipse( d.buffer.f[d.fPos], d.buffer.f[d.fPos + 1], d.buffer.f[d.fPos + 2], d.buffer.f[d.fPos + 3] ); break; case 8: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.DRAW_QUADS; d = b; this.drawQuads(d.buffer.o[d.oPos], d.buffer.o[d.oPos + 1], d.buffer.o[d.oPos + 2]); break; case 9: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.DRAW_RECT; d = b; this.drawRect( d.buffer.f[d.fPos], d.buffer.f[d.fPos + 1], d.buffer.f[d.fPos + 2], d.buffer.f[d.fPos + 3] ); break; case 10: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.DRAW_ROUND_RECT; d = b; this.drawRoundRect( d.buffer.f[d.fPos], d.buffer.f[d.fPos + 1], d.buffer.f[d.fPos + 2], d.buffer.f[d.fPos + 3], d.buffer.f[d.fPos + 4], d.buffer.o[d.oPos] ); break; case 12: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.DRAW_TRIANGLES; d = b; this.drawTriangles( d.buffer.o[d.oPos], d.buffer.o[d.oPos + 1], d.buffer.o[d.oPos + 2], d.buffer.o[d.oPos + 3] ); break; case 13: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.END_FILL; this.endFill(); break; case 14: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.LINE_BITMAP_STYLE; d = b; this.lineBitmapStyle( d.buffer.o[d.oPos], d.buffer.o[d.oPos + 1], d.buffer.b[d.bPos], d.buffer.b[d.bPos + 1] ); break; case 15: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.LINE_GRADIENT_STYLE; d = b; this.lineGradientStyle( d.buffer.o[d.oPos], d.buffer.ii[d.iiPos], d.buffer.ff[d.ffPos], d.buffer.ii[d.iiPos + 1], d.buffer.o[d.oPos + 1], d.buffer.o[d.oPos + 2], d.buffer.o[d.oPos + 3], d.buffer.f[d.fPos] ); break; case 16: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.LINE_STYLE; d = b; this.lineStyle( d.buffer.o[d.oPos], d.buffer.i[d.iPos], d.buffer.f[d.fPos], d.buffer.b[d.bPos], d.buffer.o[d.oPos + 1], d.buffer.o[d.oPos + 2], d.buffer.o[d.oPos + 3], d.buffer.f[d.fPos + 1] ); break; case 17: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.LINE_TO; d = b; this.lineTo(d.buffer.f[d.fPos], d.buffer.f[d.fPos + 1]); break; case 18: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.MOVE_TO; d = b; this.moveTo(d.buffer.f[d.fPos], d.buffer.f[d.fPos + 1]); break; case 20: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.OVERRIDE_MATRIX; d = b; this.overrideMatrix(d.buffer.o[d.oPos]); break; case 21: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.WINDING_EVEN_ODD; this.windingEvenOdd(); break; case 22: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.WINDING_NON_ZERO; this.windingNonZero(); } } b.destroy(); return a; }, beginBitmapFill: function (a, b, c, e) { this.prepareWrite(); var d = this.types, g = this.t_i++, p = ca.BEGIN_BITMAP_FILL; !this.__dirty && (g >= d.length || d[g] != p) && (this.__dirty = !0); d[g] = p; d = this.o; g = this.o_i++; !this.__dirty && (g >= d.length || a != d[g] || a.image.version != this.objVersions[g]) && (this.__dirty = !0); for (d[g] = a; this.objVersions.length < g; ) this.objVersions.push(0); this.objVersions[g] = a.image.version; d = this.o; g = this.o_i++; this.__dirty || (!(g >= d.length) && b.equals(d[g])) || (this.__dirty = !0); d[g] = b; d = this.b; g = this.b_i++; !this.__dirty && (g >= d.length || d[g] != c) && (this.__dirty = !0); d[g] = c; d = this.b; g = this.b_i++; !this.__dirty && (g >= d.length || d[g] != e) && (this.__dirty = !0); d[g] = e; }, beginFill: function (a, b) { this.prepareWrite(); var c = this.types, e = this.t_i++, d = ca.BEGIN_FILL; !this.__dirty && (e >= c.length || c[e] != d) && (this.__dirty = !0); c[e] = d; c = this.i; e = this.i_i++; !this.__dirty && (e >= c.length || c[e] != a) && (this.__dirty = !0); c[e] = a; c = this.f; e = this.f_i++; !this.__dirty && (e >= c.length || c[e] != b) && (this.__dirty = !0); c[e] = b; }, beginGradientFill: function (a, b, c, e, d, g, p, l) { this.prepareWrite(); var f = this.types, k = this.t_i++, h = ca.BEGIN_GRADIENT_FILL; !this.__dirty && (k >= f.length || f[k] != h) && (this.__dirty = !0); f[k] = h; f = this.o; k = this.o_i++; !this.__dirty && (k >= f.length || f[k] != a) && (this.__dirty = !0); f[k] = a; f = this.ii; k = this.ii_i++; !this.__dirty && (k >= f.length || f[k] != b) && (this.__dirty = !0); f[k] = b; f = this.ff; k = this.ff_i++; !this.__dirty && (k >= f.length || f[k] != c) && (this.__dirty = !0); f[k] = c; f = this.ii; k = this.ii_i++; !this.__dirty && (k >= f.length || f[k] != e) && (this.__dirty = !0); f[k] = e; f = this.o; k = this.o_i++; this.__dirty || (!(k >= f.length) && d.equals(f[k])) || (this.__dirty = !0); f[k] = d; f = this.o; k = this.o_i++; !this.__dirty && (k >= f.length || f[k] != g) && (this.__dirty = !0); f[k] = g; f = this.o; k = this.o_i++; !this.__dirty && (k >= f.length || f[k] != p) && (this.__dirty = !0); f[k] = p; f = this.f; k = this.f_i++; !this.__dirty && (k >= f.length || f[k] != l) && (this.__dirty = !0); f[k] = l; }, beginShaderFill: function (a) { this.prepareWrite(); var b = this.types, c = this.t_i++, e = ca.BEGIN_SHADER_FILL; !this.__dirty && (c >= b.length || b[c] != e) && (this.__dirty = !0); b[c] = e; b = this.o; c = this.o_i++; !this.__dirty && (c >= b.length || b[c] != a) && (this.__dirty = !0); b[c] = a; }, clear: function () { this.o_i = this.ii_i = this.i_i = this.ff_i = this.f_i = this.b_i = this.t_i = 0; }, copy: function () { var a = new De(); a.append(this); return a; }, cubicCurveTo: function (a, b, c, e, d, g) { this.prepareWrite(); var f = this.types, l = this.t_i++, k = ca.CUBIC_CURVE_TO; !this.__dirty && (l >= f.length || f[l] != k) && (this.__dirty = !0); f[l] = k; f = this.f; l = this.f_i++; !this.__dirty && (l >= f.length || f[l] != a) && (this.__dirty = !0); f[l] = a; f = this.f; l = this.f_i++; !this.__dirty && (l >= f.length || f[l] != b) && (this.__dirty = !0); f[l] = b; f = this.f; l = this.f_i++; !this.__dirty && (l >= f.length || f[l] != c) && (this.__dirty = !0); f[l] = c; f = this.f; l = this.f_i++; !this.__dirty && (l >= f.length || f[l] != e) && (this.__dirty = !0); f[l] = e; f = this.f; l = this.f_i++; !this.__dirty && (l >= f.length || f[l] != d) && (this.__dirty = !0); f[l] = d; f = this.f; l = this.f_i++; !this.__dirty && (l >= f.length || f[l] != g) && (this.__dirty = !0); f[l] = g; }, curveTo: function (a, b, c, e) { this.prepareWrite(); var d = this.types, g = this.t_i++, p = ca.CURVE_TO; !this.__dirty && (g >= d.length || d[g] != p) && (this.__dirty = !0); d[g] = p; d = this.f; g = this.f_i++; !this.__dirty && (g >= d.length || d[g] != a) && (this.__dirty = !0); d[g] = a; d = this.f; g = this.f_i++; !this.__dirty && (g >= d.length || d[g] != b) && (this.__dirty = !0); d[g] = b; d = this.f; g = this.f_i++; !this.__dirty && (g >= d.length || d[g] != c) && (this.__dirty = !0); d[g] = c; d = this.f; g = this.f_i++; !this.__dirty && (g >= d.length || d[g] != e) && (this.__dirty = !0); d[g] = e; }, destroy: function () { this.ii = this.ff = this.o = this.f = this.i = this.b = this.types = null; }, drawCircle: function (a, b, c) { this.prepareWrite(); var e = this.types, d = this.t_i++, g = ca.DRAW_CIRCLE; !this.__dirty && (d >= e.length || e[d] != g) && (this.__dirty = !0); e[d] = g; e = this.f; d = this.f_i++; !this.__dirty && (d >= e.length || e[d] != a) && (this.__dirty = !0); e[d] = a; e = this.f; d = this.f_i++; !this.__dirty && (d >= e.length || e[d] != b) && (this.__dirty = !0); e[d] = b; e = this.f; d = this.f_i++; !this.__dirty && (d >= e.length || e[d] != c) && (this.__dirty = !0); e[d] = c; }, drawEllipse: function (a, b, c, e) { this.prepareWrite(); var d = this.types, g = this.t_i++, p = ca.DRAW_ELLIPSE; !this.__dirty && (g >= d.length || d[g] != p) && (this.__dirty = !0); d[g] = p; d = this.f; g = this.f_i++; !this.__dirty && (g >= d.length || d[g] != a) && (this.__dirty = !0); d[g] = a; d = this.f; g = this.f_i++; !this.__dirty && (g >= d.length || d[g] != b) && (this.__dirty = !0); d[g] = b; d = this.f; g = this.f_i++; !this.__dirty && (g >= d.length || d[g] != c) && (this.__dirty = !0); d[g] = c; d = this.f; g = this.f_i++; !this.__dirty && (g >= d.length || d[g] != e) && (this.__dirty = !0); d[g] = e; }, drawQuads: function (a, b, c) { this.prepareWrite(); var e = this.types, d = this.t_i++, g = ca.DRAW_QUADS; !this.__dirty && (d >= e.length || e[d] != g) && (this.__dirty = !0); e[d] = g; e = this.o; d = this.o_i++; !this.__dirty && (d >= e.length || e[d] != a) && (this.__dirty = !0); e[d] = a; e = this.o; d = this.o_i++; !this.__dirty && (d >= e.length || e[d] != b) && (this.__dirty = !0); e[d] = b; e = this.o; d = this.o_i++; !this.__dirty && (d >= e.length || e[d] != c) && (this.__dirty = !0); e[d] = c; }, drawRect: function (a, b, c, e) { this.prepareWrite(); var d = this.types, g = this.t_i++, p = ca.DRAW_RECT; !this.__dirty && (g >= d.length || d[g] != p) && (this.__dirty = !0); d[g] = p; d = this.f; g = this.f_i++; !this.__dirty && (g >= d.length || d[g] != a) && (this.__dirty = !0); d[g] = a; d = this.f; g = this.f_i++; !this.__dirty && (g >= d.length || d[g] != b) && (this.__dirty = !0); d[g] = b; d = this.f; g = this.f_i++; !this.__dirty && (g >= d.length || d[g] != c) && (this.__dirty = !0); d[g] = c; d = this.f; g = this.f_i++; !this.__dirty && (g >= d.length || d[g] != e) && (this.__dirty = !0); d[g] = e; }, drawRoundRect: function (a, b, c, e, d, g) { this.prepareWrite(); var f = this.types, l = this.t_i++, k = ca.DRAW_ROUND_RECT; !this.__dirty && (l >= f.length || f[l] != k) && (this.__dirty = !0); f[l] = k; f = this.f; l = this.f_i++; !this.__dirty && (l >= f.length || f[l] != a) && (this.__dirty = !0); f[l] = a; f = this.f; l = this.f_i++; !this.__dirty && (l >= f.length || f[l] != b) && (this.__dirty = !0); f[l] = b; f = this.f; l = this.f_i++; !this.__dirty && (l >= f.length || f[l] != c) && (this.__dirty = !0); f[l] = c; f = this.f; l = this.f_i++; !this.__dirty && (l >= f.length || f[l] != e) && (this.__dirty = !0); f[l] = e; f = this.f; l = this.f_i++; !this.__dirty && (l >= f.length || f[l] != d) && (this.__dirty = !0); f[l] = d; !this.__dirty && (this.o_i >= this.o.length || this.o[this.o_i] != g) && (this.__dirty = !0); this.o[this.o_i++] = g; }, drawTriangles: function (a, b, c, e) { this.prepareWrite(); var d = this.types, g = this.t_i++, p = ca.DRAW_TRIANGLES; !this.__dirty && (g >= d.length || d[g] != p) && (this.__dirty = !0); d[g] = p; d = this.o; g = this.o_i++; !this.__dirty && (g >= d.length || d[g] != a) && (this.__dirty = !0); d[g] = a; d = this.o; g = this.o_i++; !this.__dirty && (g >= d.length || d[g] != b) && (this.__dirty = !0); d[g] = b; d = this.o; g = this.o_i++; !this.__dirty && (g >= d.length || d[g] != c) && (this.__dirty = !0); d[g] = c; d = this.o; g = this.o_i++; !this.__dirty && (g >= d.length || d[g] != e) && (this.__dirty = !0); d[g] = e; }, endFill: function () { this.prepareWrite(); var a = this.types, b = this.t_i++, c = ca.END_FILL; !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, lineBitmapStyle: function (a, b, c, e) { this.prepareWrite(); var d = this.types, g = this.t_i++, p = ca.LINE_BITMAP_STYLE; !this.__dirty && (g >= d.length || d[g] != p) && (this.__dirty = !0); d[g] = p; d = this.o; g = this.o_i++; !this.__dirty && (g >= d.length || a != d[g] || a.image.version != this.objVersions[g]) && (this.__dirty = !0); for (d[g] = a; this.objVersions.length < g; ) this.objVersions.push(0); this.objVersions[g] = a.image.version; d = this.o; g = this.o_i++; this.__dirty || (!(g >= d.length) && b.equals(d[g])) || (this.__dirty = !0); d[g] = b; d = this.b; g = this.b_i++; !this.__dirty && (g >= d.length || d[g] != c) && (this.__dirty = !0); d[g] = c; d = this.b; g = this.b_i++; !this.__dirty && (g >= d.length || d[g] != e) && (this.__dirty = !0); d[g] = e; }, lineGradientStyle: function (a, b, c, e, d, g, p, l) { this.prepareWrite(); var f = this.types, k = this.t_i++, h = ca.LINE_GRADIENT_STYLE; !this.__dirty && (k >= f.length || f[k] != h) && (this.__dirty = !0); f[k] = h; f = this.o; k = this.o_i++; !this.__dirty && (k >= f.length || f[k] != a) && (this.__dirty = !0); f[k] = a; f = this.ii; k = this.ii_i++; !this.__dirty && (k >= f.length || f[k] != b) && (this.__dirty = !0); f[k] = b; f = this.ff; k = this.ff_i++; !this.__dirty && (k >= f.length || f[k] != c) && (this.__dirty = !0); f[k] = c; f = this.ii; k = this.ii_i++; !this.__dirty && (k >= f.length || f[k] != e) && (this.__dirty = !0); f[k] = e; f = this.o; k = this.o_i++; this.__dirty || (!(k >= f.length) && d.equals(f[k])) || (this.__dirty = !0); f[k] = d; f = this.o; k = this.o_i++; !this.__dirty && (k >= f.length || f[k] != g) && (this.__dirty = !0); f[k] = g; f = this.o; k = this.o_i++; !this.__dirty && (k >= f.length || f[k] != p) && (this.__dirty = !0); f[k] = p; f = this.f; k = this.f_i++; !this.__dirty && (k >= f.length || f[k] != l) && (this.__dirty = !0); f[k] = l; }, lineStyle: function (a, b, c, e, d, g, p, l) { this.prepareWrite(); var f = this.types, k = this.t_i++, h = ca.LINE_STYLE; !this.__dirty && (k >= f.length || f[k] != h) && (this.__dirty = !0); f[k] = h; !this.__dirty && (this.o_i >= this.o.length || this.o[this.o_i] != a) && (this.__dirty = !0); this.o[this.o_i++] = a; f = this.i; k = this.i_i++; !this.__dirty && (k >= f.length || f[k] != b) && (this.__dirty = !0); f[k] = b; f = this.f; k = this.f_i++; !this.__dirty && (k >= f.length || f[k] != c) && (this.__dirty = !0); f[k] = c; f = this.b; k = this.b_i++; !this.__dirty && (k >= f.length || f[k] != e) && (this.__dirty = !0); f[k] = e; f = this.o; k = this.o_i++; !this.__dirty && (k >= f.length || f[k] != d) && (this.__dirty = !0); f[k] = d; f = this.o; k = this.o_i++; !this.__dirty && (k >= f.length || f[k] != g) && (this.__dirty = !0); f[k] = g; f = this.o; k = this.o_i++; !this.__dirty && (k >= f.length || f[k] != p) && (this.__dirty = !0); f[k] = p; f = this.f; k = this.f_i++; !this.__dirty && (k >= f.length || f[k] != l) && (this.__dirty = !0); f[k] = l; }, lineTo: function (a, b) { this.prepareWrite(); var c = this.types, e = this.t_i++, d = ca.LINE_TO; !this.__dirty && (e >= c.length || c[e] != d) && (this.__dirty = !0); c[e] = d; c = this.f; e = this.f_i++; !this.__dirty && (e >= c.length || c[e] != a) && (this.__dirty = !0); c[e] = a; c = this.f; e = this.f_i++; !this.__dirty && (e >= c.length || c[e] != b) && (this.__dirty = !0); c[e] = b; }, markAsClean: function () { this.__dirty = !1; }, moveTo: function (a, b) { this.prepareWrite(); var c = this.types, e = this.t_i++, d = ca.MOVE_TO; !this.__dirty && (e >= c.length || c[e] != d) && (this.__dirty = !0); c[e] = d; c = this.f; e = this.f_i++; !this.__dirty && (e >= c.length || c[e] != a) && (this.__dirty = !0); c[e] = a; c = this.f; e = this.f_i++; !this.__dirty && (e >= c.length || c[e] != b) && (this.__dirty = !0); c[e] = b; }, prepareWrite: function () { this.copyOnWrite && ((this.types = this.types.slice()), (this.b = this.b.slice()), (this.i = this.i.slice()), (this.f = this.f.slice()), (this.o = this.o.slice()), (this.ff = this.ff.slice()), (this.ii = this.ii.slice()), (this.objVersions = this.objVersions.slice()), (this.copyOnWrite = !1)); }, overrideBlendMode: function (a) { this.prepareWrite(); this.types.push(ca.OVERRIDE_BLEND_MODE); this.o.push(a); }, overrideMatrix: function (a) { this.prepareWrite(); var b = this.types, c = this.t_i++, e = ca.OVERRIDE_MATRIX; !this.__dirty && (c >= b.length || b[c] != e) && (this.__dirty = !0); b[c] = e; b = this.o; c = this.o_i++; this.__dirty || (!(c >= b.length) && a.equals(b[c])) || (this.__dirty = !0); b[c] = a; }, windingEvenOdd: function () { this.prepareWrite(); var a = this.types, b = this.t_i++, c = ca.WINDING_EVEN_ODD; !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, windingNonZero: function () { this.prepareWrite(); var a = this.types, b = this.t_i++, c = ca.WINDING_NON_ZERO; !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c; }, get_dirty: function () { return this.__dirty; }, get_length: function () { return this.t_i; }, __initFromEmpty: function () { this.types = De.empty.types; this.b = De.empty.b; this.i = De.empty.i; this.f = De.empty.f; this.o = De.empty.o; this.ff = De.empty.ff; this.ii = De.empty.ii; this.objVersions = De.empty.objVersions; this.copyOnWrite = !0; }, __endBuffer: function () { this.__lastLength != this.t_i && (this.__dirty = !0); this.__lastLength = this.t_i; }, __replaceMtx: function (a, b, c) { this.__dirty || (!(b >= a.length) && c.equals(a[b])) || (this.__dirty = !0); a[b] = c; }, __replaceBmp: function (a, b, c) { !this.__dirty && (b >= a.length || c != a[b] || c.image.version != this.objVersions[b]) && (this.__dirty = !0); for (a[b] = c; this.objVersions.length < b; ) this.objVersions.push(0); this.objVersions[b] = c.image.version; }, __class__: De, __properties__: { get_length: 'get_length', get_dirty: 'get_dirty' } }; var C = function () {}; h['openfl.display._internal.CanvasGraphics'] = C; C.__name__ = 'openfl.display._internal.CanvasGraphics'; C.closePath = function (a) { null == a && (a = !1); null != C.context.strokeStyle && (a || C.context.closePath(), C.context.stroke(), a && C.context.closePath(), C.context.beginPath()); }; C.createBitmapFill = function (a, b, c) { Aa.convertToCanvas(a.image); C.setSmoothing(c); return C.context.createPattern(a.image.get_src(), b ? 'repeat' : 'no-repeat'); }; C.createGradientPattern = function (a, b, c, e, d, g, p, l) { g = null; p = !1; null == d && ((d = Ia.__pool.get()), d.identity(), (p = !0)); switch (a) { case 0: g = C.context.createLinearGradient(-819.2, 0, 819.2, 0); C.pendingMatrix = d.clone(); C.inversePendingMatrix = d.clone(); C.inversePendingMatrix.invert(); break; case 1: 1 < l ? (l = 1) : -1 > l && (l = -1), (g = C.context.createRadialGradient(819.2 * l, 0, 0, 0, 0, 819.2)), (C.pendingMatrix = d.clone()), (C.inversePendingMatrix = d.clone()), C.inversePendingMatrix.invert(); } for (var f, k, h, m = 0, t = b.length; m < t; ) (h = m++), (f = b[h]), (a = c[h]), (l = (f & 16711680) >>> 16), (k = (f & 65280) >>> 8), (f &= 255), (h = e[h] / 255), 0 > h && (h = 0), 1 < h && (h = 1), g.addColorStop(h, 'rgba(' + l + ', ' + k + ', ' + f + ', ' + a + ')'); p && Ia.__pool.release(d); return g; }; C.createTempPatternCanvas = function (a, b, c, e) { var d = window.document.createElement('canvas'), g = d.getContext('2d'); d.width = c; d.height = e; a = a.image.get_src(); g.fillStyle = g.createPattern(a, b ? 'repeat' : 'no-repeat'); g.beginPath(); g.moveTo(0, 0); g.lineTo(0, e); g.lineTo(c, e); g.lineTo(c, 0); g.lineTo(0, 0); g.closePath(); C.hitTesting || g.fill(C.windingRule); return d; }; C.drawRoundRect = function (a, b, c, e, d, g) { null == g && (g = d); d *= 0.5; g *= 0.5; d > c / 2 && (d = c / 2); g > e / 2 && (g = e / 2); c = a + c; e = b + e; var f = -d + 0.7071067811865476 * d, l = -d + 0.41421356237309503 * d, k = -g + 0.7071067811865476 * g, n = -g + 0.41421356237309503 * g; C.context.moveTo(c, e - g); C.context.quadraticCurveTo(c, e + n, c + f, e + k); C.context.quadraticCurveTo(c + l, e, c - d, e); C.context.lineTo(a + d, e); C.context.quadraticCurveTo(a - l, e, a - f, e + k); C.context.quadraticCurveTo(a, e + n, a, e - g); C.context.lineTo(a, b + g); C.context.quadraticCurveTo(a, b - n, a - f, b - k); C.context.quadraticCurveTo(a - l, b, a + d, b); C.context.lineTo(c - d, b); C.context.quadraticCurveTo(c + l, b, c + f, b - k); C.context.quadraticCurveTo(c, b - n, c, b + g); C.context.lineTo(c, e - g); }; C.endFill = function () { C.context.beginPath(); C.playCommands(C.fillCommands, !1); C.fillCommands.clear(); }; C.endStroke = function () { C.context.beginPath(); C.playCommands(C.strokeCommands, !0); C.context.closePath(); C.strokeCommands.clear(); }; C.hitTest = function (a, b, c) { C.bounds = a.__bounds; C.graphics = a; if ( 0 == a.__commands.get_length() || null == C.bounds || 0 >= C.bounds.width || 0 >= C.bounds.height ) return !1; C.hitTesting = !0; var e = a.__renderTransform, d = b * e.b + c * e.d + e.ty; b = b * e.a + c * e.c + e.tx - (C.bounds.x * e.a + C.bounds.y * e.c + e.tx); c = d - (C.bounds.x * e.b + C.bounds.y * e.d + e.ty); d = a.__canvas; var g = a.__context; a.__canvas = C.hitTestCanvas; a.__context = C.hitTestContext; C.context = a.__context; C.context.setTransform(e.a, e.b, e.c, e.d, e.tx, e.ty); C.fillCommands.clear(); C.strokeCommands.clear(); C.hasFill = !1; C.hasStroke = !1; C.bitmapFill = null; C.bitmapRepeat = !1; C.windingRule = 'evenodd'; e = new Xf(a.__commands); for (var p = a.__commands.types, l = 0, k = a.__commands.get_length(); l < k; ) { var n = l++; n = p[n]; switch (n._hx_index) { case 0: case 1: case 2: case 3: C.endFill(); if (C.hasFill && C.context.isPointInPath(b, c, C.windingRule)) return e.destroy(), (a.__canvas = d), (a.__context = g), !0; C.endStroke(); if (C.hasStroke && C.context.isPointInStroke(b, c)) return e.destroy(), (a.__canvas = d), (a.__context = g), !0; if (n == ca.BEGIN_BITMAP_FILL) { switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1; } e.prev = ca.BEGIN_BITMAP_FILL; n = e; C.fillCommands.beginBitmapFill( n.buffer.o[n.oPos], n.buffer.o[n.oPos + 1], n.buffer.b[n.bPos], n.buffer.b[n.bPos + 1] ); C.strokeCommands.beginBitmapFill( n.buffer.o[n.oPos], n.buffer.o[n.oPos + 1], n.buffer.b[n.bPos], n.buffer.b[n.bPos + 1] ); } else if (n == ca.BEGIN_GRADIENT_FILL) { switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1; } e.prev = ca.BEGIN_GRADIENT_FILL; n = e; C.fillCommands.beginGradientFill( n.buffer.o[n.oPos], n.buffer.ii[n.iiPos], n.buffer.ff[n.ffPos], n.buffer.ii[n.iiPos + 1], n.buffer.o[n.oPos + 1], n.buffer.o[n.oPos + 2], n.buffer.o[n.oPos + 3], n.buffer.f[n.fPos] ); C.strokeCommands.beginGradientFill( n.buffer.o[n.oPos], n.buffer.ii[n.iiPos], n.buffer.ff[n.ffPos], n.buffer.ii[n.iiPos + 1], n.buffer.o[n.oPos + 1], n.buffer.o[n.oPos + 2], n.buffer.o[n.oPos + 3], n.buffer.f[n.fPos] ); } else if (n == ca.BEGIN_SHADER_FILL) { switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1; } e.prev = ca.BEGIN_SHADER_FILL; n = e; C.fillCommands.beginShaderFill(n.buffer.o[n.oPos]); C.strokeCommands.beginShaderFill(n.buffer.o[n.oPos]); } else { switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1; } e.prev = ca.BEGIN_FILL; n = e; C.fillCommands.beginFill(n.buffer.i[n.iPos], 1); C.strokeCommands.beginFill(n.buffer.i[n.iPos], 1); } break; case 4: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1; } e.prev = ca.CUBIC_CURVE_TO; n = e; C.fillCommands.cubicCurveTo( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3], n.buffer.f[n.fPos + 4], n.buffer.f[n.fPos + 5] ); C.strokeCommands.cubicCurveTo( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3], n.buffer.f[n.fPos + 4], n.buffer.f[n.fPos + 5] ); break; case 5: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1; } e.prev = ca.CURVE_TO; n = e; C.fillCommands.curveTo( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3] ); C.strokeCommands.curveTo( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3] ); break; case 6: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1; } e.prev = ca.DRAW_CIRCLE; n = e; C.fillCommands.drawCircle( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2] ); C.strokeCommands.drawCircle( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2] ); break; case 7: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1; } e.prev = ca.DRAW_ELLIPSE; n = e; C.fillCommands.drawEllipse( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3] ); C.strokeCommands.drawEllipse( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3] ); break; case 9: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1; } e.prev = ca.DRAW_RECT; n = e; C.fillCommands.drawRect( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3] ); C.strokeCommands.drawRect( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3] ); break; case 10: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1; } e.prev = ca.DRAW_ROUND_RECT; n = e; C.fillCommands.drawRoundRect( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3], n.buffer.f[n.fPos + 4], n.buffer.o[n.oPos] ); C.strokeCommands.drawRoundRect( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3], n.buffer.f[n.fPos + 4], n.buffer.o[n.oPos] ); break; case 13: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1; } e.prev = ca.END_FILL; C.endFill(); if (C.hasFill && C.context.isPointInPath(b, c, C.windingRule)) return e.destroy(), (a.__canvas = d), (a.__context = g), !0; C.endStroke(); if (C.hasStroke && C.context.isPointInStroke(b, c)) return e.destroy(), (a.__canvas = d), (a.__context = g), !0; C.hasFill = !1; C.bitmapFill = null; break; case 14: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1; } e.prev = ca.LINE_BITMAP_STYLE; n = e; C.strokeCommands.lineBitmapStyle( n.buffer.o[n.oPos], n.buffer.o[n.oPos + 1], n.buffer.b[n.bPos], n.buffer.b[n.bPos + 1] ); break; case 15: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1; } e.prev = ca.LINE_GRADIENT_STYLE; n = e; C.strokeCommands.lineGradientStyle( n.buffer.o[n.oPos], n.buffer.ii[n.iiPos], n.buffer.ff[n.ffPos], n.buffer.ii[n.iiPos + 1], n.buffer.o[n.oPos + 1], n.buffer.o[n.oPos + 2], n.buffer.o[n.oPos + 3], n.buffer.f[n.fPos] ); break; case 16: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1; } e.prev = ca.LINE_STYLE; n = e; C.strokeCommands.lineStyle( n.buffer.o[n.oPos], n.buffer.i[n.iPos], 1, n.buffer.b[n.bPos], n.buffer.o[n.oPos + 1], n.buffer.o[n.oPos + 2], n.buffer.o[n.oPos + 3], n.buffer.f[n.fPos + 1] ); break; case 17: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1; } e.prev = ca.LINE_TO; n = e; C.fillCommands.lineTo(n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1]); C.strokeCommands.lineTo(n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1]); break; case 18: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1; } e.prev = ca.MOVE_TO; n = e; C.fillCommands.moveTo(n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1]); C.strokeCommands.moveTo(n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1]); break; case 21: C.windingRule = 'evenodd'; break; case 22: C.windingRule = 'nonzero'; break; default: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1; } e.prev = n; } } p = !1; 0 < C.fillCommands.get_length() && C.endFill(); C.hasFill && C.context.isPointInPath(b, c, C.windingRule) && (p = !0); 0 < C.strokeCommands.get_length() && C.endStroke(); C.hasStroke && C.context.isPointInStroke(b, c) && (p = !0); e.destroy(); a.__canvas = d; a.__context = g; return p; }; C.isCCW = function (a, b, c, e, d, g) { return 0 > (c - a) * (g - b) - (e - b) * (d - a); }; C.normalizeUVT = function (a, b) { null == b && (b = !1); for (var c = -Infinity, e, d = a.get_length(), g = 1, p = d + 1; g < p; ) (e = g++), (b && 0 == e % 3) || ((e = a.get(e - 1)), c < e && (c = e)); if (!b) return { max: c, uvt: a }; var l = yb.toFloatVector(null); g = 1; for (p = d + 1; g < p; ) (e = g++), (b && 0 == e % 3) || l.push(a.get(e - 1)); return { max: c, uvt: l }; }; C.playCommands = function (a, b) { null == b && (b = !1); C.bounds = C.graphics.__bounds; var c = C.bounds.x, e = C.bounds.y, d = 0, g = 0, p = !1, l = 0, k = 0, n = !1; C.windingRule = 'evenodd'; C.setSmoothing(!0); var h = !1, m = new Xf(a), t, u, r, q = null, w = null, x = a.types, z = 0, E = a.get_length(); a: for (; z < E; ) { var I = z++, H = x[I]; switch (H._hx_index) { case 0: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = ca.BEGIN_BITMAP_FILL; var A = m; C.bitmapFill = A.buffer.o[A.oPos]; C.context.fillStyle = C.createBitmapFill( A.buffer.o[A.oPos], A.buffer.b[A.bPos], A.buffer.b[A.bPos + 1] ); C.hasFill = !0; null != A.buffer.o[A.oPos + 1] ? ((C.pendingMatrix = A.buffer.o[A.oPos + 1]), (C.inversePendingMatrix = A.buffer.o[A.oPos + 1].clone()), C.inversePendingMatrix.invert()) : ((C.pendingMatrix = null), (C.inversePendingMatrix = null)); break; case 1: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = ca.BEGIN_FILL; var ra = m; if (0.005 > ra.buffer.f[ra.fPos]) C.hasFill = !1; else { if (1 == ra.buffer.f[ra.fPos]) { var D = U.hex(ra.buffer.i[ra.iPos] & 16777215, 6); C.context.fillStyle = '#' + D; } else { var F = (ra.buffer.i[ra.iPos] & 16711680) >>> 16; var G = (ra.buffer.i[ra.iPos] & 65280) >>> 8; var J = ra.buffer.i[ra.iPos] & 255; C.context.fillStyle = 'rgba(' + F + ', ' + G + ', ' + J + ', ' + ra.buffer.f[ra.fPos] + ')'; } C.bitmapFill = null; C.setSmoothing(!0); C.hasFill = !0; } break; case 2: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = ca.BEGIN_GRADIENT_FILL; var B = m; C.context.fillStyle = C.createGradientPattern( B.buffer.o[B.oPos], B.buffer.ii[B.iiPos], B.buffer.ff[B.ffPos], B.buffer.ii[B.iiPos + 1], B.buffer.o[B.oPos + 1], B.buffer.o[B.oPos + 2], B.buffer.o[B.oPos + 3], B.buffer.f[B.fPos] ); C.bitmapFill = null; C.setSmoothing(!0); C.hasFill = !0; break; case 3: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = ca.BEGIN_SHADER_FILL; var L = m, M = L.buffer.o[L.oPos]; 0 < M.inputCount && ((C.bitmapFill = M.inputs[0]), (C.context.fillStyle = C.createBitmapFill( C.bitmapFill, 0 != M.inputWrap[0], 5 != M.inputFilter[0] )), (C.hasFill = !0), (C.pendingMatrix = null), (C.inversePendingMatrix = null)); break; case 4: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = ca.CUBIC_CURVE_TO; var y = m; h = !0; C.context.bezierCurveTo( y.buffer.f[y.fPos] - c, y.buffer.f[y.fPos + 1] - e, y.buffer.f[y.fPos + 2] - c, y.buffer.f[y.fPos + 3] - e, y.buffer.f[y.fPos + 4] - c, y.buffer.f[y.fPos + 5] - e ); break; case 5: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = ca.CURVE_TO; var N = m; h = !0; C.context.quadraticCurveTo( N.buffer.f[N.fPos] - c, N.buffer.f[N.fPos + 1] - e, N.buffer.f[N.fPos + 2] - c, N.buffer.f[N.fPos + 3] - e ); break; case 6: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = ca.DRAW_CIRCLE; var K = m; h = !0; C.context.moveTo( K.buffer.f[K.fPos] - c + K.buffer.f[K.fPos + 2], K.buffer.f[K.fPos + 1] - e ); C.context.arc( K.buffer.f[K.fPos] - c, K.buffer.f[K.fPos + 1] - e, K.buffer.f[K.fPos + 2], 0, 2 * Math.PI, !0 ); break; case 7: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = ca.DRAW_ELLIPSE; var P = m; h = !0; var S = P.buffer.f[P.fPos]; var za = P.buffer.f[P.fPos + 1]; var T = P.buffer.f[P.fPos + 2]; var Ja = P.buffer.f[P.fPos + 3]; S -= c; za -= e; var X = (T / 2) * 0.5522848; var Sa = (Ja / 2) * 0.5522848; var Y = S + T; var W = za + Ja; var V = S + T / 2; var Z = za + Ja / 2; C.context.moveTo(S, Z); C.context.bezierCurveTo(S, Z - Sa, V - X, za, V, za); C.context.bezierCurveTo(V + X, za, Y, Z - Sa, Y, Z); C.context.bezierCurveTo(Y, Z + Sa, V + X, W, V, W); C.context.bezierCurveTo(V - X, W, S, Z + Sa, S, Z); break; case 8: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = ca.DRAW_QUADS; var R = m, O = R.buffer.o[R.oPos], aa = R.buffer.o[R.oPos + 1], Q = R.buffer.o[R.oPos + 2], da = null != aa, xe = !1, td = !1, Ba = da ? aa.get_length() : Math.floor(O.get_length() / 4); if (0 == Ba) return; null != Q && (Q.get_length() >= 6 * Ba ? (td = xe = !0) : Q.get_length() >= 4 * Ba ? (xe = !0) : Q.get_length() >= 2 * Ba && (td = !0)); var ba = fa.__pool.get(), ea = Ia.__pool.get(), ka = C.graphics.__renderTransform; C.context.save(); for (var ja = 0, ha = Ba; ja < ha; ) { var sb = ja++; var oa = da ? 4 * aa.get(sb) : 4 * sb; if ( !( 0 > oa || (ba.setTo(O.get(oa), O.get(oa + 1), O.get(oa + 2), O.get(oa + 3)), 0 >= ba.width || 0 >= ba.height) ) ) { if (xe && td) { var la = 6 * sb; ea.setTo( Q.get(la), Q.get(la + 1), Q.get(la + 2), Q.get(la + 3), Q.get(la + 4), Q.get(la + 5) ); } else xe ? ((la = 4 * sb), ea.setTo( Q.get(la), Q.get(la + 1), Q.get(la + 2), Q.get(la + 3), ba.x, ba.y )) : td ? ((la = 2 * sb), (ea.tx = Q.get(la)), (ea.ty = Q.get(la + 1))) : ((ea.tx = ba.x), (ea.ty = ba.y)); ea.tx += d - c; ea.ty += g - e; ea.concat(ka); C.context.setTransform(ea.a, ea.b, ea.c, ea.d, ea.tx, ea.ty); null != C.bitmapFill ? C.context.drawImage( C.bitmapFill.image.get_src(), ba.x, ba.y, ba.width, ba.height, 0, 0, ba.width, ba.height ) : C.context.fillRect(0, 0, ba.width, ba.height); } } fa.__pool.release(ba); Ia.__pool.release(ea); C.context.restore(); break; case 9: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = ca.DRAW_RECT; var ma = m; var Jh = !1; if (null != C.bitmapFill && !C.hitTesting) { var pa = (r = u = t = 0); var Ng = !0; if (null != C.pendingMatrix) if (0 != C.pendingMatrix.b || 0 != C.pendingMatrix.c) Ng = !1; else { null == q && (q = na.__pool.get()); null == w && (w = na.__pool.get()); q.setTo(ma.buffer.f[ma.fPos], ma.buffer.f[ma.fPos + 1]); var Tc = C.inversePendingMatrix, va = q.x, wa = q.y; q.x = va * Tc.a + wa * Tc.c + Tc.tx; q.y = va * Tc.b + wa * Tc.d + Tc.ty; w.setTo( ma.buffer.f[ma.fPos] + ma.buffer.f[ma.fPos + 2], ma.buffer.f[ma.fPos + 1] + ma.buffer.f[ma.fPos + 3] ); var sa = C.inversePendingMatrix, ya = w.x, Ka = w.y; w.x = ya * sa.a + Ka * sa.c + sa.tx; w.y = ya * sa.b + Ka * sa.d + sa.ty; t = q.y; pa = q.x; r = w.y; u = w.x; } else (t = ma.buffer.f[ma.fPos + 1]), (pa = ma.buffer.f[ma.fPos]), (r = ma.buffer.f[ma.fPos + 1] + ma.buffer.f[ma.fPos + 3]), (u = ma.buffer.f[ma.fPos] + ma.buffer.f[ma.fPos + 2]); Ng && 0 <= t && 0 <= pa && u <= C.bitmapFill.width && r <= C.bitmapFill.height && ((Jh = !0), C.hitTesting || C.context.drawImage( C.bitmapFill.image.get_src(), pa, t, u - pa, r - t, ma.buffer.f[ma.fPos] - c, ma.buffer.f[ma.fPos + 1] - e, ma.buffer.f[ma.fPos + 2], ma.buffer.f[ma.fPos + 3] )); } Jh || ((h = !0), C.context.rect( ma.buffer.f[ma.fPos] - c, ma.buffer.f[ma.fPos + 1] - e, ma.buffer.f[ma.fPos + 2], ma.buffer.f[ma.fPos + 3] )); break; case 10: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = ca.DRAW_ROUND_RECT; var qa = m; h = !0; C.drawRoundRect( qa.buffer.f[qa.fPos] - c, qa.buffer.f[qa.fPos + 1] - e, qa.buffer.f[qa.fPos + 2], qa.buffer.f[qa.fPos + 3], qa.buffer.f[qa.fPos + 4], qa.buffer.o[qa.oPos] ); break; case 12: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = ca.DRAW_TRIANGLES; var ua = m, ce = ua.buffer.o[ua.oPos], xa = ua.buffer.o[ua.oPos + 1], ta = ua.buffer.o[ua.oPos + 2], We = null, Aa = null == C.bitmapFill; if (Aa && null != ta) break a; if (!Aa) { if (null == ta) { ta = yb.toFloatVector(null); for (var Ca = 0, Da = (ce.get_length() / 2) | 0; Ca < Da; ) { var Ea = Ca++; ta.push(ce.get(2 * Ea) - c / C.bitmapFill.width); ta.push(ce.get(2 * Ea + 1) - e / C.bitmapFill.height); } } var Fa = ta.get_length() != ce.get_length(), Ga = C.normalizeUVT(ta, Fa), La = Ga.max; ta = Ga.uvt; We = 1 < La ? C.createTempPatternCanvas( C.bitmapFill, C.bitmapRepeat, C.bounds.width | 0, C.bounds.height | 0 ) : C.createTempPatternCanvas( C.bitmapFill, C.bitmapRepeat, C.bitmapFill.width, C.bitmapFill.height ); } for ( var Ha = 0, Na = xa.get_length(), Ma, Oa, Pa, Qa, Wa, Xa, Ya, $a, gb, Ra, Ua, Ta, Va, db, Za, fb, gf, ab, cb, eb, hb, ib, kb, mb, nb, pb, Ne, rb; Ha < Na; ) { Ma = Ha; Oa = Ha + 1; Pa = Ha + 2; Qa = 2 * xa.get(Ma); Wa = 2 * xa.get(Ma) + 1; Xa = 2 * xa.get(Oa); Ya = 2 * xa.get(Oa) + 1; $a = 2 * xa.get(Pa); gb = 2 * xa.get(Pa) + 1; Ra = ce.get(Qa) - c; Ua = ce.get(Wa) - e; Ta = ce.get(Xa) - c; Va = ce.get(Ya) - e; db = ce.get($a) - c; Za = ce.get(gb) - e; switch (ua.buffer.o[ua.oPos + 3]) { case 0: if (0 > (Ta - Ra) * (Za - Ua) - (Va - Ua) * (db - Ra)) { Ha += 3; continue; } break; case 2: if (!(0 > (Ta - Ra) * (Za - Ua) - (Va - Ua) * (db - Ra))) { Ha += 3; continue; } } Aa ? (C.context.beginPath(), C.context.moveTo(Ra, Ua), C.context.lineTo(Ta, Va), C.context.lineTo(db, Za), C.context.closePath(), C.hitTesting || C.context.fill(C.windingRule), (Ha += 3)) : ((fb = ta.get(Qa) * We.width), (ab = ta.get(Xa) * We.width), (eb = ta.get($a) * We.width), (gf = ta.get(Wa) * We.height), (cb = ta.get(Ya) * We.height), (hb = ta.get(gb) * We.height), (ib = fb * (hb - cb) - ab * hb + eb * cb + (ab - eb) * gf), 0 == ib ? ((Ha += 3), C.context.restore()) : (C.context.save(), C.context.beginPath(), C.context.moveTo(Ra, Ua), C.context.lineTo(Ta, Va), C.context.lineTo(db, Za), C.context.closePath(), C.context.clip(), (kb = -(gf * (db - Ta) - cb * db + hb * Ta + (cb - hb) * Ra) / ib), (mb = (cb * Za + gf * (Va - Za) - hb * Va + (hb - cb) * Ua) / ib), (nb = (fb * (db - Ta) - ab * db + eb * Ta + (ab - eb) * Ra) / ib), (pb = -(ab * Za + fb * (Va - Za) - eb * Va + (eb - ab) * Ua) / ib), (Ne = (fb * (hb * Ta - cb * db) + gf * (ab * db - eb * Ta) + (eb * cb - ab * hb) * Ra) / ib), (rb = (fb * (hb * Va - cb * Za) + gf * (ab * Za - eb * Va) + (eb * cb - ab * hb) * Ua) / ib), C.context.transform(kb, mb, nb, pb, Ne, rb), C.context.drawImage(We, 0, 0, We.width, We.height), C.context.restore(), (Ha += 3))); } break; case 14: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = ca.LINE_BITMAP_STYLE; var ob = m; b && C.hasStroke && C.closePath(); C.context.moveTo(d - c, g - e); C.context.strokeStyle = C.createBitmapFill( ob.buffer.o[ob.oPos], ob.buffer.b[ob.bPos], ob.buffer.b[ob.bPos + 1] ); C.hasStroke = !0; break; case 15: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = ca.LINE_GRADIENT_STYLE; var jb = m; b && C.hasStroke && C.closePath(); C.context.moveTo(d - c, g - e); C.context.strokeStyle = C.createGradientPattern( jb.buffer.o[jb.oPos], jb.buffer.ii[jb.iiPos], jb.buffer.ff[jb.ffPos], jb.buffer.ii[jb.iiPos + 1], jb.buffer.o[jb.oPos + 1], jb.buffer.o[jb.oPos + 2], jb.buffer.o[jb.oPos + 3], jb.buffer.f[jb.fPos] ); C.setSmoothing(!0); C.hasStroke = !0; break; case 16: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = ca.LINE_STYLE; var bb = m; b && C.hasStroke && C.closePath(!0); C.context.moveTo(d - c, g - e); if (null == bb.buffer.o[bb.oPos]) C.hasStroke = !1; else { C.context.lineWidth = 0 < bb.buffer.o[bb.oPos] ? bb.buffer.o[bb.oPos] : 1; var tb = null == bb.buffer.o[bb.oPos + 3] ? 'round' : Ew.toString(bb.buffer.o[bb.oPos + 3]).toLowerCase(); C.context.lineJoin = tb; var ub = null == bb.buffer.o[bb.oPos + 2] ? 'round' : 0 == bb.buffer.o[bb.oPos + 2] ? 'butt' : Bw.toString(bb.buffer.o[bb.oPos + 2]).toLowerCase(); C.context.lineCap = ub; C.context.miterLimit = bb.buffer.f[bb.fPos + 1]; if (1 == bb.buffer.f[bb.fPos]) { var vb = U.hex(bb.buffer.i[bb.iPos] & 16777215, 6); C.context.strokeStyle = '#' + vb; } else (F = (bb.buffer.i[bb.iPos] & 16711680) >>> 16), (G = (bb.buffer.i[bb.iPos] & 65280) >>> 8), (J = bb.buffer.i[bb.iPos] & 255), (C.context.strokeStyle = 'rgba(' + F + ', ' + G + ', ' + J + ', ' + bb.buffer.f[bb.fPos] + ')'); C.setSmoothing(!0); C.hasStroke = !0; } break; case 17: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = ca.LINE_TO; var qb = m; h = !0; C.context.lineTo(qb.buffer.f[qb.fPos] - c, qb.buffer.f[qb.fPos + 1] - e); d = qb.buffer.f[qb.fPos]; g = qb.buffer.f[qb.fPos + 1]; d == l && g == k && (p = !0); break; case 18: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = ca.MOVE_TO; var lb = m; C.context.moveTo(lb.buffer.f[lb.fPos] - c, lb.buffer.f[lb.fPos + 1] - e); d = lb.buffer.f[lb.fPos]; g = lb.buffer.f[lb.fPos + 1]; n && lb.buffer.f[lb.fPos] != l && lb.buffer.f[lb.fPos + 1] != k && (p = !0); l = lb.buffer.f[lb.fPos]; k = lb.buffer.f[lb.fPos + 1]; n = !0; break; case 21: C.windingRule = 'evenodd'; break; case 22: C.windingRule = 'nonzero'; break; default: switch (m.prev._hx_index) { case 0: m.oPos += 2; m.bPos += 2; break; case 1: m.iPos += 1; m.fPos += 1; break; case 2: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 3: m.oPos += 1; break; case 4: m.fPos += 6; break; case 5: m.fPos += 4; break; case 6: m.fPos += 3; break; case 7: m.fPos += 4; break; case 8: m.oPos += 3; break; case 9: m.fPos += 4; break; case 10: m.fPos += 5; m.oPos += 1; break; case 12: m.oPos += 4; break; case 14: m.oPos += 2; m.bPos += 2; break; case 15: m.oPos += 4; m.iiPos += 2; m.ffPos += 1; m.fPos += 1; break; case 16: m.oPos += 4; m.iPos += 1; m.fPos += 2; m.bPos += 1; break; case 17: m.fPos += 2; break; case 18: m.fPos += 2; break; case 19: m.oPos += 1; break; case 20: m.oPos += 1; } m.prev = H; } } null != q && na.__pool.release(q); null != w && na.__pool.release(w); m.destroy(); h && (b && C.hasStroke && (C.hasFill && p ? (C.context.lineTo(l - c, k - e), C.closePath(!1)) : p && d == l && g == k && C.closePath(!1), C.hitTesting || C.context.stroke()), b || (!C.hasFill && null == C.bitmapFill) || (C.context.translate(-C.bounds.x, -C.bounds.y), null != C.pendingMatrix ? (C.context.transform( C.pendingMatrix.a, C.pendingMatrix.b, C.pendingMatrix.c, C.pendingMatrix.d, C.pendingMatrix.tx, C.pendingMatrix.ty ), C.hitTesting || C.context.fill(C.windingRule), C.context.transform( C.inversePendingMatrix.a, C.inversePendingMatrix.b, C.inversePendingMatrix.c, C.inversePendingMatrix.d, C.inversePendingMatrix.tx, C.inversePendingMatrix.ty )) : C.hitTesting || C.context.fill(C.windingRule), C.context.translate(C.bounds.x, C.bounds.y), C.context.closePath())); }; C.render = function (a, b) { a.__update(b.__worldTransform); a.__commands.__endBuffer(); if (a.__softwareDirty && a.__commands.get_dirty()) { C.hitTesting = !1; C.graphics = a; C.allowSmoothing = b.__allowSmoothing; C.worldAlpha = b.__getAlpha(a.__owner.__worldAlpha); C.bounds = a.__bounds; var c = a.__width, e = a.__height; if (!a.__visible || 0 == a.__commands.get_length() || null == C.bounds || 1 > c || 1 > e) (a.__canvas = null), (a.__context = null), (a.__bitmap = null); else { null == a.__canvas && ((a.__canvas = window.document.createElement('canvas')), (a.__context = a.__canvas.getContext('2d'))); C.context = a.__context; var d = a.__renderTransform, g = a.__canvas, p = b.pixelRatio, l = (c * p) | 0, k = (e * p) | 0; b.__setBlendModeContext(C.context, 10); b.__isDOM ? (g.width == l && g.height == k ? C.context.clearRect(0, 0, l, k) : ((g.width = l), (g.height = k), (g.style.width = c + 'px'), (g.style.height = e + 'px')), (c = a.__renderTransform), C.context.setTransform(c.a * p, c.b * p, c.c * p, c.d * p, c.tx * p, c.ty * p)) : (g.width == l && g.height == k ? (C.context.closePath(), C.context.setTransform(1, 0, 0, 1, 0, 0), C.context.clearRect(0, 0, l, k)) : ((g.width = c), (g.height = e)), C.context.setTransform(d.a, d.b, d.c, d.d, d.tx, d.ty)); C.fillCommands.clear(); C.strokeCommands.clear(); C.hasFill = !1; C.hasStroke = !1; C.bitmapFill = null; p = C.bitmapRepeat = !1; e = c = 0; C.windingRule = 'evenodd'; d = new Xf(a.__commands); g = a.__commands.types; l = 0; for (k = a.__commands.get_length(); l < k; ) { var n = l++; n = g[n]; switch (n._hx_index) { case 0: case 1: case 2: case 3: C.endFill(); C.endStroke(); if (n == ca.BEGIN_BITMAP_FILL) { switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.BEGIN_BITMAP_FILL; n = d; C.fillCommands.beginBitmapFill( n.buffer.o[n.oPos], n.buffer.o[n.oPos + 1], n.buffer.b[n.bPos], n.buffer.b[n.bPos + 1] ); C.strokeCommands.beginBitmapFill( n.buffer.o[n.oPos], n.buffer.o[n.oPos + 1], n.buffer.b[n.bPos], n.buffer.b[n.bPos + 1] ); } else if (n == ca.BEGIN_GRADIENT_FILL) { switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.BEGIN_GRADIENT_FILL; n = d; C.fillCommands.beginGradientFill( n.buffer.o[n.oPos], n.buffer.ii[n.iiPos], n.buffer.ff[n.ffPos], n.buffer.ii[n.iiPos + 1], n.buffer.o[n.oPos + 1], n.buffer.o[n.oPos + 2], n.buffer.o[n.oPos + 3], n.buffer.f[n.fPos] ); C.strokeCommands.beginGradientFill( n.buffer.o[n.oPos], n.buffer.ii[n.iiPos], n.buffer.ff[n.ffPos], n.buffer.ii[n.iiPos + 1], n.buffer.o[n.oPos + 1], n.buffer.o[n.oPos + 2], n.buffer.o[n.oPos + 3], n.buffer.f[n.fPos] ); } else if (n == ca.BEGIN_SHADER_FILL) { switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.BEGIN_SHADER_FILL; n = d; C.fillCommands.beginShaderFill(n.buffer.o[n.oPos]); C.strokeCommands.beginShaderFill(n.buffer.o[n.oPos]); } else { switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.BEGIN_FILL; n = d; C.fillCommands.beginFill(n.buffer.i[n.iPos], n.buffer.f[n.fPos]); C.strokeCommands.beginFill(n.buffer.i[n.iPos], n.buffer.f[n.fPos]); } break; case 4: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.CUBIC_CURVE_TO; n = d; C.fillCommands.cubicCurveTo( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3], n.buffer.f[n.fPos + 4], n.buffer.f[n.fPos + 5] ); p ? C.strokeCommands.cubicCurveTo( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3], n.buffer.f[n.fPos + 4], n.buffer.f[n.fPos + 5] ) : ((c = n.buffer.f[n.fPos + 4]), (e = n.buffer.f[n.fPos + 5])); break; case 5: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.CURVE_TO; n = d; C.fillCommands.curveTo( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3] ); p ? C.strokeCommands.curveTo( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3] ) : ((c = n.buffer.f[n.fPos + 2]), (e = n.buffer.f[n.fPos + 3])); break; case 6: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.DRAW_CIRCLE; n = d; C.fillCommands.drawCircle( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2] ); p && C.strokeCommands.drawCircle( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2] ); break; case 7: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.DRAW_ELLIPSE; n = d; C.fillCommands.drawEllipse( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3] ); p && C.strokeCommands.drawEllipse( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3] ); break; case 8: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.DRAW_QUADS; n = d; C.fillCommands.drawQuads( n.buffer.o[n.oPos], n.buffer.o[n.oPos + 1], n.buffer.o[n.oPos + 2] ); break; case 9: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.DRAW_RECT; n = d; C.fillCommands.drawRect( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3] ); p && C.strokeCommands.drawRect( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3] ); break; case 10: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.DRAW_ROUND_RECT; n = d; C.fillCommands.drawRoundRect( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3], n.buffer.f[n.fPos + 4], n.buffer.o[n.oPos] ); p && C.strokeCommands.drawRoundRect( n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1], n.buffer.f[n.fPos + 2], n.buffer.f[n.fPos + 3], n.buffer.f[n.fPos + 4], n.buffer.o[n.oPos] ); break; case 12: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.DRAW_TRIANGLES; n = d; C.fillCommands.drawTriangles( n.buffer.o[n.oPos], n.buffer.o[n.oPos + 1], n.buffer.o[n.oPos + 2], n.buffer.o[n.oPos + 3] ); break; case 13: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.END_FILL; C.endFill(); C.endStroke(); p = C.hasFill = !1; C.bitmapFill = null; e = c = 0; break; case 14: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.LINE_BITMAP_STYLE; n = d; p || (0 == c && 0 == e) || (C.strokeCommands.moveTo(c, e), (e = c = 0)); p = !0; C.strokeCommands.lineBitmapStyle( n.buffer.o[n.oPos], n.buffer.o[n.oPos + 1], n.buffer.b[n.bPos], n.buffer.b[n.bPos + 1] ); break; case 15: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.LINE_GRADIENT_STYLE; n = d; p || (0 == c && 0 == e) || (C.strokeCommands.moveTo(c, e), (e = c = 0)); p = !0; C.strokeCommands.lineGradientStyle( n.buffer.o[n.oPos], n.buffer.ii[n.iiPos], n.buffer.ff[n.ffPos], n.buffer.ii[n.iiPos + 1], n.buffer.o[n.oPos + 1], n.buffer.o[n.oPos + 2], n.buffer.o[n.oPos + 3], n.buffer.f[n.fPos] ); break; case 16: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.LINE_STYLE; n = d; p || null == n.buffer.o[n.oPos] || (0 == c && 0 == e) || (C.strokeCommands.moveTo(c, e), (e = c = 0)); p = null != n.buffer.o[n.oPos]; C.strokeCommands.lineStyle( n.buffer.o[n.oPos], n.buffer.i[n.iPos], n.buffer.f[n.fPos], n.buffer.b[n.bPos], n.buffer.o[n.oPos + 1], n.buffer.o[n.oPos + 2], n.buffer.o[n.oPos + 3], n.buffer.f[n.fPos + 1] ); break; case 17: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.LINE_TO; n = d; C.fillCommands.lineTo(n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1]); p ? C.strokeCommands.lineTo(n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1]) : ((c = n.buffer.f[n.fPos]), (e = n.buffer.f[n.fPos + 1])); break; case 18: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.MOVE_TO; n = d; C.fillCommands.moveTo(n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1]); p ? C.strokeCommands.moveTo(n.buffer.f[n.fPos], n.buffer.f[n.fPos + 1]) : ((c = n.buffer.f[n.fPos]), (e = n.buffer.f[n.fPos + 1])); break; case 19: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.OVERRIDE_BLEND_MODE; n = d; b.__setBlendModeContext(C.context, n.buffer.o[n.oPos]); break; case 21: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.WINDING_EVEN_ODD; C.fillCommands.windingEvenOdd(); C.windingRule = 'evenodd'; break; case 22: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = ca.WINDING_NON_ZERO; C.fillCommands.windingNonZero(); C.windingRule = 'nonzero'; break; default: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1; } d.prev = n; } } 0 < C.fillCommands.get_length() && C.endFill(); 0 < C.strokeCommands.get_length() && C.endStroke(); d.destroy(); a.__bitmap = ja.fromCanvas(a.__canvas); } a.__softwareDirty = !1; a.set___dirty(!1); } }; C.renderMask = function (a, b) { if (0 != a.__commands.get_length()) { C.context = b.context; b = new Xf(a.__commands); var c = a.__commands.types, d = 0; for (a = a.__commands.get_length(); d < a; ) { var f = d++; f = c[f]; switch (f._hx_index) { case 4: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.CUBIC_CURVE_TO; f = b; C.context.bezierCurveTo( f.buffer.f[f.fPos] - 0, f.buffer.f[f.fPos + 1] - 0, f.buffer.f[f.fPos + 2] - 0, f.buffer.f[f.fPos + 3] - 0, f.buffer.f[f.fPos + 4] - 0, f.buffer.f[f.fPos + 5] - 0 ); break; case 5: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.CURVE_TO; f = b; C.context.quadraticCurveTo( f.buffer.f[f.fPos] - 0, f.buffer.f[f.fPos + 1] - 0, f.buffer.f[f.fPos + 2] - 0, f.buffer.f[f.fPos + 3] - 0 ); break; case 6: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.DRAW_CIRCLE; f = b; C.context.arc( f.buffer.f[f.fPos] - 0, f.buffer.f[f.fPos + 1] - 0, f.buffer.f[f.fPos + 2], 0, 2 * Math.PI, !0 ); break; case 7: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.DRAW_ELLIPSE; var g = b; f = g.buffer.f[g.fPos]; var p = g.buffer.f[g.fPos + 1]; var l = g.buffer.f[g.fPos + 2]; var k = g.buffer.f[g.fPos + 3]; f -= 0; p -= 0; g = (l / 2) * 0.5522848; var n = (k / 2) * 0.5522848; var h = f + l; var m = p + k; l = f + l / 2; k = p + k / 2; C.context.moveTo(f, k); C.context.bezierCurveTo(f, k - n, l - g, p, l, p); C.context.bezierCurveTo(l + g, p, h, k - n, h, k); C.context.bezierCurveTo(h, k + n, l + g, m, l, m); C.context.bezierCurveTo(l - g, m, f, k + n, f, k); break; case 9: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.DRAW_RECT; f = b; C.context.beginPath(); C.context.rect( f.buffer.f[f.fPos] - 0, f.buffer.f[f.fPos + 1] - 0, f.buffer.f[f.fPos + 2], f.buffer.f[f.fPos + 3] ); C.context.closePath(); break; case 10: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.DRAW_ROUND_RECT; f = b; C.drawRoundRect( f.buffer.f[f.fPos] - 0, f.buffer.f[f.fPos + 1] - 0, f.buffer.f[f.fPos + 2], f.buffer.f[f.fPos + 3], f.buffer.f[f.fPos + 4], f.buffer.o[f.oPos] ); break; case 17: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.LINE_TO; f = b; C.context.lineTo(f.buffer.f[f.fPos] - 0, f.buffer.f[f.fPos + 1] - 0); break; case 18: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = ca.MOVE_TO; f = b; C.context.moveTo(f.buffer.f[f.fPos] - 0, f.buffer.f[f.fPos + 1] - 0); break; default: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = f; } } b.destroy(); } }; C.setSmoothing = function (a) { C.allowSmoothing || (a = !1); C.context.imageSmoothingEnabled != a && (C.context.imageSmoothingEnabled = a); }; var Jw = function () {}; h['openfl.display._internal.CanvasShape'] = Jw; Jw.__name__ = 'openfl.display._internal.CanvasShape'; Jw.render = function (a, b) { if (a.__renderable) { var c = b.__getAlpha(a.__worldAlpha); if (!(0 >= c)) { var d = a.__graphics; if (null != d) { C.render(d, b); var f = d.__width, g = d.__height, p = d.__canvas; if (null != p && d.__visible && 1 <= f && 1 <= g) { var l = d.__worldTransform, k = b.context, n = a.__scrollRect, h = a.__worldScale9Grid; if (null == n || (0 < n.width && 0 < n.height)) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); k.globalAlpha = c; if (null != h && 0 == l.b && 0 == l.c) { k.setTransform(1, 0, 0, 1, l.tx, l.ty); var m = d.__bounds, t = d.__renderTransform.a, u = d.__renderTransform.d, r = l.a, q = l.d; l = Math.max(1, Math.round(h.x * t)); d = Math.round(h.y * u); c = Math.max(1, Math.round((m.get_right() - h.get_right()) * t)); n = Math.round((m.get_bottom() - h.get_bottom()) * u); t = Math.round(h.width * t); u = Math.round(h.height * u); var w = Math.round(h.x * r), x = Math.round(h.y * q), z = Math.round((m.get_right() - h.get_right()) * r); h = Math.round((m.get_bottom() - h.get_bottom()) * q); m = Math.round(f * r) - w - z; r = Math.round(g * q) - x - h; b.applySmoothing(k, !1); 0 != t && 0 != u ? (k.drawImage(p, 0, 0, l, d, 0, 0, w, x), k.drawImage(p, l, 0, t, d, w, 0, m, x), k.drawImage(p, l + t, 0, c, d, w + m, 0, z, x), k.drawImage(p, 0, d, l, u, 0, x, w, r), k.drawImage(p, l, d, t, u, w, x, m, r), k.drawImage(p, l + t, d, c, u, w + m, x, z, r), k.drawImage(p, 0, d + u, l, n, 0, x + r, w, h), k.drawImage(p, l, d + u, t, n, w, x + r, m, h), k.drawImage(p, l + t, d + u, c, n, w + m, x + r, z, h)) : 0 == t && 0 != u ? ((g = w + m + z), k.drawImage(p, 0, 0, f, d, 0, 0, g, x), k.drawImage(p, 0, d, f, u, 0, x, g, r), k.drawImage(p, 0, d + u, f, n, 0, x + r, g, h)) : 0 == u && 0 != t && ((f = x + r + h), k.drawImage(p, 0, 0, l, g, 0, 0, w, f), k.drawImage(p, l, 0, t, g, w, 0, m, f), k.drawImage(p, l + t, 0, c, g, w + m, 0, z, f)); } else b.setTransform(l, k), b.__isDOM && ((h = 1 / b.pixelRatio), k.scale(h, h)), k.drawImage(p, 0, 0, f, g); b.__popMaskObject(a); } } } } } }; var Gm = function () {}; h['openfl.display._internal.CanvasSimpleButton'] = Gm; Gm.__name__ = 'openfl.display._internal.CanvasSimpleButton'; Gm.renderDrawable = function (a, b) { !a.__renderable || 0 >= a.__worldAlpha || null == a.__currentState || (b.__pushMaskObject(a), b.__renderDrawable(a.__currentState), b.__popMaskObject(a), b.__renderEvent(a)); }; Gm.renderDrawableMask = function (a, b) { b.__renderDrawableMask(a.__currentState); }; var V = function () {}; h['openfl.display._internal.CanvasTextField'] = V; V.__name__ = 'openfl.display._internal.CanvasTextField'; V.render = function (a, b, c) { var d = a.__textEngine, f = !(d.background || d.border), g = f ? d.textBounds : d.bounds, p = a.__graphics, l = 0; if (a.__dirty) { a.__updateLayout(); null == p.__bounds && (p.__bounds = new fa()); if (0 == a.get_text().length) { l = d.bounds.width - 4; c = a.get_defaultTextFormat().align; l = 3 == c ? 0 : 4 == c ? l : l / 2; switch (c) { case 0: l += a.get_defaultTextFormat().leftMargin / 2; l -= a.get_defaultTextFormat().rightMargin / 2; l += a.get_defaultTextFormat().indent / 2; l += a.get_defaultTextFormat().blockIndent / 2; break; case 2: l += a.get_defaultTextFormat().leftMargin; l += a.get_defaultTextFormat().indent; l += a.get_defaultTextFormat().blockIndent; break; case 3: l += a.get_defaultTextFormat().leftMargin; l += a.get_defaultTextFormat().indent; l += a.get_defaultTextFormat().blockIndent; break; case 4: l -= a.get_defaultTextFormat().rightMargin; } f && ((g.y = d.bounds.y), (g.x = l)); } p.__bounds.copyFrom(g); } p.__update(b.__worldTransform); if (a.__dirty || p.__softwareDirty) { var k = p.__width, n = p.__height; if ( !( (null != d.text && '' != d.text) || d.background || d.border || d.__hasFocus || (1 == d.type && d.selectable) ) || ((0 >= d.width || 0 >= d.height) && 2 != d.autoSize) ) (a.__graphics.__canvas = null), (a.__graphics.__context = null), (a.__graphics.__bitmap = null), (a.__graphics.__softwareDirty = !1), a.__graphics.set___dirty(!1), (a.__dirty = !1); else { null == a.__graphics.__canvas && ((a.__graphics.__canvas = window.document.createElement('canvas')), (a.__graphics.__context = a.__graphics.__canvas.getContext('2d'))); V.context = p.__context; c = p.__renderTransform; if (b.__isDOM) { var h = b.pixelRatio; p.__canvas.width = (k * h) | 0; p.__canvas.height = (n * h) | 0; p.__canvas.style.width = k + 'px'; p.__canvas.style.height = n + 'px'; k = Ia.__pool.get(); k.copyFrom(c); k.scale(h, h); b.setTransform(k, V.context); Ia.__pool.release(k); } else (p.__canvas.width = k), (p.__canvas.height = n), V.context.setTransform(c.a, c.b, c.c, c.d, c.tx, c.ty); null == V.clearRect && (V.clearRect = 'undefined' !== typeof navigator && 'undefined' !== typeof navigator.isCocoonJS); V.clearRect && V.context.clearRect(0, 0, p.__canvas.width, p.__canvas.height); if ((null != d.text && '' != d.text) || d.__hasFocus) { f = d.text; p.__context.imageSmoothingEnabled = !b.__allowSmoothing || (0 == d.antiAliasType && 400 == d.sharpness) ? !1 : !0; if (d.border || d.background) { V.context.rect(0.5, 0.5, g.width - 1, g.height - 1); if (d.background) { var m = U.hex(d.backgroundColor & 16777215, 6); V.context.fillStyle = '#' + m; V.context.fill(); } d.border && ((V.context.lineWidth = 1), (m = U.hex(d.borderColor & 16777215, 6)), (V.context.strokeStyle = '#' + m), V.context.stroke()); } V.context.textBaseline = 'alphabetic'; V.context.textAlign = 'start'; b = -a.get_scrollH(); var t = (l = 0); for (m = a.get_scrollV() - 1; t < m; ) { var u = t++; l -= d.lineHeights.get(u); } for (c = d.layoutGroups.iterator(); c.hasNext(); ) if (((h = c.next()), !(h.lineIndex < a.get_scrollV() - 1))) { if (h.lineIndex > d.get_bottomScrollV() - 1) break; k = '#' + U.hex(h.format.color & 16777215, 6); V.context.font = Sb.getFont(h.format); V.context.fillStyle = k; V.context.fillText( f.substring(h.startIndex, h.endIndex), h.offsetX + b - g.x, h.offsetY + h.ascent + l - g.y ); if (-1 < a.__caretIndex && d.selectable) if (a.__selectionIndex == a.__caretIndex) { if ( a.__showCursor && h.startIndex <= a.__caretIndex && h.endIndex >= a.__caretIndex ) { t = n = 0; for (m = a.__caretIndex - h.startIndex; t < m; ) { u = t++; if (h.positions.length <= u) break; n += h.positions[u]; } t = 0; m = a.get_scrollV(); for (u = h.lineIndex + 1; m < u; ) { var r = m++; t += d.lineHeights.get(r - 1); } V.context.beginPath(); m = U.hex(h.format.color & 16777215, 6); V.context.strokeStyle = '#' + m; V.context.moveTo(h.offsetX + n - a.get_scrollH() - g.x, t + 2 - g.y); V.context.lineWidth = 1; V.context.lineTo( h.offsetX + n - a.get_scrollH() - g.x, t + Sb.getFormatHeight(a.get_defaultTextFormat()) - 1 - g.y ); V.context.stroke(); V.context.closePath(); } } else if ( (h.startIndex <= a.__caretIndex && h.endIndex >= a.__caretIndex) || (h.startIndex <= a.__selectionIndex && h.endIndex >= a.__selectionIndex) || (h.startIndex > a.__caretIndex && h.endIndex < a.__selectionIndex) || (h.startIndex > a.__selectionIndex && h.endIndex < a.__caretIndex) ) (n = Math.min(a.__selectionIndex, a.__caretIndex) | 0), (t = Math.max(a.__selectionIndex, a.__caretIndex) | 0), h.startIndex > n && (n = h.startIndex), h.endIndex < t && (t = h.endIndex), (u = a.getCharBoundaries(n)), t >= h.endIndex ? ((m = a.getCharBoundaries(h.endIndex - 1)), null != m && (m.x += m.width + 2)) : (m = a.getCharBoundaries(t)), null != u && null != m && ((V.context.fillStyle = '#000000'), V.context.fillRect(u.x + b - g.x, u.y + l, m.x - u.x, h.height), (V.context.fillStyle = '#FFFFFF'), V.context.fillText( f.substring(n, t), b + u.x - g.x, h.offsetY + h.ascent + l )); h.format.underline && (V.context.beginPath(), (V.context.strokeStyle = k), (V.context.lineWidth = 1), (k = h.offsetX + b - g.x), (n = Math.floor(h.offsetY + l + h.ascent - g.y) + 0.5), V.context.moveTo(k, n), V.context.lineTo(k + h.width, n), V.context.stroke(), V.context.closePath()); } } else { if (d.border || d.background) d.border ? V.context.rect(0.5, 0.5, g.width - 1, g.height - 1) : V.context.rect(0, 0, g.width, g.height), d.background && ((m = U.hex(d.backgroundColor & 16777215, 6)), (V.context.fillStyle = '#' + m), V.context.fill()), d.border && ((V.context.lineWidth = 1), (V.context.lineCap = 'square'), (m = U.hex(d.borderColor & 16777215, 6)), (V.context.strokeStyle = '#' + m), V.context.stroke()); if (-1 < a.__caretIndex && d.selectable && a.__showCursor) { b = -a.get_scrollH() + (f ? 0 : l); t = l = 0; for (m = a.get_scrollV() - 1; t < m; ) (u = t++), (l += d.lineHeights.get(u)); V.context.beginPath(); m = U.hex(a.get_defaultTextFormat().color & 16777215, 6); V.context.strokeStyle = '#' + m; V.context.moveTo(b + 2.5, l + 2.5); V.context.lineWidth = 1; V.context.lineTo(b + 2.5, l + Sb.getFormatHeight(a.get_defaultTextFormat()) - 1); V.context.stroke(); V.context.closePath(); } } p.__bitmap = ja.fromCanvas(a.__graphics.__canvas); p.__visible = !0; a.__dirty = !1; p.__softwareDirty = !1; p.set___dirty(!1); } } }; V.renderDrawable = function (a, b) { b.__isDOM && !a.__renderedOnCanvasWhileOnDOM && ((a.__renderedOnCanvasWhileOnDOM = !0), 1 == a.get_type() && a.replaceText(0, a.__text.length, a.__text), a.__isHTML && a.__updateText(xb.parse(a.__text, a.__textFormat, a.__textEngine.textFormatRanges)), (a.__dirty = !0), (a.__layoutDirty = !0), a.__renderDirty || ((a.__renderDirty = !0), a.__setParentRenderDirty())); if (null == a.get_mask() || (0 < a.get_mask().get_width() && 0 < a.get_mask().get_height())) if ( (b.__updateCacheBitmap(a, a.__dirty), null == a.__cacheBitmap || a.__isCacheBitmapRender) ) { var c = a.__textEngine, d = !(c.background || c.border), f = d ? c.textBounds : c.bounds, g = a.__graphics, p = 0; if (a.__dirty) { a.__updateLayout(); null == g.__bounds && (g.__bounds = new fa()); if (0 == a.get_text().length) { var l = c.bounds.width - 4, k = a.get_defaultTextFormat().align; p = 3 == k ? 0 : 4 == k ? l : l / 2; switch (k) { case 0: p += a.get_defaultTextFormat().leftMargin / 2; p -= a.get_defaultTextFormat().rightMargin / 2; p += a.get_defaultTextFormat().indent / 2; p += a.get_defaultTextFormat().blockIndent / 2; break; case 2: p += a.get_defaultTextFormat().leftMargin; p += a.get_defaultTextFormat().indent; p += a.get_defaultTextFormat().blockIndent; break; case 3: p += a.get_defaultTextFormat().leftMargin; p += a.get_defaultTextFormat().indent; p += a.get_defaultTextFormat().blockIndent; break; case 4: p -= a.get_defaultTextFormat().rightMargin; } d && ((f.y = c.bounds.y), (f.x = p)); } g.__bounds.copyFrom(f); } g.__update(b.__worldTransform); if (a.__dirty || g.__softwareDirty) if ( ((k = g.__width), (l = g.__height), !( (null != c.text && '' != c.text) || c.background || c.border || c.__hasFocus || (1 == c.type && c.selectable) ) || ((0 >= c.width || 0 >= c.height) && 2 != c.autoSize)) ) (a.__graphics.__canvas = null), (a.__graphics.__context = null), (a.__graphics.__bitmap = null), (a.__graphics.__softwareDirty = !1), a.__graphics.set___dirty(!1), (a.__dirty = !1); else { null == a.__graphics.__canvas && ((a.__graphics.__canvas = window.document.createElement('canvas')), (a.__graphics.__context = a.__graphics.__canvas.getContext('2d'))); V.context = g.__context; var n = g.__renderTransform; if (b.__isDOM) { var h = b.pixelRatio; g.__canvas.width = (k * h) | 0; g.__canvas.height = (l * h) | 0; g.__canvas.style.width = k + 'px'; g.__canvas.style.height = l + 'px'; k = Ia.__pool.get(); k.copyFrom(n); k.scale(h, h); b.setTransform(k, V.context); Ia.__pool.release(k); } else (g.__canvas.width = k), (g.__canvas.height = l), V.context.setTransform(n.a, n.b, n.c, n.d, n.tx, n.ty); null == V.clearRect && (V.clearRect = 'undefined' !== typeof navigator && 'undefined' !== typeof navigator.isCocoonJS); V.clearRect && V.context.clearRect(0, 0, g.__canvas.width, g.__canvas.height); if ((null != c.text && '' != c.text) || c.__hasFocus) { k = c.text; g.__context.imageSmoothingEnabled = !b.__allowSmoothing || (0 == c.antiAliasType && 400 == c.sharpness) ? !1 : !0; if (c.border || c.background) { V.context.rect(0.5, 0.5, f.width - 1, f.height - 1); if (c.background) { var m = U.hex(c.backgroundColor & 16777215, 6); V.context.fillStyle = '#' + m; V.context.fill(); } c.border && ((V.context.lineWidth = 1), (m = U.hex(c.borderColor & 16777215, 6)), (V.context.strokeStyle = '#' + m), V.context.stroke()); } V.context.textBaseline = 'alphabetic'; V.context.textAlign = 'start'; l = -a.get_scrollH(); var t = (d = 0); for (m = a.get_scrollV() - 1; t < m; ) { var u = t++; d -= c.lineHeights.get(u); } var r; for (p = c.layoutGroups.iterator(); p.hasNext(); ) if (((h = p.next()), !(h.lineIndex < a.get_scrollV() - 1))) { if (h.lineIndex > c.get_bottomScrollV() - 1) break; n = '#' + U.hex(h.format.color & 16777215, 6); V.context.font = Sb.getFont(h.format); V.context.fillStyle = n; V.context.fillText( k.substring(h.startIndex, h.endIndex), h.offsetX + l - f.x, h.offsetY + h.ascent + d - f.y ); if (-1 < a.__caretIndex && c.selectable) if (a.__selectionIndex == a.__caretIndex) { if ( a.__showCursor && h.startIndex <= a.__caretIndex && h.endIndex >= a.__caretIndex ) { t = r = 0; for (m = a.__caretIndex - h.startIndex; t < m; ) { u = t++; if (h.positions.length <= u) break; r += h.positions[u]; } t = 0; m = a.get_scrollV(); for (u = h.lineIndex + 1; m < u; ) { var q = m++; t += c.lineHeights.get(q - 1); } V.context.beginPath(); m = U.hex(h.format.color & 16777215, 6); V.context.strokeStyle = '#' + m; V.context.moveTo(h.offsetX + r - a.get_scrollH() - f.x, t + 2 - f.y); V.context.lineWidth = 1; V.context.lineTo( h.offsetX + r - a.get_scrollH() - f.x, t + Sb.getFormatHeight(a.get_defaultTextFormat()) - 1 - f.y ); V.context.stroke(); V.context.closePath(); } } else if ( (h.startIndex <= a.__caretIndex && h.endIndex >= a.__caretIndex) || (h.startIndex <= a.__selectionIndex && h.endIndex >= a.__selectionIndex) || (h.startIndex > a.__caretIndex && h.endIndex < a.__selectionIndex) || (h.startIndex > a.__selectionIndex && h.endIndex < a.__caretIndex) ) (r = Math.min(a.__selectionIndex, a.__caretIndex) | 0), (t = Math.max(a.__selectionIndex, a.__caretIndex) | 0), h.startIndex > r && (r = h.startIndex), h.endIndex < t && (t = h.endIndex), (u = a.getCharBoundaries(r)), t >= h.endIndex ? ((m = a.getCharBoundaries(h.endIndex - 1)), null != m && (m.x += m.width + 2)) : (m = a.getCharBoundaries(t)), null != u && null != m && ((V.context.fillStyle = '#000000'), V.context.fillRect(u.x + l - f.x, u.y + d, m.x - u.x, h.height), (V.context.fillStyle = '#FFFFFF'), V.context.fillText( k.substring(r, t), l + u.x - f.x, h.offsetY + h.ascent + d )); h.format.underline && (V.context.beginPath(), (V.context.strokeStyle = n), (V.context.lineWidth = 1), (n = h.offsetX + l - f.x), (r = Math.floor(h.offsetY + d + h.ascent - f.y) + 0.5), V.context.moveTo(n, r), V.context.lineTo(n + h.width, r), V.context.stroke(), V.context.closePath()); } } else { if (c.border || c.background) c.border ? V.context.rect(0.5, 0.5, f.width - 1, f.height - 1) : V.context.rect(0, 0, f.width, f.height), c.background && ((m = U.hex(c.backgroundColor & 16777215, 6)), (V.context.fillStyle = '#' + m), V.context.fill()), c.border && ((V.context.lineWidth = 1), (V.context.lineCap = 'square'), (m = U.hex(c.borderColor & 16777215, 6)), (V.context.strokeStyle = '#' + m), V.context.stroke()); if (-1 < a.__caretIndex && c.selectable && a.__showCursor) { l = -a.get_scrollH() + (d ? 0 : p); t = d = 0; for (m = a.get_scrollV() - 1; t < m; ) (u = t++), (d += c.lineHeights.get(u)); V.context.beginPath(); m = U.hex(a.get_defaultTextFormat().color & 16777215, 6); V.context.strokeStyle = '#' + m; V.context.moveTo(l + 2.5, d + 2.5); V.context.lineWidth = 1; V.context.lineTo( l + 2.5, d + Sb.getFormatHeight(a.get_defaultTextFormat()) - 1 ); V.context.stroke(); V.context.closePath(); } } g.__bitmap = ja.fromCanvas(a.__graphics.__canvas); g.__visible = !0; a.__dirty = !1; g.__softwareDirty = !1; g.set___dirty(!1); } d = !1; 0 == a.__textEngine.antiAliasType && 1 == a.__textEngine.gridFitType && (d = b.context.imageSmoothingEnabled) && (b.context.imageSmoothingEnabled = !1); if ( (null != a.opaqueBackground || null != a.__graphics) && a.__renderable && ((f = b.__getAlpha(a.__worldAlpha)), !(0 >= f) && (null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height() && (b.__setBlendMode(a.__worldBlendMode), b.__pushMaskObject(a), (c = b.context), b.setTransform(a.__renderTransform, c), (n = a.opaqueBackground), (c.fillStyle = 'rgb(' + ((n >>> 16) & 255) + ',' + ((n >>> 8) & 255) + ',' + (n & 255) + ')'), c.fillRect(0, 0, a.get_width(), a.get_height()), b.__popMaskObject(a)), null != a.__graphics && a.__renderable && ((f = b.__getAlpha(a.__worldAlpha)), !(0 >= f) && ((g = a.__graphics), null != g && (C.render(g, b), (k = g.__width), (l = g.__height), (p = g.__canvas), null != p && g.__visible && 1 <= k && 1 <= l && ((n = g.__worldTransform), (c = b.context), (r = a.__scrollRect), (h = a.__worldScale9Grid), null == r || (0 < r.width && 0 < r.height))))))) ) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); c.globalAlpha = f; if (null != h && 0 == n.b && 0 == n.c) { c.setTransform(1, 0, 0, 1, n.tx, n.ty); f = g.__bounds; m = g.__renderTransform.a; var w = g.__renderTransform.d; u = n.a; q = n.d; g = Math.max(1, Math.round(h.x * m)); n = Math.round(h.y * w); r = Math.max(1, Math.round((f.get_right() - h.get_right()) * m)); t = Math.round((f.get_bottom() - h.get_bottom()) * w); m = Math.round(h.width * m); w = Math.round(h.height * w); var x = Math.round(h.x * u), z = Math.round(h.y * q), E = Math.round((f.get_right() - h.get_right()) * u); f = Math.round((f.get_bottom() - h.get_bottom()) * q); h = Math.round(k * u) - x - E; u = Math.round(l * q) - z - f; b.applySmoothing(c, !1); 0 != m && 0 != w ? (c.drawImage(p, 0, 0, g, n, 0, 0, x, z), c.drawImage(p, g, 0, m, n, x, 0, h, z), c.drawImage(p, g + m, 0, r, n, x + h, 0, E, z), c.drawImage(p, 0, n, g, w, 0, z, x, u), c.drawImage(p, g, n, m, w, x, z, h, u), c.drawImage(p, g + m, n, r, w, x + h, z, E, u), c.drawImage(p, 0, n + w, g, t, 0, z + u, x, f), c.drawImage(p, g, n + w, m, t, x, z + u, h, f), c.drawImage(p, g + m, n + w, r, t, x + h, z + u, E, f)) : 0 == m && 0 != w ? ((g = x + h + E), c.drawImage(p, 0, 0, k, n, 0, 0, g, z), c.drawImage(p, 0, n, k, w, 0, z, g, u), c.drawImage(p, 0, n + w, k, t, 0, z + u, g, f)) : 0 == w && 0 != m && ((f = z + u + f), c.drawImage(p, 0, 0, g, l, 0, 0, x, f), c.drawImage(p, g, 0, m, l, x, 0, h, f), c.drawImage(p, g + m, 0, r, l, x + h, 0, E, f)); } else b.setTransform(n, c), b.__isDOM && ((f = 1 / b.pixelRatio), c.scale(f, f)), c.drawImage(p, 0, 0, k, l); b.__popMaskObject(a); } d && (b.context.imageSmoothingEnabled = !0); } else (a = a.__cacheBitmap), a.__renderable && ((f = b.__getAlpha(a.__worldAlpha)), 0 < f && null != a.__bitmapData && a.__bitmapData.__isValid && a.__bitmapData.readable && ((c = b.context), b.__setBlendMode(a.__worldBlendMode), b.__pushMaskObject(a, !1), Aa.convertToCanvas(a.__bitmapData.image), (c.globalAlpha = f), (r = a.__scrollRect), b.setTransform(a.__renderTransform, c), (b.__allowSmoothing && a.smoothing) || (c.imageSmoothingEnabled = !1), null == r ? c.drawImage( a.__bitmapData.image.get_src(), 0, 0, a.__bitmapData.image.width, a.__bitmapData.image.height ) : c.drawImage(a.__bitmapData.image.get_src(), r.x, r.y, r.width, r.height), (b.__allowSmoothing && a.smoothing) || (c.imageSmoothingEnabled = !0), b.__popMaskObject(a, !1))); }; V.renderDrawableMask = function (a, b) { Dh.renderDrawableMask(a, b); }; var Vf = function () {}; h['openfl.display._internal.CanvasTilemap'] = Vf; Vf.__name__ = 'openfl.display._internal.CanvasTilemap'; Vf.render = function (a, b) { if (a.__renderable && 0 != a.__group.__tiles.length) { var c = b.__getAlpha(a.__worldAlpha); if (!(0 >= c)) { var d = b.context; b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var f = fa.__pool.get(); f.setTo(0, 0, a.__width, a.__height); b.__pushMaskRect(f, a.__renderTransform); (b.__allowSmoothing && a.smoothing) || (d.imageSmoothingEnabled = !1); Vf.renderTileContainer( a.__group, b, a.__renderTransform, a.__tileset, b.__allowSmoothing && a.smoothing, a.tileAlphaEnabled, c, a.tileBlendModeEnabled, a.__worldBlendMode, null, null, f ); (b.__allowSmoothing && a.smoothing) || (d.imageSmoothingEnabled = !0); b.__popMaskRect(); b.__popMaskObject(a); fa.__pool.release(f); } } }; Vf.renderTileContainer = function (a, b, c, d, f, g, p, l, k, n, h, m) { var e = b.context, v = b.__roundPixels, t = Ia.__pool.get(), u = a.__tiles, r, q = null, w = 0; for (a = a.__length; w < a; ) { var x = w++; var z = u[x]; t.setTo(1, 0, 0, 1, -z.get_originX(), -z.get_originY()); t.concat(z.get_matrix()); t.concat(c); v && ((t.tx = Math.round(t.tx)), (t.ty = Math.round(t.ty))); var E = null != z.get_tileset() ? z.get_tileset() : d; x = z.get_alpha() * p; if ((r = z.get_visible()) && !(0 >= x)) if ( (g || (x = 1), l && (q = null != z.__blendMode ? z.__blendMode : k), 0 < z.__length) ) Vf.renderTileContainer(z, b, t, E, f, g, x, l, q, n, h, m); else if (null != E) { r = z.get_id(); if (-1 == r) { if (((z = z.__rect), null == z || 0 >= z.width || 0 >= z.height)) continue; } else { z = E.__data[r]; if (null == z) continue; m.setTo(z.x, z.y, z.width, z.height); z = m; } E = E.__bitmapData; null != E && (E != n && (null == E.image.buffer.__srcImage && Aa.convertToCanvas(E.image), (h = E.image.get_src()), (n = E)), (e.globalAlpha = x), l && b.__setBlendMode(q), b.setTransform(t, e), e.drawImage(h, z.x, z.y, z.width, z.height, 0, 0, z.width, z.height)); } } Ia.__pool.release(t); }; Vf.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { if ( !( (null == a.opaqueBackground && null == a.__graphics) || !a.__renderable || ((w = b.__getAlpha(a.__worldAlpha)), 0 >= w) ) ) { if ( null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height() ) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); x = b.context; b.setTransform(a.__renderTransform, x); var c = a.opaqueBackground; x.fillStyle = 'rgb(' + ((c >>> 16) & 255) + ',' + ((c >>> 8) & 255) + ',' + (c & 255) + ')'; x.fillRect(0, 0, a.get_width(), a.get_height()); b.__popMaskObject(a); } if ( null != a.__graphics && a.__renderable && ((w = b.__getAlpha(a.__worldAlpha)), !(0 >= w)) ) { var d = a.__graphics; if (null != d) { C.render(d, b); var f = d.__width, g = d.__height; c = d.__canvas; if (null != c && d.__visible && 1 <= f && 1 <= g) { var p = d.__worldTransform; x = b.context; z = a.__scrollRect; var l = a.__worldScale9Grid; if (null == z || (0 < z.width && 0 < z.height)) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); x.globalAlpha = w; if (null != l && 0 == p.b && 0 == p.c) { x.setTransform(1, 0, 0, 1, p.tx, p.ty); var k = d.__bounds, n = d.__renderTransform.a, h = d.__renderTransform.d, m = p.a, t = p.d; p = Math.max(1, Math.round(l.x * n)); d = Math.round(l.y * h); w = Math.max(1, Math.round((k.get_right() - l.get_right()) * n)); z = Math.round((k.get_bottom() - l.get_bottom()) * h); n = Math.round(l.width * n); h = Math.round(l.height * h); var u = Math.round(l.x * m), r = Math.round(l.y * t), q = Math.round((k.get_right() - l.get_right()) * m); l = Math.round((k.get_bottom() - l.get_bottom()) * t); k = Math.round(f * m) - u - q; m = Math.round(g * t) - r - l; b.applySmoothing(x, !1); 0 != n && 0 != h ? (x.drawImage(c, 0, 0, p, d, 0, 0, u, r), x.drawImage(c, p, 0, n, d, u, 0, k, r), x.drawImage(c, p + n, 0, w, d, u + k, 0, q, r), x.drawImage(c, 0, d, p, h, 0, r, u, m), x.drawImage(c, p, d, n, h, u, r, k, m), x.drawImage(c, p + n, d, w, h, u + k, r, q, m), x.drawImage(c, 0, d + h, p, z, 0, r + m, u, l), x.drawImage(c, p, d + h, n, z, u, r + m, k, l), x.drawImage(c, p + n, d + h, w, z, u + k, r + m, q, l)) : 0 == n && 0 != h ? ((g = u + k + q), x.drawImage(c, 0, 0, f, d, 0, 0, g, r), x.drawImage(c, 0, d, f, h, 0, r, g, m), x.drawImage(c, 0, d + h, f, z, 0, r + m, g, l)) : 0 == h && 0 != n && ((f = r + m + l), x.drawImage(c, 0, 0, p, g, 0, 0, u, f), x.drawImage(c, p, 0, n, g, u, 0, k, f), x.drawImage(c, p + n, 0, w, g, u + k, 0, q, f)); } else b.setTransform(p, x), b.__isDOM && ((l = 1 / b.pixelRatio), x.scale(l, l)), x.drawImage(c, 0, 0, f, g); b.__popMaskObject(a); } } } } } a.__renderable && 0 != a.__group.__tiles.length && ((w = b.__getAlpha(a.__worldAlpha)), 0 >= w || ((x = b.context), b.__setBlendMode(a.__worldBlendMode), b.__pushMaskObject(a), (c = fa.__pool.get()), c.setTo(0, 0, a.__width, a.__height), b.__pushMaskRect(c, a.__renderTransform), (b.__allowSmoothing && a.smoothing) || (x.imageSmoothingEnabled = !1), Vf.renderTileContainer( a.__group, b, a.__renderTransform, a.__tileset, b.__allowSmoothing && a.smoothing, a.tileAlphaEnabled, w, a.tileBlendModeEnabled, a.__worldBlendMode, null, null, c ), (b.__allowSmoothing && a.smoothing) || (x.imageSmoothingEnabled = !0), b.__popMaskRect(), b.__popMaskObject(a), fa.__pool.release(c))); } else if (((c = a.__cacheBitmap), c.__renderable)) { var w = b.__getAlpha(c.__worldAlpha); if ( 0 < w && null != c.__bitmapData && c.__bitmapData.__isValid && c.__bitmapData.readable ) { var x = b.context; b.__setBlendMode(c.__worldBlendMode); b.__pushMaskObject(c, !1); Aa.convertToCanvas(c.__bitmapData.image); x.globalAlpha = w; var z = c.__scrollRect; b.setTransform(c.__renderTransform, x); (b.__allowSmoothing && c.smoothing) || (x.imageSmoothingEnabled = !1); null == z ? x.drawImage( c.__bitmapData.image.get_src(), 0, 0, c.__bitmapData.image.width, c.__bitmapData.image.height ) : x.drawImage(c.__bitmapData.image.get_src(), z.x, z.y, z.width, z.height); (b.__allowSmoothing && c.smoothing) || (x.imageSmoothingEnabled = !0); b.__popMaskObject(c, !1); } } b.__renderEvent(a); }; Vf.renderDrawableMask = function (a, b) {}; var bi = function () {}; h['openfl.display._internal.CanvasVideo'] = bi; bi.__name__ = 'openfl.display._internal.CanvasVideo'; bi.render = function (a, b) { if (a.__renderable && null != a.__stream) { var c = b.__getAlpha(a.__worldAlpha); if (!(0 >= c)) { var d = b.context; if (null != a.__stream.__video) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); d.globalAlpha = c; c = a.__scrollRect; var f = a.smoothing; b.setTransform(a.__worldTransform, d); f || (d.imageSmoothingEnabled = !1); null == c ? d.drawImage(a.__stream.__video, 0, 0, a.get_width(), a.get_height()) : d.drawImage( a.__stream.__video, c.x, c.y, c.width, c.height, c.x, c.y, c.width, c.height ); f || (d.imageSmoothingEnabled = !0); b.__popMaskObject(a); } } } }; bi.renderDrawable = function (a, b) { bi.render(a, b); b.__renderEvent(a); }; bi.renderDrawableMask = function (a, b) {}; var vf = function () {}; h['openfl.display._internal.Context3DBitmap'] = vf; vf.__name__ = 'openfl.display._internal.Context3DBitmap'; vf.render = function (a, b) { if ( a.__renderable && !(0 >= a.__worldAlpha) && null != a.__bitmapData && a.__bitmapData.__isValid ) { var c = b.__context3D; b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var d = b.__initDisplayShader(a.__worldShader); b.setShader(d); b.applyBitmapData(a.__bitmapData, b.__allowSmoothing && (a.smoothing || b.__upscaled)); b.applyMatrix(b.__getMatrix(a.__renderTransform, a.pixelSnapping)); b.applyAlpha(a.__worldAlpha); b.applyColorTransform(a.__worldColorTransform); b.updateShader(); var f = a.__bitmapData.getVertexBuffer(c); null != d.__position && c.setVertexBufferAt(d.__position.index, f, 0, 3); null != d.__textureCoord && c.setVertexBufferAt(d.__textureCoord.index, f, 3, 2); d = a.__bitmapData.getIndexBuffer(c); c.drawTriangles(d); b.__clearShader(); b.__popMaskObject(a); } }; vf.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); null != a.__bitmapData && null != a.__bitmapData.image && (a.__imageVersion = a.__bitmapData.image.version); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { if ( !( (null == a.opaqueBackground && null == a.__graphics) || !a.__renderable || 0 >= a.__worldAlpha ) ) { if ( null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height() ) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var c = b.__context3D, d = fa.__pool.get(); d.setTo(0, 0, a.get_width(), a.get_height()); b.__pushMaskRect(d, a.__renderTransform); var f = a.opaqueBackground; c.clear( ((f >>> 16) & 255) / 255, ((f >>> 8) & 255) / 255, (f & 255) / 255, 1, 0, 0, 1 ); b.__popMaskRect(); b.__popMaskObject(a); fa.__pool.release(d); } null != a.__graphics && $f.render(a, b); } vf.render(a, b); } else vf.render(a.__cacheBitmap, b); b.__renderEvent(a); }; vf.renderDrawableMask = function (a, b) { vf.renderMask(a, b); }; vf.renderMask = function (a, b) { if (null != a.__bitmapData && a.__bitmapData.__isValid) { var c = b.__context3D, d = b.__maskShader; b.setShader(d); b.applyBitmapData(ci.opaqueBitmapData, !0); b.applyMatrix(b.__getMatrix(a.__renderTransform, a.pixelSnapping)); b.updateShader(); var f = a.__bitmapData.getVertexBuffer(c); null != d.__position && c.setVertexBufferAt(d.__position.index, f, 0, 3); null != d.__textureCoord && c.setVertexBufferAt(d.__textureCoord.index, f, 3, 2); a = a.__bitmapData.getIndexBuffer(c); c.drawTriangles(a); b.__clearShader(); } }; var Um = function () {}; h['openfl.display._internal.Context3DBitmapData'] = Um; Um.__name__ = 'openfl.display._internal.Context3DBitmapData'; Um.renderDrawable = function (a, b) { var c = b.__context3D; b.__setBlendMode(10); var d = b.__defaultDisplayShader; b.setShader(d); b.applyBitmapData(a, b.__upscaled); b.applyMatrix(b.__getMatrix(a.__worldTransform, 1)); b.applyAlpha(a.__worldAlpha); b.applyColorTransform(a.__worldColorTransform); b.updateShader(); var f = a.getVertexBuffer(c); null != d.__position && c.setVertexBufferAt(d.__position.index, f, 0, 3); null != d.__textureCoord && c.setVertexBufferAt(d.__textureCoord.index, f, 3, 2); a = a.getIndexBuffer(c); c.drawTriangles(a); b.__clearShader(); }; Um.renderDrawableMask = function (a, b) { var c = b.__context3D, d = b.__maskShader; b.setShader(d); b.applyBitmapData(a, b.__upscaled); b.applyMatrix(b.__getMatrix(a.__worldTransform, 1)); b.updateShader(); var f = a.getVertexBuffer(c); null != d.__position && c.setVertexBufferAt(d.__position.index, f, 0, 3); null != d.__textureCoord && c.setVertexBufferAt(d.__textureCoord.index, f, 3, 2); a = a.getIndexBuffer(c); c.drawTriangles(a); b.__clearShader(); }; var Fh = function (a, b, c, d) { this.context3D = a; this.elementType = b; this.dataPerVertex = d; this.vertexCount = this.indexCount = 0; this.resize(c); }; h['openfl.display._internal.Context3DBuffer'] = Fh; Fh.__name__ = 'openfl.display._internal.Context3DBuffer'; Fh.prototype = { dataPerVertex: null, elementCount: null, elementType: null, indexBufferData: null, indexBuffers: null, indexCount: null, vertexBuffer: null, vertexBufferData: null, vertexCount: null, context3D: null, drawElements: function (a, b) { null == b && (b = -1); if (0 != this.indexCount && 0 != this.vertexCount && 0 == this.elementType._hx_index) if ((-1 == b && (b = 2 * this.elementCount), 10922 > a && 10922 > b - a)) this.context3D.drawTriangles(this.indexBuffers[0], a, 2 * b); else for (var c = a + b; a < c; ) { var d = Math.floor(a / 10922); b = Math.min(c - a, 10922) | 0; if (0 >= b) break; this.context3D.drawTriangles(this.indexBuffers[d], 3 * (a - 10922 * d), 2 * b); a += b; } }, flushVertexBufferData: function () { this.vertexBufferData.length > this.vertexCount && ((this.vertexCount = this.vertexBufferData.length), (this.vertexBuffer = this.context3D.createVertexBuffer( this.vertexCount, this.dataPerVertex, 0 ))); this.vertexBuffer.uploadFromTypedArray(Yg.toArrayBufferView(this.vertexBufferData)); }, resize: function (a, b) { null == b && (b = -1); this.elementCount = a; -1 == b && (b = this.dataPerVertex); b != this.dataPerVertex && ((this.vertexBuffer = null), (this.vertexCount = 0), (this.dataPerVertex = b)); var c = 0; switch (this.elementType._hx_index) { case 0: c = 4 * a; break; case 1: c = 3 * a; break; case 2: c = 3 * a; } b *= c; if (null == this.vertexBufferData) { var d = (c = null), f = null, g = null, p = null; this.vertexBufferData = b = null != b ? new Float32Array(b) : null != c ? new Float32Array(c) : null != d ? new Float32Array(d.__array) : null != f ? new Float32Array(f) : null != g ? null == p ? new Float32Array(g, 0) : new Float32Array(g, 0, p) : null; } else b > this.vertexBufferData.length && ((a = this.vertexBufferData), (p = g = f = d = c = null), (this.vertexBufferData = b = null != b ? new Float32Array(b) : null != c ? new Float32Array(c) : null != d ? new Float32Array(d.__array) : null != f ? new Float32Array(f) : null != g ? null == p ? new Float32Array(g, 0) : new Float32Array(g, 0, p) : null), this.vertexBufferData.set(a)); }, __class__: Fh }; var dn = (E['openfl.display._internal.Context3DElementType'] = { __ename__: 'openfl.display._internal.Context3DElementType', __constructs__: null, QUADS: { _hx_name: 'QUADS', _hx_index: 0, __enum__: 'openfl.display._internal.Context3DElementType', toString: w }, TRIANGLES: { _hx_name: 'TRIANGLES', _hx_index: 1, __enum__: 'openfl.display._internal.Context3DElementType', toString: w }, TRIANGLE_INDICES: { _hx_name: 'TRIANGLE_INDICES', _hx_index: 2, __enum__: 'openfl.display._internal.Context3DElementType', toString: w } }); dn.__constructs__ = [dn.QUADS, dn.TRIANGLES, dn.TRIANGLE_INDICES]; var ch = function () {}; h['openfl.display._internal.Context3DDisplayObject'] = ch; ch.__name__ = 'openfl.display._internal.Context3DDisplayObject'; ch.render = function (a, b) { if ( !( (null == a.opaqueBackground && null == a.__graphics) || !a.__renderable || 0 >= a.__worldAlpha ) ) { if ( null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height() ) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var c = b.__context3D, d = fa.__pool.get(); d.setTo(0, 0, a.get_width(), a.get_height()); b.__pushMaskRect(d, a.__renderTransform); var f = a.opaqueBackground; c.clear(((f >>> 16) & 255) / 255, ((f >>> 8) & 255) / 255, (f & 255) / 255, 1, 0, 0, 1); b.__popMaskRect(); b.__popMaskObject(a); fa.__pool.release(d); } null != a.__graphics && $f.render(a, b); } }; ch.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); if (null != a.__cacheBitmap && !a.__isCacheBitmapRender) vf.render(a.__cacheBitmap, b); else if ( !( (null == a.opaqueBackground && null == a.__graphics) || !a.__renderable || 0 >= a.__worldAlpha ) ) { if ( null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height() ) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var c = b.__context3D, d = fa.__pool.get(); d.setTo(0, 0, a.get_width(), a.get_height()); b.__pushMaskRect(d, a.__renderTransform); var f = a.opaqueBackground; c.clear(((f >>> 16) & 255) / 255, ((f >>> 8) & 255) / 255, (f & 255) / 255, 1, 0, 0, 1); b.__popMaskRect(); b.__popMaskObject(a); fa.__pool.release(d); } null != a.__graphics && $f.render(a, b); } b.__renderEvent(a); }; ch.renderDrawableMask = function (a, b) { null != a.__graphics && $f.renderMask(a, b); }; ch.renderMask = function (a, b) { if (null != a.opaqueBackground || null != a.__graphics) null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && a.get_height(), null != a.__graphics && $f.renderMask(a, b); }; var Vm = function () {}; h['openfl.display._internal.Context3DDisplayObjectContainer'] = Vm; Vm.__name__ = 'openfl.display._internal.Context3DDisplayObjectContainer'; Vm.renderDrawable = function (a, b) { for (var c = a.__removedChildren.iterator(); c.hasNext(); ) { var d = c.next(); null == d.stage && d.__cleanup(); } a.__removedChildren.set_length(0); if ( a.__renderable && !(0 >= a.__worldAlpha) && (ch.renderDrawable(a, b), null == a.__cacheBitmap || a.__isCacheBitmapRender) ) { if (0 < a.__children.length) if ((b.__pushMaskObject(a), null != b.__stage)) { c = 0; for (d = a.__children; c < d.length; ) { var f = d[c]; ++c; b.__renderDrawable(f); f.__renderDirty = !1; } a.__renderDirty = !1; } else for (c = 0, d = a.__children; c < d.length; ) (f = d[c]), ++c, b.__renderDrawable(f); 0 < a.__children.length && b.__popMaskObject(a); } }; Vm.renderDrawableMask = function (a, b) { for (var c = a.__removedChildren.iterator(); c.hasNext(); ) { var d = c.next(); null == d.stage && d.__cleanup(); } a.__removedChildren.set_length(0); null != a.__graphics && $f.renderMask(a, b); c = 0; for (a = a.__children; c < a.length; ) (d = a[c]), ++c, b.__renderDrawableMask(d); }; var Qc = function () {}; h['openfl.display._internal.Context3DGraphics'] = Qc; Qc.__name__ = 'openfl.display._internal.Context3DGraphics'; Qc.buildBuffer = function (a, b) { var c, d = (c = 0), f = 0, g = new Xf(a.__commands); b = b.__context3D; for ( var p = fa.__pool.get(), l = Ia.__pool.get(), k = null, n = 0, h = a.__commands.types; n < h.length; ) { var m = h[n]; ++n; switch (m._hx_index) { case 0: switch (g.prev._hx_index) { case 0: g.oPos += 2; g.bPos += 2; break; case 1: g.iPos += 1; g.fPos += 1; break; case 2: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 3: g.oPos += 1; break; case 4: g.fPos += 6; break; case 5: g.fPos += 4; break; case 6: g.fPos += 3; break; case 7: g.fPos += 4; break; case 8: g.oPos += 3; break; case 9: g.fPos += 4; break; case 10: g.fPos += 5; g.oPos += 1; break; case 12: g.oPos += 4; break; case 14: g.oPos += 2; g.bPos += 2; break; case 15: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 16: g.oPos += 4; g.iPos += 1; g.fPos += 2; g.bPos += 1; break; case 17: g.fPos += 2; break; case 18: g.fPos += 2; break; case 19: g.oPos += 1; break; case 20: g.oPos += 1; } g.prev = ca.BEGIN_BITMAP_FILL; k = g; k = k.buffer.o[k.oPos]; break; case 1: k = null; switch (g.prev._hx_index) { case 0: g.oPos += 2; g.bPos += 2; break; case 1: g.iPos += 1; g.fPos += 1; break; case 2: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 3: g.oPos += 1; break; case 4: g.fPos += 6; break; case 5: g.fPos += 4; break; case 6: g.fPos += 3; break; case 7: g.fPos += 4; break; case 8: g.oPos += 3; break; case 9: g.fPos += 4; break; case 10: g.fPos += 5; g.oPos += 1; break; case 12: g.oPos += 4; break; case 14: g.oPos += 2; g.bPos += 2; break; case 15: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 16: g.oPos += 4; g.iPos += 1; g.fPos += 2; g.bPos += 1; break; case 17: g.fPos += 2; break; case 18: g.fPos += 2; break; case 19: g.oPos += 1; break; case 20: g.oPos += 1; } g.prev = m; break; case 3: switch (g.prev._hx_index) { case 0: g.oPos += 2; g.bPos += 2; break; case 1: g.iPos += 1; g.fPos += 1; break; case 2: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 3: g.oPos += 1; break; case 4: g.fPos += 6; break; case 5: g.fPos += 4; break; case 6: g.fPos += 3; break; case 7: g.fPos += 4; break; case 8: g.oPos += 3; break; case 9: g.fPos += 4; break; case 10: g.fPos += 5; g.oPos += 1; break; case 12: g.oPos += 4; break; case 14: g.oPos += 2; g.bPos += 2; break; case 15: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 16: g.oPos += 4; g.iPos += 1; g.fPos += 2; g.bPos += 1; break; case 17: g.fPos += 2; break; case 18: g.fPos += 2; break; case 19: g.oPos += 1; break; case 20: g.oPos += 1; } g.prev = ca.BEGIN_SHADER_FILL; k = g; m = k.buffer.o[k.oPos]; k = null; if (null != m) for (var t = 0, u = m.inputCount; t < u; ) { var r = t++; if ('bitmap' == m.inputRefs[r].name) { k = m.inputs[r]; break; } } break; case 8: if (null != k) { switch (g.prev._hx_index) { case 0: g.oPos += 2; g.bPos += 2; break; case 1: g.iPos += 1; g.fPos += 1; break; case 2: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 3: g.oPos += 1; break; case 4: g.fPos += 6; break; case 5: g.fPos += 4; break; case 6: g.fPos += 3; break; case 7: g.fPos += 4; break; case 8: g.oPos += 3; break; case 9: g.fPos += 4; break; case 10: g.fPos += 5; g.oPos += 1; break; case 12: g.oPos += 4; break; case 14: g.oPos += 2; g.bPos += 2; break; case 15: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 16: g.oPos += 4; g.iPos += 1; g.fPos += 2; g.bPos += 1; break; case 17: g.fPos += 2; break; case 18: g.fPos += 2; break; case 19: g.oPos += 1; break; case 20: g.oPos += 1; } g.prev = ca.DRAW_QUADS; u = g; m = u.buffer.o[u.oPos]; t = u.buffer.o[u.oPos + 1]; u = u.buffer.o[u.oPos + 2]; r = null != t; var q = !1, w = !1, x = r ? t.get_length() : Math.floor(m.get_length() / 4); if (0 == x) return; null != u && (u.get_length() >= 6 * x ? (w = q = !0) : u.get_length() >= 4 * x ? (q = !0) : u.get_length() >= 2 * x && (w = !0)); null == a.__quadBuffer ? (a.__quadBuffer = new Fh(b, dn.QUADS, x, 4)) : a.__quadBuffer.resize(c + x, 4); for ( var z, E, I, H, C, A, ra, D, B, F, G, J, L, M, y = a.__quadBuffer.vertexBufferData, K = k.width, N = k.height, P = 0, U = x; P < U; ) (H = P++), (z = 16 * (c + H)), (E = r ? 4 * t.get(H) : 4 * H), 0 > E || (p.setTo(m.get(E), m.get(E + 1), m.get(E + 2), m.get(E + 3)), (E = p.width), (I = p.height), 0 >= E || 0 >= I || (q && w ? ((H *= 6), l.setTo( u.get(H), u.get(H + 1), u.get(H + 2), u.get(H + 3), u.get(H + 4), u.get(H + 5) )) : q ? ((H *= 4), l.setTo(u.get(H), u.get(H + 1), u.get(H + 2), u.get(H + 3), p.x, p.y)) : w ? ((H *= 2), (l.tx = u.get(H)), (l.ty = u.get(H + 1))) : ((l.tx = p.x), (l.ty = p.y)), (H = p.x / K), (C = p.y / N), (A = p.get_right() / K), (ra = p.get_bottom() / N), (D = 0 * l.a + 0 * l.c + l.tx), (B = 0 * l.b + 0 * l.d + l.ty), (F = E * l.a + 0 * l.c + l.tx), (G = E * l.b + 0 * l.d + l.ty), (J = 0 * l.a + I * l.c + l.tx), (L = 0 * l.b + I * l.d + l.ty), (M = E * l.a + I * l.c + l.tx), (E = E * l.b + I * l.d + l.ty), (y[z] = D), (y[z + 1] = B), (y[z + 2] = H), (y[z + 3] = C), (y[z + 4] = F), (y[z + 4 + 1] = G), (y[z + 4 + 2] = A), (y[z + 4 + 3] = C), (y[z + 8] = J), (y[z + 8 + 1] = L), (y[z + 8 + 2] = H), (y[z + 8 + 3] = ra), (y[z + 12] = M), (y[z + 12 + 1] = E), (y[z + 12 + 2] = A), (y[z + 12 + 3] = ra))); c += x; } break; case 12: switch (g.prev._hx_index) { case 0: g.oPos += 2; g.bPos += 2; break; case 1: g.iPos += 1; g.fPos += 1; break; case 2: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 3: g.oPos += 1; break; case 4: g.fPos += 6; break; case 5: g.fPos += 4; break; case 6: g.fPos += 3; break; case 7: g.fPos += 4; break; case 8: g.oPos += 3; break; case 9: g.fPos += 4; break; case 10: g.fPos += 5; g.oPos += 1; break; case 12: g.oPos += 4; break; case 14: g.oPos += 2; g.bPos += 2; break; case 15: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 16: g.oPos += 4; g.iPos += 1; g.fPos += 2; g.bPos += 1; break; case 17: g.fPos += 2; break; case 18: g.fPos += 2; break; case 19: g.oPos += 1; break; case 20: g.oPos += 1; } g.prev = ca.DRAW_TRIANGLES; u = g; m = u.buffer.o[u.oPos]; t = u.buffer.o[u.oPos + 1]; u = u.buffer.o[u.oPos + 2]; r = null != t; x = Math.floor(m.get_length() / 2); q = r ? t.get_length() : x; z = (x = (w = null != u) && u.get_length() >= 3 * x) ? 4 : 2; y = x ? 3 : 2; K = z + 2; N = x ? f : d; Qc.resizeVertexBuffer(a, x, N + q * K); P = x ? a.__vertexBufferDataUVT : a.__vertexBufferData; I = 0; for (H = q; I < H; ) (C = I++), (U = N + C * K), (E = r ? 2 * t.get(C) : 2 * C), (C = r ? t.get(C) * y : C * y), x ? ((A = u.get(C + 2)), (P[U] = m.get(E) / A), (P[U + 1] = m.get(E + 1) / A), (P[U + 2] = 0), (P[U + 3] = 1 / A)) : ((P[U] = m.get(E)), (P[U + 1] = m.get(E + 1))), (P[U + z] = w ? u.get(C) : 0), (P[U + z + 1] = w ? u.get(C + 1) : 0); x ? (f += q * K) : (d += q * K); break; case 13: k = null; break; default: switch (g.prev._hx_index) { case 0: g.oPos += 2; g.bPos += 2; break; case 1: g.iPos += 1; g.fPos += 1; break; case 2: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 3: g.oPos += 1; break; case 4: g.fPos += 6; break; case 5: g.fPos += 4; break; case 6: g.fPos += 3; break; case 7: g.fPos += 4; break; case 8: g.oPos += 3; break; case 9: g.fPos += 4; break; case 10: g.fPos += 5; g.oPos += 1; break; case 12: g.oPos += 4; break; case 14: g.oPos += 2; g.bPos += 2; break; case 15: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 16: g.oPos += 4; g.iPos += 1; g.fPos += 2; g.bPos += 1; break; case 17: g.fPos += 2; break; case 18: g.fPos += 2; break; case 19: g.oPos += 1; break; case 20: g.oPos += 1; } g.prev = m; } } 0 < c && a.__quadBuffer.flushVertexBufferData(); if (0 < d) { c = a.__vertexBuffer; if (null == c || d > a.__vertexBufferCount) (c = b.createVertexBuffer(d, 4, 0)), (a.__vertexBuffer = c), (a.__vertexBufferCount = d); c.uploadFromTypedArray(Yg.toArrayBufferView(a.__vertexBufferData)); } if (0 < f) { c = a.__vertexBufferUVT; if (null == c || f > a.__vertexBufferCountUVT) (c = b.createVertexBuffer(f, 6, 0)), (a.__vertexBufferUVT = c), (a.__vertexBufferCountUVT = f); c.uploadFromTypedArray(Yg.toArrayBufferView(a.__vertexBufferDataUVT)); } fa.__pool.release(p); Ia.__pool.release(l); }; Qc.isCompatible = function (a) { if (null != a.__owner.__worldScale9Grid) return !1; var b = new Xf(a.__commands), c = !1, d = !1, f = !1, g = 0; for (a = a.__commands.types; g < a.length; ) { var p = a[g]; ++g; switch (p._hx_index) { case 0: d = !0; f = c = !1; switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = p; break; case 1: d = !1; c = !0; f = !1; switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = p; break; case 3: c = d = !1; f = !0; switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = p; break; case 8: if (d || f) { switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = p; } else return b.destroy(), !1; break; case 9: if (c) { switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = p; } else return b.destroy(), !1; break; case 12: if (d || f) { switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = p; } else return b.destroy(), !1; break; case 13: f = c = d = !1; switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = p; break; case 18: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = p; break; case 19: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1; } b.prev = p; break; default: return b.destroy(), !1; } } b.destroy(); return !0; }; Qc.render = function (a, b) { if (a.__visible && 0 != a.__commands.get_length()) if ((null != a.__bitmap && !a.__dirty) || !Qc.isCompatible(a)) { var c = b.__softwareRenderer.__worldTransform; b.__softwareRenderer.__worldTransform = b.__worldTransform; C.render(a, b.__softwareRenderer); b.__softwareRenderer.__worldTransform = c; } else { a.__bitmap = null; a.__update(b.__worldTransform); var d = a.__width, f = a.__height; if (null != a.__bounds && 1 <= d && 1 <= f) { (a.__hardwareDirty || (null == a.__quadBuffer && null == a.__vertexBuffer && null == a.__vertexBufferUVT)) && Qc.buildBuffer(a, b); c = new Xf(a.__commands); for ( var g = b.__context3D, p = Ia.__pool.get(), l = null, k = null, n = !1, h = !1, m = null, t = 0, u = 0, r = 0, q = 0, w = 0, x = a.__commands.types; w < x.length; ) switch (((d = x[w]), ++w, d._hx_index)) { case 0: switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1; } c.prev = ca.BEGIN_BITMAP_FILL; h = c; k = h.buffer.o[h.oPos]; n = h.buffer.b[h.bPos]; h = h.buffer.b[h.bPos + 1]; m = l = null; break; case 1: switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1; } c.prev = ca.BEGIN_FILL; k = c; m = ((k.buffer.i[k.iPos] | 0) & 16777215) | (((255 * k.buffer.f[k.fPos]) | 0) << 24); k = l = null; break; case 3: switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1; } c.prev = ca.BEGIN_SHADER_FILL; u = c; l = u.buffer.o[u.oPos]; u = 0; k = null == l || null == l.shader || null == l.shader.__bitmap ? null : l.shader.__bitmap.input; m = null; break; case 8: if (null != k) { switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1; } c.prev = ca.DRAW_QUADS; var z = c; d = z.buffer.o[z.oPos]; z = z.buffer.o[z.oPos + 1]; d = null != z ? z.get_length() : Math.floor(d.get_length() / 4); var E = b.__getMatrix(a.__owner.__renderTransform, 1); null == l || Qc.maskRender ? ((z = Qc.maskRender ? b.__maskShader : b.__initGraphicsShader(null)), b.setShader(z), b.applyMatrix(E), b.applyBitmapData(k, h, n), b.applyAlpha(a.__owner.__worldAlpha), b.applyColorTransform(a.__owner.__worldColorTransform), b.updateShader()) : ((z = b.__initShaderBuffer(l)), b.__setShaderBuffer(l), b.applyMatrix(E), b.applyBitmapData(k, !1, n), b.applyAlpha(a.__owner.__worldAlpha), b.applyColorTransform(a.__owner.__worldColorTransform)); for (E = t + d; t < E; ) { d = Math.min(E - t, g.__quadIndexBufferElements) | 0; if (0 >= d) break; null == l || Qc.maskRender || b.__updateShaderBuffer(u); null != z.__position && g.setVertexBufferAt( z.__position.index, a.__quadBuffer.vertexBuffer, 16 * t, 2 ); null != z.__textureCoord && g.setVertexBufferAt( z.__textureCoord.index, a.__quadBuffer.vertexBuffer, 16 * t + 2, 2 ); g.drawTriangles(g.__quadIndexBuffer, 0, 2 * d); u += 4 * d; t += d; } b.__clearShader(); } break; case 9: if (null != m) { switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1; } c.prev = ca.DRAW_RECT; var I = c; z = I.buffer.f[I.fPos]; E = I.buffer.f[I.fPos + 1]; d = I.buffer.f[I.fPos + 2]; f = I.buffer.f[I.fPos + 3]; I = m; Qc.tempColorTransform.redOffset = (I >>> 16) & 255; Qc.tempColorTransform.greenOffset = (I >>> 8) & 255; Qc.tempColorTransform.blueOffset = I & 255; Qc.tempColorTransform.__combine(a.__owner.__worldColorTransform); p.identity(); p.scale(d, f); p.tx = z; p.ty = E; p.concat(a.__owner.__renderTransform); d = Qc.maskRender ? b.__maskShader : b.__initGraphicsShader(null); b.setShader(d); b.applyMatrix(b.__getMatrix(p, 1)); b.applyBitmapData(Qc.blankBitmapData, !0, n); b.applyAlpha((((I >>> 24) & 255) / 255) * a.__owner.__worldAlpha); b.applyColorTransform(Qc.tempColorTransform); b.updateShader(); z = Qc.blankBitmapData.getVertexBuffer(g); null != d.__position && g.setVertexBufferAt(d.__position.index, z, 0, 3); null != d.__textureCoord && g.setVertexBufferAt(d.__textureCoord.index, z, 3, 2); d = Qc.blankBitmapData.getIndexBuffer(g); g.drawTriangles(d); u += 4; b.__clearShader(); } break; case 12: switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1; } c.prev = ca.DRAW_TRIANGLES; f = c; z = f.buffer.o[f.oPos + 1]; E = f.buffer.o[f.oPos + 2]; d = f.buffer.o[f.oPos + 3]; I = null != z; f = Math.floor(f.buffer.o[f.oPos].get_length() / 2); z = I ? z.get_length() : f; I = (E = null != E && E.get_length() >= 3 * f) ? 4 : 2; f = I + 2; var H = E ? a.__vertexBufferUVT : a.__vertexBuffer, A = E ? q : r, ra = b.__getMatrix(a.__owner.__renderTransform, 1); if (null == l || Qc.maskRender) { var D = Qc.maskRender ? b.__maskShader : b.__initGraphicsShader(null); b.setShader(D); b.applyMatrix(ra); b.applyBitmapData(k, h, n); b.applyAlpha(a.__owner.__worldAlpha); b.applyColorTransform(a.__owner.__worldColorTransform); b.updateShader(); } else (D = b.__initShaderBuffer(l)), b.__setShaderBuffer(l), b.applyMatrix(ra), b.applyBitmapData(k, !1, n), b.applyAlpha(1), b.applyColorTransform(null), b.__updateShaderBuffer(u); null != D.__position && g.setVertexBufferAt(D.__position.index, H, A, E ? 4 : 2); null != D.__textureCoord && g.setVertexBufferAt(D.__textureCoord.index, H, A + I, 2); switch (d) { case 0: g.setCulling(0); break; case 1: g.setCulling(3); break; case 2: g.setCulling(1); } g.__drawTriangles(0, z); u += z; E ? (q += f * z) : (r += f * z); switch (d) { case 1: case 2: g.setCulling(0); } b.__clearShader(); break; case 13: l = m = k = null; switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1; } c.prev = d; g.setCulling(3); break; case 18: switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1; } c.prev = ca.MOVE_TO; break; case 19: switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1; } c.prev = ca.OVERRIDE_BLEND_MODE; d = c; b.__setBlendMode(d.buffer.o[d.oPos]); break; default: switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1; } c.prev = d; } Ia.__pool.release(p); } a.__hardwareDirty = !1; a.set___dirty(!1); } }; Qc.renderMask = function (a, b) { Qc.maskRender = !0; Qc.render(a, b); Qc.maskRender = !1; }; Qc.resizeIndexBuffer = function (a, b, c) { if (!b) { var d = b ? null : a.__triangleIndexBufferData, f = null; if (null == d) { var g = (f = null), p = null, l = null, k = null; f = c = null != c ? new Uint16Array(c) : null != f ? new Uint16Array(f) : null != g ? new Uint16Array(g.__array) : null != p ? new Uint16Array(p) : null != l ? null == k ? new Uint16Array(l, 0) : new Uint16Array(l, 0, k) : null; } else c > d.length && ((k = l = p = g = f = null), (f = c = null != c ? new Uint16Array(c) : null != f ? new Uint16Array(f) : null != g ? new Uint16Array(g.__array) : null != p ? new Uint16Array(p) : null != l ? null == k ? new Uint16Array(l, 0) : new Uint16Array(l, 0, k) : null), f.set(d)); null == f || b || (a.__triangleIndexBufferData = f); } }; Qc.resizeVertexBuffer = function (a, b, c) { var d = b ? a.__vertexBufferDataUVT : a.__vertexBufferData, f = null; if (null == d) { var g = (f = null), p = null, l = null, k = null; f = c = null != c ? new Float32Array(c) : null != f ? new Float32Array(f) : null != g ? new Float32Array(g.__array) : null != p ? new Float32Array(p) : null != l ? null == k ? new Float32Array(l, 0) : new Float32Array(l, 0, k) : null; } else c > d.length && ((k = l = p = g = f = null), (f = c = null != c ? new Float32Array(c) : null != f ? new Float32Array(f) : null != g ? new Float32Array(g.__array) : null != p ? new Float32Array(p) : null != l ? null == k ? new Float32Array(l, 0) : new Float32Array(l, 0, k) : null), f.set(d)); null != f && (b ? (a.__vertexBufferDataUVT = f) : (a.__vertexBufferData = f)); }; var ci = function () { null == this.__glFragmentSource && (this.__glFragmentSource = 'varying vec2 openfl_TextureCoordv;\n\n\t\tuniform sampler2D openfl_Texture;\n\n\t\tvoid main(void) {\n\n\t\t\tvec4 color = texture2D (openfl_Texture, openfl_TextureCoordv);\n\n\t\t\tif (color.a == 0.0) {\n\n\t\t\t\tdiscard;\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = color;\n\n\t\t\t}\n\n\t\t}'); null == this.__glVertexSource && (this.__glVertexSource = 'attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t}'); df.call(this); this.__isGenerated = !0; this.__initGL(); }; h['openfl.display._internal.Context3DMaskShader'] = ci; ci.__name__ = 'openfl.display._internal.Context3DMaskShader'; ci.__super__ = df; ci.prototype = r(df.prototype, { openfl_Position: null, openfl_TextureCoord: null, openfl_Matrix: null, openfl_Texture: null, __class__: ci }); var $f = function () {}; h['openfl.display._internal.Context3DShape'] = $f; $f.__name__ = 'openfl.display._internal.Context3DShape'; $f.render = function (a, b) { if (a.__renderable && !(0 >= a.__worldAlpha)) { var c = a.__graphics; if (null != c) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); Qc.render(c, b); if (null != c.__bitmap && c.__visible) { var d = b.__context3D, f = b.__initDisplayShader(a.__worldShader); b.setShader(f); b.applyBitmapData(c.__bitmap, !0); b.applyMatrix(b.__getMatrix(c.__worldTransform, 1)); b.applyAlpha(a.__worldAlpha); b.applyColorTransform(a.__worldColorTransform); b.updateShader(); var g = c.__bitmap.getVertexBuffer(d); null != f.__position && d.setVertexBufferAt(f.__position.index, g, 0, 3); null != f.__textureCoord && d.setVertexBufferAt(f.__textureCoord.index, g, 3, 2); c = c.__bitmap.getIndexBuffer(d); d.drawTriangles(c); b.__clearShader(); } b.__popMaskObject(a); } } }; $f.renderMask = function (a, b) { var c = a.__graphics; if (null != c && (Qc.renderMask(c, b), null != c.__bitmap)) { a = b.__context3D; var d = b.__maskShader; b.setShader(d); b.applyBitmapData(c.__bitmap, !0); b.applyMatrix(b.__getMatrix(c.__worldTransform, 1)); b.updateShader(); var f = c.__bitmap.getVertexBuffer(a); null != d.__position && a.setVertexBufferAt(d.__position.index, f, 0, 3); null != d.__textureCoord && a.setVertexBufferAt(d.__textureCoord.index, f, 3, 2); c = c.__bitmap.getIndexBuffer(a); a.drawTriangles(c); b.__clearShader(); } }; var Wm = function () {}; h['openfl.display._internal.Context3DSimpleButton'] = Wm; Wm.__name__ = 'openfl.display._internal.Context3DSimpleButton'; Wm.renderDrawable = function (a, b) { !a.__renderable || 0 >= a.__worldAlpha || null == a.__currentState || (b.__pushMaskObject(a), b.__renderDrawable(a.__currentState), b.__popMaskObject(a), b.__renderEvent(a)); }; Wm.renderDrawableMask = function (a, b) { null != a.__currentState && b.__renderDrawableMask(a.__currentState); }; var dh = function () {}; h['openfl.display._internal.Context3DTextField'] = dh; dh.__name__ = 'openfl.display._internal.Context3DTextField'; dh.render = function (a, b) { var c = b.__softwareRenderer; b = a.__textEngine; var d = !(b.background || b.border), f = d ? b.textBounds : b.bounds, g = a.__graphics, p = 0; if (a.__dirty) { a.__updateLayout(); null == g.__bounds && (g.__bounds = new fa()); if (0 == a.get_text().length) { p = b.bounds.width - 4; var l = a.get_defaultTextFormat().align; p = 3 == l ? 0 : 4 == l ? p : p / 2; switch (l) { case 0: p += a.get_defaultTextFormat().leftMargin / 2; p -= a.get_defaultTextFormat().rightMargin / 2; p += a.get_defaultTextFormat().indent / 2; p += a.get_defaultTextFormat().blockIndent / 2; break; case 2: p += a.get_defaultTextFormat().leftMargin; p += a.get_defaultTextFormat().indent; p += a.get_defaultTextFormat().blockIndent; break; case 3: p += a.get_defaultTextFormat().leftMargin; p += a.get_defaultTextFormat().indent; p += a.get_defaultTextFormat().blockIndent; break; case 4: p -= a.get_defaultTextFormat().rightMargin; } d && ((f.y = b.bounds.y), (f.x = p)); } g.__bounds.copyFrom(f); } g.__update(c.__worldTransform); if (a.__dirty || g.__softwareDirty) { var k = g.__width, n = g.__height; if ( !( (null != b.text && '' != b.text) || b.background || b.border || b.__hasFocus || (1 == b.type && b.selectable) ) || ((0 >= b.width || 0 >= b.height) && 2 != b.autoSize) ) (a.__graphics.__canvas = null), (a.__graphics.__context = null), (a.__graphics.__bitmap = null), (a.__graphics.__softwareDirty = !1), a.__graphics.set___dirty(!1), (a.__dirty = !1); else { null == a.__graphics.__canvas && ((a.__graphics.__canvas = window.document.createElement('canvas')), (a.__graphics.__context = a.__graphics.__canvas.getContext('2d'))); V.context = g.__context; l = g.__renderTransform; if (c.__isDOM) { var h = c.pixelRatio; g.__canvas.width = (k * h) | 0; g.__canvas.height = (n * h) | 0; g.__canvas.style.width = k + 'px'; g.__canvas.style.height = n + 'px'; k = Ia.__pool.get(); k.copyFrom(l); k.scale(h, h); c.setTransform(k, V.context); Ia.__pool.release(k); } else (g.__canvas.width = k), (g.__canvas.height = n), V.context.setTransform(l.a, l.b, l.c, l.d, l.tx, l.ty); null == V.clearRect && (V.clearRect = 'undefined' !== typeof navigator && 'undefined' !== typeof navigator.isCocoonJS); V.clearRect && V.context.clearRect(0, 0, g.__canvas.width, g.__canvas.height); if ((null != b.text && '' != b.text) || b.__hasFocus) { d = b.text; g.__context.imageSmoothingEnabled = !c.__allowSmoothing || (0 == b.antiAliasType && 400 == b.sharpness) ? !1 : !0; if (b.border || b.background) { V.context.rect(0.5, 0.5, f.width - 1, f.height - 1); if (b.background) { var m = U.hex(b.backgroundColor & 16777215, 6); V.context.fillStyle = '#' + m; V.context.fill(); } b.border && ((V.context.lineWidth = 1), (m = U.hex(b.borderColor & 16777215, 6)), (V.context.strokeStyle = '#' + m), V.context.stroke()); } V.context.textBaseline = 'alphabetic'; V.context.textAlign = 'start'; c = -a.get_scrollH(); var t = (p = 0); for (m = a.get_scrollV() - 1; t < m; ) { var u = t++; p -= b.lineHeights.get(u); } for (l = b.layoutGroups.iterator(); l.hasNext(); ) if (((h = l.next()), !(h.lineIndex < a.get_scrollV() - 1))) { if (h.lineIndex > b.get_bottomScrollV() - 1) break; k = '#' + U.hex(h.format.color & 16777215, 6); V.context.font = Sb.getFont(h.format); V.context.fillStyle = k; V.context.fillText( d.substring(h.startIndex, h.endIndex), h.offsetX + c - f.x, h.offsetY + h.ascent + p - f.y ); if (-1 < a.__caretIndex && b.selectable) if (a.__selectionIndex == a.__caretIndex) { if ( a.__showCursor && h.startIndex <= a.__caretIndex && h.endIndex >= a.__caretIndex ) { t = n = 0; for (m = a.__caretIndex - h.startIndex; t < m; ) { u = t++; if (h.positions.length <= u) break; n += h.positions[u]; } t = 0; m = a.get_scrollV(); for (u = h.lineIndex + 1; m < u; ) { var r = m++; t += b.lineHeights.get(r - 1); } V.context.beginPath(); m = U.hex(h.format.color & 16777215, 6); V.context.strokeStyle = '#' + m; V.context.moveTo(h.offsetX + n - a.get_scrollH() - f.x, t + 2 - f.y); V.context.lineWidth = 1; V.context.lineTo( h.offsetX + n - a.get_scrollH() - f.x, t + Sb.getFormatHeight(a.get_defaultTextFormat()) - 1 - f.y ); V.context.stroke(); V.context.closePath(); } } else if ( (h.startIndex <= a.__caretIndex && h.endIndex >= a.__caretIndex) || (h.startIndex <= a.__selectionIndex && h.endIndex >= a.__selectionIndex) || (h.startIndex > a.__caretIndex && h.endIndex < a.__selectionIndex) || (h.startIndex > a.__selectionIndex && h.endIndex < a.__caretIndex) ) (n = Math.min(a.__selectionIndex, a.__caretIndex) | 0), (t = Math.max(a.__selectionIndex, a.__caretIndex) | 0), h.startIndex > n && (n = h.startIndex), h.endIndex < t && (t = h.endIndex), (u = a.getCharBoundaries(n)), t >= h.endIndex ? ((m = a.getCharBoundaries(h.endIndex - 1)), null != m && (m.x += m.width + 2)) : (m = a.getCharBoundaries(t)), null != u && null != m && ((V.context.fillStyle = '#000000'), V.context.fillRect(u.x + c - f.x, u.y + p, m.x - u.x, h.height), (V.context.fillStyle = '#FFFFFF'), V.context.fillText( d.substring(n, t), c + u.x - f.x, h.offsetY + h.ascent + p )); h.format.underline && (V.context.beginPath(), (V.context.strokeStyle = k), (V.context.lineWidth = 1), (k = h.offsetX + c - f.x), (n = Math.floor(h.offsetY + p + h.ascent - f.y) + 0.5), V.context.moveTo(k, n), V.context.lineTo(k + h.width, n), V.context.stroke(), V.context.closePath()); } } else { if (b.border || b.background) b.border ? V.context.rect(0.5, 0.5, f.width - 1, f.height - 1) : V.context.rect(0, 0, f.width, f.height), b.background && ((m = U.hex(b.backgroundColor & 16777215, 6)), (V.context.fillStyle = '#' + m), V.context.fill()), b.border && ((V.context.lineWidth = 1), (V.context.lineCap = 'square'), (m = U.hex(b.borderColor & 16777215, 6)), (V.context.strokeStyle = '#' + m), V.context.stroke()); if (-1 < a.__caretIndex && b.selectable && a.__showCursor) { c = -a.get_scrollH() + (d ? 0 : p); t = p = 0; for (m = a.get_scrollV() - 1; t < m; ) (u = t++), (p += b.lineHeights.get(u)); V.context.beginPath(); m = U.hex(a.get_defaultTextFormat().color & 16777215, 6); V.context.strokeStyle = '#' + m; V.context.moveTo(c + 2.5, p + 2.5); V.context.lineWidth = 1; V.context.lineTo(c + 2.5, p + Sb.getFormatHeight(a.get_defaultTextFormat()) - 1); V.context.stroke(); V.context.closePath(); } } g.__bitmap = ja.fromCanvas(a.__graphics.__canvas); g.__visible = !0; a.__dirty = !1; g.__softwareDirty = !1; g.set___dirty(!1); } } a.__graphics.__hardwareDirty = !1; }; dh.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { if ( (dh.render(a, b), !( (null == a.opaqueBackground && null == a.__graphics) || !a.__renderable || 0 >= a.__worldAlpha )) ) { if ( null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height() ) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var c = b.__context3D, d = fa.__pool.get(); d.setTo(0, 0, a.get_width(), a.get_height()); b.__pushMaskRect(d, a.__renderTransform); var f = a.opaqueBackground; c.clear( ((f >>> 16) & 255) / 255, ((f >>> 8) & 255) / 255, (f & 255) / 255, 1, 0, 0, 1 ); b.__popMaskRect(); b.__popMaskObject(a); fa.__pool.release(d); } null != a.__graphics && $f.render(a, b); } } else vf.render(a.__cacheBitmap, b); b.__renderEvent(a); }; dh.renderDrawableMask = function (a, b) { dh.renderMask(a, b); ch.renderDrawableMask(a, b); }; dh.renderMask = function (a, b) { var c = b.__softwareRenderer; b = a.__textEngine; var d = !(b.background || b.border), f = d ? b.textBounds : b.bounds, g = a.__graphics, p = 0; if (a.__dirty) { a.__updateLayout(); null == g.__bounds && (g.__bounds = new fa()); if (0 == a.get_text().length) { p = b.bounds.width - 4; var l = a.get_defaultTextFormat().align; p = 3 == l ? 0 : 4 == l ? p : p / 2; switch (l) { case 0: p += a.get_defaultTextFormat().leftMargin / 2; p -= a.get_defaultTextFormat().rightMargin / 2; p += a.get_defaultTextFormat().indent / 2; p += a.get_defaultTextFormat().blockIndent / 2; break; case 2: p += a.get_defaultTextFormat().leftMargin; p += a.get_defaultTextFormat().indent; p += a.get_defaultTextFormat().blockIndent; break; case 3: p += a.get_defaultTextFormat().leftMargin; p += a.get_defaultTextFormat().indent; p += a.get_defaultTextFormat().blockIndent; break; case 4: p -= a.get_defaultTextFormat().rightMargin; } d && ((f.y = b.bounds.y), (f.x = p)); } g.__bounds.copyFrom(f); } g.__update(c.__worldTransform); if (a.__dirty || g.__softwareDirty) { var k = g.__width, n = g.__height; if ( !( (null != b.text && '' != b.text) || b.background || b.border || b.__hasFocus || (1 == b.type && b.selectable) ) || ((0 >= b.width || 0 >= b.height) && 2 != b.autoSize) ) (a.__graphics.__canvas = null), (a.__graphics.__context = null), (a.__graphics.__bitmap = null), (a.__graphics.__softwareDirty = !1), a.__graphics.set___dirty(!1), (a.__dirty = !1); else { null == a.__graphics.__canvas && ((a.__graphics.__canvas = window.document.createElement('canvas')), (a.__graphics.__context = a.__graphics.__canvas.getContext('2d'))); V.context = g.__context; l = g.__renderTransform; if (c.__isDOM) { var h = c.pixelRatio; g.__canvas.width = (k * h) | 0; g.__canvas.height = (n * h) | 0; g.__canvas.style.width = k + 'px'; g.__canvas.style.height = n + 'px'; k = Ia.__pool.get(); k.copyFrom(l); k.scale(h, h); c.setTransform(k, V.context); Ia.__pool.release(k); } else (g.__canvas.width = k), (g.__canvas.height = n), V.context.setTransform(l.a, l.b, l.c, l.d, l.tx, l.ty); null == V.clearRect && (V.clearRect = 'undefined' !== typeof navigator && 'undefined' !== typeof navigator.isCocoonJS); V.clearRect && V.context.clearRect(0, 0, g.__canvas.width, g.__canvas.height); if ((null != b.text && '' != b.text) || b.__hasFocus) { d = b.text; g.__context.imageSmoothingEnabled = !c.__allowSmoothing || (0 == b.antiAliasType && 400 == b.sharpness) ? !1 : !0; if (b.border || b.background) { V.context.rect(0.5, 0.5, f.width - 1, f.height - 1); if (b.background) { var m = U.hex(b.backgroundColor & 16777215, 6); V.context.fillStyle = '#' + m; V.context.fill(); } b.border && ((V.context.lineWidth = 1), (m = U.hex(b.borderColor & 16777215, 6)), (V.context.strokeStyle = '#' + m), V.context.stroke()); } V.context.textBaseline = 'alphabetic'; V.context.textAlign = 'start'; c = -a.get_scrollH(); var t = (p = 0); for (m = a.get_scrollV() - 1; t < m; ) { var u = t++; p -= b.lineHeights.get(u); } for (l = b.layoutGroups.iterator(); l.hasNext(); ) if (((h = l.next()), !(h.lineIndex < a.get_scrollV() - 1))) { if (h.lineIndex > b.get_bottomScrollV() - 1) break; k = '#' + U.hex(h.format.color & 16777215, 6); V.context.font = Sb.getFont(h.format); V.context.fillStyle = k; V.context.fillText( d.substring(h.startIndex, h.endIndex), h.offsetX + c - f.x, h.offsetY + h.ascent + p - f.y ); if (-1 < a.__caretIndex && b.selectable) if (a.__selectionIndex == a.__caretIndex) { if ( a.__showCursor && h.startIndex <= a.__caretIndex && h.endIndex >= a.__caretIndex ) { t = n = 0; for (m = a.__caretIndex - h.startIndex; t < m; ) { u = t++; if (h.positions.length <= u) break; n += h.positions[u]; } t = 0; m = a.get_scrollV(); for (u = h.lineIndex + 1; m < u; ) { var r = m++; t += b.lineHeights.get(r - 1); } V.context.beginPath(); m = U.hex(h.format.color & 16777215, 6); V.context.strokeStyle = '#' + m; V.context.moveTo(h.offsetX + n - a.get_scrollH() - f.x, t + 2 - f.y); V.context.lineWidth = 1; V.context.lineTo( h.offsetX + n - a.get_scrollH() - f.x, t + Sb.getFormatHeight(a.get_defaultTextFormat()) - 1 - f.y ); V.context.stroke(); V.context.closePath(); } } else if ( (h.startIndex <= a.__caretIndex && h.endIndex >= a.__caretIndex) || (h.startIndex <= a.__selectionIndex && h.endIndex >= a.__selectionIndex) || (h.startIndex > a.__caretIndex && h.endIndex < a.__selectionIndex) || (h.startIndex > a.__selectionIndex && h.endIndex < a.__caretIndex) ) (n = Math.min(a.__selectionIndex, a.__caretIndex) | 0), (t = Math.max(a.__selectionIndex, a.__caretIndex) | 0), h.startIndex > n && (n = h.startIndex), h.endIndex < t && (t = h.endIndex), (u = a.getCharBoundaries(n)), t >= h.endIndex ? ((m = a.getCharBoundaries(h.endIndex - 1)), null != m && (m.x += m.width + 2)) : (m = a.getCharBoundaries(t)), null != u && null != m && ((V.context.fillStyle = '#000000'), V.context.fillRect(u.x + c - f.x, u.y + p, m.x - u.x, h.height), (V.context.fillStyle = '#FFFFFF'), V.context.fillText( d.substring(n, t), c + u.x - f.x, h.offsetY + h.ascent + p )); h.format.underline && (V.context.beginPath(), (V.context.strokeStyle = k), (V.context.lineWidth = 1), (k = h.offsetX + c - f.x), (n = Math.floor(h.offsetY + p + h.ascent - f.y) + 0.5), V.context.moveTo(k, n), V.context.lineTo(k + h.width, n), V.context.stroke(), V.context.closePath()); } } else { if (b.border || b.background) b.border ? V.context.rect(0.5, 0.5, f.width - 1, f.height - 1) : V.context.rect(0, 0, f.width, f.height), b.background && ((m = U.hex(b.backgroundColor & 16777215, 6)), (V.context.fillStyle = '#' + m), V.context.fill()), b.border && ((V.context.lineWidth = 1), (V.context.lineCap = 'square'), (m = U.hex(b.borderColor & 16777215, 6)), (V.context.strokeStyle = '#' + m), V.context.stroke()); if (-1 < a.__caretIndex && b.selectable && a.__showCursor) { c = -a.get_scrollH() + (d ? 0 : p); t = p = 0; for (m = a.get_scrollV() - 1; t < m; ) (u = t++), (p += b.lineHeights.get(u)); V.context.beginPath(); m = U.hex(a.get_defaultTextFormat().color & 16777215, 6); V.context.strokeStyle = '#' + m; V.context.moveTo(c + 2.5, p + 2.5); V.context.lineWidth = 1; V.context.lineTo(c + 2.5, p + Sb.getFormatHeight(a.get_defaultTextFormat()) - 1); V.context.stroke(); V.context.closePath(); } } g.__bitmap = ja.fromCanvas(a.__graphics.__canvas); g.__visible = !0; a.__dirty = !1; g.__softwareDirty = !1; g.set___dirty(!1); } } a.__graphics.__hardwareDirty = !1; }; var ea = function () {}; h['openfl.display._internal.Context3DTilemap'] = ea; ea.__name__ = 'openfl.display._internal.Context3DTilemap'; ea.buildBuffer = function (a, b) { if (!a.__renderable || 0 == a.__group.__tiles.length || 0 >= a.__worldAlpha) a.__group.__dirty = !1; else { ea.numTiles = 0; ea.vertexBufferData = null != a.__buffer ? a.__buffer.vertexBufferData : null; ea.vertexDataPosition = 0; var c = fa.__pool.get(), d = Ia.__pool.get(), f = Ia.__pool.get(); ea.dataPerVertex = 4; a.tileAlphaEnabled && ea.dataPerVertex++; a.tileColorTransformEnabled && (ea.dataPerVertex += 8); ea.buildBufferTileContainer( a, a.__group, b, f, a.__tileset, a.tileAlphaEnabled, a.__worldAlpha, a.tileColorTransformEnabled, a.__worldColorTransform, null, c, d ); a.__buffer.flushVertexBufferData(); fa.__pool.release(c); Ia.__pool.release(d); Ia.__pool.release(f); } }; ea.buildBufferTileContainer = function (a, b, c, d, f, g, p, l, k, n, h, m, t) { null == t && (t = !0); var e = Ia.__pool.get(), v = c.__roundPixels, u = b.__tiles, r = null; r = function (a) { a = a.__tiles; for (var b = 0, c = 0; c < a.length; ) { var d = a[c]; ++c; 0 < d.__length ? (b += r(d)) : ++b; } return b; }; t && ea.resizeBuffer(a, ea.numTiles + r(b)); t = null; for (var q, w, x, z, E, I, H, C, A, ra, D = g ? 5 : 4, B = 0; B < u.length; ) { var F = u[B]; ++B; e.setTo(1, 0, 0, 1, -F.get_originX(), -F.get_originY()); e.concat(F.get_matrix()); e.concat(d); v && ((e.tx = Math.round(e.tx)), (e.ty = Math.round(e.ty))); var G = null != F.get_tileset() ? F.get_tileset() : f; var J = F.get_alpha() * p; var y = F.get_visible(); F.__dirty = !1; if (y && !(0 >= J)) if ( (l && (null != F.get_colorTransform() ? null == k ? (t = F.get_colorTransform()) : (null == ea.cacheColorTransform && (ea.cacheColorTransform = new Kc()), (t = ea.cacheColorTransform), (t.redMultiplier = k.redMultiplier * F.get_colorTransform().redMultiplier), (t.greenMultiplier = k.greenMultiplier * F.get_colorTransform().greenMultiplier), (t.blueMultiplier = k.blueMultiplier * F.get_colorTransform().blueMultiplier), (t.alphaMultiplier = k.alphaMultiplier * F.get_colorTransform().alphaMultiplier), (t.redOffset = k.redOffset + F.get_colorTransform().redOffset), (t.greenOffset = k.greenOffset + F.get_colorTransform().greenOffset), (t.blueOffset = k.blueOffset + F.get_colorTransform().blueOffset), (t.alphaOffset = k.alphaOffset + F.get_colorTransform().alphaOffset)) : (t = k)), g || (J = 1), 0 < F.__length) ) ea.buildBufferTileContainer(a, F, c, e, G, g, J, l, t, n, h, m, !1); else if (null != G && ((y = F.get_id()), (q = G.__bitmapData), null != q)) { if (-1 == y) { w = F.__rect; if (null == w || 0 >= w.width || 0 >= w.height) continue; F = w.x / q.width; G = w.y / q.height; y = w.get_right() / q.width; z = w.get_bottom() / q.height; } else { q = G.__data[y]; if (null == q) continue; h.setTo(q.x, q.y, q.width, q.height); w = h; F = q.__uvX; G = q.__uvY; y = q.__uvWidth; z = q.__uvHeight; } q = w.width; x = w.height; w = 0 * e.a + 0 * e.c + e.tx; E = 0 * e.b + 0 * e.d + e.ty; I = q * e.a + 0 * e.c + e.tx; H = q * e.b + 0 * e.d + e.ty; C = 0 * e.a + x * e.c + e.tx; A = 0 * e.b + x * e.d + e.ty; ra = q * e.a + x * e.c + e.tx; x = q * e.b + x * e.d + e.ty; q = ea.vertexDataPosition; ea.vertexBufferData[q] = w; ea.vertexBufferData[q + 1] = E; ea.vertexBufferData[q + 2] = F; ea.vertexBufferData[q + 3] = G; ea.vertexBufferData[q + ea.dataPerVertex] = I; ea.vertexBufferData[q + ea.dataPerVertex + 1] = H; ea.vertexBufferData[q + ea.dataPerVertex + 2] = y; ea.vertexBufferData[q + ea.dataPerVertex + 3] = G; ea.vertexBufferData[q + 2 * ea.dataPerVertex] = C; ea.vertexBufferData[q + 2 * ea.dataPerVertex + 1] = A; ea.vertexBufferData[q + 2 * ea.dataPerVertex + 2] = F; ea.vertexBufferData[q + 2 * ea.dataPerVertex + 3] = z; ea.vertexBufferData[q + 3 * ea.dataPerVertex] = ra; ea.vertexBufferData[q + 3 * ea.dataPerVertex + 1] = x; ea.vertexBufferData[q + 3 * ea.dataPerVertex + 2] = y; ea.vertexBufferData[q + 3 * ea.dataPerVertex + 3] = z; g && ((ea.vertexBufferData[q + 0 * ea.dataPerVertex + 4] = J), (ea.vertexBufferData[q + ea.dataPerVertex + 4] = J), (ea.vertexBufferData[q + 2 * ea.dataPerVertex + 4] = J), (ea.vertexBufferData[q + 3 * ea.dataPerVertex + 4] = J)); if (l) if (null != t) for (J = 0; 4 > J; ) (F = J++), (ea.vertexBufferData[q + ea.dataPerVertex * F + D] = t.redMultiplier), (ea.vertexBufferData[q + ea.dataPerVertex * F + D + 1] = t.greenMultiplier), (ea.vertexBufferData[q + ea.dataPerVertex * F + D + 2] = t.blueMultiplier), (ea.vertexBufferData[q + ea.dataPerVertex * F + D + 3] = t.alphaMultiplier), (ea.vertexBufferData[q + ea.dataPerVertex * F + D + 4] = t.redOffset), (ea.vertexBufferData[q + ea.dataPerVertex * F + D + 5] = t.greenOffset), (ea.vertexBufferData[q + ea.dataPerVertex * F + D + 6] = t.blueOffset), (ea.vertexBufferData[q + ea.dataPerVertex * F + D + 7] = t.alphaOffset); else for (J = 0; 4 > J; ) (F = J++), (ea.vertexBufferData[q + ea.dataPerVertex * F + D] = 1), (ea.vertexBufferData[q + ea.dataPerVertex * F + D + 1] = 1), (ea.vertexBufferData[q + ea.dataPerVertex * F + D + 2] = 1), (ea.vertexBufferData[q + ea.dataPerVertex * F + D + 3] = 1), (ea.vertexBufferData[q + ea.dataPerVertex * F + D + 4] = 0), (ea.vertexBufferData[q + ea.dataPerVertex * F + D + 5] = 0), (ea.vertexBufferData[q + ea.dataPerVertex * F + D + 6] = 0), (ea.vertexBufferData[q + ea.dataPerVertex * F + D + 7] = 0); ea.vertexDataPosition += 4 * ea.dataPerVertex; } } b.__dirty = !1; Ia.__pool.release(e); }; ea.flush = function (a, b, c) { null == ea.currentShader && (ea.currentShader = b.__defaultDisplayShader); if ( ea.bufferPosition > ea.lastFlushedPosition && null != ea.currentBitmapData && null != ea.currentShader ) { var d = b.__initDisplayShader(ea.currentShader); b.setShader(d); b.applyBitmapData(ea.currentBitmapData, a.smoothing); b.applyMatrix(b.__getMatrix(a.__renderTransform, 1)); a.tileAlphaEnabled ? b.useAlphaArray() : b.applyAlpha(a.__worldAlpha); a.tileBlendModeEnabled && b.__setBlendMode(c); a.tileColorTransformEnabled ? (b.applyHasColorTransform(!0), b.useColorTransformArray()) : b.applyColorTransform(a.__worldColorTransform); b.updateShader(); c = a.__buffer.vertexBuffer; for ( var f = ea.lastFlushedPosition * ea.dataPerVertex * 4, g; ea.lastFlushedPosition < ea.bufferPosition; ) { g = Math.min( ea.bufferPosition - ea.lastFlushedPosition, ea.context.__quadIndexBufferElements ) | 0; if (0 >= g) break; null != d.__position && ea.context.setVertexBufferAt(d.__position.index, c, f, 2); null != d.__textureCoord && ea.context.setVertexBufferAt(d.__textureCoord.index, c, f + 2, 2); a.tileAlphaEnabled && null != d.__alpha && ea.context.setVertexBufferAt(d.__alpha.index, c, f + 4, 1); if (a.tileColorTransformEnabled) { var p = a.tileAlphaEnabled ? 5 : 4; null != d.__colorMultiplier && ea.context.setVertexBufferAt(d.__colorMultiplier.index, c, f + p, 4); null != d.__colorOffset && ea.context.setVertexBufferAt(d.__colorOffset.index, c, f + p + 4, 4); } ea.context.drawTriangles(ea.context.__quadIndexBuffer, 0, 2 * g); ea.lastFlushedPosition += g; } b.__clearShader(); } ea.lastUsedBitmapData = ea.currentBitmapData; ea.lastUsedShader = ea.currentShader; }; ea.render = function (a, b) { if ( a.__renderable && !(0 >= a.__worldAlpha) && ((ea.context = b.__context3D), ea.buildBuffer(a, b), 0 != ea.numTiles) ) { ea.bufferPosition = 0; ea.lastFlushedPosition = 0; ea.lastUsedBitmapData = null; ea.lastUsedShader = null; ea.currentBitmapData = null; ea.currentShader = null; ea.currentBlendMode = a.__worldBlendMode; a.tileBlendModeEnabled || b.__setBlendMode(ea.currentBlendMode); b.__pushMaskObject(a); var c = fa.__pool.get(); c.setTo(0, 0, a.__width, a.__height); b.__pushMaskRect(c, a.__renderTransform); ea.renderTileContainer( a, b, a.__group, a.__worldShader, a.__tileset, a.__worldAlpha, a.tileBlendModeEnabled, ea.currentBlendMode, null ); ea.flush(a, b, ea.currentBlendMode); b.__popMaskRect(); b.__popMaskObject(a); fa.__pool.release(c); } }; ea.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { if ( !( (null == a.opaqueBackground && null == a.__graphics) || !a.__renderable || 0 >= a.__worldAlpha ) ) { if ( null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height() ) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var c = b.__context3D, d = fa.__pool.get(); d.setTo(0, 0, a.get_width(), a.get_height()); b.__pushMaskRect(d, a.__renderTransform); var f = a.opaqueBackground; c.clear( ((f >>> 16) & 255) / 255, ((f >>> 8) & 255) / 255, (f & 255) / 255, 1, 0, 0, 1 ); b.__popMaskRect(); b.__popMaskObject(a); fa.__pool.release(d); } null != a.__graphics && $f.render(a, b); } ea.render(a, b); } else vf.render(a.__cacheBitmap, b); b.__renderEvent(a); }; ea.renderDrawableMask = function (a, b) { if (null != a.opaqueBackground || null != a.__graphics) null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && a.get_height(), null != a.__graphics && $f.renderMask(a, b); ea.renderMask(a, b); }; ea.renderTileContainer = function (a, b, c, d, f, g, p, l, k) { c = c.__tiles; for (var e, h, m, v, t = null, u, r = 0; r < c.length; ) if ( ((e = c[r]), ++r, (h = null != e.get_tileset() ? e.get_tileset() : f), (m = e.get_alpha() * g), (v = e.get_visible()) && !(0 >= m)) ) if ( ((v = null != e.get_shader() ? e.get_shader() : d), p && (t = null != e.__blendMode ? e.__blendMode : l), 0 < e.__length) ) ea.renderTileContainer(a, b, e, v, h, m, p, t, k); else if (null != h && ((u = e.get_id()), (m = h.__bitmapData), null != m)) { if (-1 == u) { if (((e = e.__rect), null == e || 0 >= e.width || 0 >= e.height)) continue; } else if (((e = h.__data[u]), null == e)) continue; (v != ea.currentShader || (m != ea.currentBitmapData && null != ea.currentBitmapData) || ea.currentBlendMode != t) && ea.flush(a, b, ea.currentBlendMode); ea.currentBitmapData = m; ea.currentShader = v; ea.currentBlendMode = t; ea.bufferPosition++; } }; ea.renderMask = function (a, b) {}; ea.resizeBuffer = function (a, b) { ea.numTiles = b; null == a.__buffer ? (a.__buffer = new Fh(ea.context, dn.QUADS, ea.numTiles, ea.dataPerVertex)) : a.__buffer.resize(ea.numTiles, ea.dataPerVertex); ea.vertexBufferData = a.__buffer.vertexBufferData; }; var wf = function () {}; h['openfl.display._internal.Context3DVideo'] = wf; wf.__name__ = 'openfl.display._internal.Context3DVideo'; wf.render = function (a, b) { if ( a.__renderable && !(0 >= a.__worldAlpha) && null != a.__stream && null != a.__stream.__video ) { var c = b.__context3D, d = c.gl; if (null != a.__getTexture(c)) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var f = b.__initDisplayShader(a.__worldShader); b.setShader(f); b.applyBitmapData(null, !0, !1); b.applyMatrix(b.__getMatrix(a.__renderTransform, 1)); b.applyAlpha(a.__worldAlpha); b.applyColorTransform(a.__worldColorTransform); null != f.__textureSize && ((wf.__textureSizeValue[0] = null != a.__stream ? a.__stream.__video.videoWidth : 0), (wf.__textureSizeValue[1] = null != a.__stream ? a.__stream.__video.videoHeight : 0), (f.__textureSize.value = wf.__textureSizeValue)); b.updateShader(); c.setTextureAt(0, a.__getTexture(c)); c.__flushGLTextures(); d.uniform1i(f.__texture.index, 0); a.smoothing ? (d.texParameteri(d.TEXTURE_2D, d.TEXTURE_MAG_FILTER, d.LINEAR), d.texParameteri(d.TEXTURE_2D, d.TEXTURE_MIN_FILTER, d.LINEAR)) : (d.texParameteri(d.TEXTURE_2D, d.TEXTURE_MAG_FILTER, d.NEAREST), d.texParameteri(d.TEXTURE_2D, d.TEXTURE_MIN_FILTER, d.NEAREST)); d = a.__getVertexBuffer(c); null != f.__position && c.setVertexBufferAt(f.__position.index, d, 0, 3); null != f.__textureCoord && c.setVertexBufferAt(f.__textureCoord.index, d, 3, 2); f = a.__getIndexBuffer(c); c.drawTriangles(f); b.__clearShader(); b.__popMaskObject(a); } } }; wf.renderDrawable = function (a, b) { wf.render(a, b); b.__renderEvent(a); }; wf.renderDrawableMask = function (a, b) { wf.renderMask(a, b); }; wf.renderMask = function (a, b) { if (null != a.__stream && null != a.__stream.__video) { var c = b.__context3D, d = b.__maskShader; b.setShader(d); b.applyBitmapData(ci.opaqueBitmapData, !0); b.applyMatrix(b.__getMatrix(a.__renderTransform, 1)); b.updateShader(); var f = a.__getVertexBuffer(c); null != d.__position && c.setVertexBufferAt(d.__position.index, f, 0, 3); null != d.__textureCoord && c.setVertexBufferAt(d.__textureCoord.index, f, 3, 2); a = a.__getIndexBuffer(c); c.drawTriangles(a); b.__clearShader(); } }; var Rc = function () {}; h['openfl.display._internal.DOMBitmap'] = Rc; Rc.__name__ = 'openfl.display._internal.DOMBitmap'; Rc.clear = function (a, b) { null != a.__cacheBitmap && Rc.clear(a.__cacheBitmap, b); null != a.__image && (b.element.removeChild(a.__image), (a.__image = null), (a.__style = null)); null != a.__canvas && (b.element.removeChild(a.__canvas), (a.__canvas = null), (a.__style = null)); }; Rc.render = function (a, b) { null != a.stage && a.__worldVisible && a.__renderable && null != a.__bitmapData && a.__bitmapData.__isValid && a.__bitmapData.readable ? (b.__pushMaskObject(a), null != a.__bitmapData.image.buffer.__srcImage ? Rc.renderImage(a, b) : Rc.renderCanvas(a, b), b.__popMaskObject(a)) : Rc.clear(a, b); }; Rc.renderCanvas = function (a, b) { null != a.__image && (b.element.removeChild(a.__image), (a.__image = null)); null == a.__canvas && ((a.__canvas = window.document.createElement('canvas')), (a.__context = a.__canvas.getContext('2d')), (a.__imageVersion = -1), (b.__allowSmoothing && a.smoothing) || (a.__context.imageSmoothingEnabled = !1), b.__initializeElement(a, a.__canvas)); a.__imageVersion != a.__bitmapData.image.version && (Aa.convertToCanvas(a.__bitmapData.image), (a.__canvas.width = a.__bitmapData.width + 1), (a.__canvas.width = a.__bitmapData.width), (a.__canvas.height = a.__bitmapData.height), a.__context.drawImage(a.__bitmapData.image.buffer.__srcCanvas, 0, 0), (a.__imageVersion = a.__bitmapData.image.version)); b.__updateClip(a); b.__applyStyle(a, !0, !0, !0); }; Rc.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && a.get_height(); var c = a.__graphics; if (null != a.stage && a.__worldVisible && a.__renderable && null != c) { C.render(c, b.__canvasRenderer); if (c.__softwareDirty || a.__worldAlphaChanged || a.__canvas != c.__canvas) null != c.__canvas ? a.__canvas != c.__canvas && (null != a.__canvas && b.element.removeChild(a.__canvas), (a.__canvas = c.__canvas), (a.__context = c.__context), b.__initializeElement(a, a.__canvas)) : pf.clear(a, b); if (null != a.__canvas) { b.__pushMaskObject(a); var d = a.__renderTransform; a.__renderTransform = c.__worldTransform; c.__transformDirty && ((c.__transformDirty = !1), (a.__renderTransformChanged = !0)); b.__updateClip(a); b.__applyStyle(a, !0, !0, !0); a.__renderTransform = d; b.__popMaskObject(a); } } else pf.clear(a, b); null != a.stage && a.__worldVisible && a.__renderable && null != a.__bitmapData && a.__bitmapData.__isValid && a.__bitmapData.readable ? (b.__pushMaskObject(a), null != a.__bitmapData.image.buffer.__srcImage ? Rc.renderImage(a, b) : Rc.renderCanvas(a, b), b.__popMaskObject(a)) : Rc.clear(a, b); } else b.__renderDrawableClear(a), (a.__cacheBitmap.stage = a.stage), (c = a.__cacheBitmap), null != c.stage && c.__worldVisible && c.__renderable && null != c.__bitmapData && c.__bitmapData.__isValid && c.__bitmapData.readable ? (b.__pushMaskObject(c), null != c.__bitmapData.image.buffer.__srcImage ? Rc.renderImage(c, b) : Rc.renderCanvas(c, b), b.__popMaskObject(c)) : Rc.clear(c, b); b.__renderEvent(a); }; Rc.renderDrawableClear = function (a, b) { Rc.clear(a, b); }; Rc.renderImage = function (a, b) { null != a.__canvas && (b.element.removeChild(a.__canvas), (a.__canvas = null)); null == a.__image && ((a.__image = window.document.createElement('img')), (a.__image.crossOrigin = 'Anonymous'), (a.__image.src = a.__bitmapData.image.buffer.__srcImage.src), b.__initializeElement(a, a.__image)); b.__updateClip(a); b.__applyStyle(a, !0, !0, !0); }; var Wf = function () {}; h['openfl.display._internal.DOMDisplayObject'] = Wf; Wf.__name__ = 'openfl.display._internal.DOMDisplayObject'; Wf.clear = function (a, b) { null != a.__cacheBitmap && Rc.clear(a.__cacheBitmap, b); pf.clear(a, b); }; Wf.render = function (a, b) { null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && a.get_height(); var c = a.__graphics; if (null != a.stage && a.__worldVisible && a.__renderable && null != c) { C.render(c, b.__canvasRenderer); if (c.__softwareDirty || a.__worldAlphaChanged || a.__canvas != c.__canvas) null != c.__canvas ? a.__canvas != c.__canvas && (null != a.__canvas && b.element.removeChild(a.__canvas), (a.__canvas = c.__canvas), (a.__context = c.__context), b.__initializeElement(a, a.__canvas)) : pf.clear(a, b); if (null != a.__canvas) { b.__pushMaskObject(a); var d = a.__renderTransform; a.__renderTransform = c.__worldTransform; c.__transformDirty && ((c.__transformDirty = !1), (a.__renderTransformChanged = !0)); b.__updateClip(a); b.__applyStyle(a, !0, !0, !0); a.__renderTransform = d; b.__popMaskObject(a); } } else pf.clear(a, b); }; Wf.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && a.get_height(); var c = a.__graphics; if (null != a.stage && a.__worldVisible && a.__renderable && null != c) { C.render(c, b.__canvasRenderer); if (c.__softwareDirty || a.__worldAlphaChanged || a.__canvas != c.__canvas) null != c.__canvas ? a.__canvas != c.__canvas && (null != a.__canvas && b.element.removeChild(a.__canvas), (a.__canvas = c.__canvas), (a.__context = c.__context), b.__initializeElement(a, a.__canvas)) : pf.clear(a, b); if (null != a.__canvas) { b.__pushMaskObject(a); var d = a.__renderTransform; a.__renderTransform = c.__worldTransform; c.__transformDirty && ((c.__transformDirty = !1), (a.__renderTransformChanged = !0)); b.__updateClip(a); b.__applyStyle(a, !0, !0, !0); a.__renderTransform = d; b.__popMaskObject(a); } } else pf.clear(a, b); } else b.__renderDrawableClear(a), (a.__cacheBitmap.stage = a.stage), (c = a.__cacheBitmap), null != c.stage && c.__worldVisible && c.__renderable && null != c.__bitmapData && c.__bitmapData.__isValid && c.__bitmapData.readable ? (b.__pushMaskObject(c), null != c.__bitmapData.image.buffer.__srcImage ? Rc.renderImage(c, b) : Rc.renderCanvas(c, b), b.__popMaskObject(c)) : Rc.clear(c, b); b.__renderEvent(a); }; Wf.renderDrawableClear = function (a, b) { Wf.clear(a, b); }; var Im = function () {}; h['openfl.display._internal.DOMDisplayObjectContainer'] = Im; Im.__name__ = 'openfl.display._internal.DOMDisplayObjectContainer'; Im.renderDrawable = function (a, b) { for (var c = a.__removedChildren.iterator(); c.hasNext(); ) { var d = c.next(); null == d.stage && b.__renderDrawable(d); } for (c = a.__removedChildren.iterator(); c.hasNext(); ) (d = c.next()), null == d.stage && d.__cleanup(); a.__removedChildren.set_length(0); Wf.renderDrawable(a, b); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { b.__pushMaskObject(a); if (null != b.__stage) { c = 0; for (d = a.__children; c < d.length; ) { var f = d[c]; ++c; b.__renderDrawable(f); f.__renderDirty = !1; } a.__renderDirty = !1; } else for (c = 0, d = a.__children; c < d.length; ) (f = d[c]), ++c, b.__renderDrawable(f); b.__popMaskObject(a); } }; Im.renderDrawableClear = function (a, b) { for (var c = a.__removedChildren.iterator(); c.hasNext(); ) { var d = c.next(); null == d.stage && b.__renderDrawableClear(d); } for (c = a.__removedChildren.iterator(); c.hasNext(); ) (d = c.next()), null == d.stage && d.__cleanup(); a.__removedChildren.set_length(0); c = 0; for (a = a.__children; c < a.length; ) (d = a[c]), ++c, b.__renderDrawableClear(d); }; var pf = function () {}; h['openfl.display._internal.DOMShape'] = pf; pf.__name__ = 'openfl.display._internal.DOMShape'; pf.clear = function (a, b) { null != a.__canvas && (b.element.removeChild(a.__canvas), (a.__canvas = null), (a.__style = null)); }; pf.render = function (a, b) { var c = a.__graphics; if (null != a.stage && a.__worldVisible && a.__renderable && null != c) { C.render(c, b.__canvasRenderer); if (c.__softwareDirty || a.__worldAlphaChanged || a.__canvas != c.__canvas) null != c.__canvas ? a.__canvas != c.__canvas && (null != a.__canvas && b.element.removeChild(a.__canvas), (a.__canvas = c.__canvas), (a.__context = c.__context), b.__initializeElement(a, a.__canvas)) : pf.clear(a, b); if (null != a.__canvas) { b.__pushMaskObject(a); var d = a.__renderTransform; a.__renderTransform = c.__worldTransform; c.__transformDirty && ((c.__transformDirty = !1), (a.__renderTransformChanged = !0)); b.__updateClip(a); b.__applyStyle(a, !0, !0, !0); a.__renderTransform = d; b.__popMaskObject(a); } } else pf.clear(a, b); }; var Jm = function () {}; h['openfl.display._internal.DOMSimpleButton'] = Jm; Jm.__name__ = 'openfl.display._internal.DOMSimpleButton'; Jm.renderDrawable = function (a, b) { b.__pushMaskObject(a); for (var c = a.__previousStates.iterator(); c.hasNext(); ) { var d = c.next(); b.__renderDrawable(d); } a.__previousStates.set_length(0); null != a.__currentState && (a.__currentState.stage != a.stage && a.__currentState.__setStageReference(a.stage), b.__renderDrawable(a.__currentState)); b.__popMaskObject(a); b.__renderEvent(a); }; Jm.renderDrawableClear = function (a, b) { Wf.renderDrawableClear(a, b); }; var cc = function () {}; h['openfl.display._internal.DOMTextField'] = cc; cc.__name__ = 'openfl.display._internal.DOMTextField'; cc.clear = function (a, b) { null != a.__cacheBitmap && Rc.clear(a.__cacheBitmap, b); null != a.__div && (b.element.removeChild(a.__div), (a.__div = null), (a.__style = null)); }; cc.measureText = function (a) { var b = a.__textEngine, c = a.__div; null == c && ((c = window.document.createElement('div')), (c.innerHTML = b.text.replace(/\n/g, '
')), c.style.setProperty('font', Sb.getFont(a.__textFormat), null), c.style.setProperty('pointer-events', 'none', null), (c.style.position = 'absolute'), (c.style.top = '110%'), window.document.body.appendChild(c)); b.__measuredWidth = c.clientWidth; null == a.__div && (c.style.width = B.string(b.width - 4) + 'px'); b.__measuredHeight = c.clientHeight; null == a.__div && window.document.body.removeChild(c); }; cc.render = function (a, b) { var c = a.__textEngine; if (null != a.stage && a.__worldVisible && a.__renderable) { if (a.__dirty || a.__renderTransformChanged || null == a.__div) if ('' != c.text || c.background || c.border || 1 == c.type) { null == a.__div && ((a.__div = window.document.createElement('div')), b.__initializeElement(a, a.__div), a.__style.setProperty('outline', 'none', null), a.__div.addEventListener( 'input', function (b) { b.preventDefault(); a.get_htmlText() != a.__div.innerHTML && (a.set_htmlText(a.__div.innerHTML), (a.__dirty = !1), a.dispatchEvent(new ef('textInput', !1, !1, a.get_htmlText()))); }, !0 )); c.wordWrap ? a.__style.setProperty('word-wrap', 'break-word', null) : a.__style.setProperty('white-space', 'nowrap', null); a.__style.setProperty('overflow', 'hidden', null); c.selectable ? (a.__style.setProperty('cursor', 'text', null), a.__style.setProperty('-webkit-user-select', 'text', null), a.__style.setProperty('-moz-user-select', 'text', null), a.__style.setProperty('-ms-user-select', 'text', null), a.__style.setProperty('-o-user-select', 'text', null)) : a.__style.setProperty('cursor', 'inherit', null); a.__div.contentEditable = 1 == c.type; var d = a.__style; c.background ? d.setProperty( 'background-color', '#' + U.hex(c.backgroundColor & 16777215, 6), null ) : d.removeProperty('background-color'); var f = c.width, g = c.height, p = 1, l = a.__textFormat.size, k = l, n = a.__renderTransform; if (1 != n.a || 1 != n.d) n.a == n.d ? ((p = n.a), (n.a = n.d = 1)) : n.a > n.d ? ((p = n.a), (n.d /= n.a), (n.a = 1)) : ((p = n.d), (n.a /= n.d), (n.d = 1)), (k *= p), (f = Math.ceil(f * p)), (g = Math.ceil(g * p)); a.__textFormat.size = k; n = c.text; var h = 0; if (a.__isHTML) { for (var m = n; cc.__regexFont.match(m); ) { m = cc.__regexFont.matched(0); var t = ''; cc.__regexFace.match(m) && (t += "font-family:'" + cc.__getAttributeMatch(cc.__regexFace) + "';"); cc.__regexColor.match(m) && (t += 'color:#' + cc.__getAttributeMatch(cc.__regexColor) + ';'); if (cc.__regexSize.match(m)) { h = cc.__getAttributeMatch(cc.__regexSize); var u = A.cca(h, 0); h = parseFloat(h) * p; t += 'font-size:' + (43 == u || 45 == u ? k + h : h) + 'px;'; } n = U.replace(n, m, ""); m = cc.__regexFont.matchedRight(); } n = n.replace(cc.__regexCloseFont.r, ''); } else n = U.htmlEscape(n); n = U.replace(n, '

'); a.__div.innerHTML = n; k = /\n/g; n = a.__div.innerHTML.replace(k, '
'); a.__div.innerHTML = n; k = /\r/g; n = a.__div.innerHTML.replace(k, '
'); a.__div.innerHTML = n; d.setProperty('font', Sb.getFont(a.__textFormat), null); a.__textFormat.size = l; a.__textFormat.leading = p; d.setProperty('top', '3px', null); c.border ? (d.setProperty( 'border', 'solid 1px #' + U.hex(c.borderColor & 16777215, 6), null ), a.__renderTransform.translate(-1, -1), (a.__renderTransformChanged = !0), (a.__transformDirty = !0)) : '' != d.border && (d.removeProperty('border'), (a.__renderTransformChanged = !0)); d.setProperty('color', '#' + U.hex(a.__textFormat.color & 16777215, 6), null); d.setProperty('width', f + 'px', null); d.setProperty('height', g + 'px', null); switch (a.__textFormat.align) { case 0: d.setProperty('text-align', 'center', null); break; case 4: d.setProperty('text-align', 'right', null); break; default: d.setProperty('text-align', 'left', null); } a.__dirty = !1; } else null != a.__div && (b.element.removeChild(a.__div), (a.__div = null)); null != a.__div && ((c = b.__roundPixels), (b.__roundPixels = !0), b.__updateClip(a), b.__applyStyle(a, !0, !0, !0), (b.__roundPixels = c)); } else cc.clear(a, b); }; cc.renderDrawable = function (a, b) { a.__domRender = !0; b.__updateCacheBitmap(a, a.__forceCachedBitmapUpdate); a.__forceCachedBitmapUpdate = !1; a.__domRender = !1; if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { a.__renderedOnCanvasWhileOnDOM && ((a.__renderedOnCanvasWhileOnDOM = !1), a.__isHTML && null != a.__rawHtmlText && (a.__updateText(a.__rawHtmlText), (a.__dirty = !0), (a.__layoutDirty = !0), a.__renderDirty || ((a.__renderDirty = !0), a.__setParentRenderDirty()))); var c = a.__textEngine; if (null != a.stage && a.__worldVisible && a.__renderable) { if (a.__dirty || a.__renderTransformChanged || null == a.__div) if ('' != c.text || c.background || c.border || 1 == c.type) { null == a.__div && ((a.__div = window.document.createElement('div')), b.__initializeElement(a, a.__div), a.__style.setProperty('outline', 'none', null), a.__div.addEventListener( 'input', function (b) { b.preventDefault(); a.get_htmlText() != a.__div.innerHTML && (a.set_htmlText(a.__div.innerHTML), (a.__dirty = !1), a.dispatchEvent(new ef('textInput', !1, !1, a.get_htmlText()))); }, !0 )); c.wordWrap ? a.__style.setProperty('word-wrap', 'break-word', null) : a.__style.setProperty('white-space', 'nowrap', null); a.__style.setProperty('overflow', 'hidden', null); c.selectable ? (a.__style.setProperty('cursor', 'text', null), a.__style.setProperty('-webkit-user-select', 'text', null), a.__style.setProperty('-moz-user-select', 'text', null), a.__style.setProperty('-ms-user-select', 'text', null), a.__style.setProperty('-o-user-select', 'text', null)) : a.__style.setProperty('cursor', 'inherit', null); a.__div.contentEditable = 1 == c.type; var d = a.__style; c.background ? d.setProperty( 'background-color', '#' + U.hex(c.backgroundColor & 16777215, 6), null ) : d.removeProperty('background-color'); var f = c.width, g = c.height, p = 1, l = a.__textFormat.size, k = l, n = a.__renderTransform; if (1 != n.a || 1 != n.d) n.a == n.d ? ((p = n.a), (n.a = n.d = 1)) : n.a > n.d ? ((p = n.a), (n.d /= n.a), (n.a = 1)) : ((p = n.d), (n.a /= n.d), (n.d = 1)), (k *= p), (f = Math.ceil(f * p)), (g = Math.ceil(g * p)); a.__textFormat.size = k; n = c.text; var h = 0; if (a.__isHTML) { for (var m = n; cc.__regexFont.match(m); ) { m = cc.__regexFont.matched(0); var t = ''; cc.__regexFace.match(m) && (t += "font-family:'" + cc.__getAttributeMatch(cc.__regexFace) + "';"); cc.__regexColor.match(m) && (t += 'color:#' + cc.__getAttributeMatch(cc.__regexColor) + ';'); if (cc.__regexSize.match(m)) { h = cc.__getAttributeMatch(cc.__regexSize); var u = A.cca(h, 0); h = parseFloat(h) * p; t += 'font-size:' + (43 == u || 45 == u ? k + h : h) + 'px;'; } n = U.replace(n, m, ""); m = cc.__regexFont.matchedRight(); } n = n.replace(cc.__regexCloseFont.r, ''); } else n = U.htmlEscape(n); n = U.replace(n, '

'); a.__div.innerHTML = n; k = /\n/g; n = a.__div.innerHTML.replace(k, '
'); a.__div.innerHTML = n; k = /\r/g; n = a.__div.innerHTML.replace(k, '
'); a.__div.innerHTML = n; d.setProperty('font', Sb.getFont(a.__textFormat), null); a.__textFormat.size = l; a.__textFormat.leading = p; d.setProperty('top', '3px', null); c.border ? (d.setProperty( 'border', 'solid 1px #' + U.hex(c.borderColor & 16777215, 6), null ), a.__renderTransform.translate(-1, -1), (a.__renderTransformChanged = !0), (a.__transformDirty = !0)) : '' != d.border && (d.removeProperty('border'), (a.__renderTransformChanged = !0)); d.setProperty('color', '#' + U.hex(a.__textFormat.color & 16777215, 6), null); d.setProperty('width', f + 'px', null); d.setProperty('height', g + 'px', null); switch (a.__textFormat.align) { case 0: d.setProperty('text-align', 'center', null); break; case 4: d.setProperty('text-align', 'right', null); break; default: d.setProperty('text-align', 'left', null); } a.__dirty = !1; } else null != a.__div && (b.element.removeChild(a.__div), (a.__div = null)); null != a.__div && ((c = b.__roundPixels), (b.__roundPixels = !0), b.__updateClip(a), b.__applyStyle(a, !0, !0, !0), (b.__roundPixels = c)); } else cc.clear(a, b); } else b.__renderDrawableClear(a), (a.__cacheBitmap.stage = a.stage), (c = a.__cacheBitmap), null != c.stage && c.__worldVisible && c.__renderable && null != c.__bitmapData && c.__bitmapData.__isValid && c.__bitmapData.readable ? (b.__pushMaskObject(c), null != c.__bitmapData.image.buffer.__srcImage ? Rc.renderImage(c, b) : Rc.renderCanvas(c, b), b.__popMaskObject(c)) : Rc.clear(c, b); b.__renderEvent(a); }; cc.renderDrawableClear = function (a, b) { cc.clear(a, b); }; cc.__getAttributeMatch = function (a) { return null != a.matched(2) ? a.matched(2) : a.matched(3); }; var Dg = function () {}; h['openfl.display._internal.DOMTilemap'] = Dg; Dg.__name__ = 'openfl.display._internal.DOMTilemap'; Dg.clear = function (a, b) { null != a.__cacheBitmap && Rc.clear(a.__cacheBitmap, b); null != a.__canvas && (b.element.removeChild(a.__canvas), (a.__canvas = null), (a.__style = null)); }; Dg.render = function (a, b) { if (null != a.stage && a.__worldVisible && a.__renderable && 0 < a.__group.__tiles.length) { null == a.__canvas && ((a.__canvas = window.document.createElement('canvas')), (a.__context = a.__canvas.getContext('2d')), b.__initializeElement(a, a.__canvas)); a.__canvas.width = a.__width; a.__canvas.height = a.__height; b.__canvasRenderer.context = a.__context; var c = b.__canvasRenderer; if (a.__renderable && 0 != a.__group.__tiles.length) { var d = c.__getAlpha(a.__worldAlpha); if (!(0 >= d)) { var f = c.context; c.__setBlendMode(a.__worldBlendMode); c.__pushMaskObject(a); var g = fa.__pool.get(); g.setTo(0, 0, a.__width, a.__height); c.__pushMaskRect(g, a.__renderTransform); (c.__allowSmoothing && a.smoothing) || (f.imageSmoothingEnabled = !1); Vf.renderTileContainer( a.__group, c, a.__renderTransform, a.__tileset, c.__allowSmoothing && a.smoothing, a.tileAlphaEnabled, d, a.tileBlendModeEnabled, a.__worldBlendMode, null, null, g ); (c.__allowSmoothing && a.smoothing) || (f.imageSmoothingEnabled = !0); c.__popMaskRect(); c.__popMaskObject(a); fa.__pool.release(g); } } b.__canvasRenderer.context = null; b.__updateClip(a); b.__applyStyle(a, !0, !1, !0); } else Dg.clear(a, b); }; Dg.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && a.get_height(); var c = a.__graphics; if (null != a.stage && a.__worldVisible && a.__renderable && null != c) { C.render(c, b.__canvasRenderer); if (c.__softwareDirty || a.__worldAlphaChanged || a.__canvas != c.__canvas) null != c.__canvas ? a.__canvas != c.__canvas && (null != a.__canvas && b.element.removeChild(a.__canvas), (a.__canvas = c.__canvas), (a.__context = c.__context), b.__initializeElement(a, a.__canvas)) : pf.clear(a, b); if (null != a.__canvas) { b.__pushMaskObject(a); var d = a.__renderTransform; a.__renderTransform = c.__worldTransform; c.__transformDirty && ((c.__transformDirty = !1), (a.__renderTransformChanged = !0)); b.__updateClip(a); b.__applyStyle(a, !0, !0, !0); a.__renderTransform = d; b.__popMaskObject(a); } } else pf.clear(a, b); if ( null != a.stage && a.__worldVisible && a.__renderable && 0 < a.__group.__tiles.length ) { null == a.__canvas && ((a.__canvas = window.document.createElement('canvas')), (a.__context = a.__canvas.getContext('2d')), b.__initializeElement(a, a.__canvas)); a.__canvas.width = a.__width; a.__canvas.height = a.__height; b.__canvasRenderer.context = a.__context; c = b.__canvasRenderer; if ( a.__renderable && 0 != a.__group.__tiles.length && ((d = c.__getAlpha(a.__worldAlpha)), !(0 >= d)) ) { var f = c.context; c.__setBlendMode(a.__worldBlendMode); c.__pushMaskObject(a); var g = fa.__pool.get(); g.setTo(0, 0, a.__width, a.__height); c.__pushMaskRect(g, a.__renderTransform); (c.__allowSmoothing && a.smoothing) || (f.imageSmoothingEnabled = !1); Vf.renderTileContainer( a.__group, c, a.__renderTransform, a.__tileset, c.__allowSmoothing && a.smoothing, a.tileAlphaEnabled, d, a.tileBlendModeEnabled, a.__worldBlendMode, null, null, g ); (c.__allowSmoothing && a.smoothing) || (f.imageSmoothingEnabled = !0); c.__popMaskRect(); c.__popMaskObject(a); fa.__pool.release(g); } b.__canvasRenderer.context = null; b.__updateClip(a); b.__applyStyle(a, !0, !1, !0); } else Dg.clear(a, b); } else b.__renderDrawableClear(a), (a.__cacheBitmap.stage = a.stage), (c = a.__cacheBitmap), null != c.stage && c.__worldVisible && c.__renderable && null != c.__bitmapData && c.__bitmapData.__isValid && c.__bitmapData.readable ? (b.__pushMaskObject(c), null != c.__bitmapData.image.buffer.__srcImage ? Rc.renderImage(c, b) : Rc.renderCanvas(c, b), b.__popMaskObject(c)) : Rc.clear(c, b); b.__renderEvent(a); }; Dg.renderDrawableClear = function (a, b) { Dg.clear(a, b); }; var bh = function () {}; h['openfl.display._internal.DOMVideo'] = bh; bh.__name__ = 'openfl.display._internal.DOMVideo'; bh.clear = function (a, b) { a.__active && (b.element.removeChild(a.__stream.__video), (a.__active = !1)); }; bh.render = function (a, b) { null != a.stage && null != a.__stream && a.__worldVisible && a.__renderable ? (a.__active || (b.__initializeElement(a, a.__stream.__video), (a.__active = !0), (a.__dirty = !0)), a.__dirty && ((a.__stream.__video.width = a.__width | 0), (a.__stream.__video.height = a.__height | 0), (a.__dirty = !1)), b.__updateClip(a), b.__applyStyle(a, !0, !0, !0)) : bh.clear(a, b); }; bh.renderDrawable = function (a, b) { bh.render(a, b); b.__renderEvent(a); }; bh.renderDrawableClear = function (a, b) { Wf.renderDrawableClear(a, b); }; var Xf = function (a) { this.buffer = a; this.bPos = this.iPos = this.fPos = this.oPos = this.ffPos = this.iiPos = this.tsPos = 0; this.prev = ca.UNKNOWN; }; h['openfl.display._internal.DrawCommandReader'] = Xf; Xf.__name__ = 'openfl.display._internal.DrawCommandReader'; Xf.prototype = { buffer: null, bPos: null, iiPos: null, iPos: null, ffPos: null, fPos: null, oPos: null, prev: null, tsPos: null, advance: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } }, bool: function (a) { return this.buffer.b[this.bPos + a]; }, destroy: function () { this.buffer = null; this.reset(); }, fArr: function (a) { return this.buffer.ff[this.ffPos + a]; }, float: function (a) { return this.buffer.f[this.fPos + a]; }, iArr: function (a) { return this.buffer.ii[this.iiPos + a]; }, int: function (a) { return this.buffer.i[this.iPos + a]; }, obj: function (a) { return this.buffer.o[this.oPos + a]; }, readBeginBitmapFill: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.BEGIN_BITMAP_FILL; return this; }, readBeginFill: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.BEGIN_FILL; return this; }, readBeginGradientFill: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.BEGIN_GRADIENT_FILL; return this; }, readBeginShaderFill: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.BEGIN_SHADER_FILL; return this; }, readCubicCurveTo: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.CUBIC_CURVE_TO; return this; }, readCurveTo: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.CURVE_TO; return this; }, readDrawCircle: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.DRAW_CIRCLE; return this; }, readDrawEllipse: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.DRAW_ELLIPSE; return this; }, readDrawQuads: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.DRAW_QUADS; return this; }, readDrawRect: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.DRAW_RECT; return this; }, readDrawRoundRect: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.DRAW_ROUND_RECT; return this; }, readDrawTriangles: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.DRAW_TRIANGLES; return this; }, readEndFill: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.END_FILL; return this; }, readLineBitmapStyle: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.LINE_BITMAP_STYLE; return this; }, readLineGradientStyle: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.LINE_GRADIENT_STYLE; return this; }, readLineStyle: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.LINE_STYLE; return this; }, readLineTo: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.LINE_TO; return this; }, readMoveTo: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.MOVE_TO; return this; }, readOverrideBlendMode: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.OVERRIDE_BLEND_MODE; return this; }, readOverrideMatrix: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.OVERRIDE_MATRIX; return this; }, readWindingEvenOdd: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.WINDING_EVEN_ODD; return this; }, readWindingNonZero: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = ca.WINDING_NON_ZERO; return this; }, reset: function () { this.bPos = this.iPos = this.fPos = this.oPos = this.ffPos = this.iiPos = this.tsPos = 0; }, skip: function (a) { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; } this.prev = a; }, __class__: Xf }; var ca = (E['openfl.display._internal.DrawCommandType'] = { __ename__: 'openfl.display._internal.DrawCommandType', __constructs__: null, BEGIN_BITMAP_FILL: { _hx_name: 'BEGIN_BITMAP_FILL', _hx_index: 0, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, BEGIN_FILL: { _hx_name: 'BEGIN_FILL', _hx_index: 1, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, BEGIN_GRADIENT_FILL: { _hx_name: 'BEGIN_GRADIENT_FILL', _hx_index: 2, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, BEGIN_SHADER_FILL: { _hx_name: 'BEGIN_SHADER_FILL', _hx_index: 3, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, CUBIC_CURVE_TO: { _hx_name: 'CUBIC_CURVE_TO', _hx_index: 4, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, CURVE_TO: { _hx_name: 'CURVE_TO', _hx_index: 5, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, DRAW_CIRCLE: { _hx_name: 'DRAW_CIRCLE', _hx_index: 6, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, DRAW_ELLIPSE: { _hx_name: 'DRAW_ELLIPSE', _hx_index: 7, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, DRAW_QUADS: { _hx_name: 'DRAW_QUADS', _hx_index: 8, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, DRAW_RECT: { _hx_name: 'DRAW_RECT', _hx_index: 9, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, DRAW_ROUND_RECT: { _hx_name: 'DRAW_ROUND_RECT', _hx_index: 10, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, DRAW_TILES: { _hx_name: 'DRAW_TILES', _hx_index: 11, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, DRAW_TRIANGLES: { _hx_name: 'DRAW_TRIANGLES', _hx_index: 12, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, END_FILL: { _hx_name: 'END_FILL', _hx_index: 13, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, LINE_BITMAP_STYLE: { _hx_name: 'LINE_BITMAP_STYLE', _hx_index: 14, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, LINE_GRADIENT_STYLE: { _hx_name: 'LINE_GRADIENT_STYLE', _hx_index: 15, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, LINE_STYLE: { _hx_name: 'LINE_STYLE', _hx_index: 16, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, LINE_TO: { _hx_name: 'LINE_TO', _hx_index: 17, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, MOVE_TO: { _hx_name: 'MOVE_TO', _hx_index: 18, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, OVERRIDE_BLEND_MODE: { _hx_name: 'OVERRIDE_BLEND_MODE', _hx_index: 19, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, OVERRIDE_MATRIX: { _hx_name: 'OVERRIDE_MATRIX', _hx_index: 20, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, WINDING_EVEN_ODD: { _hx_name: 'WINDING_EVEN_ODD', _hx_index: 21, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, WINDING_NON_ZERO: { _hx_name: 'WINDING_NON_ZERO', _hx_index: 22, __enum__: 'openfl.display._internal.DrawCommandType', toString: w }, UNKNOWN: { _hx_name: 'UNKNOWN', _hx_index: 23, __enum__: 'openfl.display._internal.DrawCommandType', toString: w } }); ca.__constructs__ = [ ca.BEGIN_BITMAP_FILL, ca.BEGIN_FILL, ca.BEGIN_GRADIENT_FILL, ca.BEGIN_SHADER_FILL, ca.CUBIC_CURVE_TO, ca.CURVE_TO, ca.DRAW_CIRCLE, ca.DRAW_ELLIPSE, ca.DRAW_QUADS, ca.DRAW_RECT, ca.DRAW_ROUND_RECT, ca.DRAW_TILES, ca.DRAW_TRIANGLES, ca.END_FILL, ca.LINE_BITMAP_STYLE, ca.LINE_GRADIENT_STYLE, ca.LINE_STYLE, ca.LINE_TO, ca.MOVE_TO, ca.OVERRIDE_BLEND_MODE, ca.OVERRIDE_MATRIX, ca.WINDING_EVEN_ODD, ca.WINDING_NON_ZERO, ca.UNKNOWN ]; var Gh = function () {}; h['openfl.display._internal.FlashRenderer'] = Gh; Gh.__name__ = 'openfl.display._internal.FlashRenderer'; Gh.register = function (a) { null == Gh.instances && ((Gh.instances = px.toObjectMap(null, !0)), Ma.get_current().stage.addEventListener('enterFrame', Gh.render, !1, -2147483648)); Gh.instances.set(a, !0); }; Gh.render = function (a) { for (a = Gh.instances.keys(); a.hasNext(); ) a.next().__renderFlash(); }; var bp = function () {}; h['openfl.display._internal.IDisplayObject'] = bp; bp.__name__ = 'openfl.display._internal.IDisplayObject'; bp.__isInterface__ = !0; bp.prototype = { __renderFlash: null, __class__: bp }; var hi = function () {}; h['openfl.display._internal.FlashTilemap'] = hi; hi.__name__ = 'openfl.display._internal.FlashTilemap'; hi.render = function (a) {}; hi.renderTileContainer = function (a, b, c, d, f, g, p, l, k, n, h, m) {}; var ai = function (a, b, c, d, f, g, p) { null == p && (p = 0.05); null == g && (g = !1); Yi.call(this, a, b, c, d, f, g, p); this.p_perm = []; for (b = 0; 512 > b; ) (c = b++), (this.p_perm[c] = ai.P[c & 255]); this.base_factor = 0.03125; this.setSeed(a); }; h['openfl.display._internal.PerlinNoise'] = ai; ai.__name__ = 'openfl.display._internal.PerlinNoise'; ai.__super__ = Yi; ai.prototype = r(Yi.prototype, { p_perm: null, x_offset: null, y_offset: null, z_offset: null, base_factor: null, fill: function (a, b, c, d) { var e = a.width, g = a.height, p = this.octaves, l = this.octaves_frequencies, k = this.octaves_persistences, n = 1 == (1 & this.channels), h = 2 == (2 & this.channels), m = 4 == (4 & this.channels), t = 0; n && ++t; h && ++t; m && ++t; var u = this.grayscale, r = (this.stitch_threshold * e) | 0, q = (this.stitch_threshold * g) | 0, w = b * this.base_factor + this.x_offset; c = c * this.base_factor + this.y_offset; d = d * this.base_factor + this.z_offset; for (var x = 0; x < g; ) { var z = x++; b = w; for (var E = 0, I = e; E < I; ) { for (var H = E++, C = 0, A = 0, ra = 0, D = 0, F = p; D < F; ) { var B = D++, G = l[B]; B = k[B]; C += this.noise(b * G, c * G, d * G) * B; u || (1 < t && (A += this.noise((b + 1) * G, (c + 1) * G, d * G) * B), 2 < t && (ra += this.noise((b + 2) * G, (c + 2) * G, d * G) * B)); } D = 0; u ? (D = this.color(C, C, C)) : n && h && m ? (D = this.color(C, A, ra)) : n && h ? (D = this.color(C, A, null)) : n && m ? (D = this.color(C, null, A)) : h && m ? (D = this.color(null, C, A)) : n ? (D = this.color(C, null, null)) : h ? (D = this.color(null, C, null)) : m && (D = this.color(null, null, C)); this.stitch && (D = this.stitching(a, D, H, z, r, q, e, g)); a.setPixel32(H, z, D); b += this.base_factor; } c += this.base_factor; } }, noise: function (a, b, c) { var d = a - (a % 1), f = b - (b % 1), g = c - (c % 1); a -= d; b -= f; c -= g; var p = (d | 0) & 255, l = (f | 0) & 255, k = (g | 0) & 255; g = this.fade(a); f = this.fade(b); d = this.fade(c); var n = this.p_perm[p] + l, h = this.p_perm[n] + k; n = this.p_perm[n + 1] + k; l = this.p_perm[p + 1] + l; p = this.p_perm[l] + k; var m = this.p_perm[l + 1] + k, t = a - 1, u = b - 1, r = c - 1, q = this.p_perm[m + 1] & 15; k = (0 == (q & 1) ? (8 > q ? t : u) : 8 > q ? -t : -u) + (0 == (q & 2) ? (4 > q ? u : 12 == q ? t : r) : 4 > q ? -u : 14 == q ? -t : -r); q = this.p_perm[n + 1] & 15; l = (0 == (q & 1) ? (8 > q ? a : u) : 8 > q ? -a : -u) + (0 == (q & 2) ? (4 > q ? u : 12 == q ? a : r) : 4 > q ? -u : 14 == q ? -a : -r); q = this.p_perm[p + 1] & 15; var w = (0 == (q & 1) ? (8 > q ? t : b) : 8 > q ? -t : -b) + (0 == (q & 2) ? (4 > q ? b : 12 == q ? t : r) : 4 > q ? -b : 14 == q ? -t : -r); q = this.p_perm[h + 1] & 15; r = (0 == (q & 1) ? (8 > q ? a : b) : 8 > q ? -a : -b) + (0 == (q & 2) ? (4 > q ? b : 12 == q ? a : r) : 4 > q ? -b : 14 == q ? -a : -r); q = this.p_perm[m] & 15; m = (0 == (q & 1) ? (8 > q ? t : u) : 8 > q ? -t : -u) + (0 == (q & 2) ? (4 > q ? u : 12 == q ? t : c) : 4 > q ? -u : 14 == q ? -t : -c); q = this.p_perm[n] & 15; n = (0 == (q & 1) ? (8 > q ? a : u) : 8 > q ? -a : -u) + (0 == (q & 2) ? (4 > q ? u : 12 == q ? a : c) : 4 > q ? -u : 14 == q ? -a : -c); q = this.p_perm[p] & 15; p = (0 == (q & 1) ? (8 > q ? t : b) : 8 > q ? -t : -b) + (0 == (q & 2) ? (4 > q ? b : 12 == q ? t : c) : 4 > q ? -b : 14 == q ? -t : -c); q = this.p_perm[h] & 15; a = (0 == (q & 1) ? (8 > q ? a : b) : 8 > q ? -a : -b) + (0 == (q & 2) ? (4 > q ? b : 12 == q ? a : c) : 4 > q ? -b : 14 == q ? -a : -c); r += g * (w - r); a += g * (p - a); a += f * (n + g * (m - n) - a); return a + d * (r + f * (l + g * (k - l) - r) - a); }, setSeed: function (a) { this.x_offset = a = (16807 * a) % 2147483647 | 0; this.y_offset = a = (16807 * a) % 2147483647 | 0; this.z_offset = (16807 * a) % 2147483647 | 0; }, __class__: ai }); var Ug = function (a, b, c, d, f, g, p) { null == p && (p = !1); null == g && (g = !1); null == f && (f = !1); null == d && (d = 0); null == c && (c = 2); null == b && (b = 5); null == a && (a = 0); this.wrap = a; this.filter = b; this.mipfilter = c; this.lodBias = d; this.ignoreSampler = f; this.centroid = g; this.textureAlpha = p; }; h['openfl.display._internal.SamplerState'] = Ug; Ug.__name__ = 'openfl.display._internal.SamplerState'; Ug.prototype = { centroid: null, filter: null, ignoreSampler: null, lodBias: null, mipfilter: null, mipmapGenerated: null, textureAlpha: null, wrap: null, clone: function () { var a = new Ug( this.wrap, this.filter, this.mipfilter, this.lodBias, this.ignoreSampler, this.centroid, this.textureAlpha ); a.mipmapGenerated = this.mipmapGenerated; return a; }, copyFrom: function (a) { null == a || a.ignoreSampler || ((this.wrap = a.wrap), (this.filter = a.filter), (this.mipfilter = a.mipfilter), (this.lodBias = a.lodBias), (this.centroid = a.centroid), (this.textureAlpha = a.textureAlpha)); }, equals: function (a) { return null == a ? !1 : this.wrap == a.wrap && this.filter == a.filter && this.mipfilter == a.mipfilter && this.lodBias == a.lodBias ? this.textureAlpha == a.textureAlpha : !1; }, __class__: Ug }; var Mm = function () { this.inputRefs = []; this.inputFilter = []; this.inputMipFilter = []; this.inputs = []; this.inputWrap = []; this.overrideIntNames = []; this.overrideIntValues = []; this.overrideFloatNames = []; this.overrideFloatValues = []; this.overrideBoolNames = []; this.overrideBoolValues = []; this.paramLengths = []; this.paramPositions = []; this.paramRefs_Bool = []; this.paramRefs_Float = []; this.paramRefs_Int = []; this.paramTypes = []; }; h['openfl.display._internal.ShaderBuffer'] = Mm; Mm.__name__ = 'openfl.display._internal.ShaderBuffer'; Mm.prototype = { inputCount: null, inputRefs: null, inputFilter: null, inputMipFilter: null, inputs: null, inputWrap: null, overrideBoolCount: null, overrideBoolNames: null, overrideBoolValues: null, overrideFloatCount: null, overrideFloatNames: null, overrideFloatValues: null, overrideIntCount: null, overrideIntNames: null, overrideIntValues: null, paramBoolCount: null, paramCount: null, paramData: null, paramDataBuffer: null, paramDataLength: null, paramFloatCount: null, paramIntCount: null, paramLengths: null, paramPositions: null, paramRefs_Bool: null, paramRefs_Float: null, paramRefs_Int: null, paramTypes: null, shader: null, addBoolOverride: function (a, b) { this.overrideBoolNames[this.overrideBoolCount] = a; this.overrideBoolValues[this.overrideBoolCount] = b; this.overrideBoolCount++; }, addFloatOverride: function (a, b) { this.overrideFloatNames[this.overrideFloatCount] = a; this.overrideFloatValues[this.overrideFloatCount] = b; this.overrideFloatCount++; }, addIntOverride: function (a, b) { this.overrideIntNames[this.overrideIntCount] = a; this.overrideIntValues[this.overrideIntCount] = b; this.overrideIntCount++; }, clearOverride: function () { this.overrideBoolCount = this.overrideFloatCount = this.overrideIntCount = 0; }, update: function (a) { this.paramIntCount = this.paramFloatCount = this.paramDataLength = this.paramCount = this.paramBoolCount = this.overrideBoolCount = this.overrideFloatCount = this.overrideIntCount = this.inputCount = 0; this.shader = null; if (null != a) { a.__init(); this.inputCount = a.__inputBitmapData.length; for (var b, c = 0, d = this.inputCount; c < d; ) { var f = c++; b = a.__inputBitmapData[f]; this.inputs[f] = b.input; this.inputFilter[f] = b.filter; this.inputMipFilter[f] = b.mipFilter; this.inputRefs[f] = b; this.inputWrap[f] = b.wrap; } b = a.__paramBool.length; var g = a.__paramFloat.length, p = a.__paramInt.length; this.paramCount = b + g + p; this.paramBoolCount = b; this.paramFloatCount = g; this.paramIntCount = p; var l = 0; c = 0; for (d = b; c < d; ) { f = c++; var k = a.__paramBool[f]; this.paramPositions[l] = this.paramDataLength; var n = null != k.value ? k.value.length : 0; this.paramLengths[l] = n; this.paramDataLength += n; this.paramTypes[l] = 0; this.paramRefs_Bool[f] = k; ++l; } c = 0; for (d = g; c < d; ) (f = c++), (k = a.__paramFloat[f]), (this.paramPositions[l] = this.paramDataLength), (n = null != k.value ? k.value.length : 0), (this.paramLengths[l] = n), (this.paramDataLength += n), (this.paramTypes[l] = 1), (this.paramRefs_Float[f] = k), ++l; c = 0; for (d = p; c < d; ) (f = c++), (k = a.__paramInt[f]), (this.paramPositions[l] = this.paramDataLength), (n = null != k.value ? k.value.length : 0), (this.paramLengths[l] = n), (this.paramDataLength += n), (this.paramTypes[l] = 2), (this.paramRefs_Int[f] = k), ++l; if (0 < this.paramDataLength) if (null == this.paramData) { c = this.paramDataLength; var h = (k = l = p = d = null); this.paramData = c = null != c ? new Float32Array(c) : null != d ? new Float32Array(d) : null != p ? new Float32Array(p.__array) : null != l ? new Float32Array(l) : null != k ? null == h ? new Float32Array(k, 0) : new Float32Array(k, 0, h) : null; } else this.paramDataLength > this.paramData.length && ((c = this.paramDataLength), (h = k = l = p = d = null), (c = null != c ? new Float32Array(c) : null != d ? new Float32Array(d) : null != p ? new Float32Array(p.__array) : null != l ? new Float32Array(l) : null != k ? null == h ? new Float32Array(k, 0) : new Float32Array(k, 0, h) : null), c.set(this.paramData), (this.paramData = c)); c = h = k = l = p = 0; for (d = this.paramCount; c < d; ) if (((f = c++), (n = this.paramLengths[f]), f < b)) { f = this.paramRefs_Bool[p]; ++p; for (var m = 0; m < n; ) { var t = m++; this.paramData[h] = f.value[t] ? 1 : 0; ++h; } } else if (f < b + g) for (f = this.paramRefs_Float[l], ++l, m = 0; m < n; ) (t = m++), (this.paramData[h] = f.value[t]), ++h; else for (f = this.paramRefs_Int[k], ++k, m = 0; m < n; ) (t = m++), (this.paramData[h] = f.value[t]), ++h; this.shader = a; } }, __class__: Mm }; var $b = function (a, b, c) { this.profile = 3; this.driverInfo = 'OpenGL (Direct blitting)'; this.backBufferHeight = this.backBufferWidth = 0; db.call(this); this.__stage = a; this.__contextState = b; this.__stage3D = c; this.__context = a.window.context; this.gl = this.__context.webgl; null == this.__contextState && (this.__contextState = new bk()); this.__state = new bk(); var d; this.__vertexConstants = a = new Float32Array(512); this.__fragmentConstants = a = new Float32Array(512); var f = null; a = [1, 1, 1, 1]; var g = (d = c = b = null); this.__positionScale = a = null != f ? new Float32Array(f) : null != a ? new Float32Array(a) : null != b ? new Float32Array(b.__array) : null != c ? new Float32Array(c) : null != d ? null == g ? new Float32Array(d, 0) : new Float32Array(d, 0, g) : null; this.__programs = new qa(); -1 == $b.__glMaxViewportDims && ($b.__glMaxViewportDims = this.gl.getParameter(this.gl.MAX_VIEWPORT_DIMS)); this.maxBackBufferHeight = this.maxBackBufferWidth = $b.__glMaxViewportDims; -1 == $b.__glMaxTextureMaxAnisotropy && ((a = this.gl.getExtension('EXT_texture_filter_anisotropic')), (null != a && Object.prototype.hasOwnProperty.call(a, 'MAX_TEXTURE_MAX_ANISOTROPY_EXT')) || (a = this.gl.getExtension('MOZ_EXT_texture_filter_anisotropic')), (null != a && Object.prototype.hasOwnProperty.call(a, 'MAX_TEXTURE_MAX_ANISOTROPY_EXT')) || (a = this.gl.getExtension('WEBKIT_EXT_texture_filter_anisotropic')), null != a ? (($b.__glTextureMaxAnisotropy = a.TEXTURE_MAX_ANISOTROPY_EXT), ($b.__glMaxTextureMaxAnisotropy = this.gl.getParameter( a.MAX_TEXTURE_MAX_ANISOTROPY_EXT ))) : (($b.__glTextureMaxAnisotropy = 0), ($b.__glMaxTextureMaxAnisotropy = 0))); -1 == $b.__glDepthStencil && ($b.__glDepthStencil = this.gl.DEPTH_STENCIL); -1 == $b.__glMemoryTotalAvailable && ((a = this.gl.getExtension('NVX_gpu_memory_info')), null != a && (($b.__glMemoryTotalAvailable = a.GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX), ($b.__glMemoryCurrentAvailable = a.GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX))); null == $b.__driverInfo && ((a = this.gl.getParameter(this.gl.VENDOR)), (b = this.gl.getParameter(this.gl.VERSION)), (c = this.gl.getParameter(this.gl.RENDERER)), (d = this.gl.getParameter(this.gl.SHADING_LANGUAGE_VERSION)), ($b.__driverInfo = 'OpenGL Vendor=' + a + ' Version=' + b + ' Renderer=' + c + ' GLSL=' + d)); this.driverInfo = $b.__driverInfo; this.__quadIndexBufferElements = 16383; f = this.__quadIndexBufferCount = 6 * this.__quadIndexBufferElements; g = d = c = b = a = null; a = null != f ? new Uint16Array(f) : null != a ? new Uint16Array(a) : null != b ? new Uint16Array(b.__array) : null != c ? new Uint16Array(c) : null != d ? null == g ? new Uint16Array(d, 0) : new Uint16Array(d, 0, g) : null; d = c = b = 0; for (g = this.__quadIndexBufferElements; d < g; ) d++, (a[b] = c), (a[b + 1] = c + 1), (a[b + 2] = c + 2), (a[b + 3] = c + 2), (a[b + 4] = c + 1), (a[b + 5] = c + 3), (b += 6), (c += 4); this.__quadIndexBuffer = this.createIndexBuffer(this.__quadIndexBufferCount); this.__quadIndexBuffer.uploadFromTypedArray(a); }; h['openfl.display3D.Context3D'] = $b; $b.__name__ = 'openfl.display3D.Context3D'; $b.__super__ = db; $b.prototype = r(db.prototype, { backBufferHeight: null, backBufferWidth: null, driverInfo: null, maxBackBufferHeight: null, maxBackBufferWidth: null, profile: null, gl: null, __backBufferAntiAlias: null, __backBufferTexture: null, __backBufferWantsBestResolution: null, __backBufferWantsBestResolutionOnBrowserZoom: null, __cleared: null, __context: null, __contextState: null, __renderStage3DProgram: null, __enableErrorChecking: null, __fragmentConstants: null, __frontBufferTexture: null, __positionScale: null, __present: null, __programs: null, __quadIndexBuffer: null, __quadIndexBufferCount: null, __quadIndexBufferElements: null, __stage: null, __stage3D: null, __state: null, __vertexConstants: null, clear: function (a, b, c, d, f, g, p) { null == p && (p = 7); null == g && (g = 0); null == f && (f = 1); null == d && (d = 1); null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.__flushGLFramebuffer(); this.__flushGLViewport(); var e = 0; if (0 != (p & 1)) { null == this.__state.renderToTexture && (this.__stage.context3D != this || this.__stage.__renderer.__cleared || (this.__stage.__renderer.__cleared = !0), (this.__cleared = !0)); e |= this.gl.COLOR_BUFFER_BIT; if ( 1 != this.__contextState.colorMaskRed || 1 != this.__contextState.colorMaskGreen || 1 != this.__contextState.colorMaskBlue || 1 != this.__contextState.colorMaskAlpha ) this.gl.colorMask(!0, !0, !0, !0), (this.__contextState.colorMaskRed = !0), (this.__contextState.colorMaskGreen = !0), (this.__contextState.colorMaskBlue = !0), (this.__contextState.colorMaskAlpha = !0); this.gl.clearColor(a, b, c, d); } 0 != (p & 2) && ((e |= this.gl.DEPTH_BUFFER_BIT), 1 != this.__contextState.depthMask && (this.gl.depthMask(!0), (this.__contextState.depthMask = !0)), this.gl.clearDepth(f)); 0 != (p & 4) && ((e |= this.gl.STENCIL_BUFFER_BIT), 255 != this.__contextState.stencilWriteMask && (this.gl.stencilMask(255), (this.__contextState.stencilWriteMask = 255)), this.gl.clearStencil(g), (this.__contextState.stencilWriteMask = 255)); 0 != e && (this.__setGLScissorTest(!1), this.gl.clear(e)); }, configureBackBuffer: function (a, b, c, d, f, g) { null == g && (g = !1); null == f && (f = !1); null == d && (d = !0); if (null == this.__stage3D) (this.backBufferWidth = a), (this.backBufferHeight = b), (this.__backBufferAntiAlias = c), (this.__state.backBufferEnableDepthAndStencil = d), (this.__backBufferWantsBestResolution = f), (this.__backBufferWantsBestResolutionOnBrowserZoom = g); else { if ( null == this.__backBufferTexture || this.backBufferWidth != a || this.backBufferHeight != b ) { null != this.__backBufferTexture && this.__backBufferTexture.dispose(); null != this.__frontBufferTexture && this.__frontBufferTexture.dispose(); this.__backBufferTexture = this.createRectangleTexture(a, b, 1, !0); this.__frontBufferTexture = this.createRectangleTexture(a, b, 1, !0); null == this.__stage3D.__vertexBuffer && (this.__stage3D.__vertexBuffer = this.createVertexBuffer(4, 5)); var e = yb.toFloatVector(null, null, null, [ a, b, 0, 1, 1, 0, b, 0, 0, 1, a, 0, 0, 1, 0, 0, 0, 0, 0, 0 ]); this.__stage3D.__vertexBuffer.uploadFromVector(e, 0, 20); null == this.__stage3D.__indexBuffer && ((this.__stage3D.__indexBuffer = this.createIndexBuffer(6)), (e = yb.toIntVector(null, null, null, [0, 1, 2, 2, 1, 3])), this.__stage3D.__indexBuffer.uploadFromVector(e, 0, 6)); } this.backBufferWidth = a; this.backBufferHeight = b; this.__backBufferAntiAlias = c; this.__state.backBufferEnableDepthAndStencil = d; this.__backBufferWantsBestResolution = f; this.__backBufferWantsBestResolutionOnBrowserZoom = g; this.__state.__primaryGLFramebuffer = this.__backBufferTexture.__getGLFramebuffer( d, c, 0 ); this.__frontBufferTexture.__getGLFramebuffer(d, c, 0); } }, createCubeTexture: function (a, b, c, d) { null == d && (d = 0); return new Zi(this, a, b, c, d); }, createIndexBuffer: function (a, b) { null == b && (b = 1); return new cp(this, a, b); }, createProgram: function (a) { null == a && (a = 0); return new dp(this, a); }, createRectangleTexture: function (a, b, c, d) { return new ck(this, a, b, dk.toString(c), d); }, createTexture: function (a, b, c, d, f) { null == f && (f = 0); return new ii(this, a, b, c, d, f); }, createVertexBuffer: function (a, b, c) { null == c && (c = 1); return new ep(this, a, b, Kw.toString(c)); }, createVideoTexture: function () { return new en(this); }, dispose: function (a) { this.gl = null; this.__dispose(); }, drawToBitmapData: function (a, b, c) { if (null != a) if ( ((b = null != b ? b.__toLimeRectangle() : new Qd(0, 0, this.backBufferWidth, this.backBufferHeight)), (c = null != c ? c.__toLimeVector2() : new Xd()), this.__stage.context3D == this) ) { if (null != this.__stage.window) { if (null != this.__stage3D) { var d = -this.__stage3D.get_x() | 0, f = -this.__stage3D.get_y() | 0; c.x = d; c.y = f; } f = this.__stage.window.readPixels(); a.image.copyPixels(f, b, c); } } else if (null != this.__backBufferTexture) { d = this.__state.renderToTexture; this.setRenderToBackBuffer(); this.__flushGLFramebuffer(); this.__flushGLViewport(); f = this.backBufferWidth * this.backBufferHeight * 4; var g = (f = null != f ? new Uint8Array(f) : null); f = this.gl; f.readPixels( 0, 0, this.backBufferWidth, this.backBufferHeight, this.__backBufferTexture.__format, this.gl.UNSIGNED_BYTE, g ); f = new Fb(new Rf(g, this.backBufferWidth, this.backBufferHeight, 32, 2)); a.image.copyPixels(f, b, c); null != d && this.setRenderToTexture( d, this.__state.renderToTextureDepthStencil, this.__state.renderToTextureAntiAlias, this.__state.renderToTextureSurfaceSelector ); } }, drawTriangles: function (a, b, c) { null == c && (c = -1); null == b && (b = 0); null == this.__state.renderToTexture && (this.__stage.context3D != this || this.__stage.__renderer.__cleared ? this.__cleared || this.clear(0, 0, 0, 0, 1, 0, 1) : this.__stage.__renderer.__clear()); this.__flushGL(); null != this.__state.program && this.__state.program.__flush(); c = -1 == c ? a.__numIndices : 3 * c; this.__bindGLElementArrayBuffer(a.__id); this.gl.drawElements(this.gl.TRIANGLES, c, this.gl.UNSIGNED_SHORT, 2 * b); }, present: function () { this.setRenderToBackBuffer(); if (null != this.__stage3D && null != this.__backBufferTexture) { this.__cleared || this.clear(0, 0, 0, 0, 1, 0, 1); var a = this.__backBufferTexture; this.__backBufferTexture = this.__frontBufferTexture; this.__frontBufferTexture = a; this.__state.__primaryGLFramebuffer = this.__backBufferTexture.__getGLFramebuffer( this.__state.backBufferEnableDepthAndStencil, this.__backBufferAntiAlias, 0 ); this.__cleared = !1; } this.__present = !0; }, setBlendFactors: function (a, b) { this.setBlendFactorsSeparate(a, b, a, b); }, setBlendFactorsSeparate: function (a, b, c, d) { this.__state.blendSourceRGBFactor = a; this.__state.blendDestinationRGBFactor = b; this.__state.blendSourceAlphaFactor = c; this.__state.blendDestinationAlphaFactor = d; this.__setGLBlendEquation(this.gl.FUNC_ADD); }, setColorMask: function (a, b, c, d) { this.__state.colorMaskRed = a; this.__state.colorMaskGreen = b; this.__state.colorMaskBlue = c; this.__state.colorMaskAlpha = d; }, setCulling: function (a) { this.__state.culling = a; }, setDepthTest: function (a, b) { this.__state.depthMask = a; this.__state.depthCompareMode = b; }, setProgram: function (a) { this.__state.program = a; this.__state.shader = null; if (null != a) for (var b = 0, c = a.__samplerStates.length; b < c; ) { var d = b++; null == this.__state.samplerStates[d] ? (this.__state.samplerStates[d] = a.__samplerStates[d].clone()) : this.__state.samplerStates[d].copyFrom(a.__samplerStates[d]); } }, setProgramConstantsFromByteArray: function (a, b, c, d, f) { if ( 0 != c && null != this.__state.program && (null == this.__state.program || 1 != this.__state.program.__format) ) { -1 == c && (c = (zb.get_length(d) >>> 2) - f); var e = (a = 1 == a) ? this.__vertexConstants : this.__fragmentConstants, p = zb.toBytes(d), l = 0; d = zb.get_length(d); null == l && (l = 0); d = null == l ? new Float32Array(p.b.bufferValue) : null == d ? new Float32Array(p.b.bufferValue, l) : new Float32Array(p.b.bufferValue, l, d); p = 4 * b; f = (Ba.toFloat(f) / Ba.toFloat(4)) | 0; l = 0; for (var k = 4 * c; l < k; ) { var n = l++; e[p + n] = d[f + n]; } null != this.__state.program && this.__state.program.__markDirty(a, b, c); } }, setProgramConstantsFromMatrix: function (a, b, c, d) { null == d && (d = !1); if (null != this.__state.program && 1 == this.__state.program.__format) this.__flushGLProgram(), (a = new Float32Array(16)), (a[0] = c.rawData.get(0)), (a[1] = c.rawData.get(1)), (a[2] = c.rawData.get(2)), (a[3] = c.rawData.get(3)), (a[4] = c.rawData.get(4)), (a[5] = c.rawData.get(5)), (a[6] = c.rawData.get(6)), (a[7] = c.rawData.get(7)), (a[8] = c.rawData.get(8)), (a[9] = c.rawData.get(9)), (a[10] = c.rawData.get(10)), (a[11] = c.rawData.get(11)), (a[12] = c.rawData.get(12)), (a[13] = c.rawData.get(13)), (a[14] = c.rawData.get(14)), (a[15] = c.rawData.get(15)), bc.uniformMatrix4fv(this.gl, b, d, a); else { var e = (a = 1 == a) ? this.__vertexConstants : this.__fragmentConstants; c = c.rawData; var g = 4 * b; d ? ((e[g++] = c.get(0)), (e[g++] = c.get(4)), (e[g++] = c.get(8)), (e[g++] = c.get(12)), (e[g++] = c.get(1)), (e[g++] = c.get(5)), (e[g++] = c.get(9)), (e[g++] = c.get(13)), (e[g++] = c.get(2)), (e[g++] = c.get(6)), (e[g++] = c.get(10)), (e[g++] = c.get(14)), (e[g++] = c.get(3)), (e[g++] = c.get(7)), (e[g++] = c.get(11))) : ((e[g++] = c.get(0)), (e[g++] = c.get(1)), (e[g++] = c.get(2)), (e[g++] = c.get(3)), (e[g++] = c.get(4)), (e[g++] = c.get(5)), (e[g++] = c.get(6)), (e[g++] = c.get(7)), (e[g++] = c.get(8)), (e[g++] = c.get(9)), (e[g++] = c.get(10)), (e[g++] = c.get(11)), (e[g++] = c.get(12)), (e[g++] = c.get(13)), (e[g++] = c.get(14))); e[g++] = c.get(15); null != this.__state.program && this.__state.program.__markDirty(a, b, 4); } }, setProgramConstantsFromVector: function (a, b, c, d) { null == d && (d = -1); if (0 != d && (null == this.__state.program || 1 != this.__state.program.__format)) { -1 == d && (d = c.get_length() >> 2); for ( var e = (a = 1 == a) ? this.__vertexConstants : this.__fragmentConstants, g = 0, p = 4 * b, l = 0, k = d; l < k; ) l++, (e[p++] = c.get(g++)), (e[p++] = c.get(g++)), (e[p++] = c.get(g++)), (e[p++] = c.get(g++)); null != this.__state.program && this.__state.program.__markDirty(a, b, d); } }, setRenderToBackBuffer: function () { this.__state.renderToTexture = null; }, setRenderToTexture: function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); null == b && (b = !1); this.__state.renderToTexture = a; this.__state.renderToTextureDepthStencil = b; this.__state.renderToTextureAntiAlias = c; this.__state.renderToTextureSurfaceSelector = d; }, setSamplerStateAt: function (a, b, c, d) { null == this.__state.samplerStates[a] && (this.__state.samplerStates[a] = new Ug()); a = this.__state.samplerStates[a]; a.wrap = b; a.filter = c; a.mipfilter = d; }, setScissorRectangle: function (a) { null != a ? ((this.__state.scissorEnabled = !0), this.__state.scissorRectangle.copyFrom(a)) : (this.__state.scissorEnabled = !1); }, setStencilActions: function (a, b, c, d, f) { null == f && (f = 5); null == d && (d = 5); null == c && (c = 5); null == b && (b = 0); null == a && (a = 2); this.__state.stencilTriangleFace = a; this.__state.stencilCompareMode = b; this.__state.stencilPass = c; this.__state.stencilDepthFail = d; this.__state.stencilFail = f; }, setStencilReferenceValue: function (a, b, c) { null == c && (c = 255); null == b && (b = 255); this.__state.stencilReferenceValue = a; this.__state.stencilReadMask = b; this.__state.stencilWriteMask = c; }, setTextureAt: function (a, b) { this.__state.textures[a] = b; }, setVertexBufferAt: function (a, b, c, d) { null == d && (d = 4); null == c && (c = 0); if (null == b) this.gl.disableVertexAttribArray(a), this.__bindGLArrayBuffer(null); else switch ( (this.__bindGLArrayBuffer(b.__id), this.gl.enableVertexAttribArray(a), (c *= 4), d) ) { case 0: this.gl.vertexAttribPointer(a, 4, this.gl.UNSIGNED_BYTE, !0, b.__stride, c); break; case 1: this.gl.vertexAttribPointer(a, 1, this.gl.FLOAT, !1, b.__stride, c); break; case 2: this.gl.vertexAttribPointer(a, 2, this.gl.FLOAT, !1, b.__stride, c); break; case 3: this.gl.vertexAttribPointer(a, 3, this.gl.FLOAT, !1, b.__stride, c); break; case 4: this.gl.vertexAttribPointer(a, 4, this.gl.FLOAT, !1, b.__stride, c); break; default: throw M.thrown(new kd()); } }, __bindGLArrayBuffer: function (a) { this.__contextState.__currentGLArrayBuffer != a && (this.gl.bindBuffer(this.gl.ARRAY_BUFFER, a), (this.__contextState.__currentGLArrayBuffer = a)); }, __bindGLElementArrayBuffer: function (a) { this.__contextState.__currentGLElementArrayBuffer != a && (this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER, a), (this.__contextState.__currentGLElementArrayBuffer = a)); }, __bindGLFramebuffer: function (a) { this.__contextState.__currentGLFramebuffer != a && (this.gl.bindFramebuffer(this.gl.FRAMEBUFFER, a), (this.__contextState.__currentGLFramebuffer = a)); }, __bindGLTexture2D: function (a) { this.gl.bindTexture(this.gl.TEXTURE_2D, a); this.__contextState.__currentGLTexture2D = a; }, __bindGLTextureCubeMap: function (a) { this.gl.bindTexture(this.gl.TEXTURE_CUBE_MAP, a); this.__contextState.__currentGLTextureCubeMap = a; }, __dispose: function () { this.driverInfo += ' (Disposed)'; null != this.__stage3D && ((this.__stage3D.__indexBuffer = null), (this.__stage3D.__vertexBuffer = null), (this.__stage3D = this.__stage3D.context3D = null)); this.__positionScale = this.__frontBufferTexture = this.__fragmentConstants = this.__renderStage3DProgram = this.__context = this.__backBufferTexture = null; this.__present = !1; this.__vertexConstants = this.__stage = this.__quadIndexBuffer = null; }, __drawTriangles: function (a, b) { null == a && (a = 0); null == this.__state.renderToTexture && (this.__stage.context3D != this || this.__stage.__renderer.__cleared ? this.__cleared || this.clear(0, 0, 0, 0, 1, 0, 1) : this.__stage.__renderer.__clear()); this.__flushGL(); null != this.__state.program && this.__state.program.__flush(); this.gl.drawArrays(this.gl.TRIANGLES, a, b); }, __flushGL: function () { this.__flushGLProgram(); this.__flushGLFramebuffer(); this.__flushGLViewport(); this.__flushGLBlend(); if ( this.__contextState.colorMaskRed != this.__state.colorMaskRed || this.__contextState.colorMaskGreen != this.__state.colorMaskGreen || this.__contextState.colorMaskBlue != this.__state.colorMaskBlue || this.__contextState.colorMaskAlpha != this.__state.colorMaskAlpha ) this.gl.colorMask( this.__state.colorMaskRed, this.__state.colorMaskGreen, this.__state.colorMaskBlue, this.__state.colorMaskAlpha ), (this.__contextState.colorMaskRed = this.__state.colorMaskRed), (this.__contextState.colorMaskGreen = this.__state.colorMaskGreen), (this.__contextState.colorMaskBlue = this.__state.colorMaskBlue), (this.__contextState.colorMaskAlpha = this.__state.colorMaskAlpha); this.__flushGLCulling(); this.__flushGLDepth(); this.__flushGLScissor(); this.__flushGLStencil(); this.__flushGLTextures(); }, __flushGLBlend: function () { if ( this.__contextState.blendDestinationRGBFactor != this.__state.blendDestinationRGBFactor || this.__contextState.blendSourceRGBFactor != this.__state.blendSourceRGBFactor || this.__contextState.blendDestinationAlphaFactor != this.__state.blendDestinationAlphaFactor || this.__contextState.blendSourceAlphaFactor != this.__state.blendSourceAlphaFactor ) this.__setGLBlend(!0), this.__state.blendDestinationRGBFactor == this.__state.blendDestinationAlphaFactor && this.__state.blendSourceRGBFactor == this.__state.blendSourceAlphaFactor ? this.gl.blendFunc( this.__getGLBlend(this.__state.blendSourceRGBFactor), this.__getGLBlend(this.__state.blendDestinationRGBFactor) ) : this.gl.blendFuncSeparate( this.__getGLBlend(this.__state.blendSourceRGBFactor), this.__getGLBlend(this.__state.blendDestinationRGBFactor), this.__getGLBlend(this.__state.blendSourceAlphaFactor), this.__getGLBlend(this.__state.blendDestinationAlphaFactor) ), (this.__contextState.blendDestinationRGBFactor = this.__state.blendDestinationRGBFactor), (this.__contextState.blendSourceRGBFactor = this.__state.blendSourceRGBFactor), (this.__contextState.blendDestinationAlphaFactor = this.__state.blendDestinationAlphaFactor), (this.__contextState.blendSourceAlphaFactor = this.__state.blendSourceAlphaFactor); }, __flushGLColor: function () { if ( this.__contextState.colorMaskRed != this.__state.colorMaskRed || this.__contextState.colorMaskGreen != this.__state.colorMaskGreen || this.__contextState.colorMaskBlue != this.__state.colorMaskBlue || this.__contextState.colorMaskAlpha != this.__state.colorMaskAlpha ) this.gl.colorMask( this.__state.colorMaskRed, this.__state.colorMaskGreen, this.__state.colorMaskBlue, this.__state.colorMaskAlpha ), (this.__contextState.colorMaskRed = this.__state.colorMaskRed), (this.__contextState.colorMaskGreen = this.__state.colorMaskGreen), (this.__contextState.colorMaskBlue = this.__state.colorMaskBlue), (this.__contextState.colorMaskAlpha = this.__state.colorMaskAlpha); }, __flushGLCulling: function () { if (this.__contextState.culling != this.__state.culling) { if (3 == this.__state.culling) this.__setGLCullFace(!1); else switch ((this.__setGLCullFace(!0), this.__state.culling)) { case 0: this.gl.cullFace(this.gl.BACK); break; case 1: this.gl.cullFace(this.gl.FRONT); break; case 2: this.gl.cullFace(this.gl.FRONT_AND_BACK); break; case 3: break; default: throw M.thrown(new kd()); } this.__contextState.culling = this.__state.culling; } }, __flushGLDepth: function () { var a = this.__state.depthMask && (null != this.__state.renderToTexture ? this.__state.renderToTextureDepthStencil : this.__state.backBufferEnableDepthAndStencil); this.__contextState.depthMask != a && (this.gl.depthMask(a), (this.__contextState.depthMask = a)); if (this.__contextState.depthCompareMode != this.__state.depthCompareMode) { switch (this.__state.depthCompareMode) { case 0: this.gl.depthFunc(this.gl.ALWAYS); break; case 1: this.gl.depthFunc(this.gl.EQUAL); break; case 2: this.gl.depthFunc(this.gl.GREATER); break; case 3: this.gl.depthFunc(this.gl.GEQUAL); break; case 4: this.gl.depthFunc(this.gl.LESS); break; case 5: this.gl.depthFunc(this.gl.LEQUAL); break; case 6: this.gl.depthFunc(this.gl.NEVER); break; case 7: this.gl.depthFunc(this.gl.NOTEQUAL); break; default: throw M.thrown(new kd()); } this.__contextState.depthCompareMode = this.__state.depthCompareMode; } }, __flushGLFramebuffer: function () { if (null != this.__state.renderToTexture) { if ( this.__contextState.renderToTexture != this.__state.renderToTexture || this.__contextState.renderToTextureSurfaceSelector != this.__state.renderToTextureSurfaceSelector ) { var a = this.__state.renderToTexture.__getGLFramebuffer( this.__state.renderToTextureDepthStencil, this.__state.renderToTextureAntiAlias, this.__state.renderToTextureSurfaceSelector ); this.__bindGLFramebuffer(a); this.__contextState.renderToTexture = this.__state.renderToTexture; this.__contextState.renderToTextureAntiAlias = this.__state.renderToTextureAntiAlias; this.__contextState.renderToTextureDepthStencil = this.__state.renderToTextureDepthStencil; this.__contextState.renderToTextureSurfaceSelector = this.__state.renderToTextureSurfaceSelector; } this.__setGLDepthTest(this.__state.renderToTextureDepthStencil); this.__setGLStencilTest(this.__state.renderToTextureDepthStencil); this.__setGLFrontFace(!0); } else { if (null == this.__stage && 0 == this.backBufferWidth && 0 == this.backBufferHeight) throw M.thrown(new dd('Context3D backbuffer has not been configured')); if ( null != this.__contextState.renderToTexture || this.__contextState.__currentGLFramebuffer != this.__state.__primaryGLFramebuffer || this.__contextState.backBufferEnableDepthAndStencil != this.__state.backBufferEnableDepthAndStencil ) this.__bindGLFramebuffer(this.__state.__primaryGLFramebuffer), (this.__contextState.renderToTexture = null), (this.__contextState.backBufferEnableDepthAndStencil = this.__state.backBufferEnableDepthAndStencil); this.__setGLDepthTest(this.__state.backBufferEnableDepthAndStencil); this.__setGLStencilTest(this.__state.backBufferEnableDepthAndStencil); this.__setGLFrontFace(this.__stage.context3D != this); } }, __flushGLProgram: function () { var a = this.__state.shader, b = this.__state.program; this.__contextState.shader != a && (null != this.__contextState.shader && this.__contextState.shader.__disable(), null != a && a.__enable(), (this.__contextState.shader = a)); this.__contextState.program != b && (null != this.__contextState.program && this.__contextState.program.__disable(), null != b && b.__enable(), (this.__contextState.program = b)); null != b && 0 == b.__format && ((this.__positionScale[1] = this.__stage.context3D == this && null == this.__state.renderToTexture ? 1 : -1), b.__setPositionScale(this.__positionScale)); }, __flushGLScissor: function () { if (this.__state.scissorEnabled) { this.__setGLScissorTest(!0); this.__contextState.scissorEnabled = !0; var a = this.__state.scissorRectangle.x | 0, b = this.__state.scissorRectangle.y | 0, c = this.__state.scissorRectangle.width | 0, d = this.__state.scissorRectangle.height | 0; null == this.__state.renderToTexture && null == this.__stage3D && (b = ((this.__stage.window.__height * this.__stage.window.__scale) | 0) - (this.__state.scissorRectangle.height | 0) - b); if ( this.__contextState.scissorRectangle.x != a || this.__contextState.scissorRectangle.y != b || this.__contextState.scissorRectangle.width != c || this.__contextState.scissorRectangle.height != d ) this.gl.scissor(a, b, c, d), this.__contextState.scissorRectangle.setTo(a, b, c, d); } else this.__contextState.scissorEnabled != this.__state.scissorEnabled && (this.__setGLScissorTest(!1), (this.__contextState.scissorEnabled = !1)); }, __flushGLStencil: function () { if ( this.__contextState.stencilTriangleFace != this.__state.stencilTriangleFace || this.__contextState.stencilPass != this.__state.stencilPass || this.__contextState.stencilDepthFail != this.__state.stencilDepthFail || this.__contextState.stencilFail != this.__state.stencilFail ) this.gl.stencilOpSeparate( this.__getGLTriangleFace(this.__state.stencilTriangleFace), this.__getGLStencilAction(this.__state.stencilFail), this.__getGLStencilAction(this.__state.stencilDepthFail), this.__getGLStencilAction(this.__state.stencilPass) ), (this.__contextState.stencilTriangleFace = this.__state.stencilTriangleFace), (this.__contextState.stencilPass = this.__state.stencilPass), (this.__contextState.stencilDepthFail = this.__state.stencilDepthFail), (this.__contextState.stencilFail = this.__state.stencilFail); this.__contextState.stencilWriteMask != this.__state.stencilWriteMask && (this.gl.stencilMask(this.__state.stencilWriteMask), (this.__contextState.stencilWriteMask = this.__state.stencilWriteMask)); if ( this.__contextState.stencilCompareMode != this.__state.stencilCompareMode || this.__contextState.stencilReferenceValue != this.__state.stencilReferenceValue || this.__contextState.stencilReadMask != this.__state.stencilReadMask ) this.gl.stencilFunc( this.__getGLCompareMode(this.__state.stencilCompareMode), this.__state.stencilReferenceValue, this.__state.stencilReadMask ), (this.__contextState.stencilCompareMode = this.__state.stencilCompareMode), (this.__contextState.stencilReferenceValue = this.__state.stencilReferenceValue), (this.__contextState.stencilReadMask = this.__state.stencilReadMask); }, __flushGLTextures: function () { for (var a = 0, b, c, d = 0, f = this.__state.textures.length; d < f; ) { var g = d++; b = this.__state.textures[g]; c = this.__state.samplerStates[g]; null == c && ((this.__state.samplerStates[g] = new Ug()), (c = this.__state.samplerStates[g])); this.gl.activeTexture(this.gl.TEXTURE0 + a); null != b ? (b.__textureTarget == this.gl.TEXTURE_2D ? this.__bindGLTexture2D(b.__getTexture()) : this.__bindGLTextureCubeMap(b.__getTexture()), (this.__contextState.textures[g] = b), b.__setSamplerState(c)) : this.__bindGLTexture2D(null); null != this.__state.program && 0 == this.__state.program.__format && c.textureAlpha && (this.gl.activeTexture(this.gl.TEXTURE0 + a + 4), null != b && null != b.__alphaTexture ? (b.__alphaTexture.__textureTarget == this.gl.TEXTURE_2D ? this.__bindGLTexture2D(b.__alphaTexture.__getTexture()) : this.__bindGLTextureCubeMap(b.__alphaTexture.__getTexture()), b.__alphaTexture.__setSamplerState(c), this.gl.uniform1i(this.__state.program.__agalAlphaSamplerEnabled[a].location, 1)) : (this.__bindGLTexture2D(null), null != this.__state.program.__agalAlphaSamplerEnabled[a] && this.gl.uniform1i( this.__state.program.__agalAlphaSamplerEnabled[a].location, 0 ))); ++a; } }, __flushGLViewport: function () { if (null == this.__state.renderToTexture) if (this.__stage.context3D == this) { var a = null == this.__stage3D ? 0 : this.__stage3D.get_x() | 0, b = (this.__stage.window.__height * this.__stage.window.__scale - this.backBufferHeight - (null == this.__stage3D ? 0 : this.__stage3D.get_y())) | 0; this.gl.viewport(a, b, this.backBufferWidth, this.backBufferHeight); } else this.gl.viewport(0, 0, this.backBufferWidth, this.backBufferHeight); else (b = a = 0), this.__state.renderToTexture instanceof ii ? ((b = this.__state.renderToTexture), (a = b.__width), (b = b.__height)) : this.__state.renderToTexture instanceof ck ? ((b = this.__state.renderToTexture), (a = b.__width), (b = b.__height)) : this.__state.renderToTexture instanceof Zi && ((b = this.__state.renderToTexture), (b = a = b.__size)), this.gl.viewport(0, 0, a, b); }, __getGLBlend: function (a) { switch (a) { case 0: return this.gl.DST_ALPHA; case 1: return this.gl.DST_COLOR; case 2: return this.gl.ONE; case 3: return this.gl.ONE_MINUS_DST_ALPHA; case 4: return this.gl.ONE_MINUS_DST_COLOR; case 5: return this.gl.ONE_MINUS_SRC_ALPHA; case 6: return this.gl.ONE_MINUS_SRC_COLOR; case 7: return this.gl.SRC_ALPHA; case 8: return this.gl.SRC_COLOR; case 9: return this.gl.ZERO; default: throw M.thrown(new kd()); } }, __getGLCompareMode: function (a) { switch (a) { case 0: return this.gl.ALWAYS; case 1: return this.gl.EQUAL; case 2: return this.gl.GREATER; case 3: return this.gl.GEQUAL; case 4: return this.gl.LESS; case 5: return this.gl.LEQUAL; case 6: return this.gl.NEVER; case 7: return this.gl.NOTEQUAL; default: return this.gl.EQUAL; } }, __getGLStencilAction: function (a) { switch (a) { case 0: return this.gl.DECR; case 1: return this.gl.DECR_WRAP; case 2: return this.gl.INCR; case 3: return this.gl.INCR_WRAP; case 4: return this.gl.INVERT; case 5: return this.gl.KEEP; case 6: return this.gl.REPLACE; case 7: return this.gl.ZERO; default: return this.gl.KEEP; } }, __getGLTriangleFace: function (a) { switch (a) { case 0: return this.gl.BACK; case 1: return this.gl.FRONT; case 2: return this.gl.FRONT_AND_BACK; case 3: return this.gl.NONE; default: return this.gl.FRONT_AND_BACK; } }, __renderStage3D: function (a) { var b = a.context3D; if ( null != b && b != this && null != b.__frontBufferTexture && a.visible && 0 < this.backBufferHeight && 0 < this.backBufferWidth ) { if (null == this.__renderStage3DProgram) { var c = new Y(); c.assemble(Lw.toString(1), 'm44 op, va0, vc0\nmov v0, va1'); var d = new Y(); d.assemble(Lw.toString(0), 'tex ft1, v0, fs0 <2d,nearest,nomip>\nmov oc, ft1'); this.__renderStage3DProgram = this.createProgram(); this.__renderStage3DProgram.upload(c.agalcode, d.agalcode); } this.setProgram(this.__renderStage3DProgram); this.setBlendFactors(2, 9); this.setColorMask(!0, !0, !0, !0); this.setCulling(3); this.setDepthTest(!1, 0); this.setStencilActions(); this.setStencilReferenceValue(0, 0, 0); this.setScissorRectangle(null); this.setTextureAt(0, b.__frontBufferTexture); this.setVertexBufferAt(0, a.__vertexBuffer, 0, 3); this.setVertexBufferAt(1, a.__vertexBuffer, 3, 2); this.setProgramConstantsFromMatrix(1, 0, a.__renderTransform, !0); this.drawTriangles(a.__indexBuffer); this.__present = !0; } }, __setGLBlend: function (a) { this.__contextState.__enableGLBlend != a && (a ? this.gl.enable(this.gl.BLEND) : this.gl.disable(this.gl.BLEND), (this.__contextState.__enableGLBlend = a)); }, __setGLBlendEquation: function (a) { this.__contextState.__glBlendEquation != a && (this.gl.blendEquation(a), (this.__contextState.__glBlendEquation = a)); }, __setGLCullFace: function (a) { this.__contextState.__enableGLCullFace != a && (a ? this.gl.enable(this.gl.CULL_FACE) : this.gl.disable(this.gl.CULL_FACE), (this.__contextState.__enableGLCullFace = a)); }, __setGLDepthTest: function (a) { this.__contextState.__enableGLDepthTest != a && (a ? this.gl.enable(this.gl.DEPTH_TEST) : this.gl.disable(this.gl.DEPTH_TEST), (this.__contextState.__enableGLDepthTest = a)); }, __setGLFrontFace: function (a) { this.__contextState.__frontFaceGLCCW != a && (this.gl.frontFace(a ? this.gl.CCW : this.gl.CW), (this.__contextState.__frontFaceGLCCW = a)); }, __setGLScissorTest: function (a) { this.__contextState.__enableGLScissorTest != a && (a ? this.gl.enable(this.gl.SCISSOR_TEST) : this.gl.disable(this.gl.SCISSOR_TEST), (this.__contextState.__enableGLScissorTest = a)); }, __setGLStencilTest: function (a) { this.__contextState.__enableGLStencilTest != a && (a ? this.gl.enable(this.gl.STENCIL_TEST) : this.gl.disable(this.gl.STENCIL_TEST), (this.__contextState.__enableGLStencilTest = a)); }, get_enableErrorChecking: function () { return this.__enableErrorChecking; }, set_enableErrorChecking: function (a) { return (this.__enableErrorChecking = a); }, get_totalGPUMemory: function () { if (-1 != $b.__glMemoryCurrentAvailable) { var a = this.gl.getParameter($b.__glMemoryCurrentAvailable), b = this.gl.getParameter($b.__glMemoryTotalAvailable); if (0 < b) return 1024 * (b - a); } return 0; }, __class__: $b, __properties__: { get_totalGPUMemory: 'get_totalGPUMemory', set_enableErrorChecking: 'set_enableErrorChecking', get_enableErrorChecking: 'get_enableErrorChecking' } }); var Kw = { fromString: function (a) { switch (a) { case 'dynamicDraw': return 0; case 'staticDraw': return 1; default: return null; } }, toString: function (a) { switch (a) { case 0: return 'dynamicDraw'; case 1: return 'staticDraw'; default: return null; } } }, Lw = { fromString: function (a) { switch (a) { case 'fragment': return 0; case 'vertex': return 1; default: return null; } }, toString: function (a) { switch (a) { case 0: return 'fragment'; case 1: return 'vertex'; default: return null; } } }, dk = { fromString: function (a) { switch (a) { case 'bgrPacked565': return 0; case 'bgra': return 1; case 'bgraPacked4444': return 2; case 'compressed': return 3; case 'compressedAlpha': return 4; case 'rgbaHalfFloat': return 5; default: return null; } }, toString: function (a) { switch (a) { case 0: return 'bgrPacked565'; case 1: return 'bgra'; case 2: return 'bgraPacked4444'; case 3: return 'compressed'; case 4: return 'compressedAlpha'; case 5: return 'rgbaHalfFloat'; default: return null; } } }, cp = function (a, b, c) { this.__context = a; this.__numIndices = b; a = this.__context.gl; this.__id = a.createBuffer(); this.__usage = 0 == c ? a.DYNAMIC_DRAW : a.STATIC_DRAW; }; h['openfl.display3D.IndexBuffer3D'] = cp; cp.__name__ = 'openfl.display3D.IndexBuffer3D'; cp.prototype = { __context: null, __id: null, __memoryUsage: null, __numIndices: null, __tempUInt16Array: null, __usage: null, dispose: function () { this.__context.gl.deleteBuffer(this.__id); }, uploadFromByteArray: function (a, b, c, d) { b += 2 * c; a = zb.toArrayBuffer(a); null == b && (b = 0); d = null != a ? (null == d ? new Uint16Array(a, b) : new Uint16Array(a, b, d)) : null; this.uploadFromTypedArray(d); }, uploadFromTypedArray: function (a, b) { null != a && ((b = this.__context.gl), this.__context.__bindGLElementArrayBuffer(this.__id), bc.bufferData(b, b.ELEMENT_ARRAY_BUFFER, a, this.__usage)); }, uploadFromVector: function (a, b, c) { if (null != a) { var d = b + c, f = this.__tempUInt16Array; if (null == this.__tempUInt16Array || this.__tempUInt16Array.length < c) (this.__tempUInt16Array = null != c ? new Uint16Array(c) : null), null != f && this.__tempUInt16Array.set(f); for (c = b; c < d; ) (f = c++), (this.__tempUInt16Array[f - b] = a.get(f)); this.uploadFromTypedArray(this.__tempUInt16Array); } }, __class__: cp }; var dp = function (a, b) { this.__context = a; this.__format = b; 0 == this.__format ? ((this.__agalSamplerUsageMask = 0), (this.__agalUniforms = new K()), (this.__agalSamplerUniforms = new K()), (this.__agalAlphaSamplerUniforms = new K()), (this.__agalAlphaSamplerEnabled = [])) : ((this.__glslAttribNames = []), (this.__glslAttribTypes = []), (this.__glslSamplerNames = []), (this.__glslUniformLocations = []), (this.__glslUniformNames = []), (this.__glslUniformTypes = [])); this.__samplerStates = []; }; h['openfl.display3D.Program3D'] = dp; dp.__name__ = 'openfl.display3D.Program3D'; dp.prototype = { __agalAlphaSamplerEnabled: null, __agalAlphaSamplerUniforms: null, __agalFragmentUniformMap: null, __agalPositionScale: null, __agalSamplerUniforms: null, __agalSamplerUsageMask: null, __agalUniforms: null, __agalVertexUniformMap: null, __context: null, __format: null, __glFragmentShader: null, __glFragmentSource: null, __glProgram: null, __glslAttribNames: null, __glslAttribTypes: null, __glslSamplerNames: null, __glslUniformLocations: null, __glslUniformNames: null, __glslUniformTypes: null, __glVertexShader: null, __glVertexSource: null, __samplerStates: null, dispose: function () { this.__deleteShaders(); }, getAttributeIndex: function (a) { if (0 == this.__format) return U.startsWith(a, 'va') ? B.parseInt(a.substring(2)) : -1; for (var b = 0, c = this.__glslAttribNames.length; b < c; ) { var d = b++; if (this.__glslAttribNames[d] == a) return d; } return -1; }, getConstantIndex: function (a) { if (0 == this.__format) return U.startsWith(a, 'vc') ? B.parseInt(a.substring(2)) : U.startsWith(a, 'fc') ? B.parseInt(a.substring(2)) : -1; for (var b = 0, c = this.__glslUniformNames.length; b < c; ) { var d = b++; if (this.__glslUniformNames[d] == a) return this.__glslUniformLocations[d]; } return -1; }, upload: function (a, b) { if (0 == this.__format) { var c = []; a = Ee.convertToGLSL(a, null); b = Ee.convertToGLSL(b, c); 5 == Xa.level && (Xa.info(a, { fileName: 'openfl/display3D/Program3D.hx', lineNumber: 399, className: 'openfl.display3D.Program3D', methodName: 'upload' }), Xa.info(b, { fileName: 'openfl/display3D/Program3D.hx', lineNumber: 400, className: 'openfl.display3D.Program3D', methodName: 'upload' })); this.__deleteShaders(); this.__uploadFromGLSL(a, b); this.__buildAGALUniformList(); b = 0; for (a = c.length; b < a; ) { var d = b++; this.__samplerStates[d] = c[d]; } } }, uploadSources: function (a, b) { if (1 == this.__format) { var c = '#ifdef GL_ES\n\t\t\t#ifdef GL_FRAGMENT_PRECISION_HIGH\n\t\t\tprecision highp float;\n\t\t\t#else\n\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t#endif\n\t\t\t' + a, d = '#ifdef GL_ES\n\t\t\t#ifdef GL_FRAGMENT_PRECISION_HIGH\n\t\t\tprecision highp float;\n\t\t\t#else\n\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t#endif\n\t\t\t' + b; if (c != this.__glVertexSource || d != this.__glFragmentSource) { this.__processGLSLData(a, 'attribute'); this.__processGLSLData(a, 'uniform'); this.__processGLSLData(b, 'uniform'); this.__deleteShaders(); this.__uploadFromGLSL(c, d); var f = this.__glslSamplerNames; d = this.__glslAttribNames; var g = this.__glslAttribTypes; a = this.__glslUniformNames; this.__glslSamplerNames = []; this.__glslAttribNames = []; this.__glslAttribTypes = []; this.__glslUniformLocations = []; b = this.__context.gl; for (c = 0; c < f.length; ) { var p = f[c]; ++c; var l = b.getUniformLocation(this.__glProgram, p); this.__glslSamplerNames[l] = p; } c = 0; for (f = d.length; c < f; ) (p = c++), (l = b.getAttribLocation(this.__glProgram, d[p])), (this.__glslAttribNames[l] = d[p]), (this.__glslAttribTypes[l] = g[p]); c = 0; for (f = a.length; c < f; ) (p = c++), (d = b.getUniformLocation(this.__glProgram, a[p])), (this.__glslUniformLocations[p] = d); } } }, __buildAGALUniformList: function () { if (1 != this.__format) { var a = this.__context.gl; this.__agalUniforms.clear(); this.__agalSamplerUniforms.clear(); this.__agalAlphaSamplerUniforms.clear(); this.__agalAlphaSamplerEnabled = []; this.__agalSamplerUsageMask = 0; var b = a.getProgramParameter(this.__glProgram, a.ACTIVE_UNIFORMS); for (var c = new K(), d = new K(), f = 0; f < b; ) { var g = f++, p = a.getActiveUniform(this.__glProgram, g), l = p.name, k = p.size, n = p.type; p = new fn(this.__context); p.name = l; p.size = k; p.type = n; p.location = a.getUniformLocation(this.__glProgram, p.name); l = p.name.indexOf('['); 0 <= l && (p.name = p.name.substring(0, l)); switch (p.type) { case 35674: p.regCount = 2; break; case 35675: p.regCount = 3; break; case 35676: p.regCount = 4; break; default: p.regCount = 1; } p.regCount *= p.size; this.__agalUniforms.add(p); if ('vcPositionScale' == p.name) this.__agalPositionScale = p; else if (U.startsWith(p.name, 'vc')) (p.regIndex = B.parseInt(p.name.substring(2))), (p.regData = this.__context.__vertexConstants), c.add(p); else if (U.startsWith(p.name, 'fc')) (p.regIndex = B.parseInt(p.name.substring(2))), (p.regData = this.__context.__fragmentConstants), d.add(p); else if (U.startsWith(p.name, 'sampler') && -1 == p.name.indexOf('alpha')) for ( p.regIndex = B.parseInt(p.name.substring(7)), this.__agalSamplerUniforms.add(p), l = 0, k = p.regCount; l < k; ) (n = l++), (this.__agalSamplerUsageMask |= 1 << (p.regIndex + n)); else U.startsWith(p.name, 'sampler') && U.endsWith(p.name, '_alpha') ? ((l = p.name.indexOf('_') - 7), (p.regIndex = B.parseInt(p.name.substring(7, 7 + l)) + 4), this.__agalAlphaSamplerUniforms.add(p)) : U.startsWith(p.name, 'sampler') && U.endsWith(p.name, '_alphaEnabled') && ((p.regIndex = B.parseInt(p.name.substring(7))), (this.__agalAlphaSamplerEnabled[p.regIndex] = p)); 5 == Xa.level && Xa.verbose( '' + g + ' name:' + p.name + ' type:' + p.type + ' size:' + p.size + ' location:' + B.string(p.location), { fileName: 'openfl/display3D/Program3D.hx', lineNumber: 577, className: 'openfl.display3D.Program3D', methodName: '__buildAGALUniformList' } ); } this.__agalVertexUniformMap = new ek(Tc.array(c)); this.__agalFragmentUniformMap = new ek(Tc.array(d)); } }, __deleteShaders: function () { var a = this.__context.gl; null != this.__glProgram && (this.__glProgram = null); null != this.__glVertexShader && (a.deleteShader(this.__glVertexShader), (this.__glVertexShader = null)); null != this.__glFragmentShader && (a.deleteShader(this.__glFragmentShader), (this.__glFragmentShader = null)); }, __disable: function () {}, __enable: function () { var a = this.__context.gl; a.useProgram(this.__glProgram); if (0 == this.__format) { this.__agalVertexUniformMap.markAllDirty(); this.__agalFragmentUniformMap.markAllDirty(); for (var b = this.__agalSamplerUniforms.h; null != b; ) { var c = b.item; b = b.next; if (1 == c.regCount) a.uniform1i(c.location, c.regIndex); else throw M.thrown(new kd('!!! TODO: uniform location on webgl')); } for (b = this.__agalAlphaSamplerUniforms.h; null != b; ) if (((c = b.item), (b = b.next), 1 == c.regCount)) a.uniform1i(c.location, c.regIndex); else throw M.thrown(new kd('!!! TODO: uniform location on webgl')); } }, __flush: function () { 0 == this.__format && (this.__agalVertexUniformMap.flush(), this.__agalFragmentUniformMap.flush()); }, __getSamplerState: function (a) { return this.__samplerStates[a]; }, __markDirty: function (a, b, c) { 1 != this.__format && (a ? this.__agalVertexUniformMap.markDirty(b, c) : this.__agalFragmentUniformMap.markDirty(b, c)); }, __processGLSLData: function (a, b) { var c = 0, d; for ( d = 'uniform' == b ? new Ja('uniform ([A-Za-z0-9]+) ([A-Za-z0-9_]+)', '') : new Ja('attribute ([A-Za-z0-9]+) ([A-Za-z0-9_]+)', ''); d.matchSub(a, c); ) { var f = d.matched(1); var g = d.matched(2); if (!U.startsWith(g, 'gl_')) { if (U.startsWith(f, 'sampler')) this.__glslSamplerNames.push(g); else { switch (f) { case 'bool': c = 0; break; case 'bvec2': c = 1; break; case 'bvec3': c = 2; break; case 'bvec4': c = 3; break; case 'dvec2': case 'vec2': c = 5; break; case 'dvec3': case 'vec3': c = 6; break; case 'double': case 'float': c = 4; break; case 'ivec3': case 'uvec3': c = 10; break; case 'ivec4': case 'uvec4': c = 11; break; case 'mat2': case 'mat2x2': c = 12; break; case 'mat2x3': c = 13; break; case 'mat2x4': c = 14; break; case 'mat3x2': c = 15; break; case 'mat3': case 'mat3x3': c = 16; break; case 'mat3x4': c = 17; break; case 'mat4': case 'mat4x4': c = 20; break; case 'mat4x2': c = 18; break; case 'mat4x3': c = 19; break; case 'int': case 'uint': c = 8; break; case 'ivec2': case 'uvec2': c = 9; break; case 'dvec4': case 'vec4': c = 7; break; default: c = null; } 'uniform' == b ? (this.__glslUniformNames.push(g), this.__glslUniformTypes.push(c)) : (this.__glslAttribNames.push(g), this.__glslAttribTypes.push(c)); } g = d.matchedPos(); c = g.pos + g.len; } } }, __setPositionScale: function (a) { 1 != this.__format && null != this.__agalPositionScale && this.__context.gl.uniform4fv(this.__agalPositionScale.location, a); }, __setSamplerState: function (a, b) { this.__samplerStates[a] = b; }, __uploadFromGLSL: function (a, b) { var c = this.__context.gl; this.__glVertexSource = a; this.__glFragmentSource = b; this.__glVertexShader = c.createShader(c.VERTEX_SHADER); c.shaderSource(this.__glVertexShader, a); c.compileShader(this.__glVertexShader); if (0 == c.getShaderParameter(this.__glVertexShader, c.COMPILE_STATUS)) { var d = 'Error compiling vertex shader\n' + c.getShaderInfoLog(this.__glVertexShader); Xa.error(d + ('\n' + a), { fileName: 'openfl/display3D/Program3D.hx', lineNumber: 869, className: 'openfl.display3D.Program3D', methodName: '__uploadFromGLSL' }); } this.__glFragmentShader = c.createShader(c.FRAGMENT_SHADER); c.shaderSource(this.__glFragmentShader, b); c.compileShader(this.__glFragmentShader); 0 == c.getShaderParameter(this.__glFragmentShader, c.COMPILE_STATUS) && ((d = 'Error compiling fragment shader\n' + c.getShaderInfoLog(this.__glFragmentShader)), Xa.error(d + ('\n' + b), { fileName: 'openfl/display3D/Program3D.hx', lineNumber: 881, className: 'openfl.display3D.Program3D', methodName: '__uploadFromGLSL' })); this.__glProgram = c.createProgram(); if (0 == this.__format) for (b = 0; 16 > b; ) { var f = b++; d = 'va' + f; -1 != a.indexOf(' ' + d) && c.bindAttribLocation(this.__glProgram, f, d); } else for (b = 0, a = this.__glslAttribNames; b < a.length; ) if (((d = a[b]), ++b, -1 < d.indexOf('Position') && U.startsWith(d, 'openfl_'))) { c.bindAttribLocation(this.__glProgram, 0, d); break; } c.attachShader(this.__glProgram, this.__glVertexShader); c.attachShader(this.__glProgram, this.__glFragmentShader); c.linkProgram(this.__glProgram); 0 == c.getProgramParameter(this.__glProgram, c.LINK_STATUS) && ((d = 'Unable to initialize the shader program\n' + c.getProgramInfoLog(this.__glProgram)), Xa.error(d, { fileName: 'openfl/display3D/Program3D.hx', lineNumber: 922, className: 'openfl.display3D.Program3D', methodName: '__uploadFromGLSL' })); }, __class__: dp }; var fn = function (a) { this.context = a; this.isDirty = !0; this.regDataPointer = new Uf(null, 0); }; h['openfl.display3D.Uniform'] = fn; fn.__name__ = 'openfl.display3D.Uniform'; fn.prototype = { name: null, location: null, type: null, size: null, regData: null, regIndex: null, regCount: null, isDirty: null, context: null, regDataPointer: null, flush: function () { var a = this.context.gl, b = 4 * this.regIndex; switch (this.type) { case 35664: ex.uniform2fv(a, this.location, this.regData.subarray(b, b + 2 * this.regCount)); break; case 35665: var c = this.location; b = this.regData.subarray(b, b + 3 * this.regCount); var d = null; null != d ? a.uniform3fv(c, b, d, null) : a.uniform3fv(c, b); break; case 35666: c = this.location; b = this.regData.subarray(b, b + 4 * this.regCount); d = null; null != d ? a.uniform4fv(c, b, d, null) : a.uniform4fv(c, b); break; case 35674: bc.uniformMatrix2fv( a, this.location, !1, this.regData.subarray(b, b + 4 * this.size) ); break; case 35675: bc.uniformMatrix3fv( a, this.location, !1, this.regData.subarray(b, b + 9 * this.size) ); break; case 35676: bc.uniformMatrix4fv( a, this.location, !1, this.regData.subarray(b, b + 16 * this.size) ); break; default: (c = this.location), (b = this.regData.subarray(b, b + 4 * this.regCount)), (d = null), null != d ? a.uniform4fv(c, b, d, null) : a.uniform4fv(c, b); } }, __getUniformRegisters: function (a, b) { return this.regData.subarray(a, a + b); }, __class__: fn }; var ek = function (a) { this.__uniforms = a; this.__uniforms.sort(function (a, b) { return Z.compare(a.regIndex, b.regIndex); }); var b = 0; a = 0; for (var c = this.__uniforms; a < c.length; ) { var d = c[a]; ++a; d.regIndex + d.regCount > b && (b = d.regIndex + d.regCount); } this.__registerLookup = yb.toObjectVector(null, b); a = 0; for (c = this.__uniforms; a < c.length; ) { d = c[a]; ++a; b = 0; for (var f = d.regCount; b < f; ) { var g = b++; this.__registerLookup.set(d.regIndex + g, d); } } this.__anyDirty = this.__allDirty = !0; }; h['openfl.display3D.UniformMap'] = ek; ek.__name__ = 'openfl.display3D.UniformMap'; ek.prototype = { __allDirty: null, __anyDirty: null, __registerLookup: null, __uniforms: null, flush: function () { if (this.__anyDirty) { for (var a = 0, b = this.__uniforms; a < b.length; ) { var c = b[a]; ++a; if (this.__allDirty || c.isDirty) c.flush(), (c.isDirty = !1); } this.__anyDirty = this.__allDirty = !1; } }, markAllDirty: function () { this.__anyDirty = this.__allDirty = !0; }, markDirty: function (a, b) { if (!this.__allDirty) for ( b = a + b, b > this.__registerLookup.get_length() && (b = this.__registerLookup.get_length()); a < b; ) { var c = this.__registerLookup.get(a); null != c ? ((this.__anyDirty = c.isDirty = !0), (a = c.regIndex + c.regCount)) : ++a; } }, __class__: ek }; var ep = function (a, b, c, d) { this.__context = a; this.__numVertices = b; this.__vertexSize = c; a = this.__context.gl; this.__id = a.createBuffer(); this.__stride = 4 * this.__vertexSize; this.__usage = 0 == Kw.fromString(d) ? a.DYNAMIC_DRAW : a.STATIC_DRAW; }; h['openfl.display3D.VertexBuffer3D'] = ep; ep.__name__ = 'openfl.display3D.VertexBuffer3D'; ep.prototype = { __context: null, __data: null, __id: null, __memoryUsage: null, __numVertices: null, __stride: null, __tempFloat32Array: null, __usage: null, __vertexSize: null, dispose: function () { this.__context.gl.deleteBuffer(this.__id); }, uploadFromByteArray: function (a, b, c, d) { b += c * this.__stride; d *= this.__vertexSize; a = zb.toArrayBuffer(a); null == b && (b = 0); a = null != a ? (null == d ? new Float32Array(a, b) : new Float32Array(a, b, d)) : null; this.uploadFromTypedArray(Yg.toArrayBufferView(a)); }, uploadFromTypedArray: function (a, b) { null != a && ((b = this.__context.gl), this.__context.__bindGLArrayBuffer(this.__id), bc.bufferData(b, b.ARRAY_BUFFER, a, this.__usage)); }, uploadFromVector: function (a, b, c) { if (null != a) { b *= this.__vertexSize; var d = c * this.__vertexSize; c = b + d; var f = this.__tempFloat32Array; if (null == this.__tempFloat32Array || this.__tempFloat32Array.length < d) (this.__tempFloat32Array = null != d ? new Float32Array(d) : null), null != f && this.__tempFloat32Array.set(f); for (d = b; d < c; ) (f = d++), (this.__tempFloat32Array[f - b] = a.get(f)); this.uploadFromTypedArray(Yg.toArrayBufferView(this.__tempFloat32Array)); } }, __class__: ep }; var Ee = function () {}; h['openfl.display3D._internal.AGALConverter'] = Ee; Ee.__name__ = 'openfl.display3D._internal.AGALConverter'; Ee.prefixFromType = function (a, b) { switch (a) { case 0: return 'va'; case 1: return b == Fg.VERTEX ? 'vc' : 'fc'; case 2: return b == Fg.VERTEX ? 'vt' : 'ft'; case 3: return 'output_'; case 4: return 'v'; case 5: return 'sampler'; default: throw M.thrown(new kd('Invalid data!')); } }; Ee.readUInt64 = function (a) { var b = a.readInt(); a = a.readInt(); return new cb(a, b); }; Ee.convertToGLSL = function (a, b) { a.position = 0; a.__endian = 1; var c = a.readByte() & 255; if (176 == c) return a.readUTF(); if (160 != c) throw M.thrown(new kd('Magic value must be 0xA0, may not be AGAL')); var d = a.readInt(); if (1 != d) throw M.thrown(new kd('Version must be 1')); if (161 != (a.readByte() & 255)) throw M.thrown(new kd('Shader type ID must be 0xA1')); c = 0 == (a.readByte() & 255) ? Fg.VERTEX : Fg.FRAGMENT; for (var f = new gn(), g = ''; ; ) { d = a.position; if (!Ba.gt(zb.get_length(a), d)) break; var p = a.readInt(); d = a.readUnsignedInt(); var l = Ee.readUInt64(a), k = Ee.readUInt64(a); d = $i.parse(d, c); l = ji.parse(l, c, d.mask); var n = ji.parse(k, c, d.mask); g += '\t'; switch (p) { case 0: g += B.string(d.toGLSL() + ' = ' + l.toGLSL() + '; // mov'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); break; case 1: g += B.string(d.toGLSL() + ' = ' + l.toGLSL() + ' + ' + n.toGLSL() + '; // add'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); f.addSR(n, xa.VECTOR_4); break; case 2: g += B.string(d.toGLSL() + ' = ' + l.toGLSL() + ' - ' + n.toGLSL() + '; // sub'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); f.addSR(n, xa.VECTOR_4); break; case 3: g += B.string(d.toGLSL() + ' = ' + l.toGLSL() + ' * ' + n.toGLSL() + '; // mul'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); f.addSR(n, xa.VECTOR_4); break; case 4: g += B.string(d.toGLSL() + ' = ' + l.toGLSL() + ' / ' + n.toGLSL() + '; // div'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); f.addSR(n, xa.VECTOR_4); break; case 5: g = -1 < l.toGLSL().indexOf('.') ? g + B.string(d.toGLSL() + ' = 1.0 / ' + l.toGLSL() + '; // rcp') : g + B.string(d.toGLSL() + ' = vec4(1) / ' + l.toGLSL() + '; // rcp'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); break; case 6: g += B.string(d.toGLSL() + ' = min(' + l.toGLSL() + ', ' + n.toGLSL() + '); // min'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); f.addSR(n, xa.VECTOR_4); break; case 7: g += B.string(d.toGLSL() + ' = max(' + l.toGLSL() + ', ' + n.toGLSL() + '); // max'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); f.addSR(n, xa.VECTOR_4); break; case 8: g += B.string(d.toGLSL() + ' = fract(' + l.toGLSL() + '); // frc'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); break; case 9: g += B.string(d.toGLSL() + ' = sqrt(' + l.toGLSL() + '); // sqrt'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); break; case 10: g += B.string(d.toGLSL() + ' = inversesqrt(' + l.toGLSL() + '); // rsq'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); break; case 11: g += B.string(d.toGLSL() + ' = pow(' + l.toGLSL() + ', ' + n.toGLSL() + '); // pow'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); f.addSR(n, xa.VECTOR_4); break; case 12: g += B.string(d.toGLSL() + ' = log2(' + l.toGLSL() + '); // log'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); break; case 13: g += B.string(d.toGLSL() + ' = exp2(' + l.toGLSL() + '); // exp'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); break; case 14: g += B.string(d.toGLSL() + ' = normalize(' + l.toGLSL() + '); // normalize'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); break; case 15: g += B.string(d.toGLSL() + ' = sin(' + l.toGLSL() + '); // sin'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); break; case 16: g += B.string(d.toGLSL() + ' = cos(' + l.toGLSL() + '); // cos'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); break; case 17: l.sourceMask = n.sourceMask = 7; g += B.string( d.toGLSL() + ' = cross(vec3(' + l.toGLSL() + '), vec3(' + n.toGLSL() + ')); // crs' ); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); f.addSR(n, xa.VECTOR_4); break; case 18: l.sourceMask = n.sourceMask = 7; g += B.string( d.toGLSL() + ' = vec4(dot(vec3(' + l.toGLSL() + '), vec3(' + n.toGLSL() + ')))' + d.getWriteMask() + '; // dp3' ); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); f.addSR(n, xa.VECTOR_4); break; case 19: l.sourceMask = n.sourceMask = 15; g += B.string( d.toGLSL() + ' = vec4(dot(vec4(' + l.toGLSL() + '), vec4(' + n.toGLSL() + ')))' + d.getWriteMask() + '; // dp4' ); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); f.addSR(n, xa.VECTOR_4); break; case 20: g += B.string(d.toGLSL() + ' = abs(' + l.toGLSL() + '); // abs'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); break; case 21: g += B.string(d.toGLSL() + ' = -' + l.toGLSL() + '; // neg'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); break; case 22: g += B.string(d.toGLSL() + ' = clamp(' + l.toGLSL() + ', 0.0, 1.0); // saturate'); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); break; case 23: p = f.getRegisterUsage(n); p != xa.VECTOR_4 && p != xa.VECTOR_4_ARRAY ? ((g += B.string( d.toGLSL() + ' = ' + l.toGLSL() + ' * mat3(' + n.toGLSL(!1) + '); // m33' )), f.addDR(d, xa.VECTOR_4), f.addSR(l, xa.VECTOR_4), f.addSR(n, xa.MATRIX_4_4)) : ((l.sourceMask = n.sourceMask = 7), (g += B.string( d.toGLSL() + ' = vec3(dot(' + l.toGLSL(!0) + ',' + n.toGLSL(!0, 0) + '), dot(' + l.toGLSL(!0) + ',' + n.toGLSL(!0, 1) + '),dot(' + l.toGLSL(!0) + ',' + n.toGLSL(!0, 2) + ')); // m33' )), f.addDR(d, xa.VECTOR_4), f.addSR(l, xa.VECTOR_4), f.addSR(n, xa.VECTOR_4, 0), f.addSR(n, xa.VECTOR_4, 1), f.addSR(n, xa.VECTOR_4, 2)); break; case 24: p = f.getRegisterUsage(n); p != xa.VECTOR_4 && p != xa.VECTOR_4_ARRAY ? ((g += B.string( d.toGLSL() + ' = ' + l.toGLSL() + ' * ' + n.toGLSL(!1) + '; // m44' )), f.addDR(d, xa.VECTOR_4), f.addSR(l, xa.VECTOR_4), f.addSR(n, xa.MATRIX_4_4)) : ((l.sourceMask = n.sourceMask = 15), (g += B.string( d.toGLSL() + ' = vec4(dot(' + l.toGLSL(!0) + ',' + n.toGLSL(!0, 0) + '), dot(' + l.toGLSL(!0) + ',' + n.toGLSL(!0, 1) + '), dot(' + l.toGLSL(!0) + ',' + n.toGLSL(!0, 2) + '), dot(' + l.toGLSL(!0) + ',' + n.toGLSL(!0, 3) + ')); // m44' )), f.addDR(d, xa.VECTOR_4), f.addSR(l, xa.VECTOR_4), f.addSR(n, xa.VECTOR_4, 0), f.addSR(n, xa.VECTOR_4, 1), f.addSR(n, xa.VECTOR_4, 2), f.addSR(n, xa.VECTOR_4, 3)); break; case 25: d.mask &= 7; p = f.getRegisterUsage(n); p != xa.VECTOR_4 && p != xa.VECTOR_4_ARRAY ? ((g += B.string( d.toGLSL() + ' = ' + l.toGLSL() + ' * ' + n.toGLSL(!1) + '; // m34' )), f.addDR(d, xa.VECTOR_4), f.addSR(l, xa.VECTOR_4), f.addSR(n, xa.MATRIX_4_4)) : ((l.sourceMask = n.sourceMask = 15), (g += B.string( d.toGLSL() + ' = vec3(dot(' + l.toGLSL(!0) + ',' + n.toGLSL(!0, 0) + '), dot(' + l.toGLSL(!0) + ',' + n.toGLSL(!0, 1) + '),dot(' + l.toGLSL(!0) + ',' + n.toGLSL(!0, 2) + ')); // m34' )), f.addDR(d, xa.VECTOR_4), f.addSR(l, xa.VECTOR_4), f.addSR(n, xa.VECTOR_4, 0), f.addSR(n, xa.VECTOR_4, 1), f.addSR(n, xa.VECTOR_4, 2)); break; case 39: l.sourceMask = 15; g += B.string('if (any(lessThan(' + l.toGLSL() + ', vec4(0)))) discard;'); f.addSR(l, xa.VECTOR_4); break; case 40: n = aj.parse(k, c); switch (n.d) { case 0: 2 == n.t ? ((l.sourceMask = 3), f.addSaR(n, xa.SAMPLER_2D_ALPHA), (g += B.string('if (' + n.toGLSL() + '_alphaEnabled) {\n')), (g += B.string( '\t\t' + d.toGLSL() + ' = vec4(texture2D(' + n.toGLSL() + ', ' + l.toGLSL() + ').xyz, texture2D(' + n.toGLSL() + '_alpha, ' + l.toGLSL() + ').x); // tex + alpha\n' )), (g += '\t} else {\n'), (g += B.string( '\t\t' + d.toGLSL() + ' = texture2D(' + n.toGLSL() + ', ' + l.toGLSL() + '); // tex\n' )), (g += '\t}')) : ((l.sourceMask = 3), f.addSaR(n, xa.SAMPLER_2D), (g += B.string( d.toGLSL() + ' = texture2D(' + n.toGLSL() + ', ' + l.toGLSL() + '); // tex' ))); break; case 1: 2 == n.t ? ((l.sourceMask = 7), f.addSaR(n, xa.SAMPLER_CUBE_ALPHA), (g += B.string('if (' + n.toGLSL() + '_alphaEnabled) {\n')), (g += B.string( '\t\t' + d.toGLSL() + ' = vec4(textureCube(' + n.toGLSL() + ', ' + l.toGLSL() + ').xyz, textureCube(' + n.toGLSL() + '_alpha, ' + l.toGLSL() + ').x); // tex + alpha\n' )), (g += '\t} else {\n'), (g += B.string( '\t\t' + d.toGLSL() + ' = textureCube(' + n.toGLSL() + ', ' + l.toGLSL() + '); // tex' )), (g += '\t}')) : ((l.sourceMask = 7), (g += B.string( d.toGLSL() + ' = textureCube(' + n.toGLSL() + ', ' + l.toGLSL() + '); // tex' )), f.addSaR(n, xa.SAMPLER_CUBE)); } f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); null != b && (b[n.n] = n.toSamplerState()); break; case 41: l.sourceMask = n.sourceMask = 15; g += B.string( d.toGLSL() + ' = vec4(greaterThanEqual(' + l.toGLSL() + ', ' + n.toGLSL() + '))' + d.getWriteMask() + '; // ste' ); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); f.addSR(n, xa.VECTOR_4); break; case 42: l.sourceMask = n.sourceMask = 15; g += B.string( d.toGLSL() + ' = vec4(lessThan(' + l.toGLSL() + ', ' + n.toGLSL() + '))' + d.getWriteMask() + '; // slt' ); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); f.addSR(n, xa.VECTOR_4); break; case 44: l.sourceMask = n.sourceMask = 15; g += B.string( d.toGLSL() + ' = vec4(equal(' + l.toGLSL() + ', ' + n.toGLSL() + '))' + d.getWriteMask() + '; // seq' ); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); f.addSR(n, xa.VECTOR_4); break; case 45: l.sourceMask = n.sourceMask = 15; g += B.string( d.toGLSL() + ' = vec4(notEqual(' + l.toGLSL() + ', ' + n.toGLSL() + '))' + d.getWriteMask() + '; // sne' ); f.addDR(d, xa.VECTOR_4); f.addSR(l, xa.VECTOR_4); f.addSR(n, xa.VECTOR_4); break; default: throw M.thrown(new kd('Opcode ' + p)); } g += '\n'; } null == Ee.limitedProfile && ((d = t.context.getParameter(7938)), (Ee.limitedProfile = -1 < d.indexOf('OpenGL ES') || -1 < d.indexOf('WebGL'))); a = '' + B.string('// AGAL ' + (c == Fg.VERTEX ? 'vertex' : 'fragment') + ' shader\n'); a = Ee.limitedProfile ? a + '#version 100\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\n' : a + '#version 120\n'; a += B.string(f.toGLSL(!1)); c == Fg.VERTEX && (a += 'uniform vec4 vcPositionScale;\n'); a = a + 'void main() {\n' + B.string(f.toGLSL(!0)); a += B.string(g); c == Fg.VERTEX && (a += '\tgl_Position *= vcPositionScale;\n'); return a + '}\n'; }; var $i = function () {}; h['openfl.display3D._internal._AGALConverter.DestRegister'] = $i; $i.__name__ = 'openfl.display3D._internal._AGALConverter.DestRegister'; $i.parse = function (a, b) { var c = new $i(); c.programType = b; c.type = (a >>> 24) & 15; c.mask = (a >>> 16) & 15; c.n = a & 65535; return c; }; $i.prototype = { mask: null, n: null, programType: null, type: null, getWriteMask: function () { var a = '.'; 0 != (this.mask & 1) && (a += 'x'); 0 != (this.mask & 2) && (a += 'y'); 0 != (this.mask & 4) && (a += 'z'); 0 != (this.mask & 8) && (a += 'w'); return a; }, toGLSL: function (a) { null == a && (a = !0); var b = 3 == this.type ? this.programType == Fg.VERTEX ? 'gl_Position' : 'gl_FragColor' : Ee.prefixFromType(this.type, this.programType) + this.n; a && 15 != this.mask && (b += this.getWriteMask()); return b; }, __class__: $i }; var Fg = (E['openfl.display3D._internal._AGALConverter.ProgramType'] = { __ename__: 'openfl.display3D._internal._AGALConverter.ProgramType', __constructs__: null, VERTEX: { _hx_name: 'VERTEX', _hx_index: 0, __enum__: 'openfl.display3D._internal._AGALConverter.ProgramType', toString: w }, FRAGMENT: { _hx_name: 'FRAGMENT', _hx_index: 1, __enum__: 'openfl.display3D._internal._AGALConverter.ProgramType', toString: w } }); Fg.__constructs__ = [Fg.VERTEX, Fg.FRAGMENT]; var gn = function () { this.mEntries = []; }; h['openfl.display3D._internal.RegisterMap'] = gn; gn.__name__ = 'openfl.display3D._internal.RegisterMap'; gn.prototype = { mEntries: null, add: function (a, b, c, d) { for (var e = 0, g = this.mEntries; e < g.length; ) { var p = g[e]; ++e; if (p.type == a && p.name == b && p.number == c) { if (p.usage != d) throw M.thrown(new kd('Cannot use register in multiple ways yet (mat4/vec4)')); return; } } p = new fp(); p.type = a; p.name = b; p.number = c; p.usage = d; this.mEntries.push(p); }, addDR: function (a, b) { this.add(a.type, a.toGLSL(!1), a.n, b); }, addSaR: function (a, b) { this.add(a.type, a.toGLSL(), a.n, b); }, addSR: function (a, b, c) { null == c && (c = 0); 0 != a.d ? (this.add(a.itype, Ee.prefixFromType(a.itype, a.programType) + a.n, a.n, xa.VECTOR_4), this.add( a.type, Ee.prefixFromType(a.type, a.programType) + a.o, a.o, xa.VECTOR_4_ARRAY )) : this.add(a.type, a.toGLSL(!1, c), a.n + c, b); }, getRegisterUsage: function (a) { return 0 != a.d ? xa.VECTOR_4_ARRAY : this.getUsage(a.type, a.toGLSL(!1), a.n); }, getUsage: function (a, b, c) { for (var d = 0, f = this.mEntries; d < f.length; ) { var g = f[d]; ++d; if (g.type == a && g.name == b && g.number == c) return g.usage; } return xa.UNUSED; }, toGLSL: function (a) { this.mEntries.sort(function (a, b) { return a.number - b.number; }); this.mEntries.sort(function (a, b) { return x.__cast(a.type, Ab) - x.__cast(b.type, Ab); }); for (var b = '', c = 0, d = this.mEntries.length; c < d; ) { var f = c++; f = this.mEntries[f]; if (!((a && 2 != f.type) || (!a && 2 == f.type)) && 3 != f.type) { switch (f.type) { case 0: b += 'attribute '; break; case 1: b += 'uniform '; break; case 2: b += '\t'; break; case 3: break; case 4: b += 'varying '; break; case 5: b += 'uniform '; break; default: throw M.thrown(new kd()); } switch (f.usage._hx_index) { case 0: Xa.info('Missing switch patten: RegisterUsage.UNUSED', { fileName: 'openfl/display3D/_internal/AGALConverter.hx', lineNumber: 750, className: 'openfl.display3D._internal.RegisterMap', methodName: 'toGLSL' }); break; case 1: b += 'vec4 '; break; case 2: b += 'mat4 '; break; case 3: b += 'sampler2D '; break; case 5: b += 'samplerCube '; break; case 7: b += 'vec4 '; } f.usage == xa.SAMPLER_2D_ALPHA ? ((b += 'sampler2D '), (b += B.string(f.name)), (b += ';\n'), (b += 'uniform '), (b += 'sampler2D '), (b += B.string(f.name + '_alpha')), (b += ';\n'), (b += 'uniform '), (b += 'bool '), (b += B.string(f.name + '_alphaEnabled'))) : f.usage == xa.SAMPLER_CUBE_ALPHA ? ((b += 'samplerCube '), (b += B.string(f.name)), (b += ';\n'), (b += 'uniform '), (b += 'samplerCube '), (b += B.string(f.name + '_alpha')), (b += ';\n'), (b += 'uniform '), (b += 'bool '), (b += B.string(f.name + '_alphaEnabled'))) : (b = f.usage == xa.VECTOR_4_ARRAY ? b + B.string(f.name + '[128]') : b + B.string(f.name)); b += ';\n'; } } return b; }, __class__: gn }; var fp = function () {}; h['openfl.display3D._internal._AGALConverter.RegisterMapEntry'] = fp; fp.__name__ = 'openfl.display3D._internal._AGALConverter.RegisterMapEntry'; fp.prototype = { name: null, number: null, type: null, usage: null, __class__: fp }; var xa = (E['openfl.display3D._internal._AGALConverter.RegisterUsage'] = { __ename__: 'openfl.display3D._internal._AGALConverter.RegisterUsage', __constructs__: null, UNUSED: { _hx_name: 'UNUSED', _hx_index: 0, __enum__: 'openfl.display3D._internal._AGALConverter.RegisterUsage', toString: w }, VECTOR_4: { _hx_name: 'VECTOR_4', _hx_index: 1, __enum__: 'openfl.display3D._internal._AGALConverter.RegisterUsage', toString: w }, MATRIX_4_4: { _hx_name: 'MATRIX_4_4', _hx_index: 2, __enum__: 'openfl.display3D._internal._AGALConverter.RegisterUsage', toString: w }, SAMPLER_2D: { _hx_name: 'SAMPLER_2D', _hx_index: 3, __enum__: 'openfl.display3D._internal._AGALConverter.RegisterUsage', toString: w }, SAMPLER_2D_ALPHA: { _hx_name: 'SAMPLER_2D_ALPHA', _hx_index: 4, __enum__: 'openfl.display3D._internal._AGALConverter.RegisterUsage', toString: w }, SAMPLER_CUBE: { _hx_name: 'SAMPLER_CUBE', _hx_index: 5, __enum__: 'openfl.display3D._internal._AGALConverter.RegisterUsage', toString: w }, SAMPLER_CUBE_ALPHA: { _hx_name: 'SAMPLER_CUBE_ALPHA', _hx_index: 6, __enum__: 'openfl.display3D._internal._AGALConverter.RegisterUsage', toString: w }, VECTOR_4_ARRAY: { _hx_name: 'VECTOR_4_ARRAY', _hx_index: 7, __enum__: 'openfl.display3D._internal._AGALConverter.RegisterUsage', toString: w } }); xa.__constructs__ = [ xa.UNUSED, xa.VECTOR_4, xa.MATRIX_4_4, xa.SAMPLER_2D, xa.SAMPLER_2D_ALPHA, xa.SAMPLER_CUBE, xa.SAMPLER_CUBE_ALPHA, xa.VECTOR_4_ARRAY ]; var aj = function () {}; h['openfl.display3D._internal._AGALConverter.SamplerRegister'] = aj; aj.__name__ = 'openfl.display3D._internal._AGALConverter.SamplerRegister'; aj.parse = function (a, b) { var c = new aj(); c.programType = b; b = 60; b = 0 == b ? new cb(a.high, a.low) : 32 > b ? new cb(a.high >> b, (a.high << (32 - b)) | (a.low >>> b)) : new cb(a.high >> 31, a.high >> (b - 32)); b = b.low & 15; c.f = b; b = 56; b = 0 == b ? new cb(a.high, a.low) : 32 > b ? new cb(a.high >> b, (a.high << (32 - b)) | (a.low >>> b)) : new cb(a.high >> 31, a.high >> (b - 32)); b = b.low & 15; c.m = b; b = 52; b = 0 == b ? new cb(a.high, a.low) : 32 > b ? new cb(a.high >> b, (a.high << (32 - b)) | (a.low >>> b)) : new cb(a.high >> 31, a.high >> (b - 32)); b = b.low & 15; c.w = b; b = 48; b = 0 == b ? new cb(a.high, a.low) : 32 > b ? new cb(a.high >> b, (a.high << (32 - b)) | (a.low >>> b)) : new cb(a.high >> 31, a.high >> (b - 32)); b = b.low & 15; c.s = b; b = 44; b = 0 == b ? new cb(a.high, a.low) : 32 > b ? new cb(a.high >> b, (a.high << (32 - b)) | (a.low >>> b)) : new cb(a.high >> 31, a.high >> (b - 32)); b = b.low & 15; c.d = b; b = 40; b = 0 == b ? new cb(a.high, a.low) : 32 > b ? new cb(a.high >> b, (a.high << (32 - b)) | (a.low >>> b)) : new cb(a.high >> 31, a.high >> (b - 32)); b = b.low & 15; c.t = b; b = 32; b = 0 == b ? new cb(a.high, a.low) : 32 > b ? new cb(a.high >> b, (a.high << (32 - b)) | (a.low >>> b)) : new cb(a.high >> 31, a.high >> (b - 32)); b = b.low & 15; c.type = b; b = 16; b = 0 == b ? new cb(a.high, a.low) : 32 > b ? new cb(a.high >> b, (a.high << (32 - b)) | (a.low >>> b)) : new cb(a.high >> 31, a.high >> (b - 32)); b = b.low & 255; c.b = b; b = a.low & 65535; c.n = b; return c; }; aj.prototype = { b: null, d: null, f: null, m: null, n: null, programType: null, s: null, t: null, type: null, w: null, toGLSL: function () { return Ee.prefixFromType(this.type, this.programType) + this.n; }, toSamplerState: function () { switch (this.f) { case 0: var a = 5; break; case 1: a = 4; break; default: throw M.thrown(new kd()); } switch (this.m) { case 0: var b = 2; break; case 1: b = 1; break; case 2: b = 0; break; default: throw M.thrown(new kd()); } switch (this.w) { case 0: var c = 0; break; case 1: c = 2; break; default: throw M.thrown(new kd()); } return new Ug( c, a, b, ((this.b << 24) >> 24) / 8, 4 == (this.s & 4), 1 == (this.s & 1), 2 == this.t ); }, __class__: aj }; var ji = function () {}; h['openfl.display3D._internal._AGALConverter.SourceRegister'] = ji; ji.__name__ = 'openfl.display3D._internal._AGALConverter.SourceRegister'; ji.parse = function (a, b, c) { var d = new ji(); d.programType = b; b = 63; b = 0 == b ? new cb(a.high, a.low) : 32 > b ? new cb(a.high >> b, (a.high << (32 - b)) | (a.low >>> b)) : new cb(a.high >> 31, a.high >> (b - 32)); b = b.low & 1; d.d = b; b = 48; b = 0 == b ? new cb(a.high, a.low) : 32 > b ? new cb(a.high >> b, (a.high << (32 - b)) | (a.low >>> b)) : new cb(a.high >> 31, a.high >> (b - 32)); b = b.low & 3; d.q = b; b = 40; b = 0 == b ? new cb(a.high, a.low) : 32 > b ? new cb(a.high >> b, (a.high << (32 - b)) | (a.low >>> b)) : new cb(a.high >> 31, a.high >> (b - 32)); b = b.low & 15; d.itype = b; b = 32; b = 0 == b ? new cb(a.high, a.low) : 32 > b ? new cb(a.high >> b, (a.high << (32 - b)) | (a.low >>> b)) : new cb(a.high >> 31, a.high >> (b - 32)); b = b.low & 15; d.type = b; b = 24; b = 0 == b ? new cb(a.high, a.low) : 32 > b ? new cb(a.high >> b, (a.high << (32 - b)) | (a.low >>> b)) : new cb(a.high >> 31, a.high >> (b - 32)); b = b.low & 255; d.s = b; b = 16; b = 0 == b ? new cb(a.high, a.low) : 32 > b ? new cb(a.high >> b, (a.high << (32 - b)) | (a.low >>> b)) : new cb(a.high >> 31, a.high >> (b - 32)); b = b.low & 255; d.o = b; b = a.low & 65535; d.n = b; d.sourceMask = c; return d; }; ji.prototype = { d: null, itype: null, n: null, o: null, programType: null, q: null, s: null, sourceMask: null, type: null, toGLSL: function (a, b) { null == b && (b = 0); null == a && (a = !0); if (3 == this.type) return this.programType == Fg.VERTEX ? 'gl_Position' : 'gl_FragColor'; var c = 228 == this.s && 15 == this.sourceMask, d = ''; if (5 != this.type && !c) { if (0 != (this.sourceMask & 1)) switch (this.s & 3) { case 0: d += 'x'; break; case 1: d += 'y'; break; case 2: d += 'z'; break; case 3: d += 'w'; } if (0 != (this.sourceMask & 2)) switch ((this.s >> 2) & 3) { case 0: d += 'x'; break; case 1: d += 'y'; break; case 2: d += 'z'; break; case 3: d += 'w'; } if (0 != (this.sourceMask & 4)) switch ((this.s >> 4) & 3) { case 0: d += 'x'; break; case 1: d += 'y'; break; case 2: d += 'z'; break; case 3: d += 'w'; } if (0 != (this.sourceMask & 8)) switch ((this.s >> 6) & 3) { case 0: d += 'x'; break; case 1: d += 'y'; break; case 2: d += 'z'; break; case 3: d += 'w'; } } c = Ee.prefixFromType(this.type, this.programType); if (0 == this.d) c += this.n + b; else { c += this.o; var f = ''; switch (this.q) { case 0: f = 'x'; break; case 1: f = 'y'; break; case 2: f = 'z'; break; case 3: f = 'w'; } f = Ee.prefixFromType(this.itype, this.programType) + this.n + '.' + f; c += '[ int(' + f + ') +' + b + ']'; } a && '' != d && (c += '.' + d); return c; }, __class__: ji }; var fk = function (a, b) { this.version = 0; a.position = b; var c = a.readUTFBytes(3); a.position = b; if ('ATF' != c) throw M.thrown(new kd('ATF signature not found')); 255 == a.b[b + 6] ? ((this.version = a.b[b + 7]), (a.position = b + 8), (c = this.__readUInt32(a))) : ((this.version = 0), (a.position = b + 3), (c = this.__readUInt24(a))); if (Ba.gt(x.__cast(b + c, Ab), zb.get_length(a))) throw M.thrown(new kd('ATF length exceeds byte array length')); this.data = a; }; h['openfl.display3D._internal.ATFReader'] = fk; fk.__name__ = 'openfl.display3D._internal.ATFReader'; fk.prototype = { atfFormat: null, cubeMap: null, data: null, height: null, mipCount: null, version: null, width: null, readHeader: function (a, b, c) { var d = this.data.readUnsignedByte(), f = d >>> 7; if (!c && 0 != f) throw M.thrown(new kd('ATF Cube map not expected')); if (c && 1 != f) throw M.thrown(new kd('ATF Cube map expected')); this.cubeMap = c; this.atfFormat = d & 127; 3 != this.atfFormat && 5 != this.atfFormat && Xa.warn('Only ATF block compressed textures without JPEG-XR+LZMA are supported', { fileName: 'openfl/display3D/_internal/ATFReader.hx', lineNumber: 96, className: 'openfl.display3D._internal.ATFReader', methodName: 'readHeader' }); this.width = 1 << this.data.readUnsignedByte(); this.height = 1 << this.data.readUnsignedByte(); if (this.width != a || this.height != b) throw M.thrown(new kd('ATF width and height dont match')); this.mipCount = this.data.readUnsignedByte(); return 5 == this.atfFormat; }, readTextures: function (a) { for (var b = 3 > this.version ? 3 : 4, c = 0, d = this.cubeMap ? 6 : 1; c < d; ) for (var f = c++, g = 0, p = this.mipCount; g < p; ) for (var l = g++, k = 0, n = b; k < n; ) { var h = k++, m = 0 == this.version ? this.__readUInt24(this.data) : this.__readUInt32(this.data); if (Ba.gt(this.data.position + m, zb.get_length(this.data))) throw M.thrown(new kd('Block length exceeds ATF file length')); if (Ba.gt(m, 0)) { var t = new hb(new ArrayBuffer(m)), u = this.data, q = zb.fromBytes(t), r = 0, w = m; null == w && (w = 0); null == r && (r = 0); u.readBytes(q, r, w); a(f, l, h, this.width >> l, this.height >> l, m, t); } } }, __readUInt24: function (a) { var b = a.readUnsignedByte() << 16; b |= a.readUnsignedByte() << 8; return (b |= a.readUnsignedByte()); }, __readUInt32: function (a) { var b = a.readUnsignedByte() << 24; b |= a.readUnsignedByte() << 16; b |= a.readUnsignedByte() << 8; return (b |= a.readUnsignedByte()); }, __class__: fk }; var bk = function () { this.backBufferEnableDepthAndStencil = !1; this.blendDestinationAlphaFactor = 9; this.blendSourceAlphaFactor = 2; this.blendDestinationRGBFactor = 9; this.blendSourceRGBFactor = 2; this.colorMaskAlpha = this.colorMaskBlue = this.colorMaskGreen = this.colorMaskRed = !0; this.culling = 3; this.depthCompareMode = 4; this.depthMask = !0; this.samplerStates = []; this.scissorRectangle = new fa(); this.stencilCompareMode = 0; this.stencilPass = this.stencilFail = this.stencilDepthFail = 5; this.stencilReadMask = 255; this.stencilReferenceValue = 0; this.stencilTriangleFace = 2; this.stencilWriteMask = 255; this.textures = []; this.__frontFaceGLCCW = !0; this.__glBlendEquation = 32774; }; h['openfl.display3D._internal.Context3DState'] = bk; bk.__name__ = 'openfl.display3D._internal.Context3DState'; bk.prototype = { backBufferEnableDepthAndStencil: null, blendDestinationAlphaFactor: null, blendSourceAlphaFactor: null, blendDestinationRGBFactor: null, blendSourceRGBFactor: null, colorMaskRed: null, colorMaskGreen: null, colorMaskBlue: null, colorMaskAlpha: null, culling: null, depthCompareMode: null, depthMask: null, program: null, renderToTexture: null, renderToTextureAntiAlias: null, renderToTextureDepthStencil: null, renderToTextureSurfaceSelector: null, samplerStates: null, scissorEnabled: null, scissorRectangle: null, stencilCompareMode: null, stencilDepthFail: null, stencilFail: null, stencilPass: null, stencilReadMask: null, stencilReferenceValue: null, stencilTriangleFace: null, stencilWriteMask: null, textures: null, shader: null, __currentGLArrayBuffer: null, __currentGLElementArrayBuffer: null, __currentGLFramebuffer: null, __currentGLTexture2D: null, __currentGLTextureCubeMap: null, __enableGLBlend: null, __enableGLCullFace: null, __enableGLDepthTest: null, __enableGLScissorTest: null, __enableGLStencilTest: null, __frontFaceGLCCW: null, __glBlendEquation: null, __primaryGLFramebuffer: null, __rttDepthGLRenderbuffer: null, __rttGLFramebuffer: null, __rttGLRenderbuffer: null, __rttStencilGLRenderbuffer: null, __class__: bk }; var dc = function (a) { db.call(this); this.__context = a; var b = this.__context.gl; this.__textureID = b.createTexture(); this.__textureContext = this.__context.__context; if (null == dc.__supportsBGRA) { dc.__textureInternalFormat = b.RGBA; dc.__supportsBGRA = !1; dc.__textureFormat = b.RGBA; dc.__compressedFormats = new Za(); dc.__compressedFormatsAlpha = new Za(); a = b.getExtension('WEBGL_compressed_texture_s3tc'); var c = b.getExtension('WEBGL_compressed_texture_etc1'); b = b.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc'); if (null != a) { var d = a.COMPRESSED_RGBA_S3TC_DXT1_EXT; dc.__compressedFormats.h[0] = d; d = a.COMPRESSED_RGBA_S3TC_DXT5_EXT; dc.__compressedFormatsAlpha.h[0] = d; } null != c && ((d = c.COMPRESSED_RGB_ETC1_WEBGL), (dc.__compressedFormats.h[2] = d), (d = c.COMPRESSED_RGB_ETC1_WEBGL), (dc.__compressedFormatsAlpha.h[2] = d)); null != b && ((d = b.COMPRESSED_RGB_PVRTC_4BPPV1_IMG), (dc.__compressedFormats.h[1] = d), (d = b.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG), (dc.__compressedFormatsAlpha.h[1] = d)); } this.__internalFormat = dc.__textureInternalFormat; this.__format = dc.__textureFormat; }; h['openfl.display3D.textures.TextureBase'] = dc; dc.__name__ = 'openfl.display3D.textures.TextureBase'; dc.__super__ = db; dc.prototype = r(db.prototype, { __alphaTexture: null, __context: null, __format: null, __glDepthRenderbuffer: null, __glFramebuffer: null, __glStencilRenderbuffer: null, __height: null, __internalFormat: null, __optimizeForRenderToTexture: null, __samplerState: null, __streamingLevels: null, __textureContext: null, __textureID: null, __textureTarget: null, __width: null, dispose: function () { var a = this.__context.gl; null != this.__alphaTexture && (this.__alphaTexture.dispose(), (this.__alphaTexture = null)); null != this.__textureID && (a.deleteTexture(this.__textureID), (this.__textureID = null)); null != this.__glFramebuffer && (a.deleteFramebuffer(this.__glFramebuffer), (this.__glFramebuffer = null)); null != this.__glDepthRenderbuffer && (a.deleteRenderbuffer(this.__glDepthRenderbuffer), (this.__glDepthRenderbuffer = null)); null != this.__glStencilRenderbuffer && (a.deleteRenderbuffer(this.__glStencilRenderbuffer), (this.__glStencilRenderbuffer = null)); }, __getGLFramebuffer: function (a, b, c) { b = this.__context.gl; null == this.__glFramebuffer && ((this.__glFramebuffer = b.createFramebuffer()), this.__context.__bindGLFramebuffer(this.__glFramebuffer), b.framebufferTexture2D( b.FRAMEBUFFER, b.COLOR_ATTACHMENT0, b.TEXTURE_2D, this.__textureID, 0 ), this.__context.__enableErrorChecking && ((c = b.checkFramebufferStatus(b.FRAMEBUFFER)), c != b.FRAMEBUFFER_COMPLETE && Xa.warn( 'Error: Context3D.setRenderToTexture status:' + c + ' width:' + this.__width + ' height:' + this.__height, { fileName: 'openfl/display3D/textures/TextureBase.hx', lineNumber: 201, className: 'openfl.display3D.textures.TextureBase', methodName: '__getGLFramebuffer' } ))); a && null == this.__glDepthRenderbuffer && (this.__context.__bindGLFramebuffer(this.__glFramebuffer), 0 != $b.__glDepthStencil ? ((this.__glStencilRenderbuffer = this.__glDepthRenderbuffer = b.createRenderbuffer()), b.bindRenderbuffer(b.RENDERBUFFER, this.__glDepthRenderbuffer), b.renderbufferStorage( b.RENDERBUFFER, $b.__glDepthStencil, this.__width, this.__height ), b.framebufferRenderbuffer( b.FRAMEBUFFER, b.DEPTH_STENCIL_ATTACHMENT, b.RENDERBUFFER, this.__glDepthRenderbuffer )) : ((this.__glDepthRenderbuffer = b.createRenderbuffer()), (this.__glStencilRenderbuffer = b.createRenderbuffer()), b.bindRenderbuffer(b.RENDERBUFFER, this.__glDepthRenderbuffer), b.renderbufferStorage( b.RENDERBUFFER, b.DEPTH_COMPONENT16, this.__width, this.__height ), b.bindRenderbuffer(b.RENDERBUFFER, this.__glStencilRenderbuffer), b.renderbufferStorage( b.RENDERBUFFER, b.STENCIL_INDEX8, this.__width, this.__height ), b.framebufferRenderbuffer( b.FRAMEBUFFER, b.DEPTH_ATTACHMENT, b.RENDERBUFFER, this.__glDepthRenderbuffer ), b.framebufferRenderbuffer( b.FRAMEBUFFER, b.STENCIL_ATTACHMENT, b.RENDERBUFFER, this.__glStencilRenderbuffer )), this.__context.__enableErrorChecking && ((c = b.checkFramebufferStatus(b.FRAMEBUFFER)), c != b.FRAMEBUFFER_COMPLETE && Xa.warn( 'Error: Context3D.setRenderToTexture status:' + c + ' width:' + this.__width + ' height:' + this.__height, { fileName: 'openfl/display3D/textures/TextureBase.hx', lineNumber: 239, className: 'openfl.display3D.textures.TextureBase', methodName: '__getGLFramebuffer' } )), b.bindRenderbuffer(b.RENDERBUFFER, null)); return this.__glFramebuffer; }, __getImage: function (a) { var b = a.image; if (!a.__isValid || null == b) return null; Aa.sync(b, !1); a = this.__context.gl; b.type == ve.DATA || b.get_premultiplied() ? !b.get_premultiplied() && b.get_transparent() && (a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 0), (b = b.clone()), b.set_premultiplied(!0)) : a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1); 0 != b.get_format() && ((b = b.clone()), b.set_format(0), (b.buffer.premultiplied = !0)); return b; }, __getTexture: function () { return this.__textureID; }, __setSamplerState: function (a) { if (!a.equals(this.__samplerState)) { var b = this.__context.gl; this.__textureTarget == this.__context.gl.TEXTURE_CUBE_MAP ? this.__context.__bindGLTextureCubeMap(this.__textureID) : this.__context.__bindGLTexture2D(this.__textureID); var c; switch (a.wrap) { case 0: var d = (c = b.CLAMP_TO_EDGE); break; case 1: c = b.CLAMP_TO_EDGE; d = b.REPEAT; break; case 2: d = c = b.REPEAT; break; case 3: c = b.REPEAT; d = b.CLAMP_TO_EDGE; break; default: throw M.thrown(new dd('wrap bad enum')); } var f = 5 == a.filter ? b.NEAREST : b.LINEAR; switch (a.mipfilter) { case 0: var g = 5 == a.filter ? b.NEAREST_MIPMAP_LINEAR : b.LINEAR_MIPMAP_LINEAR; break; case 1: g = 5 == a.filter ? b.NEAREST_MIPMAP_NEAREST : b.LINEAR_MIPMAP_NEAREST; break; case 2: g = 5 == a.filter ? b.NEAREST : b.LINEAR; break; default: throw M.thrown(new dd('mipfiter bad enum')); } b.texParameteri(this.__textureTarget, b.TEXTURE_MIN_FILTER, g); b.texParameteri(this.__textureTarget, b.TEXTURE_MAG_FILTER, f); b.texParameteri(this.__textureTarget, b.TEXTURE_WRAP_S, c); b.texParameteri(this.__textureTarget, b.TEXTURE_WRAP_T, d); null == this.__samplerState && (this.__samplerState = a.clone()); this.__samplerState.copyFrom(a); return !0; } return !1; }, __uploadFromImage: function (a) { var b = this.__context.gl, c; if (this.__textureTarget == b.TEXTURE_2D) { if (1 == a.buffer.bitsPerPixel) var d = (c = b.ALPHA); else (c = dc.__textureInternalFormat), (d = dc.__textureFormat); this.__context.__bindGLTexture2D(this.__textureID); a.type == ve.DATA || a.get_premultiplied() ? !a.get_premultiplied() && a.get_transparent() && b.pixelStorei(b.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1) : b.pixelStorei(b.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1); a.type == ve.DATA ? bc.texImage2D( b, b.TEXTURE_2D, 0, c, a.buffer.width, a.buffer.height, 0, d, b.UNSIGNED_BYTE, a.get_data() ) : bc.texImage2D(b, b.TEXTURE_2D, 0, c, d, b.UNSIGNED_BYTE, a.get_src()); this.__context.__bindGLTexture2D(null); } }, __class__: dc }); var Zi = function (a, b, c, d, f) { dc.call(this, a); this.__width = this.__height = this.__size = b; this.__optimizeForRenderToTexture = d; this.__streamingLevels = f; this.__textureTarget = this.__context.gl.TEXTURE_CUBE_MAP; this.__uploadedSides = 0; }; h['openfl.display3D.textures.CubeTexture'] = Zi; Zi.__name__ = 'openfl.display3D.textures.CubeTexture'; Zi.__super__ = dc; Zi.prototype = r(dc.prototype, { __framebufferSurface: null, __size: null, __uploadedSides: null, uploadCompressedTextureFromByteArray: function (a, b, c) { null == c && (c = !1); var d = this; c ? Qe.delay(function () { d.__uploadCompressedTextureFromByteArray(a, b); var c = new oa('textureReady'); d.dispatchEvent(c); }, 1) : this.__uploadCompressedTextureFromByteArray(a, b); }, uploadFromBitmapData: function (a, b, c, d) { null == c && (c = 0); if ( null != a && ((d = this.__size >> c), 0 != d && ((a = this.__getImage(a)), null != a)) ) if (0 == c && null != a.buffer && null == a.buffer.data && null != a.buffer.get_src()) { var e = this.__context.gl; d = this.__size >> c; 0 != d && ((d = this.__sideToTarget(b)), this.__context.__bindGLTextureCubeMap(this.__textureID), bc.texImage2D( e, d, c, this.__internalFormat, this.__format, e.UNSIGNED_BYTE, a.buffer.get_src() ), this.__context.__bindGLTextureCubeMap(null), (this.__uploadedSides |= 1 << b)); } else this.uploadFromTypedArray(a.get_data(), b, c); }, uploadFromByteArray: function (a, b, c, d) { null == d && (d = 0); 0 == b ? this.uploadFromTypedArray(a.b, c, d) : ((a = zb.toArrayBuffer(a)), null == b && (b = 0), (b = null != a ? new Uint8Array(a, b) : null), this.uploadFromTypedArray(b, c, d)); }, uploadFromTypedArray: function (a, b, c) { null == c && (c = 0); if (null != a) { var d = this.__context.gl, f = this.__size >> c; if (0 != f) { var g = this.__sideToTarget(b); this.__context.__bindGLTextureCubeMap(this.__textureID); bc.texImage2D( d, g, c, this.__internalFormat, f, f, 0, this.__format, d.UNSIGNED_BYTE, a ); this.__context.__bindGLTextureCubeMap(null); this.__uploadedSides |= 1 << b; } } }, __getGLFramebuffer: function (a, b, c) { var d = this.__context.gl; null == this.__glFramebuffer && ((this.__glFramebuffer = d.createFramebuffer()), (this.__framebufferSurface = -1)); if ( this.__framebufferSurface != c && ((this.__framebufferSurface = c), this.__context.__bindGLFramebuffer(this.__glFramebuffer), d.framebufferTexture2D( d.FRAMEBUFFER, d.COLOR_ATTACHMENT0, d.TEXTURE_CUBE_MAP_POSITIVE_X + c, this.__textureID, 0 ), this.__context.__enableErrorChecking) ) { var f = d.checkFramebufferStatus(d.FRAMEBUFFER); f != d.FRAMEBUFFER_COMPLETE && Xa.error( 'Error: Context3D.setRenderToTexture status:' + f + ' width:' + this.__width + ' height:' + this.__height, { fileName: 'openfl/display3D/textures/CubeTexture.hx', lineNumber: 278, className: 'openfl.display3D.textures.CubeTexture', methodName: '__getGLFramebuffer' } ); } return dc.prototype.__getGLFramebuffer.call(this, a, b, c); }, __setSamplerState: function (a) { if (dc.prototype.__setSamplerState.call(this, a)) { var b = this.__context.gl; 2 == a.mipfilter || this.__samplerState.mipmapGenerated || (b.generateMipmap(b.TEXTURE_CUBE_MAP), (this.__samplerState.mipmapGenerated = !0)); if (0 != $b.__glMaxTextureMaxAnisotropy) { switch (a.filter) { case 0: a = 16; break; case 1: a = 2; break; case 2: a = 4; break; case 3: a = 8; break; default: a = 1; } a > $b.__glMaxTextureMaxAnisotropy && (a = $b.__glMaxTextureMaxAnisotropy); b.texParameterf(b.TEXTURE_CUBE_MAP, $b.__glTextureMaxAnisotropy, a); } return !0; } return !1; }, __sideToTarget: function (a) { var b = this.__context.gl; switch (a) { case 0: return b.TEXTURE_CUBE_MAP_POSITIVE_X; case 1: return b.TEXTURE_CUBE_MAP_NEGATIVE_X; case 2: return b.TEXTURE_CUBE_MAP_POSITIVE_Y; case 3: return b.TEXTURE_CUBE_MAP_NEGATIVE_Y; case 4: return b.TEXTURE_CUBE_MAP_POSITIVE_Z; case 5: return b.TEXTURE_CUBE_MAP_NEGATIVE_Z; default: throw M.thrown(new kd()); } }, __uploadCompressedTextureFromByteArray: function (a, b) { var c = this; a = new fk(a, b); var d = a.readHeader(this.__size, this.__size, !0), f = this.__context.gl; this.__context.__bindGLTextureCubeMap(this.__textureID); var g = !1; a.readTextures(function (a, b, e, l, k, p, n) { var h = d ? dc.__compressedFormatsAlpha.h[e] : dc.__compressedFormats.h[e]; if (0 != h) if ( ((g = !0), (a = c.__sideToTarget(a)), (c.__format = h), (c.__internalFormat = h), d && 2 == e) ) { p = (p / 2) | 0; var m = (e = null), v = null, t = null, u = n.b.buffer, q = 0; null == q && (q = 0); e = null != e ? new Uint8Array(e) : null != m ? new Uint8Array(m) : null != v ? new Uint8Array(v.__array) : null != t ? new Uint8Array(t) : null != u ? null == p ? new Uint8Array(u, q) : new Uint8Array(u, q, p) : null; bc.compressedTexImage2D(f, a, b, c.__internalFormat, l, k, 0, e); var r = new Zi( c.__context, c.__size, 3, c.__optimizeForRenderToTexture, c.__streamingLevels ); r.__format = h; r.__internalFormat = h; c.__context.__bindGLTextureCubeMap(r.__textureID); t = v = m = e = null; u = n.b.buffer; q = p; null == q && (q = 0); e = null != e ? new Uint8Array(e) : null != m ? new Uint8Array(m) : null != v ? new Uint8Array(v.__array) : null != t ? new Uint8Array(t) : null != u ? null == p ? new Uint8Array(u, q) : new Uint8Array(u, q, p) : null; bc.compressedTexImage2D(f, a, b, r.__internalFormat, l, k, 0, e); c.__alphaTexture = r; } else (t = v = m = e = null), (u = n.b.buffer), (q = 0), null == q && (q = 0), (e = null != e ? new Uint8Array(e) : null != m ? new Uint8Array(m) : null != v ? new Uint8Array(v.__array) : null != t ? new Uint8Array(t) : null != u ? null == p ? new Uint8Array(u, q) : new Uint8Array(u, q, p) : null), bc.compressedTexImage2D(f, a, b, c.__internalFormat, l, k, 0, e); }); if (!g) { a = this.__size * this.__size * 4; var k = (b = null), l = null, h = null, n = null; a = null != a ? new Uint8Array(a) : null != b ? new Uint8Array(b) : null != k ? new Uint8Array(k.__array) : null != l ? new Uint8Array(l) : null != h ? null == n ? new Uint8Array(h, 0) : new Uint8Array(h, 0, n) : null; bc.texImage2D( f, this.__sideToTarget(0), 0, this.__internalFormat, this.__size, this.__size, 0, this.__format, f.UNSIGNED_BYTE, a ); a = this.__size * this.__size * 4; n = h = l = k = b = null; a = null != a ? new Uint8Array(a) : null != b ? new Uint8Array(b) : null != k ? new Uint8Array(k.__array) : null != l ? new Uint8Array(l) : null != h ? null == n ? new Uint8Array(h, 0) : new Uint8Array(h, 0, n) : null; bc.texImage2D( f, this.__sideToTarget(1), 0, this.__internalFormat, this.__size, this.__size, 0, this.__format, f.UNSIGNED_BYTE, a ); a = this.__size * this.__size * 4; n = h = l = k = b = null; a = null != a ? new Uint8Array(a) : null != b ? new Uint8Array(b) : null != k ? new Uint8Array(k.__array) : null != l ? new Uint8Array(l) : null != h ? null == n ? new Uint8Array(h, 0) : new Uint8Array(h, 0, n) : null; bc.texImage2D( f, this.__sideToTarget(2), 0, this.__internalFormat, this.__size, this.__size, 0, this.__format, f.UNSIGNED_BYTE, a ); a = this.__size * this.__size * 4; n = h = l = k = b = null; a = null != a ? new Uint8Array(a) : null != b ? new Uint8Array(b) : null != k ? new Uint8Array(k.__array) : null != l ? new Uint8Array(l) : null != h ? null == n ? new Uint8Array(h, 0) : new Uint8Array(h, 0, n) : null; bc.texImage2D( f, this.__sideToTarget(3), 0, this.__internalFormat, this.__size, this.__size, 0, this.__format, f.UNSIGNED_BYTE, a ); a = this.__size * this.__size * 4; n = h = l = k = b = null; a = null != a ? new Uint8Array(a) : null != b ? new Uint8Array(b) : null != k ? new Uint8Array(k.__array) : null != l ? new Uint8Array(l) : null != h ? null == n ? new Uint8Array(h, 0) : new Uint8Array(h, 0, n) : null; bc.texImage2D( f, this.__sideToTarget(4), 0, this.__internalFormat, this.__size, this.__size, 0, this.__format, f.UNSIGNED_BYTE, a ); a = this.__size * this.__size * 4; n = h = l = k = b = null; a = null != a ? new Uint8Array(a) : null != b ? new Uint8Array(b) : null != k ? new Uint8Array(k.__array) : null != l ? new Uint8Array(l) : null != h ? null == n ? new Uint8Array(h, 0) : new Uint8Array(h, 0, n) : null; bc.texImage2D( f, this.__sideToTarget(5), 0, this.__internalFormat, this.__size, this.__size, 0, this.__format, f.UNSIGNED_BYTE, a ); } this.__context.__bindGLTextureCubeMap(null); }, __class__: Zi }); var ck = function (a, b, c, d, f) { dc.call(this, a); this.__width = b; this.__height = c; this.__optimizeForRenderToTexture = f; this.__textureTarget = this.__context.gl.TEXTURE_2D; this.uploadFromTypedArray(null); f && this.__getGLFramebuffer(!0, 0, 0); }; h['openfl.display3D.textures.RectangleTexture'] = ck; ck.__name__ = 'openfl.display3D.textures.RectangleTexture'; ck.__super__ = dc; ck.prototype = r(dc.prototype, { uploadFromBitmapData: function (a) { if (null != a && ((a = this.__getImage(a)), null != a)) if (null != a.buffer && null == a.buffer.data && null != a.buffer.get_src()) { var b = this.__context.gl; this.__context.__bindGLTexture2D(this.__textureID); bc.texImage2D( b, this.__textureTarget, 0, this.__internalFormat, this.__format, b.UNSIGNED_BYTE, a.buffer.get_src() ); this.__context.__bindGLTexture2D(null); } else this.uploadFromTypedArray(a.get_data()); }, uploadFromByteArray: function (a, b) { 0 == b ? this.uploadFromTypedArray(a.b) : ((a = zb.toArrayBuffer(a)), null == b && (b = 0), (b = null != a ? new Uint8Array(a, b) : null), this.uploadFromTypedArray(b)); }, uploadFromTypedArray: function (a) { var b = this.__context.gl; this.__context.__bindGLTexture2D(this.__textureID); bc.texImage2D( b, this.__textureTarget, 0, this.__internalFormat, this.__width, this.__height, 0, this.__format, b.UNSIGNED_BYTE, a ); this.__context.__bindGLTexture2D(null); }, __setSamplerState: function (a) { if (dc.prototype.__setSamplerState.call(this, a)) { var b = this.__context.gl; if (0 != $b.__glMaxTextureMaxAnisotropy) { switch (a.filter) { case 0: a = 16; break; case 1: a = 2; break; case 2: a = 4; break; case 3: a = 8; break; default: a = 1; } a > $b.__glMaxTextureMaxAnisotropy && (a = $b.__glMaxTextureMaxAnisotropy); b.texParameterf(b.TEXTURE_2D, $b.__glTextureMaxAnisotropy, a); } return !0; } return !1; }, __class__: ck }); var ii = function (a, b, c, d, f, g) { dc.call(this, a); this.__width = b; this.__height = c; this.__optimizeForRenderToTexture = f; this.__streamingLevels = g; a = this.__context.gl; this.__textureTarget = a.TEXTURE_2D; this.__context.__bindGLTexture2D(this.__textureID); bc.texImage2D( a, this.__textureTarget, 0, this.__internalFormat, this.__width, this.__height, 0, this.__format, a.UNSIGNED_BYTE, null ); this.__context.__bindGLTexture2D(null); f && this.__getGLFramebuffer(!0, 0, 0); }; h['openfl.display3D.textures.Texture'] = ii; ii.__name__ = 'openfl.display3D.textures.Texture'; ii.__super__ = dc; ii.prototype = r(dc.prototype, { uploadCompressedTextureFromByteArray: function (a, b, c) { null == c && (c = !1); var d = this; c ? Qe.delay(function () { d.__uploadCompressedTextureFromByteArray(a, b); var c = new oa('textureReady'); d.dispatchEvent(c); }, 1) : this.__uploadCompressedTextureFromByteArray(a, b); }, uploadFromBitmapData: function (a, b, c) { null == b && (b = 0); if (null != a) { c = this.__width >> b; var d = this.__height >> b; if (0 != c || 0 != d) { 0 == c && (c = 1); 0 == d && (d = 1); if (a.width != c || a.height != d) (c = new ja(c, d, !0, 0)), c.draw(a), (a = c); a = this.__getImage(a); if (null != a) if ( 0 == b && null != a.buffer && null == a.buffer.data && null != a.buffer.get_src() ) { var f = this.__context.gl; c = this.__width >> b; d = this.__height >> b; if (0 != c || 0 != d) this.__context.__bindGLTexture2D(this.__textureID), bc.texImage2D( f, this.__textureTarget, b, this.__internalFormat, this.__format, f.UNSIGNED_BYTE, a.buffer.get_src() ), this.__context.__bindGLTexture2D(null); } else this.uploadFromTypedArray(a.get_data(), b); } } }, uploadFromByteArray: function (a, b, c) { null == c && (c = 0); 0 == b ? this.uploadFromTypedArray(a.b, c) : ((a = zb.toArrayBuffer(a)), null == b && (b = 0), (b = null != a ? new Uint8Array(a, b) : null), this.uploadFromTypedArray(b, c)); }, uploadFromTypedArray: function (a, b) { null == b && (b = 0); if (null != a) { var c = this.__context.gl, d = this.__width >> b, f = this.__height >> b; if (0 != d || 0 != f) 0 == d && (d = 1), 0 == f && (f = 1), this.__context.__bindGLTexture2D(this.__textureID), bc.texImage2D( c, this.__textureTarget, b, this.__internalFormat, d, f, 0, this.__format, c.UNSIGNED_BYTE, a ), this.__context.__bindGLTexture2D(null); } }, __setSamplerState: function (a) { if (dc.prototype.__setSamplerState.call(this, a)) { var b = this.__context.gl; 2 == a.mipfilter || this.__samplerState.mipmapGenerated || (b.generateMipmap(b.TEXTURE_2D), (this.__samplerState.mipmapGenerated = !0)); if (0 != $b.__glMaxTextureMaxAnisotropy) { switch (a.filter) { case 0: a = 16; break; case 1: a = 2; break; case 2: a = 4; break; case 3: a = 8; break; default: a = 1; } a > $b.__glMaxTextureMaxAnisotropy && (a = $b.__glMaxTextureMaxAnisotropy); b.texParameterf(b.TEXTURE_2D, $b.__glTextureMaxAnisotropy, a); } return !0; } return !1; }, __uploadCompressedTextureFromByteArray: function (a, b) { var c = this; a = new fk(a, b); var d = a.readHeader(this.__width, this.__height, !1), f = this.__context.gl; this.__context.__bindGLTexture2D(this.__textureID); var g = !1; a.readTextures(function (a, b, e, k, h, m, t) { a = d ? dc.__compressedFormatsAlpha.h[e] : dc.__compressedFormats.h[e]; if (0 != a) if (((g = !0), (c.__format = a), (c.__internalFormat = a), d && 2 == e)) { m = (m / 2) | 0; var l = (e = null), p = null, n = null, v = t.b.buffer, u = 0; null == u && (u = 0); e = null != e ? new Uint8Array(e) : null != l ? new Uint8Array(l) : null != p ? new Uint8Array(p.__array) : null != n ? new Uint8Array(n) : null != v ? null == m ? new Uint8Array(v, u) : new Uint8Array(v, u, m) : null; bc.compressedTexImage2D(f, c.__textureTarget, b, c.__internalFormat, k, h, 0, e); var q = new ii( c.__context, c.__width, c.__height, 3, c.__optimizeForRenderToTexture, c.__streamingLevels ); q.__format = a; q.__internalFormat = a; c.__context.__bindGLTexture2D(q.__textureID); n = p = l = e = null; v = t.b.buffer; u = m; null == u && (u = 0); e = null != e ? new Uint8Array(e) : null != l ? new Uint8Array(l) : null != p ? new Uint8Array(p.__array) : null != n ? new Uint8Array(n) : null != v ? null == m ? new Uint8Array(v, u) : new Uint8Array(v, u, m) : null; bc.compressedTexImage2D(f, q.__textureTarget, b, q.__internalFormat, k, h, 0, e); c.__alphaTexture = q; } else (n = p = l = e = null), (v = t.b.buffer), (u = 0), null == u && (u = 0), (e = null != e ? new Uint8Array(e) : null != l ? new Uint8Array(l) : null != p ? new Uint8Array(p.__array) : null != n ? new Uint8Array(n) : null != v ? null == m ? new Uint8Array(v, u) : new Uint8Array(v, u, m) : null), bc.compressedTexImage2D(f, c.__textureTarget, b, c.__internalFormat, k, h, 0, e); }); g || ((a = this.__width * this.__height * 4), (a = null != a ? new Uint8Array(a) : null), bc.texImage2D( f, this.__textureTarget, 0, this.__internalFormat, this.__width, this.__height, 0, this.__format, f.UNSIGNED_BYTE, a )); this.__context.__bindGLTexture2D(null); }, __class__: ii }); var en = function (a) { dc.call(this, a); this.__textureTarget = this.__context.gl.TEXTURE_2D; }; h['openfl.display3D.textures.VideoTexture'] = en; en.__name__ = 'openfl.display3D.textures.VideoTexture'; en.__super__ = dc; en.prototype = r(dc.prototype, { videoHeight: null, videoWidth: null, __cacheTime: null, __netStream: null, attachNetStream: function (a) { var b = this; null != this.__netStream && this.__netStream.__video.removeEventListener('canplay', q(this, this.__onCanPlay), !1); this.__cacheTime = -1; this.__netStream = a; null != this.__netStream && (2 <= this.__netStream.__video.readyState ? Qe.delay(function () { b.__textureReady(); }, 0) : this.__netStream.__video.addEventListener( 'canplay', q(this, this.__onCanPlay), !1 )); }, dispose: function () { null != this.__netStream && null != this.__netStream.__video && this.__netStream.__video.removeEventListener( 'timeupdate', q(this, this.__onTimeUpdate) ); dc.prototype.dispose.call(this); }, __onCanPlay: function (a) { this.__netStream.__video.addEventListener('timeupdate', q(this, this.__onTimeUpdate)); this.__textureReady(); }, __onTimeUpdate: function (a) { null != this.__netStream && this.__netStream.__video.currentTime != this.__cacheTime && 2 <= this.__netStream.__video.readyState && this.__textureReady(); }, __getTexture: function () { if ( this.__netStream.__video.currentTime != this.__cacheTime && 2 <= this.__netStream.__video.readyState ) { var a = this.__context.gl; this.__context.__bindGLTexture2D(this.__textureID); bc.texImage2D( a, a.TEXTURE_2D, 0, a.RGBA, a.RGBA, a.UNSIGNED_BYTE, this.__netStream.__video ); this.__cacheTime = this.__netStream.__video.currentTime; } return this.__textureID; }, __textureReady: function () { this.videoWidth = this.__netStream.__video.videoWidth; this.videoHeight = this.__netStream.__video.videoHeight; var a = new oa('textureReady'); this.dispatchEvent(a); }, __class__: en }); var dd = function (a, b) { null == b && (b = 0); null == a && (a = ''); this.message = a; this.errorID = b; this.name = 'Error'; }; h['openfl.errors.Error'] = dd; dd.__name__ = 'openfl.errors.Error'; dd.prototype = { errorID: null, message: null, name: null, getStackTrace: function () { return mf.toString(mf.exceptionStack()); }, toString: function () { return null != this.message ? this.message : 'Error'; }, __class__: dd }; var qi = function (a) { null == a && (a = ''); dd.call(this, a); this.name = 'ArgumentError'; }; h['openfl.errors.ArgumentError'] = qi; qi.__name__ = 'openfl.errors.ArgumentError'; qi.__super__ = dd; qi.prototype = r(dd.prototype, { __class__: qi }); var bj = function (a) { null == a && (a = ''); dd.call(this, a); this.name = 'IOError'; }; h['openfl.errors.IOError'] = bj; bj.__name__ = 'openfl.errors.IOError'; bj.__super__ = dd; bj.prototype = r(dd.prototype, { __class__: bj }); var fh = function (a, b) { bj.call(this, 'End of file was encountered'); this.name = 'EOFError'; this.errorID = 2030; }; h['openfl.errors.EOFError'] = fh; fh.__name__ = 'openfl.errors.EOFError'; fh.__super__ = bj; fh.prototype = r(bj.prototype, { __class__: fh }); var kd = function (a) { null == a && (a = ''); dd.call(this, a, 0); this.name = 'IllegalOperationError'; }; h['openfl.errors.IllegalOperationError'] = kd; kd.__name__ = 'openfl.errors.IllegalOperationError'; kd.__super__ = dd; kd.prototype = r(dd.prototype, { __class__: kd }); var Ih = function (a) { null == a && (a = ''); dd.call(this, a, 0); this.name = 'RangeError'; }; h['openfl.errors.RangeError'] = Ih; Ih.__name__ = 'openfl.errors.RangeError'; Ih.__super__ = dd; Ih.prototype = r(dd.prototype, { __class__: Ih }); var gp = function (a) { null == a && (a = ''); dd.call(this, a, 0); this.name = 'SecurityError'; }; h['openfl.errors.SecurityError'] = gp; gp.__name__ = 'openfl.errors.SecurityError'; gp.__super__ = dd; gp.prototype = r(dd.prototype, { __class__: gp }); var oj = function (a) { null == a && (a = ''); dd.call(this, a, 0); this.name = 'TypeError'; }; h['openfl.errors.TypeError'] = oj; oj.__name__ = 'openfl.errors.TypeError'; oj.__super__ = dd; oj.prototype = r(dd.prototype, { __class__: oj }); var gh = function (a, b, c, d) { null == d && (d = !1); null == c && (c = !1); null == b && (b = !1); oa.call(this, a, b, c); this.activating = d; }; h['openfl.events.ActivityEvent'] = gh; gh.__name__ = 'openfl.events.ActivityEvent'; gh.__super__ = oa; gh.prototype = r(oa.prototype, { activating: null, clone: function () { var a = new gh(this.type, this.bubbles, this.cancelable, this.activating); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a; }, toString: function () { return this.__formatToString('ActivityEvent', [ 'type', 'bubbles', 'cancelable', 'activating' ]); }, __init: function () { oa.prototype.__init.call(this); this.activating = !1; }, __class__: gh }); var ef = function (a, b, c, d) { null == d && (d = ''); null == c && (c = !1); null == b && (b = !1); oa.call(this, a, b, c); this.text = d; }; h['openfl.events.TextEvent'] = ef; ef.__name__ = 'openfl.events.TextEvent'; ef.__super__ = oa; ef.prototype = r(oa.prototype, { text: null, clone: function () { var a = new ef(this.type, this.bubbles, this.cancelable, this.text); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a; }, toString: function () { return this.__formatToString('TextEvent', ['type', 'bubbles', 'cancelable', 'text']); }, __init: function () { oa.prototype.__init.call(this); this.text = ''; }, __class__: ef }); var Ue = function (a, b, c, d, f) { null == f && (f = 0); null == d && (d = ''); null == c && (c = !1); null == b && (b = !1); ef.call(this, a, b, c, d); this.errorID = f; }; h['openfl.events.ErrorEvent'] = Ue; Ue.__name__ = 'openfl.events.ErrorEvent'; Ue.__super__ = ef; Ue.prototype = r(ef.prototype, { errorID: null, clone: function () { var a = new Ue(this.type, this.bubbles, this.cancelable, this.text, this.errorID); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a; }, toString: function () { return this.__formatToString('ErrorEvent', [ 'type', 'bubbles', 'cancelable', 'text', 'errorID' ]); }, __init: function () { ef.prototype.__init.call(this); this.errorID = 0; }, __class__: Ue }); var nj = function (a) { this.active = !1; this.reset(a); }; h['openfl.events._EventDispatcher.DispatchIterator'] = nj; nj.__name__ = 'openfl.events._EventDispatcher.DispatchIterator'; nj.prototype = { active: null, index: null, isCopy: null, list: null, copy: function () { this.isCopy || ((this.list = this.list.slice()), (this.isCopy = !0)); }, hasNext: function () { return this.index < this.list.length; }, next: function () { return this.list[this.index++]; }, remove: function (a, b) { if (this.active) if (this.isCopy) { b = this.index; for (var c = this.list.length; b < c; ) { var d = b++; if (this.list[d] == a) { this.list.splice(d, 1); break; } } } else b < this.index && this.index--; }, reset: function (a) { this.list = a; this.isCopy = !1; this.index = 0; }, start: function () { this.active = !0; }, stop: function () { this.active = !1; }, __class__: nj }; var mj = function (a, b, c) { this.callback = a; this.useCapture = b; this.priority = c; }; h['openfl.events._EventDispatcher.Listener'] = mj; mj.__name__ = 'openfl.events._EventDispatcher.Listener'; mj.prototype = { callback: null, priority: null, useCapture: null, match: function (a, b) { return Z.compareMethods(this.callback, a) ? this.useCapture == b : !1; }, __class__: mj }; var Zf = function (a, b, c, d, f, g) { null == g && (g = 0); null == f && (f = !1); null == c && (c = !1); null == b && (b = !1); oa.call(this, a, b, c); this.keyCode = g; this.shiftKey = f; this.relatedObject = d; }; h['openfl.events.FocusEvent'] = Zf; Zf.__name__ = 'openfl.events.FocusEvent'; Zf.__super__ = oa; Zf.prototype = r(oa.prototype, { keyCode: null, relatedObject: null, shiftKey: null, clone: function () { var a = new Zf( this.type, this.bubbles, this.cancelable, this.relatedObject, this.shiftKey, this.keyCode ); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a; }, toString: function () { return this.__formatToString( 'FocusEvent', 'type bubbles cancelable relatedObject shiftKey keyCode'.split(' ') ); }, __init: function () { oa.prototype.__init.call(this); this.keyCode = 0; this.shiftKey = !1; this.relatedObject = null; }, __class__: Zf }); var eh = function (a, b, c, d, f) { null == f && (f = !1); null == d && (d = !1); null == c && (c = !1); null == b && (b = !1); gh.call(this, a, b, c); this.fullScreen = d; this.interactive = f; }; h['openfl.events.FullScreenEvent'] = eh; eh.__name__ = 'openfl.events.FullScreenEvent'; eh.__super__ = gh; eh.prototype = r(gh.prototype, { fullScreen: null, interactive: null, clone: function () { var a = new eh( this.type, this.bubbles, this.cancelable, this.fullScreen, this.interactive ); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a; }, toString: function () { return this.__formatToString('FullscreenEvent', [ 'type', 'bubbles', 'cancelable', 'fullscreen', 'interactive' ]); }, __init: function () { gh.prototype.__init.call(this); this.interactive = this.fullScreen = !1; }, __class__: eh }); var Gg = function (a, b, c, d) { null == c && (c = !1); null == b && (b = !0); oa.call(this, a, b, c); this.device = d; }; h['openfl.events.GameInputEvent'] = Gg; Gg.__name__ = 'openfl.events.GameInputEvent'; Gg.__super__ = oa; Gg.prototype = r(oa.prototype, { device: null, clone: function () { var a = new Gg(this.type, this.bubbles, this.cancelable, this.device); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a; }, toString: function () { return this.__formatToString('GameInputEvent', [ 'type', 'bubbles', 'cancelable', 'device' ]); }, __init: function () { oa.prototype.__init.call(this); this.device = null; }, __class__: Gg }); var ki = function (a, b, c, d, f) { null == f && (f = !1); null == d && (d = 0); null == c && (c = !1); null == b && (b = !1); this.status = d; this.redirected = f; oa.call(this, a, b, c); }; h['openfl.events.HTTPStatusEvent'] = ki; ki.__name__ = 'openfl.events.HTTPStatusEvent'; ki.__super__ = oa; ki.prototype = r(oa.prototype, { redirected: null, responseHeaders: null, responseURL: null, status: null, clone: function () { var a = new ki(this.type, this.bubbles, this.cancelable, this.status, this.redirected); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a; }, toString: function () { return this.__formatToString('HTTPStatusEvent', [ 'type', 'bubbles', 'cancelable', 'status', 'redirected' ]); }, __init: function () { oa.prototype.__init.call(this); this.status = 0; this.redirected = !1; }, __class__: ki }); var qg = function (a, b, c, d, f) { null == f && (f = 0); null == d && (d = ''); null == c && (c = !1); null == b && (b = !0); Ue.call(this, a, b, c, d, f); }; h['openfl.events.IOErrorEvent'] = qg; qg.__name__ = 'openfl.events.IOErrorEvent'; qg.__super__ = Ue; qg.prototype = r(Ue.prototype, { clone: function () { var a = new qg(this.type, this.bubbles, this.cancelable, this.text, this.errorID); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a; }, toString: function () { return this.__formatToString('IOErrorEvent', [ 'type', 'bubbles', 'cancelable', 'text', 'errorID' ]); }, __class__: qg }); var ei = function (a, b, c, d, f, g, k, l, h, n, t) { null == t && (t = !1); null == n && (n = !1); null == h && (h = !1); null == l && (l = !1); null == k && (k = !1); null == f && (f = 0); null == d && (d = 0); null == c && (c = !1); null == b && (b = !1); oa.call(this, a, b, c); this.charCode = d; this.keyCode = f; this.keyLocation = null != g ? g : 0; this.ctrlKey = k; this.altKey = l; this.shiftKey = h; this.controlKey = n; this.commandKey = t; }; h['openfl.events.KeyboardEvent'] = ei; ei.__name__ = 'openfl.events.KeyboardEvent'; ei.__super__ = oa; ei.prototype = r(oa.prototype, { altKey: null, charCode: null, commandKey: null, controlKey: null, ctrlKey: null, keyCode: null, keyLocation: null, shiftKey: null, clone: function () { var a = new ei( this.type, this.bubbles, this.cancelable, this.charCode, this.keyCode, this.keyLocation, this.ctrlKey, this.altKey, this.shiftKey, this.controlKey, this.commandKey ); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a; }, toString: function () { return this.__formatToString( 'KeyboardEvent', 'type bubbles cancelable charCode keyCode keyLocation ctrlKey altKey shiftKey'.split( ' ' ) ); }, __init: function () { oa.prototype.__init.call(this); this.keyLocation = this.keyCode = this.charCode = 0; this.commandKey = this.controlKey = this.shiftKey = this.altKey = this.ctrlKey = !1; }, __class__: ei }); var Lb = function (a, b, c, d, f, g, k, l, h, n, t, m, u) { null == u && (u = 0); null == m && (m = !1); null == t && (t = 0); null == n && (n = !1); null == h && (h = !1); null == l && (l = !1); null == k && (k = !1); null == f && (f = 0); null == d && (d = 0); null == c && (c = !1); null == b && (b = !0); oa.call(this, a, b, c); this.shiftKey = h; this.altKey = l; this.ctrlKey = k; this.bubbles = b; this.relatedObject = g; this.delta = t; this.localX = d; this.localY = f; this.buttonDown = n; this.commandKey = m; this.clickCount = u; this.isRelatedObjectInaccessible = !1; this.stageY = this.stageX = NaN; }; h['openfl.events.MouseEvent'] = Lb; Lb.__name__ = 'openfl.events.MouseEvent'; Lb.__create = function (a, b, c, d, f, g, k) { null == k && (k = 0); a = new Lb( a, !0, !1, f.x, f.y, null, Lb.__ctrlKey, Lb.__altKey, Lb.__shiftKey, Lb.__buttonDown, k, Lb.__commandKey ); a.stageX = c; a.stageY = d; a.target = g; return a; }; Lb.__super__ = oa; Lb.prototype = r(oa.prototype, { altKey: null, buttonDown: null, commandKey: null, clickCount: null, ctrlKey: null, delta: null, isRelatedObjectInaccessible: null, localX: null, localY: null, relatedObject: null, shiftKey: null, stageX: null, stageY: null, clone: function () { var a = new Lb( this.type, this.bubbles, this.cancelable, this.localX, this.localY, this.relatedObject, this.ctrlKey, this.altKey, this.shiftKey, this.buttonDown, this.delta, this.commandKey, this.clickCount ); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a; }, toString: function () { return this.__formatToString( 'MouseEvent', 'type bubbles cancelable localX localY relatedObject ctrlKey altKey shiftKey buttonDown delta'.split( ' ' ) ); }, updateAfterEvent: function () {}, __init: function () { oa.prototype.__init.call(this); this.bubbles = this.ctrlKey = this.altKey = this.shiftKey = !1; this.relatedObject = null; this.localY = this.localX = this.delta = 0; this.commandKey = this.buttonDown = !1; this.clickCount = 0; this.isRelatedObjectInaccessible = !1; this.stageY = this.stageX = NaN; }, __class__: Lb }); var li = function (a, b, c, d) { null == c && (c = !1); null == b && (b = !1); this.info = d; oa.call(this, a, b, c); }; h['openfl.events.NetStatusEvent'] = li; li.__name__ = 'openfl.events.NetStatusEvent'; li.__super__ = oa; li.prototype = r(oa.prototype, { info: null, clone: function () { var a = new li(this.type, this.bubbles, this.cancelable, this.info); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a; }, toString: function () { return this.__formatToString('NetStatusEvent', ['type', 'bubbles', 'cancelable', 'info']); }, __init: function () { oa.prototype.__init.call(this); this.info = null; }, __class__: li }); var Eg = function (a, b, c, d, f) { null == f && (f = 0); null == d && (d = 0); null == c && (c = !1); null == b && (b = !1); oa.call(this, a, b, c); this.bytesLoaded = d; this.bytesTotal = f; }; h['openfl.events.ProgressEvent'] = Eg; Eg.__name__ = 'openfl.events.ProgressEvent'; Eg.__super__ = oa; Eg.prototype = r(oa.prototype, { bytesLoaded: null, bytesTotal: null, clone: function () { var a = new Eg( this.type, this.bubbles, this.cancelable, this.bytesLoaded, this.bytesTotal ); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a; }, toString: function () { return this.__formatToString('ProgressEvent', [ 'type', 'bubbles', 'cancelable', 'bytesLoaded', 'bytesTotal' ]); }, __init: function () { oa.prototype.__init.call(this); this.bytesTotal = this.bytesLoaded = 0; }, __class__: Eg }); var ug = function (a, b, c, d, f, g) { null == g && (g = !0); null == c && (c = !1); null == b && (b = !1); oa.call(this, a, b, c); this.objectMatrix = d; this.objectColorTransform = f; this.allowSmoothing = g; }; h['openfl.events.RenderEvent'] = ug; ug.__name__ = 'openfl.events.RenderEvent'; ug.__super__ = oa; ug.prototype = r(oa.prototype, { allowSmoothing: null, objectColorTransform: null, objectMatrix: null, renderer: null, clone: function () { var a = new ug( this.type, this.bubbles, this.cancelable, this.objectMatrix.clone(), this.objectColorTransform.__clone(), this.allowSmoothing ); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a; }, toString: function () { return this.__formatToString('RenderEvent', ['type', 'bubbles', 'cancelable']); }, __init: function () { oa.prototype.__init.call(this); this.objectColorTransform = this.objectMatrix = null; this.allowSmoothing = !1; this.renderer = null; }, __class__: ug }); var cj = function (a, b, c, d, f) { null == f && (f = 0); null == d && (d = ''); null == c && (c = !1); null == b && (b = !1); Ue.call(this, a, b, c, d, f); }; h['openfl.events.SecurityErrorEvent'] = cj; cj.__name__ = 'openfl.events.SecurityErrorEvent'; cj.__super__ = Ue; cj.prototype = r(Ue.prototype, { clone: function () { var a = new cj(this.type, this.bubbles, this.cancelable, this.text, this.errorID); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a; }, toString: function () { return this.__formatToString('SecurityErrorEvent', [ 'type', 'bubbles', 'cancelable', 'text', 'errorID' ]); }, __class__: cj }); var Vd = function (a, b, c, d, f, g, k, l, h, n, t, m, u, q, r, w, x, z, E, I) { null == w && (w = !1); null == r && (r = !1); null == q && (q = !1); null == u && (u = !1); null == m && (m = !1); null == n && (n = 0); null == h && (h = 0); null == l && (l = 0); null == k && (k = 0); null == g && (g = 0); null == f && (f = !1); null == d && (d = 0); null == c && (c = !1); null == b && (b = !0); oa.call(this, a, b, c); this.touchPointID = d; this.isPrimaryTouchPoint = f; this.localX = g; this.localY = k; this.sizeX = l; this.sizeY = h; this.pressure = n; this.relatedObject = t; this.ctrlKey = m; this.altKey = u; this.shiftKey = q; this.commandKey = r; this.controlKey = w; this.stageY = this.stageX = NaN; }; h['openfl.events.TouchEvent'] = Vd; Vd.__name__ = 'openfl.events.TouchEvent'; Vd.__create = function (a, b, c, d, f, g) { a = new Vd(a, !0, !1, 0, !0, f.x, f.y, 1, 1, 1); a.stageX = c; a.stageY = d; a.target = g; return a; }; Vd.__super__ = oa; Vd.prototype = r(oa.prototype, { altKey: null, commandKey: null, controlKey: null, ctrlKey: null, delta: null, isPrimaryTouchPoint: null, localX: null, localY: null, pressure: null, relatedObject: null, shiftKey: null, sizeX: null, sizeY: null, stageX: null, stageY: null, touchPointID: null, clone: function () { var a = new Vd( this.type, this.bubbles, this.cancelable, this.touchPointID, this.isPrimaryTouchPoint, this.localX, this.localY, this.sizeX, this.sizeY, this.pressure, this.relatedObject, this.ctrlKey, this.altKey, this.shiftKey, this.commandKey, this.controlKey ); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a; }, toString: function () { return this.__formatToString( 'TouchEvent', 'type bubbles cancelable touchPointID isPrimaryTouchPoint localX localY sizeX sizeY pressure relatedObject ctrlKey altKey shiftKey commandKey controlKey'.split( ' ' ) ); }, updateAfterEvent: function () {}, __init: function () { oa.prototype.__init.call(this); this.touchPointID = 0; this.isPrimaryTouchPoint = !1; this.pressure = this.sizeY = this.sizeX = this.localY = this.localX = 0; this.relatedObject = null; this.controlKey = this.commandKey = this.shiftKey = this.altKey = this.ctrlKey = !1; this.stageY = this.stageX = NaN; }, __class__: Vd }); var Wi = function (a, b, c, d) { null == c && (c = !0); null == b && (b = !0); Ue.call(this, a, b, c); this.error = d; }; h['openfl.events.UncaughtErrorEvent'] = Wi; Wi.__name__ = 'openfl.events.UncaughtErrorEvent'; Wi.__super__ = Ue; Wi.prototype = r(Ue.prototype, { error: null, clone: function () { var a = new Wi(this.type, this.bubbles, this.cancelable, this.error); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a; }, toString: function () { return this.__formatToString('UncaughtErrorEvent', [ 'type', 'bubbles', 'cancelable', 'error' ]); }, __init: function () { Ue.prototype.__init.call(this); this.error = null; }, __class__: Wi }); var Tm = function () { db.call(this); }; h['openfl.events.UncaughtErrorEvents'] = Tm; Tm.__name__ = 'openfl.events.UncaughtErrorEvents'; Tm.__super__ = db; Tm.prototype = r(db.prototype, { __class__: Tm }); var dj = function () { this.__leftExtension = this.__bottomExtension = 0; this.__needSecondBitmapData = !0; this.__numShaderPasses = 0; this.__preserveObject = !1; this.__rightExtension = 0; this.__shaderBlendMode = 10; this.__topExtension = 0; this.__smooth = !0; }; h['openfl.filters.BitmapFilter'] = dj; dj.__name__ = 'openfl.filters.BitmapFilter'; dj.prototype = { __bottomExtension: null, __leftExtension: null, __needSecondBitmapData: null, __numShaderPasses: null, __preserveObject: null, __renderDirty: null, __rightExtension: null, __shaderBlendMode: null, __smooth: null, __topExtension: null, clone: function () { return new dj(); }, __applyFilter: function (a, b, c, d) { return b; }, __initShader: function (a, b, c) { return null; }, __class__: dj }; var ej = function (a) { null == this.__glFragmentSource && (this.__glFragmentSource = 'varying vec2 openfl_TextureCoordv;\n\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\tgl_FragColor = texture2D (openfl_Texture, openfl_TextureCoordv);\n\n\t\t}'); null == this.__glVertexSource && (this.__glVertexSource = 'attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t}'); df.call(this, a); this.__isGenerated = !0; this.__initGL(); }; h['openfl.filters.BitmapFilterShader'] = ej; ej.__name__ = 'openfl.filters.BitmapFilterShader'; ej.__super__ = df; ej.prototype = r(df.prototype, { openfl_Position: null, openfl_TextureCoord: null, openfl_Matrix: null, openfl_TextureSize: null, openfl_Texture: null, __class__: ej }); var gk = function () { null == this.__glFragmentSource && (this.__glFragmentSource = 'varying vec2 openfl_TextureCoordv;\n\t\tuniform sampler2D openfl_Texture;\n\n\t\tuniform mat4 uMultipliers;\n\t\tuniform vec4 uOffsets;\n\n\t\tvoid main(void) {\n\n\t\t\tvec4 color = texture2D (openfl_Texture, openfl_TextureCoordv);\n\n\t\t\tif (color.a == 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t} else {\n\n\t\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\t\t\t\tcolor = uOffsets + color * uMultipliers;\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a, color.a);\n\n\t\t\t}\n\n\t\t}'); null == this.__glVertexSource && (this.__glVertexSource = 'attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\n\t\t}'); ej.call(this); this.uMultipliers.value = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]; this.uOffsets.value = [0, 0, 0, 0]; this.__isGenerated = !0; this.__initGL(); }; h['openfl.filters._ColorMatrixFilter.ColorMatrixShader'] = gk; gk.__name__ = 'openfl.filters._ColorMatrixFilter.ColorMatrixShader'; gk.__super__ = ej; gk.prototype = r(ej.prototype, { init: function (a) { var b = this.uMultipliers.value, c = this.uOffsets.value; b[0] = a[0]; b[1] = a[1]; b[2] = a[2]; b[3] = a[3]; b[4] = a[5]; b[5] = a[6]; b[6] = a[7]; b[7] = a[8]; b[8] = a[10]; b[9] = a[11]; b[10] = a[12]; b[11] = a[13]; b[12] = a[15]; b[13] = a[16]; b[14] = a[17]; b[15] = a[18]; c[0] = a[4] / 255; c[1] = a[9] / 255; c[2] = a[14] / 255; c[3] = a[19] / 255; }, uMultipliers: null, uOffsets: null, __class__: gk }); var hg = function (a) { dj.call(this); this.set_matrix(a); this.__numShaderPasses = 1; this.__needSecondBitmapData = !1; }; h['openfl.filters.ColorMatrixFilter'] = hg; hg.__name__ = 'openfl.filters.ColorMatrixFilter'; hg.__super__ = dj; hg.prototype = r(dj.prototype, { __matrix: null, clone: function () { return new hg(this.__matrix); }, __applyFilter: function (a, b, c, d) { var e = b.image, g = a.image; Aa.convertToData(e); Aa.convertToData(g); var k = e.get_data(), l = g.get_data(), h = (d.x - c.x) | 0; d = (d.y - c.y) | 0; b = 4 * b.width; var n = 4 * a.width, t = e.buffer.format, m = g.buffer.format; e = e.buffer.premultiplied; g = g.buffer.premultiplied; for (var u, q = 0, r, w, x = c.y | 0, z = c.height | 0; x < z; ) for (var E = x++, I = c.x | 0, H = c.width | 0; I < H; ) { w = I++; r = E * b + 4 * w; w = (E + h) * n + 4 * (w + d); var C = t, A = e; null == A && (A = !1); null == C && (C = 0); switch (C) { case 0: u = ((k[r] & 255) << 24) | ((k[r + 1] & 255) << 16) | ((k[r + 2] & 255) << 8) | (k[r + 3] & 255); break; case 1: u = ((k[r + 1] & 255) << 24) | ((k[r + 2] & 255) << 16) | ((k[r + 3] & 255) << 8) | (k[r] & 255); break; case 2: u = ((k[r + 2] & 255) << 24) | ((k[r + 1] & 255) << 16) | ((k[r] & 255) << 8) | (k[r + 3] & 255); } A && 0 != (u & 255) && 255 != (u & 255) && ((N.unmult = 255 / (u & 255)), (u = ((N.__clamp[Math.round(((u >>> 24) & 255) * N.unmult)] & 255) << 24) | ((N.__clamp[Math.round(((u >>> 16) & 255) * N.unmult)] & 255) << 16) | ((N.__clamp[Math.round(((u >>> 8) & 255) * N.unmult)] & 255) << 8) | (u & 255))); 0 == (u & 255) ? (q = 0) : ((q = (((Math.max( 0, Math.min( this.__matrix[0] * ((u >>> 24) & 255) + this.__matrix[1] * ((u >>> 16) & 255) + this.__matrix[2] * ((u >>> 8) & 255) + this.__matrix[3] * (u & 255) + this.__matrix[4], 255 ) ) | 0) & 255) << 24) | (((q >>> 16) & 255) << 16) | (((q >>> 8) & 255) << 8) | (q & 255)), (q = (((q >>> 24) & 255) << 24) | (((Math.max( 0, Math.min( this.__matrix[5] * ((u >>> 24) & 255) + this.__matrix[6] * ((u >>> 16) & 255) + this.__matrix[7] * ((u >>> 8) & 255) + this.__matrix[8] * (u & 255) + this.__matrix[9], 255 ) ) | 0) & 255) << 16) | (((q >>> 8) & 255) << 8) | (q & 255)), (q = (((q >>> 24) & 255) << 24) | (((q >>> 16) & 255) << 16) | (((Math.max( 0, Math.min( this.__matrix[10] * ((u >>> 24) & 255) + this.__matrix[11] * ((u >>> 16) & 255) + this.__matrix[12] * ((u >>> 8) & 255) + this.__matrix[13] * (u & 255) + this.__matrix[14], 255 ) ) | 0) & 255) << 8) | (q & 255)), (q = (((q >>> 24) & 255) << 24) | (((q >>> 16) & 255) << 16) | (((q >>> 8) & 255) << 8) | ((Math.max( 0, Math.min( this.__matrix[15] * ((u >>> 24) & 255) + this.__matrix[16] * ((u >>> 16) & 255) + this.__matrix[17] * ((u >>> 8) & 255) + this.__matrix[18] * (u & 255) + this.__matrix[19], 255 ) ) | 0) & 255))); r = m; C = g; null == C && (C = !1); null == r && (r = 0); C && (0 == (q & 255) ? 0 != q && (q = 0) : 255 != (q & 255) && ((N.a16 = N.__alpha16[q & 255]), (q = ((((((q >>> 24) & 255) * N.a16) >> 16) & 255) << 24) | ((((((q >>> 16) & 255) * N.a16) >> 16) & 255) << 16) | ((((((q >>> 8) & 255) * N.a16) >> 16) & 255) << 8) | (q & 255)))); switch (r) { case 0: l[w] = (q >>> 24) & 255; l[w + 1] = (q >>> 16) & 255; l[w + 2] = (q >>> 8) & 255; l[w + 3] = q & 255; break; case 1: l[w] = q & 255; l[w + 1] = (q >>> 24) & 255; l[w + 2] = (q >>> 16) & 255; l[w + 3] = (q >>> 8) & 255; break; case 2: (l[w] = (q >>> 8) & 255), (l[w + 1] = (q >>> 16) & 255), (l[w + 2] = (q >>> 24) & 255), (l[w + 3] = q & 255); } } a.image.dirty = !0; return a; }, __initShader: function (a, b, c) { hg.__colorMatrixShader.init(this.get_matrix()); return hg.__colorMatrixShader; }, get_matrix: function () { return this.__matrix; }, set_matrix: function (a) { null == a && (a = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]); return (this.__matrix = a); }, __class__: hg, __properties__: { set_matrix: 'set_matrix', get_matrix: 'get_matrix' } }); var be = function (a) { null != a && 16 == a.get_length() ? (this.rawData = a.concat(null)) : (this.rawData = yb.toFloatVector( null, null, null, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] )); }; h['openfl.geom.Matrix3D'] = be; be.__name__ = 'openfl.geom.Matrix3D'; be.create2D = function (a, b, c, d) { null == d && (d = 0); null == c && (c = 1); var e = (d * Math.PI) / 180; d = Math.cos(e); e = Math.sin(e); return new be( yb.toFloatVector(null, null, null, [ d * c, -e * c, 0, 0, e * c, d * c, 0, 0, 0, 0, 1, 0, a, b, 0, 1 ]) ); }; be.createABCD = function (a, b, c, d, f, g) { return new be( yb.toFloatVector(null, null, null, [a, b, 0, 0, c, d, 0, 0, 0, 0, 1, 0, f, g, 0, 1]) ); }; be.createOrtho = function (a, b, c, d, f, g) { var e = 1 / (b - a), l = 1 / (d - c), k = 1 / (g - f); return new be( yb.toFloatVector(null, null, null, [ 2 * e, 0, 0, 0, 0, 2 * l, 0, 0, 0, 0, -2 * k, 0, -(a + b) * e, -(c + d) * l, -(f + g) * k, 1 ]) ); }; be.interpolate = function (a, b, c) { for (var d = new be(), f = 0; 16 > f; ) { var g = f++; d.rawData.set(g, a.rawData.get(g) + (b.rawData.get(g) - a.rawData.get(g)) * c); } return d; }; be.__getAxisRotation = function (a, b, c, d) { var e = new be(); a = new od(a, b, c); d = (Math.PI / 180) * -d; c = Math.cos(d); d = Math.sin(d); b = 1 - c; e.rawData.set(0, c + a.x * a.x * b); e.rawData.set(5, c + a.y * a.y * b); e.rawData.set(10, c + a.z * a.z * b); c = a.x * a.y * b; var g = a.z * d; e.rawData.set(4, c + g); e.rawData.set(1, c - g); c = a.x * a.z * b; g = a.y * d; e.rawData.set(8, c - g); e.rawData.set(2, c + g); c = a.y * a.z * b; g = a.x * d; e.rawData.set(9, c + g); e.rawData.set(6, c - g); return e; }; be.prototype = { rawData: null, append: function (a) { var b = this.rawData.get(0), c = this.rawData.get(4), d = this.rawData.get(8), f = this.rawData.get(12), g = this.rawData.get(1), k = this.rawData.get(5), l = this.rawData.get(9), h = this.rawData.get(13), n = this.rawData.get(2), t = this.rawData.get(6), m = this.rawData.get(10), u = this.rawData.get(14), q = this.rawData.get(3), r = this.rawData.get(7), w = this.rawData.get(11), x = this.rawData.get(15), z = a.rawData.get(0), E = a.rawData.get(4), I = a.rawData.get(8), H = a.rawData.get(12), C = a.rawData.get(1), A = a.rawData.get(5), D = a.rawData.get(9), ra = a.rawData.get(13), F = a.rawData.get(2), G = a.rawData.get(6), B = a.rawData.get(10), J = a.rawData.get(14), y = a.rawData.get(3), L = a.rawData.get(7), M = a.rawData.get(11); a = a.rawData.get(15); this.rawData.set(0, b * z + g * E + n * I + q * H); this.rawData.set(1, b * C + g * A + n * D + q * ra); this.rawData.set(2, b * F + g * G + n * B + q * J); this.rawData.set(3, b * y + g * L + n * M + q * a); this.rawData.set(4, c * z + k * E + t * I + r * H); this.rawData.set(5, c * C + k * A + t * D + r * ra); this.rawData.set(6, c * F + k * G + t * B + r * J); this.rawData.set(7, c * y + k * L + t * M + r * a); this.rawData.set(8, d * z + l * E + m * I + w * H); this.rawData.set(9, d * C + l * A + m * D + w * ra); this.rawData.set(10, d * F + l * G + m * B + w * J); this.rawData.set(11, d * y + l * L + m * M + w * a); this.rawData.set(12, f * z + h * E + u * I + x * H); this.rawData.set(13, f * C + h * A + u * D + x * ra); this.rawData.set(14, f * F + h * G + u * B + x * J); this.rawData.set(15, f * y + h * L + u * M + x * a); }, appendRotation: function (a, b, c) { var d = 0, f = d, g = f; null != c && ((g = c.x), (f = c.y), (d = c.z)); c = (a * Math.PI) / 180; a = Math.cos(c); c = Math.sin(c); var k = b.x, l = b.y; b = b.z; var h = k * k, n = l * l, t = b * b, m = h + n + t; if (0 != m) { var u = Math.sqrt(m); k /= u; l /= u; b /= u; h /= m; n /= m; t /= m; } m = 1 - a; u = new be(); var q = u.rawData; q.set(0, h + (n + t) * a); q.set(1, k * l * m + b * c); q.set(2, k * b * m - l * c); q.set(4, k * l * m - b * c); q.set(5, n + (h + t) * a); q.set(6, l * b * m + k * c); q.set(8, k * b * m + l * c); q.set(9, l * b * m - k * c); q.set(10, t + (h + n) * a); q.set(12, (g * (n + t) - k * (f * l + d * b)) * m + (f * b - d * l) * c); q.set(13, (f * (h + t) - l * (g * k + d * b)) * m + (d * k - g * b) * c); q.set(14, (d * (h + n) - b * (g * k + f * l)) * m + (g * l - f * k) * c); this.append(u); }, appendScale: function (a, b, c) { this.append( new be( yb.toFloatVector(null, null, null, [a, 0, 0, 0, 0, b, 0, 0, 0, 0, c, 0, 0, 0, 0, 1]) ) ); }, appendTranslation: function (a, b, c) { var d = this.rawData; d.set(12, d.get(12) + a); d = this.rawData; d.set(13, d.get(13) + b); d = this.rawData; d.set(14, d.get(14) + c); }, clone: function () { return new be(this.rawData.copy()); }, copyColumnFrom: function (a, b) { switch (a) { case 0: this.rawData.set(0, b.x); this.rawData.set(1, b.y); this.rawData.set(2, b.z); this.rawData.set(3, b.w); break; case 1: this.rawData.set(4, b.x); this.rawData.set(5, b.y); this.rawData.set(6, b.z); this.rawData.set(7, b.w); break; case 2: this.rawData.set(8, b.x); this.rawData.set(9, b.y); this.rawData.set(10, b.z); this.rawData.set(11, b.w); break; case 3: this.rawData.set(12, b.x), this.rawData.set(13, b.y), this.rawData.set(14, b.z), this.rawData.set(15, b.w); } }, copyColumnTo: function (a, b) { switch (a) { case 0: b.x = this.rawData.get(0); b.y = this.rawData.get(1); b.z = this.rawData.get(2); b.w = this.rawData.get(3); break; case 1: b.x = this.rawData.get(4); b.y = this.rawData.get(5); b.z = this.rawData.get(6); b.w = this.rawData.get(7); break; case 2: b.x = this.rawData.get(8); b.y = this.rawData.get(9); b.z = this.rawData.get(10); b.w = this.rawData.get(11); break; case 3: (b.x = this.rawData.get(12)), (b.y = this.rawData.get(13)), (b.z = this.rawData.get(14)), (b.w = this.rawData.get(15)); } }, copyFrom: function (a) { this.rawData = a.rawData.copy(); }, copyRawDataFrom: function (a, b, c) { null == c && (c = !1); null == b && (b = 0); c && this.transpose(); for (var d = 0, f = a.get_length() - b; d < f; ) { var g = d++; this.rawData.set(g, a.get(g + b)); } c && this.transpose(); }, copyRawDataTo: function (a, b, c) { null == c && (c = !1); null == b && (b = 0); c && this.transpose(); for (var d = 0, f = this.rawData.get_length(); d < f; ) { var g = d++; a.set(g + b, this.rawData.get(g)); } c && this.transpose(); }, copyRowFrom: function (a, b) { switch (a) { case 0: this.rawData.set(0, b.x); this.rawData.set(4, b.y); this.rawData.set(8, b.z); this.rawData.set(12, b.w); break; case 1: this.rawData.set(1, b.x); this.rawData.set(5, b.y); this.rawData.set(9, b.z); this.rawData.set(13, b.w); break; case 2: this.rawData.set(2, b.x); this.rawData.set(6, b.y); this.rawData.set(10, b.z); this.rawData.set(14, b.w); break; case 3: this.rawData.set(3, b.x), this.rawData.set(7, b.y), this.rawData.set(11, b.z), this.rawData.set(15, b.w); } }, copyRowTo: function (a, b) { switch (a) { case 0: b.x = this.rawData.get(0); b.y = this.rawData.get(4); b.z = this.rawData.get(8); b.w = this.rawData.get(12); break; case 1: b.x = this.rawData.get(1); b.y = this.rawData.get(5); b.z = this.rawData.get(9); b.w = this.rawData.get(13); break; case 2: b.x = this.rawData.get(2); b.y = this.rawData.get(6); b.z = this.rawData.get(10); b.w = this.rawData.get(14); break; case 3: (b.x = this.rawData.get(3)), (b.y = this.rawData.get(7)), (b.z = this.rawData.get(11)), (b.w = this.rawData.get(15)); } }, copyToMatrix3D: function (a) { a.rawData = this.rawData.copy(); }, decompose: function (a) { null == a && (a = 1); var b = yb.toObjectVector(null), c = this.clone().rawData.copy(), d = new od(c.get(12), c.get(13), c.get(14)); c.set(12, 0); c.set(13, 0); c.set(14, 0); var f = new od(); f.x = Math.sqrt(c.get(0) * c.get(0) + c.get(1) * c.get(1) + c.get(2) * c.get(2)); f.y = Math.sqrt(c.get(4) * c.get(4) + c.get(5) * c.get(5) + c.get(6) * c.get(6)); f.z = Math.sqrt(c.get(8) * c.get(8) + c.get(9) * c.get(9) + c.get(10) * c.get(10)); 0 > c.get(0) * (c.get(5) * c.get(10) - c.get(6) * c.get(9)) - c.get(1) * (c.get(4) * c.get(10) - c.get(6) * c.get(8)) + c.get(2) * (c.get(4) * c.get(9) - c.get(5) * c.get(8)) && (f.z = -f.z); var g = c; g.set(0, g.get(0) / f.x); g = c; g.set(1, g.get(1) / f.x); g = c; g.set(2, g.get(2) / f.x); g = c; g.set(4, g.get(4) / f.y); g = c; g.set(5, g.get(5) / f.y); g = c; g.set(6, g.get(6) / f.y); g = c; g.set(8, g.get(8) / f.z); g = c; g.set(9, g.get(9) / f.z); g = c; g.set(10, g.get(10) / f.z); g = new od(); switch (a) { case 0: g.w = Math.acos((c.get(0) + c.get(5) + c.get(10) - 1) / 2); a = Math.sqrt( (c.get(6) - c.get(9)) * (c.get(6) - c.get(9)) + (c.get(8) - c.get(2)) * (c.get(8) - c.get(2)) + (c.get(1) - c.get(4)) * (c.get(1) - c.get(4)) ); 0 != a ? ((g.x = (c.get(6) - c.get(9)) / a), (g.y = (c.get(8) - c.get(2)) / a), (g.z = (c.get(1) - c.get(4)) / a)) : (g.x = g.y = g.z = 0); break; case 1: g.y = Math.asin(-c.get(2)); 1 != c.get(2) && -1 != c.get(2) ? ((g.x = Math.atan2(c.get(6), c.get(10))), (g.z = Math.atan2(c.get(1), c.get(0)))) : ((g.z = 0), (g.x = Math.atan2(c.get(4), c.get(5)))); break; case 2: (a = c.get(0) + c.get(5) + c.get(10)), 0 < a ? ((g.w = Math.sqrt(1 + a) / 2), (g.x = (c.get(6) - c.get(9)) / (4 * g.w)), (g.y = (c.get(8) - c.get(2)) / (4 * g.w)), (g.z = (c.get(1) - c.get(4)) / (4 * g.w))) : c.get(0) > c.get(5) && c.get(0) > c.get(10) ? ((g.x = Math.sqrt(1 + c.get(0) - c.get(5) - c.get(10)) / 2), (g.w = (c.get(6) - c.get(9)) / (4 * g.x)), (g.y = (c.get(1) + c.get(4)) / (4 * g.x)), (g.z = (c.get(8) + c.get(2)) / (4 * g.x))) : c.get(5) > c.get(10) ? ((g.y = Math.sqrt(1 + c.get(5) - c.get(0) - c.get(10)) / 2), (g.x = (c.get(1) + c.get(4)) / (4 * g.y)), (g.w = (c.get(8) - c.get(2)) / (4 * g.y)), (g.z = (c.get(6) + c.get(9)) / (4 * g.y))) : ((g.z = Math.sqrt(1 + c.get(10) - c.get(0) - c.get(5)) / 2), (g.x = (c.get(8) + c.get(2)) / (4 * g.z)), (g.y = (c.get(6) + c.get(9)) / (4 * g.z)), (g.w = (c.get(1) - c.get(4)) / (4 * g.z))); } b.push(d); b.push(g); b.push(f); return b; }, deltaTransformVector: function (a) { var b = a.x, c = a.y; a = a.z; return new od( b * this.rawData.get(0) + c * this.rawData.get(4) + a * this.rawData.get(8), b * this.rawData.get(1) + c * this.rawData.get(5) + a * this.rawData.get(9), b * this.rawData.get(2) + c * this.rawData.get(6) + a * this.rawData.get(10), b * this.rawData.get(3) + c * this.rawData.get(7) + a * this.rawData.get(11) ); }, identity: function () { this.rawData = yb.toFloatVector( null, null, null, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] ); }, interpolateTo: function (a, b) { for (var c = 0; 16 > c; ) { var d = c++; this.rawData.set(d, this.rawData.get(d) + (a.rawData.get(d) - this.rawData.get(d)) * b); } }, invert: function () { var a = this.get_determinant(), b = 1e-11 < Math.abs(a); if (b) { a = 1 / a; var c = this.rawData.get(0), d = this.rawData.get(4), f = this.rawData.get(8), g = this.rawData.get(12), k = this.rawData.get(1), l = this.rawData.get(5), h = this.rawData.get(9), n = this.rawData.get(13), t = this.rawData.get(2), m = this.rawData.get(6), u = this.rawData.get(10), q = this.rawData.get(14), r = this.rawData.get(3), w = this.rawData.get(7), x = this.rawData.get(11), z = this.rawData.get(15); this.rawData.set( 0, a * (l * (u * z - q * x) - h * (m * z - q * w) + n * (m * x - u * w)) ); this.rawData.set( 1, -a * (k * (u * z - q * x) - h * (t * z - q * r) + n * (t * x - u * r)) ); this.rawData.set( 2, a * (k * (m * z - q * w) - l * (t * z - q * r) + n * (t * w - m * r)) ); this.rawData.set( 3, -a * (k * (m * x - u * w) - l * (t * x - u * r) + h * (t * w - m * r)) ); this.rawData.set( 4, -a * (d * (u * z - q * x) - f * (m * z - q * w) + g * (m * x - u * w)) ); this.rawData.set( 5, a * (c * (u * z - q * x) - f * (t * z - q * r) + g * (t * x - u * r)) ); this.rawData.set( 6, -a * (c * (m * z - q * w) - d * (t * z - q * r) + g * (t * w - m * r)) ); this.rawData.set( 7, a * (c * (m * x - u * w) - d * (t * x - u * r) + f * (t * w - m * r)) ); this.rawData.set( 8, a * (d * (h * z - n * x) - f * (l * z - n * w) + g * (l * x - h * w)) ); this.rawData.set( 9, -a * (c * (h * z - n * x) - f * (k * z - n * r) + g * (k * x - h * r)) ); this.rawData.set( 10, a * (c * (l * z - n * w) - d * (k * z - n * r) + g * (k * w - l * r)) ); this.rawData.set( 11, -a * (c * (l * x - h * w) - d * (k * x - h * r) + f * (k * w - l * r)) ); this.rawData.set( 12, -a * (d * (h * q - n * u) - f * (l * q - n * m) + g * (l * u - h * m)) ); this.rawData.set( 13, a * (c * (h * q - n * u) - f * (k * q - n * t) + g * (k * u - h * t)) ); this.rawData.set( 14, -a * (c * (l * q - n * m) - d * (k * q - n * t) + g * (k * m - l * t)) ); this.rawData.set( 15, a * (c * (l * u - h * m) - d * (k * u - h * t) + f * (k * m - l * t)) ); } return b; }, pointAt: function (a, b, c) { null == b && (b = new od(0, 0, -1)); null == c && (c = new od(0, -1, 0)); b = b.subtract(a); c = c.clone(); b.normalize(); c.normalize(); var d = b.clone(); d.scaleBy(c.dotProduct(b)); c = c.subtract(d); 0 < c.get_length() ? c.normalize() : (c = 0 != b.x ? new od(-b.y, b.x, 0) : new od(1, 0, 0)); d = c.crossProduct(b); d.normalize(); this.rawData.set(0, d.x); this.rawData.set(4, d.y); this.rawData.set(8, d.z); this.rawData.set(12, 0); this.rawData.set(1, c.x); this.rawData.set(5, c.y); this.rawData.set(9, c.z); this.rawData.set(13, 0); this.rawData.set(2, b.x); this.rawData.set(6, b.y); this.rawData.set(10, b.z); this.rawData.set(14, 0); this.rawData.set(3, a.x); this.rawData.set(7, a.y); this.rawData.set(11, a.z); this.rawData.set(15, 1); }, prepend: function (a) { var b = a.rawData.get(0), c = a.rawData.get(4), d = a.rawData.get(8), f = a.rawData.get(12), g = a.rawData.get(1), k = a.rawData.get(5), l = a.rawData.get(9), h = a.rawData.get(13), n = a.rawData.get(2), t = a.rawData.get(6), m = a.rawData.get(10), u = a.rawData.get(14), q = a.rawData.get(3), r = a.rawData.get(7), w = a.rawData.get(11); a = a.rawData.get(15); var x = this.rawData.get(0), z = this.rawData.get(4), E = this.rawData.get(8), I = this.rawData.get(12), H = this.rawData.get(1), C = this.rawData.get(5), A = this.rawData.get(9), D = this.rawData.get(13), ra = this.rawData.get(2), F = this.rawData.get(6), G = this.rawData.get(10), B = this.rawData.get(14), J = this.rawData.get(3), y = this.rawData.get(7), L = this.rawData.get(11), M = this.rawData.get(15); this.rawData.set(0, b * x + g * z + n * E + q * I); this.rawData.set(1, b * H + g * C + n * A + q * D); this.rawData.set(2, b * ra + g * F + n * G + q * B); this.rawData.set(3, b * J + g * y + n * L + q * M); this.rawData.set(4, c * x + k * z + t * E + r * I); this.rawData.set(5, c * H + k * C + t * A + r * D); this.rawData.set(6, c * ra + k * F + t * G + r * B); this.rawData.set(7, c * J + k * y + t * L + r * M); this.rawData.set(8, d * x + l * z + m * E + w * I); this.rawData.set(9, d * H + l * C + m * A + w * D); this.rawData.set(10, d * ra + l * F + m * G + w * B); this.rawData.set(11, d * J + l * y + m * L + w * M); this.rawData.set(12, f * x + h * z + u * E + a * I); this.rawData.set(13, f * H + h * C + u * A + a * D); this.rawData.set(14, f * ra + h * F + u * G + a * B); this.rawData.set(15, f * J + h * y + u * L + a * M); }, prependRotation: function (a, b, c) { var d = 0, f = d, g = f; null != c && ((g = c.x), (f = c.y), (d = c.z)); c = (a * Math.PI) / 180; a = Math.cos(c); c = Math.sin(c); var k = b.x, l = b.y; b = b.z; var h = k * k, n = l * l, t = b * b, m = h + n + t; if (0 != m) { var u = Math.sqrt(m); k /= u; l /= u; b /= u; h /= m; n /= m; t /= m; } m = 1 - a; u = new be(); var q = u.rawData; q.set(0, h + (n + t) * a); q.set(1, k * l * m + b * c); q.set(2, k * b * m - l * c); q.set(4, k * l * m - b * c); q.set(5, n + (h + t) * a); q.set(6, l * b * m + k * c); q.set(8, k * b * m + l * c); q.set(9, l * b * m - k * c); q.set(10, t + (h + n) * a); q.set(12, (g * (n + t) - k * (f * l + d * b)) * m + (f * b - d * l) * c); q.set(13, (f * (h + t) - l * (g * k + d * b)) * m + (d * k - g * b) * c); q.set(14, (d * (h + n) - b * (g * k + f * l)) * m + (g * l - f * k) * c); this.prepend(u); }, prependScale: function (a, b, c) { this.prepend( new be( yb.toFloatVector(null, null, null, [a, 0, 0, 0, 0, b, 0, 0, 0, 0, c, 0, 0, 0, 0, 1]) ) ); }, prependTranslation: function (a, b, c) { var d = new be(); d.set_position(new od(a, b, c)); this.prepend(d); }, recompose: function (a, b) { null == b && (b = 1); if (3 > a.get_length() || 0 == a.get(2).x || 0 == a.get(2).y || 0 == a.get(2).z) return !1; this.identity(); var c = []; c[0] = c[1] = c[2] = a.get(2).x; c[4] = c[5] = c[6] = a.get(2).y; c[8] = c[9] = c[10] = a.get(2).z; if (1 == b) { b = Math.cos(a.get(1).x); var d = Math.cos(a.get(1).y), f = Math.cos(a.get(1).z), g = Math.sin(a.get(1).x), k = Math.sin(a.get(1).y), l = Math.sin(a.get(1).z); this.rawData.set(0, d * f * c[0]); this.rawData.set(1, d * l * c[1]); this.rawData.set(2, -k * c[2]); this.rawData.set(3, 0); this.rawData.set(4, (g * k * f - b * l) * c[4]); this.rawData.set(5, (g * k * l + b * f) * c[5]); this.rawData.set(6, g * d * c[6]); this.rawData.set(7, 0); this.rawData.set(8, (b * k * f + g * l) * c[8]); this.rawData.set(9, (b * k * l - g * f) * c[9]); this.rawData.set(10, b * d * c[10]); } else (d = a.get(1).x), (f = a.get(1).y), (g = a.get(1).z), (k = a.get(1).w), 0 == b && ((d *= Math.sin(k / 2)), (f *= Math.sin(k / 2)), (g *= Math.sin(k / 2)), (k = Math.cos(k / 2))), this.rawData.set(0, (1 - 2 * f * f - 2 * g * g) * c[0]), this.rawData.set(1, (2 * d * f + 2 * k * g) * c[1]), this.rawData.set(2, (2 * d * g - 2 * k * f) * c[2]), this.rawData.set(3, 0), this.rawData.set(4, (2 * d * f - 2 * k * g) * c[4]), this.rawData.set(5, (1 - 2 * d * d - 2 * g * g) * c[5]), this.rawData.set(6, (2 * f * g + 2 * k * d) * c[6]), this.rawData.set(7, 0), this.rawData.set(8, (2 * d * g + 2 * k * f) * c[8]), this.rawData.set(9, (2 * f * g - 2 * k * d) * c[9]), this.rawData.set(10, (1 - 2 * d * d - 2 * f * f) * c[10]); this.rawData.set(11, 0); this.rawData.set(12, a.get(0).x); this.rawData.set(13, a.get(0).y); this.rawData.set(14, a.get(0).z); this.rawData.set(15, 1); 0 == a.get(2).x && this.rawData.set(0, 1e-15); 0 == a.get(2).y && this.rawData.set(5, 1e-15); 0 == a.get(2).z && this.rawData.set(10, 1e-15); return !(0 == a.get(2).x || 0 == a.get(2).y || 0 == a.get(2).y); }, transformVector: function (a) { var b = a.x, c = a.y; a = a.z; return new od( b * this.rawData.get(0) + c * this.rawData.get(4) + a * this.rawData.get(8) + this.rawData.get(12), b * this.rawData.get(1) + c * this.rawData.get(5) + a * this.rawData.get(9) + this.rawData.get(13), b * this.rawData.get(2) + c * this.rawData.get(6) + a * this.rawData.get(10) + this.rawData.get(14), b * this.rawData.get(3) + c * this.rawData.get(7) + a * this.rawData.get(11) + this.rawData.get(15) ); }, transformVectors: function (a, b) { for (var c = 0, d, f, g; c + 3 <= a.get_length(); ) (d = a.get(c)), (f = a.get(c + 1)), (g = a.get(c + 2)), b.set( c, d * this.rawData.get(0) + f * this.rawData.get(4) + g * this.rawData.get(8) + this.rawData.get(12) ), b.set( c + 1, d * this.rawData.get(1) + f * this.rawData.get(5) + g * this.rawData.get(9) + this.rawData.get(13) ), b.set( c + 2, d * this.rawData.get(2) + f * this.rawData.get(6) + g * this.rawData.get(10) + this.rawData.get(14) ), (c += 3); }, transpose: function () { var a = this.rawData.copy(); this.rawData.set(1, a.get(4)); this.rawData.set(2, a.get(8)); this.rawData.set(3, a.get(12)); this.rawData.set(4, a.get(1)); this.rawData.set(6, a.get(9)); this.rawData.set(7, a.get(13)); this.rawData.set(8, a.get(2)); this.rawData.set(9, a.get(6)); this.rawData.set(11, a.get(14)); this.rawData.set(12, a.get(3)); this.rawData.set(13, a.get(7)); this.rawData.set(14, a.get(11)); }, get_determinant: function () { return ( (this.rawData.get(0) * this.rawData.get(5) - this.rawData.get(4) * this.rawData.get(1)) * (this.rawData.get(10) * this.rawData.get(15) - this.rawData.get(14) * this.rawData.get(11)) - (this.rawData.get(0) * this.rawData.get(9) - this.rawData.get(8) * this.rawData.get(1)) * (this.rawData.get(6) * this.rawData.get(15) - this.rawData.get(14) * this.rawData.get(7)) + (this.rawData.get(0) * this.rawData.get(13) - this.rawData.get(12) * this.rawData.get(1)) * (this.rawData.get(6) * this.rawData.get(11) - this.rawData.get(10) * this.rawData.get(7)) + (this.rawData.get(4) * this.rawData.get(9) - this.rawData.get(8) * this.rawData.get(5)) * (this.rawData.get(2) * this.rawData.get(15) - this.rawData.get(14) * this.rawData.get(3)) - (this.rawData.get(4) * this.rawData.get(13) - this.rawData.get(12) * this.rawData.get(5)) * (this.rawData.get(2) * this.rawData.get(11) - this.rawData.get(10) * this.rawData.get(3)) + (this.rawData.get(8) * this.rawData.get(13) - this.rawData.get(12) * this.rawData.get(9)) * (this.rawData.get(2) * this.rawData.get(7) - this.rawData.get(6) * this.rawData.get(3)) ); }, get_position: function () { return new od(this.rawData.get(12), this.rawData.get(13), this.rawData.get(14)); }, set_position: function (a) { this.rawData.set(12, a.x); this.rawData.set(13, a.y); this.rawData.set(14, a.z); return a; }, __class__: be, __properties__: { set_position: 'set_position', get_position: 'get_position', get_determinant: 'get_determinant' } }; var tk = function (a) { this.__colorTransform = new Kc(); this.concatenatedColorTransform = new Kc(); this.pixelBounds = new fa(); this.__displayObject = a; this.__hasMatrix = !0; }; h['openfl.geom.Transform'] = tk; tk.__name__ = 'openfl.geom.Transform'; tk.prototype = { concatenatedColorTransform: null, pixelBounds: null, __colorTransform: null, __displayObject: null, __hasMatrix: null, __hasMatrix3D: null, get_colorTransform: function () { return this.__colorTransform; }, set_colorTransform: function (a) { this.__colorTransform.__equals(a, !1) || (this.__colorTransform.__copyFrom(a), null != a && this.__displayObject.set_alpha(a.alphaMultiplier), (a = this.__displayObject), a.__renderDirty || ((a.__renderDirty = !0), a.__setParentRenderDirty())); return this.__colorTransform; }, get_concatenatedMatrix: function () { return this.__hasMatrix ? this.__displayObject.__getWorldTransform().clone() : null; }, get_matrix: function () { return this.__hasMatrix ? this.__displayObject.__transform.clone() : null; }, set_matrix: function (a) { if (null == a) return (this.__hasMatrix = !1), null; this.__hasMatrix = !0; this.__hasMatrix3D = !1; null != this.__displayObject && this.__setTransform(a.a, a.b, a.c, a.d, a.tx, a.ty); return a; }, get_matrix3D: function () { if (this.__hasMatrix3D) { var a = this.__displayObject.__transform; return new be( yb.toFloatVector(null, null, null, [ a.a, a.b, 0, 0, a.c, a.d, 0, 0, 0, 0, 1, 0, a.tx, a.ty, 0, 1 ]) ); } return null; }, set_matrix3D: function (a) { if (null == a) return (this.__hasMatrix3D = !1), null; this.__hasMatrix = !1; this.__hasMatrix3D = !0; this.__setTransform( a.rawData.get(0), a.rawData.get(1), a.rawData.get(5), a.rawData.get(6), a.rawData.get(12), a.rawData.get(13) ); return a; }, __setTransform: function (a, b, c, d, f, g) { if (null != this.__displayObject) { var e = this.__displayObject.__transform; if (e.a != a || e.b != b || e.c != c || e.d != d || e.tx != f || e.ty != g) { var l = 0 == b ? a : Math.sqrt(a * a + b * b); var k = 0 == c ? d : Math.sqrt(c * c + d * d); this.__displayObject.__scaleX = l; this.__displayObject.__scaleY = k; l = (180 / Math.PI) * Math.atan2(d, c) - 90; l != this.__displayObject.__rotation && ((this.__displayObject.__rotation = l), (l *= Math.PI / 180), (this.__displayObject.__rotationSine = Math.sin(l)), (this.__displayObject.__rotationCosine = Math.cos(l))); e.a = a; e.b = b; e.c = c; e.d = d; e.tx = f; e.ty = g; this.__displayObject.__setTransformDirty(); } } }, __class__: tk, __properties__: { set_matrix3D: 'set_matrix3D', get_matrix3D: 'get_matrix3D', set_matrix: 'set_matrix', get_matrix: 'get_matrix', get_concatenatedMatrix: 'get_concatenatedMatrix', set_colorTransform: 'set_colorTransform', get_colorTransform: 'get_colorTransform' } }; var od = function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.w = d; this.x = a; this.y = b; this.z = c; }; h['openfl.geom.Vector3D'] = od; od.__name__ = 'openfl.geom.Vector3D'; od.__properties__ = { get_Z_AXIS: 'get_Z_AXIS', get_Y_AXIS: 'get_Y_AXIS', get_X_AXIS: 'get_X_AXIS' }; od.angleBetween = function (a, b) { var c = a.get_length(), d = b.get_length(); a = a.dotProduct(b); 0 != c && (a /= c); 0 != d && (a /= d); return Math.acos(a); }; od.distance = function (a, b) { var c = b.x - a.x, d = b.y - a.y; a = b.z - a.z; return Math.sqrt(c * c + d * d + a * a); }; od.get_X_AXIS = function () { return new od(1, 0, 0); }; od.get_Y_AXIS = function () { return new od(0, 1, 0); }; od.get_Z_AXIS = function () { return new od(0, 0, 1); }; od.prototype = { w: null, x: null, y: null, z: null, add: function (a) { return new od(this.x + a.x, this.y + a.y, this.z + a.z); }, clone: function () { return new od(this.x, this.y, this.z, this.w); }, copyFrom: function (a) { this.x = a.x; this.y = a.y; this.z = a.z; }, crossProduct: function (a) { return new od( this.y * a.z - this.z * a.y, this.z * a.x - this.x * a.z, this.x * a.y - this.y * a.x, 1 ); }, decrementBy: function (a) { this.x -= a.x; this.y -= a.y; this.z -= a.z; }, dotProduct: function (a) { return this.x * a.x + this.y * a.y + this.z * a.z; }, equals: function (a, b) { null == b && (b = !1); return this.x == a.x && this.y == a.y && this.z == a.z ? (b ? this.w == a.w : !0) : !1; }, incrementBy: function (a) { this.x += a.x; this.y += a.y; this.z += a.z; }, nearEquals: function (a, b, c) { null == c && (c = !1); return Math.abs(this.x - a.x) < b && Math.abs(this.y - a.y) < b && Math.abs(this.z - a.z) < b ? c ? Math.abs(this.w - a.w) < b : !0 : !1; }, negate: function () { this.x *= -1; this.y *= -1; this.z *= -1; }, normalize: function () { var a = this.get_length(); 0 != a && ((this.x /= a), (this.y /= a), (this.z /= a)); return a; }, project: function () { this.x /= this.w; this.y /= this.w; this.z /= this.w; }, scaleBy: function (a) { this.x *= a; this.y *= a; this.z *= a; }, setTo: function (a, b, c) { this.x = a; this.y = b; this.z = c; }, subtract: function (a) { return new od(this.x - a.x, this.y - a.y, this.z - a.z); }, toString: function () { return 'Vector3D(' + this.x + ', ' + this.y + ', ' + this.z + ')'; }, get_length: function () { return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); }, get_lengthSquared: function () { return this.x * this.x + this.y * this.y + this.z * this.z; }, __class__: od, __properties__: { get_lengthSquared: 'get_lengthSquared', get_length: 'get_length' } }; var hp = function () {}; h['openfl.media.ID3Info'] = hp; hp.__name__ = 'openfl.media.ID3Info'; hp.prototype = { album: null, artist: null, comment: null, genre: null, songName: null, track: null, year: null, __class__: hp }; var yf = function (a, b) { db.call(this, this); this.bytesTotal = this.bytesLoaded = 0; this.isBuffering = !1; this.url = null; null != a && this.load(a, b); }; h['openfl.media.Sound'] = yf; yf.__name__ = 'openfl.media.Sound'; yf.fromAudioBuffer = function (a) { var b = new yf(); b.__buffer = a; return b; }; yf.fromFile = function (a) { return yf.fromAudioBuffer(Wc.fromFile(a)); }; yf.loadFromFile = function (a) { return Wc.loadFromFile(a).then(function (a) { return kb.withValue(yf.fromAudioBuffer(a)); }); }; yf.loadFromFiles = function (a) { return Wc.loadFromFiles(a).then(function (a) { return kb.withValue(yf.fromAudioBuffer(a)); }); }; yf.__super__ = db; yf.prototype = r(db.prototype, { bytesLoaded: null, bytesTotal: null, isBuffering: null, url: null, __buffer: null, close: function () { null != this.__buffer && (this.__buffer.dispose(), (this.__buffer = null)); }, load: function (a, b) { var c = this; this.url = a.url; a = wa.getLibrary('default'); if (null != a && Object.prototype.hasOwnProperty.call(a.cachedAudioBuffers.h, this.url)) this.AudioBuffer_onURLLoad(a.cachedAudioBuffers.h[this.url]); else Wc.loadFromFile(this.url) .onComplete(q(this, this.AudioBuffer_onURLLoad)) .onError(function (a) { c.AudioBuffer_onURLLoad(null); }); }, loadCompressedDataFromByteArray: function (a, b) { if (null == a || 0 >= b) this.dispatchEvent(new qg('ioError')); else { if (Ba.gt(a.position, 0) || Ba.gt(zb.get_length(a), b)) { var c = b; null == c && (c = 0); var d = new pc(c), f = a.position; c = b; null == c && (c = 0); null == f && (f = 0); d.writeBytes(a, f, c); a = d; } this.__buffer = Wc.fromBytes(zb.toBytes(a)); null == this.__buffer ? this.dispatchEvent(new qg('ioError')) : this.dispatchEvent(new oa('complete')); } }, loadPCMFromByteArray: function (a, b, c, d, f) { null == f && (f = 44100); null == d && (d = !0); null == c && (c = 'float'); if (null == a) this.dispatchEvent(new qg('ioError')); else { c = 'float' == c ? 32 : 16; d = d ? 2 : 1; b = ((c / 8) * d * b) | 0; if (Ba.gt(a.position, 0) || Ba.gt(zb.get_length(a), b)) { var e = b; null == e && (e = 0); var k = (e = new pc(e)), l = a.position; e = b; null == e && (e = 0); null == l && (l = 0); k.writeBytes(a, l, e); a = k; } b = new Wc(); b.bitsPerSample = c; b.channels = d; a = zb.toArrayBuffer(a); e = null != a ? new Uint8Array(a, 0) : null; b.data = e; b.sampleRate = f | 0; this.__buffer = b; this.dispatchEvent(new oa('complete')); } }, play: function (a, b, c) { null == b && (b = 0); null == a && (a = 0); if (null == this.__buffer || 32 <= sd.__soundChannels.length) return null; c = null == c ? new lf() : c.clone(); var d = sd.__soundTransform.pan + c.pan; 1 < d && (d = 1); -1 > d && (d = -1); var f = sd.__soundTransform.volume * c.volume, g = new Uj(this.__buffer); g.offset = a | 0; 1 < b && g.set_loops(b - 1); g.set_gain(f); 0 != d && g.set_pan(d); return new hn(g, c); }, get_id3: function () { return new hp(); }, get_length: function () { return null != this.__buffer ? (1e3 * this.__buffer.get_src().duration()) | 0 : 0; }, AudioBuffer_onURLLoad: function (a) { null == a ? this.dispatchEvent(new qg('ioError')) : ((this.__buffer = a), this.dispatchEvent(new oa('complete'))); }, __class__: yf, __properties__: { get_length: 'get_length', get_id3: 'get_id3' } }); var hn = function (a, b) { db.call(this, this); this.rightPeak = this.leftPeak = 1; this.__soundTransform = null != b ? b : new lf(); null != a && ((this.__source = a), this.__source.onComplete.add(q(this, this.source_onComplete)), (this.__isValid = !0), this.__source.play()); sd.__registerSoundChannel(this); }; h['openfl.media.SoundChannel'] = hn; hn.__name__ = 'openfl.media.SoundChannel'; hn.__super__ = db; hn.prototype = r(db.prototype, { leftPeak: null, rightPeak: null, __isValid: null, __soundTransform: null, __source: null, stop: function () { sd.__unregisterSoundChannel(this); this.__isValid && (this.__source.stop(), this.__dispose()); }, __dispose: function () { this.__isValid && (this.__source.onComplete.remove(q(this, this.source_onComplete)), this.__source.dispose(), (this.__source = null), (this.__isValid = !1)); }, __updateTransform: function () { this.set_soundTransform(this.get_soundTransform()); }, get_position: function () { return this.__isValid ? this.__source.get_currentTime() + this.__source.offset : 0; }, set_position: function (a) { if (!this.__isValid) return 0; this.__source.set_currentTime((a | 0) - this.__source.offset); return a; }, get_soundTransform: function () { return this.__soundTransform.clone(); }, set_soundTransform: function (a) { if (null != a) { this.__soundTransform.pan = a.pan; this.__soundTransform.volume = a.volume; var b = sd.__soundTransform.pan + this.__soundTransform.pan; -1 > b && (b = -1); 1 < b && (b = 1); var c = sd.__soundTransform.volume * this.__soundTransform.volume; this.__isValid && (this.__source.set_gain(c), (0 == b && null == this.__source.get_pan()) || this.__source.set_pan(b)); } return a; }, source_onComplete: function () { sd.__unregisterSoundChannel(this); this.__dispose(); this.dispatchEvent(new oa('soundComplete')); }, __class__: hn, __properties__: { set_soundTransform: 'set_soundTransform', get_soundTransform: 'get_soundTransform', set_position: 'set_position', get_position: 'get_position' } }); var Mw = function (a, b) { null == b && (b = !1); null == a && (a = 1e3); this.bufferTime = a; this.checkPolicyFile = b; }; h['openfl.media.SoundLoaderContext'] = Mw; Mw.__name__ = 'openfl.media.SoundLoaderContext'; Mw.prototype = { bufferTime: null, checkPolicyFile: null, __class__: Mw }; var sd = function () {}; h['openfl.media.SoundMixer'] = sd; sd.__name__ = 'openfl.media.SoundMixer'; sd.__properties__ = { set_soundTransform: 'set_soundTransform', get_soundTransform: 'get_soundTransform' }; sd.areSoundsInaccessible = function () { return !1; }; sd.stopAll = function () { for (var a = 0, b = sd.__soundChannels; a < b.length; ) { var c = b[a]; ++a; c.stop(); } }; sd.__registerSoundChannel = function (a) { sd.__soundChannels.push(a); }; sd.__unregisterSoundChannel = function (a) { A.remove(sd.__soundChannels, a); }; sd.get_soundTransform = function () { return sd.__soundTransform; }; sd.set_soundTransform = function (a) { sd.__soundTransform = a.clone(); for (var b = 0, c = sd.__soundChannels; b < c.length; ) { var d = c[b]; ++b; d.__updateTransform(); } return a; }; var jn = function (a, b) { null == b && (b = 240); null == a && (a = 320); La.call(this); this.__drawableType = 8; this.__width = a; this.__height = b; this.__textureTime = -1; this.smoothing = !1; this.deblocking = 0; }; h['openfl.media.Video'] = jn; jn.__name__ = 'openfl.media.Video'; jn.__super__ = La; jn.prototype = r(La.prototype, { deblocking: null, smoothing: null, __active: null, __buffer: null, __bufferAlpha: null, __bufferColorTransform: null, __bufferContext: null, __bufferData: null, __dirty: null, __height: null, __indexBuffer: null, __indexBufferContext: null, __indexBufferData: null, __stream: null, __texture: null, __textureTime: null, __uvRect: null, __vertexBuffer: null, __vertexBufferContext: null, __vertexBufferData: null, __width: null, attachNetStream: function (a) { this.__stream = a; null == this.__stream || null == this.__stream.__video || this.__stream.__closed || this.__stream.__video.play(); }, clear: function () {}, __enterFrame: function (a) { this.__renderable && null != this.__stream && !this.__renderDirty && ((this.__renderDirty = !0), this.__setParentRenderDirty()); }, __getBounds: function (a, b) { var c = fa.__pool.get(); c.setTo(0, 0, this.__width, this.__height); c.__transform(c, b); a.__expand(c.x, c.y, c.width, c.height); fa.__pool.release(c); }, __getIndexBuffer: function (a) { if (null == this.__indexBuffer || this.__indexBufferContext != a.__context) (this.__indexBufferData = new Uint16Array(6)), (this.__indexBufferData[0] = 0), (this.__indexBufferData[1] = 1), (this.__indexBufferData[2] = 2), (this.__indexBufferData[3] = 2), (this.__indexBufferData[4] = 1), (this.__indexBufferData[5] = 3), (this.__indexBufferContext = a.__context), (this.__indexBuffer = a.createIndexBuffer(6)), this.__indexBuffer.uploadFromTypedArray(this.__indexBufferData); return this.__indexBuffer; }, __getTexture: function (a) { if (null == this.__stream || null == this.__stream.__video) return null; var b = a.__context.webgl, c = b.RGBA, d = b.RGBA; this.__stream.__closed || this.__stream.__video.currentTime == this.__textureTime || (null == this.__texture && (this.__texture = a.createRectangleTexture( this.__stream.__video.videoWidth, this.__stream.__video.videoHeight, 1, !1 )), a.__bindGLTexture2D(this.__texture.__textureID), bc.texImage2D(b, b.TEXTURE_2D, 0, c, d, b.UNSIGNED_BYTE, this.__stream.__video), (this.__textureTime = this.__stream.__video.currentTime)); return this.__texture; }, __getVertexBuffer: function (a) { if (null == this.__vertexBuffer || this.__vertexBufferContext != a.__context) (this.__vertexBufferData = new Float32Array(20)), (this.__vertexBufferData[0] = this.get_width()), (this.__vertexBufferData[1] = this.get_height()), (this.__vertexBufferData[3] = 1), (this.__vertexBufferData[4] = 1), (this.__vertexBufferData[6] = this.get_height()), (this.__vertexBufferData[9] = 1), (this.__vertexBufferData[10] = this.get_width()), (this.__vertexBufferData[13] = 1), (this.__vertexBufferContext = a.__context), (this.__vertexBuffer = a.createVertexBuffer(3, 5)), this.__vertexBuffer.uploadFromTypedArray( Yg.toArrayBufferView(this.__vertexBufferData) ); return this.__vertexBuffer; }, __hitTest: function (a, b, c, d, f, g) { if ( !g.get_visible() || this.__isMask || (null != this.get_mask() && !this.get_mask().__hitTestMask(a, b)) ) return !1; this.__getRenderTransform(); var e = this.__renderTransform, l = e.a * e.d - e.b * e.c; c = 0 == l ? -e.tx : (1 / l) * (e.c * (e.ty - b) + e.d * (a - e.tx)); e = this.__renderTransform; l = e.a * e.d - e.b * e.c; a = 0 == l ? -e.ty : (1 / l) * (e.a * (b - e.ty) + e.b * (e.tx - a)); return 0 < c && 0 < a && c <= this.__width && a <= this.__height ? (null == d || f || d.push(g), !0) : !1; }, __hitTestMask: function (a, b) { var c = na.__pool.get(); c.setTo(a, b); this.__globalToLocal(c, c); a = 0 < c.x && 0 < c.y && c.x <= this.__width && c.y <= this.__height; na.__pool.release(c); return a; }, get_height: function () { return this.__height * this.get_scaleY(); }, set_height: function (a) { if (1 != this.get_scaleY() || a != this.__height) this.__setTransformDirty(), (this.__dirty = !0); this.set_scaleY(1); return (this.__height = a); }, get_videoHeight: function () { return null != this.__stream && null != this.__stream.__video ? this.__stream.__video.videoHeight | 0 : 0; }, get_videoWidth: function () { return null != this.__stream && null != this.__stream.__video ? this.__stream.__video.videoWidth | 0 : 0; }, get_width: function () { return this.__width * this.__scaleX; }, set_width: function (a) { if (1 != this.__scaleX || this.__width != a) this.__setTransformDirty(), (this.__dirty = !0); this.set_scaleX(1); return (this.__width = a); }, __class__: jn, __properties__: r(La.prototype.__properties__, { get_videoWidth: 'get_videoWidth', get_videoHeight: 'get_videoHeight' }) }); var hk = function () { db.call(this); }; h['openfl.net.NetConnection'] = hk; hk.__name__ = 'openfl.net.NetConnection'; hk.__super__ = db; hk.prototype = r(db.prototype, { connect: function (a, b, c, d, f, g) { if (null != a) throw M.thrown('Error: Can only connect in "HTTP streaming" mode'); this.dispatchEvent( new li('netStatus', !1, !0, { code: 'NetConnection.Connect.Success' }) ); }, __class__: hk }); var kn = function (a, b) { db.call(this); this.__connection = a; this.__soundTransform = new lf(); this.__video = window.document.createElement('video'); this.__video.setAttribute('playsinline', ''); this.__video.setAttribute('webkit-playsinline', ''); this.__video.setAttribute('crossorigin', 'anonymous'); this.__video.addEventListener('error', q(this, this.video_onError), !1); this.__video.addEventListener('waiting', q(this, this.video_onWaiting), !1); this.__video.addEventListener('ended', q(this, this.video_onEnd), !1); this.__video.addEventListener('pause', q(this, this.video_onPause), !1); this.__video.addEventListener('seeking', q(this, this.video_onSeeking), !1); this.__video.addEventListener('playing', q(this, this.video_onPlaying), !1); this.__video.addEventListener('timeupdate', q(this, this.video_onTimeUpdate), !1); this.__video.addEventListener('loadstart', q(this, this.video_onLoadStart), !1); this.__video.addEventListener('stalled', q(this, this.video_onStalled), !1); this.__video.addEventListener('durationchanged', q(this, this.video_onDurationChanged), !1); this.__video.addEventListener('canplay', q(this, this.video_onCanPlay), !1); this.__video.addEventListener('canplaythrough', q(this, this.video_onCanPlayThrough), !1); this.__video.addEventListener('loadedmetadata', q(this, this.video_onLoadMetaData), !1); }; h['openfl.net.NetStream'] = kn; kn.__name__ = 'openfl.net.NetStream'; kn.__super__ = db; kn.prototype = r(db.prototype, { audioCodec: null, bufferLength: null, bufferTime: null, bytesLoaded: null, bytesTotal: null, checkPolicyFile: null, client: null, currentFPS: null, decodedFrames: null, liveDelay: null, objectEncoding: null, time: null, videoCode: null, __closed: null, __connection: null, __soundTransform: null, __timer: null, __video: null, close: function () { null != this.__video && ((this.__closed = !0), this.__video.pause(), (this.__video.src = ''), (this.time = 0)); }, dispose: function () { this.close(); this.__video = null; }, pause: function () { null != this.__video && this.__video.pause(); }, play: function (a, b, c, d, f, g) { null != this.__video && ((this.__video.volume = sd.__soundTransform.volume * this.__soundTransform.volume), 'string' == typeof a ? (this.__video.src = a) : (this.__video.srcObject = a), this.__video.play()); }, requestVideoStatus: function () { var a = this; null != this.__video && (null == this.__timer && (this.__timer = new Qe(1)), (this.__timer.run = function () { a.__video.paused ? a.__playStatus('NetStream.Play.pause') : a.__playStatus('NetStream.Play.playing'); a.__timer.stop(); })); }, resume: function () { null != this.__video && this.__video.play(); }, seek: function (a) { null != this.__video && (0 > a ? (a = 0) : a > this.__video.duration && (a = this.__video.duration), this.__dispatchStatus('NetStream.SeekStart.Notify'), (this.__video.currentTime = a)); }, togglePause: function () { null != this.__video && (this.__video.paused ? this.__video.play() : this.__video.pause()); }, __dispatchStatus: function (a) { a = new li('netStatus', !1, !1, { code: a }); this.__connection.dispatchEvent(a); this.dispatchEvent(a); }, __playStatus: function (a) { if (null != this.__video && null != this.client) try { var b = this.client.onPlayStatus; b({ code: a, duration: this.__video.duration, position: this.__video.currentTime, speed: this.__video.playbackRate, start: this.__video.startTime }); } catch (c) { la.lastError = c; } }, video_onCanPlay: function (a) { this.__playStatus('NetStream.Play.canplay'); }, video_onCanPlayThrough: function (a) { this.__playStatus('NetStream.Play.canplaythrough'); }, video_onDurationChanged: function (a) { this.__playStatus('NetStream.Play.durationchanged'); }, video_onEnd: function (a) { this.__dispatchStatus('NetStream.Play.Stop'); this.__dispatchStatus('NetStream.Play.Complete'); this.__playStatus('NetStream.Play.Complete'); }, video_onError: function (a) { this.__dispatchStatus('NetStream.Play.Stop'); this.__playStatus('NetStream.Play.error'); }, video_onLoadMetaData: function (a) { if (null != this.__video && null != this.client) try { var b = this.client.onMetaData; b({ width: this.__video.videoWidth, height: this.__video.videoHeight, duration: this.__video.duration }); } catch (c) { la.lastError = c; } }, video_onLoadStart: function (a) { this.__playStatus('NetStream.Play.loadstart'); }, video_onPause: function (a) { this.__playStatus('NetStream.Play.pause'); }, video_onPlaying: function (a) { this.__dispatchStatus('NetStream.Play.Start'); this.__playStatus('NetStream.Play.playing'); }, video_onSeeking: function (a) { this.__playStatus('NetStream.Play.seeking'); this.__dispatchStatus('NetStream.Seek.Complete'); }, video_onStalled: function (a) { this.__playStatus('NetStream.Play.stalled'); }, video_onTimeUpdate: function (a) { null != this.__video && ((this.time = this.__video.currentTime), this.__playStatus('NetStream.Play.timeupdate')); }, video_onWaiting: function (a) { this.__playStatus('NetStream.Play.waiting'); }, get_soundTransform: function () { return this.__soundTransform.clone(); }, set_soundTransform: function (a) { null != a && ((this.__soundTransform.pan = a.pan), (this.__soundTransform.volume = a.volume), null != this.__video && (this.__video.volume = sd.__soundTransform.volume * this.__soundTransform.volume)); return a; }, get_speed: function () { return null != this.__video ? this.__video.playbackRate : 1; }, set_speed: function (a) { return null != this.__video ? (this.__video.playbackRate = a) : a; }, __class__: kn, __properties__: { set_speed: 'set_speed', get_speed: 'get_speed', set_soundTransform: 'set_soundTransform', get_soundTransform: 'get_soundTransform' } }); var ld = function () { db.call(this); this.client = this; this.objectEncoding = ld.defaultObjectEncoding; }; h['openfl.net.SharedObject'] = ld; ld.__name__ = 'openfl.net.SharedObject'; ld.getLocal = function (a, b, c) { c = ' ~%&\\;:"\',<>?#'.split(''); var d = !0; if (null == a || '' == a) d = !1; else for (var f = 0; f < c.length; ) { var g = c[f]; ++f; if (-1 < a.indexOf(g)) { d = !1; break; } } if (!d) throw M.thrown(new dd('Error #2134: Cannot create SharedObject.')); null == ld.__sharedObjects && ((ld.__sharedObjects = new qa()), null != vd.current && vd.current.onExit.add(ld.application_onExit)); c = b + '/' + a; if (!Object.prototype.hasOwnProperty.call(ld.__sharedObjects.h, c)) { d = null; try { var k = Xg.getLocalStorage(); null == b && (null != k && ((d = k.getItem(window.location.href + ':' + a)), k.removeItem(window.location.href + ':' + a)), (b = window.location.pathname)); null != k && null == d && (d = k.getItem(b + ':' + a)); } catch (v) { la.lastError = v; } k = new ld(); k.data = {}; k.__localPath = b; k.__name = a; if (null != d && '' != d) try { var l = new Ke(d); l.setResolver({ resolveEnum: ma.resolveEnum, resolveClass: ld.__resolveClass }); k.data = l.unserialize(); } catch (v) { la.lastError = v; } ld.__sharedObjects.h[c] = k; } return ld.__sharedObjects.h[c]; }; ld.getRemote = function (a, b, c, d) { Dc.notImplemented({ fileName: 'openfl/net/SharedObject.hx', lineNumber: 808, className: 'openfl.net.SharedObject', methodName: 'getRemote' }); return null; }; ld.__getPath = function (a, b) { a = Wa.get_applicationStorageDirectory() + '/' + a + '/'; b = U.replace(b, '//', '/'); b = U.replace(b, '//', '/'); U.startsWith(b, '/') && (b = A.substr(b, 1, null)); U.endsWith(b, '/') && (b = b.substring(0, b.length - 1)); if (-1 < b.indexOf('/')) { var c = b.split('/'); b = ''; for (var d = 0, f = c.length - 1; d < f; ) { var g = d++; b += '#' + c[g] + '/'; } b += c[c.length - 1]; } return a + b + '.sol'; }; ld.__mkdir = function (a) {}; ld.__resolveClass = function (a) { return null != a ? (U.startsWith(a, 'neash.') && (a = U.replace(a, 'neash.', 'openfl.')), U.startsWith(a, 'native.') && (a = U.replace(a, 'native.', 'openfl.')), U.startsWith(a, 'flash.') && (a = U.replace(a, 'flash.', 'openfl.')), U.startsWith(a, 'openfl._v2.') && (a = U.replace(a, 'openfl._v2.', 'openfl.')), U.startsWith(a, 'openfl._legacy.') && (a = U.replace(a, 'openfl._legacy.', 'openfl.')), h[a]) : null; }; ld.application_onExit = function (a) { a = ld.__sharedObjects.h; for (var b = Object.keys(a), c = b.length, d = 0; d < c; ) a[b[d++]].flush(); }; ld.__super__ = db; ld.prototype = r(db.prototype, { client: null, data: null, fps: null, objectEncoding: null, __localPath: null, __name: null, clear: function () { this.data = {}; try { var a = Xg.getLocalStorage(); null != a && a.removeItem(this.__localPath + ':' + this.__name); } catch (b) { la.lastError = b; } }, close: function () {}, connect: function (a, b) { Dc.notImplemented({ fileName: 'openfl/net/SharedObject.hx', lineNumber: 392, className: 'openfl.net.SharedObject', methodName: 'connect' }); }, flush: function (a) { if (0 == Z.fields(this.data).length) return 0; a = Be.run(this.data); try { var b = Xg.getLocalStorage(); null != b && (b.removeItem(this.__localPath + ':' + this.__name), b.setItem(this.__localPath + ':' + this.__name, a)); } catch (c) { return (la.lastError = c), 1; } return 0; }, send: function (a) { Dc.notImplemented({ fileName: 'openfl/net/SharedObject.hx', lineNumber: 824, className: 'openfl.net.SharedObject', methodName: 'send' }); }, setDirty: function (a) {}, setProperty: function (a, b) { null != this.data && (this.data[a] = b); }, get_size: function () { try { var a = Be.run(this.data); return hb.ofString(a).length; } catch (b) { return (la.lastError = b), 0; } }, __class__: ld, __properties__: { get_size: 'get_size' } }); var sh = function (a) { db.call(this); this.bytesTotal = this.bytesLoaded = 0; this.dataFormat = 1; null != a && this.load(a); }; h['openfl.net.URLLoader'] = sh; sh.__name__ = 'openfl.net.URLLoader'; sh.__super__ = db; sh.prototype = r(db.prototype, { bytesLoaded: null, bytesTotal: null, data: null, dataFormat: null, __httpRequest: null, close: function () { null != this.__httpRequest && this.__httpRequest.cancel(); }, load: function (a) { var b = this; if (0 == this.dataFormat) { var c = new ym(); this.__prepareRequest(c, a); c.load() .onProgress(q(this, this.httpRequest_onProgress)) .onError(q(this, this.httpRequest_onError)) .onComplete(function (a) { b.__dispatchStatus(); b.data = a; a = new oa('complete'); b.dispatchEvent(a); }); } else (c = new Vj()), this.__prepareRequest(c, a), c .load() .onProgress(q(this, this.httpRequest_onProgress)) .onError(q(this, this.httpRequest_onError)) .onComplete(function (a) { b.__dispatchStatus(); b.data = a; a = new oa('complete'); b.dispatchEvent(a); }); }, __dispatchStatus: function () { var a = new ki('httpStatus', !1, !1, this.__httpRequest.responseStatus); a.responseURL = this.__httpRequest.uri; var b = []; if ( this.__httpRequest.enableResponseHeaders && null != this.__httpRequest.responseHeaders ) for (var c = 0, d = this.__httpRequest.responseHeaders; c < d.length; ) { var f = d[c]; ++c; b.push(new ip(f.name, f.value)); } a.responseHeaders = b; this.dispatchEvent(a); }, __prepareRequest: function (a, b) { this.__httpRequest = a; this.__httpRequest.uri = b.url; this.__httpRequest.method = b.method; if (null != b.data) if (ma.typeof(b.data) == sb.TObject) { var c = Z.fields(b.data); for (a = 0; a < c.length; ) { var d = c[a]; ++a; this.__httpRequest.formData.h[d] = Z.field(b.data, d); } } else this.__httpRequest.data = b.data instanceof hb ? b.data : hb.ofString(B.string(b.data)); this.__httpRequest.contentType = b.contentType; if (null != b.requestHeaders) for (a = 0, c = b.requestHeaders; a < c.length; ) (d = c[a]), ++a, this.__httpRequest.headers.push(new im(d.name, d.value)); this.__httpRequest.followRedirects = b.followRedirects; this.__httpRequest.timeout = b.idleTimeout | 0; this.__httpRequest.withCredentials = b.manageCookies; this.__httpRequest.userAgent = b.userAgent; this.__httpRequest.enableResponseHeaders = !0; }, httpRequest_onError: function (a) { this.__dispatchStatus(); var b = 403 == a ? new cj('securityError') : new qg('ioError'); b.text = B.string(a); this.dispatchEvent(b); }, httpRequest_onProgress: function (a, b) { var c = new Eg('progress'); c.bytesLoaded = a; c.bytesTotal = b; this.dispatchEvent(c); }, __class__: sh }); var Tg = function (a) { null != a && (this.url = a); this.contentType = null; this.followRedirects = Hh.followRedirects; this.idleTimeout = 0 < Hh.idleTimeout ? Hh.idleTimeout : 3e4; this.manageCookies = Hh.manageCookies; this.method = 'GET'; this.requestHeaders = []; this.userAgent = Hh.userAgent; }; h['openfl.net.URLRequest'] = Tg; Tg.__name__ = 'openfl.net.URLRequest'; Tg.prototype = { contentType: null, data: null, followRedirects: null, idleTimeout: null, manageCookies: null, method: null, requestHeaders: null, url: null, userAgent: null, __class__: Tg }; var Hh = function () {}; h['openfl.net.URLRequestDefaults'] = Hh; Hh.__name__ = 'openfl.net.URLRequestDefaults'; var ip = function (a, b) { null == b && (b = ''); null == a && (a = ''); this.name = a; this.value = b; }; h['openfl.net.URLRequestHeader'] = ip; ip.__name__ = 'openfl.net.URLRequestHeader'; ip.prototype = { name: null, value: null, __class__: ip }; var Ww = { _new: function (a) { var b = {}; null != a && Ww.decode(b, a); return b; }, decode: function (a, b) { for (var c = Z.fields(a), d = 0; d < c.length; ) { var f = c[d]; ++d; Z.deleteField(a, f); } c = b.split(';').join('&').split('&'); for (d = 0; d < c.length; ) if (((f = c[d]), ++d, (b = f.indexOf('=')), 0 < b)) { var g = A.substr(f, 0, b); g = decodeURIComponent(g.split('+').join(' ')); f = A.substr(f, b + 1, null); a[g] = decodeURIComponent(f.split('+').join(' ')); } else 0 != b && (a[decodeURIComponent(f.split('+').join(' '))] = ''); }, toString: function (a) { for (var b = [], c = Z.fields(a), d = 0; d < c.length; ) { var f = c[d]; ++d; var g = Z.field(a, f); if (-1 < f.indexOf('[]') && g instanceof Array) { var k = []; for (g = O(g); g.hasNext(); ) { var l = g.next(); k.push(encodeURIComponent(l)); } k = k.join('&' + f + '='); b.push(encodeURIComponent(f) + '=' + k); } else b.push(encodeURIComponent(f) + '=' + encodeURIComponent(g)); } return b.join('&'); } }, Ti = function (a) { this.parentDomain = null != a ? a : Ti.currentDomain; }; h['openfl.system.ApplicationDomain'] = Ti; Ti.__name__ = 'openfl.system.ApplicationDomain'; Ti.prototype = { parentDomain: null, getDefinition: function (a) { return h[a]; }, hasDefinition: function (a) { return null != h[a]; }, __class__: Ti }; var wc = function () {}; h['openfl.system.Capabilities'] = wc; wc.__name__ = 'openfl.system.Capabilities'; wc.__properties__ = { get_version: 'get_version', get_screenResolutionY: 'get_screenResolutionY', get_screenResolutionX: 'get_screenResolutionX', get_screenDPI: 'get_screenDPI', get_pixelAspectRatio: 'get_pixelAspectRatio', get_os: 'get_os', get_manufacturer: 'get_manufacturer', get_language: 'get_language', get_cpuArchitecture: 'get_cpuArchitecture' }; wc.hasMultiChannelAudio = function (a) { return !1; }; wc.get_cpuArchitecture = function () { return 'x86'; }; wc.get_language = function () { var a = Se.get_language(Se.get_currentLocale()); if (null != a) switch (((a = a.toLowerCase()), a)) { case 'cs': case 'da': case 'de': case 'en': case 'es': case 'fi': case 'fr': case 'hu': case 'it': case 'ja': case 'ko': case 'nb': case 'nl': case 'pl': case 'pt': case 'ru': case 'sv': case 'tr': return a; case 'zh': a = Se.get_region(Se.get_currentLocale()); if (null != a) switch (a.toUpperCase()) { case 'HANT': case 'TW': return 'zh-TW'; } return 'zh-CN'; default: return 'xu'; } return 'en'; }; wc.get_manufacturer = function () { var a = Wa.get_platformName(); return 'OpenFL' + (null != a ? ' ' + a : ''); }; wc.get_os = function () { var a = Wa.get_platformLabel(); return null != a ? a : ''; }; wc.get_pixelAspectRatio = function () { return 1; }; wc.get_screenDPI = function () { var a = null != Dc.application ? Dc.application.__window : null, b = 72; null != a && (b *= a.__scale); return b; }; wc.get_screenResolutionX = function () { var a = Dc.current.stage, b = 0; if (null == a) return 0; if (null != a.window) { var c = a.window.get_display(); null != c && (b = Math.ceil(c.currentMode.width * a.window.__scale)); } return 0 < b ? b : a.stageWidth; }; wc.get_screenResolutionY = function () { var a = Dc.current.stage, b = 0; if (null == a) return 0; if (null != a.window) { var c = a.window.get_display(); null != c && (b = Math.ceil(c.currentMode.height * a.window.__scale)); } return 0 < b ? b : a.stageHeight; }; wc.get_version = function () { return 'WEB ' + (U.replace('9.1.0', '.', ',') + ',0'); }; var Nw = function (a, b, c) { null == a && (a = !1); this.checkPolicyFile = a; this.securityDomain = c; this.applicationDomain = b; this.allowLoadBytesCodeExecution = this.allowCodeImport = !0; }; h['openfl.system.LoaderContext'] = Nw; Nw.__name__ = 'openfl.system.LoaderContext'; Nw.prototype = { allowCodeImport: null, allowLoadBytesCodeExecution: null, applicationDomain: null, checkPolicyFile: null, securityDomain: null, __class__: Nw }; var ik = function () {}; h['openfl.system.SecurityDomain'] = ik; ik.__name__ = 'openfl.system.SecurityDomain'; ik.prototype = { __class__: ik }; var cg = function () {}; h['openfl.system.System'] = cg; cg.__name__ = 'openfl.system.System'; cg.__properties__ = { get_vmVersion: 'get_vmVersion', get_totalMemory: 'get_totalMemory' }; cg.disposeXML = function (a) {}; cg.exit = function (a) { Wa.exit(a); }; cg.gc = function () {}; cg.pause = function () { Dc.notImplemented({ fileName: 'openfl/system/System.hx', lineNumber: 213, className: 'openfl.system.System', methodName: 'pause' }); }; cg.resume = function () { Dc.notImplemented({ fileName: 'openfl/system/System.hx', lineNumber: 229, className: 'openfl.system.System', methodName: 'resume' }); }; cg.setClipboard = function (a) { je.set_text(a); }; cg.get_totalMemory = function () { return window.performance && window.performance.memory ? window.performance.memory.usedJSHeapSize : 0; }; cg.get_vmVersion = function () { return '1.0.0'; }; var Sc = function (a) { Md.call(this, a); }; h['openfl.text.Font'] = Sc; Sc.__name__ = 'openfl.text.Font'; Sc.enumerateFonts = function (a) { return Sc.__registeredFonts; }; Sc.fromBytes = function (a) { var b = new Sc(); b.__fromBytes(zb.toBytes(a)); return b; }; Sc.fromFile = function (a) { var b = new Sc(); b.__fromFile(a); return b; }; Sc.loadFromBytes = function (a) { return Md.loadFromBytes(zb.toBytes(a)).then(function (a) { var b = new Sc(); b.__fromLimeFont(a); return kb.withValue(b); }); }; Sc.loadFromFile = function (a) { return Md.loadFromFile(a).then(function (a) { var b = new Sc(); b.__fromLimeFont(a); return kb.withValue(b); }); }; Sc.loadFromName = function (a) { return Md.loadFromName(a).then(function (a) { var b = new Sc(); b.__fromLimeFont(a); return kb.withValue(b); }); }; Sc.registerFont = function (a) { a = null == x.getClass(a) ? x.__cast(ma.createInstance(a, []), Sc) : x.__cast(a, Sc); null != a && (Sc.__registeredFonts.push(a), (Sc.__fontByName.h[a.name] = a)); }; Sc.__super__ = Md; Sc.prototype = r(Md.prototype, { fontStyle: null, fontType: null, __initialized: null, __fromLimeFont: function (a) { this.__copyFrom(a); }, __initialize: function () { return this.__initialized; }, get_fontName: function () { return this.name; }, set_fontName: function (a) { return (this.name = a); }, __class__: Sc, __properties__: { set_fontName: 'set_fontName', get_fontName: 'get_fontName' } }); var Ze = function () { this.__renderedOnCanvasWhileOnDOM = this.__forceCachedBitmapUpdate = !1; lb.call(this); this.__drawableType = 7; this.__caretIndex = -1; this.__displayAsPassword = !1; this.__graphics = new Ve(this); this.__textEngine = new Sb(this); this.__layoutDirty = !0; this.__offsetY = this.__offsetX = 0; this.__mouseWheelEnabled = !0; this.__text = ''; this.doubleClickEnabled = !0; null == Ze.__defaultTextFormat && ((Ze.__defaultTextFormat = new Qg( 'Times New Roman', 12, 0, !1, !1, !1, '', '', 3, 0, 0, 0, 0 )), (Ze.__defaultTextFormat.blockIndent = 0), (Ze.__defaultTextFormat.bullet = !1), (Ze.__defaultTextFormat.letterSpacing = 0), (Ze.__defaultTextFormat.kerning = !1)); this.__textFormat = Ze.__defaultTextFormat.clone(); this.__textEngine.textFormatRanges.push(new ff(this.__textFormat, 0, 0)); this.addEventListener('mouseDown', q(this, this.this_onMouseDown)); this.addEventListener('focusIn', q(this, this.this_onFocusIn)); this.addEventListener('focusOut', q(this, this.this_onFocusOut)); this.addEventListener('keyDown', q(this, this.this_onKeyDown)); this.addEventListener('mouseWheel', q(this, this.this_onMouseWheel)); this.addEventListener('doubleClick', q(this, this.this_onDoubleClick)); }; h['openfl.text.TextField'] = Ze; Ze.__name__ = 'openfl.text.TextField'; Ze.__super__ = lb; Ze.prototype = r(lb.prototype, { __bounds: null, __caretIndex: null, __cursorTimer: null, __dirty: null, __displayAsPassword: null, __domRender: null, __inputEnabled: null, __isHTML: null, __layoutDirty: null, __mouseWheelEnabled: null, __offsetX: null, __offsetY: null, __selectionIndex: null, __showCursor: null, __text: null, __htmlText: null, __textEngine: null, __textFormat: null, __div: null, __renderedOnCanvasWhileOnDOM: null, __rawHtmlText: null, __forceCachedBitmapUpdate: null, appendText: function (a) { null != a && '' != a && ((this.__layoutDirty = this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()), this.__updateText(this.__text + a), (this.__textEngine.textFormatRanges.get( this.__textEngine.textFormatRanges.get_length() - 1 ).end = this.__text.length), this.setSelection(this.__text.length, this.__text.length)); }, getCharBoundaries: function (a) { if (0 > a || a > this.__text.length - 1) return null; var b = new fa(); return this.__getCharBoundaries(a, b) ? b : null; }, getCharIndexAtPoint: function (a, b) { if (2 >= a || a > this.get_width() + 4 || 0 >= b || b > this.get_height() + 4) return -1; this.__updateLayout(); a += this.get_scrollH(); for (var c = 0, d = this.get_scrollV() - 1; c < d; ) { var f = c++; b += this.__textEngine.lineHeights.get(f); } for (c = this.__textEngine.layoutGroups.iterator(); c.hasNext(); ) { var g = c.next(); if ( b >= g.offsetY && b <= g.offsetY + g.height && a >= g.offsetX && a <= g.offsetX + g.width ) { c = b = 0; for (d = g.positions.length; c < d; ) if (((f = c++), (b += g.positions[f]), a <= g.offsetX + b)) return g.startIndex + f; return g.endIndex; } } return -1; }, getFirstCharInParagraph: function (a) { if (0 > a || a > this.get_text().length) return -1; for (var b = this.__textEngine.getLineBreakIndex(), c = 0; -1 < b; ) { if (b < a) c = b + 1; else if (b >= a) break; b = this.__textEngine.getLineBreakIndex(b + 1); } return c; }, getLineIndexAtPoint: function (a, b) { this.__updateLayout(); if (2 >= a || a > this.get_width() + 4 || 0 >= b || b > this.get_height() + 4) return -1; a = 0; for (var c = this.get_scrollV() - 1; a < c; ) { var d = a++; b += this.__textEngine.lineHeights.get(d); } for (a = this.__textEngine.layoutGroups.iterator(); a.hasNext(); ) if (((c = a.next()), b >= c.offsetY && b <= c.offsetY + c.height)) return c.lineIndex; return -1; }, getLineIndexOfChar: function (a) { if (0 > a || a > this.__text.length) return -1; this.__updateLayout(); for (var b = this.__textEngine.layoutGroups.iterator(); b.hasNext(); ) { var c = b.next(); if (c.startIndex <= a && c.endIndex >= a) return c.lineIndex; } return -1; }, getLineLength: function (a) { this.__updateLayout(); if (0 > a || a > this.__textEngine.numLines - 1) return 0; for (var b = -1, c = -1, d = this.__textEngine.layoutGroups.iterator(); d.hasNext(); ) { var f = d.next(); if (f.lineIndex == a) -1 == b && (b = f.startIndex); else if (f.lineIndex == a + 1) { c = f.startIndex; break; } } -1 == c && (c = this.__text.length); return c - b; }, getLineMetrics: function (a) { this.__updateLayout(); var b = this.__textEngine.lineAscents.get(a), c = this.__textEngine.lineDescents.get(a), d = this.__textEngine.lineLeadings.get(a), f = this.__textEngine.lineHeights.get(a); a = this.__textEngine.lineWidths.get(a); switch (this.__textFormat.align) { case 0: var g = (this.__textEngine.width - a) / 2; break; case 1: case 4: g = this.__textEngine.width - a - 2; break; case 2: case 3: case 5: g = 2; } return new jp(g, a, f, b, c, d); }, getLineOffset: function (a) { this.__updateLayout(); if (0 > a || a > this.__textEngine.numLines - 1) return -1; for (var b = this.__textEngine.layoutGroups.iterator(); b.hasNext(); ) { var c = b.next(); if (c.lineIndex == a) return c.startIndex; } return 0; }, getLineText: function (a) { this.__updateLayout(); if (0 > a || a > this.__textEngine.numLines - 1) return null; for (var b = -1, c = -1, d = this.__textEngine.layoutGroups.iterator(); d.hasNext(); ) { var f = d.next(); if (f.lineIndex == a) -1 == b && (b = f.startIndex); else if (f.lineIndex == a + 1) { c = f.startIndex; break; } } -1 == c && (c = this.__text.length); return this.__textEngine.text.substring(b, c); }, getParagraphLength: function (a) { if (0 > a || a > this.get_text().length) return -1; var b = this.getFirstCharInParagraph(a); if (a >= this.get_text().length) return this.get_text().length - b + 1; a = this.__textEngine.getLineBreakIndex(a) + 1; 0 == a && (a = this.__text.length); return a - b; }, getTextFormat: function (a, b) { null == b && (b = -1); null == a && (a = -1); var c = null; if (a >= this.get_text().length || -1 > a || b > this.get_text().length || -1 > b) throw M.thrown(new Ih('The supplied index is out of bounds')); -1 == a && (a = 0); -1 == b && (b = this.get_text().length); if (a >= b) return new Qg(); for (var d = this.__textEngine.textFormatRanges.iterator(); d.hasNext(); ) { var f = d.next(); if ((f.start <= a && f.end > a) || (f.start < b && f.end >= b)) null == c ? (c = f.format.clone()) : (f.format.font != c.font && (c.font = null), f.format.size != c.size && (c.size = null), f.format.color != c.color && (c.color = null), f.format.bold != c.bold && (c.bold = null), f.format.italic != c.italic && (c.italic = null), f.format.underline != c.underline && (c.underline = null), f.format.url != c.url && (c.url = null), f.format.target != c.target && (c.target = null), f.format.align != c.align && (c.align = null), f.format.leftMargin != c.leftMargin && (c.leftMargin = null), f.format.rightMargin != c.rightMargin && (c.rightMargin = null), f.format.indent != c.indent && (c.indent = null), f.format.leading != c.leading && (c.leading = null), f.format.blockIndent != c.blockIndent && (c.blockIndent = null), f.format.bullet != c.bullet && (c.bullet = null), f.format.kerning != c.kerning && (c.kerning = null), f.format.letterSpacing != c.letterSpacing && (c.letterSpacing = null), f.format.tabStops != c.tabStops && (c.tabStops = null)); } null == c && (c = new Qg()); return c; }, replaceSelectedText: function (a) { this.__replaceSelectedText(a, !1); }, replaceText: function (a, b, c) { this.__replaceText(a, b, c, !1); }, setSelection: function (a, b) { this.__selectionIndex = a; this.__caretIndex = b; this.__updateScrollV(); this.__updateScrollH(); null != this.stage && this.stage.get_focus() == this && (this.__stopCursorTimer(), this.__startCursorTimer()); }, setTextFormat: function (a, b, c) { null == c && (c = -1); null == b && (b = -1); var d = this.get_text().length; -1 == b ? (-1 == c && (c = d), (b = 0)) : -1 == c && (c = b + 1); if (b != c) { if (0 > b || 0 >= c || c < b || b >= d || c > d) throw M.thrown(new Ih()); if (0 == b && c == d) { this.__textEngine.textFormatRanges.set_length(1); var f = this.__textEngine.textFormatRanges.get(0); f.start = 0; f.end = d; f.format.__merge(a); } else { d = 0; for (var g; d < this.__textEngine.textFormatRanges.get_length(); ) if (((f = this.__textEngine.textFormatRanges.get(d)), f.end <= b)) ++d; else if (f.start >= c) break; else if (f.start <= b && f.end >= c) if (f.start == b && f.end == c) { f.format = f.format.clone(); f.format.__merge(a); break; } else if (f.start == b) (g = new ff(f.format.clone(), b, c)), g.format.__merge(a), this.__textEngine.textFormatRanges.insertAt(d, g), (f.start = c), (d += 2); else { f.end == c ? ((g = new ff(f.format.clone(), b, c)), g.format.__merge(a), this.__textEngine.textFormatRanges.insertAt(d + 1, g)) : ((g = new ff(f.format.clone(), b, c)), g.format.__merge(a), this.__textEngine.textFormatRanges.insertAt(d + 1, g), (g = new ff(f.format.clone(), c, f.end)), this.__textEngine.textFormatRanges.insertAt(d + 2, g)); f.end = b; break; } else if (f.start >= b && f.end <= c) f.start == b ? ((f.format = f.format.clone()), f.format.__merge(a), (f.end = c)) : this.__textEngine.textFormatRanges.removeAt(d); else if (f.start > b && f.end > b) { f.start = c; break; } else f.start < b && f.end <= c ? ((g = new ff(f.format.clone(), b, c)), g.format.__merge(a), this.__textEngine.textFormatRanges.insertAt(d + 1, g), (f.end = b), (d += 2)) : (++d, Xa.warn( "You found a bug in OpenFL's text code! Please save a copy of your project and contact Joshua Granick (@singmajesty) so we can fix this.", { fileName: 'openfl/text/TextField.hx', lineNumber: 1571, className: 'openfl.text.TextField', methodName: 'setTextFormat' } )); } this.__layoutDirty = this.__dirty = !0; this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); } }, __allowMouseFocus: function () { return 1 == this.__textEngine.type || this.get_tabEnabled() ? !0 : this.get_selectable(); }, __caretBeginningOfLine: function () { this.__caretIndex = this.getLineOffset(this.getLineIndexOfChar(this.__caretIndex)); }, __caretBeginningOfNextLine: function () { var a = this.getLineIndexOfChar(this.__caretIndex); this.__caretIndex = a < this.__textEngine.numLines - 1 ? this.getLineOffset(a + 1) : this.__text.length; }, __caretBeginningOfPreviousLine: function () { var a = this.getLineIndexOfChar(this.__caretIndex); if (0 < a) { var b = this.getLineOffset(this.getLineIndexOfChar(this.__caretIndex)); this.__caretIndex = this.__caretIndex == b ? this.getLineOffset(a - 1) : b; } }, __caretEndOfLine: function () { var a = this.getLineIndexOfChar(this.__caretIndex); this.__caretIndex = a < this.__textEngine.numLines - 1 ? this.getLineOffset(a + 1) - 1 : this.__text.length; }, __caretNextCharacter: function () { this.__caretIndex < this.__text.length && this.__caretIndex++; }, __caretNextLine: function () { var a = this.getLineIndexOfChar(this.__caretIndex); a < this.__textEngine.numLines - 1 && (this.__caretIndex = this.__getCharIndexOnDifferentLine(this.get_caretIndex(), a + 1)); }, __caretPreviousCharacter: function () { 0 < this.__caretIndex && this.__caretIndex--; }, __caretPreviousLine: function () { var a = this.getLineIndexOfChar(this.__caretIndex); 0 < a && (this.__caretIndex = this.__getCharIndexOnDifferentLine(this.get_caretIndex(), a - 1)); }, __disableInput: function () { this.__inputEnabled && null != this.stage && (this.stage.window.__backend.setTextInputEnabled(!1), this.stage.window.onTextInput.remove(q(this, this.window_onTextInput)), this.stage.window.onKeyDown.remove(q(this, this.window_onKeyDown)), (this.__inputEnabled = !1), this.__stopCursorTimer()); }, __dispatch: function (a) { if (2 == a.eventPhase && 'mouseUp' == a.type) { var b = this.__getGroup(this.get_mouseX(), this.get_mouseY(), !0); null != b && ((b = b.format.url), null != b && '' != b && (U.startsWith(b, 'event:') ? this.dispatchEvent(new ef('link', !1, !1, A.substr(b, 6, null))) : Ma.getURL(new Tg(b)))); } return lb.prototype.__dispatch.call(this, a); }, __enableInput: function () { null != this.stage && (this.stage.window.__backend.setTextInputEnabled(!0), this.__inputEnabled || (this.stage.window.__backend.setTextInputEnabled(!0), this.stage.window.onTextInput.has(q(this, this.window_onTextInput)) || (this.stage.window.onTextInput.add(q(this, this.window_onTextInput)), this.stage.window.onKeyDown.add(q(this, this.window_onKeyDown))), (this.__inputEnabled = !0), this.__startCursorTimer())); }, __getAdvance: function (a) { return a; }, __getBounds: function (a, b) { this.__updateLayout(); var c = fa.__pool.get(); c.copyFrom(this.__textEngine.bounds); b.tx += this.__offsetX; b.ty += this.__offsetY; c.__transform(c, b); a.__expand(c.x, c.y, c.width, c.height); fa.__pool.release(c); }, __getCharBoundaries: function (a, b) { if (0 > a || a > this.__text.length - 1) return !1; this.__updateLayout(); for (var c = this.__textEngine.layoutGroups.iterator(); c.hasNext(); ) { var d = c.next(); if (a >= d.startIndex && a < d.endIndex) try { for (var f = d.offsetX, g = 0, k = a - d.startIndex; g < k; ) { var l = g++; f += d.positions[l]; } b.setTo(f, d.offsetY, d.positions[a - d.startIndex], d.ascent + d.descent); return !0; } catch (v) { la.lastError = v; } } return !1; }, __getCharIndexOnDifferentLine: function (a, b) { if (0 > a || a > this.__text.length || 0 > b || b > this.__textEngine.numLines - 1) return -1; for ( var c = null, d = null, f = this.__textEngine.layoutGroups.iterator(); f.hasNext(); ) { var g = f.next(); if (a >= g.startIndex && a <= g.endIndex) { c = g.offsetX; for (var k = 0, l = a - g.startIndex; k < l; ) { var h = k++; c += g.positions[h]; } if (null != d) return this.__getPosition(c, d); } if (g.lineIndex == b) { d = g.offsetY + g.height / 2; g = 0; for (k = this.get_scrollV() - 1; g < k; ) (l = g++), (d -= this.__textEngine.lineHeights.get(l)); if (null != c) return this.__getPosition(c, d); } } return -1; }, __getCursor: function () { var a = this.__getGroup(this.get_mouseX(), this.get_mouseY(), !0); return null != a && '' != a.format.url ? 'button' : this.__textEngine.selectable ? 'ibeam' : null; }, __getGroup: function (a, b, c) { null == c && (c = !1); this.__updateLayout(); a += this.get_scrollH(); for (var d = 0, f = this.get_scrollV() - 1; d < f; ) { var g = d++; b += this.__textEngine.lineHeights.get(g); } !c && b > this.__textEngine.textHeight && (b = this.__textEngine.textHeight); var k = !0; d = 0; for (f = this.__textEngine.layoutGroups.get_length(); d < f; ) { g = d++; var l = this.__textEngine.layoutGroups.get(g); g = g < this.__textEngine.layoutGroups.get_length() - 1 ? this.__textEngine.layoutGroups.get(g + 1) : null; k && (b < l.offsetY && (b = l.offsetY), a < l.offsetX && (a = l.offsetX), (k = !1)); if ((b >= l.offsetY && b <= l.offsetY + l.height) || (!c && null == g)) if ( (a >= l.offsetX && a <= l.offsetX + l.width) || (!c && (null == g || g.lineIndex != l.lineIndex)) ) return l; } return null; }, __getPosition: function (a, b) { b = this.__getGroup(a, b); if (null == b) return this.__text.length; for (var c = 0, d = 0, f = b.positions.length; d < f; ) { var g = d++; c += b.positions[g]; if (a <= b.offsetX + c) { if (a <= b.offsetX + (c - b.positions[g]) + b.positions[g] / 2) return b.startIndex + g; if (b.startIndex + g < b.endIndex) return b.startIndex + g + 1; break; } } return b.endIndex; }, __hitTest: function (a, b, c, d, f, g) { if ( !g.get_visible() || this.__isMask || (f && !this.mouseEnabled) || (null != this.get_mask() && !this.get_mask().__hitTestMask(a, b)) ) return !1; this.__getRenderTransform(); this.__updateLayout(); c = this.__renderTransform; f = c.a * c.d - c.b * c.c; var e = 0 == f ? -c.tx : (1 / f) * (c.c * (c.ty - b) + c.d * (a - c.tx)); c = this.__renderTransform; f = c.a * c.d - c.b * c.c; return this.__textEngine.bounds.contains( e, 0 == f ? -c.ty : (1 / f) * (c.a * (b - c.ty) + c.b * (c.tx - a)) ) ? (null != d && d.push(g), !0) : !1; }, __hitTestMask: function (a, b) { this.__getRenderTransform(); this.__updateLayout(); var c = this.__renderTransform, d = c.a * c.d - c.b * c.c, f = 0 == d ? -c.tx : (1 / d) * (c.c * (c.ty - b) + c.d * (a - c.tx)); c = this.__renderTransform; d = c.a * c.d - c.b * c.c; return this.__textEngine.bounds.contains( f, 0 == d ? -c.ty : (1 / d) * (c.a * (b - c.ty) + c.b * (c.tx - a)) ) ? !0 : !1; }, __replaceSelectedText: function (a, b) { null == b && (b = !0); null == a && (a = ''); if ('' != a || this.__selectionIndex != this.__caretIndex) { var c = this.__caretIndex < this.__selectionIndex ? this.__caretIndex : this.__selectionIndex, d = this.__caretIndex > this.__selectionIndex ? this.__caretIndex : this.__selectionIndex; if ( !( c == d && 0 < this.__textEngine.maxChars && this.__text.length == this.__textEngine.maxChars ) ) { c > this.__text.length && (c = this.__text.length); d > this.__text.length && (d = this.__text.length); if (d < c) { var f = d; d = c; c = f; } 0 > c && (c = 0); this.__replaceText(c, d, a, b); } } }, __replaceText: function (a, b, c, d) { if (!(b < a || 0 > a || b > this.__text.length || null == c)) { d && ((c = this.__textEngine.restrictText(c)), 0 < this.__textEngine.maxChars && ((d = this.__textEngine.maxChars - this.__text.length + (b - a)), 0 >= d ? (c = '') : d < c.length && (c = A.substr(c, 0, d)))); this.__updateText(this.__text.substring(0, a) + c + this.__text.substring(b)); d = c.length - (b - a); for (var e = 0, g; e < this.__textEngine.textFormatRanges.get_length(); ) (g = this.__textEngine.textFormatRanges.get(e)), a == b ? g.start == g.end ? 0 != g.start ? Xa.warn( "You found a bug in OpenFL's text code! Please save a copy of your project and contact Joshua Granick (@singmajesty) so we can fix this.", { fileName: 'openfl/text/TextField.hx', lineNumber: 2060, className: 'openfl.text.TextField', methodName: '__replaceText' } ) : (g.end += d) : g.end >= a && (g.start >= a ? ((g.start += d), (g.end += d)) : g.start < a && g.end >= b && (g.end += d)) : g.end > a && (g.start > b ? ((g.start += d), (g.end += d)) : g.start <= a && g.end > b ? (g.end += d) : g.start >= a && g.end <= b ? this.__textEngine.textFormatRanges.splice(e--, 1) : g.end > b && g.start > a && g.start <= b ? ((g.start = a), (g.end += d)) : g.start < a && g.end > a && g.end <= b && (g.end = a)), ++e; 0 == this.__textEngine.textFormatRanges.get_length() ? this.__textEngine.textFormatRanges.push( new ff(this.get_defaultTextFormat().clone(), 0, c.length) ) : a == b && 0 < this.__textEngine.textFormatRanges.get(0).start ? this.__textEngine.textFormatRanges.unshift( new ff( this.get_defaultTextFormat().clone(), 0, this.__textEngine.textFormatRanges.get(0).start ) ) : a != b && this.__textEngine.textFormatRanges.get( this.__textEngine.textFormatRanges.get_length() - 1 ).end < this.__text.length && this.__textEngine.textFormatRanges.push( new ff( this.get_defaultTextFormat().clone(), this.__textEngine.textFormatRanges.get( this.__textEngine.textFormatRanges.get_length() - 1 ).end, this.__text.length ) ); this.setSelection(a + c.length, a + c.length); this.__layoutDirty = this.__dirty = !0; this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); } }, __startCursorTimer: function () { this.__cursorTimer = Qe.delay(q(this, this.__startCursorTimer), 600); this.__showCursor = !this.__showCursor; this.__dirty = !0; this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); }, __startTextInput: function () { 0 > this.__caretIndex && (this.__selectionIndex = this.__caretIndex = this.__text.length); (La.__supportDOM ? this.__renderedOnCanvasWhileOnDOM : 1) && this.__enableInput(); }, __stopCursorTimer: function () { null != this.__cursorTimer && (this.__cursorTimer.stop(), (this.__cursorTimer = null)); this.__showCursor && ((this.__showCursor = !1), (this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); }, __stopTextInput: function () { (La.__supportDOM ? this.__renderedOnCanvasWhileOnDOM : 1) && this.__disableInput(); }, __updateLayout: function () { if (this.__layoutDirty) { var a = this.__textEngine.width; this.__textEngine.update(); if (2 != this.__textEngine.autoSize) { if (this.__textEngine.width != a) switch (this.__textEngine.autoSize) { case 0: this.set_x(this.get_x() + (a - this.__textEngine.width) / 2); break; case 3: this.set_x(this.get_x() + (a - this.__textEngine.width)); } this.__textEngine.getBounds(); } this.__layoutDirty = !1; } }, __updateScrollH: function () { this.__updateLayout(); if (this.get_textWidth() <= this.get_width() - 4) this.set_scrollH(0); else { var a = this.get_scrollH(); if ( 0 == this.__caretIndex || this.getLineOffset(this.getLineIndexOfChar(this.__caretIndex)) == this.__caretIndex ) a = 0; else { var b = fa.__pool.get(), c = !1; this.__caretIndex < this.__text.length && (c = this.__getCharBoundaries(this.__caretIndex, b)); c || (this.__getCharBoundaries(this.__caretIndex - 1, b), (b.x += b.width)); for (; b.x < a && 0 < a; ) a -= 24; for (; b.x > a + this.get_width() - 4; ) a += 24; fa.__pool.release(b); } 0 < a && 1 != this.get_type() && ((b = this.getLineLength(this.getLineIndexOfChar(this.__caretIndex))), this.get_scrollH() + this.get_width() - 4 > b && this.set_scrollH(Math.ceil(b - this.get_width() + 4))); 0 > a ? this.set_scrollH(0) : a > this.get_maxScrollH() ? this.set_scrollH(this.get_maxScrollH()) : this.set_scrollH(a); } }, __updateScrollV: function () { this.__updateLayout(); if (this.get_textHeight() <= this.get_height() - 4) this.set_scrollV(1); else { var a = this.getLineIndexOfChar(this.__caretIndex); -1 == a && 0 < this.__caretIndex && (a = this.getLineIndexOfChar(this.__caretIndex - 1) + 1); if (a + 1 < this.get_scrollV()) this.set_scrollV(a + 1); else if (a + 1 > this.get_bottomScrollV()) { for (var b = 0; 0 <= a; ) if (b + this.__textEngine.lineHeights.get(a) <= this.get_height() - 4) (b += this.__textEngine.lineHeights.get(a)), --a; else break; this.set_scrollV(a + 2); } else this.set_scrollV(this.get_scrollV()); } }, __updateText: function (a) { La.__supportDOM && this.__renderedOnCanvasWhileOnDOM && (this.__forceCachedBitmapUpdate = this.__text != a); this.__textEngine.set_text(a); this.__text = this.__textEngine.text; this.__text.length < this.__caretIndex && (this.__selectionIndex = this.__caretIndex = this.__text.length); if (!this.__displayAsPassword || (La.__supportDOM && !this.__renderedOnCanvasWhileOnDOM)) this.__textEngine.set_text(this.__text); else { a = ''; for (var b = 0, c = this.get_text().length; b < c; ) b++, (a += '*'); this.__textEngine.set_text(a); } }, __updateTransforms: function (a) { lb.prototype.__updateTransforms.call(this, a); a = this.__renderTransform; var b = this.__offsetX, c = this.__offsetY; a.tx = b * a.a + c * a.c + a.tx; a.ty = b * a.b + c * a.d + a.ty; }, get_antiAliasType: function () { return this.__textEngine.antiAliasType; }, set_antiAliasType: function (a) { return (this.__textEngine.antiAliasType = a); }, get_autoSize: function () { return this.__textEngine.autoSize; }, set_autoSize: function (a) { a != this.__textEngine.autoSize && ((this.__layoutDirty = this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); return (this.__textEngine.autoSize = a); }, get_background: function () { return this.__textEngine.background; }, set_background: function (a) { a != this.__textEngine.background && ((this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); return (this.__textEngine.background = a); }, get_backgroundColor: function () { return this.__textEngine.backgroundColor; }, set_backgroundColor: function (a) { a != this.__textEngine.backgroundColor && ((this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); return (this.__textEngine.backgroundColor = a); }, get_border: function () { return this.__textEngine.border; }, set_border: function (a) { a != this.__textEngine.border && ((this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); return (this.__textEngine.border = a); }, get_borderColor: function () { return this.__textEngine.borderColor; }, set_borderColor: function (a) { a != this.__textEngine.borderColor && ((this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); return (this.__textEngine.borderColor = a); }, get_bottomScrollV: function () { this.__updateLayout(); return this.__textEngine.get_bottomScrollV(); }, get_caretIndex: function () { return this.__caretIndex; }, get_defaultTextFormat: function () { return this.__textFormat.clone(); }, set_defaultTextFormat: function (a) { this.__textFormat.__merge(a); this.__dirty = this.__layoutDirty = !0; this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); return a; }, get_displayAsPassword: function () { return this.__displayAsPassword; }, set_displayAsPassword: function (a) { a != this.__displayAsPassword && ((this.__layoutDirty = this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()), (this.__displayAsPassword = a), this.__updateText(this.__text)); return a; }, get_embedFonts: function () { return this.__textEngine.embedFonts; }, set_embedFonts: function (a) { return (this.__textEngine.embedFonts = a); }, get_gridFitType: function () { return this.__textEngine.gridFitType; }, set_gridFitType: function (a) { return (this.__textEngine.gridFitType = a); }, get_height: function () { this.__updateLayout(); return this.__textEngine.height * Math.abs(this.get_scaleY()); }, set_height: function (a) { a != this.__textEngine.height && (this.__setTransformDirty(), (this.__layoutDirty = this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()), (this.__textEngine.height = a)); return this.__textEngine.height * Math.abs(this.get_scaleY()); }, get_htmlText: function () { return this.__isHTML ? this.__rawHtmlText : this.__text; }, set_htmlText: function (a) { (this.__isHTML && this.__text == a) || ((this.__layoutDirty = this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); this.__isHTML = !0; this.__rawHtmlText = a; a = xb.parse(a, this.__textFormat, this.__textEngine.textFormatRanges); if (La.__supportDOM) { 1 < this.__textEngine.textFormatRanges.get_length() && this.__textEngine.textFormatRanges.splice( 1, this.__textEngine.textFormatRanges.get_length() - 1 ); var b = this.__textEngine.textFormatRanges.get(0); b.format = this.__textFormat; b.start = 0; this.__renderedOnCanvasWhileOnDOM ? ((b.end = a.length), this.__updateText(a)) : ((b.end = this.__rawHtmlText.length), this.__updateText(this.__rawHtmlText)); } else this.__updateText(a); this.setSelection(this.get_length(), this.get_length()); return a; }, get_length: function () { return null != this.__text ? this.__text.length : 0; }, get_maxChars: function () { return this.__textEngine.maxChars; }, set_maxChars: function (a) { a != this.__textEngine.maxChars && ((this.__textEngine.maxChars = a), (this.__layoutDirty = this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); return a; }, get_maxScrollH: function () { this.__updateLayout(); return this.__textEngine.maxScrollH; }, get_maxScrollV: function () { this.__updateLayout(); return this.__textEngine.get_maxScrollV(); }, get_mouseWheelEnabled: function () { return this.__mouseWheelEnabled; }, set_mouseWheelEnabled: function (a) { return (this.__mouseWheelEnabled = a); }, get_multiline: function () { return this.__textEngine.multiline; }, set_multiline: function (a) { a != this.__textEngine.multiline && ((this.__layoutDirty = this.__dirty = !0), this.__updateText(this.__text), this.__updateScrollH(), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); return (this.__textEngine.multiline = a); }, get_numLines: function () { this.__updateLayout(); return this.__textEngine.numLines; }, get_restrict: function () { return this.__textEngine.restrict; }, set_restrict: function (a) { this.__textEngine.restrict != a && (this.__textEngine.set_restrict(a), this.__updateText(this.__text)); return a; }, get_scrollH: function () { return this.__textEngine.scrollH; }, set_scrollH: function (a) { this.__updateLayout(); a > this.__textEngine.maxScrollH && (a = this.__textEngine.maxScrollH); 0 > a && (a = 0); a != this.__textEngine.scrollH && ((this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()), (this.__textEngine.scrollH = a), this.dispatchEvent(new oa('scroll'))); return this.__textEngine.scrollH; }, get_scrollV: function () { return this.__textEngine.get_scrollV(); }, set_scrollV: function (a) { this.__updateLayout(); 0 < a && a != this.__textEngine.get_scrollV() && ((this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()), this.__textEngine.set_scrollV(a), this.dispatchEvent(new oa('scroll'))); return this.__textEngine.get_scrollV(); }, get_selectable: function () { return this.__textEngine.selectable; }, set_selectable: function (a) { a != this.__textEngine.selectable && 1 == this.get_type() && (null != this.stage && this.stage.get_focus() == this ? this.__startTextInput() : a || this.__stopTextInput()); return (this.__textEngine.selectable = a); }, get_selectionBeginIndex: function () { return Math.min(this.__caretIndex, this.__selectionIndex) | 0; }, get_selectionEndIndex: function () { return Math.max(this.__caretIndex, this.__selectionIndex) | 0; }, get_sharpness: function () { return this.__textEngine.sharpness; }, set_sharpness: function (a) { a != this.__textEngine.sharpness && ((this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); return (this.__textEngine.sharpness = a); }, get_tabEnabled: function () { return null == this.__tabEnabled ? 1 == this.__textEngine.type : this.__tabEnabled; }, get_text: function () { return this.__text; }, set_text: function (a) { if (this.__isHTML || this.__text != a) (this.__layoutDirty = this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()); else return a; 1 < this.__textEngine.textFormatRanges.get_length() && this.__textEngine.textFormatRanges.splice( 1, this.__textEngine.textFormatRanges.get_length() - 1 ); var b = this.__textEngine.textFormatRanges.get(0); b.format = this.__textFormat; b.start = 0; b.end = a.length; this.__isHTML = !1; this.__updateText(a); this.setSelection(0, 0); return a; }, get_textColor: function () { return this.__textFormat.color; }, set_textColor: function (a) { a != this.__textFormat.color && ((this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); for (var b = this.__textEngine.textFormatRanges.iterator(); b.hasNext(); ) b.next().format.color = a; return (this.__textFormat.color = a); }, get_textWidth: function () { this.__updateLayout(); return this.__textEngine.textWidth; }, get_textHeight: function () { this.__updateLayout(); return this.__textEngine.textHeight; }, get_type: function () { return this.__textEngine.type; }, set_type: function (a) { a != this.__textEngine.type && (1 == a ? (this.addEventListener('addedToStage', q(this, this.this_onAddedToStage)), this.this_onFocusIn(null), (this.__textEngine.__useIntAdvances = !0)) : (this.removeEventListener('addedToStage', q(this, this.this_onAddedToStage)), this.__stopTextInput(), (this.__textEngine.__useIntAdvances = null)), (this.__layoutDirty = this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); return (this.__textEngine.type = a); }, get_width: function () { this.__updateLayout(); return this.__textEngine.width * Math.abs(this.__scaleX); }, set_width: function (a) { a != this.__textEngine.width && (this.__setTransformDirty(), (this.__layoutDirty = this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()), (this.__textEngine.width = a)); return this.__textEngine.width * Math.abs(this.__scaleX); }, get_wordWrap: function () { return this.__textEngine.wordWrap; }, set_wordWrap: function (a) { a != this.__textEngine.wordWrap && ((this.__layoutDirty = this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); return (this.__textEngine.wordWrap = a); }, get_x: function () { return this.__transform.tx + this.__offsetX; }, set_x: function (a) { a != this.__transform.tx + this.__offsetX && this.__setTransformDirty(); return (this.__transform.tx = a - this.__offsetX); }, get_y: function () { return this.__transform.ty + this.__offsetY; }, set_y: function (a) { a != this.__transform.ty + this.__offsetY && this.__setTransformDirty(); return (this.__transform.ty = a - this.__offsetY); }, stage_onMouseMove: function (a) { null != this.stage && this.get_selectable() && 0 <= this.__selectionIndex && (this.__updateLayout(), (a = this.__getPosition(this.get_mouseX() + this.get_scrollH(), this.get_mouseY())), a != this.__caretIndex && ((this.__caretIndex = a), (a = !0), La.__supportDOM && (this.__renderedOnCanvasWhileOnDOM && (this.__forceCachedBitmapUpdate = !0), (a = !1)), a && ((this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())))); }, stage_onMouseUp: function (a) { if ( null != this.stage && (this.stage.removeEventListener('mouseMove', q(this, this.stage_onMouseMove)), this.stage.removeEventListener('mouseUp', q(this, this.stage_onMouseUp)), this.stage.get_focus() == this) ) { this.__getWorldTransform(); this.__updateLayout(); a = this.__getPosition(this.get_mouseX() + this.get_scrollH(), this.get_mouseY()); var b = Math.max(this.__selectionIndex, a) | 0; this.__selectionIndex = Math.min(this.__selectionIndex, a) | 0; this.__caretIndex = b; this.__inputEnabled && (this.this_onFocusIn(null), this.__stopCursorTimer(), this.__startCursorTimer(), La.__supportDOM && this.__renderedOnCanvasWhileOnDOM && (this.__forceCachedBitmapUpdate = !0)); } }, this_onAddedToStage: function (a) { this.this_onFocusIn(null); }, this_onFocusIn: function (a) { 1 == this.get_type() && null != this.stage && this.stage.get_focus() == this && this.__startTextInput(); }, this_onFocusOut: function (a) { this.__stopCursorTimer(); null != a.relatedObject && a.relatedObject instanceof Ze ? (null != this.stage && (this.stage.window.onTextInput.remove(q(this, this.window_onTextInput)), this.stage.window.onKeyDown.remove(q(this, this.window_onKeyDown))), (this.__inputEnabled = !1)) : this.__stopTextInput(); this.__selectionIndex != this.__caretIndex && ((this.__selectionIndex = this.__caretIndex), (this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())); }, this_onKeyDown: function (a) { this.get_selectable() && 1 != this.get_type() && 67 == a.keyCode && (a.commandKey || a.ctrlKey) && this.__caretIndex != this.__selectionIndex && je.set_text(this.__text.substring(this.__caretIndex, this.__selectionIndex)); }, this_onMouseDown: function (a) { if (this.get_selectable() || 1 == this.get_type()) this.__updateLayout(), (this.__selectionIndex = this.__caretIndex = this.__getPosition(this.get_mouseX() + this.get_scrollH(), this.get_mouseY())), La.__supportDOM || ((this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty())), this.stage.addEventListener('mouseMove', q(this, this.stage_onMouseMove)), this.stage.addEventListener('mouseUp', q(this, this.stage_onMouseUp)); }, this_onMouseWheel: function (a) { this.get_mouseWheelEnabled() && this.set_scrollV(this.get_scrollV() - a.delta); }, this_onDoubleClick: function (a) { if (this.get_selectable()) { this.__updateLayout(); a = '\n.!?, ;:()-_/'.split(''); var b = this.__text, c = -1, d = b.length, f = Math.max(this.__caretIndex, 1) | 0; if (0 < b.length && 0 <= this.__caretIndex && d >= this.__caretIndex) { for (var g = 0; g < a.length; ) { var k = a[g]; ++g; var l = b.lastIndexOf(k, f - 1); l > c && (c = l + 1); l = b.indexOf(k, f); l < d && -1 != l && (d = l); } c != d && (this.setSelection(c, d), (a = !0), La.__supportDOM && (this.__renderedOnCanvasWhileOnDOM && (this.__forceCachedBitmapUpdate = !0), (a = !1)), a && ((this.__dirty = !0), this.__renderDirty || ((this.__renderDirty = !0), this.__setParentRenderDirty()))); } } }, window_onKeyDown: function (a, b) { switch (a) { case 8: this.__selectionIndex == this.__caretIndex && 0 < this.__caretIndex && (this.__selectionIndex = this.__caretIndex - 1); this.__selectionIndex != this.__caretIndex ? (this.replaceSelectedText(''), (this.__selectionIndex = this.__caretIndex), this.dispatchEvent(new oa('change', !0))) : (this.__stopCursorTimer(), this.__startCursorTimer()); break; case 97: this.get_selectable() && (Bb.get_metaKey(b) || Bb.get_ctrlKey(b)) && ((this.__caretIndex = this.__text.length), (this.__selectionIndex = 0)); break; case 99: (Bb.get_metaKey(b) || Bb.get_ctrlKey(b)) && this.__caretIndex != this.__selectionIndex && je.set_text(this.__text.substring(this.__caretIndex, this.__selectionIndex)); break; case 120: (Bb.get_metaKey(b) || Bb.get_ctrlKey(b)) && this.__caretIndex != this.__selectionIndex && (je.set_text(this.__text.substring(this.__caretIndex, this.__selectionIndex)), this.replaceSelectedText(''), this.dispatchEvent(new oa('change', !0))); break; case 127: this.__selectionIndex == this.__caretIndex && this.__caretIndex < this.__text.length && (this.__selectionIndex = this.__caretIndex + 1); this.__selectionIndex != this.__caretIndex ? (this.replaceSelectedText(''), (this.__selectionIndex = this.__caretIndex), this.dispatchEvent(new oa('change', !0))) : (this.__stopCursorTimer(), this.__startCursorTimer()); break; case 1073741898: this.get_selectable() && (Bb.get_metaKey(b) || Bb.get_ctrlKey(b) ? (this.__caretIndex = 0) : this.__caretBeginningOfLine(), Bb.get_shiftKey(b) || (this.__selectionIndex = this.__caretIndex), this.setSelection(this.__selectionIndex, this.__caretIndex)); break; case 1073741901: this.get_selectable() && (Bb.get_metaKey(b) || Bb.get_ctrlKey(b) ? (this.__caretIndex = this.__text.length) : this.__caretEndOfLine(), Bb.get_shiftKey(b) || (this.__selectionIndex = this.__caretIndex), this.setSelection(this.__selectionIndex, this.__caretIndex)); break; case 1073741903: this.get_selectable() && (Bb.get_metaKey(b) || Bb.get_ctrlKey(b) ? this.__caretBeginningOfNextLine() : this.__caretNextCharacter(), Bb.get_shiftKey(b) || (this.__selectionIndex = this.__caretIndex), this.setSelection(this.__selectionIndex, this.__caretIndex)); break; case 1073741904: this.get_selectable() && (Bb.get_metaKey(b) || Bb.get_ctrlKey(b) ? this.__caretBeginningOfPreviousLine() : this.__caretPreviousCharacter(), Bb.get_shiftKey(b) || (this.__selectionIndex = this.__caretIndex), this.setSelection(this.__selectionIndex, this.__caretIndex)); break; case 1073741905: this.get_selectable() && (Bb.get_metaKey(b) || Bb.get_ctrlKey(b) ? (this.__caretIndex = this.__text.length) : this.__caretNextLine(), Bb.get_shiftKey(b) || (this.__selectionIndex = this.__caretIndex), this.setSelection(this.__selectionIndex, this.__caretIndex)); break; case 1073741906: this.get_selectable() && (Bb.get_metaKey(b) || Bb.get_ctrlKey(b) ? (this.__caretIndex = 0) : this.__caretPreviousLine(), Bb.get_shiftKey(b) || (this.__selectionIndex = this.__caretIndex), this.setSelection(this.__selectionIndex, this.__caretIndex)); break; case 13: case 1073741912: this.__textEngine.multiline ? ((a = new ef('textInput', !0, !0, '\n')), this.dispatchEvent(a), a.isDefaultPrevented() || (this.__replaceSelectedText('\n', !0), this.dispatchEvent(new oa('change', !0)))) : (this.__stopCursorTimer(), this.__startCursorTimer()); } }, window_onTextInput: function (a) { this.__replaceSelectedText(a, !0); this.dispatchEvent(new oa('change', !0)); }, __class__: Ze, __properties__: r(lb.prototype.__properties__, { set_wordWrap: 'set_wordWrap', get_wordWrap: 'get_wordWrap', set_type: 'set_type', get_type: 'get_type', get_textWidth: 'get_textWidth', get_textHeight: 'get_textHeight', set_textColor: 'set_textColor', get_textColor: 'get_textColor', set_text: 'set_text', get_text: 'get_text', set_sharpness: 'set_sharpness', get_sharpness: 'get_sharpness', get_selectionEndIndex: 'get_selectionEndIndex', get_selectionBeginIndex: 'get_selectionBeginIndex', set_selectable: 'set_selectable', get_selectable: 'get_selectable', set_scrollV: 'set_scrollV', get_scrollV: 'get_scrollV', set_scrollH: 'set_scrollH', get_scrollH: 'get_scrollH', set_restrict: 'set_restrict', get_restrict: 'get_restrict', get_numLines: 'get_numLines', set_multiline: 'set_multiline', get_multiline: 'get_multiline', set_mouseWheelEnabled: 'set_mouseWheelEnabled', get_mouseWheelEnabled: 'get_mouseWheelEnabled', get_maxScrollV: 'get_maxScrollV', get_maxScrollH: 'get_maxScrollH', set_maxChars: 'set_maxChars', get_maxChars: 'get_maxChars', get_length: 'get_length', set_htmlText: 'set_htmlText', get_htmlText: 'get_htmlText', set_gridFitType: 'set_gridFitType', get_gridFitType: 'get_gridFitType', set_embedFonts: 'set_embedFonts', get_embedFonts: 'get_embedFonts', set_displayAsPassword: 'set_displayAsPassword', get_displayAsPassword: 'get_displayAsPassword', set_defaultTextFormat: 'set_defaultTextFormat', get_defaultTextFormat: 'get_defaultTextFormat', get_caretIndex: 'get_caretIndex', get_bottomScrollV: 'get_bottomScrollV', set_borderColor: 'set_borderColor', get_borderColor: 'get_borderColor', set_border: 'set_border', get_border: 'get_border', set_backgroundColor: 'set_backgroundColor', get_backgroundColor: 'get_backgroundColor', set_background: 'set_background', get_background: 'get_background', set_autoSize: 'set_autoSize', get_autoSize: 'get_autoSize', set_antiAliasType: 'set_antiAliasType', get_antiAliasType: 'get_antiAliasType' }) }); var Qg = function (a, b, c, d, f, g, k, l, h, n, t, m, u) { this.font = a; this.size = b; this.color = c; this.bold = d; this.italic = f; this.underline = g; this.url = k; this.target = l; this.align = h; this.leftMargin = n; this.rightMargin = t; this.indent = m; this.leading = u; }; h['openfl.text.TextFormat'] = Qg; Qg.__name__ = 'openfl.text.TextFormat'; Qg.prototype = { align: null, blockIndent: null, bold: null, bullet: null, color: null, font: null, indent: null, italic: null, kerning: null, leading: null, leftMargin: null, letterSpacing: null, rightMargin: null, size: null, tabStops: null, target: null, underline: null, url: null, __ascent: null, __descent: null, clone: function () { var a = new Qg( this.font, this.size, this.color, this.bold, this.italic, this.underline, this.url, this.target ); a.align = this.align; a.leftMargin = this.leftMargin; a.rightMargin = this.rightMargin; a.indent = this.indent; a.leading = this.leading; a.blockIndent = this.blockIndent; a.bullet = this.bullet; a.kerning = this.kerning; a.letterSpacing = this.letterSpacing; a.tabStops = this.tabStops; a.__ascent = this.__ascent; a.__descent = this.__descent; return a; }, __merge: function (a) { null != a.font && (this.font = a.font); null != a.size && (this.size = a.size); null != a.color && (this.color = a.color); null != a.bold && (this.bold = a.bold); null != a.italic && (this.italic = a.italic); null != a.underline && (this.underline = a.underline); null != a.url && (this.url = a.url); null != a.target && (this.target = a.target); null != a.align && (this.align = a.align); null != a.leftMargin && (this.leftMargin = a.leftMargin); null != a.rightMargin && (this.rightMargin = a.rightMargin); null != a.indent && (this.indent = a.indent); null != a.leading && (this.leading = a.leading); null != a.blockIndent && (this.blockIndent = a.blockIndent); null != a.bullet && (this.bullet = a.bullet); null != a.kerning && (this.kerning = a.kerning); null != a.letterSpacing && (this.letterSpacing = a.letterSpacing); null != a.tabStops && (this.tabStops = a.tabStops); null != a.__ascent && (this.__ascent = a.__ascent); null != a.__descent && (this.__descent = a.__descent); }, __class__: Qg }; var jk = { fromString: function (a) { switch (a) { case 'center': return 0; case 'end': return 1; case 'justify': return 2; case 'left': return 3; case 'right': return 4; case 'start': return 5; default: return null; } }, toString: function (a) { switch (a) { case 0: return 'center'; case 1: return 'end'; case 2: return 'justify'; case 3: return 'left'; case 4: return 'right'; case 5: return 'start'; default: return null; } } }, jp = function (a, b, c, d, f, g) { this.x = a; this.width = b; this.height = c; this.ascent = d; this.descent = f; this.leading = g; }; h['openfl.text.TextLineMetrics'] = jp; jp.__name__ = 'openfl.text.TextLineMetrics'; jp.prototype = { ascent: null, descent: null, height: null, leading: null, width: null, x: null, __class__: jp }; var kp = function (a, b, c) { this.glyph = a; this.advance = b; this.offset = null != c ? c : new Xd(); }; h['openfl.text._internal.GlyphPosition'] = kp; kp.__name__ = 'openfl.text._internal.GlyphPosition'; kp.prototype = { advance: null, glyph: null, offset: null, __class__: kp }; var xb = function () {}; h['openfl.text._internal.HTMLParser'] = xb; xb.__name__ = 'openfl.text._internal.HTMLParser'; xb.parse = function (a, b, c) { a = a.replace(xb.__regexBreakTag.r, '\n'); a = a.replace(xb.__regexEntities[5].r, ' '); var d = a.split('<'); if (1 == d.length) (a = U.htmlUnescape(a.replace(xb.__regexHTMLTag.r, ''))), 1 < c.get_length() && c.splice(1, c.get_length() - 1), (c = c.get(0)), (c.format = b), (c.start = 0), (c.end = a.length); else { c.splice(0, c.get_length()); a = ''; for (var f, g = [b.clone()], k = [], l = !1, h = 0; h < d.length; ) if (((f = d[h]), ++h, '' != f)) { var n = '/' == A.substr(f, 0, 1), t = f.indexOf('>'), m = t + 1, u = f.indexOf(' '); u = f.substring(n ? 1 : 0, -1 < u && u < t ? u : t); if (n) 0 == k.length || u.toLowerCase() != k[k.length - 1].toLowerCase() ? Xa.info('Invalid HTML, unexpected closing tag ignored: ' + u, { fileName: 'openfl/text/_internal/HTMLParser.hx', lineNumber: 82, className: 'openfl.text._internal.HTMLParser', methodName: 'parse' }) : (k.pop(), g.pop(), (n = g[g.length - 1].clone()), 'p' == u.toLowerCase() && 0 < c.get_length() && ((a += '\n'), (l = !0)), m < f.length && ((f = U.htmlUnescape(A.substr(f, m, null))), c.push(new ff(n, a.length, a.length + f.length)), (a += f), (l = !1))); else if (((n = g[g.length - 1].clone()), -1 < t)) { switch (u.toLowerCase()) { case 'a': xb.__regexHref.match(f) && (n.url = xb.__getAttributeMatch(xb.__regexHref)); break; case 'b': n.bold = !0; break; case 'em': case 'i': n.italic = !0; break; case 'font': xb.__regexFace.match(f) && (n.font = xb.__getAttributeMatch(xb.__regexFace)); xb.__regexColor.match(f) && (n.color = B.parseInt('0x' + xb.__getAttributeMatch(xb.__regexColor))); if (xb.__regexSize.match(f)) { t = xb.__getAttributeMatch(xb.__regexSize); var q = A.cca(t, 0); n.size = 43 == q || 45 == q ? (2 <= g.length ? g[g.length - 2] : b).size + B.parseInt(t) : B.parseInt(t); } break; case 'p': 0 < c.get_length() && !l && (a += '\n'); xb.__regexAlign.match(f) && ((t = xb.__getAttributeMatch(xb.__regexAlign).toLowerCase()), (n.align = jk.fromString(t))); break; case 'textformat': xb.__regexBlockIndent.match(f) && (n.blockIndent = B.parseInt(xb.__getAttributeMatch(xb.__regexBlockIndent))); xb.__regexIndent.match(f) && (n.indent = B.parseInt(xb.__getAttributeMatch(xb.__regexIndent))); xb.__regexLeading.match(f) && (n.leading = B.parseInt(xb.__getAttributeMatch(xb.__regexLeading))); xb.__regexLeftMargin.match(f) && (n.leftMargin = B.parseInt(xb.__getAttributeMatch(xb.__regexLeftMargin))); xb.__regexRightMargin.match(f) && (n.rightMargin = B.parseInt(xb.__getAttributeMatch(xb.__regexRightMargin))); if (xb.__regexTabStops.match(f)) { t = xb.__getAttributeMatch(xb.__regexTabStops).split(' '); q = []; for (var r = 0; r < t.length; ) { var w = t[r]; ++r; q.push(B.parseInt(w)); } n.tabStops = q; } break; case 'u': n.underline = !0; } g.push(n); k.push(u); m < f.length && ((f = U.htmlUnescape(f.substring(m))), c.push(new ff(n, a.length, a.length + f.length)), (a += f), (l = !1)); } else (f = U.htmlUnescape(f)), c.push(new ff(n, a.length, a.length + f.length)), (a += f), (l = !1); } 0 == c.get_length() && c.push(new ff(g[0], 0, 0)); } return a; }; xb.__getAttributeMatch = function (a) { return null != a.matched(2) ? a.matched(2) : a.matched(3); }; var Sb = function (a) { this.textField = a; this.height = this.width = 100; this.set_text(''); this.bounds = new fa(0, 0, 0, 0); this.textBounds = new fa(0, 0, 0, 0); this.type = 0; this.autoSize = 2; this.embedFonts = !1; this.selectable = !0; this.borderColor = 0; this.border = !1; this.backgroundColor = 16777215; this.background = !1; this.gridFitType = 1; this.maxChars = 0; this.multiline = !1; this.numLines = 1; this.scrollH = this.sharpness = 0; this.set_scrollV(1); this.wordWrap = !1; this.lineAscents = yb.toFloatVector(null); this.lineBreaks = yb.toIntVector(null); this.lineDescents = yb.toFloatVector(null); this.lineLeadings = yb.toFloatVector(null); this.lineHeights = yb.toFloatVector(null); this.lineWidths = yb.toFloatVector(null); this.layoutGroups = yb.toObjectVector(null); this.textFormatRanges = yb.toObjectVector(null); null == Sb.__context && (Sb.__context = window.document.createElement('canvas').getContext('2d')); }; h['openfl.text._internal.TextEngine'] = Sb; Sb.__name__ = 'openfl.text._internal.TextEngine'; Sb.findFont = function (a) { return Sc.__fontByName.h[a]; }; Sb.findFontVariant = function (a) { var b = a.font, c = a.bold; a = a.italic; null == b && (b = '_serif'); var d = U.replace(U.replace(b, ' Normal', ''), ' Regular', ''); return c && a && Object.prototype.hasOwnProperty.call(Sc.__fontByName.h, d + ' Bold Italic') ? Sb.findFont(d + ' Bold Italic') : c && Object.prototype.hasOwnProperty.call(Sc.__fontByName.h, d + ' Bold') ? Sb.findFont(d + ' Bold') : a && Object.prototype.hasOwnProperty.call(Sc.__fontByName.h, d + ' Italic') ? Sb.findFont(d + ' Italic') : Sb.findFont(b); }; Sb.getFormatHeight = function (a) { Sb.__context.font = Sb.getFont(a); var b = Sb.getFontInstance(a); if (null != a.__ascent) { var c = a.size * a.__ascent; b = a.size * a.__descent; } else null != b && 0 != b.unitsPerEM ? ((c = (b.ascender / b.unitsPerEM) * a.size), (b = Math.abs((b.descender / b.unitsPerEM) * a.size))) : ((c = a.size), (b = 0.185 * a.size)); return c + b + a.leading; }; Sb.getFont = function (a) { var b = a.font, c = a.bold, d = a.italic; null == b && (b = '_serif'); var f = U.replace(U.replace(b, ' Normal', ''), ' Regular', ''); c && d && Object.prototype.hasOwnProperty.call(Sc.__fontByName.h, f + ' Bold Italic') ? ((b = f + ' Bold Italic'), (d = c = !1)) : c && Object.prototype.hasOwnProperty.call(Sc.__fontByName.h, f + ' Bold') ? ((b = f + ' Bold'), (c = !1)) : d && Object.prototype.hasOwnProperty.call(Sc.__fontByName.h, f + ' Italic') ? ((b = f + ' Italic'), (d = !1)) : (c && (-1 < b.indexOf(' Bold ') || U.endsWith(b, ' Bold')) && (c = !1), d && (-1 < b.indexOf(' Italic ') || U.endsWith(b, ' Italic')) && (d = !1)); c = (d ? 'italic ' : 'normal ') + 'normal ' + (c ? 'bold ' : 'normal '); c += a.size + 'px'; c += '/' + (a.leading + a.size + 3) + 'px '; switch (b) { case '_sans': a = 'sans-serif'; break; case '_serif': a = 'serif'; break; case '_typewriter': a = 'monospace'; break; default: a = "'" + b.replace(/^[\s'"]+(.*)[\s'"]+$/, '$1') + "'"; } return (c += '' + a); }; Sb.getFontInstance = function (a) { return Sb.findFontVariant(a); }; Sb.prototype = { antiAliasType: null, autoSize: null, background: null, backgroundColor: null, border: null, borderColor: null, bottomScrollV: null, bounds: null, caretIndex: null, embedFonts: null, gridFitType: null, height: null, layoutGroups: null, lineAscents: null, lineBreaks: null, lineDescents: null, lineLeadings: null, lineHeights: null, lineWidths: null, maxChars: null, maxScrollH: null, maxScrollV: null, multiline: null, numLines: null, restrict: null, scrollH: null, scrollV: null, selectable: null, sharpness: null, text: null, textBounds: null, textHeight: null, textFormatRanges: null, textWidth: null, type: null, width: null, wordWrap: null, textField: null, __cursorTimer: null, __hasFocus: null, __isKeyDown: null, __measuredHeight: null, __measuredWidth: null, __restrictRegexp: null, __selectionStart: null, __showCursor: null, __textFormat: null, __textLayout: null, __texture: null, __useIntAdvances: null, __cairoFont: null, __font: null, createRestrictRegexp: function (a) { var b = '', c = []; 0 < new Ja('\\^(.-.|.)', 'gu').map(a, function (a) { b += a.matched(1); return ''; }).length && c.push('[^' + a + ']'); 0 < b.length && c.push('[' + b + ']'); return new Ja('(' + c.join('|') + ')', 'g'); }, getBounds: function () { var a = this.border ? 1 : 0; this.bounds.width = this.width + a; this.bounds.height = this.height + a; for (var b = (a = this.width), c = this.layoutGroups.iterator(); c.hasNext(); ) { var d = c.next(); d.offsetX < a && (a = d.offsetX); d.offsetY < b && (b = d.offsetY); } a >= this.width && (a = 2); b >= this.height && (b = 2); this.textBounds.setTo( Math.max(a - 2, 0), Math.max(b - 2, 0), Math.min(this.textWidth + 4, this.bounds.width + 4), Math.min(1.185 * this.textHeight + 4, this.bounds.height + 4) ); }, getLine: function (a) { return 0 > a || a > this.lineBreaks.get_length() + 1 ? null : 0 == this.lineBreaks.get_length() ? this.text : this.text.substring(0 < a ? this.lineBreaks.get(a - 1) : 0, this.lineBreaks.get(a)); }, getLineBreakIndex: function (a) { null == a && (a = 0); var b = this.text.indexOf('\n', a); a = this.text.indexOf('\r', a); return -1 == b ? a : -1 == a ? b : b < a ? b : a; }, getLineMeasurements: function () { this.lineAscents.set_length(0); this.lineDescents.set_length(0); this.lineLeadings.set_length(0); this.lineHeights.set_length(0); this.lineWidths.set_length(0); var a = 0, b = 0, c = null, d = 0, f = 0, g; this.textHeight = this.textWidth = 0; this.numLines = 1; this.maxScrollH = 0; for (var k = this.layoutGroups.iterator(); k.hasNext(); ) { for (g = k.next(); g.lineIndex > this.numLines - 1; ) this.lineAscents.push(a), this.lineDescents.push(b), this.lineLeadings.push(null != c ? c : 0), this.lineHeights.push(d), this.lineWidths.push(f), (b = a = 0), (c = null), (f = d = 0), this.numLines++; a = Math.max(a, g.ascent); b = Math.max(b, g.descent); c = null == c ? g.leading : Math.max(c, g.leading) | 0; d = Math.max(d, g.height); f = g.offsetX - 2 + g.width; f > this.textWidth && (this.textWidth = f); g = g.offsetY - 2 + g.ascent + g.descent; g > this.textHeight && (this.textHeight = g); } 0 == this.textHeight && null != this.textField && 1 == this.textField.get_type() && ((a = this.textField.__textFormat), (b = Sb.getFontInstance(a)), null != a.__ascent ? ((k = a.size * a.__ascent), (g = a.size * a.__descent)) : null != b && 0 != b.unitsPerEM ? ((k = (b.ascender / b.unitsPerEM) * a.size), (g = Math.abs((b.descender / b.unitsPerEM) * a.size))) : ((k = a.size), (g = 0.185 * a.size)), (c = a.leading), (a = k), (b = g), (this.textHeight = k + g)); this.lineAscents.push(a); this.lineDescents.push(b); this.lineLeadings.push(null != c ? c : 0); this.lineHeights.push(d); this.lineWidths.push(f); 1 == this.numLines && 0 < c && (this.textHeight += c); 0 < this.layoutGroups.get_length() && ((k = this.layoutGroups.get(this.layoutGroups.get_length() - 1)), null != k && k.startIndex == k.endIndex && (this.textHeight -= d)); if (2 != this.autoSize) switch (this.autoSize) { case 0: case 1: case 3: this.wordWrap || (this.width = this.textWidth + 4), (this.height = this.textHeight + 4), (this.bottomScrollV = this.numLines); } this.maxScrollH = this.textWidth > this.width - 4 ? (this.textWidth - this.width + 4) | 0 : 0; this.scrollH > this.maxScrollH && (this.scrollH = this.maxScrollH); }, getLayoutGroups: function () { var a = this; this.layoutGroups.set_length(0); if (null != this.text && '' != this.text) { var b = -1, c = null, d = null, f = Ze.__defaultTextFormat.clone(), g = 0, k = 0, l = 0, h = 0, n = 3, t = 0, m = 0, u = 0, q = 0, r = !0, w = null, x = null, z = 0, E = 0, I = 0, H = -2, C = -1, D = this.text.indexOf(' '), ra = this.getLineBreakIndex(), F = 0, G = 0, B = 0, J = 0, y = function (b, c, d) { var e = []; if (null == a.__useIntAdvances) { var f = new Ja('Trident/7.0', ''); a.__useIntAdvances = f.match(R.navigator.userAgent); } if (a.__useIntAdvances) { var g = 0; for (f = c; f < d; ) { var k = f++; k = Sb.__context.measureText(b.substring(c, k + 1)).width; e.push(k - g); g = k; } } else for (f = c; f < d; ) (k = f++), k < b.length - 1 ? ((c = Sb.__context.measureText(b.charAt(k + 1)).width), (c = Sb.__context.measureText(A.substr(b, k, 2)).width - c)) : (c = Sb.__context.measureText(b.charAt(k)).width), e.push(c); return e; }, L = function (a) { for (var b = 0, c = 0; c < a.length; ) { var d = a[c]; ++c; b += d; } return b; }, M = function () { return 2 + u + t + (r ? m : 0); }, K = function () { return a.width - 2 - q - M(); }, N = function (b, d) { null == w || w.startIndex != w.endIndex ? ((w = new ln(c.format, b, d)), a.layoutGroups.push(w)) : ((w.format = c.format), (w.startIndex = b), (w.endIndex = d)); }, P = function () { null != f.__ascent ? ((k = f.size * f.__ascent), (h = f.size * f.__descent)) : null != d && 0 != d.unitsPerEM ? ((k = (d.ascender / d.unitsPerEM) * f.size), (h = Math.abs((d.descender / d.unitsPerEM) * f.size))) : ((k = f.size), (h = 0.185 * f.size)); g = f.leading; E = Math.ceil(k + h + g); E > I && (I = E); k > l && (l = k); }, U = function () { r = !0; n = null != f.align ? f.align : 3; t = null != f.blockIndent ? f.blockIndent : 0; m = null != f.indent ? f.indent : 0; u = null != f.leftMargin ? f.leftMargin : 0; q = null != f.rightMargin ? f.rightMargin : 0; }, S = function () { return b < a.textFormatRanges.get_length() - 1 ? ((b += 1), (c = a.textFormatRanges.get(b)), f.__merge(c.format), (Sb.__context.font = Sb.getFont(f)), (d = Sb.getFontInstance(f)), !0) : !1; }, za = function (d, e) { if (d >= e) (x = []), (z = 0); else if (e <= c.end) (x = y(a.text, d, e)), (z = L(x)); else { var f = d; d = c.end; var g = 0; x = []; for (z = 0; ; ) if ((f != d && ((f = y(a.text, f, d)), (x = x.concat(f))), d != e)) { if (!S()) { Xa.warn( "You found a bug in OpenFL's text code! Please save a copy of your project and contact Joshua Granick (@singmajesty) so we can fix this.", { fileName: 'openfl/text/_internal/TextEngine.hx', lineNumber: 1064, className: 'openfl.text._internal.TextEngine', methodName: 'getLayoutGroups' } ); break; } f = d; d = e < c.end ? e : c.end; ++g; } else { z = L(x); break; } b -= g + 1; S(); } }, T = function (b) { if (b <= c.end) { x = y(a.text, B, b); z = L(x); N(B, b); w.positions = x; var d = F, e = M(); w.offsetX = d + e; w.ascent = k; w.descent = h; w.leading = g; w.lineIndex = J; w.offsetY = G + 2; w.width = z; w.height = E; F += z; b == c.end && ((w = null), S(), P()); } else for (;;) { var f = b < c.end ? b : c.end; B != f && ((x = y(a.text, B, f)), (z = L(x)), N(B, f), (w.positions = x), (d = F), (e = M()), (w.offsetX = d + e), (w.ascent = k), (w.descent = h), (w.leading = g), (w.lineIndex = J), (w.offsetY = G + 2), (w.width = z), (w.height = E), (F += z), (B = f)); f == c.end && (w = null); if (f == b) break; if (!S()) { Xa.warn( "You found a bug in OpenFL's text code! Please save a copy of your project and contact Joshua Granick (@singmajesty) so we can fix this.", { fileName: 'openfl/text/_internal/TextEngine.hx', lineNumber: 1152, className: 'openfl.text._internal.TextEngine', methodName: 'getLayoutGroups' } ); break; } P(); } B = b; }, X = function () { P(); for (var b = a.layoutGroups.get_length(); -1 < --b; ) { var c = a.layoutGroups.get(b); if (c.lineIndex < J) break; c.lineIndex > J || ((c.ascent = l), (c.height = I)); } G += I; I = l = 0; J += 1; F = 0; r = !1; }, Sa = function (b) { if (4 <= a.width && a.wordWrap) { var c = x, d, e, f; for (d = L(c); 0 < c.length && F + d > K(); ) { for (f = d = e = 0; F + f < K(); ) { var g = c[d]; 0 == g ? (++d, ++e) : ((f += g), ++d); } if (d == e) d = e + 1; else for (; 1 < d && F + f > K(); ) --d, 0 < d - e ? (za(B, B + d - e), (f = z)) : ((d = 1), (e = 0), za(B, B + 1), (f = 0)); c = B + d - e; T(c); X(); za(c, b); c = x; d = z; } } T(b); }; S(); U(); P(); for (var V, Y = this.text.length + 1; B < Y; ) if (-1 < ra && (-1 == D || ra < D)) B <= ra ? (za(B, ra), Sa(ra), (w = null)) : null != w && w.startIndex != w.endIndex && (w.endIndex == D && (w.width -= w.positions[w.positions.length - 1]), (w = null)), X(), c.end == ra && (S(), P()), (B = ra + 1), (C = ra), (ra = this.getLineBreakIndex(B)), U(); else if (-1 < D) for ( null != w && w.startIndex != w.endIndex && (w = null), V = !1; B < this.text.length; ) { var W = -1; -1 == D ? (W = ra) : ((W = D + 1), -1 < ra && ra < W && (W = ra)); -1 == W && (W = this.text.length); za(B, W); if (2 == n) { if (0 < x.length && B == H) { B += 1; var Z = x.shift(); z -= Z; F += Z; } 0 < x.length && W == D + 1 && (--W, (Z = x.pop()), (z -= Z)); } this.wordWrap && F + z > K() && ((V = !0), 0 < x.length && W == D + 1 && F + z - x[x.length - 1] <= K() && (V = !1)); if (V) { 2 != n && (null != w || 0 < this.layoutGroups.get_length()) && ((V = w), null == V && (V = this.layoutGroups.get(this.layoutGroups.get_length() - 1)), (V.width -= V.positions[V.positions.length - 1]), V.endIndex--); V = this.layoutGroups.get_length() - 1; for (Z = 0; ; ) { w = this.layoutGroups.get(V); if (0 < V && w.startIndex > H) ++Z; else break; --V; } B == H + 1 && X(); F = 0; if (0 < Z) { V = this.layoutGroups.get(this.layoutGroups.get_length() - Z).offsetX; Z = this.layoutGroups.get_length() - Z; for (var Q = this.layoutGroups.get_length(); Z < Q; ) { var O = Z++; w = this.layoutGroups.get(O); w.offsetX -= V; w.offsetY = G + 2; w.lineIndex = J; F += w.width; } } Sa(W); V = !1; } else null != w && B == D ? (2 != n && ((w.endIndex = D), (w.positions = w.positions.concat(x)), (w.width += z)), (F += z), (B = W)) : (null == w || 2 == n ? Sa(W) : ((Z = W < c.end ? W : c.end), Z < W && ((x = y(this.text, B, Z)), (z = L(x))), (w.endIndex = Z), (w.positions = w.positions.concat(x)), (w.width += z), (F += z), Z == c.end && ((w = null), S(), P(), (B = Z), Z != W && T(W)), ra == W && ++W, (B = W)), W == this.text.length && X()); W = this.text.indexOf(' ', B); ra == H && ((w.endIndex = ra), 0 > ra - w.startIndex - w.positions.length && w.positions.push(0), (B = ra + 1)); H = D; D = W; if ((-1 < ra && ra <= B && (D > ra || -1 == D)) || B > this.text.length) break; } else B < this.text.length && (za(B, this.text.length), Sa(this.text.length), X()), (B += 1); C == B - 2 && -1 < C && (N(B - 1, B - 1), (w.positions = []), (w.ascent = k), (w.descent = h), (w.leading = g), (w.lineIndex = J - 1), (w.offsetX = M()), (w.offsetY = G + 2 - E), (w.width = 0), (w.height = E)); } }, restrictText: function (a) { if (null == a) return a; null != this.__restrictRegexp && (a = this.__restrictRegexp.split(a).join('')); return a; }, setTextAlignment: function () { for ( var a = -1, b = 0, c, d, f = !1, g = 0, k = this.layoutGroups.get_length(); g < k; ) { var l = g++; c = this.layoutGroups.get(l); if (c.lineIndex != a) switch ( ((a = c.lineIndex), (b = this.width - 4 - c.format.rightMargin), c.format.align) ) { case 0: b = this.lineWidths.get(a) < b ? Math.round((b - this.lineWidths.get(a)) / 2) : 0; break; case 2: if (this.lineWidths.get(a) < b) { d = 1; for (var h = l + 1, n = this.layoutGroups.get_length(); h < n; ) { var t = h++; if (this.layoutGroups.get(t).lineIndex == a) (0 != t && 32 != A.cca(this.text, this.layoutGroups.get(t).startIndex - 1)) || ++d; else break; } if ( 1 < d && ((c = this.layoutGroups.get(l + d - 1)), (h = A.cca(this.text, c.endIndex)), c.endIndex < this.text.length && 10 != h && 13 != h) ) for ( b = (b - this.lineWidths.get(a)) / (d - 1), f = !0, h = 1; (this.layoutGroups.get(l + h).offsetX += b * h), ++h < d; ); } b = 0; break; case 4: b = this.lineWidths.get(a) < b ? Math.round(b - this.lineWidths.get(a)) : 0; break; default: b = 0; } 0 < b && (c.offsetX += b); } f && this.getLineMeasurements(); }, trimText: function (a) { if (null == a) return a; 0 < this.maxChars && a.length > this.maxChars && (a = A.substr(a, 0, this.maxChars)); return a; }, update: function () { null == this.text || 0 == this.textFormatRanges.get_length() ? (this.lineAscents.set_length(0), this.lineBreaks.set_length(0), this.lineDescents.set_length(0), this.lineLeadings.set_length(0), this.lineHeights.set_length(0), this.lineWidths.set_length(0), this.layoutGroups.set_length(0), (this.textHeight = this.textWidth = 0), (this.numLines = 1), (this.maxScrollH = 0), (this.bottomScrollV = this.maxScrollV = 1)) : (this.getLayoutGroups(), this.getLineMeasurements(), this.setTextAlignment()); this.getBounds(); }, get_bottomScrollV: function () { if (1 == this.numLines || null == this.lineHeights) return 1; for ( var a = this.lineHeights.get_length(), b = this.lineLeadings.get_length() == a ? -this.lineLeadings.get(a - 1) : 0, c = this.get_scrollV() - 1, d = this.lineHeights.get_length(); c < d; ) { var f = c++; if (b + this.lineHeights.get(f) <= this.height - 4) b += this.lineHeights.get(f); else { a = f; break; } } return a < this.get_scrollV() ? this.get_scrollV() : a; }, get_maxScrollV: function () { if (1 == this.numLines || null == this.lineHeights) return 1; for (var a = this.numLines - 1, b = 0, c = a; 0 <= a; ) if (b + this.lineHeights.get(a) <= this.height - 4) (b += this.lineHeights.get(a)), --a; else break; a = a == c ? this.numLines : a + 2; return 1 > a ? 1 : a; }, set_restrict: function (a) { if (this.restrict == a) return this.restrict; this.restrict = a; this.__restrictRegexp = null == this.restrict || 0 == this.restrict.length ? null : this.createRestrictRegexp(a); return this.restrict; }, get_scrollV: function () { if (1 == this.numLines || null == this.lineHeights) return 1; var a = this.get_maxScrollV(); return this.scrollV > a ? a : this.scrollV; }, set_scrollV: function (a) { 1 > a && (a = 1); return (this.scrollV = a); }, set_text: function (a) { return (this.text = a); }, __class__: Sb, __properties__: { set_text: 'set_text', set_scrollV: 'set_scrollV', get_scrollV: 'get_scrollV', set_restrict: 'set_restrict', get_maxScrollV: 'get_maxScrollV', get_bottomScrollV: 'get_bottomScrollV' } }; var ff = function (a, b, c) { this.format = a; this.start = b; this.end = c; }; h['openfl.text._internal.TextFormatRange'] = ff; ff.__name__ = 'openfl.text._internal.TextFormatRange'; ff.prototype = { end: null, format: null, start: null, __class__: ff }; var Td = function (a, b, c, d, f, g) { null == g && (g = 'en'); null == f && (f = 'Zyyy'); null == d && (d = 4); null == c && (c = 12); null == a && (a = ''); this.letterSpacing = 0; this.set_text(a); this.set_font(b); this.set_size(c); this.__direction = d; this.__script = f; this.__language = g; this.positions = []; this.__dirty = !0; this.__create(this.__direction, this.__script, this.__language); }; h['openfl.text._internal.TextLayout'] = Td; Td.__name__ = 'openfl.text._internal.TextLayout'; Td.prototype = { autoHint: null, font: null, glyphs: null, letterSpacing: null, positions: null, size: null, text: null, __buffer: null, __direction: null, __dirty: null, __handle: null, __language: null, __script: null, __font: null, __hbBuffer: null, __hbFont: null, __create: function (a, b, c) { 4 == c.length && ((this.__hbBuffer = nx._new()), fx._new(c)); }, __position: function () { this.positions = []; }, get_positions: function () { this.__dirty && ((this.__dirty = !1), this.__position()); return this.positions; }, get_direction: function () { return this.__direction; }, set_direction: function (a) { if (a == this.__direction) return a; this.__direction = a; this.__dirty = !0; return a; }, set_font: function (a) { if (a == this.font) return a; this.font = a; this.__dirty = !0; return a; }, get_glyphs: function () { for (var a = [], b = 0, c = this.get_positions(); b < c.length; ) { var d = c[b]; ++b; a.push(d.glyph); } return a; }, get_language: function () { return this.__language; }, set_language: function (a) { if (a == this.__language) return a; this.__language = a; this.__dirty = !0; return a; }, get_script: function () { return this.__script; }, set_script: function (a) { if (a == this.__script) return a; this.__script = a; this.__dirty = !0; return a; }, set_size: function (a) { if (a == this.size) return a; this.size = a; this.__dirty = !0; return a; }, set_text: function (a) { if (a == this.text) return a; this.text = a; this.__dirty = !0; return a; }, __class__: Td, __properties__: { set_text: 'set_text', set_size: 'set_size', set_script: 'set_script', get_script: 'get_script', get_positions: 'get_positions', set_language: 'set_language', get_language: 'get_language', get_glyphs: 'get_glyphs', set_font: 'set_font', set_direction: 'set_direction', get_direction: 'get_direction' } }; var ln = function (a, b, c) { this.format = a; this.startIndex = b; this.endIndex = c; }; h['openfl.text._internal.TextLayoutGroup'] = ln; ln.__name__ = 'openfl.text._internal.TextLayoutGroup'; ln.prototype = { ascent: null, descent: null, endIndex: null, format: null, height: null, leading: null, lineIndex: null, offsetX: null, offsetY: null, positions: null, startIndex: null, width: null, getAdvance: function (a) { return this.positions[a]; }, __class__: ln }; var Zb = function () { db.call(this); Zb.__instances.push(this); }; h['openfl.ui.GameInput'] = Zb; Zb.__name__ = 'openfl.ui.GameInput'; Zb.getDeviceAt = function (a) { return 0 <= a && a < Zb.__deviceList.length ? Zb.__deviceList[a] : null; }; Zb.__getDevice = function (a) { if (null == a) return null; if (null == Zb.__devices.h.__keys__[a.__id__]) { var b = zc.__getDeviceData(), c = b[a.id].id; b = zc.__getDeviceData(); b = new mn(c, b[a.id].id); Zb.__deviceList.push(b); Zb.__devices.set(a, b); Zb.numDevices = Zb.__deviceList.length; } return Zb.__devices.h[a.__id__]; }; Zb.__onGamepadAxisMove = function (a, b, c) { a = Zb.__getDevice(a); if (null != a && a.enabled) { if (!a.__axis.h.hasOwnProperty(b)) { if (null == b) var d = 'null'; else switch (b) { case 0: d = 'LEFT_X'; break; case 1: d = 'LEFT_Y'; break; case 2: d = 'RIGHT_X'; break; case 3: d = 'RIGHT_Y'; break; case 4: d = 'TRIGGER_LEFT'; break; case 5: d = 'TRIGGER_RIGHT'; break; default: d = 'UNKNOWN (' + b + ')'; } d = new zf(a, 'AXIS_' + d, -1, 1); a.__axis.h[b] = d; a.__controls.push(d); } d = a.__axis.h[b]; d.value = c; d.dispatchEvent(new oa('change')); } }; Zb.__onGamepadButtonDown = function (a, b) { a = Zb.__getDevice(a); if (null != a && a.enabled) { if (!a.__button.h.hasOwnProperty(b)) { if (null == b) var c = 'null'; else switch (b) { case 0: c = 'A'; break; case 1: c = 'B'; break; case 2: c = 'X'; break; case 3: c = 'Y'; break; case 4: c = 'BACK'; break; case 5: c = 'GUIDE'; break; case 6: c = 'START'; break; case 7: c = 'LEFT_STICK'; break; case 8: c = 'RIGHT_STICK'; break; case 9: c = 'LEFT_SHOULDER'; break; case 10: c = 'RIGHT_SHOULDER'; break; case 11: c = 'DPAD_UP'; break; case 12: c = 'DPAD_DOWN'; break; case 13: c = 'DPAD_LEFT'; break; case 14: c = 'DPAD_RIGHT'; break; default: c = 'UNKNOWN (' + b + ')'; } c = new zf(a, 'BUTTON_' + c, 0, 1); a.__button.h[b] = c; a.__controls.push(c); } c = a.__button.h[b]; c.value = 1; c.dispatchEvent(new oa('change')); } }; Zb.__onGamepadButtonUp = function (a, b) { a = Zb.__getDevice(a); if (null != a && a.enabled) { if (!a.__button.h.hasOwnProperty(b)) { if (null == b) var c = 'null'; else switch (b) { case 0: c = 'A'; break; case 1: c = 'B'; break; case 2: c = 'X'; break; case 3: c = 'Y'; break; case 4: c = 'BACK'; break; case 5: c = 'GUIDE'; break; case 6: c = 'START'; break; case 7: c = 'LEFT_STICK'; break; case 8: c = 'RIGHT_STICK'; break; case 9: c = 'LEFT_SHOULDER'; break; case 10: c = 'RIGHT_SHOULDER'; break; case 11: c = 'DPAD_UP'; break; case 12: c = 'DPAD_DOWN'; break; case 13: c = 'DPAD_LEFT'; break; case 14: c = 'DPAD_RIGHT'; break; default: c = 'UNKNOWN (' + b + ')'; } c = new zf(a, 'BUTTON_' + c, 0, 1); a.__button.h[b] = c; a.__controls.push(c); } c = a.__button.h[b]; c.value = 0; c.dispatchEvent(new oa('change')); } }; Zb.__onGamepadConnect = function (a) { a = Zb.__getDevice(a); if (null != a) for (var b = 0, c = Zb.__instances; b < c.length; ) { var d = c[b]; ++b; d.dispatchEvent(new Gg('deviceAdded', !0, !1, a)); } }; Zb.__onGamepadDisconnect = function (a) { var b = Zb.__devices.h[a.__id__]; if (null != b) { null != Zb.__devices.h.__keys__[a.__id__] && (A.remove(Zb.__deviceList, Zb.__devices.h[a.__id__]), Zb.__devices.remove(a)); Zb.numDevices = Zb.__deviceList.length; a = 0; for (var c = Zb.__instances; a < c.length; ) { var d = c[a]; ++a; d.dispatchEvent(new Gg('deviceRemoved', !0, !1, b)); } } }; Zb.__super__ = db; Zb.prototype = r(db.prototype, { addEventListener: function (a, b, c, d, f) { null == f && (f = !1); null == d && (d = 0); null == c && (c = !1); db.prototype.addEventListener.call(this, a, b, c, d, f); if ('deviceAdded' == a) for (a = 0, b = Zb.__deviceList; a < b.length; ) (c = b[a]), ++a, this.dispatchEvent(new Gg('deviceAdded', !0, !1, c)); }, __class__: Zb }); var zf = function (a, b, c, d, f) { null == f && (f = 0); db.call(this); this.device = a; this.id = b; this.minValue = c; this.maxValue = d; this.value = f; }; h['openfl.ui.GameInputControl'] = zf; zf.__name__ = 'openfl.ui.GameInputControl'; zf.__super__ = db; zf.prototype = r(db.prototype, { device: null, id: null, maxValue: null, minValue: null, value: null, __class__: zf }); var mn = function (a, b) { this.__controls = []; this.__button = new Za(); this.__axis = new Za(); this.id = a; this.name = b; a = new zf(this, 'AXIS_0', -1, 1); this.__axis.h[0] = a; this.__controls.push(a); a = new zf(this, 'AXIS_1', -1, 1); this.__axis.h[1] = a; this.__controls.push(a); a = new zf(this, 'AXIS_2', -1, 1); this.__axis.h[2] = a; this.__controls.push(a); a = new zf(this, 'AXIS_3', -1, 1); this.__axis.h[3] = a; this.__controls.push(a); a = new zf(this, 'AXIS_4', -1, 1); this.__axis.h[4] = a; this.__controls.push(a); a = new zf(this, 'AXIS_5', -1, 1); this.__axis.h[5] = a; this.__controls.push(a); for (b = 0; 15 > b; ) { var c = b++; a = new zf(this, 'BUTTON_' + c, 0, 1); this.__button.h[c] = a; this.__controls.push(a); } }; h['openfl.ui.GameInputDevice'] = mn; mn.__name__ = 'openfl.ui.GameInputDevice'; mn.prototype = { enabled: null, id: null, name: null, sampleInterval: null, __axis: null, __button: null, __controls: null, __gamepad: null, getCachedSamples: function (a, b) { return 0; }, getControlAt: function (a) { return 0 <= a && a < this.__controls.length ? this.__controls[a] : null; }, startCachingSamples: function (a, b) {}, stopCachingSamples: function () {}, get_numControls: function () { return this.__controls.length; }, __class__: mn, __properties__: { get_numControls: 'get_numControls' } }; var Ga = function () {}; h['openfl.ui.Keyboard'] = Ga; Ga.__name__ = 'openfl.ui.Keyboard'; Ga.isAccessible = function () { return !1; }; Ga.__convertKeyCode = function (a) { switch (a) { case 8: return 8; case 9: return 9; case 13: return 13; case 27: return 27; case 32: return 32; case 33: return 49; case 34: return 222; case 35: return 51; case 36: return 52; case 37: return 53; case 38: return 55; case 39: return 222; case 40: return 57; case 41: return 48; case 42: return 56; case 44: return 188; case 45: return 189; case 46: return 190; case 47: return 191; case 48: return 48; case 49: return 49; case 50: return 50; case 51: return 51; case 52: return 52; case 53: return 53; case 54: return 54; case 55: return 55; case 56: return 56; case 57: return 57; case 58: return 186; case 59: return 186; case 60: return 60; case 61: return 187; case 62: return 190; case 63: return 191; case 64: return 50; case 91: return 219; case 92: return 220; case 93: return 221; case 94: return 54; case 95: return 189; case 96: return 192; case 97: return 65; case 98: return 66; case 99: return 67; case 100: return 68; case 101: return 69; case 102: return 70; case 103: return 71; case 104: return 72; case 105: return 73; case 106: return 74; case 107: return 75; case 108: return 76; case 109: return 77; case 110: return 78; case 111: return 79; case 112: return 80; case 113: return 81; case 114: return 82; case 115: return 83; case 116: return 84; case 117: return 85; case 118: return 86; case 119: return 87; case 120: return 88; case 121: return 89; case 122: return 90; case 127: return 46; case 1073741881: return 20; case 1073741882: return 112; case 1073741883: return 113; case 1073741884: return 114; case 1073741885: return 115; case 1073741886: return 116; case 1073741887: return 117; case 1073741888: return 118; case 1073741889: return 119; case 1073741890: return 120; case 1073741891: return 121; case 1073741892: return 122; case 1073741893: return 123; case 1073741894: return 301; case 1073741895: return 145; case 1073741896: return 19; case 1073741897: return 45; case 1073741898: return 36; case 1073741899: return 33; case 1073741901: return 35; case 1073741902: return 34; case 1073741903: return 39; case 1073741904: return 37; case 1073741905: return 40; case 1073741906: return 38; case 1073741907: return 144; case 1073741908: return 111; case 1073741909: return 106; case 1073741910: return 109; case 1073741911: return 107; case 1073741912: return 13; case 1073741913: return 97; case 1073741914: return 98; case 1073741915: return 99; case 1073741916: return 100; case 1073741917: return 101; case 1073741918: return 102; case 1073741919: return 103; case 1073741920: return 104; case 1073741921: return 105; case 1073741922: return 96; case 1073741923: return 110; case 1073741925: return 302; case 1073741928: return 124; case 1073741929: return 125; case 1073741930: return 126; case 1073741982: return 13; case 1073742044: return 110; case 1073742048: return 17; case 1073742049: return 16; case 1073742050: return 18; case 1073742051: return 15; case 1073742052: return 17; case 1073742053: return 16; case 1073742054: return 18; case 1073742055: return 15; default: return a; } }; Ga.__getCharCode = function (a, b) { null == b && (b = !1); if (b) { switch (a) { case 48: return 41; case 49: return 33; case 50: return 64; case 51: return 35; case 52: return 36; case 53: return 37; case 54: return 94; case 55: return 38; case 56: return 42; case 57: return 40; case 186: return 58; case 187: return 43; case 188: return 60; case 189: return 95; case 190: return 62; case 191: return 63; case 192: return 126; case 219: return 123; case 220: return 124; case 221: return 125; case 222: return 34; } if (65 <= a && 90 >= a) return a - 65 + 65; } else { switch (a) { case 8: return 8; case 9: return 9; case 13: return 13; case 27: return 27; case 32: return 32; case 186: return 59; case 187: return 61; case 188: return 44; case 189: return 45; case 190: return 46; case 191: return 47; case 192: return 96; case 219: return 91; case 220: return 92; case 221: return 93; case 222: return 39; } if (48 <= a && 57 >= a) return a - 48 + 48; if (65 <= a && 90 >= a) return a - 65 + 97; } if (96 <= a && 105 >= a) return a - 96 + 48; switch (a) { case 8: return 8; case 13: return 13; case 46: return 127; case 106: return 42; case 107: return 43; case 108: return 44; case 110: return 45; case 111: return 46; } return 0; }; Ga.__getKeyLocation = function (a) { switch (a) { case 1073741908: case 1073741909: case 1073741910: case 1073741911: case 1073741912: case 1073741913: case 1073741914: case 1073741915: case 1073741916: case 1073741917: case 1073741918: case 1073741919: case 1073741920: case 1073741921: case 1073741922: case 1073741923: case 1073742044: return 3; case 1073742048: case 1073742049: case 1073742050: case 1073742051: return 1; case 1073742052: case 1073742053: case 1073742054: case 1073742055: return 2; default: return 0; } }; var qe = function () {}; h['openfl.ui.Mouse'] = qe; qe.__name__ = 'openfl.ui.Mouse'; qe.__properties__ = { set_cursor: 'set_cursor', get_cursor: 'get_cursor' }; qe.hide = function () { qe.__hidden = !0; for (var a = 0, b = vd.current.__windows; a < b.length; ) { var c = b[a]; ++a; c.set_cursor(null); } }; qe.show = function () { qe.__hidden = !1; var a = qe.__cursor; qe.__cursor = null; qe.set_cursor(a); }; qe.get_cursor = function () { return qe.__cursor; }; qe.set_cursor = function (a) { null == a && (a = 'auto'); var b = null; switch (a) { case 'arrow': b = nc.ARROW; break; case 'button': b = nc.POINTER; break; case 'crosshair': b = nc.CROSSHAIR; break; case 'custom': b = nc.CUSTOM; break; case 'hand': b = nc.MOVE; break; case 'ibeam': b = nc.TEXT; break; case 'resize_nesw': b = nc.RESIZE_NESW; break; case 'resize_ns': b = nc.RESIZE_NS; break; case 'resize_nwse': b = nc.RESIZE_NWSE; break; case 'resize_we': b = nc.RESIZE_WE; break; case 'wait': b = nc.WAIT; break; case 'waitarrow': b = nc.WAIT_ARROW; } if (null != b && !qe.__hidden) for (var c = 0, d = vd.current.__windows; c < d.length; ) { var f = d[c]; ++c; f.set_cursor(b); } return (qe.__cursor = a); }; var xf = { fromLimeCursor: function (a) { switch (a._hx_index) { case 0: return 'arrow'; case 1: return 'crosshair'; case 2: return 'auto'; case 3: return 'hand'; case 4: return 'button'; case 5: return 'resize_nesw'; case 6: return 'resize_ns'; case 7: return 'resize_nwse'; case 8: return 'resize_we'; case 9: return 'ibeam'; case 10: return 'wait'; case 11: return 'waitarrow'; case 12: return 'custom'; } }, toLimeCursor: function (a) { switch (a) { case 'arrow': return nc.ARROW; case 'auto': return nc.DEFAULT; case 'button': return nc.POINTER; case 'crosshair': return nc.CROSSHAIR; case 'custom': return nc.CUSTOM; case 'hand': return nc.MOVE; case 'ibeam': return nc.TEXT; case 'resize_nesw': return nc.RESIZE_NESW; case 'resize_ns': return nc.RESIZE_NS; case 'resize_nwse': return nc.RESIZE_NWSE; case 'resize_we': return nc.RESIZE_WE; case 'wait': return nc.WAIT; case 'waitarrow': return nc.WAIT_ARROW; default: return nc.DEFAULT; } } }, ue = function () {}; h['openfl.ui.Multitouch'] = ue; ue.__name__ = 'openfl.ui.Multitouch'; ue.__properties__ = { get_supportsTouchEvents: 'get_supportsTouchEvents' }; ue.get_supportsTouchEvents = function () { return 'ontouchstart' in document.documentElement || (window.DocumentTouch && document instanceof DocumentTouch) ? !0 : !1; }; var Y = function (a) { null == a && (a = !1); this.debugEnabled = a; Y.initialized || Y.init(); }; h['openfl.utils.AGALMiniAssembler'] = Y; Y.__name__ = 'openfl.utils.AGALMiniAssembler'; Y.init = function () { Y.initialized = !0; var a = Y.OPMAP, b = new ac('mov', 2, 0, 0); a.h.mov = b; a = Y.OPMAP; b = new ac('add', 3, 1, 0); a.h.add = b; a = Y.OPMAP; b = new ac('sub', 3, 2, 0); a.h.sub = b; a = Y.OPMAP; b = new ac('mul', 3, 3, 0); a.h.mul = b; a = Y.OPMAP; b = new ac('div', 3, 4, 0); a.h.div = b; a = Y.OPMAP; b = new ac('rcp', 2, 5, 0); a.h.rcp = b; a = Y.OPMAP; b = new ac('min', 3, 6, 0); a.h.min = b; a = Y.OPMAP; b = new ac('max', 3, 7, 0); a.h.max = b; a = Y.OPMAP; b = new ac('frc', 2, 8, 0); a.h.frc = b; a = Y.OPMAP; b = new ac('sqt', 2, 9, 0); a.h.sqt = b; a = Y.OPMAP; b = new ac('rsq', 2, 10, 0); a.h.rsq = b; a = Y.OPMAP; b = new ac('pow', 3, 11, 0); a.h.pow = b; a = Y.OPMAP; b = new ac('log', 2, 12, 0); a.h.log = b; a = Y.OPMAP; b = new ac('exp', 2, 13, 0); a.h.exp = b; a = Y.OPMAP; b = new ac('nrm', 2, 14, 0); a.h.nrm = b; a = Y.OPMAP; b = new ac('sin', 2, 15, 0); a.h.sin = b; a = Y.OPMAP; b = new ac('cos', 2, 16, 0); a.h.cos = b; a = Y.OPMAP; b = new ac('crs', 3, 17, 0); a.h.crs = b; a = Y.OPMAP; b = new ac('dp3', 3, 18, 0); a.h.dp3 = b; a = Y.OPMAP; b = new ac('dp4', 3, 19, 0); a.h.dp4 = b; a = Y.OPMAP; b = new ac('abs', 2, 20, 0); a.h.abs = b; a = Y.OPMAP; b = new ac('neg', 2, 21, 0); a.h.neg = b; a = Y.OPMAP; b = new ac('sat', 2, 22, 0); a.h.sat = b; a = Y.OPMAP; b = new ac('m33', 3, 23, 16); a.h.m33 = b; a = Y.OPMAP; b = new ac('m44', 3, 24, 16); a.h.m44 = b; a = Y.OPMAP; b = new ac('m34', 3, 25, 16); a.h.m34 = b; a = Y.OPMAP; b = new ac('ddx', 2, 26, 288); a.h.ddx = b; a = Y.OPMAP; b = new ac('ddy', 2, 27, 288); a.h.ddy = b; a = Y.OPMAP; b = new ac('ife', 2, 28, 897); a.h.ife = b; a = Y.OPMAP; b = new ac('ine', 2, 29, 897); a.h.ine = b; a = Y.OPMAP; b = new ac('ifg', 2, 30, 897); a.h.ifg = b; a = Y.OPMAP; b = new ac('ifl', 2, 31, 897); a.h.ifl = b; a = Y.OPMAP; b = new ac('els', 0, 32, 1921); a.h.els = b; a = Y.OPMAP; b = new ac('eif', 0, 33, 1409); a.h.eif = b; a = Y.OPMAP; b = new ac('kil', 1, 39, 160); a.h.kil = b; a = Y.OPMAP; b = new ac('tex', 3, 40, 40); a.h.tex = b; a = Y.OPMAP; b = new ac('sge', 3, 41, 0); a.h.sge = b; a = Y.OPMAP; b = new ac('slt', 3, 42, 0); a.h.slt = b; a = Y.OPMAP; b = new ac('sgn', 2, 43, 0); a.h.sgn = b; a = Y.OPMAP; b = new ac('seq', 3, 44, 0); a.h.seq = b; a = Y.OPMAP; b = new ac('sne', 3, 45, 0); a.h.sne = b; a = Y.SAMPLEMAP; b = new Zc('rgba', 8, 0); a.h.rgba = b; a = Y.SAMPLEMAP; b = new Zc('compressed', 8, 1); a.h.compressed = b; a = Y.SAMPLEMAP; b = new Zc('compressedalpha', 8, 2); a.h.compressedalpha = b; a = Y.SAMPLEMAP; b = new Zc('dxt1', 8, 1); a.h.dxt1 = b; a = Y.SAMPLEMAP; b = new Zc('dxt5', 8, 2); a.h.dxt5 = b; a = Y.SAMPLEMAP; b = new Zc('video', 8, 3); a.h.video = b; a = Y.SAMPLEMAP; b = new Zc('2d', 12, 0); a.h['2d'] = b; a = Y.SAMPLEMAP; b = new Zc('3d', 12, 2); a.h['3d'] = b; a = Y.SAMPLEMAP; b = new Zc('cube', 12, 1); a.h.cube = b; a = Y.SAMPLEMAP; b = new Zc('mipnearest', 24, 1); a.h.mipnearest = b; a = Y.SAMPLEMAP; b = new Zc('miplinear', 24, 2); a.h.miplinear = b; a = Y.SAMPLEMAP; b = new Zc('mipnone', 24, 0); a.h.mipnone = b; a = Y.SAMPLEMAP; b = new Zc('nomip', 24, 0); a.h.nomip = b; a = Y.SAMPLEMAP; b = new Zc('nearest', 28, 0); a.h.nearest = b; a = Y.SAMPLEMAP; b = new Zc('linear', 28, 1); a.h.linear = b; a = Y.SAMPLEMAP; b = new Zc('anisotropic2x', 28, 2); a.h.anisotropic2x = b; a = Y.SAMPLEMAP; b = new Zc('anisotropic4x', 28, 3); a.h.anisotropic4x = b; a = Y.SAMPLEMAP; b = new Zc('anisotropic8x', 28, 4); a.h.anisotropic8x = b; a = Y.SAMPLEMAP; b = new Zc('anisotropic16x', 28, 5); a.h.anisotropic16x = b; a = Y.SAMPLEMAP; b = new Zc('centroid', 16, 1); a.h.centroid = b; a = Y.SAMPLEMAP; b = new Zc('single', 16, 2); a.h.single = b; a = Y.SAMPLEMAP; b = new Zc('ignoresampler', 16, 4); a.h.ignoresampler = b; a = Y.SAMPLEMAP; b = new Zc('repeat', 20, 1); a.h.repeat = b; a = Y.SAMPLEMAP; b = new Zc('wrap', 20, 1); a.h.wrap = b; a = Y.SAMPLEMAP; b = new Zc('clamp', 20, 0); a.h.clamp = b; a = Y.SAMPLEMAP; b = new Zc('clamp_u_repeat_v', 20, 2); a.h.clamp_u_repeat_v = b; a = Y.SAMPLEMAP; b = new Zc('repeat_u_clamp_v', 20, 3); a.h.repeat_u_clamp_v = b; }; Y.prototype = { agalcode: null, error: null, verbose: null, debugEnabled: null, assemble2: function (a, b, c, d) { c = this.assemble('vertex', c, b); b = this.assemble('fragment', d, b); a = a.createProgram(); a.upload(c, b); return a; }, assemble: function (a, b, c, d) { null == d && (d = !1); null == c && (c = 1); var e = Ma.getTimer(); this.agalcode = new pc(0); this.error = ''; var g = !1; 'fragment' == a ? (g = !0) : 'vertex' != a && (this.error = 'ERROR: mode needs to be "fragment" or "vertex" but is "' + a + '".'); this.agalcode.__endian = 1; this.agalcode.writeByte(160); this.agalcode.writeUnsignedInt(c); this.agalcode.writeByte(161); this.agalcode.writeByte(g ? 1 : 0); this.initregmap(c, d); a = U.replace(b, '\r', '\n').split('\n'); b = 0; d = a.length; for ( var k = new Ja('<.*>', 'g'), l = new Ja('([\\w\\.\\-\\+]+)', 'gi'), h = new Ja('^\\w{3}', 'ig'), n = new Ja( 'vc\\[([vofi][acostdip]?[d]?)(\\d*)?(\\.[xyzw](\\+\\d{1,3})?)?\\](\\.[xyzw]{1,4})?|([vofi][acostdip]?[d]?)(\\d*)?(\\.[xyzw]{1,4})?', 'gi' ), t = new Ja('\\[.*\\]', 'ig'), m = new Ja('^\\b[A-Za-z]{1,3}', 'ig'), u = new Ja('\\d+', ''), q = new Ja('(\\.[xyzw]{1,4})', ''), r = new Ja('[A-Za-z]{1,3}', 'ig'), w = new Ja('(\\.[xyzw]{1,1})', ''), x = new Ja('\\+\\d{1,3}', 'ig'), z = 0; z < d && '' == this.error; ) { var E = U.trim(a[z]), I = E.indexOf('//'); -1 != I && (E = A.substr(E, 0, I)); var H = k.match(E) ? k.matchedPos().pos : -1; I = null; -1 != H && ((I = this.match(A.substr(E, H, null), l)), (E = A.substr(E, 0, H))); var C = null; h.match(E) && ((H = h.matched(0)), (C = Y.OPMAP.h[H])); if (null == C) 3 <= E.length && Xa.warn('warning: bad line ' + z + ': ' + a[z], { fileName: 'openfl/utils/AGALMiniAssembler.hx', lineNumber: 262, className: 'openfl.utils.AGALMiniAssembler', methodName: 'assemble' }); else if ( (this.debugEnabled && Xa.info(C, { fileName: 'openfl/utils/AGALMiniAssembler.hx', lineNumber: 272, className: 'openfl.utils.AGALMiniAssembler', methodName: 'assemble' }), null == C) ) 3 <= E.length && Xa.warn('warning: bad line ' + z + ': ' + a[z], { fileName: 'openfl/utils/AGALMiniAssembler.hx', lineNumber: 279, className: 'openfl.utils.AGALMiniAssembler', methodName: 'assemble' }); else { E = A.substr(E, E.indexOf(C.name) + C.name.length, null); if (0 != (C.flags & 256) && 2 > c) { this.error = 'error: opcode requires version 2.'; break; } if (0 != (C.flags & 64) && g) { this.error = 'error: opcode is only allowed in vertex programs.'; break; } if (0 != (C.flags & 32) && !g) { this.error = 'error: opcode is only allowed in fragment programs.'; break; } this.verbose && Xa.info('emit opcode=' + B.string(C), { fileName: 'openfl/utils/AGALMiniAssembler.hx', lineNumber: 308, className: 'openfl.utils.AGALMiniAssembler', methodName: 'assemble' }); this.agalcode.writeUnsignedInt(C.emitCode); ++b; if (4096 < b) { this.error = 'error: too many opcodes. maximum is 4096.'; break; } var D = this.match(E, n); if (D.length != C.numRegister) { this.error = 'error: wrong number of operands. found ' + D.length + ' but expected ' + C.numRegister + '.'; break; } var ra = !1, F = 160; E = 0; for (H = D.length; E < H; ) { var G = E++, J = !1, y = this.match(D[G], t); 0 < y.length && ((D[G] = U.replace(D[G], y[0], '0')), this.verbose && Xa.info('IS REL', { fileName: 'openfl/utils/AGALMiniAssembler.hx', lineNumber: 344, className: 'openfl.utils.AGALMiniAssembler', methodName: 'assemble' }), (J = !0)); var L = this.match(D[G], m); if (0 == L.length) { this.error = 'error: could not parse operand ' + G + ' (' + D[G] + ').'; ra = !0; break; } var M = Y.REGMAP.h[L[0]]; this.debugEnabled && Xa.info(M, { fileName: 'openfl/utils/AGALMiniAssembler.hx', lineNumber: 363, className: 'openfl.utils.AGALMiniAssembler', methodName: 'assemble' }); if (null == M) { this.error = 'error: could not find register name for operand ' + G + ' (' + D[G] + ').'; ra = !0; break; } if (g) { if (0 == (M.flags & 32)) { this.error = 'error: register operand ' + G + ' (' + D[G] + ') only allowed in vertex programs.'; ra = !0; break; } if (J) { this.error = 'error: register operand ' + G + ' (' + D[G] + ') relative adressing not allowed in fragment programs.'; ra = !0; break; } } else if (0 == (M.flags & 64)) { this.error = 'error: register operand ' + G + ' (' + D[G] + ') only allowed in fragment programs.'; ra = !0; break; } D[G] = A.substr(D[G], D[G].indexOf(M.name) + M.name.length, null); var K = J ? this.match(y[0], u) : this.match(D[G], u); L = 0; 0 < K.length && (L = B.parseInt(K[0])); if (Ba.gt(L, M.range)) { E = M.range + 1; this.error = 'error: register operand ' + G + ' (' + D[G] + ') index exceeds limit of ' + (null == E ? 'null' : B.string(Ba.toFloat(E))) + '.'; ra = !0; break; } var N = this.match(D[G], q), P = 0 == G && 0 == (C.flags & 128), S = 2 == G && 0 != (C.flags & 8), za = 0, T = 0, W = 0; if (P && J) { this.error = 'error: relative can not be destination'; ra = !0; break; } if (0 < N.length) { for (var V = (K = 0), Z = N[0].length, X = 1; X < Z; ) (V = A.cca(N[0], X) - 120), Ba.gt(V, 2) && (V = 3), (K = P ? K | (1 << V) : K | (V << ((X - 1) << 1))), ++X; if (!P) for (; 4 >= X; ) (K |= V << ((X - 1) << 1)), ++X; } else K = P ? 15 : 228; if (J) { N = this.match(y[0], r); za = Y.REGMAP.h[N[0]]; if (null == za) { this.error = 'error: bad index register'; ra = !0; break; } za = za.emitCode; V = this.match(y[0], w); if (0 == V.length) { this.error = 'error: bad index register select'; ra = !0; break; } T = A.cca(V[0], 1) - 120; Ba.gt(T, 2) && (T = 3); y = this.match(y[0], x); 0 < y.length && (W = B.parseInt(y[0])); if (0 > W || 255 < W) { this.error = 'error: index offset ' + W + ' out of bounds. [0..255]'; ra = !0; break; } this.verbose && Xa.info( 'RELATIVE: type=' + za + '==' + N[0] + ' sel=' + (null == T ? 'null' : B.string(Ba.toFloat(T))) + '==' + V[0] + ' idx=' + (null == L ? 'null' : B.string(Ba.toFloat(L))) + ' offset=' + W, { fileName: 'openfl/utils/AGALMiniAssembler.hx', lineNumber: 518, className: 'openfl.utils.AGALMiniAssembler', methodName: 'assemble' } ); } this.verbose && Xa.info( ' emit argcode=' + B.string(M) + '[' + (null == L ? 'null' : B.string(Ba.toFloat(L))) + '][' + K + ']', { fileName: 'openfl/utils/AGALMiniAssembler.hx', lineNumber: 525, className: 'openfl.utils.AGALMiniAssembler', methodName: 'assemble' } ); if (P) this.agalcode.writeShort(L), this.agalcode.writeByte(K), this.agalcode.writeByte(M.emitCode), (F -= 32); else { if (S) { this.verbose && Xa.info(' emit sampler', { fileName: 'openfl/utils/AGALMiniAssembler.hx', lineNumber: 541, className: 'openfl.utils.AGALMiniAssembler', methodName: 'assemble' }); G = 5; y = J = 0; for (M = null == I ? 0 : I.length; y < M; ) (K = y++), this.verbose && Xa.info(' opt: ' + I[K], { fileName: 'openfl/utils/AGALMiniAssembler.hx', lineNumber: 552, className: 'openfl.utils.AGALMiniAssembler', methodName: 'assemble' }), (P = Y.SAMPLEMAP.h[I[K]]), null == P ? ((J = parseFloat(I[K])), this.verbose && Xa.info(' bias: ' + J, { fileName: 'openfl/utils/AGALMiniAssembler.hx', lineNumber: 565, className: 'openfl.utils.AGALMiniAssembler', methodName: 'assemble' })) : (16 != P.flag && (G &= ~(15 << P.flag)), (G |= P.mask << P.flag)); this.agalcode.writeShort(L); this.agalcode.writeByte((8 * J) | 0); this.agalcode.writeByte(0); this.agalcode.writeUnsignedInt(G); this.verbose && Xa.info(' bits: ' + (G - 5), { fileName: 'openfl/utils/AGALMiniAssembler.hx', lineNumber: 586, className: 'openfl.utils.AGALMiniAssembler', methodName: 'assemble' }); } else 0 == G && (this.agalcode.writeUnsignedInt(0), (F -= 32)), this.agalcode.writeShort(L), this.agalcode.writeByte(W), this.agalcode.writeByte(K), this.agalcode.writeByte(M.emitCode), this.agalcode.writeByte(za), this.agalcode.writeShort(J ? T | 32768 : 0); F -= 64; } } for (E = 0; E < F; ) this.agalcode.writeByte(0), (E += 8); if (ra) break; } ++z; } '' != this.error && ((this.error += '\n at line ' + z + ' ' + a[z]), zb.set_length(this.agalcode, 0), Xa.info(this.error, { fileName: 'openfl/utils/AGALMiniAssembler.hx', lineNumber: 631, className: 'openfl.utils.AGALMiniAssembler', methodName: 'assemble' })); if (this.debugEnabled) { c = 'generated bytecode:'; g = zb.get_length(this.agalcode); E = 0; for (H = g; E < H; ) (g = E++), 0 == g % 16 && (c += '\n'), 0 == g % 4 && (c += ' '), (g = U.hex(this.agalcode.b[g], 2)), 2 > g.length && (g = '0' + g), (c += g); Xa.info(c, { fileName: 'openfl/utils/AGALMiniAssembler.hx', lineNumber: 662, className: 'openfl.utils.AGALMiniAssembler', methodName: 'assemble' }); } this.verbose && Xa.info('AGALMiniAssembler.assemble time: ' + (Ma.getTimer() - e) / 1e3 + 's', { fileName: 'openfl/utils/AGALMiniAssembler.hx', lineNumber: 667, className: 'openfl.utils.AGALMiniAssembler', methodName: 'assemble' }); return this.agalcode; }, initregmap: function (a, b) { var c = Y.REGMAP, d = new qf('va', 'vertex attribute', 0, b ? 1024 : 1 == a || 2 == a ? 7 : 15, 66); c.h.va = d; c = Y.REGMAP; d = new qf('vc', 'vertex constant', 1, b ? 1024 : 1 == a ? 127 : 249, 66); c.h.vc = d; c = Y.REGMAP; d = new qf('vt', 'vertex temporary', 2, b ? 1024 : 1 == a ? 7 : 25, 67); c.h.vt = d; c = Y.REGMAP; d = new qf('vo', 'vertex output', 3, b ? 1024 : 0, 65); c.h.vo = d; c = Y.REGMAP; d = new qf('vi', 'varying', 4, b ? 1024 : 1 == a ? 7 : 9, 99); c.h.vi = d; c = Y.REGMAP; d = new qf('fc', 'fragment constant', 1, b ? 1024 : 1 == a ? 27 : 2 == a ? 63 : 199, 34); c.h.fc = d; c = Y.REGMAP; d = new qf('ft', 'fragment temporary', 2, b ? 1024 : 1 == a ? 7 : 25, 35); c.h.ft = d; c = Y.REGMAP; d = new qf('fs', 'texture sampler', 5, b ? 1024 : 7, 34); c.h.fs = d; c = Y.REGMAP; d = new qf('fo', 'fragment output', 3, b ? 1024 : 1 == a ? 0 : 3, 33); c.h.fo = d; c = Y.REGMAP; d = new qf('fd', 'fragment depth output', 6, b ? 1024 : 1 == a ? -1 : 0, 33); c.h.fd = d; c = Y.REGMAP; d = new qf('iid', 'instance id', 7, b ? 1024 : 0, 66); c.h.iid = d; d = Y.REGMAP.h.vo; Y.REGMAP.h.op = d; d = Y.REGMAP.h.vi; Y.REGMAP.h.i = d; d = Y.REGMAP.h.vi; Y.REGMAP.h.v = d; d = Y.REGMAP.h.fo; Y.REGMAP.h.oc = d; d = Y.REGMAP.h.fd; Y.REGMAP.h.od = d; d = Y.REGMAP.h.vi; Y.REGMAP.h.fi = d; }, match: function (a, b) { for (var c = [], d = 0; b.matchSub(a, d); ) (d = b.matched(0)), c.push(d), (d = b.matchedPos().pos + d.length); return c; }, __class__: Y }; var ac = function (a, b, c, d) { this.name = a; this.numRegister = b; this.emitCode = c; this.flags = d; }; h['openfl.utils._AGALMiniAssembler.OpCode'] = ac; ac.__name__ = 'openfl.utils._AGALMiniAssembler.OpCode'; ac.prototype = { emitCode: null, flags: null, name: null, numRegister: null, toString: function () { return ( '[OpCode name="' + this.name + '", numRegister=' + this.numRegister + ', emitCode=' + this.emitCode + ', flags=' + this.flags + ']' ); }, __class__: ac }; var qf = function (a, b, c, d, f) { this.name = a; this.longName = b; this.emitCode = c; this.range = d; this.flags = f; }; h['openfl.utils._AGALMiniAssembler.Register'] = qf; qf.__name__ = 'openfl.utils._AGALMiniAssembler.Register'; qf.prototype = { emitCode: null, name: null, longName: null, flags: null, range: null, toString: function () { return ( '[Register name="' + this.name + '", longName="' + this.longName + '", emitCode=' + (null == this.emitCode ? 'null' : B.string(Ba.toFloat(this.emitCode))) + ', range=' + (null == this.range ? 'null' : B.string(Ba.toFloat(this.range))) + ', flags=' + (null == this.flags ? 'null' : B.string(Ba.toFloat(this.flags))) + ']' ); }, __class__: qf }; var Zc = function (a, b, c) { this.name = a; this.flag = b; this.mask = c; }; h['openfl.utils._AGALMiniAssembler.Sampler'] = Zc; Zc.__name__ = 'openfl.utils._AGALMiniAssembler.Sampler'; Zc.prototype = { flag: null, mask: null, name: null, toString: function () { return ( '[Sampler name="' + this.name + '", flag="' + (null == this.flag ? 'null' : B.string(Ba.toFloat(this.flag))) + '", mask=' + (null == this.mask ? 'null' : B.string(Ba.toFloat(this.mask))) + ']' ); }, __class__: Zc }; var nn = function () {}; h['openfl.utils.IAssetCache'] = nn; nn.__name__ = 'openfl.utils.IAssetCache'; nn.__isInterface__ = !0; nn.prototype = { get_enabled: null, set_enabled: null, clear: null, getBitmapData: null, getFont: null, getSound: null, hasBitmapData: null, hasFont: null, hasSound: null, removeBitmapData: null, removeFont: null, removeSound: null, setBitmapData: null, setFont: null, setSound: null, __class__: nn, __properties__: { set_enabled: 'set_enabled', get_enabled: 'get_enabled' } }; var on = function () { this.__enabled = !0; this.bitmapData = new qa(); this.font = new qa(); this.sound = new qa(); }; h['openfl.utils.AssetCache'] = on; on.__name__ = 'openfl.utils.AssetCache'; on.__interfaces__ = [nn]; on.prototype = { bitmapData: null, font: null, sound: null, __enabled: null, clear: function (a) { if (null == a) (this.bitmapData = new qa()), (this.font = new qa()), (this.sound = new qa()); else { var b = this.bitmapData.h; b = Object.keys(b); for (var c = b.length, d = 0; d < c; ) { var f = b[d++]; U.startsWith(f, a) && this.removeBitmapData(f); } b = this.font.h; b = Object.keys(b); c = b.length; for (d = 0; d < c; ) (f = b[d++]), U.startsWith(f, a) && this.removeFont(f); b = this.sound.h; b = Object.keys(b); c = b.length; for (d = 0; d < c; ) (f = b[d++]), U.startsWith(f, a) && this.removeSound(f); } }, getBitmapData: function (a) { return this.bitmapData.h[a]; }, getFont: function (a) { return this.font.h[a]; }, getSound: function (a) { return this.sound.h[a]; }, hasBitmapData: function (a) { return Object.prototype.hasOwnProperty.call(this.bitmapData.h, a); }, hasFont: function (a) { return Object.prototype.hasOwnProperty.call(this.font.h, a); }, hasSound: function (a) { return Object.prototype.hasOwnProperty.call(this.sound.h, a); }, removeBitmapData: function (a) { var b = wa.cache.image; Object.prototype.hasOwnProperty.call(b.h, a) && delete b.h[a]; b = this.bitmapData; return Object.prototype.hasOwnProperty.call(b.h, a) ? (delete b.h[a], !0) : !1; }, removeFont: function (a) { var b = wa.cache.font; Object.prototype.hasOwnProperty.call(b.h, a) && delete b.h[a]; b = this.font; return Object.prototype.hasOwnProperty.call(b.h, a) ? (delete b.h[a], !0) : !1; }, removeSound: function (a) { var b = wa.cache.audio; Object.prototype.hasOwnProperty.call(b.h, a) && delete b.h[a]; b = this.sound; return Object.prototype.hasOwnProperty.call(b.h, a) ? (delete b.h[a], !0) : !1; }, setBitmapData: function (a, b) { this.bitmapData.h[a] = b; }, setFont: function (a, b) { this.font.h[a] = b; }, setSound: function (a, b) { this.sound.h[a] = b; }, get_enabled: function () { return this.__enabled; }, set_enabled: function (a) { return (this.__enabled = a); }, __class__: on, __properties__: { set_enabled: 'set_enabled', get_enabled: 'get_enabled' } }; var le = function () { qb.call(this); }; h['openfl.utils.AssetLibrary'] = le; le.__name__ = 'openfl.utils.AssetLibrary'; le.fromBytes = function (a, b) { return le.fromManifest(Ic.fromBytes(zb.toLimeBytes(a), b)); }; le.fromFile = function (a, b) { return le.fromManifest(Ic.fromFile(a, b)); }; le.fromManifest = function (a) { a = qb.fromManifest(a); if (null != a) { if (a instanceof le) return a; var b = new le(); b.__proxy = a; return b; } return null; }; le.loadFromBytes = function (a, b) { return Ic.loadFromBytes(zb.toLimeBytes(a), b).then(function (a) { return le.loadFromManifest(a); }); }; le.loadFromFile = function (a, b) { return Ic.loadFromFile(a, b).then(function (a) { return le.loadFromManifest(a); }); }; le.loadFromManifest = function (a) { a = le.fromManifest(a); return null != a ? a.load().then(function (a) { return kb.withValue(a); }) : kb.withError('Could not load asset manifest'); }; le.__super__ = qb; le.prototype = r(qb.prototype, { __proxy: null, exists: function (a, b) { return null != this.__proxy ? this.__proxy.exists(a, b) : qb.prototype.exists.call(this, a, b); }, getAsset: function (a, b) { return null != this.__proxy ? this.__proxy.getAsset(a, b) : qb.prototype.getAsset.call(this, a, b); }, getAudioBuffer: function (a) { return null != this.__proxy ? this.__proxy.getAudioBuffer(a) : qb.prototype.getAudioBuffer.call(this, a); }, getBytes: function (a) { return null != this.__proxy ? this.__proxy.getBytes(a) : qb.prototype.getBytes.call(this, a); }, getFont: function (a) { return null != this.__proxy ? this.__proxy.getFont(a) : qb.prototype.getFont.call(this, a); }, getImage: function (a) { return null != this.__proxy ? this.__proxy.getImage(a) : qb.prototype.getImage.call(this, a); }, getMovieClip: function (a) { return null; }, getPath: function (a) { return null != this.__proxy ? this.__proxy.getPath(a) : qb.prototype.getPath.call(this, a); }, getText: function (a) { return null != this.__proxy ? this.__proxy.getText(a) : qb.prototype.getText.call(this, a); }, isLocal: function (a, b) { return null != this.__proxy ? this.__proxy.isLocal(a, b) : qb.prototype.isLocal.call(this, a, b); }, list: function (a) { return null != this.__proxy ? this.__proxy.list(a) : qb.prototype.list.call(this, a); }, loadAsset: function (a, b) { return null != this.__proxy ? this.__proxy.loadAsset(a, b) : qb.prototype.loadAsset.call(this, a, b); }, load: function () { return null != this.__proxy ? this.__proxy.load() : qb.prototype.load.call(this); }, loadAudioBuffer: function (a) { return null != this.__proxy ? this.__proxy.loadAudioBuffer(a) : qb.prototype.loadAudioBuffer.call(this, a); }, loadBytes: function (a) { return null != this.__proxy ? this.__proxy.loadBytes(a) : qb.prototype.loadBytes.call(this, a); }, loadFont: function (a) { return null != this.__proxy ? this.__proxy.loadFont(a) : qb.prototype.loadFont.call(this, a); }, loadImage: function (a) { return null != this.__proxy ? this.__proxy.loadImage(a) : qb.prototype.loadImage.call(this, a); }, loadMovieClip: function (a) { return kb.withValue(this.getMovieClip(a)); }, loadText: function (a) { return null != this.__proxy ? this.__proxy.loadText(a) : qb.prototype.loadText.call(this, a); }, unload: function () { null != this.__proxy ? this.__proxy.unload() : qb.prototype.unload.call(this); }, __class__: le }); var Da = function () {}; h['openfl.utils.Assets'] = Da; Da.__name__ = 'openfl.utils.Assets'; Da.addEventListener = function (a, b, c, d, f) { null == f && (f = !1); null == d && (d = 0); null == c && (c = !1); wa.onChange.has(Da.LimeAssets_onChange) || wa.onChange.add(Da.LimeAssets_onChange); Da.dispatcher.addEventListener(a, b, c, d, f); }; Da.dispatchEvent = function (a) { return Da.dispatcher.dispatchEvent(a); }; Da.exists = function (a, b) { return wa.exists(a, b); }; Da.getBitmapData = function (a, b) { null == b && (b = !0); if (b && Da.cache.get_enabled() && Da.cache.hasBitmapData(a)) { var c = Da.cache.getBitmapData(a); if (Da.isValidBitmapData(c)) return c; } c = wa.getImage(a, !1); return null != c ? ((c = ja.fromImage(c)), b && Da.cache.get_enabled() && Da.cache.setBitmapData(a, c), c) : null; }; Da.getBytes = function (a) { return zb.fromLimeBytes(wa.getBytes(a)); }; Da.getFont = function (a, b) { null == b && (b = !0); if (b && Da.cache.get_enabled() && Da.cache.hasFont(a)) return Da.cache.getFont(a); var c = wa.getFont(a, !1); if (null != c) { var d = new Sc(); d.__fromLimeFont(c); b && Da.cache.get_enabled() && Da.cache.setFont(a, d); return d; } return new Sc(); }; Da.getLibrary = function (a) { return wa.getLibrary(a); }; Da.getMovieClip = function (a) { var b = a.substring(0, a.indexOf(':')), c = A.substr(a, a.indexOf(':') + 1, null), d = Da.getLibrary(b); if (null != d) { if (d instanceof le && d.exists(c, 'MOVIE_CLIP')) { if (d.isLocal(c, 'MOVIE_CLIP')) return d.getMovieClip(c); Xa.error('MovieClip asset "' + a + '" exists, but only asynchronously', { fileName: 'openfl/utils/Assets.hx', lineNumber: 207, className: 'openfl.utils.Assets', methodName: 'getMovieClip' }); return null; } Xa.error('There is no MovieClip asset with an ID of "' + a + '"', { fileName: 'openfl/utils/Assets.hx', lineNumber: 213, className: 'openfl.utils.Assets', methodName: 'getMovieClip' }); } else Xa.error('There is no asset library named "' + b + '"', { fileName: 'openfl/utils/Assets.hx', lineNumber: 217, className: 'openfl.utils.Assets', methodName: 'getMovieClip' }); return null; }; Da.getMusic = function (a, b) { null == b && (b = !0); return Da.getSound(a, b); }; Da.getPath = function (a) { return wa.getPath(a); }; Da.getSound = function (a, b) { null == b && (b = !0); if (b && Da.cache.get_enabled() && Da.cache.hasSound(a)) { var c = Da.cache.getSound(a); if (Da.isValidSound(c)) return c; } c = wa.getAudioBuffer(a, !1); return null != c ? ((c = yf.fromAudioBuffer(c)), b && Da.cache.get_enabled() && Da.cache.setSound(a, c), c) : null; }; Da.getText = function (a) { return wa.getText(a); }; Da.hasEventListener = function (a) { return Da.dispatcher.hasEventListener(a); }; Da.hasLibrary = function (a) { return wa.hasLibrary(a); }; Da.isLocal = function (a, b, c) { null == c && (c = !0); if ( c && Da.cache.get_enabled() && ((('IMAGE' == b || null == b) && Da.cache.hasBitmapData(a)) || (('FONT' == b || null == b) && Da.cache.hasFont(a)) || (('SOUND' == b || 'MUSIC' == b || null == b) && Da.cache.hasSound(a))) ) return !0; c = a.substring(0, a.indexOf(':')); a = A.substr(a, a.indexOf(':') + 1, null); c = Da.getLibrary(c); return null != c ? c.isLocal(a, b) : !1; }; Da.isValidBitmapData = function (a) { return null != a && null != a.image; }; Da.isValidSound = function (a) { return !0; }; Da.list = function (a) { return wa.list(a); }; Da.loadBitmapData = function (a, b) { null == b && (b = !0); null == b && (b = !0); var c = new $d(); if (b && Da.cache.get_enabled() && Da.cache.hasBitmapData(a)) { var d = Da.cache.getBitmapData(a); if (Da.isValidBitmapData(d)) return c.complete(d), c.future; } wa.loadImage(a, !1) .onComplete(function (d) { null != d ? ((d = ja.fromImage(d)), b && Da.cache.get_enabled() && Da.cache.setBitmapData(a, d), c.complete(d)) : c.error('[Assets] Could not load Image "' + a + '"'); }) .onError(q(c, c.error)) .onProgress(q(c, c.progress)); return c.future; }; Da.loadBytes = function (a) { var b = new $d(); a = wa.loadBytes(a); a.onComplete(function (a) { b.complete(zb.fromLimeBytes(a)); }); a.onProgress(function (a, d) { b.progress(a, d); }); a.onError(function (a) { b.error(a); }); return b.future; }; Da.loadFont = function (a, b) { null == b && (b = !0); null == b && (b = !0); var c = new $d(); if (b && Da.cache.get_enabled() && Da.cache.hasFont(a)) return c.complete(Da.cache.getFont(a)), c.future; wa.loadFont(a) .onComplete(function (d) { var e = new Sc(); e.__fromLimeFont(d); b && Da.cache.get_enabled() && Da.cache.setFont(a, e); c.complete(e); }) .onError(q(c, c.error)) .onProgress(q(c, c.progress)); return c.future; }; Da.loadLibrary = function (a) { return wa.loadLibrary(a).then(function (b) { var c = null; null != b && (b instanceof le ? (c = b) : ((c = new le()), (c.__proxy = b), wa.registerLibrary(a, c))); return kb.withValue(c); }); }; Da.loadMusic = function (a, b) { null == b && (b = !0); null == b && (b = !0); return new kb(function () { return Da.getMusic(a, b); }); }; Da.loadMovieClip = function (a) { var b = new $d(), c = a.substring(0, a.indexOf(':')), d = A.substr(a, a.indexOf(':') + 1, null), f = Da.getLibrary(c); if (null != f) { if (f instanceof le && f.exists(d, 'MOVIE_CLIP')) return b.completeWith(f.loadMovieClip(d)), b.future; b.error('[Assets] There is no MovieClip asset with an ID of "' + a + '"'); } else b.error('[Assets] There is no asset library named "' + c + '"'); return b.future; }; Da.loadSound = function (a, b) { null == b && (b = !0); null == b && (b = !0); var c = new $d(); wa.loadAudioBuffer(a, b) .onComplete(function (d) { null != d ? ((d = yf.fromAudioBuffer(d)), b && Da.cache.get_enabled() && Da.cache.setSound(a, d), c.complete(d)) : c.error('[Assets] Could not load Sound "' + a + '"'); }) .onError(q(c, c.error)) .onProgress(q(c, c.progress)); return c.future; }; Da.loadText = function (a) { return wa.loadText(a); }; Da.registerLibrary = function (a, b) { wa.registerLibrary(a, b); }; Da.removeEventListener = function (a, b, c) { null == c && (c = !1); Da.dispatcher.removeEventListener(a, b, c); }; Da.resolveClass = function (a) { return h[a]; }; Da.resolveEnum = function (a) { return E[a]; }; Da.unloadLibrary = function (a) { wa.unloadLibrary(a); }; Da.LimeAssets_onChange = function () { Da.dispatchEvent(new oa('change')); }; var zb = { __properties__: { set_position: 'set_position', get_position: 'get_position', set_length: 'set_length', get_length: 'get_length', get_bytesAvailable: 'get_bytesAvailable', set_defaultObjectEncoding: 'set_defaultObjectEncoding', get_defaultObjectEncoding: 'get_defaultObjectEncoding', set_defaultEndian: 'set_defaultEndian', get_defaultEndian: 'get_defaultEndian' }, _new: function (a) { null == a && (a = 0); return new pc(a); }, clear: function (a) { a.clear(); }, compress: function (a, b) { a.compress(b); }, deflate: function (a) { a.deflate(); }, fromArrayBuffer: function (a) { return null == a ? null : pc.fromBytes(hb.ofData(a)); }, fromBytes: function (a) { return null == a ? null : a instanceof pc ? a : pc.fromBytes(a); }, fromBytesData: function (a) { return null == a ? null : pc.fromBytes(hb.ofData(a)); }, fromFile: function (a) { return zb.fromLimeBytes(kc.fromFile(a)); }, fromLimeBytes: function (a) { return zb.fromBytes(a); }, get: function (a, b) { return a.b[b]; }, inflate: function (a) { a.inflate(); }, loadFromBytes: function (a) { return kc.loadFromBytes(a).then(function (a) { a = zb.fromLimeBytes(a); return kb.withValue(a); }); }, loadFromFile: function (a) { return kc.loadFromFile(a).then(function (a) { a = zb.fromLimeBytes(a); return kb.withValue(a); }); }, readBoolean: function (a) { return a.readBoolean(); }, readByte: function (a) { return a.readByte(); }, readBytes: function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); a.readBytes(b, c, d); }, readDouble: function (a) { return a.readDouble(); }, readFloat: function (a) { return a.readFloat(); }, readInt: function (a) { return a.readInt(); }, readMultiByte: function (a, b, c) { return a.readMultiByte(b, c); }, readObject: function (a) { return a.readObject(); }, readShort: function (a) { return a.readShort(); }, readUTF: function (a) { return a.readUTF(); }, readUTFBytes: function (a, b) { return a.readUTFBytes(b); }, readUnsignedByte: function (a) { return a.readUnsignedByte(); }, readUnsignedInt: function (a) { return a.readUnsignedInt(); }, readUnsignedShort: function (a) { return a.readUnsignedShort(); }, set: function (a, b, c) { a.__resize(b + 1); a.b[b] = c & 255; return c; }, toArrayBuffer: function (a) { return a.b.bufferValue; }, toBytePointer: function (a) { ox.set(zb.__bytePointer, a, null, null, a.position); return zb.__bytePointer; }, toBytes: function (a) { return a; }, toBytesData: function (a) { return a.b.bufferValue; }, toLimeBytes: function (a) { return a; }, toString: function (a) { return a.toString(); }, uncompress: function (a, b) { a.uncompress(b); }, writeBoolean: function (a, b) { a.writeBoolean(b); }, writeByte: function (a, b) { a.writeByte(b); }, writeBytes: function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); a.writeBytes(b, c, d); }, writeDouble: function (a, b) { a.writeDouble(b); }, writeFloat: function (a, b) { a.writeFloat(b); }, writeInt: function (a, b) { a.writeInt(b); }, writeMultiByte: function (a, b, c) { a.writeMultiByte(b, c); }, writeObject: function (a, b) { a.writeObject(b); }, writeShort: function (a, b) { a.writeShort(b); }, writeUTF: function (a, b) { a.writeUTF(b); }, writeUTFBytes: function (a, b) { a.writeUTFBytes(b); }, writeUnsignedInt: function (a, b) { a.writeUnsignedInt(b); }, get_bytesAvailable: function (a) { return a.length - a.position; }, get_defaultEndian: function () { null == pc.__defaultEndian && (Wa.get_endianness() == Bg.LITTLE_ENDIAN ? (pc.__defaultEndian = 1) : (pc.__defaultEndian = 0)); return pc.__defaultEndian; }, set_defaultEndian: function (a) { return (pc.__defaultEndian = a); }, get_defaultObjectEncoding: function () { return pc.defaultObjectEncoding; }, set_defaultObjectEncoding: function (a) { return (pc.defaultObjectEncoding = a); }, get_endian: function (a) { return a.__endian; }, set_endian: function (a, b) { return (a.__endian = b); }, get_length: function (a) { return null == a ? 0 : a.length; }, set_length: function (a, b) { 0 < b && (a.__resize(b), b < a.position && (a.position = b)); return (a.length = b); }, get_objectEncoding: function (a) { return a.objectEncoding; }, set_objectEncoding: function (a, b) { return (a.objectEncoding = b); }, get_position: function (a) { return a.position; }, set_position: function (a, b) { return (a.position = b); } }, pn = function () {}; h['openfl.utils.IDataOutput'] = pn; pn.__name__ = 'openfl.utils.IDataOutput'; pn.__isInterface__ = !0; pn.prototype = { get_endian: null, set_endian: null, objectEncoding: null, writeBoolean: null, writeByte: null, writeBytes: null, writeDouble: null, writeFloat: null, writeInt: null, writeMultiByte: null, writeObject: null, writeShort: null, writeUnsignedInt: null, writeUTF: null, writeUTFBytes: null, __class__: pn, __properties__: { set_endian: 'set_endian', get_endian: 'get_endian' } }; var qn = function () {}; h['openfl.utils.IDataInput'] = qn; qn.__name__ = 'openfl.utils.IDataInput'; qn.__isInterface__ = !0; qn.prototype = { get_bytesAvailable: null, get_endian: null, set_endian: null, objectEncoding: null, readBoolean: null, readByte: null, readBytes: null, readDouble: null, readFloat: null, readInt: null, readMultiByte: null, readObject: null, readShort: null, readUnsignedByte: null, readUnsignedInt: null, readUnsignedShort: null, readUTF: null, readUTFBytes: null, __class__: qn, __properties__: { set_endian: 'set_endian', get_endian: 'get_endian', get_bytesAvailable: 'get_bytesAvailable' } }; var pc = function (a) { null == a && (a = 0); var b = new hb(new ArrayBuffer(a)); hb.call(this, b.b.buffer); this.__length = a; null == pc.__defaultEndian && (Wa.get_endianness() == Bg.LITTLE_ENDIAN ? (pc.__defaultEndian = 1) : (pc.__defaultEndian = 0)); this.__endian = pc.__defaultEndian; this.objectEncoding = pc.defaultObjectEncoding; this.position = 0; }; h['openfl.utils.ByteArrayData'] = pc; pc.__name__ = 'openfl.utils.ByteArrayData'; pc.__interfaces__ = [pn, qn]; pc.__properties__ = { set_defaultEndian: 'set_defaultEndian', get_defaultEndian: 'get_defaultEndian' }; pc.fromBytes = function (a) { var b = new pc(); b.__fromBytes(a); return b; }; pc.get_defaultEndian = function () { null == pc.__defaultEndian && (Wa.get_endianness() == Bg.LITTLE_ENDIAN ? (pc.__defaultEndian = 1) : (pc.__defaultEndian = 0)); return pc.__defaultEndian; }; pc.set_defaultEndian = function (a) { return (pc.__defaultEndian = a); }; pc.__super__ = hb; pc.prototype = r(hb.prototype, { objectEncoding: null, position: null, __endian: null, __length: null, clear: function () { this.position = this.length = 0; }, compress: function (a) { null == a && (a = 2); if (this.__length > this.length) { var b = this.length; this.length = this.__length; var c = new hb(new ArrayBuffer(b)); c.blit(0, this, 0, b); this.b = c.b; this.__length = c.length; this.data = c.data; this.length = b; } switch (a) { case 0: a = kc.compress(this, ae.DEFLATE); break; case 1: a = kc.compress(this, ae.LZMA); break; default: a = kc.compress(this, ae.ZLIB); } null != a && ((this.b = a.b), (this.__length = a.length), (this.data = a.data), (this.position = this.length = this.__length)); }, deflate: function () { this.compress(0); }, inflate: function () { this.uncompress(0); }, readBoolean: function () { if (this.position < this.length) return 0 != this.b[this.position++]; throw M.thrown(new fh()); }, readByte: function () { var a = this.readUnsignedByte(); return 0 != (a & 128) ? a - 256 : a; }, readBytes: function (a, b, c) { null == c && (c = 0); null == b && (b = 0); 0 == c && (c = this.length - this.position); if (this.position + c > this.length) throw M.thrown(new fh()); a.length < b + c && a.__resize(b + c); a.blit(b, this, this.position, c); this.position += c; }, readDouble: function () { if (1 == this.__endian) { if (this.position + 8 > this.length) throw M.thrown(new fh()); this.position += 8; return this.getDouble(this.position - 8); } var a = this.readInt(), b = this.readInt(); return Zd.i64ToDouble(b, a); }, readFloat: function () { if (1 == this.__endian) { if (this.position + 4 > this.length) throw M.thrown(new fh()); this.position += 4; return this.getFloat(this.position - 4); } return Zd.i32ToFloat(this.readInt()); }, readInt: function () { var a = this.readUnsignedByte(), b = this.readUnsignedByte(), c = this.readUnsignedByte(), d = this.readUnsignedByte(); return 1 == this.__endian ? (d << 24) | (c << 16) | (b << 8) | a : (a << 24) | (b << 16) | (c << 8) | d; }, readMultiByte: function (a, b) { return this.readUTFBytes(a); }, readObject: function () { switch (this.objectEncoding) { case 10: var a = this.readUTF(); return Ke.run(a); case 12: return (a = this.readUTF()), JSON.parse(a); default: return null; } }, readShort: function () { var a = this.readUnsignedByte(), b = this.readUnsignedByte(); a = 1 == this.__endian ? (b << 8) | a : (a << 8) | b; return 0 != (a & 32768) ? a - 65536 : a; }, readUnsignedByte: function () { if (this.position < this.length) return this.b[this.position++]; throw M.thrown(new fh()); }, readUnsignedInt: function () { var a = this.readUnsignedByte(), b = this.readUnsignedByte(), c = this.readUnsignedByte(), d = this.readUnsignedByte(); return 1 == this.__endian ? (d << 24) | (c << 16) | (b << 8) | a : (a << 24) | (b << 16) | (c << 8) | d; }, readUnsignedShort: function () { var a = this.readUnsignedByte(), b = this.readUnsignedByte(); return 1 == this.__endian ? (b << 8) + a : (a << 8) | b; }, readUTF: function () { var a = this.readUnsignedShort(); return this.readUTFBytes(a); }, readUTFBytes: function (a) { if (this.position + a > this.length) throw M.thrown(new fh()); this.position += a; return this.getString(this.position - a, a); }, uncompress: function (a) { null == a && (a = 2); if (this.__length > this.length) { var b = this.length; this.length = this.__length; var c = new hb(new ArrayBuffer(b)); c.blit(0, this, 0, b); this.b = c.b; this.__length = c.length; this.data = c.data; this.length = b; } switch (a) { case 0: a = kc.decompress(this, ae.DEFLATE); break; case 1: a = kc.decompress(this, ae.LZMA); break; default: a = kc.decompress(this, ae.ZLIB); } null != a && ((this.b = a.b), (this.__length = a.length), (this.data = a.data), (this.length = this.__length)); this.position = 0; }, writeBoolean: function (a) { this.writeByte(a ? 1 : 0); }, writeByte: function (a) { this.__resize(this.position + 1); this.b[this.position++] = a & 255; }, writeBytes: function (a, b, c) { null == c && (c = 0); null == b && (b = 0); 0 != zb.get_length(a) && (0 == c && (c = zb.get_length(a) - b), this.__resize(this.position + c), this.blit(this.position, a, b, c), (this.position += c)); }, writeDouble: function (a) { a = Zd.doubleToI64(a); 1 == this.__endian ? (this.writeInt(a.low), this.writeInt(a.high)) : (this.writeInt(a.high), this.writeInt(a.low)); }, writeFloat: function (a) { 1 == this.__endian ? (this.__resize(this.position + 4), this.setFloat(this.position, a), (this.position += 4)) : ((a = Zd.floatToI32(a)), this.writeInt(a)); }, writeInt: function (a) { this.__resize(this.position + 4); 1 == this.__endian ? ((this.b[this.position++] = a & 255), (this.b[this.position++] = (a >> 8) & 255), (this.b[this.position++] = (a >> 16) & 255), (this.b[this.position++] = (a >> 24) & 255)) : ((this.b[this.position++] = (a >> 24) & 255), (this.b[this.position++] = (a >> 16) & 255), (this.b[this.position++] = (a >> 8) & 255), (this.b[this.position++] = a & 255)); }, writeMultiByte: function (a, b) { this.writeUTFBytes(a); }, writeObject: function (a) { switch (this.objectEncoding) { case 10: a = Be.run(a); this.writeUTF(a); break; case 12: (a = JSON.stringify(a)), this.writeUTF(a); } }, writeShort: function (a) { this.__resize(this.position + 2); 1 == this.__endian ? ((this.b[this.position++] = a & 255), (this.b[this.position++] = (a >> 8) & 255)) : ((this.b[this.position++] = (a >> 8) & 255), (this.b[this.position++] = a & 255)); }, writeUnsignedInt: function (a) { this.writeInt(a); }, writeUTF: function (a) { a = hb.ofString(a); this.writeShort(a.length); this.writeBytes(zb.fromBytes(a)); }, writeUTFBytes: function (a) { a = hb.ofString(a); this.writeBytes(zb.fromBytes(a)); }, __fromBytes: function (a) { this.b = a.b; this.__length = a.length; this.data = a.data; this.length = a.length; }, __resize: function (a) { if (a > this.__length) { var b = new hb(new ArrayBuffer((3 * (a + 1)) >> 1)); if (0 < this.__length) { var c = this.length; this.length = this.__length; b.blit(0, this, 0, this.__length); this.length = c; } this.b = b.b; this.__length = b.length; this.data = b.data; } this.length < a && (this.length = a); }, __setData: function (a) { this.b = a.b; this.__length = a.length; this.data = a.data; }, get_bytesAvailable: function () { return this.length - this.position; }, get_endian: function () { return this.__endian; }, set_endian: function (a) { return (this.__endian = a); }, __class__: pc, __properties__: { set_endian: 'set_endian', get_endian: 'get_endian', get_bytesAvailable: 'get_bytesAvailable' } }); var px = { exists: function (a, b) { return a.exists(b); }, get: function (a, b) { return a.get(b); }, keyValueIterator: function (a) { return a.keyValueIterator(); }, remove: function (a, b) { return a.remove(b); }, set: function (a, b, c) { a.set(b, c); return c; }, iterator: function (a) { return a.keys(); }, each: function (a) { return a.iterator(); }, toStringMap: function (a, b) { return new qa(); }, toIntMap: function (a, b) { return new Za(); }, toFloatMap: function (a, b) { return new fj(); }, toEnumValueMapMap: function (a, b) { return new Nj(); }, toObjectMap: function (a, b) { return new Jc(); }, toUtilsObjectMap: function (a, b) { return new gj(); }, toClassMap: function (a, b) { return new hj(); }, fromStringMap: function (a) { return a; }, fromIntMap: function (a) { return a; }, fromFloatMap: function (a) { return a; }, fromObjectMap: function (a) { return a; }, fromUtilsObjectMap: function (a) { return a; }, fromClassMap: function (a) { return a; } }, hj = function () { this.types = new qa(); this.values = new qa(); }; h['openfl.utils._Dictionary.ClassMap'] = hj; hj.__name__ = 'openfl.utils._Dictionary.ClassMap'; hj.__interfaces__ = [ed]; hj.prototype = { types: null, values: null, clear: function () { this.types.h = Object.create(null); this.values.h = Object.create(null); }, copy: function () { for (var a = new hj(), b = this.keys(); b.hasNext(); ) { var c = b.next(); a.set(c, this.get(c)); } return a; }, exists: function (a) { return Object.prototype.hasOwnProperty.call(this.types.h, a.__name__); }, get: function (a) { return this.values.h[a.__name__]; }, keyValueIterator: function () { return new ih(this); }, keys: function () { return new Ci(this.types.h); }, iterator: function () { return new Ci(this.values.h); }, remove: function (a) { a = a.__name__; var b = this.types; Object.prototype.hasOwnProperty.call(b.h, a) ? (delete b.h[a], (b = !0)) : (b = !1); if (b) return !0; b = this.values; return Object.prototype.hasOwnProperty.call(b.h, a) ? (delete b.h[a], !0) : !1; }, set: function (a, b) { var c = a.__name__; this.types.h[c] = a; this.values.h[c] = b; }, toString: function () { return qa.stringify(this.values.h); }, __class__: hj }; var fj = function () { this.floatKeys = []; this.values = []; }; h['openfl.utils._Dictionary.FloatMap'] = fj; fj.__name__ = 'openfl.utils._Dictionary.FloatMap'; fj.__interfaces__ = [ed]; fj.prototype = { floatKeys: null, values: null, clear: function () { this.floatKeys = []; this.values = []; }, copy: function () { for (var a = new fj(), b = this.keys(); b.hasNext(); ) { var c = b.next(); a.set(c, this.get(c)); } return a; }, exists: function (a) { return -1 < this.indexOf(a); }, get: function (a) { a = this.indexOf(a); return -1 < a ? this.values[a] : null; }, keyValueIterator: function () { return new ih(this); }, keys: function () { return new Me(this.floatKeys.slice()); }, iterator: function () { return new Me(this.values.slice()); }, remove: function (a) { a = this.indexOf(a); return -1 < a ? (this.floatKeys.splice(a, 1), this.values.splice(a, 1), !0) : !1; }, set: function (a, b) { this.insertSorted(a, b); }, indexOf: function (a) { var b = this.floatKeys.length, c = 0, d = b - 1; if (0 == b) return -1; for (; c < d; ) { b = Math.floor((c + d) / 2); if (this.floatKeys[b] == a) return b; this.floatKeys[b] > a ? (d = b - 1) : (c = b + 1); } return this.floatKeys[c] == a ? c : -1; }, insertSorted: function (a, b) { var c = this.floatKeys.length, d = 0, f = c - 1; if (0 == c) this.floatKeys.push(a), this.values.push(b); else { for (; d < f; ) { c = Math.floor((d + f) / 2); if (this.floatKeys[c] == a) { this.values[c] = b; return; } this.floatKeys[c] > a ? (f = c - 1) : (d = c + 1); } this.floatKeys[d] > a ? (this.floatKeys.splice(d, 0, a), this.values.splice(d, 0, b)) : this.floatKeys[d] < a ? (this.floatKeys.splice(d + 1, 0, a), this.values.splice(d + 1, 0, b)) : (this.values[d] = b); } }, toString: function () { return this.values.toString(); }, __class__: fj }; var gj = function () { this.map = new Jc(); }; h['openfl.utils._Dictionary.UtilsObjectMap'] = gj; gj.__name__ = 'openfl.utils._Dictionary.UtilsObjectMap'; gj.__interfaces__ = [ed]; gj.prototype = { map: null, clear: function () { this.map.h = { __keys__: {} }; }, copy: function () { for (var a = new gj(), b = this.keys(); b.hasNext(); ) { var c = b.next(); a.set(c, this.get(c)); } return a; }, exists: function (a) { return null != this.map.h.__keys__[a.__id__]; }, get: function (a) { return this.map.h[a.__id__]; }, keyValueIterator: function () { return new ih(this); }, keys: function () { return this.map.keys(); }, iterator: function () { return this.map.iterator(); }, remove: function (a) { return this.map.remove(a); }, set: function (a, b) { this.map.set(a, b); }, toString: function () { return this.map.toString(); }, __class__: gj }; var Tw = { fromLimeEndian: function (a) { switch (a._hx_index) { case 0: return 1; case 1: return 0; } }, fromString: function (a) { switch (a) { case 'bigEndian': return 0; case 'littleEndian': return 1; default: return null; } }, toLimeEndian: function (a) { switch (a) { case 0: return Bg.BIG_ENDIAN; case 1: return Bg.LITTLE_ENDIAN; default: return null; } }, toString: function (a) { switch (a) { case 0: return 'bigEndian'; case 1: return 'littleEndian'; default: return null; } } }, rn = function () {}; h['haxe.lang.Iterator'] = rn; rn.__name__ = 'haxe.lang.Iterator'; rn.__isInterface__ = !0; rn.prototype = { hasNext: null, next: null, __class__: rn }; var sn = function () {}; h['haxe.lang.Iterable'] = sn; sn.__name__ = 'haxe.lang.Iterable'; sn.__isInterface__ = !0; sn.prototype = { iterator: null, __class__: sn }; var Dc = function () {}; h['openfl.utils._internal.Lib'] = Dc; Dc.__name__ = 'openfl.utils._internal.Lib'; Dc.notImplemented = function (a) { var b = a.className + '.' + a.methodName; Object.prototype.hasOwnProperty.call(Dc.__sentWarnings.h, b) || ((Dc.__sentWarnings.h[b] = !0), Xa.warn(a.methodName + ' is not implemented', a)); }; var fi = function () { this.rollOutStack = []; }; h['openfl.utils._internal.TouchData'] = fi; fi.__name__ = 'openfl.utils._internal.TouchData'; fi.prototype = { rollOutStack: null, touch: null, touchDownTarget: null, touchOverTarget: null, reset: function () { this.touchOverTarget = this.touchDownTarget = this.touch = null; this.rollOutStack.splice(0, this.rollOutStack.length); }, __class__: fi }; var rg = function () {}; h['polygonal.ds.Cloneable'] = rg; rg.__name__ = 'polygonal.ds.Cloneable'; rg.__isInterface__ = !0; rg.prototype = { clone: null, __class__: rg }; var tn = function () {}; h['polygonal.ds.Hashable'] = tn; tn.__name__ = 'polygonal.ds.Hashable'; tn.__isInterface__ = !0; tn.prototype = { key: null, __class__: tn }; var ij = function () {}; h['polygonal.ds.Collection'] = ij; ij.__name__ = 'polygonal.ds.Collection'; ij.__isInterface__ = !0; ij.__interfaces__ = [tn]; ij.prototype = { get_size: null, free: null, contains: null, remove: null, clear: null, iterator: null, isEmpty: null, toArray: null, clone: null, __class__: ij, __properties__: { get_size: 'get_size' } }; var sg = function () {}; h['polygonal.ds.HashKey'] = sg; sg.__name__ = 'polygonal.ds.HashKey'; sg.next = function () { null == sg._counter && (sg._counter = 0); Ea._assert(sg._counter < sg._counter + 1, '_counter < _counter + 1', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashKey.hx', lineNumber: 44, className: 'polygonal.ds.HashKey', methodName: 'next' }); return sg._counter++; }; var mi = function () {}; h['polygonal.ds.Map'] = mi; mi.__name__ = 'polygonal.ds.Map'; mi.__isInterface__ = !0; mi.__interfaces__ = [ij]; mi.prototype = { has: null, hasKey: null, get: null, set: null, unset: null, remap: null, toValSet: null, toKeySet: null, keys: null, __class__: mi }; var un = function (a, b) { null == b && (b = -1); this.mTmpKeyBuffer = []; this.mTmpIntBuffer = []; this.mIterator = null; this.mFree = this.mSize = 0; this.reuseIterator = !1; this.key = sg.next(); Ea._assert(0 < a, 'slotCount > 0', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx', lineNumber: 158, className: 'polygonal.ds.HashTable', methodName: 'new' }); -1 == b && (b = a); 2 > b && (b = 2); this.mMinCapacity = this.capacity = b; this.mH = new tg(a, this.capacity); this.mKeys = Array(this.capacity); this.mVals = Array(this.capacity); a = this.mNext = Array(this.capacity); b = 0; for (var c = this.capacity - 1; b < c; ) { var d = b++; a[d] = d + 1; } a[this.capacity - 1] = -1; }; h['polygonal.ds.HashTable'] = un; un.__name__ = 'polygonal.ds.HashTable'; un.__interfaces__ = [mi]; un.prototype = { key: null, capacity: null, get_loadFactor: function () { return this.mH.get_loadFactor(); }, get_slotCount: function () { return this.mH.slotCount; }, reuseIterator: null, get_growthRate: function () { return this.mH.growthRate; }, set_growthRate: function (a) { return (this.mH.growthRate = a); }, mH: null, mKeys: null, mVals: null, mNext: null, mFree: null, mSize: null, mMinCapacity: null, mIterator: null, mTmpIntBuffer: null, mTmpKeyBuffer: null, getCollisionCount: function () { return this.mH.getCollisionCount(); }, getFront: function (a) { var b = this.mH; a = a.key; var c = (73856093 * a) & b.mMask, d = b.mHash[c]; if (-1 == d) b = -2147483648; else { var f = b.mData; if (f[d] == a) b = f[d + 1]; else { var g = -2147483648, k = d, l = k; for (d = f[d + 2]; -1 != d; ) { if (f[d] == a) { g = f[d + 1]; f[l + 2] = f[d + 2]; f[d + 2] = k; b.mHash[c] = d; break; } l = d; d = f[l + 2]; } b = g; } } return -2147483648 == b ? null : this.mVals[b]; }, setIfAbsent: function (a, b) { Ea._assert(null != a, 'key != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx', lineNumber: 210, className: 'polygonal.ds.HashTable', methodName: 'setIfAbsent' }); this.mSize == this.capacity && this.grow(); var c = this.mFree, d = this.mH, f = a.key; Ea._assert(-2147483648 != c, 'val 0x80000000 is reserved(val != KEY_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 291, className: 'polygonal.ds.IntIntHashTable', methodName: 'setIfAbsent' }); var g = (73856093 * f) & d.mMask, k = d.mData, l = d.mHash[g]; if (-1 == l) { d.mSize == d.capacity && (d.grow(), (k = d.mData)); var h = 3 * d.mFree; d.mFree = d.mNext[d.mFree]; d.mHash[g] = h; k[h] = f; k[h + 1] = c; d.mSize++; d = !0; } else if (k[l] == f) d = !1; else { for (g = k[l + 2]; -1 != g; ) { if (k[g] == f) { l = -1; break; } l = g; g = k[l + 2]; } -1 == l ? (d = !1) : (d.mSize == d.capacity && (d.grow(), (k = d.mData)), (h = 3 * d.mFree), (d.mFree = d.mNext[d.mFree]), (k[l + 2] = h), (k[h] = f), (k[h + 1] = c), d.mSize++, (d = !0)); } return d ? ((this.mVals[c] = b), (this.mKeys[c] = a), (this.mFree = this.mNext[c]), this.mSize++, !0) : !1; }, rehash: function (a) { this.mH.rehash(a); return this; }, remap: function (a, b) { Ea._assert(null != a, 'key != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx', lineNumber: 244, className: 'polygonal.ds.HashTable', methodName: 'remap' }); var c = this.mH; a = a.key; var d = c.mHash[(73856093 * a) & c.mMask]; if (-1 == d) a = -2147483648; else if (((c = c.mData), c[d] == a)) a = c[d + 1]; else { var f = -2147483648; for (d = c[d + 2]; -1 != d; ) { if (c[d] == a) { f = c[d + 1]; break; } d = c[d + 2]; } a = f; } return -2147483648 != a ? ((this.mVals[a] = b), !0) : !1; }, toKeyArray: function () { if (0 == this.mSize) return []; var a = this.mSize; Ea._assert(0 <= a, 'len >= 0', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 37, className: 'polygonal.ds.tools.ArrayTools', methodName: 'alloc' }); a = Array(a); for (var b = 0, c = this.mKeys, d, f = 0, g = this.capacity; f < g; ) (d = f++), (d = c[d]), null != d && (a[b++] = d); return a; }, pack: function () { this.mH.pack(); if (this.mH.capacity == this.capacity) return this; this.capacity = this.mH.capacity; for (var a = (this.mNext = Array(this.capacity)), b = 0, c = this.capacity - 1; b < c; ) { var d = b++; a[d] = d + 1; } a[this.capacity - 1] = -1; this.mFree = 0; b = this.mKeys; a = Array(this.capacity); c = this.mVals; var f = Array(this.capacity), g = this.mFree; for (d = this.mH.iterator(); d.hasNext(); ) { var k = d.next(); a[g] = b[k]; f[g] = c[k]; g = this.mNext[g]; } this.mFree = g; this.mKeys = a; this.mVals = f; b = 0; for (c = this.mSize; b < c; ) if ( ((d = b++), (g = this.mH), (f = a[d].key), (k = g.mHash[(73856093 * f) & g.mMask]), -1 != k) ) if (((g = g.mData), g[k] == f)) g[k + 1] = d; else for (k = g[k + 2]; -1 != k; ) { if (g[k] == f) { g[k + 1] = d; break; } k = g[k + 2]; } return this; }, iter: function (a) { Ea._assert(null != a, 'f != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx', lineNumber: 322, className: 'polygonal.ds.HashTable', methodName: 'iter' }); for ( var b = this.mH.mData, c = this.mVals, d = this.mKeys, f, g = 0, k = this.mH.capacity; g < k; ) (f = g++), (f = b[3 * f + 1]), -2147483648 != f && a(d[f], c[f]); return this; }, toString: function () { var a = '' + B.string( fb.format( '[ HashTable size=' + this.mSize + ' capacity=' + this.capacity + ' load=%.2f', [this.get_loadFactor()] ) ); if (0 == this.mSize) return a + ' ]'; a += '\n'; for (var b = 0, c = this.keys(); c.hasNext(); ) { var d = c.next(), f = B.string(d).length; b <= f && (b = f); } f = []; b = ' %- ' + b + 's -> %s\n'; var g = []; for (c = this.keys(); c.hasNext(); ) (d = c.next()), g.push(d); g.sort(function (a, b) { return a.key - b.key; }); var k = 1, l = g.length; c = 0; for (d = 1; k < l; ) { if (g[c] == g[k]) ++d; else { c = g[c]; f[0] = c; if (1 < d) (d = []), this.getAll(c, d), (f[1] = d.join(',')); else { Ea._assert(null != c, 'key != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx', lineNumber: 449, className: 'polygonal.ds.HashTable', methodName: 'get' }); var h = this.mH; d = c.key; c = h.mHash[(73856093 * d) & h.mMask]; if (-1 == c) c = -2147483648; else if (((h = h.mData), h[c] == d)) c = h[c + 1]; else { var n = -2147483648; for (c = h[c + 2]; -1 != c; ) { if (h[c] == d) { n = h[c + 1]; break; } c = h[c + 2]; } c = n; } f[1] = B.string(-2147483648 == c ? null : this.mVals[c]); } a += B.string(fb.format(b, f)); c = k; d = 1; } ++k; } c = g[c]; f[0] = c; if (1 < d) (d = []), this.getAll(c, d), (f[1] = d.join(',')); else { Ea._assert(null != c, 'key != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx', lineNumber: 449, className: 'polygonal.ds.HashTable', methodName: 'get' }); h = this.mH; d = c.key; k = h.mHash[(73856093 * d) & h.mMask]; if (-1 == k) c = -2147483648; else if (((h = h.mData), h[k] == d)) c = h[k + 1]; else { n = -2147483648; for (k = h[k + 2]; -1 != k; ) { if (h[k] == d) { n = h[k + 1]; break; } k = h[k + 2]; } c = n; } f[1] = B.string(-2147483648 == c ? null : this.mVals[c]); } a += B.string(fb.format(b, f)); return a + ']'; }, grow: function () { var a = this.capacity; this.capacity = Hg.compute(this.get_growthRate(), this.capacity); var b = Array(this.capacity); Kb.blit(this.mNext, 0, b, 0, a); b = this.mNext = b; for (var c = a - 1, d = this.capacity - 1; c < d; ) { var f = c++; b[f] = f + 1; } b[this.capacity - 1] = -1; this.mFree = a; b = Array(this.capacity); Kb.blit(this.mVals, 0, b, 0, a); this.mVals = b; b = Array(this.capacity); Kb.blit(this.mKeys, 0, b, 0, a); this.mKeys = b; }, has: function (a) { for (var b = this.mKeys, c = this.mVals, d = 0, f = this.capacity; d < f; ) { var g = d++; if (null != b[g] && c[g] == a) return !0; } return !1; }, hasKey: function (a) { Ea._assert(null != a, 'key != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx', lineNumber: 439, className: 'polygonal.ds.HashTable', methodName: 'hasKey' }); var b = this.mH; a = a.key; var c = b.mHash[(73856093 * a) & b.mMask]; if (-1 == c) return !1; b = b.mData; if (b[c] == a) return !0; var d = !1; for (c = b[c + 2]; -1 != c; ) { if (b[c] == a) { d = !0; break; } c = b[c + 2]; } return d; }, get: function (a) { Ea._assert(null != a, 'key != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx', lineNumber: 449, className: 'polygonal.ds.HashTable', methodName: 'get' }); var b = this.mH; a = a.key; var c = b.mHash[(73856093 * a) & b.mMask]; if (-1 == c) a = -2147483648; else if (((b = b.mData), b[c] == a)) a = b[c + 1]; else { var d = -2147483648; for (c = b[c + 2]; -1 != c; ) { if (b[c] == a) { d = b[c + 1]; break; } c = b[c + 2]; } a = d; } return -2147483648 == a ? null : this.mVals[a]; }, getAll: function (a, b) { var c = this.mH, d = a.key, f = c.mHash[(73856093 * d) & c.mMask]; if (-1 == f) c = -2147483648; else { var g = c.mData; if (g[f] == d) c = g[f + 1]; else for (c = -2147483648, f = g[f + 2]; -1 != f; ) { if (g[f] == d) { c = g[f + 1]; break; } f = g[f + 2]; } } if (-2147483648 == c) return 0; d = this.mTmpIntBuffer; a = this.mH.getAll(a.key, d); c = this.mVals; for (f = 0; f < a; ) (g = f++), (b[g] = c[d[g]]); return a; }, set: function (a, b) { Ea._assert(null != a, 'key != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx', lineNumber: 483, className: 'polygonal.ds.HashTable', methodName: 'set' }); this.mSize == this.capacity && this.grow(); var c = this.mFree, d = this.mH, f = a.key; Ea._assert(-2147483648 != c, 'val 0x80000000 is reserved(val != KEY_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 1046, className: 'polygonal.ds.IntIntHashTable', methodName: 'set' }); d.mSize == d.capacity && d.grow(); var g = d.mData, k = d.mHash, l = 3 * d.mFree; d.mFree = d.mNext[d.mFree]; g[l] = f; g[l + 1] = c; var h = (73856093 * f) & d.mMask, n = k[h]; if (-1 == n) (k[h] = l), d.mSize++, (d = !0); else { k = g[n] != f; for (h = g[n + 2]; -1 != h; ) g[h] == f && (k = !1), (n = h), (h = g[h + 2]); g[n + 2] = l; d.mSize++; d = k; } this.mVals[c] = b; this.mKeys[c] = a; this.mFree = this.mNext[c]; this.mSize++; return d; }, unset: function (a) { var b = this.mH, c = a.key, d = b.mHash[(73856093 * c) & b.mMask]; if (-1 == d) d = -2147483648; else { var f = b.mData; if (f[d] == c) d = f[d + 1]; else { b = -2147483648; for (d = f[d + 2]; -1 != d; ) { if (f[d] == c) { b = f[d + 1]; break; } d = f[d + 2]; } d = b; } } if (-2147483648 == d) return !1; this.mKeys[d] = null; this.mNext[d] = this.mFree; this.mFree = d; b = this.mH; c = a.key; a = (73856093 * c) & b.mMask; var g = b.mHash; d = g[a]; if (-1 != d) if (((f = b.mData), c == f[d])) (g[a] = -1 == f[d + 2] ? -1 : f[d + 2]), (c = (d / 3) | 0), (b.mNext[c] = b.mFree), (b.mFree = c), (f[d + 1] = -2147483648), (f[d + 2] = -1), b.mSize--; else { a = !1; g = d; for (d = f[d + 2]; -1 != d; ) { if (f[d] == c) { a = !0; break; } g = d; d = f[g + 2]; } a && ((f[g + 2] = f[d + 2]), (c = (d / 3) | 0), (b.mNext[c] = b.mFree), (b.mFree = c), (f[d + 1] = -2147483648), (f[d + 2] = -1), b.mSize--); } this.mSize--; return !0; }, toValSet: function () { for ( var a = new ni(), b = this.mKeys, c = this.mVals, d = 0, f = this.capacity; d < f; ) { var g = d++; null != b[g] && a.set(c[g]); } return a; }, toKeySet: function () { for (var a = new ni(), b = this.mKeys, c, d = 0, f = this.capacity; d < f; ) (c = d++), (c = b[c]), null != c && a.set(c); return a; }, keys: function () { return new vn(this); }, get_size: function () { return this.mSize; }, free: function () { Kb.nullify(this.mVals); this.mVals = null; Kb.nullify(this.mKeys); this.mNext = this.mKeys = null; this.mH.free(); this.mH = null; null != this.mIterator && (this.mIterator.free(), (this.mIterator = null)); this.mTmpKeyBuffer = this.mTmpIntBuffer = null; }, contains: function (a) { return this.has(a); }, remove: function (a) { for ( var b = this.mTmpKeyBuffer, c = this.mKeys, d = this.mVals, f, g = 0, k = 0, l = this.capacity; k < l; ) { var h = k++; f = c[h]; null != f && d[h] == a && (b[g++] = f); } k = 0; for (l = g; k < l; ) (h = k++), this.unset(b[h]), (b[h] = null); return 0 < g; }, clear: function (a) { null == a && (a = !1); this.mH.clear(a); Kb.init(this.mKeys, null, 0, this.capacity); Kb.init(this.mVals, null, 0, this.capacity); a = this.mNext; for (var b = 0, c = this.capacity - 1; b < c; ) { var d = b++; a[d] = d + 1; } a[this.capacity - 1] = -1; this.mSize = this.mFree = 0; }, iterator: function () { return this.reuseIterator ? (null == this.mIterator ? (this.mIterator = new kk(this)) : this.mIterator.reset(), this.mIterator) : new kk(this); }, isEmpty: function () { return 0 == this.mSize; }, toArray: function () { if (0 == this.mSize) return []; var a = this.mSize; Ea._assert(0 <= a, 'len >= 0', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 37, className: 'polygonal.ds.tools.ArrayTools', methodName: 'alloc' }); a = Array(a); for (var b = 0, c = this.mKeys, d = this.mVals, f = 0, g = this.capacity; f < g; ) { var k = f++; null != c[k] && (a[b++] = d[k]); } return a; }, clone: function (a, b) { null == a && (a = !0); var c = new un(this.mH.slotCount, this.mSize); c.mH = this.mH.clone(); c.mSize = this.mSize; c.mFree = this.mFree; var d = this.mVals, f = c.mVals, g = this.mKeys; Kb.blit(g, 0, c.mKeys, 0, this.mSize); if (a) Kb.blit(d, 0, f, 0, this.mSize); else if (null != b) { a = 0; for (var k = this.mSize; a < k; ) { var l = a++; f[l] = null != g[l] ? b(d[l]) : null; } } else for (a = 0, k = this.mSize; a < k; ) (l = a++), null != g[l] ? (Ea._assert( x.__implements(d[l], rg), 'element is not of type Cloneable(Std.isOfType(srcVals.get(i), Cloneable))', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx', lineNumber: 735, className: 'polygonal.ds.HashTable', methodName: 'clone' } ), (f[l] = x.__cast(d[l], rg).clone())) : (f[l] = null); Kb.blit(this.mNext, 0, c.mNext, 0, this.mSize); return c; }, __class__: un, __properties__: { get_size: 'get_size', set_growthRate: 'set_growthRate', get_growthRate: 'get_growthRate', get_slotCount: 'get_slotCount', get_loadFactor: 'get_loadFactor' } }; var Ig = function () {}; h['polygonal.ds.Itr'] = Ig; Ig.__name__ = 'polygonal.ds.Itr'; Ig.__isInterface__ = !0; Ig.prototype = { hasNext: null, next: null, remove: null, reset: null, __class__: Ig }; var vn = function (a) { this.mObject = a; this.reset(); }; h['polygonal.ds.HashTableKeyIterator'] = vn; vn.__name__ = 'polygonal.ds.HashTableKeyIterator'; vn.__interfaces__ = [Ig]; vn.prototype = { mObject: null, mKeys: null, mI: null, mS: null, free: function () { this.mKeys = this.mObject = null; }, reset: function () { this.mKeys = this.mObject.mKeys; this.mS = this.mObject.mH.capacity; for (this.mI = 0; this.mI < this.mS && null == this.mKeys[this.mI]; ) this.mI++; return this; }, hasNext: function () { return this.mI < this.mS; }, next: function () { for (var a = this.mKeys[this.mI]; ++this.mI < this.mS && null == this.mKeys[this.mI]; ); return a; }, remove: function () { throw M.thrown('unsupported operation'); }, __class__: vn }; var kk = function (a) { this.mObject = a; this.reset(); }; h['polygonal.ds.HashTableValIterator'] = kk; kk.__name__ = 'polygonal.ds.HashTableValIterator'; kk.__interfaces__ = [Ig]; kk.prototype = { mObject: null, mKeys: null, mVals: null, mI: null, mS: null, free: function () { this.mVals = this.mKeys = this.mObject = null; }, reset: function () { this.mVals = this.mObject.mVals; this.mKeys = this.mObject.mKeys; this.mS = this.mObject.mH.capacity; for (this.mI = 0; this.mI < this.mS && null == this.mKeys[this.mI]; ) this.mI++; return this; }, hasNext: function () { return this.mI < this.mS; }, next: function () { for (var a = this.mVals[this.mI]; ++this.mI < this.mS && null == this.mKeys[this.mI]; ); return a; }, remove: function () { throw M.thrown('unsupported operation'); }, __class__: kk }; var jj = function () {}; h['polygonal.ds.Set'] = jj; jj.__name__ = 'polygonal.ds.html'; jj.__isInterface__ = !0; jj.__interfaces__ = [ij]; jj.prototype = { has: null, set: null, unset: null, __class__: jj }; var Jg = function (a, b) { null == b && (b = -1); this.mFree = this.mSize = 0; this.reuseIterator = !1; this.growthRate = -3; this.key = sg.next(); Ea._assert(0 < a, 'slotCount > 0', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx', lineNumber: 138, className: 'polygonal.ds.IntHashSet', methodName: 'new' }); Ea._assert( 0 < a && 0 == (a & (a - 1)), 'slotCount is not a power of 2(MathTools.isPow2(slotCount))', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx', lineNumber: 139, className: 'polygonal.ds.IntHashSet', methodName: 'new' } ); -1 == b && (b = a); 2 > b && (b = 2); this.mMinCapacity = this.capacity = b; this.slotCount = a; this.mMask = a - 1; this.mHash = Kb.init(Array(a), -1); this.mData = Array(this.capacity << 1); this.mNext = Array(this.capacity); var c = 1; a = this.mData; b = 0; for (var d = this.capacity; b < d; ) b++, (a[c - 1] = -2147483648), (a[c] = -1), (c += 2); a = this.mNext; b = 0; for (d = this.capacity - 1; b < d; ) (c = b++), (a[c] = c + 1); a[this.capacity - 1] = -1; }; h['polygonal.ds.IntHashSet'] = Jg; Jg.__name__ = 'polygonal.ds.IntHashSet'; Jg.__interfaces__ = [jj]; Jg.prototype = { key: null, capacity: null, growthRate: null, reuseIterator: null, get_loadFactor: function () { return this.mSize / this.slotCount; }, slotCount: null, mHash: null, mData: null, mNext: null, mMask: null, mFree: null, mSize: null, mMinCapacity: null, mIterator: null, getCollisionCount: function () { for (var a = 0, b, c = this.mData, d = this.mHash, f = 0, g = this.slotCount; f < g; ) if (((b = f++), (b = d[b]), -1 != b)) for (b = c[b + 1]; -1 != b; ) (b = c[b + 1]), ++a; return a; }, hasFront: function (a) { Ea._assert(-2147483648 != a, 'value 0x80000000 is reserved(val != VAL_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx', lineNumber: 203, className: 'polygonal.ds.IntHashSet', methodName: 'hasFront' }); var b = (73856093 * a) & this.mMask, c = this.mHash[b]; if (-1 == c) return !1; var d = this.mData; if (d[c] == a) return !0; var f = !1, g = c, k = g; for (c = d[c + 1]; -1 != c; ) { if (d[c] == a) { d[k + 1] = d[c + 1]; d[c + 1] = g; d[b] = c; f = !0; break; } k = c; c = d[k + 1]; } return f; }, rehash: function (a) { Ea._assert( 0 < a && 0 == (a & (a - 1)), 'slotCount is not a power of 2(MathTools.isPow2(slotCount))', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx', lineNumber: 270, className: 'polygonal.ds.IntHashSet', methodName: 'rehash' } ); if (this.slotCount == a) return this; for ( var b = new Jg(a, this.capacity), c = this.mData, d = 0, f = this.capacity; d < f; ) { var g = d++; g = c[g << 1]; if (-2147483648 != g) { Ea._assert(-2147483648 != g, 'value 0x80000000 is reserved(val != VAL_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx', lineNumber: 521, className: 'polygonal.ds.IntHashSet', methodName: 'set' }); var k = (73856093 * g) & b.mMask, l = b.mData, h = b.mHash[k]; if (-1 == h) b.mSize == b.capacity && (b.grow(), (l = b.mData)), (h = b.mFree << 1), (b.mFree = b.mNext[b.mFree]), (b.mHash[k] = h), (l[h] = g), b.mSize++; else if (l[h] != g) { for (k = l[h + 1]; -1 != k; ) { if (l[k] == g) { h = -1; break; } h = k; k = l[k + 1]; } -1 != h && (b.mSize == b.capacity && (b.grow(), (l = b.mData)), (k = b.mFree << 1), (b.mFree = b.mNext[b.mFree]), (l[k] = g), (l[h + 1] = k), b.mSize++); } } } this.mHash = b.mHash; this.mData = b.mData; this.mNext = b.mNext; this.slotCount = a; this.mMask = b.mMask; this.mFree = b.mFree; return this; }, pack: function () { if (this.capacity == this.mMinCapacity) return this; var a = this.mSize, b = this.mMinCapacity; this.capacity = a > b ? a : b; var c = this.mData, d = 0, f = this.mHash, g = Array(this.capacity << 1); a = 0; for (b = this.slotCount; a < b; ) { var k = a++; var l = f[k]; if (-1 != l) for (f[k] = d, g[d++] = c[l], g[d++] = -1, l = c[l + 1]; -1 != l; ) (g[d - 1] = d), (g[d++] = c[l]), (g[d++] = -1), (l = c[l + 1]); } this.mData = g; c = this.mNext = Array(this.capacity); a = 0; for (b = this.capacity - 1; a < b; ) (k = a++), (c[k] = k + 1); this.mFree = c[this.capacity - 1] = -1; return this; }, iter: function (a) { Ea._assert(null != a, 'f != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx', lineNumber: 384, className: 'polygonal.ds.IntHashSet', methodName: 'iter' }); for (var b = this.mData, c, d, f = 0, g = this.capacity; f < g; ) (c = f++ << 1), (d = b[c]), -2147483648 != d && a(b[c]); return this; }, toString: function () { var a = '' + B.string( fb.format( '[ IntHashSet size=' + this.mSize + ' capacity=' + this.capacity + ' load=%.2f', [this.get_loadFactor()] ) ); if (0 == this.mSize) return a + ' ]'; a += '\n'; for (var b = this.iterator(); b.hasNext(); ) { var c = b.next(); a += B.string(' ' + c + '\n'); } return a + ']'; }, hashCode: function (a) { return (73856093 * a) & this.mMask; }, grow: function () { var a = this.capacity; this.capacity = Hg.compute(this.growthRate, this.capacity); var b = Array(this.capacity); Kb.blit(this.mNext, 0, b, 0, a); this.mNext = b; b = Array(this.capacity << 1); Kb.blit(this.mData, 0, b, 0, a << 1); this.mData = b; b = this.mNext; for (var c = a - 1, d = this.capacity - 1; c < d; ) { var f = c++; b[f] = f + 1; } b[this.capacity - 1] = -1; this.mFree = a; f = a << 1; b = this.mData; c = 0; for (d = this.capacity - a; c < d; ) c++, (b[f] = -2147483648), (b[f + 1] = -1), (f += 2); }, has: function (a) { Ea._assert(-2147483648 != a, 'value 0x80000000 is reserved(val != VAL_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx', lineNumber: 467, className: 'polygonal.ds.IntHashSet', methodName: 'has' }); var b = this.mHash[(73856093 * a) & this.mMask]; if (-1 == b) return !1; var c = this.mData; if (c[b] == a) return !0; var d = !1; for (b = c[b + 1]; -1 != b; ) { if (c[b] == a) { d = !0; break; } b = c[b + 1]; } return d; }, set: function (a) { Ea._assert(-2147483648 != a, 'value 0x80000000 is reserved(val != VAL_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx', lineNumber: 521, className: 'polygonal.ds.IntHashSet', methodName: 'set' }); var b = (73856093 * a) & this.mMask, c = this.mData, d = this.mHash[b]; if (-1 == d) return ( this.mSize == this.capacity && (this.grow(), (c = this.mData)), (d = this.mFree << 1), (this.mFree = this.mNext[this.mFree]), (this.mHash[b] = d), (c[d] = a), this.mSize++, !0 ); if (c[d] == a) return !1; for (b = c[d + 1]; -1 != b; ) { if (c[b] == a) { d = -1; break; } d = b; b = c[b + 1]; } if (-1 == d) return !1; this.mSize == this.capacity && (this.grow(), (c = this.mData)); b = this.mFree << 1; this.mFree = this.mNext[this.mFree]; c[b] = a; c[d + 1] = b; this.mSize++; return !0; }, unset: function (a) { var b = (73856093 * a) & this.mMask, c = this.mHash[b]; if (-1 == c) return !1; var d = this.mData; if (a == d[c]) return ( (this.mHash[b] = -1 == d[c + 1] ? -1 : d[c + 1]), (a = c >> 1), (this.mNext[a] = this.mFree), (this.mFree = a), (d[c] = -2147483648), (d[c + 1] = -1), this.mSize--, !0 ); b = !1; var f = c; for (c = d[c + 1]; -1 != c; ) { if (d[c] == a) { b = !0; break; } f = c; c = d[f + 1]; } return b ? ((d[f + 1] = d[c + 1]), (a = c >> 1), (this.mNext[a] = this.mFree), (this.mFree = a), (d[c] = -2147483648), (d[c + 1] = -1), --this.mSize, !0) : !1; }, get_size: function () { return this.mSize; }, free: function () { this.mNext = this.mData = this.mHash = null; null != this.mIterator && (this.mIterator.free(), (this.mIterator = null)); }, contains: function (a) { Ea._assert(-2147483648 != a, 'value 0x80000000 is reserved(val != VAL_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx', lineNumber: 467, className: 'polygonal.ds.IntHashSet', methodName: 'has' }); var b = this.mHash[(73856093 * a) & this.mMask]; if (-1 == b) return !1; var c = this.mData; if (c[b] == a) return !0; var d = !1; for (b = c[b + 1]; -1 != b; ) { if (c[b] == a) { d = !0; break; } b = c[b + 1]; } return d; }, remove: function (a) { var b = (73856093 * a) & this.mMask, c = this.mHash[b]; if (-1 == c) return !1; var d = this.mData; if (a == d[c]) return ( (this.mHash[b] = -1 == d[c + 1] ? -1 : d[c + 1]), (a = c >> 1), (this.mNext[a] = this.mFree), (this.mFree = a), (d[c] = -2147483648), (d[c + 1] = -1), this.mSize--, !0 ); b = !1; var f = c; for (c = d[c + 1]; -1 != c; ) { if (d[c] == a) { b = !0; break; } f = c; c = d[f + 1]; } return b ? ((d[f + 1] = d[c + 1]), (a = c >> 1), (this.mNext[a] = this.mFree), (this.mFree = a), (d[c] = -2147483648), (d[c + 1] = -1), --this.mSize, !0) : !1; }, clear: function (a) { var b = this.mHash; a = 0; for (var c = this.slotCount; a < c; ) { var d = a++; b[d] = -1; } d = 1; b = this.mData; a = 0; for (c = this.capacity; a < c; ) a++, (b[d - 1] = -2147483648), (b[d] = -1), (d += 2); b = this.mNext; a = 0; for (c = this.capacity - 1; a < c; ) (d = a++), (b[d] = d + 1); b[this.capacity - 1] = -1; this.mSize = this.mFree = 0; }, iterator: function () { return this.reuseIterator ? (null == this.mIterator ? (this.mIterator = new lk(this)) : this.mIterator.reset(), this.mIterator) : new lk(this); }, isEmpty: function () { return 0 == this.mSize; }, toArray: function () { if (0 == this.mSize) return []; var a = this.mSize; Ea._assert(0 <= a, 'len >= 0', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 37, className: 'polygonal.ds.tools.ArrayTools', methodName: 'alloc' }); a = Array(a); for (var b = 0, c, d = this.mData, f = 0, g = this.capacity; f < g; ) (c = f++), (c = d[c << 1]), -2147483648 != c && (a[b++] = c); return a; }, clone: function (a, b) { a = new Jg(this.slotCount, this.mSize); Kb.blit(this.mHash, 0, a.mHash, 0, this.slotCount); Kb.blit(this.mData, 0, a.mData, 0, this.mSize << 1); Kb.blit(this.mNext, 0, a.mNext, 0, this.mSize); a.mMask = this.mMask; a.slotCount = this.slotCount; a.capacity = this.capacity; a.mFree = this.mFree; a.mSize = this.mSize; return a; }, __class__: Jg, __properties__: { get_size: 'get_size', get_loadFactor: 'get_loadFactor' } }; var lk = function (a) { this.mObject = a; this.mData = a.mData; this.mI = 0; this.mS = a.capacity; this.scan(); }; h['polygonal.ds.IntHashSetIterator'] = lk; lk.__name__ = 'polygonal.ds.IntHashSetIterator'; lk.__interfaces__ = [Ig]; lk.prototype = { mObject: null, mI: null, mS: null, mData: null, free: function () { this.mData = this.mObject = null; }, reset: function () { this.mData = this.mObject.mData; this.mI = 0; this.mS = this.mObject.capacity; this.scan(); return this; }, hasNext: function () { return this.mI < this.mS; }, next: function () { var a = this.mData[this.mI++ << 1]; this.scan(); return a; }, remove: function () { throw M.thrown('unsupported operation'); }, scan: function () { for (; this.mI < this.mS && -2147483648 == this.mData[this.mI << 1]; ) this.mI++; }, __class__: lk }; var ye = function (a, b) { null == b && (b = -1); this.mTmpKeyBuffer = []; this.mIterator = null; this.mFree = this.mSize = 0; this.reuseIterator = !1; this.key = sg.next(); Ea._assert(0 < a, 'slotCount > 0', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashTable.hx', lineNumber: 158, className: 'polygonal.ds.IntHashTable', methodName: 'new' }); -1 == b && (b = a); 2 > b && (b = 2); this.mMinCapacity = this.capacity = b; this.mH = new tg(a, this.capacity); this.mVals = Array(this.capacity); this.mNext = Array(this.capacity); this.mKeys = Kb.init(Array(this.capacity), -2147483648, 0, this.capacity); a = this.mNext; b = 0; for (var c = this.capacity - 1; b < c; ) { var d = b++; a[d] = d + 1; } a[this.capacity - 1] = -1; }; h['polygonal.ds.IntHashTable'] = ye; ye.__name__ = 'polygonal.ds.IntHashTable'; ye.__interfaces__ = [mi]; ye.prototype = { key: null, capacity: null, get_growthRate: function () { return this.mH.growthRate; }, set_growthRate: function (a) { return (this.mH.growthRate = a); }, reuseIterator: null, get_loadFactor: function () { return this.mH.get_loadFactor(); }, get_slotCount: function () { return this.mH.slotCount; }, mH: null, mVals: null, mNext: null, mKeys: null, mFree: null, mSize: null, mMinCapacity: null, mShrinkSize: null, mIterator: null, mTmpKeyBuffer: null, getCollisionCount: function () { return this.mH.getCollisionCount(); }, getFront: function (a) { var b = this.mH, c = (73856093 * a) & b.mMask, d = b.mHash[c]; if (-1 == d) a = -2147483648; else { var f = b.mData; if (f[d] == a) a = f[d + 1]; else { var g = -2147483648, k = d, l = k; for (d = f[d + 2]; -1 != d; ) { if (f[d] == a) { g = f[d + 1]; f[l + 2] = f[d + 2]; f[d + 2] = k; b.mHash[c] = d; break; } l = d; d = f[l + 2]; } a = g; } } return -2147483648 == a ? null : this.mVals[a]; }, setIfAbsent: function (a, b) { Ea._assert( -2147483648 != a, 'key 0x80000000 is reserved(key != IntIntHashTable.KEY_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashTable.hx', lineNumber: 212, className: 'polygonal.ds.IntHashTable', methodName: 'setIfAbsent' } ); this.mSize == this.capacity && this.grow(); var c = this.mFree, d = this.mH; Ea._assert(-2147483648 != c, 'val 0x80000000 is reserved(val != KEY_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 291, className: 'polygonal.ds.IntIntHashTable', methodName: 'setIfAbsent' }); var f = (73856093 * a) & d.mMask, g = d.mData, k = d.mHash[f]; if (-1 == k) { d.mSize == d.capacity && (d.grow(), (g = d.mData)); var l = 3 * d.mFree; d.mFree = d.mNext[d.mFree]; d.mHash[f] = l; g[l] = a; g[l + 1] = c; d.mSize++; d = !0; } else if (g[k] == a) d = !1; else { for (f = g[k + 2]; -1 != f; ) { if (g[f] == a) { k = -1; break; } k = f; f = g[k + 2]; } -1 == k ? (d = !1) : (d.mSize == d.capacity && (d.grow(), (g = d.mData)), (l = 3 * d.mFree), (d.mFree = d.mNext[d.mFree]), (g[k + 2] = l), (g[l] = a), (g[l + 1] = c), d.mSize++, (d = !0)); } return d ? ((this.mVals[c] = b), (this.mKeys[c] = a), (this.mFree = this.mNext[c]), this.mSize++, !0) : !1; }, rehash: function (a) { this.mH.rehash(a); return this; }, remap: function (a, b) { var c = this.mH, d = c.mHash[(73856093 * a) & c.mMask]; if (-1 == d) a = -2147483648; else if (((c = c.mData), c[d] == a)) a = c[d + 1]; else { var f = -2147483648; for (d = c[d + 2]; -1 != d; ) { if (c[d] == a) { f = c[d + 1]; break; } d = c[d + 2]; } a = f; } return -2147483648 != a ? ((this.mVals[a] = b), !0) : !1; }, toKeyArray: function () { return this.mH.toKeyArray(); }, toString: function () { var a = this; var b = '' + B.string( fb.format( '[ IntHashTable size=' + this.mSize + ' capacity=' + this.capacity + ' load=%.2f', [this.get_loadFactor()] ) ); if (0 == this.mSize) return b + ' ]'; b += '\n'; for (var c = 0, d = this.keys(); d.hasNext(); ) { var f = d.next(); c = Math.max(c, f); } for (f = 1; 0 != c; ) ++f, (c = (c / 10) | 0); c = []; var g = ' %- ' + f + 'd -> %s\n', k = []; for (d = this.keys(); d.hasNext(); ) (f = d.next()), k.push(f); k.sort(function (a, b) { return a - b; }); f = 1; var l = k.length; d = 0; for (var h = 1; f < l; ) { if (k[d] == k[f]) ++h; else { d = k[d]; c[0] = d; if (1 < h) (h = []), a.getAll(d, h), (c[1] = h.join(',')); else { h = a.mVals; var n = a.mH, t = n.mHash[(73856093 * d) & n.mMask]; if (-1 == t) d = -2147483648; else if (((n = n.mData), n[t] == d)) d = n[t + 1]; else { var m = -2147483648; for (t = n[t + 2]; -1 != t; ) { if (n[t] == d) { m = n[t + 1]; break; } t = n[t + 2]; } d = m; } c[1] = B.string(h[d]); } b += B.string(fb.format(g, c)); d = f; h = 1; } ++f; } d = k[d]; c[0] = d; if (1 < h) (h = []), a.getAll(d, h), (c[1] = h.join(',')); else { h = a.mVals; n = a.mH; f = n.mHash[(73856093 * d) & n.mMask]; if (-1 == f) a = -2147483648; else if (((n = n.mData), n[f] == d)) a = n[f + 1]; else { m = -2147483648; for (f = n[f + 2]; -1 != f; ) { if (n[f] == d) { m = n[f + 1]; break; } f = n[f + 2]; } a = m; } c[1] = B.string(h[a]); } b += B.string(fb.format(g, c)); return b + ']'; }, has: function (a) { for (var b = this.mKeys, c = this.mVals, d = 0, f = this.capacity; d < f; ) { var g = d++; if (-2147483648 != b[g] && c[g] == a) return !0; } return !1; }, hasKey: function (a) { var b = this.mH, c = b.mHash[(73856093 * a) & b.mMask]; if (-1 == c) return !1; b = b.mData; if (b[c] == a) return !0; var d = !1; for (c = b[c + 2]; -1 != c; ) { if (b[c] == a) { d = !0; break; } c = b[c + 2]; } return d; }, count: function (a) { return this.mH.count(a); }, get: function (a) { var b = this.mH, c = b.mHash[(73856093 * a) & b.mMask]; if (-1 == c) a = -2147483648; else if (((b = b.mData), b[c] == a)) a = b[c + 1]; else { var d = -2147483648; for (c = b[c + 2]; -1 != c; ) { if (b[c] == a) { d = b[c + 1]; break; } c = b[c + 2]; } a = d; } return -2147483648 == a ? null : this.mVals[a]; }, getAll: function (a, b) { var c = this.mH, d = c.mHash[(73856093 * a) & c.mMask]; if (-1 == d) c = -2147483648; else { var f = c.mData; if (f[d] == a) c = f[d + 1]; else for (c = -2147483648, d = f[d + 2]; -1 != d; ) { if (f[d] == a) { c = f[d + 1]; break; } d = f[d + 2]; } } if (-2147483648 == c) return 0; d = this.mTmpKeyBuffer; a = this.mH.getAll(a, d); c = this.mVals; for (f = 0; f < a; ) { var g = f++; b[g] = c[d[g]]; } return a; }, set: function (a, b) { Ea._assert( -2147483648 != a, 'key 0x80000000 is reserved(key != IntIntHashTable.KEY_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashTable.hx', lineNumber: 397, className: 'polygonal.ds.IntHashTable', methodName: 'set' } ); this.mSize == this.capacity && this.grow(); var c = this.mFree, d = this.mH; Ea._assert(-2147483648 != c, 'val 0x80000000 is reserved(val != KEY_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 1046, className: 'polygonal.ds.IntIntHashTable', methodName: 'set' }); d.mSize == d.capacity && d.grow(); var f = d.mData, g = d.mHash, k = 3 * d.mFree; d.mFree = d.mNext[d.mFree]; f[k] = a; f[k + 1] = c; var l = (73856093 * a) & d.mMask, h = g[l]; if (-1 == h) (g[l] = k), d.mSize++, (d = !0); else { g = f[h] != a; for (l = f[h + 2]; -1 != l; ) f[l] == a && (g = !1), (h = l), (l = f[l + 2]); f[h + 2] = k; d.mSize++; d = g; } this.mVals[c] = b; this.mKeys[c] = a; this.mFree = this.mNext[c]; this.mSize++; return d; }, unset: function (a) { var b = this.mH, c = b.mHash[(73856093 * a) & b.mMask]; if (-1 == c) c = -2147483648; else { var d = b.mData; if (d[c] == a) c = d[c + 1]; else { b = -2147483648; for (c = d[c + 2]; -1 != c; ) { if (d[c] == a) { b = d[c + 1]; break; } c = d[c + 2]; } c = b; } } if (-2147483648 == c) return !1; this.mVals[c] = null; this.mKeys[c] = -2147483648; this.mNext[c] = this.mFree; this.mFree = c; b = this.mH; var f = (73856093 * a) & b.mMask, g = b.mHash; c = g[f]; if (-1 != c) if (((d = b.mData), a == d[c])) (g[f] = -1 == d[c + 2] ? -1 : d[c + 2]), (a = (c / 3) | 0), (b.mNext[a] = b.mFree), (b.mFree = a), (d[c + 1] = -2147483648), (d[c + 2] = -1), b.mSize--; else { f = !1; g = c; for (c = d[c + 2]; -1 != c; ) { if (d[c] == a) { f = !0; break; } g = c; c = d[g + 2]; } f && ((d[g + 2] = d[c + 2]), (a = (c / 3) | 0), (b.mNext[a] = b.mFree), (b.mFree = a), (d[c + 1] = -2147483648), (d[c + 2] = -1), b.mSize--); } this.mSize--; return !0; }, toValSet: function () { for ( var a = new ni(), b = this.mKeys, c = this.mVals, d = 0, f = this.capacity; d < f; ) { var g = d++; -2147483648 != b[g] && a.set(c[g]); } return a; }, toKeySet: function () { return this.mH.toKeySet(); }, keys: function () { return this.mH.keys(); }, pack: function () { this.mH.pack(); if (this.mH.capacity == this.capacity) return this; this.capacity = this.mH.capacity; for (var a = (this.mNext = Array(this.capacity)), b = 0, c = this.capacity - 1; b < c; ) { var d = b++; a[d] = d + 1; } a[this.capacity - 1] = -1; this.mFree = 0; b = this.mKeys; a = Array(this.capacity); c = this.mVals; var f = Array(this.capacity), g = this.mFree; for (d = this.mH.iterator(); d.hasNext(); ) { var k = d.next(); a[g] = b[k]; f[g] = c[k]; g = this.mNext[g]; } this.mFree = g; this.mKeys = a; this.mVals = f; b = 0; for (c = this.mSize; b < c; ) if ( ((d = b++), (g = this.mH), (f = a[d]), (k = g.mHash[(73856093 * f) & g.mMask]), -1 != k) ) if (((g = g.mData), g[k] == f)) g[k + 1] = d; else for (k = g[k + 2]; -1 != k; ) { if (g[k] == f) { g[k + 1] = d; break; } k = g[k + 2]; } return this; }, iter: function (a) { Ea._assert(null != a, 'f != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashTable.hx', lineNumber: 518, className: 'polygonal.ds.IntHashTable', methodName: 'iter' }); var b = this.mVals, c = this.mH; Ea._assert(!0, 'f != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 1360, className: 'polygonal.ds.IntIntHashTable', methodName: 'iter' }); for (var d = c.mData, f, g = 0, k = c.capacity; g < k; ) (c = 3 * g++), (f = d[c + 1]), -2147483648 != f && a(d[c], b[f]); return this; }, grow: function () { var a = this.capacity; this.capacity = Hg.compute(this.get_growthRate(), this.capacity); var b = Array(this.capacity); Kb.blit(this.mNext, 0, b, 0, a); this.mNext = b; b = Array(this.capacity); Kb.blit(this.mKeys, 0, b, 0, a); b = this.mKeys = b; for (var c = a, d = this.capacity; c < d; ) { var f = c++; b[f] = -2147483648; } b = this.mNext; c = a - 1; for (d = this.capacity - 1; c < d; ) (f = c++), (b[f] = f + 1); b[this.capacity - 1] = -1; this.mFree = a; b = Array(this.capacity); Kb.blit(this.mVals, 0, b, 0, a); this.mVals = b; }, get_size: function () { return this.mSize; }, free: function () { Kb.nullify(this.mVals); this.mNext = this.mKeys = this.mVals = null; this.mH.free(); this.mH = null; null != this.mIterator && (this.mIterator.free(), (this.mIterator = null)); this.mTmpKeyBuffer = null; }, contains: function (a) { return this.has(a); }, remove: function (a) { for ( var b = this.mTmpKeyBuffer, c = 0, d = this.mKeys, f = this.mVals, g, k = 0, l = this.capacity; k < l; ) { var h = k++; g = d[h]; -2147483648 != g && f[h] == a && (b[c++] = g); } k = 0; for (l = c; k < l; ) (h = k++), this.unset(b[h]); return 0 < c; }, clear: function (a) { null == a && (a = !1); this.mH.clear(a); Kb.init(this.mKeys, -2147483648, 0, this.capacity); a = this.mNext; for (var b = 0, c = this.capacity - 1; b < c; ) { var d = b++; a[d] = d + 1; } a[this.capacity - 1] = -1; this.mSize = this.mFree = 0; }, iterator: function () { return this.reuseIterator ? (null == this.mIterator ? (this.mIterator = new mk(this)) : this.mIterator.reset(), this.mIterator) : new mk(this); }, isEmpty: function () { return 0 == this.mSize; }, toArray: function () { if (0 == this.mSize) return []; var a = this.mSize; Ea._assert(0 <= a, 'len >= 0', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 37, className: 'polygonal.ds.tools.ArrayTools', methodName: 'alloc' }); a = Array(a); for (var b = 0, c = this.mKeys, d = this.mVals, f = 0, g = this.capacity; f < g; ) { var k = f++; -2147483648 != c[k] && (a[b++] = d[k]); } return a; }, clone: function (a, b) { null == a && (a = !0); var c = new ye(this.mH.slotCount, this.mSize); c.mH = this.mH.clone(!1); c.mSize = this.mSize; c.mFree = this.mFree; var d = this.mVals, f = c.mVals; if (a) Kb.blit(d, 0, f, 0, this.mSize); else if (((a = this.mKeys), null != b)) for (var g = 0, k = this.mSize; g < k; ) { var l = g++; -2147483648 != a[l] && (f[l] = b(d[l])); } else for (g = 0, k = this.mSize; g < k; ) (l = g++), -2147483648 != a[l] && (Ea._assert( x.__implements(d[l], rg), 'element is not of type Cloneable(Std.isOfType(src.get(i), Cloneable))', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashTable.hx', lineNumber: 727, className: 'polygonal.ds.IntHashTable', methodName: 'clone' } ), (f[l] = x.__cast(d[l], rg).clone())); Kb.blit(this.mKeys, 0, c.mKeys, 0, this.mSize); Kb.blit(this.mNext, 0, c.mNext, 0, this.mSize); return c; }, __class__: ye, __properties__: { get_size: 'get_size', get_slotCount: 'get_slotCount', get_loadFactor: 'get_loadFactor', set_growthRate: 'set_growthRate', get_growthRate: 'get_growthRate' } }; var mk = function (a) { this.mObject = a; this.reset(); }; h['polygonal.ds.IntHashTableIterator'] = mk; mk.__name__ = 'polygonal.ds.IntHashTableIterator'; mk.__interfaces__ = [Ig]; mk.prototype = { mObject: null, mVals: null, mKeys: null, mI: null, mS: null, free: function () { this.mKeys = this.mVals = this.mObject = null; }, reset: function () { this.mVals = this.mObject.mVals; this.mKeys = this.mObject.mKeys; this.mS = this.mObject.mH.capacity; for (this.mI = 0; this.mI < this.mS && -2147483648 == this.mKeys[this.mI]; ) this.mI++; return this; }, hasNext: function () { return this.mI < this.mS; }, next: function () { for ( var a = this.mVals[this.mI]; ++this.mI < this.mS && -2147483648 == this.mKeys[this.mI]; ); return a; }, remove: function () { throw M.thrown('unsupported operation'); }, __class__: mk }; var tg = function (a, b) { null == b && (b = -1); this.mTmpBufferSize = 16; this.mFree = this.mSize = 0; this.reuseIterator = !1; this.growthRate = -3; this.key = sg.next(); Ea._assert(0 < a, 'slotCount > 0', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 156, className: 'polygonal.ds.IntIntHashTable', methodName: 'new' }); Ea._assert( 0 < a && 0 == (a & (a - 1)), 'slotCount is not a power of 2(MathTools.isPow2(slotCount))', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 157, className: 'polygonal.ds.IntIntHashTable', methodName: 'new' } ); -1 == b ? (b = a) : (Ea._assert(2 <= b, 'minimum capacity is 2(initialCapacity >= 2)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 163, className: 'polygonal.ds.IntIntHashTable', methodName: 'new' }), Ea._assert( 0 < a && 0 == (a & (a - 1)), 'capacity is not a power of 2(MathTools.isPow2(slotCount))', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 164, className: 'polygonal.ds.IntIntHashTable', methodName: 'new' } )); this.mMinCapacity = this.capacity = b; this.slotCount = a; this.mMask = a - 1; this.mHash = Kb.init(Array(a), -1); this.mData = Array(3 * this.capacity); this.mNext = Array(this.capacity); var c = 2; a = this.mData; b = 0; for (var d = this.capacity; b < d; ) b++, (a[c - 1] = -2147483648), (a[c] = -1), (c += 3); a = this.mNext; b = 0; for (d = this.capacity - 1; b < d; ) (c = b++), (a[c] = c + 1); a[this.capacity - 1] = -1; this.mTmpBuffer = Array(this.mTmpBufferSize); }; h['polygonal.ds.IntIntHashTable'] = tg; tg.__name__ = 'polygonal.ds.IntIntHashTable'; tg.__interfaces__ = [mi]; tg.prototype = { key: null, capacity: null, growthRate: null, reuseIterator: null, get_loadFactor: function () { return this.mSize / this.slotCount; }, slotCount: null, mHash: null, mData: null, mNext: null, mMask: null, mFree: null, mSize: null, mMinCapacity: null, mIterator: null, mTmpBuffer: null, mTmpBufferSize: null, getCollisionCount: function () { for (var a = 0, b, c = this.mData, d = this.mHash, f = 0, g = this.slotCount; f < g; ) if (((b = f++), (b = d[b]), -1 != b)) for (b = c[b + 2]; -1 != b; ) (b = c[b + 2]), ++a; return a; }, getFront: function (a) { var b = (73856093 * a) & this.mMask, c = this.mHash[b]; if (-1 == c) return -2147483648; var d = this.mData; if (d[c] == a) return d[c + 1]; var f = -2147483648, g = c, k = g; for (c = d[c + 2]; -1 != c; ) { if (d[c] == a) { f = d[c + 1]; d[k + 2] = d[c + 2]; d[c + 2] = g; this.mHash[b] = c; break; } k = c; c = d[k + 2]; } return f; }, setIfAbsent: function (a, b) { Ea._assert(-2147483648 != b, 'val 0x80000000 is reserved(val != KEY_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 291, className: 'polygonal.ds.IntIntHashTable', methodName: 'setIfAbsent' }); var c = (73856093 * a) & this.mMask, d = this.mData, f = this.mHash[c]; if (-1 == f) { this.mSize == this.capacity && (this.grow(), (d = this.mData)); var g = 3 * this.mFree; this.mFree = this.mNext[this.mFree]; this.mHash[c] = g; d[g] = a; d[g + 1] = b; this.mSize++; return !0; } if (d[f] == a) return !1; for (c = d[f + 2]; -1 != c; ) { if (d[c] == a) { f = -1; break; } f = c; c = d[f + 2]; } if (-1 == f) return !1; this.mSize == this.capacity && (this.grow(), (d = this.mData)); g = 3 * this.mFree; this.mFree = this.mNext[this.mFree]; d[f + 2] = g; d[g] = a; d[g + 1] = b; this.mSize++; return !0; }, rehash: function (a) { Ea._assert( 0 < a && 0 == (a & (a - 1)), 'slotCount is not a power of 2(MathTools.isPow2(slotCount))', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 403, className: 'polygonal.ds.IntIntHashTable', methodName: 'rehash' } ); if (this.slotCount == a) return this; for ( var b = new tg(a, this.capacity), c = this.mData, d = 0, f = this.capacity; d < f; ) { var g = d++, k = c[3 * g + 1]; if (-2147483648 != k) { var l = c[3 * g]; Ea._assert(-2147483648 != k, 'val 0x80000000 is reserved(val != KEY_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 1046, className: 'polygonal.ds.IntIntHashTable', methodName: 'set' }); b.mSize == b.capacity && b.grow(); g = b.mData; var h = b.mHash, n = 3 * b.mFree; b.mFree = b.mNext[b.mFree]; g[n] = l; g[n + 1] = k; l = (73856093 * l) & b.mMask; k = h[l]; if (-1 == k) h[l] = n; else { for (h = g[k + 2]; -1 != h; ) (k = h), (h = g[h + 2]); g[k + 2] = n; } b.mSize++; } } this.mHash = b.mHash; this.mData = b.mData; this.mNext = b.mNext; this.slotCount = a; this.mMask = b.mMask; this.mFree = b.mFree; return this; }, remap: function (a, b) { var c = this.mHash[(73856093 * a) & this.mMask]; if (-1 == c) return !1; var d = this.mData; if (d[c] == a) return (d[c + 1] = b), !0; for (c = d[c + 2]; -1 != c; ) { if (d[c] == a) { d[c + 1] = b; break; } c = d[c + 2]; } return -1 != c; }, extract: function (a) { var b = (73856093 * a) & this.mMask, c = this.mHash, d = c[b]; if (-1 == d) return -2147483648; var f = this.mData; if (a == f[d]) { var g = f[d + 1]; c[b] = -1 == f[d + 2] ? -1 : f[d + 2]; a = (d / 3) | 0; this.mNext[a] = this.mFree; this.mFree = a; f[d + 1] = -2147483648; f[d + 2] = -1; this.mSize--; return g; } b = d; d = f[d + 2]; for (g = -2147483648; -1 != d; ) { if (f[d] == a) { g = f[d + 1]; break; } b = d; d = f[b + 2]; } return -2147483648 != g ? ((f[b + 2] = f[d + 2]), (a = (d / 3) | 0), (this.mNext[a] = this.mFree), (this.mFree = a), (f[d + 1] = -2147483648), (f[d + 2] = -1), this.mSize--, g) : -2147483648; }, toKeyArray: function () { if (0 == this.mSize) return []; var a = this.mSize; Ea._assert(0 <= a, 'len >= 0', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 37, className: 'polygonal.ds.tools.ArrayTools', methodName: 'alloc' }); a = Array(a); for (var b = 0, c = this.mData, d = 0, f = this.capacity; d < f; ) { var g = d++; -2147483648 != c[3 * g + 1] && (a[b++] = c[3 * g]); } return a; }, toString: function () { var a = '' + B.string( fb.format( '[ IntIntHashTable size=' + this.mSize + ' capacity=' + this.capacity + ' load=%.2f', [this.get_loadFactor()] ) ); if (0 == this.mSize) return a + ' ]'; a += '\n'; for (var b = 0, c = this.keys(); c.hasNext(); ) { var d = c.next(); b = Math.max(b, d); } for (d = 1; 0 != b; ) ++d, (b = (b / 10) | 0); b = []; var f = ' %- ' + d + 'd -> %s\n', g = []; for (c = this.keys(); c.hasNext(); ) (d = c.next()), g.push(d); g.sort(function (a, b) { return a - b; }); d = 1; var k = g.length; c = 0; for (var l = 1; d < k; ) { if (g[c] == g[d]) ++l; else { c = g[c]; b[0] = c; if (1 < l) (l = []), this.getAll(c, l), (b[1] = l.join(',')); else { l = this.mHash[(73856093 * c) & this.mMask]; if (-1 == l) c = -2147483648; else { var h = this.mData; if (h[l] == c) c = h[l + 1]; else { var n = -2147483648; for (l = h[l + 2]; -1 != l; ) { if (h[l] == c) { n = h[l + 1]; break; } l = h[l + 2]; } c = n; } } b[1] = c; } a += B.string(fb.format(f, b)); c = d; l = 1; } ++d; } c = g[c]; b[0] = c; if (1 < l) (l = []), this.getAll(c, l), (b[1] = l.join(',')); else { d = this.mHash[(73856093 * c) & this.mMask]; if (-1 == d) l = -2147483648; else if (((h = this.mData), h[d] == c)) l = h[d + 1]; else { n = -2147483648; for (d = h[d + 2]; -1 != d; ) { if (h[d] == c) { n = h[d + 1]; break; } d = h[d + 2]; } l = n; } b[1] = l; } a += B.string(fb.format(f, b)); return a + ']'; }, has: function (a) { Ea._assert(-2147483648 != a, 'val 0x80000000 is reserved(val != VAL_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 697, className: 'polygonal.ds.IntIntHashTable', methodName: 'has' }); for (var b = !1, c = this.mData, d = 0, f = this.capacity; d < f; ) { var g = d++; if (c[3 * g + 1] == a) { b = !0; break; } } return b; }, hasKey: function (a) { var b = this.mHash[(73856093 * a) & this.mMask]; if (-1 == b) return !1; var c = this.mData; if (c[b] == a) return !0; var d = !1; for (b = c[b + 2]; -1 != b; ) { if (c[b] == a) { d = !0; break; } b = c[b + 2]; } return d; }, count: function (a) { var b = 0, c = this.mHash[(73856093 * a) & this.mMask]; if (-1 != c) for (var d = this.mData; -1 != c; ) d[c] == a && ++b, (c = d[c + 2]); return b; }, get: function (a) { var b = this.mHash[(73856093 * a) & this.mMask]; if (-1 == b) return -2147483648; var c = this.mData; if (c[b] == a) return c[b + 1]; var d = -2147483648; for (b = c[b + 2]; -1 != b; ) { if (c[b] == a) { d = c[b + 1]; break; } b = c[b + 2]; } return d; }, getAll: function (a, b) { var c = this.mHash[(73856093 * a) & this.mMask]; if (-1 == c) return 0; var d = 0, f = this.mData; f[c] == a && (b[d++] = f[c + 1]); for (c = f[c + 2]; -1 != c; ) f[c] == a && (b[d++] = f[c + 1]), (c = f[c + 2]); return d; }, hasPair: function (a, b) { Ea._assert(-2147483648 != b, 'val 0x80000000 is reserved(val != KEY_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 891, className: 'polygonal.ds.IntIntHashTable', methodName: 'hasPair' }); var c = this.mHash[(73856093 * a) & this.mMask]; if (-1 != c) { var d = this.mData; if (d[c] == a && d[c + 1] == b) return !0; for (c = d[c + 2]; -1 != c; ) { if (d[c] == a && d[c + 1] == b) return !0; c = d[c + 2]; } } return !1; }, unsetPair: function (a, b) { Ea._assert(-2147483648 != b, 'val 0x80000000 is reserved(val != KEY_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 939, className: 'polygonal.ds.IntIntHashTable', methodName: 'unsetPair' }); var c = (73856093 * a) & this.mMask, d = this.mHash, f = d[c]; if (-1 == f) return !1; var g = this.mData; if (a == g[f] && b == g[f + 1]) return ( (d[c] = -1 == g[f + 2] ? -1 : g[f + 2]), (a = (f / 3) | 0), (this.mNext[a] = this.mFree), (this.mFree = a), (g[f + 1] = -2147483648), (g[f + 2] = -1), this.mSize--, !0 ); c = !1; d = f; for (f = g[f + 2]; -1 != f; ) { if (g[f] == a && g[f + 1] == b) { c = !0; break; } d = f; f = g[d + 2]; } return c ? ((g[d + 2] = g[f + 2]), (a = (f / 3) | 0), (this.mNext[a] = this.mFree), (this.mFree = a), (g[f + 1] = -2147483648), (g[f + 2] = -1), --this.mSize, !0) : !1; }, set: function (a, b) { Ea._assert(-2147483648 != b, 'val 0x80000000 is reserved(val != KEY_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 1046, className: 'polygonal.ds.IntIntHashTable', methodName: 'set' }); this.mSize == this.capacity && this.grow(); var c = this.mData, d = this.mHash, f = 3 * this.mFree; this.mFree = this.mNext[this.mFree]; c[f] = a; c[f + 1] = b; var g = (73856093 * a) & this.mMask; b = d[g]; if (-1 == b) return (d[g] = f), this.mSize++, !0; d = c[b] != a; for (g = c[b + 2]; -1 != g; ) c[g] == a && (d = !1), (b = g), (g = c[g + 2]); c[b + 2] = f; this.mSize++; return d; }, unset: function (a) { var b = (73856093 * a) & this.mMask, c = this.mHash, d = c[b]; if (-1 == d) return !1; var f = this.mData; if (a == f[d]) return ( (c[b] = -1 == f[d + 2] ? -1 : f[d + 2]), (a = (d / 3) | 0), (this.mNext[a] = this.mFree), (this.mFree = a), (f[d + 1] = -2147483648), (f[d + 2] = -1), this.mSize--, !0 ); b = !1; c = d; for (d = f[d + 2]; -1 != d; ) { if (f[d] == a) { b = !0; break; } c = d; d = f[c + 2]; } return b ? ((f[c + 2] = f[d + 2]), (a = (d / 3) | 0), (this.mNext[a] = this.mFree), (this.mFree = a), (f[d + 1] = -2147483648), (f[d + 2] = -1), this.mSize--, !0) : !1; }, toValSet: function () { for (var a = new Jg(this.capacity), b = this.mData, c = 0, d = this.capacity; c < d; ) { var f = c++; f = b[3 * f + 1]; if (-2147483648 != f) { Ea._assert(-2147483648 != f, 'value 0x80000000 is reserved(val != VAL_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx', lineNumber: 521, className: 'polygonal.ds.IntHashSet', methodName: 'set' }); var g = (73856093 * f) & a.mMask, k = a.mData, l = a.mHash[g]; if (-1 == l) a.mSize == a.capacity && (a.grow(), (k = a.mData)), (l = a.mFree << 1), (a.mFree = a.mNext[a.mFree]), (a.mHash[g] = l), (k[l] = f), a.mSize++; else if (k[l] != f) { for (g = k[l + 1]; -1 != g; ) { if (k[g] == f) { l = -1; break; } l = g; g = k[g + 1]; } -1 != l && (a.mSize == a.capacity && (a.grow(), (k = a.mData)), (g = a.mFree << 1), (a.mFree = a.mNext[a.mFree]), (k[g] = f), (k[l + 1] = g), a.mSize++); } } } return a; }, toKeySet: function () { for (var a = new Jg(this.capacity), b = this.mData, c = 0, d = this.capacity; c < d; ) { var f = c++; if (-2147483648 != b[3 * f + 1]) { f = b[3 * f]; Ea._assert(-2147483648 != f, 'value 0x80000000 is reserved(val != VAL_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx', lineNumber: 521, className: 'polygonal.ds.IntHashSet', methodName: 'set' }); var g = (73856093 * f) & a.mMask, k = a.mData, l = a.mHash[g]; if (-1 == l) a.mSize == a.capacity && (a.grow(), (k = a.mData)), (l = a.mFree << 1), (a.mFree = a.mNext[a.mFree]), (a.mHash[g] = l), (k[l] = f), a.mSize++; else if (k[l] != f) { for (g = k[l + 1]; -1 != g; ) { if (k[g] == f) { l = -1; break; } l = g; g = k[g + 1]; } -1 != l && (a.mSize == a.capacity && (a.grow(), (k = a.mData)), (g = a.mFree << 1), (a.mFree = a.mNext[a.mFree]), (k[g] = f), (k[l + 1] = g), a.mSize++); } } } return a; }, keys: function () { return new wn(this); }, pack: function () { if (this.capacity == this.mMinCapacity) return this; var a = this.mSize, b = this.mMinCapacity; this.capacity = a > b ? a : b; var c = this.mData, d = 0, f = this.mHash, g = Array(3 * this.capacity), k = 2; a = 0; for (b = this.capacity; a < b; ) a++, (g[k - 1] = -2147483648), (g[k] = -1), (k += 3); a = 0; for (b = this.slotCount; a < b; ) { var l = a++; k = f[l]; if (-1 != k) for ( f[l] = d, g[d] = c[k], g[d + 1] = c[k + 1], g[d + 2] = -1, d += 3, k = c[k + 2]; -1 != k; ) (g[d - 1] = d), (g[d] = c[k]), (g[d + 1] = c[k + 1]), (g[d + 2] = -1), (d += 3), (k = c[k + 2]); } this.mData = g; c = this.mNext = Array(this.capacity); a = 0; for (b = this.capacity - 1; a < b; ) (l = a++), (c[l] = l + 1); this.mFree = c[this.capacity - 1] = -1; return this; }, iter: function (a) { Ea._assert(null != a, 'f != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 1360, className: 'polygonal.ds.IntIntHashTable', methodName: 'iter' }); for (var b = this.mData, c, d, f = 0, g = this.capacity; f < g; ) (c = 3 * f++), (d = b[c + 1]), -2147483648 != d && a(b[c], d); return this; }, hashCode: function (a) { return (73856093 * a) & this.mMask; }, grow: function () { var a = this.capacity; this.capacity = Hg.compute(this.growthRate, this.capacity); var b = Array(this.capacity); Kb.blit(this.mNext, 0, b, 0, a); this.mNext = b; b = Array(3 * this.capacity); Kb.blit(this.mData, 0, b, 0, 3 * a); this.mData = b; b = this.mNext; for (var c = a - 1, d = this.capacity - 1; c < d; ) { var f = c++; b[f] = f + 1; } b[this.capacity - 1] = -1; this.mFree = a; f = 3 * a + 2; b = this.mData; c = 0; for (d = this.capacity - a; c < d; ) c++, (b[f - 1] = -2147483648), (b[f] = -1), (f += 3); }, get_size: function () { return this.mSize; }, free: function () { this.mNext = this.mData = this.mHash = null; null != this.mIterator && (this.mIterator.free(), (this.mIterator = null)); this.mTmpBuffer = null; }, contains: function (a) { return this.has(a); }, remove: function (a) { Ea._assert(-2147483648 != a, 'val 0x80000000 is reserved(val != KEY_ABSENT)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx', lineNumber: 1465, className: 'polygonal.ds.IntIntHashTable', methodName: 'remove' }); for ( var b = 0, c = this.mTmpBuffer, d = this.mTmpBufferSize, f = this.mData, g, k = 0, l = this.capacity; k < l; ) (g = k++), (g *= 3), f[g + 1] == a && (b == d && ((this.mTmpBufferSize = d <<= 1), (c = Array(d)), Kb.blit(this.mTmpBuffer, 0, c, 0, b), (this.mTmpBuffer = c)), (c[b++] = f[g])); k = 0; for (l = b; k < l; ) { g = k++; d = c[g]; g = (73856093 * d) & this.mMask; var h = this.mHash; a = h[g]; if (-1 != a) if (((f = this.mData), d == f[a])) (h[g] = -1 == f[a + 2] ? -1 : f[a + 2]), (g = (a / 3) | 0), (this.mNext[g] = this.mFree), (this.mFree = g), (f[a + 1] = -2147483648), (f[a + 2] = -1), this.mSize--; else { g = !1; h = a; for (a = f[a + 2]; -1 != a; ) { if (f[a] == d) { g = !0; break; } h = a; a = f[h + 2]; } g && ((f[h + 2] = f[a + 2]), (d = (a / 3) | 0), (this.mNext[d] = this.mFree), (this.mFree = d), (f[a + 1] = -2147483648), (f[a + 2] = -1), this.mSize--); } } return 0 < b; }, clear: function (a) { var b = this.mHash; a = 0; for (var c = this.slotCount; a < c; ) { var d = a++; b[d] = -1; } d = 2; b = this.mData; a = 0; for (c = this.capacity; a < c; ) a++, (b[d - 1] = -2147483648), (b[d] = -1), (d += 3); b = this.mNext; a = 0; for (c = this.capacity - 1; a < c; ) (d = a++), (b[d] = d + 1); b[this.capacity - 1] = -1; this.mSize = this.mFree = 0; }, iterator: function () { return this.reuseIterator ? (null == this.mIterator ? (this.mIterator = new nk(this)) : this.mIterator.reset(), this.mIterator) : new nk(this); }, isEmpty: function () { return 0 == this.mSize; }, toArray: function () { if (0 == this.mSize) return []; var a = this.mSize; Ea._assert(0 <= a, 'len >= 0', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 37, className: 'polygonal.ds.tools.ArrayTools', methodName: 'alloc' }); a = Array(a); for (var b = 0, c, d = this.mData, f = 0, g = this.capacity; f < g; ) (c = f++), (c = d[3 * c + 1]), -2147483648 != c && (a[b++] = c); return a; }, clone: function (a, b) { a = new tg(this.slotCount, this.capacity); Kb.blit(this.mHash, 0, a.mHash, 0, this.slotCount); Kb.blit(this.mData, 0, a.mData, 0, 3 * this.capacity); Kb.blit(this.mNext, 0, a.mNext, 0, this.capacity); a.mMask = this.mMask; a.slotCount = this.slotCount; a.capacity = this.capacity; a.mFree = this.mFree; a.mSize = this.mSize; return a; }, __class__: tg, __properties__: { get_size: 'get_size', get_loadFactor: 'get_loadFactor' } }; var nk = function (a) { this.mObject = a; this.mData = a.mData; this.mI = 0; this.mS = a.capacity; this.scan(); }; h['polygonal.ds.IntIntHashTableValIterator'] = nk; nk.__name__ = 'polygonal.ds.IntIntHashTableValIterator'; nk.__interfaces__ = [Ig]; nk.prototype = { mObject: null, mI: null, mS: null, mData: null, free: function () { this.mData = this.mObject = null; }, reset: function () { this.mData = this.mObject.mData; this.mI = 0; this.mS = this.mObject.capacity; this.scan(); return this; }, hasNext: function () { return this.mI < this.mS; }, next: function () { var a = this.mData[3 * this.mI++ + 1]; this.scan(); return a; }, remove: function () { throw M.thrown('unsupported operation'); }, scan: function () { for (; this.mI < this.mS && -2147483648 == this.mData[3 * this.mI + 1]; ) this.mI++; }, __class__: nk }; var wn = function (a) { this.mObject = a; this.mData = a.mData; this.mI = 0; this.mS = a.capacity; this.scan(); }; h['polygonal.ds.IntIntHashTableKeyIterator'] = wn; wn.__name__ = 'polygonal.ds.IntIntHashTableKeyIterator'; wn.__interfaces__ = [Ig]; wn.prototype = { mObject: null, mI: null, mS: null, mData: null, free: function () { this.mData = this.mObject = null; }, reset: function () { this.mData = this.mObject.mData; this.mI = 0; this.mS = this.mObject.capacity; this.scan(); return this; }, hasNext: function () { return this.mI < this.mS; }, next: function () { var a = this.mData[3 * this.mI++]; this.scan(); return a; }, remove: function () { throw M.thrown('unsupported operation'); }, scan: function () { for (; this.mI < this.mS && -2147483648 == this.mData[3 * this.mI + 1]; ) this.mI++; }, __class__: wn }; var ni = function (a, b) { null == a && (a = 16); this.mIterator = null; this.mSize = 0; this.reuseIterator = !1; this.growthRate = -2; this.key = sg.next(); this.capacity = this.mInitialCapacity = 1 > a ? 1 : a; null != b && (this.capacity = b.length); this.mData = Array(this.capacity); if (null != b) for (a = 0; a < b.length; ) { var c = b[a]; ++a; this.set(c); } }; h['polygonal.ds.ListSet'] = ni; ni.__name__ = 'polygonal.ds.ListSet'; ni.__interfaces__ = [jj]; ni.prototype = { key: null, capacity: null, growthRate: null, reuseIterator: null, mData: null, mInitialCapacity: null, mSize: null, mIterator: null, reserve: function (a) { a > this.capacity && ((this.capacity = a), this.resizeContainer(a)); return this; }, pack: function () { if (this.capacity > this.mInitialCapacity) { var a = this.mInitialCapacity, b = this.mSize; this.capacity = a > b ? a : b; this.resizeContainer(this.capacity); } else { a = this.mData; b = this.mSize; for (var c = this.capacity; b < c; ) { var d = b++; a[d] = null; } } return this; }, iter: function (a) { Ea._assert(null != a, 'f != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/ListSet.hx', lineNumber: 136, className: 'polygonal.ds.ListSet', methodName: 'iter' }); for (var b = this.mData, c = 0, d = this.mSize; c < d; ) { var f = c++; a(b[f]); } return this; }, toString: function () { var a = '' + B.string('[ ListSet size=' + this.mSize); if (this.isEmpty()) return a + ' ]'; a += '\n'; for (var b = 0, c = this.mSize; b < c; ) { var d = b++; a += ' '; a += B.string(B.string(this.mData[d])); a += '\n'; } return a + ']'; }, has: function (a) { if (this.isEmpty()) return !1; for (var b = this.mData, c = 0, d = this.mSize; c < d; ) { var f = c++; if (b[f] == a) return !0; } return !1; }, set: function (a) { for (var b = this.mData, c = 0, d = this.mSize; c < d; ) { var f = c++; if (b[f] == a) return !1; } this.mSize == this.capacity && (this.grow(), (b = this.mData)); b[this.mSize++] = a; return !0; }, unset: function (a) { return this.remove(a); }, merge: function (a, b, c) { if (b) for (a = a.iterator(); a.hasNext(); ) (b = a.next()), this.set(b); else if (null != c) for (a = a.iterator(); a.hasNext(); ) (b = a.next()), this.set(c(b)); else for (a = a.iterator(); a.hasNext(); ) (b = a.next()), Ea._assert( x.__implements(b, rg), 'element is not of type Cloneable(Std.isOfType(val, Cloneable))', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/ListSet.hx', lineNumber: 230, className: 'polygonal.ds.ListSet', methodName: 'merge' } ), this.set(x.__cast(b, rg).clone()); }, get_size: function () { return this.mSize; }, free: function () { Kb.nullify(this.mData); this.mData = null; null != this.mIterator && (this.mIterator.free(), (this.mIterator = null)); }, contains: function (a) { return this.has(a); }, remove: function (a) { for (var b = this.mData, c = 0, d = this.mSize; c < d; ) { var f = c++; if (b[f] == a) return (b[f] = this.mData[--this.mSize]), !0; } return !1; }, clear: function (a) { null == a && (a = !1); a && Kb.nullify(this.mData); this.mSize = 0; }, iterator: function () { if (this.reuseIterator) { if (null == this.mIterator) this.mIterator = new ok(this); else { var a = this.mIterator; a.mData = a.mObject.mData; a.mS = a.mObject.mSize; a.mI = 0; } return this.mIterator; } return new ok(this); }, isEmpty: function () { return 0 == this.mSize; }, toArray: function () { return Kb.toArray(this.mData, 0, this.mSize, []); }, clone: function (a, b) { null == a && (a = !0); var c = new ni(); c.capacity = this.mSize; c.mSize = this.mSize; c.mData = Array(this.mSize); var d = this.mData, f = c.mData; if (a) Kb.blit(d, 0, f, 0, this.mSize); else if (null == b) { a = 0; for (var g = this.mSize; a < g; ) { var k = a++; Ea._assert( x.__implements(d[k], rg), 'element is not of type Cloneable(Std.isOfType(src.get(i), Cloneable))', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/ListSet.hx', lineNumber: 359, className: 'polygonal.ds.ListSet', methodName: 'clone' } ); f[k] = x.__cast(d[k], rg).clone(); } } else for (a = 0, g = this.mSize; a < g; ) (k = a++), (f[k] = b(d[k])); return c; }, grow: function () { this.capacity = Hg.compute(this.growthRate, this.capacity); this.resizeContainer(this.capacity); }, resizeContainer: function (a) { a = Array(a); Kb.blit(this.mData, 0, a, 0, this.mSize); this.mData = a; }, __class__: ni, __properties__: { get_size: 'get_size' } }; var ok = function (a) { this.mObject = a; this.mData = this.mObject.mData; this.mS = this.mObject.mSize; this.mI = 0; }; h['polygonal.ds.ListSetIterator'] = ok; ok.__name__ = 'polygonal.ds.ListSetIterator'; ok.__interfaces__ = [Ig]; ok.prototype = { mObject: null, mData: null, mI: null, mS: null, free: function () { this.mData = this.mObject = null; }, reset: function () { this.mData = this.mObject.mData; this.mS = this.mObject.mSize; this.mI = 0; return this; }, hasNext: function () { return this.mI < this.mS; }, next: function () { return this.mData[this.mI++]; }, remove: function () { Ea._assert(0 < this.mI, 'call next() before removing an element(mI > 0)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/ListSet.hx', lineNumber: 430, className: 'polygonal.ds.ListSetIterator', methodName: 'remove' }); this.mData[this.mI] = this.mData[--this.mS]; }, __class__: ok }; var fb = function () {}; h['polygonal.ds.Printf'] = fb; fb.__name__ = 'polygonal.ds.Printf'; fb.init = function () { var a = Array(40); fb._padChars = a; fb._padChars[0] = U.rpad('', '0', 0); fb._padChars[1] = U.rpad('', '0', 1); fb._padChars[2] = U.rpad('', '0', 2); fb._padChars[3] = U.rpad('', '0', 3); fb._padChars[4] = U.rpad('', '0', 4); fb._padChars[5] = U.rpad('', '0', 5); fb._padChars[6] = U.rpad('', '0', 6); fb._padChars[7] = U.rpad('', '0', 7); fb._padChars[8] = U.rpad('', '0', 8); fb._padChars[9] = U.rpad('', '0', 9); fb._padChars[10] = U.rpad('', '0', 10); fb._padChars[11] = U.rpad('', '0', 11); fb._padChars[12] = U.rpad('', '0', 12); fb._padChars[13] = U.rpad('', '0', 13); fb._padChars[14] = U.rpad('', '0', 14); fb._padChars[15] = U.rpad('', '0', 15); fb._padChars[16] = U.rpad('', '0', 16); fb._padChars[17] = U.rpad('', '0', 17); fb._padChars[18] = U.rpad('', '0', 18); fb._padChars[19] = U.rpad('', '0', 19); for (a = 0; 20 > a; ) { var b = a++; fb._padChars[b + 20] = U.rpad('', ' ', b); } a = Array(64); fb._tmp = a; }; fb.format = function (a, b) { fb._initialized || ((fb._initialized = !0), fb.init()); var c = new Sa(), d = 0, f = [], g = 0; for (a = fb.tokenize(a, f); g < a; ) { var k = g++, l = f[k]; switch (l._hx_index) { case 0: k = l.string; c.b += null == k ? 'null' : '' + k; break; case 1: k = l.type; l = l.args; if (null == l.width) { if (!x.__instanceof(b[d], Ab)) throw M.thrown(new hh("invalid 'width' argument")); l.width = b[d++]; } if (null == l.precision) { if (!x.__instanceof(b[d], Ab)) throw M.thrown(new hh("invalid 'precision' argument")); l.precision = b[d++]; } if (-1 < l.pos) { if (l.pos > b.length - 1) throw M.thrown(new hh('argument index out of range')); var h = b[l.pos]; } else h = b[d++]; null == h && (h = 'null'); switch (k._hx_index) { case 0: switch (k.type._hx_index) { case 0: fb.formatCharacter(h, l, c); break; case 1: fb.formatSignedDecimal(h, l, c); break; case 2: fb.formatUnsignedDecimal(h, l, c); break; case 3: fb.formatOctal(h, l, c); break; case 4: fb.formatHexadecimal(h, l, c); break; case 5: fb.formatBinary(h, l, c); } break; case 1: switch (k.floatType._hx_index) { case 0: fb.formatFloat(h, l, c); break; case 1: fb.formatScientific(h, l, c); break; case 2: fb.formatNaturalFloat(h, l, c); } break; case 2: fb.formatString(h, l, c); break; case 3: throw M.thrown(new hh("specifier 'p' is not supported")); case 4: throw M.thrown(new hh("specifier 'n' is not supported")); } break; case 2: k = l.name; if (!Object.prototype.hasOwnProperty.call(b[0], k)) throw M.thrown(new hh('no field named "' + k + '" found')); c.b += B.string(B.string(Z.field(b[0], k))); ++d; break; case 3: throw M.thrown(new hh('Invalid format specifier.')); } } return c.b; }; fb.tokenize = function (a, b) { for (var c = 0, d, f = 0, g = new Sa(), k = a.length; c < k; ) if (((d = a.charCodeAt(c++)), 37 == d)) if (((d = a.charCodeAt(c++)), 37 == d)) g.b += String.fromCodePoint(d); else { 0 < g.b.length && ((b[f++] = Kg.Raw(g.b)), (g = new Sa())); if (40 == d) if (((d = a.indexOf(')', c)), -1 == d)) d = Kg.Unknown('named parameter', c); else { var l = A.substr(a, c, d - c); c = d + 1; d = Kg.Property(l); } else { l = 0; null == l && (l = 0); l = new lp(l, -1, -1, -1); a: for (; 32 <= d && 48 >= d; ) switch (d) { case 32: d = a.charCodeAt(c++); l.flags |= 1 << Va.Space._hx_index; break; case 35: d = a.charCodeAt(c++); l.flags |= 1 << Va.Sharp._hx_index; break; case 43: d = a.charCodeAt(c++); l.flags |= 1 << Va.Plus._hx_index; break; case 45: d = a.charCodeAt(c++); l.flags |= 1 << Va.Minus._hx_index; break; case 48: d = a.charCodeAt(c++); l.flags |= 1 << Va.Zero._hx_index; break; default: break a; } 0 != (l.flags & (1 << Va.Minus._hx_index)) && 0 != (l.flags & (1 << Va.Zero._hx_index)) && (l.flags &= -1 - (1 << Va.Zero._hx_index)); 0 != (l.flags & (1 << Va.Space._hx_index)) && 0 != (l.flags & (1 << Va.Plus._hx_index)) && (l.flags &= -1 - (1 << Va.Space._hx_index)); if (42 == d) (l.width = null), (d = a.charCodeAt(c++)); else if (48 <= d && 57 >= d) { for (var h = 0; 48 <= d && 57 >= d; ) (h = d - 48 + 10 * h), (d = a.charCodeAt(c++)); l.width = h; if (36 == d) if (((l.pos = h - 1), (l.width = -1), (d = a.charCodeAt(c++)), 42 == d)) (l.width = null), (d = a.charCodeAt(c++)); else if (48 <= d && 57 >= d) { for (h = 0; 48 <= d && 57 >= d; ) (h = d - 48 + 10 * h), (d = a.charCodeAt(c++)); l.width = h; } } if (46 == d) if (((d = a.charCodeAt(c++)), 42 == d)) (l.precision = null), (d = a.charCodeAt(c++)); else { h = 0; if (48 <= d && 57 >= d) for (; 48 <= d && 57 >= d; ) (h = d - 48 + 10 * h), (d = a.charCodeAt(c++)); l.precision = h; } a: for (; 76 <= d && 108 >= d; ) switch (d) { case 76: d = a.charCodeAt(c++); l.flags |= 1 << Va.LengthUpperCaseL._hx_index; break; case 104: d = a.charCodeAt(c++); l.flags |= 1 << Va.LengthH._hx_index; break; case 108: d = a.charCodeAt(c++); l.flags |= 1 << Va.LengthLowerCaseL._hx_index; break; default: break a; } if (69 <= d && 120 >= d) { switch (d) { case 69: l.flags |= 1 << Va.UpperCase._hx_index; h = re.FmtFloat(oi.FScientific); break; case 71: l.flags |= 1 << Va.UpperCase._hx_index; h = re.FmtFloat(oi.FNatural); break; case 88: l.flags |= 1 << Va.UpperCase._hx_index; h = re.FmtInt(Af.IHex); break; case 98: h = re.FmtInt(Af.IBin); break; case 99: h = re.FmtInt(Af.ICharacter); break; case 100: h = re.FmtInt(Af.ISignedDecimal); break; case 101: h = re.FmtFloat(oi.FScientific); break; case 102: h = re.FmtFloat(oi.FNormal); break; case 103: h = re.FmtFloat(oi.FNatural); break; case 105: h = re.FmtInt(Af.ISignedDecimal); break; case 110: h = re.FmtNothing; break; case 111: h = re.FmtInt(Af.IOctal); break; case 112: h = re.FmtPointer; break; case 115: h = re.FmtString; break; case 117: h = re.FmtInt(Af.IUnsignedDecimal); break; case 120: h = re.FmtInt(Af.IHex); break; default: h = null; } d = null == h ? Kg.Unknown(String.fromCodePoint(d), c) : Kg.Tag(h, l); } else d = Kg.Unknown(String.fromCodePoint(d), c); } b[f++] = d; } else g.b += String.fromCodePoint(d); 0 < g.b.length && (b[f++] = Kg.Raw(g.b)); return f; }; fb.formatBinary = function (a, b, c) { var d = b.flags, f = b.precision; b = b.width; 0 != (d & (1 << Va.LengthH._hx_index)) && (a &= 65535); if (0 == a) { if (0 == f) return; d &= -1 - (1 << Va.Sharp._hx_index); } -1 == f && (f = 1); for (var g = fb._tmp, k = 0; (g[k++] = a & 1), (a >>>= 1), 0 < a; ); a = k; if (0 != (d & (1 << Va.Minus._hx_index))) { 0 != (d & (1 << Va.Sharp._hx_index)) && (c.b += '0b'); if (f > k) for (var l = 0, h = f - k; l < h; ) l++, (c.b += '0'); for (; -1 < --a; ) c.b += String.fromCodePoint(48 + g[a]); 0 != (d & (1 << Va.Sharp._hx_index)) && (b -= 2); f > k && (k = f); if (b > k) for (l = 0, h = b - k; l < h; ) l++, (c.b += ' '); } else { h = k; f > h && (h = f); 0 != (d & (1 << Va.Sharp._hx_index)) && (b -= 2); if (b > h) if (0 != (d & (1 << Va.Zero._hx_index)) && 1 == f) for (l = 0, h = b - h; l < h; ) l++, (c.b += '0'); else for (l = 0, h = b - h; l < h; ) l++, (c.b += ' '); 0 != (d & (1 << Va.Sharp._hx_index)) && (c.b += '0b'); if (f > k) for (l = 0, h = f - k; l < h; ) l++, (c.b += '0'); for (; -1 < --a; ) c.b += String.fromCodePoint(48 + g[a]); } }; fb.formatOctal = function (a, b, c) { var d = b.flags, f = b.precision; b = b.width; 0 != (d & (1 << Va.LengthH._hx_index)) && (a &= 65535); if (0 == a) { if (0 == f) { c.b += B.string(0 != (d & (1 << Va.Sharp._hx_index)) ? '0' : ''); return; } d &= -1 - (1 << Va.Sharp._hx_index); } for (var g = fb._tmp, k = 0; (g[k++] = a & 7), (a >>>= 3), 0 < a; ); a = k; -1 != f ? 0 != (d & (1 << Va.Zero._hx_index)) && ((d &= -1 - (1 << Va.Zero._hx_index)), (d |= 1 << Va.Space._hx_index)) : (f = 1); if (0 != (d & (1 << Va.Minus._hx_index))) { 0 != (d & (1 << Va.Sharp._hx_index)) && ((c.b += '0'), ++k); if (f > k) for (var l = 0, h = f - k; l < h; ) l++, (c.b += '0'); for (; -1 < --a; ) (d = String.fromCodePoint(48 + g[a])), (c.b += B.string(d)); f > k && (k = f); if (b > k) for (l = 0, h = b - k; l < h; ) l++, (c.b += ' '); } else { 0 != (d & (1 << Va.Sharp._hx_index)) && ++k; h = k; f > h && (h = f); if (b > h) if (0 != (d & (1 << Va.Zero._hx_index))) for (l = 0, h = b - h; l < h; ) l++, (c.b += '0'); else for (l = 0, h = b - h; l < h; ) l++, (c.b += ' '); 0 != (d & (1 << Va.Sharp._hx_index)) && (c.b += '0'); if (f > k) for (l = 0, h = f - k; l < h; ) l++, (c.b += '0'); for (; -1 < --a; ) (d = String.fromCodePoint(48 + g[a])), (c.b += B.string(d)); } }; fb.formatHexadecimal = function (a, b, c) { var d = b.flags, f = b.precision; b = b.width; 0 != (d & (1 << Va.LengthH._hx_index)) && (a &= 65535); if (0 == a) { if (0 == f) return; d &= -1 - (1 << Va.Sharp._hx_index); } -1 == f && (f = 1); for (var g = fb._tmp, k = 0; (g[k++] = a & 15), (a >>>= 4), 0 < a; ); a = k; if (0 != (d & (1 << Va.Minus._hx_index))) { 0 != (d & (1 << Va.Sharp._hx_index)) && (c.b = 0 != (d & (1 << Va.UpperCase._hx_index)) ? c.b + '0X' : c.b + '0x'); if (f > k) for (var l = 0, h = f - k; l < h; ) l++, (c.b += '0'); for (l = 0 != (d & (1 << Va.UpperCase._hx_index)) ? 65 : 97; -1 < --a; ) (h = g[a]), 10 > h ? ((h = String.fromCodePoint(48 + h)), (c.b += B.string(h))) : ((h = String.fromCodePoint(l + (h - 10))), (c.b += B.string(h))); 0 != (d & (1 << Va.Sharp._hx_index)) && (b -= 2); f > k && (k = f); if (b > k) for (l = 0, h = b - k; l < h; ) l++, (c.b += ' '); } else { h = k; f > h && (h = f); 0 != (d & (1 << Va.Sharp._hx_index)) && (b -= 2); if (b > h) if (0 != (d & (1 << Va.Zero._hx_index)) && 1 == f) for (l = 0, h = b - h; l < h; ) l++, (c.b += '0'); else for (l = 0, h = b - h; l < h; ) l++, (c.b += ' '); 0 != (d & (1 << Va.Sharp._hx_index)) && (c.b = 0 != (d & (1 << Va.UpperCase._hx_index)) ? c.b + '0X' : c.b + '0x'); if (f > k) for (l = 0, h = f - k; l < h; ) l++, (c.b += '0'); for (l = 0 != (d & (1 << Va.UpperCase._hx_index)) ? 65 : 97; -1 < --a; ) (h = g[a]), 10 > h ? ((h = String.fromCodePoint(48 + h)), (c.b += B.string(h))) : ((h = String.fromCodePoint(l + (h - 10))), (c.b += B.string(h))); } }; fb.formatSignedDecimal = function (a, b, c) { var d = b.flags, f = b.precision; b = b.width; if (0 != f || 0 != a) { 0 != (d & (1 << Va.LengthH._hx_index)) && (a &= 65535); var g = B.string(0 > a ? -a : a), k = g.length; a = 0 > a ? '-' : 0 != (d & (1 << Va.Plus._hx_index)) ? '+' : 0 != (d & (1 << Va.Space._hx_index)) ? ' ' : null; var l = null != a; if (0 != (d & (1 << Va.Minus._hx_index))) { l && (c.b += null == a ? 'null' : '' + a); if (f > k) for (var h = 0, n = f - k; h < n; ) h++, (c.b += '0'); c.b += B.string(g); f > k && (k = f); k += l ? 1 : 0; if (b > k) for (h = 0, n = b - k; h < n; ) h++, (c.b += ' '); } else { n = k + (l ? 1 : 0); f > n && (n = f); if (b > n) if (0 != (d & (1 << Va.Zero._hx_index))) for (l && (c.b += null == a ? 'null' : '' + a), h = 0, n = b - n; h < n; ) h++, (c.b += '0'); else for (h = 0, n = b - n; h < n; ) h++, (c.b += ' '); l && 0 == (d & (1 << Va.Zero._hx_index)) && (c.b += null == a ? 'null' : '' + a); if (f > k) for (h = 0, n = f - k; h < n; ) h++, (c.b += '0'); c.b += B.string(g); } } }; fb.formatUnsignedDecimal = function (a, b, c) { if (0 <= a) fb.formatSignedDecimal(a, b, c); else { a = new cb(0, a); a = ax.toString(a); var d = a.length, f = b.flags, g = b.precision; b = b.width; if (0 != (f & (1 << Va.Minus._hx_index))) { if (g > d) { f = 0; for (var k = g - d; f < k; ) f++, (c.b += '0'); } c.b += null == a ? 'null' : '' + a; g > d && (d = g); if (b > d) for (f = 0, k = b - d; f < k; ) f++, (c.b += ' '); } else { k = d; g > k && (k = g); if (b > k) if (0 != (f & (1 << Va.Zero._hx_index))) for (f = 0, k = b - k; f < k; ) f++, (c.b += '0'); else for (f = 0, k = b - k; f < k; ) f++, (c.b += ' '); if (g > d) for (f = 0, k = g - d; f < k; ) f++, (c.b += '0'); c.b += null == a ? 'null' : '' + a; } } }; fb.formatNaturalFloat = function (a, b, c) { var d = new Sa(); fb.formatFloat(a, b, d); var f = d.b; d = new Sa(); fb.formatScientific(a, b, d); a = d.b; f = f.length <= a.length ? f : a; c.b += null == f ? 'null' : '' + f; }; fb.formatScientific = function (a, b, c) { var d = b.flags, f = b.precision; -1 == f && (f = fb.DEFAULT_PRECISION); var g, k = ''; if (0 == a) { var l = (g = 0); k += '0'; if (0 < f) { k += '.'; for (var h = 0, n = f; h < n; ) h++, (k += '0'); } } else (h = Math), (g = 0 < a ? 1 : 0 > a ? -1 : 0), (a = h.abs(a)), (l = h.floor(Math.log(a) / 2.302585092994046)), (a /= h.pow(10, l)), (h = h.pow(0.1, f)), (a = Math.round(a / h) * h); 0 != a && (k += A.substr(null == a ? 'null' : '' + a, 0, f + 2)); k += 0 != (d & (1 << Va.UpperCase._hx_index)) ? 'E' : 'e'; k += 0 <= l ? '+' : '-'; a = B.string(0 > l ? -l : l); n = fb.DEFAULT_NUM_EXP_DIGITS - a.length; if (1 > n) h = a; else { if (30 < n) for (f = l = '0', h = 0, --n; h < n; ) h++, (f += l); else f = fb._padChars[n]; h = f + a; } k += h; (a = -1 == g || 0 != (d & (1 << Va.Plus._hx_index)) || 0 != (d & (1 << Va.Space._hx_index))) && 0 == (d & (1 << Va.Zero._hx_index)) && (k = (-1 == g ? '-' : 0 != (d & (1 << Va.Plus._hx_index)) ? '+' : ' ') + k); if ( 0 < b.width && ((h = b.width), a && 0 != (d & (1 << Va.Zero._hx_index)) && --h, (b = 0 != (d & (1 << Va.Zero._hx_index)) ? 0 : 20), (n = h - k.length), 1 <= n) ) { if (30 < n) for (f = l = 0 == b ? '0' : ' ', h = 0, --n; h < n; ) h++, (f += l); else f = fb._padChars[b + n]; k = f + k; } a && 0 != (d & (1 << Va.Zero._hx_index)) && (k = (-1 == g ? '-' : 0 != (d & (1 << Va.Plus._hx_index)) ? '+' : ' ') + k); c.b += null == k ? 'null' : '' + k; }; fb.formatFloat = function (a, b, c) { var d = b.flags, f = b.precision; -1 == f && (f = fb.DEFAULT_PRECISION); b = b.width; var g = 0 > a; 0 == f ? ((a = B.string(Math.round(a))), 0 != (d & (1 << Va.Sharp._hx_index)) && (a += '.')) : (a = a.toFixed(f)); var k = a.length; g && -1 < a.indexOf('-') && (a = A.substr(a, 1, null)); f = null; 0 == (d & (1 << Va.Plus._hx_index)) || g ? 0 != (d & (1 << Va.Space._hx_index)) ? ((f = ' '), ++k) : g && (f = '-') : ((f = '+'), ++k); g = null != f; if (0 != (d & (1 << Va.Minus._hx_index))) { if ( (g && (c.b += null == f ? 'null' : '' + f), (c.b += null == a ? 'null' : '' + a), b > k) ) for (d = 0, b -= k; d < b; ) d++, (c.b += ' '); } else { if (b > k) if (0 != (d & (1 << Va.Zero._hx_index))) for (g && ((c.b += null == f ? 'null' : '' + f), (g = !1)), d = 0, b -= k; d < b; ) d++, (c.b += '0'); else for (d = 0, b -= k; d < b; ) d++, (c.b += ' '); g && (c.b += null == f ? 'null' : '' + f); c.b += null == a ? 'null' : '' + a; } }; fb.formatCharacter = function (a, b, c) { if (0 != (b.flags & (1 << Va.Minus._hx_index))) { a = String.fromCodePoint(a); c.b += B.string(a); var d = 0; for (b = b.width - 1; d < b; ) d++, (c.b += ' '); } else { d = 0; for (b = b.width - 1; d < b; ) d++, (c.b += ' '); a = String.fromCodePoint(a); c.b += B.string(a); } }; fb.formatString = function (a, b, c) { var d = a.length, f = b.precision; if (0 != (b.flags & (1 << Va.Minus._hx_index))) { -1 != f ? ((c.b += null == f ? A.substr(a, 0, null) : A.substr(a, 0, f)), (d = f)) : (c.b += null == a ? 'null' : '' + a); var g = 0; for (b = b.width - d; g < b; ) g++, (c.b += ' '); } else { -1 != f && (d = f); g = 0; for (b = b.width - d; g < b; ) g++, (c.b += ' '); c.b = -1 != f ? c.b + (null == f ? A.substr(a, 0, null) : A.substr(a, 0, f)) : c.b + (null == a ? 'null' : '' + a); } }; fb.pad = function (a, b, c, d) { b -= a.length; if (1 > b) return a; if (30 < b) { var e = 0 == c ? '0' : ' '; c = e; var g = 0; for (--b; g < b; ) g++, (c += e); } else c = fb._padChars[c + b]; return 0 < d ? a + c : c + a; }; var hh = function (a) { this.message = a; }; h['polygonal.ds.PrintfError'] = hh; hh.__name__ = 'polygonal.ds.PrintfError'; hh.prototype = { message: null, toString: function () { return this.message; }, __class__: hh }; var lp = function (a, b, c, d) { this.flags = a; this.pos = b; this.width = c; this.precision = d; }; h['polygonal.ds._Printf.FormatArgs'] = lp; lp.__name__ = 'polygonal.ds._Printf.FormatArgs'; lp.prototype = { flags: null, pos: null, width: null, precision: null, __class__: lp }; var Va = (E['polygonal.ds._Printf.FormatFlag'] = { __ename__: 'polygonal.ds._Printf.FormatFlag', __constructs__: null, Minus: { _hx_name: 'Minus', _hx_index: 0, __enum__: 'polygonal.ds._Printf.FormatFlag', toString: w }, Plus: { _hx_name: 'Plus', _hx_index: 1, __enum__: 'polygonal.ds._Printf.FormatFlag', toString: w }, Space: { _hx_name: 'Space', _hx_index: 2, __enum__: 'polygonal.ds._Printf.FormatFlag', toString: w }, Sharp: { _hx_name: 'Sharp', _hx_index: 3, __enum__: 'polygonal.ds._Printf.FormatFlag', toString: w }, Zero: { _hx_name: 'Zero', _hx_index: 4, __enum__: 'polygonal.ds._Printf.FormatFlag', toString: w }, LengthH: { _hx_name: 'LengthH', _hx_index: 5, __enum__: 'polygonal.ds._Printf.FormatFlag', toString: w }, LengthUpperCaseL: { _hx_name: 'LengthUpperCaseL', _hx_index: 6, __enum__: 'polygonal.ds._Printf.FormatFlag', toString: w }, LengthLowerCaseL: { _hx_name: 'LengthLowerCaseL', _hx_index: 7, __enum__: 'polygonal.ds._Printf.FormatFlag', toString: w }, UpperCase: { _hx_name: 'UpperCase', _hx_index: 8, __enum__: 'polygonal.ds._Printf.FormatFlag', toString: w } }); Va.__constructs__ = [ Va.Minus, Va.Plus, Va.Space, Va.Sharp, Va.Zero, Va.LengthH, Va.LengthUpperCaseL, Va.LengthLowerCaseL, Va.UpperCase ]; var Kg = (E['polygonal.ds._Printf.FormatToken'] = { __ename__: 'polygonal.ds._Printf.FormatToken', __constructs__: null, Raw: ((I = function (a) { return { _hx_index: 0, string: a, __enum__: 'polygonal.ds._Printf.FormatToken', toString: w }; }), (I._hx_name = 'Raw'), (I.__params__ = ['string']), I), Tag: ((I = function (a, b) { return { _hx_index: 1, type: a, args: b, __enum__: 'polygonal.ds._Printf.FormatToken', toString: w }; }), (I._hx_name = 'Tag'), (I.__params__ = ['type', 'args']), I), Property: ((I = function (a) { return { _hx_index: 2, name: a, __enum__: 'polygonal.ds._Printf.FormatToken', toString: w }; }), (I._hx_name = 'Property'), (I.__params__ = ['name']), I), Unknown: ((I = function (a, b) { return { _hx_index: 3, string: a, pos: b, __enum__: 'polygonal.ds._Printf.FormatToken', toString: w }; }), (I._hx_name = 'Unknown'), (I.__params__ = ['string', 'pos']), I) }); Kg.__constructs__ = [Kg.Raw, Kg.Tag, Kg.Property, Kg.Unknown]; var re = (E['polygonal.ds._Printf.FormatDataType'] = { __ename__: 'polygonal.ds._Printf.FormatDataType', __constructs__: null, FmtInt: ((I = function (a) { return { _hx_index: 0, type: a, __enum__: 'polygonal.ds._Printf.FormatDataType', toString: w }; }), (I._hx_name = 'FmtInt'), (I.__params__ = ['type']), I), FmtFloat: ((I = function (a) { return { _hx_index: 1, floatType: a, __enum__: 'polygonal.ds._Printf.FormatDataType', toString: w }; }), (I._hx_name = 'FmtFloat'), (I.__params__ = ['floatType']), I), FmtString: { _hx_name: 'FmtString', _hx_index: 2, __enum__: 'polygonal.ds._Printf.FormatDataType', toString: w }, FmtPointer: { _hx_name: 'FmtPointer', _hx_index: 3, __enum__: 'polygonal.ds._Printf.FormatDataType', toString: w }, FmtNothing: { _hx_name: 'FmtNothing', _hx_index: 4, __enum__: 'polygonal.ds._Printf.FormatDataType', toString: w } }); re.__constructs__ = [re.FmtInt, re.FmtFloat, re.FmtString, re.FmtPointer, re.FmtNothing]; var Af = (E['polygonal.ds._Printf.IntType'] = { __ename__: 'polygonal.ds._Printf.IntType', __constructs__: null, ICharacter: { _hx_name: 'ICharacter', _hx_index: 0, __enum__: 'polygonal.ds._Printf.IntType', toString: w }, ISignedDecimal: { _hx_name: 'ISignedDecimal', _hx_index: 1, __enum__: 'polygonal.ds._Printf.IntType', toString: w }, IUnsignedDecimal: { _hx_name: 'IUnsignedDecimal', _hx_index: 2, __enum__: 'polygonal.ds._Printf.IntType', toString: w }, IOctal: { _hx_name: 'IOctal', _hx_index: 3, __enum__: 'polygonal.ds._Printf.IntType', toString: w }, IHex: { _hx_name: 'IHex', _hx_index: 4, __enum__: 'polygonal.ds._Printf.IntType', toString: w }, IBin: { _hx_name: 'IBin', _hx_index: 5, __enum__: 'polygonal.ds._Printf.IntType', toString: w } }); Af.__constructs__ = [ Af.ICharacter, Af.ISignedDecimal, Af.IUnsignedDecimal, Af.IOctal, Af.IHex, Af.IBin ]; var oi = (E['polygonal.ds._Printf.FloatType'] = { __ename__: 'polygonal.ds._Printf.FloatType', __constructs__: null, FNormal: { _hx_name: 'FNormal', _hx_index: 0, __enum__: 'polygonal.ds._Printf.FloatType', toString: w }, FScientific: { _hx_name: 'FScientific', _hx_index: 1, __enum__: 'polygonal.ds._Printf.FloatType', toString: w }, FNatural: { _hx_name: 'FNatural', _hx_index: 2, __enum__: 'polygonal.ds._Printf.FloatType', toString: w } }); oi.__constructs__ = [oi.FNormal, oi.FScientific, oi.FNatural]; var Ud = function () {}; h['polygonal.ds.tools.ArrayTools'] = Ud; Ud.__name__ = 'polygonal.ds.tools.ArrayTools'; Ud.alloc = function (a) { Ea._assert(0 <= a, 'len >= 0', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 37, className: 'polygonal.ds.tools.ArrayTools', methodName: 'alloc' }); return Array(a); }; Ud.trim = function (a, b) { a.length > b && (a.length = b); return a; }; Ud.swap = function (a, b, c) { Ea._assert(null != a, 'array != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 94, className: 'polygonal.ds.tools.ArrayTools', methodName: 'swap' }); Ea._assert(0 <= b && b < a.length, '0 <= a && a < array.length', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 95, className: 'polygonal.ds.tools.ArrayTools', methodName: 'swap' }); Ea._assert(0 <= c && c < a.length, '0 <= b && b < array.length', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 96, className: 'polygonal.ds.tools.ArrayTools', methodName: 'swap' }); if (b != c) { var d = a[b]; a[b] = a[c]; a[c] = d; } }; Ud.getFront = function (a, b) { Ea._assert(null != a, 'array != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 113, className: 'polygonal.ds.tools.ArrayTools', methodName: 'getFront' }); Ea._assert(0 <= b && b < a.length, '0 <= index && index < array.length', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 114, className: 'polygonal.ds.tools.ArrayTools', methodName: 'getFront' }); Ea._assert(null != a, 'array != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 94, className: 'polygonal.ds.tools.ArrayTools', methodName: 'swap' }); Ea._assert(0 <= b && b < a.length, '0 <= a && a < array.length', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 95, className: 'polygonal.ds.tools.ArrayTools', methodName: 'swap' }); Ea._assert(0 < a.length, '0 <= b && b < array.length', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 96, className: 'polygonal.ds.tools.ArrayTools', methodName: 'swap' }); if (0 != b) { var c = a[b]; a[b] = a[0]; a[0] = c; } return a[0]; }; Ud.init = function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); d = 0 >= d ? a.length : c + d; Ea._assert(0 <= c && c < a.length, 'min >= 0 && min < a.length', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 129, className: 'polygonal.ds.tools.ArrayTools', methodName: 'init' }); for ( Ea._assert(d <= a.length, 'max <= a.length', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 130, className: 'polygonal.ds.tools.ArrayTools', methodName: 'init' }); c < d; ) a[c++] = b; return a; }; Ud.blit = function (a, b, c, d, f) { if (0 < f) if ( (Ea._assert(b < a.length, 'srcPos out of range(srcPos < src.length)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 145, className: 'polygonal.ds.tools.ArrayTools', methodName: 'blit' }), Ea._assert(d < c.length, 'dstPos out of range(dstPos < dst.length)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 146, className: 'polygonal.ds.tools.ArrayTools', methodName: 'blit' }), Ea._assert( b + f <= a.length && d + f <= c.length, 'n out of range(srcPos + n <= src.length && dstPos + n <= dst.length)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 147, className: 'polygonal.ds.tools.ArrayTools', methodName: 'blit' } ), a == c) ) if (b < d) { var e = b + f; b = d + f; for (var k = 0; k < f; ) k++, --e, --b, (a[b] = a[e]); } else { if (b > d) for (e = b, b = d, k = 0; k < f; ) k++, (a[b] = a[e]), ++e, ++b; } else if (0 == b && 0 == d) for (k = 0; k < f; ) (e = k++), (c[e] = a[e]); else if (0 == b) for (k = 0; k < f; ) (e = k++), (c[d + e] = a[e]); else if (0 == d) for (k = 0; k < f; ) (e = k++), (c[e] = a[b + e]); else for (k = 0; k < f; ) (e = k++), (c[d + e] = a[b + e]); }; Ud.iter = function (a, b, c) { null == c && (c = 0); 0 == c && (c = a.length); for (var d = 0; d < c; ) { var f = d++; b(a[f]); } }; Ud.forEach = function (a, b) { for (var c = 0, d = a.length; c < d; ) { var f = c++; a[f] = b(a[f], f); } }; Ud.binarySearchCmp = function (a, b, c, d, f) { Ea._assert(null != a, 'a != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 236, className: 'polygonal.ds.tools.ArrayTools', methodName: 'binarySearchCmp' }); Ea._assert(null != f, 'comparator != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 237, className: 'polygonal.ds.tools.ArrayTools', methodName: 'binarySearchCmp' }); Ea._assert(0 <= c && c < a.length, 'min >= 0 && min < a.length', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 238, className: 'polygonal.ds.tools.ArrayTools', methodName: 'binarySearchCmp' }); Ea._assert(d < a.length, 'max < a.length', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 239, className: 'polygonal.ds.tools.ArrayTools', methodName: 'binarySearchCmp' }); for (var e, k = d + 1; c < k; ) (e = c + ((k - c) >> 1)), 0 > f(a[e], b) ? (c = e + 1) : (k = e); return c <= d && 0 == f(a[c], b) ? c : ~c; }; Ud.binarySearchf = function (a, b, c, d) { Ea._assert(null != a, 'a != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 265, className: 'polygonal.ds.tools.ArrayTools', methodName: 'binarySearchf' }); Ea._assert(0 <= c && c < a.length, 'min >= 0 && min < a.length', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 266, className: 'polygonal.ds.tools.ArrayTools', methodName: 'binarySearchf' }); Ea._assert(d < a.length, 'max < a.length', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 267, className: 'polygonal.ds.tools.ArrayTools', methodName: 'binarySearchf' }); for (var e, g = d + 1; c < g; ) (e = c + ((g - c) >> 1)), a[e] < b ? (c = e + 1) : (g = e); return c <= d && a[c] == b ? c : ~c; }; Ud.binarySearchi = function (a, b, c, d) { Ea._assert(null != a, 'a != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 293, className: 'polygonal.ds.tools.ArrayTools', methodName: 'binarySearchi' }); Ea._assert(0 <= c && c < a.length, 'min >= 0 && min < a.length', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 294, className: 'polygonal.ds.tools.ArrayTools', methodName: 'binarySearchi' }); Ea._assert(d < a.length, 'max < a.length', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 295, className: 'polygonal.ds.tools.ArrayTools', methodName: 'binarySearchi' }); for (var e, g = d + 1; c < g; ) (e = c + ((g - c) >> 1)), a[e] < b ? (c = e + 1) : (g = e); return c <= d && a[c] == b ? c : ~c; }; Ud.shuffle = function (a, b) { Ea._assert(null != a, 'a != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 320, className: 'polygonal.ds.tools.ArrayTools', methodName: 'shuffle' }); var c = a.length; if (null == b) for (; 1 < --c; ) { var d = (pi.f() * c) | 0, f = a[c]; a[c] = a[d]; a[d] = f; } else { Ea._assert(b.length >= a.length, 'insufficient random values(rvals.length >= a.length)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 335, className: 'polygonal.ds.tools.ArrayTools', methodName: 'shuffle' }); for (var g = 0; 1 < --c; ) (d = (b[g++] * c) | 0), (f = a[c]), (a[c] = a[d]), (a[d] = f); } }; Ud.random = function (a) { var b = a.length; return 2 > b ? a[0] : a[(pi.f() * b) | 0]; }; Ud.sortRange = function (a, b, c, d, f) { var e = a.length; if (1 < e) if ( (Ea._assert( 0 <= d && d <= e - 1 && d + f <= e, 'first out of range(first >= 0 && first <= k - 1 && first + n <= k)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 370, className: 'polygonal.ds.tools.ArrayTools', methodName: 'sortRange' } ), Ea._assert(0 <= f && f <= e, 'n out of range(n >= 0 && n <= k)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 371, className: 'polygonal.ds.tools.ArrayTools', methodName: 'sortRange' }), c) ) for (c = d + 1, f = d + f; c < f; ) { var k = c++; for (e = a[k]; k > d; ) { var l = a[k - 1]; if (0 < b(l, e)) (a[k] = l), --k; else break; } a[k] = e; } else Ud._quickSort(a, d, f, b); }; Ud.quickPerm = function (a) { for (var b = [], c = [], d = [], f, g, k = 0; k < a; ) (c[k] = k + 1), (d[k] = 0), ++k; b.push(c.slice()); for (k = 1; k < a; ) d[k] < k ? ((f = (k % 2) * d[k]), (g = c[f]), (c[f] = c[k]), (c[k] = g), b.push(c.slice()), d[k]++, (k = 1)) : ((d[k] = 0), ++k); return b; }; Ud.equals = function (a, b, c) { if (a.length != b.length) return !1; for (var d = 0, f = a.length; d < f; ) { if (!c(a[d], b[d])) return !1; ++d; } return !0; }; Ud.split = function (a, b, c) { Ea._assert(0 == b % c, 'n is not a multiple of k(n % k == 0)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 464, className: 'polygonal.ds.tools.ArrayTools', methodName: 'split' }); for (var d = [], f = null, g = 0; g < b; ) { var k = g++; 0 == k % c && ((f = []), (d[(k / c) | 0] = f)); f.push(a[k]); } return d; }; Ud.pairwise = function (a, b, c) { var d = 0; for ( Ea._assert(0 == (c & 1), 'max & 1 == 0', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 489, className: 'polygonal.ds.tools.ArrayTools', methodName: 'pairwise' }); d < c; ) b(d, a[d], a[d + 1]), (d += 2); }; Ud.bruteforce = function (a, b) { for (var c = 0, d, f = a.length, g = f - 1, k; c < g; ) { k = a[c]; for (d = c + 1; d < f; ) b(k, a[d]), ++d; ++c; } }; Ud._quickSort = function (a, b, c, d) { var e = b + c - 1, g = b, k = e; if (1 < c) { var l = b + (c >> 1); c = b + c - 1; var h = a[b], n = a[l], t = a[c], m = d(h, t); l = 0 > m && 0 > d(h, n) ? 0 > d(n, t) ? l : c : 0 > d(n, h) && 0 > d(n, t) ? 0 > m ? b : c : 0 > d(t, h) ? l : b; c = a[l]; for (a[l] = a[b]; g < k; ) { for (; 0 > d(c, a[k]) && g < k; ) --k; k != g && ((a[g] = a[k]), ++g); for (; 0 < d(c, a[g]) && g < k; ) ++g; k != g && ((a[k] = a[g]), --k); } a[g] = c; Ud._quickSort(a, b, g - b, d); Ud._quickSort(a, g + 1, e - g, d); } }; var Ea = function () {}; h['polygonal.ds.tools.Assert'] = Ea; Ea.__name__ = 'polygonal.ds.tools.Assert'; Ea._assert = function (a, b, c) { if (!a) throw ( ((a = 'in file ' + c.fileName + ', line ' + c.lineNumber), Error( 'Assertion failed' + (null != b ? ': ' : ' ') + (null == b ? a : '' + b + ' (' + a + ')') )) ); }; var Hg = function () {}; h['polygonal.ds.tools.GrowthRate'] = Hg; Hg.__name__ = 'polygonal.ds.tools.GrowthRate'; Hg.compute = function (a, b) { Ea._assert(-3 <= a, 'invalid growth rate(rate >= -3)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/GrowthRate.hx', lineNumber: 52, className: 'polygonal.ds.tools.GrowthRate', methodName: 'compute' }); if (0 < a) b += a; else switch (a) { case -3: b <<= 1; break; case -2: b = ((3 * b) >> 1) + 1; break; case -1: a = b + 1; b = (a >> 3) + (9 > a ? 3 : 6) + a; break; case 0: throw M.thrown('out of space'); } return b; }; var Kb = function () {}; h['polygonal.ds.tools.NativeArrayTools'] = Kb; Kb.__name__ = 'polygonal.ds.tools.NativeArrayTools'; Kb.alloc = function (a) { return Array(a); }; Kb.get = function (a, b) { return a[b]; }; Kb.set = function (a, b, c) { a[b] = c; }; Kb.size = function (a) { return a.length; }; Kb.toArray = function (a, b, c, d) { Ea._assert( 0 <= b && b < a.length, 'first index out of range(first >= 0 && first < size(src))', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 140, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'toArray' } ); Ea._assert( 0 <= c && b + c <= a.length, 'len out of range(len >= 0 && first + len <= size(src))', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 141, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'toArray' } ); if (0 == c) return []; Ea._assert(0 <= c, 'len >= 0', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx', lineNumber: 37, className: 'polygonal.ds.tools.ArrayTools', methodName: 'alloc' }); d = Array(c); if (0 == b) for (var e = 0; e < c; ) { var g = e++; d[g] = a[g]; } else for (e = b, c = b + c; e < c; ) (g = e++), (d[g - b] = a[g]); return d; }; Kb.ofArray = function (a) { return a.slice(0, a.length); }; Kb.blit = function (a, b, c, d, f) { if (0 < f) if ( (Ea._assert(b < a.length, 'srcPos out of range(srcPos < size(src))', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 197, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'blit' }), Ea._assert(d < c.length, 'dstPos out of range(dstPos < size(dst))', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 198, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'blit' }), Ea._assert( b + f <= a.length && d + f <= c.length, 'n out of range(srcPos + n <= size(src) && dstPos + n <= size(dst))', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 199, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'blit' } ), a == c) ) if (b < d) { var e = b + f; b = d + f; for (var k = 0; k < f; ) k++, --e, --b, (a[b] = a[e]); } else { if (b > d) for (e = b, b = d, k = 0; k < f; ) k++, (a[b] = a[e]), ++e, ++b; } else if (0 == b && 0 == d) for (k = 0; k < f; ) (e = k++), (c[e] = a[e]); else if (0 == b) for (k = 0; k < f; ) (e = k++), (c[d + e] = a[e]); else if (0 == d) for (k = 0; k < f; ) (e = k++), (c[e] = a[b + e]); else for (k = 0; k < f; ) (e = k++), (c[d + e] = a[b + e]); }; Kb.copy = function (a) { return a.slice(0); }; Kb.zero = function (a, b, c) { null == c && (c = 0); null == b && (b = 0); c = 0 >= c ? a.length : b + c; Ea._assert(0 <= b && b < a.length, 'min >= 0 && min < size(dst)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 293, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'zero' }); for ( Ea._assert(c <= a.length, 'max <= size(dst)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 294, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'zero' }); b < c; ) a[b++] = 0; return a; }; Kb.init = function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); d = 0 >= d ? a.length : c + d; Ea._assert(0 <= c && c < a.length, 'min >= 0 && min < size(a)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 315, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'init' }); for ( Ea._assert(d <= a.length, 'max <= size(a)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 316, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'init' }); c < d; ) a[c++] = b; return a; }; Kb.nullify = function (a, b, c) { null == c && (c = 0); null == b && (b = 0); c = 0 >= c ? a.length : b + c; Ea._assert(0 <= b && b < a.length, 'min >= 0 && min < size(a)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 331, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'nullify' }); for ( Ea._assert(c <= a.length, 'max <= size(a)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 332, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'nullify' }); b < c; ) a[b++] = null; return a; }; Kb.binarySearchCmp = function (a, b, c, d, f) { Ea._assert(null != a, 'a != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 351, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'binarySearchCmp' }); Ea._assert(null != f, 'cmp != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 352, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'binarySearchCmp' }); Ea._assert(0 <= c && c < a.length, 'min >= 0 && min < size(a)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 353, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'binarySearchCmp' }); Ea._assert(d < a.length, 'max < size(a)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 354, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'binarySearchCmp' }); for (var e, k = d + 1; c < k; ) (e = c + ((k - c) >> 1)), 0 > f(a[e], b) ? (c = e + 1) : (k = e); return c <= d && 0 == f(a[c], b) ? c : ~c; }; Kb.binarySearchf = function (a, b, c, d) { Ea._assert(null != a, 'a != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 379, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'binarySearchf' }); Ea._assert(0 <= c && c < a.length, 'min >= 0 && min < size(a)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 380, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'binarySearchf' }); Ea._assert(d < a.length, 'max < size(a)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 381, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'binarySearchf' }); for (var e, g = d + 1; c < g; ) (e = c + ((g - c) >> 1)), a[e] < b ? (c = e + 1) : (g = e); return c <= d && a[c] == b ? c : ~c; }; Kb.binarySearchi = function (a, b, c, d) { Ea._assert(null != a, 'a != null', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 406, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'binarySearchi' }); Ea._assert(0 <= c && c < a.length, 'min >= 0 && min < size(a)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 407, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'binarySearchi' }); Ea._assert(d < a.length, 'max < size(a)', { fileName: '/Users/tomyoung/Library/Application Support/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx', lineNumber: 408, className: 'polygonal.ds.tools.NativeArrayTools', methodName: 'binarySearchi' }); for (var e, g = d + 1; c < g; ) (e = c + ((g - c) >> 1)), a[e] < b ? (c = e + 1) : (g = e); return c <= d && a[c] == b ? c : ~c; }; var pi = function () {}; h['polygonal.ds.tools.Shuffle'] = pi; pi.__name__ = 'polygonal.ds.tools.Shuffle'; pi.f = function () { return Math.random(); }; pi.setRandom = function (a) { pi.f = a; }; pi.frand = function () { return pi.f(); }; var mp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_10'] = mp; mp.__name__ = 'scripts.ActorEvents_10'; mp.__super__ = u; mp.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: mp }); var np = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_100'] = np; np.__name__ = 'scripts.ActorEvents_100'; np.__super__ = u; np.prototype = r(u.prototype, { _event_EveryNsecs: function (a) { this.wrapper.enabled && 8 == this.actor.getCurrentFrame() && d.recycleActor(this.actor); }, init: function () { d.runPeriodically(100, q(this, this._event_EveryNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: np }); var op = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_103'] = op; op.__name__ = 'scripts.ActorEvents_103'; op.__super__ = u; op.prototype = r(u.prototype, { init: function () { var a = this; this.actor.disableActorDrawing(); this.actor.makeAlwaysSimulate(); d.engine.pause(); d.setValueForScene('Stage Logic', '_RumbleName', 'Dead'); d.sayToScene('Stage Logic', '_customEvent_rumble'); d.runLater( 50, function (b) { d.createRecycledActorOnLayer( d.getActorType(94), a.actor.getX() - 8, a.actor.getY() - 8, d.engine.getLayerById(a.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), a.actor.getX() - 8, a.actor.getY() - 8, d.engine.getLayerById(a.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), a.actor.getX() - 8, a.actor.getY() - 8, d.engine.getLayerById(a.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), a.actor.getX() - 8, a.actor.getY() - 8, d.engine.getLayerById(a.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, 0, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), a.actor.getX() - 8, a.actor.getY() - 8, d.engine.getLayerById(a.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, 0, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), a.actor.getX() - 8, a.actor.getY() - 8, d.engine.getLayerById(a.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, 32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), a.actor.getX() - 8, a.actor.getY() - 8, d.engine.getLayerById(a.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, 32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), a.actor.getX() - 8, a.actor.getY() - 8, d.engine.getLayerById(a.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(0, 32, 0.3, J.backOut); }, this.actor ); d.runLater( 500, function (b) { d.engine.unpause(); b = 0; for (var c = d.getActorsOfType(d.getActorType(2)); b < c.length; ) { var e = c[b]; ++b; null == e || e.dead || e.recycled || e.say('Dude Logic', '_customEvent_Die2'); } d.startShakingScreen(0.01, 0.1); d.recycleActor(a.actor); }, this.actor ); }, forwardMessage: function (a) {}, __class__: op }); var pp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_12'] = pp; pp.__name__ = 'scripts.ActorEvents_12'; pp.__super__ = u; pp.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: pp }); var qp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_121'] = qp; qp.__name__ = 'scripts.ActorEvents_121'; qp.__super__ = u; qp.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: qp }); var rp = function (a, b, c) { u.call(this, b); this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; }; h['scripts.ActorEvents_125'] = rp; rp.__name__ = 'scripts.ActorEvents_125'; rp.__super__ = u; rp.prototype = r(u.prototype, { _GravitySpeed: null, _event_Leavesscene: function (a, b, c, e) { this.wrapper.enabled && e && d.recycleActor(this.actor); }, _event_Updating: function (a) { this.wrapper.enabled && (this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)), 0 < this.actor.getXVelocity() ? this.actor.setXVelocity(Math.max(this.actor.getXVelocity() - 0.3, 0)) : 0 > this.actor.getXVelocity() && this.actor.setXVelocity(Math.min(this.actor.getXVelocity() + 0.3, 0))); }, init: function () { this.actor.makeAlwaysSimulate(); this._GravitySpeed = 48; this.addListener(this.actor.whenPositionStateChanged, q(this, this._event_Leavesscene)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: rp }); var sp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_127'] = sp; sp.__name__ = 'scripts.ActorEvents_127'; sp.__super__ = u; sp.prototype = r(u.prototype, { init: function () { var a = this; this.actor.makeAlwaysSimulate(); this.actor.moveBy(0, -24, 2, J.backOut); d.runLater( 900, function (b) { d.recycleActor(a.actor); }, this.actor ); }, forwardMessage: function (a) {}, __class__: sp }); var tp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_131'] = tp; tp.__name__ = 'scripts.ActorEvents_131'; tp.__super__ = u; tp.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: tp }); var up = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_136'] = up; up.__name__ = 'scripts.ActorEvents_136'; up.__super__ = u; up.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: up }); var vp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_138'] = vp; vp.__name__ = 'scripts.ActorEvents_138'; vp.__super__ = u; vp.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: vp }); var wp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_14'] = wp; wp.__name__ = 'scripts.ActorEvents_14'; wp.__super__ = u; wp.prototype = r(u.prototype, { init: function () { var a = this; this.actor.makeAlwaysSimulate(); this.actor.anchorToScreen(); this.actor.setX(-5); this.actor.setY(-5); ba.setScale('width', d.getScreenWidth() + 10, this.actor); ba.setScale('height', d.getScreenHeight() + 10, this.actor); this.actor.fadeTo(0, 0.4, J.quadInOut); d.runLater( 300, function (b) { d.recycleActor(a.actor); }, this.actor ); }, forwardMessage: function (a) {}, __class__: wp }); var xp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_140'] = xp; xp.__name__ = 'scripts.ActorEvents_140'; xp.__super__ = u; xp.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: xp }); var yp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_142'] = yp; yp.__name__ = 'scripts.ActorEvents_142'; yp.__super__ = u; yp.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: yp }); var zp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_150'] = zp; zp.__name__ = 'scripts.ActorEvents_150'; zp.__super__ = u; zp.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: zp }); var Ap = function (a, b, c) { u.call(this, b); this.nameMap.h['Speed Multiplier'] = '_SpeedMultiplier'; this._SpeedMultiplier = 0; }; h['scripts.ActorEvents_155'] = Ap; Ap.__name__ = 'scripts.ActorEvents_155'; Ap.__super__ = u; Ap.prototype = r(u.prototype, { _SpeedMultiplier: null, _event_Leavesscene: function (a, b, c, e) { this.wrapper.enabled && e && d.recycleActor(this.actor); }, _event_EveryNsecs: function (a) { if ( this.wrapper.enabled && 'World 3 Select' != d.getCurrentSceneName() && 'Snow Map' != d.getCurrentSceneName() ) { a = this.actor; var b = d.getValueForScene('Stage Logic', '_SnowSpeed'); a.setXVelocity( (null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b))) * this._SpeedMultiplier ); } }, init: function () { this.actor.makeAlwaysSimulate(); this.actor.setYVelocity(3.2); this._SpeedMultiplier = (d.randomInt(8, 10) / 10) * 0.4; this.actor.setAnimation('' + d.randomInt(1, 2)); this.addListener(this.actor.whenPositionStateChanged, q(this, this._event_Leavesscene)); d.runPeriodically(1e3, q(this, this._event_EveryNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: Ap }); var Bp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_159'] = Bp; Bp.__name__ = 'scripts.ActorEvents_159'; Bp.__super__ = u; Bp.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Bp }); var Cp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_16'] = Cp; Cp.__name__ = 'scripts.ActorEvents_16'; Cp.__super__ = u; Cp.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Cp }); var Dp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_161'] = Dp; Dp.__name__ = 'scripts.ActorEvents_161'; Dp.__super__ = u; Dp.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Dp }); var Ep = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_166'] = Ep; Ep.__name__ = 'scripts.ActorEvents_166'; Ep.__super__ = u; Ep.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Ep }); var Fp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_169'] = Fp; Fp.__name__ = 'scripts.ActorEvents_169'; Fp.__super__ = u; Fp.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Fp }); var Gp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_18'] = Gp; Gp.__name__ = 'scripts.ActorEvents_18'; Gp.__super__ = u; Gp.prototype = r(u.prototype, { init: function () { this.actor.makeAlwaysSimulate(); this.actor.disableActorDrawing(); }, forwardMessage: function (a) {}, __class__: Gp }); var Hp = function (a, b, c) { u.call(this, b); this.nameMap.h.Spikes = '_Spikes'; this.nameMap.h['Ground Check Left'] = '_GroundCheckLeft'; this._GroundCheckLeft = !1; this.nameMap.h['Ground Check Right'] = '_GroundCheckRight'; this._GroundCheckRight = !1; this.nameMap.h['Ground Check Top'] = '_GroundCheckTop'; this._GroundCheckTop = !1; this.nameMap.h['Ground Check Bottom'] = '_GroundCheckBottom'; this._GroundCheckBottom = !1; this.nameMap.h['On Ground Left'] = '_OnGroundLeft'; this._OnGroundLeft = !1; this.nameMap.h['On Ground Top'] = '_OnGroundTop'; this._OnGroundTop = !1; this.nameMap.h['On Ground Bottom'] = '_OnGroundBottom'; this._OnGroundBottom = !1; this.nameMap.h['On Ground Right'] = '_OnGroundRight'; this._OnGroundRight = !1; }; h['scripts.ActorEvents_197'] = Hp; Hp.__name__ = 'scripts.ActorEvents_197'; Hp.__super__ = u; Hp.prototype = r(u.prototype, { _Spikes: null, _GroundCheckLeft: null, _GroundCheckRight: null, _GroundCheckTop: null, _GroundCheckBottom: null, _OnGroundLeft: null, _OnGroundTop: null, _OnGroundBottom: null, _OnGroundRight: null, _event_Updating: function (a) { this.wrapper.enabled && ((a = this._Spikes), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && (this._Spikes.setX(this.actor.getXCenter() - 44), this._Spikes.setY(this.actor.getYCenter() - 44)); }, init: function () { this.actor.makeAlwaysSimulate(); d.createRecycledActorOnLayer( d.getActorType(199), this.actor.getXCenter() - 44, this.actor.getYCenter() - 44, d.engine.getLayerById(this.actor.getLayerID()) ); this._Spikes = d.getLastCreatedActor(); this._Spikes.makeAlwaysSimulate(); this.actor.moveToTop(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Hp }); var Ip = function (a, b, c) { u.call(this, b); this.nameMap.h['Ground Check Top'] = '_GroundCheckTop'; this._GroundCheckTop = !1; this.nameMap.h['Ground Check Bottom'] = '_GroundCheckBottom'; this._GroundCheckBottom = !1; this.nameMap.h['Ground Check Left'] = '_GroundCheckLeft'; this._GroundCheckLeft = !1; this.nameMap.h['Ground Check Right'] = '_GroundCheckRight'; this._GroundCheckRight = !1; this.nameMap.h['On Ground Top'] = '_OnGroundTop'; this._OnGroundTop = !1; this.nameMap.h['On Ground Bottom'] = '_OnGroundBottom'; this._OnGroundBottom = !1; this.nameMap.h['On Ground Left'] = '_OnGroundLeft'; this._OnGroundLeft = !1; this.nameMap.h['On Ground Right'] = '_OnGroundRight'; this._OnGroundRight = !1; }; h['scripts.ActorEvents_199'] = Ip; Ip.__name__ = 'scripts.ActorEvents_199'; Ip.__super__ = u; Ip.prototype = r(u.prototype, { _GroundCheckTop: null, _GroundCheckBottom: null, _GroundCheckLeft: null, _GroundCheckRight: null, _OnGroundTop: null, _OnGroundBottom: null, _OnGroundLeft: null, _OnGroundRight: null, init: function () {}, forwardMessage: function (a) {}, __class__: Ip }); var Jp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_2'] = Jp; Jp.__name__ = 'scripts.ActorEvents_2'; Jp.__super__ = u; Jp.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Jp }); var Kp = function (a, b, c) { u.call(this, b); this.nameMap.h.Spin = '_Spin'; this._Spin = !1; }; h['scripts.ActorEvents_20'] = Kp; Kp.__name__ = 'scripts.ActorEvents_20'; Kp.__super__ = u; Kp.prototype = r(u.prototype, { _Spin: null, _event_ActorType: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorType(431); var e = a.otherActor.getType(); a = a.otherActor.getGroup(); c = c == e || c == a; } else c = !1; c && (this._Spin || d.runLater( 100, function (a) { b.actor.setAnimation('Spin'); b._Spin = !0; }, this.actor )); }, init: function () { this.addListener(this.actor.whenCollided, q(this, this._event_ActorType)); }, forwardMessage: function (a) {}, __class__: Kp }); var Lp = function (a, b, c) { u.call(this, b); this.nameMap.h.Spikes = '_Spikes'; this.nameMap.h['Ground Check Left'] = '_GroundCheckLeft'; this._GroundCheckLeft = !1; this.nameMap.h['Ground Check Right'] = '_GroundCheckRight'; this._GroundCheckRight = !1; this.nameMap.h['Ground Check Top'] = '_GroundCheckTop'; this._GroundCheckTop = !1; this.nameMap.h['Ground Check Bottom'] = '_GroundCheckBottom'; this._GroundCheckBottom = !1; this.nameMap.h['On Ground Left'] = '_OnGroundLeft'; this._OnGroundLeft = !1; this.nameMap.h['On Ground Top'] = '_OnGroundTop'; this._OnGroundTop = !1; this.nameMap.h['On Ground Bottom'] = '_OnGroundBottom'; this._OnGroundBottom = !1; this.nameMap.h['On Ground Right'] = '_OnGroundRight'; this._OnGroundRight = !1; }; h['scripts.ActorEvents_201'] = Lp; Lp.__name__ = 'scripts.ActorEvents_201'; Lp.__super__ = u; Lp.prototype = r(u.prototype, { _Spikes: null, _GroundCheckLeft: null, _GroundCheckRight: null, _GroundCheckTop: null, _GroundCheckBottom: null, _OnGroundLeft: null, _OnGroundTop: null, _OnGroundBottom: null, _OnGroundRight: null, _event_Updating: function (a) { this.wrapper.enabled && ((a = this._Spikes), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && (this._Spikes.setX(this.actor.getXCenter() - 92), this._Spikes.setY(this.actor.getYCenter() - 44)); }, init: function () { this.actor.makeAlwaysSimulate(); d.createRecycledActorOnLayer( d.getActorType(203), this.actor.getXCenter() - 44, this.actor.getYCenter() - 44, d.engine.getLayerById(this.actor.getLayerID()) ); this._Spikes = d.getLastCreatedActor(); this._Spikes.makeAlwaysSimulate(); this.actor.moveToTop(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Lp }); var Mp = function (a, b, c) { u.call(this, b); this.nameMap.h['Ground Check Top'] = '_GroundCheckTop'; this._GroundCheckTop = !1; this.nameMap.h['Ground Check Bottom'] = '_GroundCheckBottom'; this._GroundCheckBottom = !1; this.nameMap.h['Ground Check Left'] = '_GroundCheckLeft'; this._GroundCheckLeft = !1; this.nameMap.h['Ground Check Right'] = '_GroundCheckRight'; this._GroundCheckRight = !1; this.nameMap.h['On Ground Top'] = '_OnGroundTop'; this._OnGroundTop = !1; this.nameMap.h['On Ground Bottom'] = '_OnGroundBottom'; this._OnGroundBottom = !1; this.nameMap.h['On Ground Left'] = '_OnGroundLeft'; this._OnGroundLeft = !1; this.nameMap.h['On Ground Right'] = '_OnGroundRight'; this._OnGroundRight = !1; }; h['scripts.ActorEvents_203'] = Mp; Mp.__name__ = 'scripts.ActorEvents_203'; Mp.__super__ = u; Mp.prototype = r(u.prototype, { _GroundCheckTop: null, _GroundCheckBottom: null, _GroundCheckLeft: null, _GroundCheckRight: null, _OnGroundTop: null, _OnGroundBottom: null, _OnGroundLeft: null, _OnGroundRight: null, init: function () { 'Level 39' == d.getCurrentSceneName() && this.actor.setAnimation('Top Only'); }, forwardMessage: function (a) {}, __class__: Mp }); var Np = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_205'] = Np; Np.__name__ = 'scripts.ActorEvents_205'; Np.__super__ = u; Np.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Np }); var Op = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_208'] = Op; Op.__name__ = 'scripts.ActorEvents_208'; Op.__super__ = u; Op.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Op }); var Pp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_211'] = Pp; Pp.__name__ = 'scripts.ActorEvents_211'; Pp.__super__ = u; Pp.prototype = r(u.prototype, { _event_EveryNsecs: function (a) { this.wrapper.enabled && (d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setAnimation('Smoke'), d.getLastCreatedActor().moveToBottom()); }, _event_HitsGround: function (a) { if (this.wrapper.enabled) { var b = d.getActorGroup(1); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && a.otherActor.getType() != d.getActorType(208) && a.otherActor.getType() != d.getActorType(213) && this.actor.shout('_customEvent_Destroy'); }, _event_HitsPlatform: function (a) { if (this.wrapper.enabled) { var b = d.getActorGroup(5); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && a.otherActor.getType() != d.getActorType(208) && a.otherActor.getType() != d.getActorType(213) && this.actor.shout('_customEvent_Destroy'); }, _customEvent_Destroy: function () { !k.engine.getGameAttribute('Sound Disabled') && this.actor.isOnScreen() && d.playSound(d.getSound(215)); 'Left' == this.actor.getAnimation() ? (d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX(), this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(16, -16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Fire'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX(), this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(16, 16, 0.3, J.backOut)) : (d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 16, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-16, -16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Fire'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 16, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-16, 16, 0.3, J.backOut)); d.getLastCreatedActor().setAnimation('Fire'); d.recycleActor(this.actor); }, init: function () { this.actor.makeAlwaysSimulate(); d.runPeriodically(200, q(this, this._event_EveryNsecs), this.actor); this.addListener(this.actor.whenCollided, q(this, this._event_HitsGround)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsPlatform)); }, forwardMessage: function (a) {}, __class__: Pp }); var Qp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_213'] = Qp; Qp.__name__ = 'scripts.ActorEvents_213'; Qp.__super__ = u; Qp.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Qp }); var Rp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_216'] = Rp; Rp.__name__ = 'scripts.ActorEvents_216'; Rp.__super__ = u; Rp.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Rp }); var Sp = function (a, b, c) { u.call(this, b); this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; }; h['scripts.ActorEvents_218'] = Sp; Sp.__name__ = 'scripts.ActorEvents_218'; Sp.__super__ = u; Sp.prototype = r(u.prototype, { _GravitySpeed: null, _event_HitsGround: function (a) { if (this.wrapper.enabled) { var b = d.getActorGroup(1); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; if (b) if (a.thisFromBottom) { k.engine.getGameAttribute('Sound Disabled') || (0 <= this.actor.getYVelocity() && this.actor.isOnScreen() && d.playSound(d.getSound(220))); if (this.actor.isOnScreen() && 0 <= this.actor.getYVelocity()) for (a = 0, b = d.getActorsOfType(d.getActorType(2)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || (this.actor.getXCenter() > c.getXCenter() ? d.setValueForScene('Stage Logic', '_RumbleName', 'Small Thud Right') : d.setValueForScene('Stage Logic', '_RumbleName', 'Small Thud Left'), d.sayToScene('Stage Logic', '_customEvent_rumble')); this.actor.setYVelocity(-60); } else k.engine.getGameAttribute('Sound Disabled') || (this.actor.isOnScreen() && d.playSound(d.getSound(221))), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-16, -16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(16, -16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-16, 16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(16, 16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.recycleActor(this.actor); }, _event_EveryNsecs: function (a) { this.wrapper.enabled && (this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)), 'Left' == this.actor.getAnimation() ? this.actor.setXVelocity(-16) : 'Right' == this.actor.getAnimation() && this.actor.setXVelocity(16)); }, init: function () { this.actor.makeAlwaysSimulate(); this._GravitySpeed = 48; this.addListener(this.actor.whenCollided, q(this, this._event_HitsGround)); d.runPeriodically(10, q(this, this._event_EveryNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: Sp }); var Tp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_22'] = Tp; Tp.__name__ = 'scripts.ActorEvents_22'; Tp.__super__ = u; Tp.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Tp }); var Up = function (a, b, c) { u.call(this, b); this.nameMap.h['Direction RN'] = '_DirectionRN'; this._DirectionRN = 0; }; h['scripts.ActorEvents_223'] = Up; Up.__name__ = 'scripts.ActorEvents_223'; Up.__super__ = u; Up.prototype = r(u.prototype, { _DirectionRN: null, _event_AfterNsecs: function (a) { var b = this; this.wrapper.enabled && (this.actor.setAnimation('Fade'), d.runLater( 700, function (a) { d.recycleActor(b.actor); }, this.actor )); }, init: function () { this.actor.anchorToScreen(); d.runLater(700, q(this, this._event_AfterNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: Up }); var Vp = function (a, b, c) { u.call(this, b); this.nameMap.h['Hover Distance'] = '_HoverDistance'; this._HoverDistance = 0; this.nameMap.h.Up = '_Up'; this._Up = !1; }; h['scripts.ActorEvents_226'] = Vp; Vp.__name__ = 'scripts.ActorEvents_226'; Vp.__super__ = u; Vp.prototype = r(u.prototype, { _HoverDistance: null, _Up: null, _customEvent_Move: function () { var a = this; this._HoverDistance = 4; this._Up ? (this.actor.moveBy(0, -this._HoverDistance, 0.4, J.quadInOut), (this._Up = !1), d.runLater( 500, function (b) { a.actor.shout('_customEvent_Move'); }, this.actor )) : (this.actor.moveBy(0, this._HoverDistance, 0.4, J.quadInOut), (this._Up = !0), d.runLater( 500, function (b) { a.actor.shout('_customEvent_Move'); }, this.actor )); }, init: function () {}, forwardMessage: function (a) {}, __class__: Vp }); var Wp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_232'] = Wp; Wp.__name__ = 'scripts.ActorEvents_232'; Wp.__super__ = u; Wp.prototype = r(u.prototype, { init: function () { d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8 - 32, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveToBottom(); d.getLastCreatedActor().moveBy(-64, -64, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Big Dirt'); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8 + 32, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveToBottom(); d.getLastCreatedActor().moveBy(64, -64, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Big Dirt'); }, forwardMessage: function (a) {}, __class__: Wp }); var Xp = function (a, b, c) { u.call(this, b); this.nameMap.h.Pressed = '_Pressed'; this._Pressed = !1; this.nameMap.h.Hide = '_Hide'; this._Hide = !1; this.nameMap.h['Button Input'] = '_ButtonInput'; this._ButtonInput = ''; }; h['scripts.ActorEvents_234'] = Xp; Xp.__name__ = 'scripts.ActorEvents_234'; Xp.__super__ = u; Xp.prototype = r(u.prototype, { _Pressed: null, _Hide: null, _ButtonInput: null, _event_AnyButton: function (a) { var b = this; this.wrapper.enabled && ((this._ButtonInput = a), ('7' != this._ButtonInput && '15' != this._ButtonInput) || this._Pressed || d.engine.isPaused() || k.engine.getGameAttribute('Dead') || ((this._Pressed = !0), d.createRecycledActor(d.getActorType(236), 0, 0, 0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)), d.runLater( 400, function (a) { b._Pressed = !1; }, this.actor ))); }, _event_Keyboard: function (a, b) { var c = this; !this.wrapper.enabled || !a || this._Pressed || d.engine.isPaused() || k.engine.getGameAttribute('Dead') || ((this._Pressed = !0), d.createRecycledActor(d.getActorType(236), 0, 0, 0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)), d.runLater( 400, function (a) { c._Pressed = !1; }, this.actor )); }, _event_OnActor: function (a) { var b = this; !this.wrapper.enabled || 3 != a || !k.engine.getGameAttribute('MOBILE MODE') || this._Pressed || d.engine.isPaused() || k.engine.getGameAttribute('Dead') || ((this._Pressed = !0), this.actor.setAnimation('Down'), d.createRecycledActor(d.getActorType(236), 0, 0, 0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)), d.runLater( 200, function (a) { b.actor.setAnimation('Normal'); }, this.actor ), d.runLater( 400, function (a) { b._Pressed = !1; }, this.actor )); }, _event_Updating: function (a) { this.wrapper.enabled && k.engine.getGameAttribute('MOBILE MODE') && (d.engine.isPaused() && !this._Hide ? ((this._Hide = !0), this.actor.disableActorDrawing()) : !d.engine.isPaused() && this._Hide && ((this._Hide = !1), this.actor.enableActorDrawing())); }, init: function () { this.actor.makeAlwaysSimulate(); this.actor.anchorToScreen(); k.engine.getGameAttribute('MOBILE MODE') || this.actor.disableActorDrawing(); this.addListener(d.engine.whenAnyGamepadPressed, q(this, this._event_AnyButton)); this.addListener( d.engine.whenKeyPressedEvents.getOrCreateEvent('Escape'), q(this, this._event_Keyboard) ); this.addListener(this.actor.whenMousedOver, q(this, this._event_OnActor)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Xp }); var Yp = function (a, b, c) { u.call(this, b); this.nameMap.h.Inner = '_Inner'; }; h['scripts.ActorEvents_236'] = Yp; Yp.__name__ = 'scripts.ActorEvents_236'; Yp.__super__ = u; Yp.prototype = r(u.prototype, { _Inner: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.set_alpha(0); this.actor.setX(d.getScreenX() - 5); this.actor.setY(d.getScreenY() - 5); ba.setScale('width', 970, this.actor); ba.setScale('height', 550, this.actor); this.actor.fadeTo(0.86, 0.4, J.quadInOut); for (var a = 0, b = d.getActorsOfType(d.getActorType(2)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c.shout('_customEvent_clearTouches'); } d.createRecycledActor( d.getActorType(250), this.actor.getX() + (d.getScreenWidth() / 2 - 106), d.getScreenY() - 126, 0 ); this._Inner = d.getLastCreatedActor(); this._Inner.moveTo( this._Inner.getX(), d.getScreenY() + (d.getScreenHeight() / 2 - 56), 0.7, J.elasticOut ); d.engine.pause(); }, forwardMessage: function (a) {}, __class__: Yp }); var Zp = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_238'] = Zp; Zp.__name__ = 'scripts.ActorEvents_238'; Zp.__super__ = u; Zp.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Zp }); var $p = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_24'] = $p; $p.__name__ = 'scripts.ActorEvents_24'; $p.__super__ = u; $p.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: $p }); var aq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_240'] = aq; aq.__name__ = 'scripts.ActorEvents_240'; aq.__super__ = u; aq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: aq }); var bq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_242'] = bq; bq.__name__ = 'scripts.ActorEvents_242'; bq.__super__ = u; bq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: bq }); var cq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_244'] = cq; cq.__name__ = 'scripts.ActorEvents_244'; cq.__super__ = u; cq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: cq }); var dq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_246'] = dq; dq.__name__ = 'scripts.ActorEvents_246'; dq.__super__ = u; dq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: dq }); var eq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_248'] = eq; eq.__name__ = 'scripts.ActorEvents_248'; eq.__super__ = u; eq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: eq }); var fq = function (a, b, c) { u.call(this, b); this.nameMap.h['Home Button'] = '_HomeButton'; this.nameMap.h['Restart Button'] = '_RestartButton'; this.nameMap.h['Resume Button'] = '_ResumeButton'; this.nameMap.h['Ads Button'] = '_AdsButton'; this.nameMap.h['Sound Button'] = '_SoundButton'; this.nameMap.h['Music Button'] = '_MusicButton'; this.nameMap.h['Button Pressed'] = '_ButtonPressed'; this._ButtonPressed = !1; this.nameMap.h['In Position'] = '_InPosition'; this._InPosition = !1; this.nameMap.h['Controls Button'] = '_ControlsButton'; this.nameMap.h.Cursor = '_Cursor'; this.nameMap.h['Possum Button'] = '_PossumButton'; this.nameMap.h['Go Button'] = '_GoButton'; this.nameMap.h['Button Input'] = '_ButtonInput'; this._ButtonInput = ''; this.nameMap.h['List Selected'] = '_ListSelected'; this._ListSelected = 0; this.nameMap.h['List Buttons'] = '_ListButtons'; this.nameMap.h['Button Is Down'] = '_ButtonIsDown'; this._ButtonIsDown = !1; this.nameMap.h['Down Button ID'] = '_DownButtonID'; this._DownButtonID = ''; this.nameMap.h['Press Timer'] = '_PressTimer'; this._PressTimer = 0; this.nameMap.h['Button Input Use'] = '_ButtonInputUse'; this._ButtonInputUse = ''; this.nameMap.h['Left Is Down'] = '_LeftIsDown'; this._LeftIsDown = !1; this.nameMap.h['Right Is Down'] = '_RightIsDown'; this._RightIsDown = !1; this.nameMap.h['Up Is Down'] = '_UpIsDown'; this._UpIsDown = !1; this.nameMap.h['Down is Down'] = '_DownisDown'; this._DownisDown = !1; this.nameMap.h['Can Move Left'] = '_CanMoveLeft'; this._CanMoveLeft = !1; this.nameMap.h['Can Move Right'] = '_CanMoveRight'; this._CanMoveRight = !1; this.nameMap.h['Can Move Up'] = '_CanMoveUp'; this._CanMoveUp = !1; this.nameMap.h['Can Move Down'] = '_CanMoveDown'; this._CanMoveDown = !1; this.nameMap.h.Moving = '_Moving'; this._Moving = !1; this.nameMap.h['Vibe Button'] = '_VibeButton'; this.nameMap.h['Moving 2'] = '_Moving2'; this._Moving2 = !1; this.nameMap.h['Can Press Buttons'] = '_CanPressButtons'; this._CanPressButtons = !1; }; h['scripts.ActorEvents_250'] = fq; fq.__name__ = 'scripts.ActorEvents_250'; fq.__super__ = u; fq.prototype = r(u.prototype, { _HomeButton: null, _RestartButton: null, _ResumeButton: null, _AdsButton: null, _SoundButton: null, _MusicButton: null, _ButtonPressed: null, _InPosition: null, _ControlsButton: null, _Cursor: null, _PossumButton: null, _GoButton: null, _ButtonInput: null, _ListSelected: null, _ListButtons: null, _ButtonIsDown: null, _DownButtonID: null, _PressTimer: null, _ButtonInputUse: null, _LeftIsDown: null, _RightIsDown: null, _UpIsDown: null, _DownisDown: null, _CanMoveLeft: null, _CanMoveRight: null, _CanMoveUp: null, _CanMoveDown: null, _Moving: null, _VibeButton: null, _Moving2: null, _CanPressButtons: null, _event_Updating: function (a) { if (this.wrapper.enabled) { a = this._HomeButton; if (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) this._HomeButton.setX(this.actor.getXCenter() - 121), this._HomeButton.setY(this.actor.getY()); a = this._RestartButton; if (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) this._RestartButton.setX(this.actor.getXCenter() - 37), this._RestartButton.setY(this.actor.getY()); a = this._ResumeButton; if (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) this._ResumeButton.setX(this.actor.getXCenter() + 47), this._ResumeButton.setY(this.actor.getY()); a = this._SoundButton; if (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) this._SoundButton.setX(this.actor.getXCenter() - 56), this._SoundButton.setY(this.actor.getY() + 74); a = this._MusicButton; if (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) this._MusicButton.setX(this.actor.getXCenter() + 6), this._MusicButton.setY(this.actor.getY() + 74); } }, _event_Click: function () { this.wrapper.enabled && (this._HomeButton.isMousePressed() ? ((this._ListSelected = 0), this.actor.shout('_customEvent_updateSelected'), this.actor.shout('_customEvent_buttonPressed')) : this._RestartButton.isMousePressed() ? ((this._ListSelected = 1), this.actor.shout('_customEvent_updateSelected'), this.actor.shout('_customEvent_buttonPressed')) : this._ResumeButton.isMousePressed() ? ((this._ListSelected = 2), this.actor.shout('_customEvent_updateSelected'), this.actor.shout('_customEvent_buttonPressed')) : this._SoundButton.isMousePressed() ? ((this._ListSelected = 3), this.actor.shout('_customEvent_updateSelected'), this.actor.shout('_customEvent_buttonPressed')) : this._MusicButton.isMousePressed() && ((this._ListSelected = 4), this.actor.shout('_customEvent_updateSelected'), this.actor.shout('_customEvent_buttonPressed'))); }, _event_EveryNsecs: function (a) { this.wrapper.enabled && (this._UpIsDown || this._DownisDown || this._LeftIsDown || this._RightIsDown ? 4 <= this._PressTimer ? ((this._PressTimer = 0), this.actor.shout('_customEvent_Move')) : (this._PressTimer += 1) : (this._PressTimer = 0)); }, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) { b = d.getFont(168); null != b && b != a.font && (a.font = b); if ('JP' == k.engine.getGameAttribute('Language')) { b = d.getFont(588); null != b && b != a.font && (a.font = b); b = this.actor.getWidth() / 2 - a.font.getTextWidth('~x4e00~x6642~x505c~x6b62') / k.SCALE / 2; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (c = a.y + -34 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (c = a.y + -34 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (c = a.y + -34 * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, c); var e = null, f = a.font; f = '~x4e00~x6642~x505c~x6b62:' + f.ID + ':' + a.alpha + ':' + f.letterSpacing + ':' + k.SCALE; if (Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, f)) { var g = W.drawnStringCache.h[f]; g.lifetime = 5; e = g.img; } else { g = a.font.font.getTextWidth( '~x4e00~x6642~x505c~x6b62', a.font.letterSpacing, a.font.fontScale ); var p = (a.font.font.getFontHeight() * a.font.fontScale) | 0; 0 < g && 0 < p && ((e = new ja(g, p, !0, 0)), a.font.font.renderToImg( e, '~x4e00~x6642~x505c~x6b62', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (g = new Mb()), (g.img = e), (g.lifetime = 5), (W.drawnStringCache.h[f] = g), W.drawnStringCacheKeys.push(f)); } } else 'CN' == k.engine.getGameAttribute('Language') ? ((b = d.getFont(592)), null != b && b != a.font && (a.font = b), (b = this.actor.getWidth() / 2 - a.font.getTextWidth('~x5df2~x6682~x505c') / k.SCALE / 2), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (c = a.y + -34 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (c = a.y + -34 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (c = a.y + -34 * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, c), (e = null), (f = a.font), (f = '~x5df2~x6682~x505c:' + f.ID + ':' + a.alpha + ':' + f.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, f) ? ((g = W.drawnStringCache.h[f]), (g.lifetime = 5), (e = g.img)) : ((g = a.font.font.getTextWidth( '~x5df2~x6682~x505c', a.font.letterSpacing, a.font.fontScale )), (p = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < g && 0 < p && ((e = new ja(g, p, !0, 0)), a.font.font.renderToImg( e, '~x5df2~x6682~x505c', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (g = new Mb()), (g.img = e), (g.lifetime = 5), (W.drawnStringCache.h[f] = g), W.drawnStringCacheKeys.push(f)))) : 'KR' == k.engine.getGameAttribute('Language') ? ((b = d.getFont(593)), null != b && b != a.font && (a.font = b), (b = this.actor.getWidth() / 2 - a.font.getTextWidth('~xc77c~xc2dc ~xc815~xc9c0~xb428') / k.SCALE / 2), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (c = a.y + -34 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (c = a.y + -34 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (c = a.y + -34 * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, c), (e = null), (f = a.font), (f = '~xc77c~xc2dc ~xc815~xc9c0~xb428:' + f.ID + ':' + a.alpha + ':' + f.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, f) ? ((g = W.drawnStringCache.h[f]), (g.lifetime = 5), (e = g.img)) : ((g = a.font.font.getTextWidth( '~xc77c~xc2dc ~xc815~xc9c0~xb428', a.font.letterSpacing, a.font.fontScale )), (p = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < g && 0 < p && ((e = new ja(g, p, !0, 0)), a.font.font.renderToImg( e, '~xc77c~xc2dc ~xc815~xc9c0~xb428', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (g = new Mb()), (g.img = e), (g.lifetime = 5), (W.drawnStringCache.h[f] = g), W.drawnStringCacheKeys.push(f)))) : ((b = d.getFont(165)), null != b && b != a.font && (a.font = b), (b = this.actor.getWidth() / 2 - a.font.getTextWidth('PAUSED') / k.SCALE / 2), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (c = a.y + -28 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (c = a.y + -28 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (c = a.y + -28 * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, c), (e = null), (f = a.font), (f = 'PAUSED:' + f.ID + ':' + a.alpha + ':' + f.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, f) ? ((g = W.drawnStringCache.h[f]), (g.lifetime = 5), (e = g.img)) : ((g = a.font.font.getTextWidth( 'PAUSED', a.font.letterSpacing, a.font.fontScale )), (p = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < g && 0 < p && ((e = new ja(g, p, !0, 0)), a.font.font.renderToImg( e, 'PAUSED', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (g = new Mb()), (g.img = e), (g.lifetime = 5), (W.drawnStringCache.h[f] = g), W.drawnStringCacheKeys.push(f))), null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, e.width, e.height), a.graphics.endFill()), (b = d.getFont(168)), null != b && b != a.font && (a.font = b), (b = this.actor.getWidth() / 2 - a.font.getTextWidth('PAUSED') / k.SCALE / 2), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (c = a.y + -30 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (c = a.y + -30 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (c = a.y + -30 * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, c), (e = null), (f = a.font), (f = 'PAUSED:' + f.ID + ':' + a.alpha + ':' + f.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, f) ? ((g = W.drawnStringCache.h[f]), (g.lifetime = 5), (e = g.img)) : ((g = a.font.font.getTextWidth( 'PAUSED', a.font.letterSpacing, a.font.fontScale )), (p = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < g && 0 < p && ((e = new ja(g, p, !0, 0)), a.font.font.renderToImg( e, 'PAUSED', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (g = new Mb()), (g.img = e), (g.lifetime = 5), (W.drawnStringCache.h[f] = g), W.drawnStringCacheKeys.push(f)))); null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, e.width, e.height), a.graphics.endFill()); } }, _event_KeyPressed: function (a) { this.wrapper.enabled && !this._ButtonPressed && this._CanPressButtons && (this._ButtonIsDown || (d.isKeyPressed('left') ? (this._LeftIsDown = !0) : d.isKeyPressed('right') ? (this._RightIsDown = !0) : d.isKeyPressed('up') ? (this._UpIsDown = !0) : d.isKeyPressed('down') && (this._DownisDown = !0), 0 == this._PressTimer && ((this._PressTimer = 1), this.actor.shout('_customEvent_Move'))), (d.isKeyPressed('enter') || d.isKeyPressed('action1')) && this.actor.shout('_customEvent_buttonPressed'), d.isKeyPressed('Escape') && ((this._ButtonPressed = !0), this.actor.shout('_customEvent_close'))); }, _event_KeyReleased: function (a) { this.wrapper.enabled && (this._UpIsDown || this._DownisDown || this._LeftIsDown || this._RightIsDown) && (d.isKeyReleased('left') ? (this._LeftIsDown = !1) : d.isKeyReleased('right') ? (this._RightIsDown = !1) : d.isKeyReleased('up') ? (this._UpIsDown = !1) : d.isKeyReleased('down') && (this._DownisDown = !1)); }, _customEvent_AdjustSize: function () { this._InPosition && !this._ButtonPressed && this.actor.getX() != d.getScreenX() + (d.getScreenWidth() / 2 - 106) && this.actor.getY() != d.getScreenY() + (d.getScreenHeight() / 2 - 56) && (this.actor.setX(d.getScreenX() + (d.getScreenWidth() / 2 - 106)), this.actor.setY(d.getScreenY() + (d.getScreenHeight() / 2 - 56))); }, _customEvent_updateSelected: function () { var a = this; this._PressTimer = 0; k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(725)); for (var b = 0, c = this._ListButtons.length; b < c; ) { var e = [b++]; if (e[0] == this._ListSelected) this._ListButtons[e[0]].clearFilters(), this._ListButtons[e[0]].growTo(1.1, 1.1, 0, J.linear), d.runLater( 100, (function (b) { return function (c) { a._ListButtons[b[0]].growTo(1, 1, 0.3, J.elasticOut); }; })(e), this.actor ); else { this._ListButtons[e[0]].growTo(1, 1, 0, J.linear); this._ListButtons[e[0]].clearFilters(); var f = 0, g = 0, p = 0; null == p && (p = 0); null == g && (g = 0); null == f && (f = 0); this._ListButtons[e[0]].setFilter([ d.createTintFilter((f << 16) | (g << 8) | p, 0.4) ]); } } }, _customEvent_buttonPressed: function () { var a = this; if (!this._ButtonPressed && this._CanPressButtons) if (0 == this._ListSelected) { var b = this._HomeButton; if ( d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b) ) { this._ButtonPressed = !0; this._HomeButton.setAnimation('Down'); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)); b = 0; for (var c = d.getActorsOfType(d.getActorType(435)); b < c.length; ) { var e = c[b]; ++b; null == e || e.dead || e.recycled || e.moveBy(0, -80, 0.2, J.quadInOut); } d.runLater( 200, function (a) { d.setValueForScene('Transitions', '_TransitionType', 2); d.sayToScene('Transitions', '_customEvent_transitionOut'); }, this.actor ); d.runLater( 2e3, function (a) { k.engine.getGameAttribute('Music Disabled') || d.setVolumeForChannel(1, 16); k.engine.getGameAttribute('Sound Disabled') || d.setVolumeForChannel(1, 15); k.engine.gameAttributes.h['Map Enter Left'] = !1; k.engine.gameAttributes.h['Map Enter Right'] = !1; if (31 <= k.engine.getGameAttribute('Last Stage Played')) { a = Fa.get().scenes.h[8].getID(); var b = 0, c = 0, e = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); var f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e); e = c = b = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)); k.engine.gameAttributes.h['Start Overworld Music'] = !0; } else 21 <= k.engine.getGameAttribute('Last Stage Played') ? ((a = Fa.get().scenes.h[7].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)), (k.engine.gameAttributes.h['Start Overworld Music'] = !0)) : 11 <= k.engine.getGameAttribute('Last Stage Played') ? ((a = Fa.get().scenes.h[6].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)), (k.engine.gameAttributes.h['Start Overworld Music'] = !0)) : 1 >= k.engine.getGameAttribute('Last Stage Played') ? ((a = Fa.get().scenes.h[4].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e))) : ((a = Fa.get().scenes.h[5].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)), (k.engine.gameAttributes.h['Start Overworld Music'] = !0)); }, this.actor ); } } else if (1 == this._ListSelected) { if ( ((b = this._RestartButton), d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) ) { k.engine.getGameAttribute('Timer Mode') && (d.sayToScene('Stage Logic', '_customEvent_timerHide'), d.setValueForScene('Stage Logic', '_ShowTimer', !1)); this._ButtonPressed = !0; this._RestartButton.setAnimation('Down'); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)); b = 0; for (c = d.getActorsOfType(d.getActorType(435)); b < c.length; ) (e = c[b]), ++b, null == e || e.dead || e.recycled || e.moveBy(0, -80, 0.2, J.quadInOut); d.runLater( 200, function (a) { d.setValueForScene('Transitions', '_TransitionType', 2); d.sayToScene('Transitions', '_customEvent_transitionOut'); }, this.actor ); d.runLater( 2e3, function (a) { k.engine.getGameAttribute('Music Disabled') || d.setVolumeForChannel(1, 16); k.engine.getGameAttribute('Sound Disabled') || d.setVolumeForChannel(1, 15); gb.commercialBreak(function () { var a = 0, b = 0, c = 0; null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); var e = d.createFadeOut(0.3, (a << 16) | (b << 8) | c); c = b = a = 0; null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); d.reloadCurrentScene(e, d.createFadeIn(0.3, (a << 16) | (b << 8) | c)); }); }, this.actor ); } } else if (2 == this._ListSelected) { if ( ((b = this._ResumeButton), d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) ) (this._ButtonPressed = !0), this._ResumeButton.setAnimation('Down'), k.engine.getGameAttribute('Music Disabled') || d.setVolumeForChannel(1, 16), k.engine.getGameAttribute('Sound Disabled') || d.setVolumeForChannel(1, 15), this.actor.shout('_customEvent_close'); } else if (3 == this._ListSelected) { if ( ((b = this._SoundButton), d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) ) (this._ButtonPressed = !0), this._SoundButton.setAnimation('Down'), k.engine.getGameAttribute('Sound Disabled') ? ((k.engine.gameAttributes.h['Sound Disabled'] = !1), d.setVolumeForChannel(1, 15)) : k.engine.getGameAttribute('Sound Disabled') || ((k.engine.gameAttributes.h['Sound Disabled'] = !0), d.setVolumeForChannel(0, 15)), d.saveGame('mySave', function (a) {}), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)), d.runLater( 200, function (b) { a._ButtonPressed = !1; k.engine.getGameAttribute('Sound Disabled') ? a._SoundButton.setAnimation('Off') : a._SoundButton.setAnimation('On'); }, this.actor ); } else 4 == this._ListSelected && ((b = this._MusicButton), d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && ((this._ButtonPressed = !0), this._MusicButton.setAnimation('Down'), k.engine.getGameAttribute('Music Disabled') ? ((k.engine.gameAttributes.h['Music Disabled'] = !1), d.setVolumeForChannel(1, 16)) : k.engine.getGameAttribute('Music Disabled') || ((k.engine.gameAttributes.h['Music Disabled'] = !0), d.setVolumeForChannel(0, 16)), d.saveGame('mySave', function (a) {}), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)), d.runLater( 200, function (b) { a._ButtonPressed = !1; k.engine.getGameAttribute('Music Disabled') ? a._MusicButton.setAnimation('Off') : a._MusicButton.setAnimation('On'); }, this.actor )); }, _customEvent_close: function () { var a = this; gb.gameplayStart(); k.engine.getGameAttribute('Music Disabled') || d.setVolumeForChannel(1, 16); k.engine.getGameAttribute('Sound Disabled') || d.setVolumeForChannel(1, 15); k.engine.getGameAttribute('Timer Mode') && (d.sayToScene('Stage Logic', '_customEvent_timerShow'), d.setValueForScene('Stage Logic', '_ShowTimer', !0)); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)); d.runLater( 300, function (a) { a = 0; for (var b = d.getActorsOfType(d.getActorType(236)); a < b.length; ) { var e = b[a]; ++a; null == e || e.dead || e.recycled || e.fadeTo(0, 0.2, J.quadInOut); } }, this.actor ); this.actor.moveTo(this.actor.getX(), d.getScreenY() - 184, 0.3, J.quadIn); d.runLater( 700, function (b) { d.engine.unpause(); b = 0; for (var c = d.getActorsOfType(d.getActorType(236)); b < c.length; ) { var e = c[b]; ++b; null == e || e.dead || e.recycled || d.recycleActor(e); } b = a._HomeButton; (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && d.recycleActor(a._HomeButton); b = a._RestartButton; (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && d.recycleActor(a._RestartButton); b = a._ResumeButton; (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && d.recycleActor(a._ResumeButton); b = a._AdsButton; (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && d.recycleActor(a._AdsButton); b = a._SoundButton; (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && d.recycleActor(a._SoundButton); b = a._MusicButton; (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && d.recycleActor(a._MusicButton); b = a._VibeButton; (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && d.recycleActor(a._VibeButton); if (k.engine.getGameAttribute('MOBILE MODE')) { b = 0; for (c = d.getActorsOfType(d.getActorType(582)); b < c.length; ) (e = c[b]), ++b, null == e || e.dead || e.recycled || e.enableActorDrawing(); b = 0; for (c = d.getActorsOfType(d.getActorType(770)); b < c.length; ) (e = c[b]), ++b, null == e || e.dead || e.recycled || e.enableActorDrawing(); } d.recycleActor(a.actor); }, this.actor ); }, _customEvent_Move: function () { var a = this; if (!this._Moving) { this._Moving = !0; d.runLater( 100, function (b) { a._Moving = !1; }, this.actor ); this._CanMoveDown = this._CanMoveUp = this._CanMoveRight = this._CanMoveLeft = !0; if ('2' == this._ButtonInput || '-axis 0' == this._ButtonInput) { if ( 1 == this._ListSelected || 2 == this._ListSelected || 4 == this._ListSelected || 5 == this._ListSelected ) this._CanMoveLeft = !0; } else if ('3' == this._ButtonInput || '+axis 0' == this._ButtonInput) { if (0 == this._ListSelected || 1 == this._ListSelected || 3 == this._ListSelected) this._CanMoveRight = !0; } else if ('0' == this._ButtonInput || '-axis 1' == this._ButtonInput) { if (3 == this._ListSelected || 4 == this._ListSelected) this._CanMoveUp = !0; } else if ('1' == this._ButtonInput || '+axis 1' == this._ButtonInput) if (0 == this._ListSelected || 1 == this._ListSelected || 2 == this._ListSelected) this._CanMoveDown = !0; this._LeftIsDown && this._CanMoveLeft ? this._Moving2 || ((this._Moving2 = !0), d.runLater( 30, function (b) { a._Moving2 = !1; }, this.actor ), (this._PressTimer = 0), 1 == this._ListSelected && ((this._ListSelected = 0), this.actor.shout('_customEvent_updateSelected')), 2 == this._ListSelected ? ((this._ListSelected = 1), this.actor.shout('_customEvent_updateSelected')) : 4 == this._ListSelected && ((this._ListSelected = 3), this.actor.shout('_customEvent_updateSelected'))) : this._RightIsDown && this._CanMoveRight && !this._Moving2 && ((this._Moving2 = !0), d.runLater( 30, function (b) { a._Moving2 = !1; }, this.actor ), (this._PressTimer = 0), 0 == this._ListSelected ? ((this._ListSelected = 1), this.actor.shout('_customEvent_updateSelected')) : 1 == this._ListSelected ? ((this._ListSelected = 2), this.actor.shout('_customEvent_updateSelected')) : 3 == this._ListSelected && ((this._ListSelected = 4), this.actor.shout('_customEvent_updateSelected'))); this._UpIsDown && this._CanMoveUp ? this._Moving2 || ((this._Moving2 = !0), d.runLater( 30, function (b) { a._Moving2 = !1; }, this.actor ), (this._PressTimer = 0), 3 == this._ListSelected ? ((this._ListSelected = 1), this.actor.shout('_customEvent_updateSelected')) : 4 == this._ListSelected && ((this._ListSelected = 1), this.actor.shout('_customEvent_updateSelected'))) : this._DownisDown && this._CanMoveDown && !this._Moving2 && ((this._Moving2 = !0), d.runLater( 30, function (b) { a._Moving2 = !1; }, this.actor ), (this._PressTimer = 0), 0 == this._ListSelected ? ((this._ListSelected = 3), this.actor.shout('_customEvent_updateSelected')) : 1 == this._ListSelected ? ((this._ListSelected = 3), this.actor.shout('_customEvent_updateSelected')) : 2 == this._ListSelected && ((this._ListSelected = 4), this.actor.shout('_customEvent_updateSelected'))); } }, init: function () { var a = this; gb.gameplayStop(); d.setVolumeForChannel(0, 16); d.setVolumeForChannel(0, 15); d.runLater( 100, function (b) { a._CanPressButtons = !0; }, this.actor ); this._ListSelected = 2; this._ListButtons = []; this.actor.makeAlwaysSimulate(); d.createRecycledActor( d.getActorType(238), this.actor.getXCenter() - 121, this.actor.getY(), 0 ); this._HomeButton = d.getLastCreatedActor(); this._ListButtons.push(d.getLastCreatedActor()); d.getLastCreatedActor().makeAlwaysSimulate(); d.createRecycledActor( d.getActorType(240), this.actor.getXCenter() - 37, this.actor.getY(), 0 ); this._RestartButton = d.getLastCreatedActor(); this._ListButtons.push(d.getLastCreatedActor()); d.getLastCreatedActor().makeAlwaysSimulate(); d.createRecycledActor( d.getActorType(242), this.actor.getXCenter() + 47, this.actor.getY(), 0 ); this._ResumeButton = d.getLastCreatedActor(); this._ListButtons.push(d.getLastCreatedActor()); d.getLastCreatedActor().makeAlwaysSimulate(); d.createRecycledActor( d.getActorType(246), this.actor.getXCenter() - 54, this.actor.getY() + 74, 0 ); this._SoundButton = d.getLastCreatedActor(); this._ListButtons.push(d.getLastCreatedActor()); d.getLastCreatedActor().makeAlwaysSimulate(); d.createRecycledActor( d.getActorType(248), this.actor.getXCenter() + 6, this.actor.getY() + 74, 0 ); this._MusicButton = d.getLastCreatedActor(); this._ListButtons.push(d.getLastCreatedActor()); d.getLastCreatedActor().makeAlwaysSimulate(); for (var b = 0, c = d.getActorsOfType(d.getActorType(582)); b < c.length; ) { var e = c[b]; ++b; null == e || e.dead || e.recycled || e.disableActorDrawing(); } b = 0; for (c = d.getActorsOfType(d.getActorType(770)); b < c.length; ) (e = c[b]), ++b, null == e || e.dead || e.recycled || e.disableActorDrawing(); k.engine.getGameAttribute('Sound Disabled') && this._SoundButton.setAnimation('Off'); k.engine.getGameAttribute('Music Disabled') && this._MusicButton.setAnimation('Off'); d.runLater( 600, function (b) { a._InPosition = !0; }, this.actor ); this.actor.shout('_customEvent_updateSelected'); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(d.engine.whenMousePressed, q(this, this._event_Click)); d.runPeriodically(12, q(this, this._event_EveryNsecs), this.actor); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); this.addListener(this.actor.whenUpdated, q(this, this._event_KeyPressed)); this.addListener(this.actor.whenUpdated, q(this, this._event_KeyReleased)); }, forwardMessage: function (a) {}, __class__: fq }); var gq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_255'] = gq; gq.__name__ = 'scripts.ActorEvents_255'; gq.__super__ = u; gq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: gq }); var hq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_257'] = hq; hq.__name__ = 'scripts.ActorEvents_257'; hq.__super__ = u; hq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: hq }); var iq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_259'] = iq; iq.__name__ = 'scripts.ActorEvents_259'; iq.__super__ = u; iq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: iq }); var jq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_26'] = jq; jq.__name__ = 'scripts.ActorEvents_26'; jq.__super__ = u; jq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: jq }); var kq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_261'] = kq; kq.__name__ = 'scripts.ActorEvents_261'; kq.__super__ = u; kq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: kq }); var lq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_263'] = lq; lq.__name__ = 'scripts.ActorEvents_263'; lq.__super__ = u; lq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: lq }); var mq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_265'] = mq; mq.__name__ = 'scripts.ActorEvents_265'; mq.__super__ = u; mq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: mq }); var nq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_267'] = nq; nq.__name__ = 'scripts.ActorEvents_267'; nq.__super__ = u; nq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: nq }); var oq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_269'] = oq; oq.__name__ = 'scripts.ActorEvents_269'; oq.__super__ = u; oq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: oq }); var pq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_271'] = pq; pq.__name__ = 'scripts.ActorEvents_271'; pq.__super__ = u; pq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: pq }); var qq = function (a, b, c) { u.call(this, b); this.nameMap.h['Current Touch ID'] = '_CurrentTouchID'; this._CurrentTouchID = 0; this.nameMap.h['Touch Start X'] = '_TouchStartX'; this._TouchStartX = 0; this.nameMap.h['Self Start X'] = '_SelfStartX'; this._SelfStartX = 0; this.nameMap.h['Mouse Is Down'] = '_MouseIsDown'; this._MouseIsDown = !1; this.nameMap.h['Momentum Movement'] = '_MomentumMovement'; this._MomentumMovement = !1; this.nameMap.h.Tweening = '_Tweening'; this._Tweening = !1; this.nameMap.h.Momentum = '_Momentum'; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; }; h['scripts.ActorEvents_273'] = qq; qq.__name__ = 'scripts.ActorEvents_273'; qq.__super__ = u; qq.prototype = r(u.prototype, { _CurrentTouchID: null, _TouchStartX: null, _SelfStartX: null, _MouseIsDown: null, _MomentumMovement: null, _Tweening: null, _Momentum: null, _RightScrollLimit: null, _event_Updating: function (a) { this.wrapper.enabled && (d.engine.moveCamera(this.actor.getX(), this.actor.getY()), d.isMouseDown() ? this._MouseIsDown || ((this._MouseIsDown = !0), (this._TouchStartX = d.getMouseX()), (this._SelfStartX = this.actor.getX())) : !d.isMouseDown() && this._MouseIsDown && ((this._MouseIsDown = !1), (this._MomentumMovement = !0), this.actor.setXVelocity(this._Momentum.getXVelocity())), this._MouseIsDown ? this.actor.setX(this._SelfStartX + (this._TouchStartX - d.getMouseX())) : this._MomentumMovement && (0 < Math.round(this.actor.getXVelocity()) ? this.actor.setXVelocity(Math.max(0, this.actor.getXVelocity() - 0.4)) : 0 > Math.round(this.actor.getXVelocity()) ? this.actor.setXVelocity(Math.min(0, this.actor.getXVelocity() + 0.4)) : 0 == Math.round(this.actor.getXVelocity()) && ((this._MomentumMovement = !1), this.actor.setXVelocity(0))), this.actor.getX() < d.getScreenWidth() / 2 ? (this.actor.setX(d.getScreenWidth() / 2), (this._MomentumMovement = !1), this.actor.setXVelocity(0), this._Momentum.setXVelocity(0)) : this.actor.getX() > this._RightScrollLimit && (this.actor.setX(this._RightScrollLimit), this.actor.setXVelocity(0), this._Momentum.setXVelocity(0)), this._Momentum.getX() < d.getScreenWidth() / 2 ? (this.actor.setX(d.getScreenWidth() / 2), this.actor.setXVelocity(0), this._Momentum.setXVelocity(0)) : this._Momentum.getX() > this._RightScrollLimit && (this.actor.setX(this._RightScrollLimit), this.actor.setXVelocity(0), this._Momentum.setXVelocity(0)), this.actor.getX() < d.getScreenWidth() / 2 + 16 ? this.actor.setX(this.actor.getX() + 1) : this.actor.getX() > this._RightScrollLimit - 16 && this.actor.setX(this.actor.getX() - 1)); }, init: function () { this.actor.makeAlwaysSimulate(); d.createRecycledActor(d.getActorType(275), this.actor.getX(), this.actor.getY(), 0); this._Momentum = d.getLastCreatedActor(); this._RightScrollLimit = Math.max( 696 - d.getScreenWidth() / 2 + 64, d.getScreenWidth() + 64 - d.getScreenWidth() / 2 ); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: qq }); var rq = function (a, b, c) { u.call(this, b); this.nameMap.h['Screen Diagonal'] = '_ScreenDiagonal'; this._ScreenDiagonal = 0; this.nameMap.h['Distance X'] = '_DistanceX'; this._DistanceX = 0; this.nameMap.h['Distance Y'] = '_DistanceY'; this._DistanceY = 0; this.nameMap.h.Distance = '_Distance'; this._Distance = 0; this.nameMap.h.Direction = '_Direction'; this._Direction = 0; this.nameMap.h['Minimum Easing Speed'] = '_MinimumEasingSpeed'; this._MinimumEasingSpeed = 5; this.nameMap.h.Speed = '_Speed'; this._Speed = 30; this.nameMap.h.Margin = '_Margin'; this._Margin = 0; this.nameMap.h.Easing = '_Easing'; this._Easing = !0; this.nameMap.h['Stop when Colliding'] = '_StopwhenColliding'; this._StopwhenColliding = !0; this.nameMap.h.Collided = '_Collided'; this._Collided = !1; this.nameMap.h['Target Actor'] = '_TargetActor'; }; h['scripts.ActorEvents_275'] = rq; rq.__name__ = 'scripts.ActorEvents_275'; rq.__super__ = u; rq.prototype = r(u.prototype, { _ScreenDiagonal: null, _DistanceX: null, _DistanceY: null, _Distance: null, _Direction: null, _MinimumEasingSpeed: null, _Speed: null, _Margin: null, _Easing: null, _StopwhenColliding: null, _Collided: null, _TargetActor: null, _event_Updated: function (a) { this.wrapper.enabled && ((a = this._TargetActor), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._TargetActor.isAlive() && ((this._DistanceX = this._TargetActor.getXCenter() - this.actor.getXCenter()), (this._DistanceY = this._TargetActor.getYCenter() - this.actor.getYCenter()), (this._Distance = Math.sqrt( Math.pow(this._DistanceX, 2) + Math.pow(this._DistanceY, 2) )), (this._Direction = 57.29577951308402 * Math.atan2(this._DistanceY, this._DistanceX)), !(this._Distance > this._Margin) || (this._StopwhenColliding && this._Collided) ? this.actor.setVelocity(0, 0) : this._Easing ? this.actor.setVelocity( this._Direction, this._MinimumEasingSpeed + ((this._Distance - this._Margin) / this._ScreenDiagonal) * this._Speed ) : this.actor.setVelocity(this._Direction, this._Speed), (this._Collided = !1))); }, _event_ActorActor: function (a) { this.wrapper.enabled && this._TargetActor == a.otherActor && (this._Collided = !0); }, init: function () { this.actor.makeAlwaysSimulate(); for (var a = 0, b = d.getActorsOfType(d.getActorType(273)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._TargetActor = c); } this._ScreenDiagonal = Math.sqrt( Math.pow(d.getScreenWidth(), 2) + Math.pow(d.getScreenHeight(), 2) ); this._Margin = 8; this._MinimumEasingSpeed = 48; this._Speed = 60; this.addListener(this.actor.whenUpdated, q(this, this._event_Updated)); this.addListener(this.actor.whenCollided, q(this, this._event_ActorActor)); }, forwardMessage: function (a) {}, __class__: rq }); var sq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_277'] = sq; sq.__name__ = 'scripts.ActorEvents_277'; sq.__super__ = u; sq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: sq }); var tq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_279'] = tq; tq.__name__ = 'scripts.ActorEvents_279'; tq.__super__ = u; tq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: tq }); var uq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_28'] = uq; uq.__name__ = 'scripts.ActorEvents_28'; uq.__super__ = u; uq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: uq }); var vq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_281'] = vq; vq.__name__ = 'scripts.ActorEvents_281'; vq.__super__ = u; vq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: vq }); var wq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_283'] = wq; wq.__name__ = 'scripts.ActorEvents_283'; wq.__super__ = u; wq.prototype = r(u.prototype, { init: function () { this.actor.makeAlwaysSimulate(); this.actor.anchorToScreen(); ba.setScale('width', d.getScreenWidth() + 10, this.actor); ba.setScale('height', d.getScreenHeight() + 10, this.actor); }, forwardMessage: function (a) {}, __class__: wq }); var xq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_285'] = xq; xq.__name__ = 'scripts.ActorEvents_285'; xq.__super__ = u; xq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: xq }); var yq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_289'] = yq; yq.__name__ = 'scripts.ActorEvents_289'; yq.__super__ = u; yq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: yq }); var zq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_291'] = zq; zq.__name__ = 'scripts.ActorEvents_291'; zq.__super__ = u; zq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: zq }); var Aq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_293'] = Aq; Aq.__name__ = 'scripts.ActorEvents_293'; Aq.__super__ = u; Aq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Aq }); var Bq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_295'] = Bq; Bq.__name__ = 'scripts.ActorEvents_295'; Bq.__super__ = u; Bq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Bq }); var Cq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_297'] = Cq; Cq.__name__ = 'scripts.ActorEvents_297'; Cq.__super__ = u; Cq.prototype = r(u.prototype, { init: function () { this.actor.makeAlwaysSimulate(); this.actor.anchorToScreen(); }, forwardMessage: function (a) {}, __class__: Cq }); var Dq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_299'] = Dq; Dq.__name__ = 'scripts.ActorEvents_299'; Dq.__super__ = u; Dq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Dq }); var Eq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_30'] = Eq; Eq.__name__ = 'scripts.ActorEvents_30'; Eq.__super__ = u; Eq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Eq }); var Fq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_301'] = Fq; Fq.__name__ = 'scripts.ActorEvents_301'; Fq.__super__ = u; Fq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Fq }); var Gq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_303'] = Gq; Gq.__name__ = 'scripts.ActorEvents_303'; Gq.__super__ = u; Gq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Gq }); var Hq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_305'] = Hq; Hq.__name__ = 'scripts.ActorEvents_305'; Hq.__super__ = u; Hq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Hq }); var Iq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_307'] = Iq; Iq.__name__ = 'scripts.ActorEvents_307'; Iq.__super__ = u; Iq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Iq }); var Jq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_309'] = Jq; Jq.__name__ = 'scripts.ActorEvents_309'; Jq.__super__ = u; Jq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Jq }); var Kq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_311'] = Kq; Kq.__name__ = 'scripts.ActorEvents_311'; Kq.__super__ = u; Kq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Kq }); var Lq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_313'] = Lq; Lq.__name__ = 'scripts.ActorEvents_313'; Lq.__super__ = u; Lq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Lq }); var Mq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_315'] = Mq; Mq.__name__ = 'scripts.ActorEvents_315'; Mq.__super__ = u; Mq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Mq }); var Nq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_317'] = Nq; Nq.__name__ = 'scripts.ActorEvents_317'; Nq.__super__ = u; Nq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Nq }); var Oq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_319'] = Oq; Oq.__name__ = 'scripts.ActorEvents_319'; Oq.__super__ = u; Oq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Oq }); var Pq = function (a, b, c) { u.call(this, b); this.nameMap.h['Ground Check'] = '_GroundCheck'; this._GroundCheck = !1; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['On Ground'] = '_OnGround'; this._OnGround = !1; this.nameMap.h['Can Make Noise'] = '_CanMakeNoise'; this._CanMakeNoise = !1; this.nameMap.h['Platform Check'] = '_PlatformCheck'; this._PlatformCheck = !1; this.nameMap.h['Platform Pos X'] = '_PlatformPosX'; this._PlatformPosX = 0; this.nameMap.h['Platform Release Delay'] = '_PlatformReleaseDelay'; this._PlatformReleaseDelay = 0; this.nameMap.h['Current Platform'] = '_CurrentPlatform'; this.nameMap.h['On Platform'] = '_OnPlatform'; this._OnPlatform = !1; }; h['scripts.ActorEvents_32'] = Pq; Pq.__name__ = 'scripts.ActorEvents_32'; Pq.__super__ = u; Pq.prototype = r(u.prototype, { _GroundCheck: null, _GravitySpeed: null, _OnGround: null, _CanMakeNoise: null, _PlatformCheck: null, _PlatformPosX: null, _PlatformReleaseDelay: null, _CurrentPlatform: null, _OnPlatform: null, init: function () {}, forwardMessage: function (a) {}, __class__: Pq }); var Qq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_321'] = Qq; Qq.__name__ = 'scripts.ActorEvents_321'; Qq.__super__ = u; Qq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Qq }); var Rq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_323'] = Rq; Rq.__name__ = 'scripts.ActorEvents_323'; Rq.__super__ = u; Rq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Rq }); var Sq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_325'] = Sq; Sq.__name__ = 'scripts.ActorEvents_325'; Sq.__super__ = u; Sq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Sq }); var Tq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_327'] = Tq; Tq.__name__ = 'scripts.ActorEvents_327'; Tq.__super__ = u; Tq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Tq }); var Uq = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_329'] = Uq; Uq.__name__ = 'scripts.ActorEvents_329'; Uq.__super__ = u; Uq.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c.getY() != this.actor.getY() || c == this.actor || (this._First = !1); } if (this._First) { this._RightScrollLimit = Math.max(760, d.getScreenWidth() + 64); if (this.actor.getWidth() < this._RightScrollLimit) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActor( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), 2 ), (this._TotalLength += this.actor.getWidth()); this.actor.getScreenY() + this.actor.getHeight() < d.getScreenHeight() && d.createRecycledActor( d.getActorType(329), this.actor.getX(), this.actor.getY() + this.actor.getHeight(), 2 ); } }, forwardMessage: function (a) {}, __class__: Uq }); var Vq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_331'] = Vq; Vq.__name__ = 'scripts.ActorEvents_331'; Vq.__super__ = u; Vq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Vq }); var Wq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_333'] = Wq; Wq.__name__ = 'scripts.ActorEvents_333'; Wq.__super__ = u; Wq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Wq }); var Xq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_335'] = Xq; Xq.__name__ = 'scripts.ActorEvents_335'; Xq.__super__ = u; Xq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Xq }); var Yq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_337'] = Yq; Yq.__name__ = 'scripts.ActorEvents_337'; Yq.__super__ = u; Yq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Yq }); var Zq = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_339'] = Zq; Zq.__name__ = 'scripts.ActorEvents_339'; Zq.__super__ = u; Zq.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Zq }); var $q = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_34'] = $q; $q.__name__ = 'scripts.ActorEvents_34'; $q.__super__ = u; $q.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: $q }); var ar = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_341'] = ar; ar.__name__ = 'scripts.ActorEvents_341'; ar.__super__ = u; ar.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: ar }); var br = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_343'] = br; br.__name__ = 'scripts.ActorEvents_343'; br.__super__ = u; br.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: br }); var cr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_345'] = cr; cr.__name__ = 'scripts.ActorEvents_345'; cr.__super__ = u; cr.prototype = r(u.prototype, { _event_Updating: function (a) { this.wrapper.enabled && (k.engine.getGameAttribute('MOBILE MODE') && 'Normal' == this.actor.getAnimation() ? this.actor.setAnimation('NormalC') : k.engine.getGameAttribute('MOBILE MODE') || 'NormalC' != this.actor.getAnimation() || this.actor.setAnimation('Normal'), k.engine.getGameAttribute('MOBILE MODE') && 'Off' == this.actor.getAnimation() ? this.actor.setAnimation('OffC') : k.engine.getGameAttribute('MOBILE MODE') || 'OffC' != this.actor.getAnimation() || this.actor.setAnimation('Off')); }, init: function () { d.createRecycledActorOnLayer( d.getActorType(550), this.actor.getX(), this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: cr }); var dr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_347'] = dr; dr.__name__ = 'scripts.ActorEvents_347'; dr.__super__ = u; dr.prototype = r(u.prototype, { _event_Updating: function (a) { this.wrapper.enabled && (k.engine.getGameAttribute('MOBILE MODE') && 'Normal' == this.actor.getAnimation() ? this.actor.setAnimation('NormalC') : k.engine.getGameAttribute('MOBILE MODE') || 'NormalC' != this.actor.getAnimation() || this.actor.setAnimation('Normal'), k.engine.getGameAttribute('MOBILE MODE') && 'Off' == this.actor.getAnimation() ? this.actor.setAnimation('OffC') : k.engine.getGameAttribute('MOBILE MODE') || 'OffC' != this.actor.getAnimation() || this.actor.setAnimation('Off')); }, init: function () { d.createRecycledActorOnLayer( d.getActorType(550), this.actor.getX(), this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: dr }); var er = function (a, b, c) { u.call(this, b); this.nameMap.h['Direction RN'] = '_DirectionRN'; this._DirectionRN = 0; this.nameMap.h.Got = '_Got'; this._Got = !1; }; h['scripts.ActorEvents_349'] = er; er.__name__ = 'scripts.ActorEvents_349'; er.__super__ = u; er.prototype = r(u.prototype, { _DirectionRN: null, _Got: null, _event_HitsDude: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorType(2); var e = a.otherActor.getType(), f = a.otherActor.getGroup(); c = c == e || c == f; } else c = !1; c && !this._Got && ((this._Got = !0), d.createRecycledActor(d.getActorType(14), 0, 0, 0), a.otherActor.setValue('Dude Logic', '_StarCollected', !0), d.setValueForScene('Stage Logic', '_RumbleName', 'Star'), d.sayToScene('Stage Logic', '_customEvent_rumble'), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(351)), d.runLater( 100, function (a) { d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Star'); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Star'); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, 32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Star'); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, 32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Star'); d.recycleActor(b.actor); }, this.actor )); }, init: function () { if (!k.engine.getGameAttribute('Timer Mode')) { var a = k.engine.getGameAttribute('Stars List'), b = d.getCurrentSceneName().split(' ')[1]; (X.contains( a, null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b)) ) || k.engine.getGameAttribute('Star Collected')) && d.recycleActor(this.actor); } this.addListener(this.actor.whenCollided, q(this, this._event_HitsDude)); }, forwardMessage: function (a) {}, __class__: er }); var fr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_353'] = fr; fr.__name__ = 'scripts.ActorEvents_353'; fr.__super__ = u; fr.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: fr }); var gr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_355'] = gr; gr.__name__ = 'scripts.ActorEvents_355'; gr.__super__ = u; gr.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: gr }); var hr = function (a, b, c) { u.call(this, b); this.nameMap.h.Springing = '_Springing'; this._Springing = !1; this.nameMap.h['Facing Left'] = '_FacingLeft'; this._FacingLeft = !1; }; h['scripts.ActorEvents_359'] = hr; hr.__name__ = 'scripts.ActorEvents_359'; hr.__super__ = u; hr.prototype = r(u.prototype, { _Springing: null, _FacingLeft: null, _event_HitsDude: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorType(2); var e = a.otherActor.getType(), f = a.otherActor.getGroup(); c = c == e || c == f; } else c = !1; c && a.thisFromTop && !this._Springing && ('Left' == this.actor.getAnimation() && (this._FacingLeft = !0), (this._Springing = !0), a.otherActor.setYVelocity(-72), this._FacingLeft ? this.actor.setAnimation('Springing Left') : this.actor.setAnimation('Springing Right'), a.otherActor.setValue('Dude Logic', '_Springing', !0), a.otherActor.setValue('Dude Logic', '_CanDoubleJump', !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(220)), d.runLater( 200, function (a) { b._FacingLeft ? b.actor.setAnimation('Left') : b.actor.setAnimation('Right'); b._Springing = !1; }, this.actor )); }, init: function () { var a = this; this.actor.makeAlwaysSimulate(); d.runLater( 310, function (b) { d.startShakingScreen(0.01, 0.2); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(105)); d.runLater(150, function (a) {}, a.actor); d.createRecycledActorOnLayer( d.getActorType(94), a.actor.getXCenter() - 8, a.actor.getY() + a.actor.getHeight() - 8, d.engine.getLayerById(a.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), a.actor.getX() - 8, a.actor.getY() + a.actor.getHeight() - 8, d.engine.getLayerById(a.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), a.actor.getX() + a.actor.getWidth() - 8, a.actor.getY() + a.actor.getHeight() - 8, d.engine.getLayerById(a.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); }, this.actor ); this.addListener(this.actor.whenCollided, q(this, this._event_HitsDude)); }, forwardMessage: function (a) {}, __class__: hr }); var ir = function (a, b, c) { u.call(this, b); this.nameMap.h['Flash On'] = '_FlashOn'; this._FlashOn = !1; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h.Flash = '_Flash'; this._Flash = !1; }; h['scripts.ActorEvents_361'] = ir; ir.__name__ = 'scripts.ActorEvents_361'; ir.__super__ = u; ir.prototype = r(u.prototype, { _FlashOn: null, _GravitySpeed: null, _Flash: null, _event_Updating: function (a) { this.wrapper.enabled && this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)); }, _event_ExitsScene: function (a, b, c, e) { this.wrapper.enabled && e && d.recycleActor(this.actor); }, _event_EveryNsecs: function (a) { this.wrapper.enabled && this._Flash && (this._FlashOn ? ((this._FlashOn = !1), this.actor.enableActorDrawing()) : ((this._FlashOn = !0), this.actor.disableActorDrawing())); }, init: function () { var a = this; this.actor.makeAlwaysSimulate(); this._GravitySpeed = 22; d.runLater( 600, function (b) { a._Flash = !0; }, this.actor ); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenPositionStateChanged, q(this, this._event_ExitsScene)); d.runPeriodically(50, q(this, this._event_EveryNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: ir }); var jr = function (a, b, c) { u.call(this, b); this.nameMap.h['Flash On'] = '_FlashOn'; this._FlashOn = !1; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h.Flash = '_Flash'; this._Flash = !1; }; h['scripts.ActorEvents_363'] = jr; jr.__name__ = 'scripts.ActorEvents_363'; jr.__super__ = u; jr.prototype = r(u.prototype, { _FlashOn: null, _GravitySpeed: null, _Flash: null, _event_Updating: function (a) { this.wrapper.enabled && this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)); }, _event_ExitsScene: function (a, b, c, e) { this.wrapper.enabled && e && d.recycleActor(this.actor); }, _event_EveryNsecs: function (a) { this.wrapper.enabled && this._Flash && (this._FlashOn ? ((this._FlashOn = !1), this.actor.enableActorDrawing()) : ((this._FlashOn = !0), this.actor.disableActorDrawing())); }, init: function () { var a = this; this.actor.makeAlwaysSimulate(); this._GravitySpeed = 22; d.runLater( 600, function (b) { a._Flash = !0; }, this.actor ); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenPositionStateChanged, q(this, this._event_ExitsScene)); d.runPeriodically(50, q(this, this._event_EveryNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: jr }); var kr = function (a, b, c) { u.call(this, b); this.nameMap.h['Flash On'] = '_FlashOn'; this._FlashOn = !1; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h.Flash = '_Flash'; this._Flash = !1; }; h['scripts.ActorEvents_365'] = kr; kr.__name__ = 'scripts.ActorEvents_365'; kr.__super__ = u; kr.prototype = r(u.prototype, { _FlashOn: null, _GravitySpeed: null, _Flash: null, _event_Updating: function (a) { this.wrapper.enabled && this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)); }, _event_ExitsScene: function (a, b, c, e) { this.wrapper.enabled && e && d.recycleActor(this.actor); }, _event_EveryNsecs: function (a) { this.wrapper.enabled && this._Flash && (this._FlashOn ? ((this._FlashOn = !1), this.actor.enableActorDrawing()) : ((this._FlashOn = !0), this.actor.disableActorDrawing())); }, init: function () { var a = this; this.actor.makeAlwaysSimulate(); this._GravitySpeed = 22; d.runLater( 600, function (b) { a._Flash = !0; }, this.actor ); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenPositionStateChanged, q(this, this._event_ExitsScene)); d.runPeriodically(50, q(this, this._event_EveryNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: kr }); var lr = function (a, b, c) { u.call(this, b); this.nameMap.h['Ground Check'] = '_GroundCheck'; this._GroundCheck = !1; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['On Ground'] = '_OnGround'; this._OnGround = !1; this.nameMap.h['Can Make Noise'] = '_CanMakeNoise'; this._CanMakeNoise = !1; }; h['scripts.ActorEvents_379'] = lr; lr.__name__ = 'scripts.ActorEvents_379'; lr.__super__ = u; lr.prototype = r(u.prototype, { _GroundCheck: null, _GravitySpeed: null, _OnGround: null, _CanMakeNoise: null, _event_Updating: function (a) { this.wrapper.enabled && (this._GroundCheck ? this._OnGround || ((this._OnGround = !0), this._CanMakeNoise ? k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(117)) : (this._CanMakeNoise = !0)) : this._OnGround && (this._OnGround = !1), (this._GroundCheck = !1), this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)), 0 < this.actor.getXVelocity() ? this.actor.setXVelocity(Math.max(0, this.actor.getXVelocity() - 1)) : 0 > this.actor.getXVelocity() && this.actor.setXVelocity(Math.min(0, this.actor.getXVelocity() + 1))); }, _event_HitsGround: function (a) { if (this.wrapper.enabled) { var b = d.getActorGroup(1); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && a.thisFromBottom && (this._GroundCheck = !0); }, init: function () { this.actor.makeAlwaysSimulate(); this._GravitySpeed = 48; this._GroundCheck = this._OnGround = !0; this._CanMakeNoise = !1; this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsGround)); }, forwardMessage: function (a) {}, __class__: lr }); var mr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_38'] = mr; mr.__name__ = 'scripts.ActorEvents_38'; mr.__super__ = u; mr.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: mr }); var nr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_381'] = nr; nr.__name__ = 'scripts.ActorEvents_381'; nr.__super__ = u; nr.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: nr }); var or = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_383'] = or; or.__name__ = 'scripts.ActorEvents_383'; or.__super__ = u; or.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: or }); var pr = function (a, b, c) { u.call(this, b); this.nameMap.h.Springing = '_Springing'; this._Springing = !1; this.nameMap.h['Facing Left'] = '_FacingLeft'; this._FacingLeft = !1; }; h['scripts.ActorEvents_385'] = pr; pr.__name__ = 'scripts.ActorEvents_385'; pr.__super__ = u; pr.prototype = r(u.prototype, { _Springing: null, _FacingLeft: null, _event_Updating: function (a) { this.wrapper.enabled && 'Start' == this.actor.getAnimation() && 4 == this.actor.getCurrentFrame() && this.actor.setAnimation('Normal'); }, _event_HitsDude: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorType(2); var e = a.otherActor.getType(), f = a.otherActor.getGroup(); c = c == e || c == f; } else c = !1; c && a.thisFromTop && !this._Springing && ('Left' == this.actor.getAnimation() && (this._FacingLeft = !0), (this._Springing = !0), a.otherActor.setYVelocity(-72), this.actor.setAnimation('Springing'), a.otherActor.setValue('Dude Logic', '_Springing', !0), a.otherActor.setValue('Dude Logic', '_CanDoubleJump', !0), d.runLater(150, function (a) {}, this.actor), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(220)), d.runLater( 200, function (a) { b.actor.setAnimation('Normal'); b._Springing = !1; }, this.actor )); }, init: function () { var a = this; this.actor.makeAlwaysSimulate(); d.runLater( 700, function (b) { d.createRecycledActorOnLayer( d.getActorType(28), a.actor.getXCenter() - 16, a.actor.getYCenter() - 16, d.engine.getLayerById(a.actor.getLayerID()) ); d.getLastCreatedActor().moveToBottom(); d.getLastCreatedActor().moveBy(0, -192, 0.6, J.backOut); }, this.actor ); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsDude)); }, forwardMessage: function (a) {}, __class__: pr }); var qr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_389'] = qr; qr.__name__ = 'scripts.ActorEvents_389'; qr.__super__ = u; qr.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: qr }); var rr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_391'] = rr; rr.__name__ = 'scripts.ActorEvents_391'; rr.__super__ = u; rr.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: rr }); var sr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_393'] = sr; sr.__name__ = 'scripts.ActorEvents_393'; sr.__super__ = u; sr.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: sr }); var tr = function (a, b, c) { u.call(this, b); this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['Times Up'] = '_TimesUp'; this._TimesUp = !1; }; h['scripts.ActorEvents_395'] = tr; tr.__name__ = 'scripts.ActorEvents_395'; tr.__super__ = u; tr.prototype = r(u.prototype, { _GravitySpeed: null, _TimesUp: null, _event_HitsGround: function (a) { if (this.wrapper.enabled) { var b = d.getActorGroup(1); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && (this._TimesUp ? (k.engine.getGameAttribute('Sound Disabled') || (this.actor.isOnScreen() && d.playSound(d.getSound(221))), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-16, -16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(16, -16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-16, 16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(16, 16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.recycleActor(this.actor)) : a.thisFromBottom && (k.engine.getGameAttribute('Sound Disabled') || (0 <= this.actor.getYVelocity() && this.actor.isOnScreen() && d.playSound(d.getSound(220))), this.actor.setYVelocity(d.randomInt(-50, -64)))); }, _event_AfterNsecs: function (a) { this.wrapper.enabled && (this._TimesUp = !0); }, _event_EveryNsecs: function (a) { this.wrapper.enabled && this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)); }, init: function () { this.actor.makeAlwaysSimulate(); this._GravitySpeed = d.randomInt(28, 48); this.actor.setAnimation('' + d.randomInt(1, 6)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsGround)); d.runLater( 1e3 * (d.randomInt(50, 150) / 100), q(this, this._event_AfterNsecs), this.actor ); d.runPeriodically(10, q(this, this._event_EveryNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: tr }); var ur = function (a, b, c) { u.call(this, b); this.nameMap.h.Springing = '_Springing'; this._Springing = !1; this.nameMap.h['Facing Left'] = '_FacingLeft'; this._FacingLeft = !1; }; h['scripts.ActorEvents_397'] = ur; ur.__name__ = 'scripts.ActorEvents_397'; ur.__super__ = u; ur.prototype = r(u.prototype, { _Springing: null, _FacingLeft: null, init: function () { var a = this; this.actor.makeAlwaysSimulate(); d.createRecycledActorOnLayer( d.getActorType(399), this.actor.getX(), this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveToBottom(); d.createRecycledActorOnLayer( d.getActorType(62), this.actor.getXCenter() - 16, this.actor.getY() + this.actor.getHeight() - 32, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveToBottom(); d.runLater( 700, function (b) { d.createRecycledActorOnLayer( d.getActorType(28), a.actor.getXCenter() - 16, a.actor.getYCenter() - 16, d.engine.getLayerById(a.actor.getLayerID()) ); d.getLastCreatedActor().moveToBottom(); d.getLastCreatedActor().moveBy(0, -128, 0.6, J.backOut); b = 0; for (var c = d.getActorsOfType(d.getActorType(399)); b < c.length; ) { var e = c[b]; ++b; null == e || e.dead || e.recycled || e.moveToBottom(); } }, this.actor ); }, forwardMessage: function (a) {}, __class__: ur }); var vr = function (a, b, c) { u.call(this, b); this.nameMap.h.Springing = '_Springing'; this._Springing = !1; this.nameMap.h['Facing Left'] = '_FacingLeft'; this._FacingLeft = !1; }; h['scripts.ActorEvents_399'] = vr; vr.__name__ = 'scripts.ActorEvents_399'; vr.__super__ = u; vr.prototype = r(u.prototype, { _Springing: null, _FacingLeft: null, init: function () {}, forwardMessage: function (a) {}, __class__: vr }); var wr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_40'] = wr; wr.__name__ = 'scripts.ActorEvents_40'; wr.__super__ = u; wr.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: wr }); var xr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_401'] = xr; xr.__name__ = 'scripts.ActorEvents_401'; xr.__super__ = u; xr.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: xr }); var yr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_403'] = yr; yr.__name__ = 'scripts.ActorEvents_403'; yr.__super__ = u; yr.prototype = r(u.prototype, { _event_Updating: function (a) { if (this.wrapper.enabled && 5 == this.actor.getCurrentFrame()) { for (a = 0; 6 > a; ) a++, d.createRecycledActor( d.getActorType(94), d.randomInt( (this.actor.getXCenter() - 32) | 0, (this.actor.getXCenter() + 32) | 0 ) - 8, d.randomInt( (this.actor.getYCenter() - 32) | 0, (this.actor.getYCenter() + 32) | 0 ) - 8, 0 ), d.getLastCreatedActor().setAnimation('Smoke'); d.recycleActor(this.actor); } }, init: function () { this.actor.makeAlwaysSimulate(); d.createRecycledActorOnLayer( d.getActorType(408), this.actor.getXCenter() - 48, this.actor.getYCenter() - 48, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(0, -96, 0.6, J.backOut); d.createRecycledActorOnLayer( d.getActorType(408), this.actor.getXCenter() - 48, this.actor.getYCenter() - 48, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(0, 96, 0.6, J.backOut); d.createRecycledActorOnLayer( d.getActorType(408), this.actor.getXCenter() - 48, this.actor.getYCenter() - 48, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-96, 0, 0.6, J.backOut); d.createRecycledActorOnLayer( d.getActorType(408), this.actor.getXCenter() - 48, this.actor.getYCenter() - 48, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(96, 0, 0.6, J.backOut); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: yr }); var zr = function (a, b, c) { u.call(this, b); this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['Times Up'] = '_TimesUp'; this._TimesUp = !1; }; h['scripts.ActorEvents_406'] = zr; zr.__name__ = 'scripts.ActorEvents_406'; zr.__super__ = u; zr.prototype = r(u.prototype, { _GravitySpeed: null, _TimesUp: null, _event_HitsGround: function (a) { if (this.wrapper.enabled) { var b = d.getActorGroup(1); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && (this._TimesUp ? (d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-16, -16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(16, -16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-16, 16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(16, 16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.recycleActor(this.actor)) : a.thisFromBottom && (k.engine.getGameAttribute('Sound Disabled') || (0 <= this.actor.getYVelocity() && this.actor.isOnScreen() && d.playSound(d.getSound(414))), this.actor.setYVelocity(d.randomInt(-50, -64)))); }, _event_AfterNsecs: function (a) { this.wrapper.enabled && (this._TimesUp = !0); }, _event_EveryNsecs: function (a) { this.wrapper.enabled && this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)); }, _event_EveryNsecs2: function (a) { this.wrapper.enabled && (d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), d.getLastCreatedActor().setAnimation('Smoke')); }, init: function () { this.actor.makeAlwaysSimulate(); this._GravitySpeed = d.randomInt(28, 48); this.actor.setAnimation('' + d.randomInt(1, 6)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsGround)); d.runLater(1e3, q(this, this._event_AfterNsecs), this.actor); d.runPeriodically(10, q(this, this._event_EveryNsecs), this.actor); d.runPeriodically(200, q(this, this._event_EveryNsecs2), this.actor); }, forwardMessage: function (a) {}, __class__: zr }); var Ar = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_408'] = Ar; Ar.__name__ = 'scripts.ActorEvents_408'; Ar.__super__ = u; Ar.prototype = r(u.prototype, { _event_Updating: function (a) { this.wrapper.enabled && 5 == this.actor.getCurrentFrame() && (d.createRecycledActor( d.getActorType(94), d.randomInt((this.actor.getXCenter() - 32) | 0, (this.actor.getXCenter() + 32) | 0) - 8, d.randomInt((this.actor.getYCenter() - 32) | 0, (this.actor.getYCenter() + 32) | 0) - 8, 0 ), d.getLastCreatedActor().setAnimation('Smoke'), d.createRecycledActor( d.getActorType(94), d.randomInt((this.actor.getXCenter() - 32) | 0, (this.actor.getXCenter() + 32) | 0) - 8, d.randomInt((this.actor.getYCenter() - 32) | 0, (this.actor.getYCenter() + 32) | 0) - 8, 0 ), d.getLastCreatedActor().setAnimation('Smoke'), d.createRecycledActor( d.getActorType(94), d.randomInt((this.actor.getXCenter() - 32) | 0, (this.actor.getXCenter() + 32) | 0) - 8, d.randomInt((this.actor.getYCenter() - 32) | 0, (this.actor.getYCenter() + 32) | 0) - 8, 0 ), d.getLastCreatedActor().setAnimation('Smoke'), d.createRecycledActor( d.getActorType(94), d.randomInt((this.actor.getXCenter() - 32) | 0, (this.actor.getXCenter() + 32) | 0) - 8, d.randomInt((this.actor.getYCenter() - 32) | 0, (this.actor.getYCenter() + 32) | 0) - 8, 0 ), d.getLastCreatedActor().setAnimation('Smoke'), d.recycleActor(this.actor)); }, init: function () { this.actor.makeAlwaysSimulate(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Ar }); var Br = function (a, b, c) { u.call(this, b); this.nameMap.h.Springing = '_Springing'; this._Springing = !1; }; h['scripts.ActorEvents_410'] = Br; Br.__name__ = 'scripts.ActorEvents_410'; Br.__super__ = u; Br.prototype = r(u.prototype, { _Springing: null, _event_HitsDude: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorType(2); var e = a.otherActor.getType(), f = a.otherActor.getGroup(); c = c == e || c == f; } else c = !1; c && (a.otherActor.setYVelocity(-56), this._Springing || ((this._Springing = !0), a.otherActor.setValue('Dude Logic', '_Springing', !0), a.otherActor.setValue('Dude Logic', '_CanDoubleJump', !0), this.actor.setFilter([d.createBrightnessFilter(100)]), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(412)), d.setValueForScene('Stage Logic', '_RumbleName', 'Balloon'), d.sayToScene('Stage Logic', '_customEvent_rumble'), d.runLater( 100, function (a) { d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-16, -16, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Small'); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(16, -16, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Small'); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-16, 16, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Small'); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(16, 16, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Small'); b.actor.setAnimation('Hidden'); b.actor.clearFilters(); d.runLater( 100, function (a) { b._Springing = !1; d.runLater( 2e3, function (a) { b.actor.setAnimation('Appear'); }, b.actor ); }, b.actor ); }, this.actor ))); }, _event_Updating: function (a) { this.wrapper.enabled && 'Appear' == this.actor.getAnimation() && 5 == this.actor.getCurrentFrame() && this.actor.setAnimation('Normal'); }, init: function () { this.addListener(this.actor.whenCollided, q(this, this._event_HitsDude)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Br }); var Cr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_417'] = Cr; Cr.__name__ = 'scripts.ActorEvents_417'; Cr.__super__ = u; Cr.prototype = r(u.prototype, { init: function () { this.actor.disableActorDrawing(); }, forwardMessage: function (a) {}, __class__: Cr }); var Dr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_419'] = Dr; Dr.__name__ = 'scripts.ActorEvents_419'; Dr.__super__ = u; Dr.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Dr }); var Er = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_42'] = Er; Er.__name__ = 'scripts.ActorEvents_42'; Er.__super__ = u; Er.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Er }); var Fr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_421'] = Fr; Fr.__name__ = 'scripts.ActorEvents_421'; Fr.__super__ = u; Fr.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Fr }); var Gr = function (a, b, c) { u.call(this, b); this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['Times Up'] = '_TimesUp'; this._TimesUp = !1; }; h['scripts.ActorEvents_425'] = Gr; Gr.__name__ = 'scripts.ActorEvents_425'; Gr.__super__ = u; Gr.prototype = r(u.prototype, { _GravitySpeed: null, _TimesUp: null, _event_HitsGround: function (a) { if (this.wrapper.enabled) { var b = d.getActorGroup(1); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && (this._TimesUp ? (k.engine.getGameAttribute('Sound Disabled') || (this.actor.isOnScreen() && d.playSound(d.getSound(429))), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-16, -16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(16, -16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-16, 16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(16, 16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.recycleActor(this.actor)) : a.thisFromBottom && (k.engine.getGameAttribute('Sound Disabled') || (0 <= this.actor.getYVelocity() && this.actor.isOnScreen() && d.playSound(d.getSound(429))), this.actor.setYVelocity(d.randomInt(-50, -64)))); }, _event_AfterNsecs: function (a) { this.wrapper.enabled && (this._TimesUp = !0); }, _event_EveryNsecs: function (a) { this.wrapper.enabled && this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)); }, init: function () { this.actor.makeAlwaysSimulate(); this._GravitySpeed = d.randomInt(28, 48); this.actor.setAnimation('' + d.randomInt(1, 4)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsGround)); d.runLater( 1e3 * (d.randomInt(100, 300) / 100), q(this, this._event_AfterNsecs), this.actor ); d.runPeriodically(10, q(this, this._event_EveryNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: Gr }); var Hr = function (a, b, c) { u.call(this, b); this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['Times Up'] = '_TimesUp'; this._TimesUp = !1; }; h['scripts.ActorEvents_427'] = Hr; Hr.__name__ = 'scripts.ActorEvents_427'; Hr.__super__ = u; Hr.prototype = r(u.prototype, { _GravitySpeed: null, _TimesUp: null, _event_HitsGround: function (a) { if (this.wrapper.enabled) { var b = d.getActorGroup(1); var c = a.otherActor.getType(); a = a.otherActor.getGroup(); b = b == c || b == a; } else b = !1; b && (k.engine.getGameAttribute('Sound Disabled') || (this.actor.isOnScreen() && d.playSound(d.getSound(221))), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-16, -16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Booze'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(16, -16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Booze'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-16, 16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Booze'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(16, 16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Booze'), d.recycleActor(this.actor)); }, _event_EveryNsecs: function (a) { this.wrapper.enabled && this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)); }, init: function () { this.actor.makeAlwaysSimulate(); this._GravitySpeed = d.randomInt(28, 48); this.actor.setAnimation('' + d.randomInt(1, 2)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsGround)); d.runPeriodically(10, q(this, this._event_EveryNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: Hr }); var Ir = function (a, b, c) { u.call(this, b); this.nameMap.h.Sweat = '_Sweat'; this._Sweat = !1; this.nameMap.h.Sleep = '_Sleep'; this._Sleep = !1; this.nameMap.h['Snooze Z List'] = '_SnoozeZList'; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h.Exclamation = '_Exclamation'; this.nameMap.h['No Gravity'] = '_NoGravity'; this._NoGravity = !1; this.nameMap.h.Jumping = '_Jumping'; this._Jumping = !1; this.nameMap.h.Snore = '_Snore'; this._Snore = !1; this.nameMap.h.Shadow = '_Shadow'; this.nameMap.h.Ending = '_Ending'; this._Ending = !1; this.nameMap.h['Ending Stopped'] = '_EndingStopped'; this._EndingStopped = !1; this.nameMap.h['Possum Sprite'] = '_PossumSprite'; }; h['scripts.ActorEvents_431'] = Ir; Ir.__name__ = 'scripts.ActorEvents_431'; Ir.__super__ = u; Ir.prototype = r(u.prototype, { _Sweat: null, _Sleep: null, _SnoozeZList: null, _GravitySpeed: null, _Exclamation: null, _NoGravity: null, _Jumping: null, _Snore: null, _Shadow: null, _Ending: null, _EndingStopped: null, _PossumSprite: null, _event_Updating: function (a) { if (this.wrapper.enabled) { if ( !this._EndingStopped && this._Ending && this.actor.getXCenter() >= d.getSceneWidth() - 640 ) { this._EndingStopped = !0; this.actor.setXVelocity(0); a = 0; for (var b = d.getActorsOfType(d.getActorType(433)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (c.setXVelocity(0), c.setValue('Cutscene Baby Logic', '_Stop', !0)); } a = 0; for (b = d.getActorsOfType(d.getActorType(514)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.shout('_customEvent_Up'); this.actor.setAnimation('Look Up'); } k.engine.getGameAttribute('Possum Mode') ? ((a = this._PossumSprite), (a = d.isPrimitive(a) ? !0 : 'string' == typeof a ? '' != x.__cast(a, String) : null != a)) : (a = !1); a && (this._PossumSprite.setX(this.actor.getX()), this._PossumSprite.setY(this.actor.getY() - 2), this._PossumSprite.getAnimation() != this.actor.getAnimation() && this._PossumSprite.setAnimation(this.actor.getAnimation())); } }, _event_Sweat: function (a) { this.wrapper.enabled && (this._Sweat || ('Intro Cutscene' != d.getCurrentSceneName() && 'Ending' != d.getCurrentSceneName())) && (0 < this.actor.getXVelocity() ? (d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 4, this.actor.getY() + 4, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-16, -16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Sweat')) : 0 > this.actor.getXVelocity() && (d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 4, this.actor.getY() + 4, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(16, -16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Sweat'))); }, _event_Sleeping: function (a) { this.wrapper.enabled && 'Sleep' == this.actor.getAnimation() && (d.createRecycledActor( d.getActorType(127), this.actor.getXCenter() - 12, this.actor.getY(), 0 ), this._SnoozeZList.push(d.getLastCreatedActor()), this._Snore ? (this._Snore = !1) : ((this._Snore = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(454)))); }, _event_ActorGroup: function (a) { if (this.wrapper.enabled) { var b = d.getActorGroup(1); var c = a.otherActor.getType(); a = a.otherActor.getGroup(); b = b == c || b == a; } else b = !1; b && 0 < this.actor.getYVelocity() && this._Jumping && ((this._Jumping = !1), this.actor.setAnimation('Walk Right'), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(117)), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut)); }, _event_SnoozeZKilled: function (a) { this.wrapper.enabled && X.contains(this._SnoozeZList, a) && A.remove(this._SnoozeZList, a); }, _event_Gravity: function (a) { this.wrapper.enabled && (this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)), 'Cave Cutscene' == d.getCurrentSceneName() && 0 < this.actor.getYVelocity() && 'Fall Right' != this.actor.getAnimation() && this.actor.setAnimation('Fall Right')); }, _customEvent_Sleep: function () { this.actor.setAnimation('Sleep'); this._Sleep = !0; }, _customEvent_Wake: function () { var a = this; this._Sleep = !1; this.actor.setYVelocity(-20); this.actor.setAnimation('Idle Right'); d.createRecycledActor( d.getActorType(131), this.actor.getXCenter() - 14, this.actor.getY() - 28, 0 ); this._Exclamation = d.getLastCreatedActor(); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(181)); d.runLater( 600, function (b) { a._Sweat = !0; a.actor.setYVelocity(-20); a.actor.setAnimation('Idle Left'); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(181)); }, this.actor ); d.runLater( 1200, function (b) { a.actor.setYVelocity(-20); a.actor.setAnimation('Idle Right'); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(181)); }, this.actor ); d.runLater( 1800, function (b) { d.recycleActor(a._Exclamation); a.actor.setAnimation('Walk Right'); a.actor.setXVelocity(30); d.runLater( 200, function (b) { a.actor.setYVelocity(-46); a._Jumping = !0; k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(109)); }, a.actor ); }, this.actor ); }, init: function () { this.actor.makeAlwaysSimulate(); this._SnoozeZList = []; this._GravitySpeed = 48; k.engine.getGameAttribute('Possum Mode') && (d.createRecycledActorOnLayer( d.getActorType(537), this.actor.getX(), this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), (this._PossumSprite = d.getLastCreatedActor()), this.actor.disableActorDrawing()); 'Ending' == d.getCurrentSceneName() && ((this._Ending = !0), this.actor.setXVelocity(12), this.actor.setAnimation('Walk Right')); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); d.runPeriodically(500, q(this, this._event_Sweat), this.actor); d.runPeriodically(700, q(this, this._event_Sleeping), this.actor); this.addListener(this.actor.whenCollided, q(this, this._event_ActorGroup)); this.addListenerWithKey( d.engine.whenTypeGroupKilledEvents, d.getActorType(127), q(this, this._event_SnoozeZKilled) ); this.addListener(this.actor.whenUpdated, q(this, this._event_Gravity)); }, forwardMessage: function (a) {}, __class__: Ir }); var Jr = function (a, b, c) { u.call(this, b); this.nameMap.h.Bounce = '_Bounce'; this._Bounce = !1; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['Back and Forth'] = '_BackandForth'; this._BackandForth = !1; }; h['scripts.ActorEvents_433'] = Jr; Jr.__name__ = 'scripts.ActorEvents_433'; Jr.__super__ = u; Jr.prototype = r(u.prototype, { _Bounce: null, _GravitySpeed: null, _BackandForth: null, init: function () {}, forwardMessage: function (a) {}, __class__: Jr }); var Kr = function (a, b, c) { u.call(this, b); this.nameMap.h.Hidden = '_Hidden'; this._Hidden = !1; }; h['scripts.ActorEvents_435'] = Kr; Kr.__name__ = 'scripts.ActorEvents_435'; Kr.__super__ = u; Kr.prototype = r(u.prototype, { _Hidden: null, init: function () {}, forwardMessage: function (a) {}, __class__: Kr }); var Lr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_437'] = Lr; Lr.__name__ = 'scripts.ActorEvents_437'; Lr.__super__ = u; Lr.prototype = r(u.prototype, { init: function () { this.actor.makeAlwaysSimulate(); ba.setScale('width', d.getScreenWidth() + 10, this.actor); ba.setScale('height', d.getScreenHeight() / 2 + 5, this.actor); }, forwardMessage: function (a) {}, __class__: Lr }); var Mr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_439'] = Mr; Mr.__name__ = 'scripts.ActorEvents_439'; Mr.__super__ = u; Mr.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Mr }); var Nr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_44'] = Nr; Nr.__name__ = 'scripts.ActorEvents_44'; Nr.__super__ = u; Nr.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Nr }); var Or = function (a, b, c) { u.call(this, b); this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; }; h['scripts.ActorEvents_443'] = Or; Or.__name__ = 'scripts.ActorEvents_443'; Or.__super__ = u; Or.prototype = r(u.prototype, { _GravitySpeed: null, _event_Updating: function (a) { this.wrapper.enabled && this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)); }, init: function () { this.actor.makeAlwaysSimulate(); this._GravitySpeed = 48; this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Or }); var Pr = function (a, b, c) { u.call(this, b); this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h.Bounce = '_Bounce'; this._Bounce = !1; }; h['scripts.ActorEvents_445'] = Pr; Pr.__name__ = 'scripts.ActorEvents_445'; Pr.__super__ = u; Pr.prototype = r(u.prototype, { _GravitySpeed: null, _Bounce: null, _event_ActorGroup: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorGroup(1); var e = a.otherActor.getType(); a = a.otherActor.getGroup(); c = c == e || c == a; } else c = !1; if ( c && (this._Bounce || ((this._Bounce = !0), this.actor.setYVelocity(-76), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(117)), d.startShakingScreen(0.002, 0.05), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut), d.runLater( 100, function (a) { b._Bounce = !1; }, this.actor )), this.actor.getX() < d.getScreenXCenter() - 64 && this.actor.getY() > 0.2 * d.getScreenHeight() && (this.actor.bringToFront(), (c = this.actor), 0 == c.physicsMode)) ) for (c = c.getBody().getFixtureList(); null != c; ) c.getBody().DestroyFixture(c), (c = c.getNext()); }, _event_Updating: function (a) { this.wrapper.enabled && this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)); }, init: function () { this.actor.makeAlwaysSimulate(); this._GravitySpeed = 48; this.actor.setXVelocity(-14); this.actor.setYVelocity(-90); this.addListener(this.actor.whenCollided, q(this, this._event_ActorGroup)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Pr }); var Qr = function (a, b, c) { u.call(this, b); this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h.Bounce = '_Bounce'; this._Bounce = !1; }; h['scripts.ActorEvents_447'] = Qr; Qr.__name__ = 'scripts.ActorEvents_447'; Qr.__super__ = u; Qr.prototype = r(u.prototype, { _GravitySpeed: null, _Bounce: null, _event_ActorGroup: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorGroup(1); var e = a.otherActor.getType(); a = a.otherActor.getGroup(); c = c == e || c == a; } else c = !1; c && !this._Bounce && ((this._Bounce = !0), this.actor.setAnimation('Right Bounce'), this.actor.setCurrentFrame(0), this.actor.setXVelocity(0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(117)), d.startShakingScreen(0.002, 0.05), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut), d.runLater( 100, function (a) { b.actor.setYVelocity(-60); b.actor.setXVelocity(26); d.runLater( 100, function (a) { b._Bounce = !1; }, b.actor ); }, this.actor )); }, _event_Updating: function (a) { this.wrapper.enabled && this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)); }, init: function () { this.actor.makeAlwaysSimulate(); this._GravitySpeed = 48; this.actor.setXVelocity(26); this.actor.setYVelocity(-60); this.addListener(this.actor.whenCollided, q(this, this._event_ActorGroup)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Qr }); var Rr = function (a, b, c) { u.call(this, b); this.nameMap.h.Springing = '_Springing'; this._Springing = !1; }; h['scripts.ActorEvents_452'] = Rr; Rr.__name__ = 'scripts.ActorEvents_452'; Rr.__super__ = u; Rr.prototype = r(u.prototype, { _Springing: null, init: function () { this.actor.makeAlwaysSimulate(); }, forwardMessage: function (a) {}, __class__: Rr }); var Sr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_455'] = Sr; Sr.__name__ = 'scripts.ActorEvents_455'; Sr.__super__ = u; Sr.prototype = r(u.prototype, { init: function () { this.actor.makeAlwaysSimulate(); this.actor.disableActorDrawing(); }, forwardMessage: function (a) {}, __class__: Sr }); var Tr = function (a, b, c) { u.call(this, b); this.nameMap.h['Snooze Z List'] = '_SnoozeZList'; this.nameMap.h.Snore = '_Snore'; this._Snore = !1; this.nameMap.h.Fall = '_Fall'; this._Fall = !1; this.nameMap.h.Yawned = '_Yawned'; this._Yawned = !1; this.nameMap.h['Blink 1'] = '_Blink1'; this._Blink1 = !1; this.nameMap.h['Blink 2'] = '_Blink2'; this._Blink2 = !1; this.nameMap.h.Stretch = '_Stretch'; this._Stretch = !1; this.nameMap.h['Z Count'] = '_ZCount'; this._ZCount = 0; }; h['scripts.ActorEvents_457'] = Tr; Tr.__name__ = 'scripts.ActorEvents_457'; Tr.__super__ = u; Tr.prototype = r(u.prototype, { _SnoozeZList: null, _Snore: null, _Fall: null, _Yawned: null, _Blink1: null, _Blink2: null, _Stretch: null, _ZCount: null, _event_Sleeping: function (a) { !this.wrapper.enabled || ('Sleep' != this.actor.getAnimation() && 'Hidden' != this.actor.getAnimation()) || (d.createRecycledActor( d.getActorType(463), this.actor.getXCenter() - 24, this.actor.getY() + 24, 0 ), this._SnoozeZList.push(d.getLastCreatedActor()), d.getLastCreatedActor().setCurrentFrame(this._ZCount | 0), (this._ZCount = Math.min(this._ZCount + 4, 22)), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(454))); }, _event_Updating: function (a) { var b = this; if ( this.wrapper.enabled && ('Wake Up' == this.actor.getAnimation() && 26 <= this.actor.getCurrentFrame() && !this._Stretch && ((this._Stretch = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSoundOnChannel(d.getSound(472), 15)), 'Wake Up' == this.actor.getAnimation() && 4 <= this.actor.getCurrentFrame() && !this._Blink1 && ((this._Blink1 = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(471))), 'Wake Up' == this.actor.getAnimation() && 9 <= this.actor.getCurrentFrame() && !this._Blink2 && ((this._Blink2 = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(471))), 'Wake Up' == this.actor.getAnimation() && 15 <= this.actor.getCurrentFrame() && !this._Yawned && ((this._Yawned = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(470))), 'Wake Up' == this.actor.getAnimation() && 33 == this.actor.getCurrentFrame()) ) { k.engine.getGameAttribute('Sound Disabled') || d.playSoundOnChannel(d.getSound(109), 15); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8 - 32, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveToBottom(); d.getLastCreatedActor().moveBy(-64, -64, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8 + 32, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveToBottom(); d.getLastCreatedActor().moveBy(64, -64, 0.3, J.backOut); this.actor.setAnimation('Jump'); this.actor.moveBy(0, -96, 0.3, J.quadOut); a = 0; for (var c = d.getActorsOfType(d.getActorType(467)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || (e.getX() > this.actor.getXCenter() ? e.moveBy(96, -36, 0.6, J.backOut) : e.moveBy(-96, -36, 0.6, J.backOut)); } a = 0; for (c = d.getActorsOfType(d.getActorType(459)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveToBottom(); a = 0; for (c = d.getActorsOfType(d.getActorType(461)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveToBottom(); a = 0; for (c = d.getActorsOfType(d.getActorType(465)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.setAnimation('Shrink'); d.runLater( 400, function (a) { b._Fall = !0; d.runLater( 100, function (a) { k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(118)); }, b.actor ); }, this.actor ); } }, _event_EveryNsecs: function (a) { this.wrapper.enabled && this._Fall && this.actor.setYVelocity(Math.min(128, this.actor.getYVelocity() + 6)); }, init: function () { this.actor.makeAlwaysSimulate(); this._SnoozeZList = []; d.createRecycledActor( d.getActorType(463), this.actor.getXCenter() - 24, this.actor.getY() + 24, 0 ); this._SnoozeZList.push(d.getLastCreatedActor()); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(454)); d.runPeriodically(1300, q(this, this._event_Sleeping), this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); d.runPeriodically(10, q(this, this._event_EveryNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: Tr }); var Ur = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_459'] = Ur; Ur.__name__ = 'scripts.ActorEvents_459'; Ur.__super__ = u; Ur.prototype = r(u.prototype, { _event_Updating: function (a) { if (this.wrapper.enabled) { if ('Open' == this.actor.getAnimation() && 3 == this.actor.getCurrentFrame()) { d.createRecycledActor(d.getActorType(14), 0, 0, 0); this.actor.setAnimation('On'); a = 0; for (var b = d.getActorsOfType(d.getActorType(457)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (d.createRecycledActor(d.getActorType(467), c.getX() - 36, c.getY() - 18, 0), d.createRecycledActor(d.getActorType(467), c.getX() - 38, c.getY() + 68, 0), d.createRecycledActor(d.getActorType(467), c.getX() - 48, c.getY() + 102, 0), d.createRecycledActor(d.getActorType(467), c.getX() + 8, c.getY() + 34, 0), d.createRecycledActor(d.getActorType(467), c.getX() + 6, c.getY() + 110, 0), d.createRecycledActor(d.getActorType(467), c.getX() + 48, c.getY() + 74, 0), d.createRecycledActor(d.getActorType(467), c.getX() + 82, c.getY() + 38, 0), d.createRecycledActor(d.getActorType(467), c.getX() + 106, c.getY() + 98, 0), d.createRecycledActor(d.getActorType(467), c.getX() + 120, c.getY() + 10, 0), d.createRecycledActor(d.getActorType(467), c.getX() + 166, c.getY() + 6, 0), d.createRecycledActor(d.getActorType(467), c.getX() + 172, c.getY() + 62, 0), d.createRecycledActor(d.getActorType(467), c.getX() + 190, c.getY() + 74, 0)); } } 'Close' == this.actor.getAnimation() && 5 == this.actor.getCurrentFrame() && d.recycleActor(this.actor); } }, init: function () { this.actor.makeAlwaysSimulate(); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(469)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Ur }); var Vr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_46'] = Vr; Vr.__name__ = 'scripts.ActorEvents_46'; Vr.__super__ = u; Vr.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Vr }); var Wr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_461'] = Wr; Wr.__name__ = 'scripts.ActorEvents_461'; Wr.__super__ = u; Wr.prototype = r(u.prototype, { _event_Updating: function (a) { this.wrapper.enabled && ('Open' == this.actor.getAnimation() && 3 == this.actor.getCurrentFrame() && this.actor.setAnimation('On'), 'Close' == this.actor.getAnimation() && 5 == this.actor.getCurrentFrame() && d.recycleActor(this.actor)); }, init: function () { this.actor.makeAlwaysSimulate(); for (var a = 0, b = d.getActorsOfType(d.getActorType(457)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (c.setAnimation('Sleep'), d.createRecycledActor(d.getActorType(465), c.getX() + 26, c.getY() + 132, 0), d.getLastCreatedActor().moveToBottom(), this.actor.moveToBottom()); } this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Wr }); var Xr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_463'] = Xr; Xr.__name__ = 'scripts.ActorEvents_463'; Xr.__super__ = u; Xr.prototype = r(u.prototype, { init: function () { var a = this; this.actor.makeAlwaysSimulate(); this.actor.moveBy(0, -96, 2.6, J.linear); d.runLater( 2600, function (b) { d.recycleActor(a.actor); }, this.actor ); }, forwardMessage: function (a) {}, __class__: Xr }); var Yr = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_465'] = Yr; Yr.__name__ = 'scripts.ActorEvents_465'; Yr.__super__ = u; Yr.prototype = r(u.prototype, { _event_Updating: function (a) { this.wrapper.enabled && 'Shrink' == this.actor.getAnimation() && 3 == this.actor.getCurrentFrame() && d.recycleActor(this.actor); }, init: function () { this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Yr }); var Zr = function (a, b, c) { u.call(this, b); this.nameMap.h['Hover Distance'] = '_HoverDistance'; this._HoverDistance = 0; this.nameMap.h.Up = '_Up'; this._Up = !1; this.nameMap.h['Distance From Center'] = '_DistanceFromCenter'; this._DistanceFromCenter = 0; }; h['scripts.ActorEvents_467'] = Zr; Zr.__name__ = 'scripts.ActorEvents_467'; Zr.__super__ = u; Zr.prototype = r(u.prototype, { _HoverDistance: null, _Up: null, _DistanceFromCenter: null, _event_EveryNsecs: function (a) { this.wrapper.enabled && ((this._DistanceFromCenter = Math.max(this.actor.getX(), d.getScreenX() + d.getScreenWidth() / 2) - Math.min(this.actor.getX(), d.getScreenX() + d.getScreenWidth() / 2)), 200 < this._DistanceFromCenter ? '5' != this.actor.getAnimation() && this.actor.setAnimation('5') : 160 < this._DistanceFromCenter ? '4' != this.actor.getAnimation() && this.actor.setAnimation('4') : 120 < this._DistanceFromCenter ? '3' != this.actor.getAnimation() && this.actor.setAnimation('3') : 80 < this._DistanceFromCenter && '2' != this.actor.getAnimation() && this.actor.setAnimation('2')); }, _customEvent_Move: function () { var a = this; this._Up ? (this.actor.moveBy( -this._HoverDistance / 2, -this._HoverDistance / 2, 0.5, J.quadInOut ), d.runLater( 500, function (b) { a.actor.moveBy(-a._HoverDistance / 2, a._HoverDistance / 2, 0.5, J.quadInOut); }, this.actor ), (this._Up = !1), d.runLater( 1e3, function (b) { a.actor.shout('_customEvent_Move'); }, this.actor )) : (this.actor.moveBy( this._HoverDistance / 2, this._HoverDistance / 2, 0.5, J.quadInOut ), d.runLater( 500, function (b) { a.actor.moveBy(a._HoverDistance / 2, -(a._HoverDistance / 2), 0.5, J.quadInOut); }, this.actor ), (this._Up = !0), d.runLater( 1e3, function (b) { a.actor.shout('_customEvent_Move'); }, this.actor )); }, init: function () { this._HoverDistance = 16; for (var a = 0, b = d.getActorsOfType(d.getActorType(467)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Up = this._Up ? !1 : !0); } this.actor.shout('_customEvent_Move'); d.runPeriodically(100, q(this, this._event_EveryNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: Zr }); var $r = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_473'] = $r; $r.__name__ = 'scripts.ActorEvents_473'; $r.__super__ = u; $r.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = d.getSceneWidth() + 4), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActor( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), 2 ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: $r }); var as = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_475'] = as; as.__name__ = 'scripts.ActorEvents_475'; as.__super__ = u; as.prototype = r(u.prototype, { init: function () { this.actor.makeAlwaysSimulate(); }, forwardMessage: function (a) {}, __class__: as }); var bs = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_477'] = bs; bs.__name__ = 'scripts.ActorEvents_477'; bs.__super__ = u; bs.prototype = r(u.prototype, { init: function () { this.actor.makeAlwaysSimulate(); }, forwardMessage: function (a) {}, __class__: bs }); var cs = function (a, b, c) { u.call(this, b); this.nameMap.h['Shake Image'] = '_ShakeImage'; this.nameMap.h['Shake Image Instance'] = '_ShakeImageInstance'; this.nameMap.h.Shake = '_Shake'; this._Shake = !1; this.nameMap.h['Shake Count'] = '_ShakeCount'; this._ShakeCount = 0; this.nameMap.h.Left = '_Left'; this._Left = !1; }; h['scripts.ActorEvents_48'] = cs; cs.__name__ = 'scripts.ActorEvents_48'; cs.__super__ = u; cs.prototype = r(u.prototype, { _ShakeImage: null, _ShakeImageInstance: null, _Shake: null, _ShakeCount: null, _Left: null, _event_EveryNsecs: function (a) { this.wrapper.enabled && this._Shake && (d.attachImageToActor( this._ShakeImageInstance, this.actor, (-2 + this._ShakeCount) | 0, 0, 1 ), 6 != this._ShakeCount || this._Left ? 0 == this._ShakeCount && this._Left && (this._Left = !1) : (this._Left = !0), (this._ShakeCount = this._Left ? this._ShakeCount - 2 : this._ShakeCount + 2)); }, _event_HitsDude: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorType(2); var e = a.otherActor.getType(), f = a.otherActor.getGroup(); c = c == e || c == f; } else c = !1; c && (this.actor.makeAlwaysSimulate(), a.thisFromTop && !this._Shake && ((this._Shake = !0), d.setValueForScene('Stage Logic', '_RumbleName', 'Crumble'), d.sayToScene('Stage Logic', '_customEvent_rumble'), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(106)), d.runLater( 700, function (a) { b.actor.setFilter([d.createBrightnessFilter(100)]); }, this.actor ), d.runLater( 800, function (a) { k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(108)); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Dirt'); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Dirt'); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, 32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Dirt'); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, 32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Dirt'); d.recycleActor(b.actor); }, this.actor ))); }, _event_HitsCrate: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorType(32); var e = a.otherActor.getType(), f = a.otherActor.getGroup(); c = c == e || c == f; } else c = !1; c && a.thisFromTop && !this._Shake && ((this._Shake = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(106)), d.runLater( 700, function (a) { b.actor.setFilter([d.createBrightnessFilter(100)]); }, this.actor ), d.runLater( 800, function (a) { k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(108)); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Dirt'); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Dirt'); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, 32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Dirt'); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, 32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Dirt'); d.recycleActor(b.actor); }, this.actor )); }, init: function () { this._ShakeImage = d.getImageForActor(this.actor); this._ShakeImageInstance = new Qh(new Mc(this._ShakeImage)); this.actor.disableActorDrawing(); d.attachImageToActor(this._ShakeImageInstance, this.actor, 0, 0, 1); d.runPeriodically(20, q(this, this._event_EveryNsecs), this.actor); this.addListener(this.actor.whenCollided, q(this, this._event_HitsDude)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsCrate)); }, forwardMessage: function (a) {}, __class__: cs }); var ds = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_482'] = ds; ds.__name__ = 'scripts.ActorEvents_482'; ds.__super__ = u; ds.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = d.getScreenWidth() + 64), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActorOnLayer( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: ds }); var es = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_484'] = es; es.__name__ = 'scripts.ActorEvents_484'; es.__super__ = u; es.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = d.getScreenWidth() + 64), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActorOnLayer( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: es }); var fs = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_486'] = fs; fs.__name__ = 'scripts.ActorEvents_486'; fs.__super__ = u; fs.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = d.getScreenWidth() + 64), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActorOnLayer( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: fs }); var gs = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_488'] = gs; gs.__name__ = 'scripts.ActorEvents_488'; gs.__super__ = u; gs.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = d.getScreenWidth() + 64), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActorOnLayer( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: gs }); var hs = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_490'] = hs; hs.__name__ = 'scripts.ActorEvents_490'; hs.__super__ = u; hs.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = d.getScreenWidth() + 64), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActorOnLayer( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: hs }); var is = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_492'] = is; is.__name__ = 'scripts.ActorEvents_492'; is.__super__ = u; is.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = d.getScreenWidth() + 64), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActorOnLayer( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: is }); var js = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_494'] = js; js.__name__ = 'scripts.ActorEvents_494'; js.__super__ = u; js.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = d.getScreenWidth() + 64), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActorOnLayer( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: js }); var ks = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_496'] = ks; ks.__name__ = 'scripts.ActorEvents_496'; ks.__super__ = u; ks.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = d.getScreenWidth() + 64), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActorOnLayer( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: ks }); var ls = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_498'] = ls; ls.__name__ = 'scripts.ActorEvents_498'; ls.__super__ = u; ls.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = d.getScreenWidth() + 64), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActorOnLayer( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: ls }); var ms = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_50'] = ms; ms.__name__ = 'scripts.ActorEvents_50'; ms.__super__ = u; ms.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: ms }); var ns = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_500'] = ns; ns.__name__ = 'scripts.ActorEvents_500'; ns.__super__ = u; ns.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = d.getScreenWidth() + 64), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActorOnLayer( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: ns }); var os = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_502'] = os; os.__name__ = 'scripts.ActorEvents_502'; os.__super__ = u; os.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = d.getScreenWidth() + 64), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActorOnLayer( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: os }); var ps = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_504'] = ps; ps.__name__ = 'scripts.ActorEvents_504'; ps.__super__ = u; ps.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = d.getScreenWidth() + 64), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActorOnLayer( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: ps }); var qs = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_506'] = qs; qs.__name__ = 'scripts.ActorEvents_506'; qs.__super__ = u; qs.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = d.getScreenWidth() + 64), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActorOnLayer( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: qs }); var rs = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_508'] = rs; rs.__name__ = 'scripts.ActorEvents_508'; rs.__super__ = u; rs.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = d.getScreenWidth() + 64), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActorOnLayer( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: rs }); var ss = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_510'] = ss; ss.__name__ = 'scripts.ActorEvents_510'; ss.__super__ = u; ss.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = d.getScreenWidth() + 64), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActorOnLayer( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: ss }); var ts = function (a, b, c) { u.call(this, b); this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; }; h['scripts.ActorEvents_512'] = ts; ts.__name__ = 'scripts.ActorEvents_512'; ts.__super__ = u; ts.prototype = r(u.prototype, { _First: null, _RightScrollLimit: null, _TotalLength: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = d.getScreenWidth() + 64), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActorOnLayer( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: ts }); var us = function (a, b, c) { u.call(this, b); this.nameMap.h.Dude = '_Dude'; this.nameMap.h['Follow Dude'] = '_FollowDude'; this._FollowDude = !1; this.nameMap.h.Up = '_Up'; this._Up = !1; this.nameMap.h.Possum = '_Possum'; this.nameMap.h['Top Letterbox'] = '_TopLetterbox'; this.nameMap.h['Bottom Letterbox'] = '_BottomLetterbox'; this.nameMap.h['Show Possum Text'] = '_ShowPossumText'; this._ShowPossumText = !1; }; h['scripts.ActorEvents_514'] = us; us.__name__ = 'scripts.ActorEvents_514'; us.__super__ = u; us.prototype = r(u.prototype, { _Dude: null, _FollowDude: null, _Up: null, _Possum: null, _TopLetterbox: null, _BottomLetterbox: null, _ShowPossumText: null, _event_Updating: function (a) { if ( this.wrapper.enabled && (d.engine.moveCamera(this.actor.getX(), this.actor.getY()), !this._Up) ) { a = this._Dude; if ( !d.isPrimitive(a) && ('string' == typeof a ? '' == x.__cast(a, String) : null == a) ) { a = 0; for (var b = d.getActorsOfType(d.getActorType(431)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Dude = c); } } a = this._Dude; if (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) this.actor.getX() >= this._Dude.getXCenter() && !this._FollowDude && (this._FollowDude = !0), this._FollowDude && (this.actor.setXVelocity(0), this.actor.setX(this._Dude.getXCenter())); } }, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled && this._ShowPossumText) { a.drawActor = !1; a.actor = null; a.x = 0; a.y = 0; b = d.getFont(228); null != b && b != a.font && (a.font = b); b = d.getScreenWidth() / 2 - a.font.getTextWidth('POSSUM MODE UNLOCKED!') / k.SCALE / 2; c = d.getScreenHeight() / 2 - a.font.getHeight() / k.SCALE / 2; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (c = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, c); var e = null, f = a.font; f = 'POSSUM MODE UNLOCKED!:' + f.ID + ':' + a.alpha + ':' + f.letterSpacing + ':' + k.SCALE; if (Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, f)) { var g = W.drawnStringCache.h[f]; g.lifetime = 5; e = g.img; } else { g = a.font.font.getTextWidth( 'POSSUM MODE UNLOCKED!', a.font.letterSpacing, a.font.fontScale ); var h = (a.font.font.getFontHeight() * a.font.fontScale) | 0; 0 < g && 0 < h && ((e = new ja(g, h, !0, 0)), a.font.font.renderToImg( e, 'POSSUM MODE UNLOCKED!', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (g = new Mb()), (g.img = e), (g.lifetime = 5), (W.drawnStringCache.h[f] = g), W.drawnStringCacheKeys.push(f)); } null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, e.width, e.height), a.graphics.endFill()); } }, _customEvent_Up: function () { var a = this; this._Up || ((this._Up = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(176)), d.createRecycledActorOnLayer( d.getActorType(517), this.actor.getX() - 94 + 8, this.actor.getY() - (d.getScreenHeight() + d.getScreenHeight() / 2 + 136), d.engine.getLayerById(19) ), (this._Possum = d.getLastCreatedActor()), d.runLater( 2900, function (b) { a.actor.moveBy(0, -(d.getScreenHeight() + d.getScreenHeight() / 2), 5, J.quadInOut); d.runLater( 4300, function (b) { d.createRecycledActorOnLayer( d.getActorType(519), a._Possum.getXCenter() - 63, d.getScreenY() - 48, d.engine.getLayerById(19) ); d.getLastCreatedActor().moveToTop(); d.getLastCreatedActor().moveTo( d.getLastCreatedActor().getX(), a._Possum.getY() + (a._Possum.getHeight() + 24), 1, J.backOut ); d.runLater( 200, function (b) { d.createRecycledActorOnLayer( d.getActorType(519), a._Possum.getXCenter() - 63, d.getScreenY() - 48, d.engine.getLayerById(19) ); d.getLastCreatedActor().moveToTop(); d.getLastCreatedActor().setAnimation('N'); d.getLastCreatedActor().moveTo( d.getLastCreatedActor().getX(), a._Possum.getY() + (a._Possum.getHeight() + 24), 1, J.backOut ); }, a.actor ); d.runLater( 400, function (b) { d.createRecycledActorOnLayer( d.getActorType(519), a._Possum.getXCenter() - 63, d.getScreenY() - 48, d.engine.getLayerById(19) ); d.getLastCreatedActor().moveToTop(); d.getLastCreatedActor().setAnimation('D'); d.getLastCreatedActor().moveTo( d.getLastCreatedActor().getX(), a._Possum.getY() + (a._Possum.getHeight() + 24), 1, J.backOut ); }, a.actor ); d.runLater( 4e3, function (b) { a._Possum.setAnimation('Screech'); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(442)); d.runLater( 400, function (b) { a._Possum.setAnimation('Normal'); }, a.actor ); d.runLater( 6e3, function (b) { d.createRecycledActor( d.getActorType(437), d.getScreenX() - 5, d.getScreenY() - 5 - d.getScreenHeight() / 2, 0 ); a._TopLetterbox = d.getLastCreatedActor(); d.createRecycledActor( d.getActorType(437), d.getScreenX() - 5, d.getScreenY() + d.getScreenHeight() / 2 + d.getScreenHeight() / 2, 0 ); a._BottomLetterbox = d.getLastCreatedActor(); a._TopLetterbox.moveBy(0, d.getScreenHeight() / 2, 0.4, J.backOut); a._BottomLetterbox.moveBy( 0, -(d.getScreenHeight() / 2), 0.4, J.backOut ); }, a.actor ); d.runLater( 7e3, function (a) { a = Fa.get().scenes.h[58].getID(); var b = 0, c = 0, e = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); var f = d.createFadeOut(0.2, (b << 16) | (c << 8) | e); e = c = b = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, f, d.createFadeIn(0.2, (b << 16) | (c << 8) | e)); }, a.actor ); }, a.actor ); }, a.actor ); }, this.actor )); }, init: function () { this.actor.makeAlwaysSimulate(); this.actor.setXVelocity(24); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); }, forwardMessage: function (a) {}, __class__: us }); var vs = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_517'] = vs; vs.__name__ = 'scripts.ActorEvents_517'; vs.__super__ = u; vs.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: vs }); var ws = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_519'] = ws; ws.__name__ = 'scripts.ActorEvents_519'; ws.__super__ = u; ws.prototype = r(u.prototype, { init: function () { this.actor.makeAlwaysSimulate(); }, forwardMessage: function (a) {}, __class__: ws }); var xs = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_52'] = xs; xs.__name__ = 'scripts.ActorEvents_52'; xs.__super__ = u; xs.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: xs }); var ys = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_521'] = ys; ys.__name__ = 'scripts.ActorEvents_521'; ys.__super__ = u; ys.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: ys }); var zs = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_523'] = zs; zs.__name__ = 'scripts.ActorEvents_523'; zs.__super__ = u; zs.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: zs }); var As = function (a, b, c) { u.call(this, b); this.nameMap.h['Stars String'] = '_StarsString'; this._StarsString = ''; this.nameMap.h.Star = '_Star'; this.nameMap.h['Left End'] = '_LeftEnd'; this.nameMap.h['Right End'] = '_RightEnd'; }; h['scripts.ActorEvents_527'] = As; As.__name__ = 'scripts.ActorEvents_527'; As.__super__ = u; As.prototype = r(u.prototype, { _StarsString: null, _Star: null, _LeftEnd: null, _RightEnd: null, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) { b = d.getFont(228); null != b && b != a.font && (a.font = b); c = this.actor; a.drawActor = !0; a.actor = c; c.smoothMove ? ((b = c.drawX - Math.floor(c.cacheWidth / 2) - c.currOffset.x), (c = c.drawY - Math.floor(c.cacheHeight / 2) - c.currOffset.y), (a.x = b * a.scaleX), (a.y = c * a.scaleY)) : ((a.x = c.colX * a.scaleX), (a.y = c.colY * a.scaleY)); d.setDrawingLayerToActorLayer(this.actor); var e = this._StarsString; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + 32 * a.scaleX), (c = a.y + 10 * a.scaleY)) : ((b = a.x + 32 * a.scaleX - k.cameraX), (c = a.y + 10 * a.scaleY - k.cameraY)) : ((b = a.x + 32 * a.scaleX), (c = a.y + 10 * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, c); var f = null, g = a.font; g = e + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE; if (Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g)) (e = W.drawnStringCache.h[g]), (e.lifetime = 5), (f = e.img); else { var h = a.font.font.getTextWidth(e, a.font.letterSpacing, a.font.fontScale), l = (a.font.font.getFontHeight() * a.font.fontScale) | 0; 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, e, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (e = new Mb()), (e.img = f), (e.lifetime = 5), (W.drawnStringCache.h[g] = e), W.drawnStringCacheKeys.push(g)); } null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, f.width, f.height), a.graphics.endFill()); } }, _event_Updating: function (a) { this.wrapper.enabled && ((a = this._Star), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a) ? ((a = this._LeftEnd), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a) ? ((a = this._RightEnd), (a = d.isPrimitive(a) ? !0 : 'string' == typeof a ? '' != x.__cast(a, String) : null != a)) : (a = !1)) : (a = !1), a && (this._Star.setX(this.actor.getX()), this._Star.setY(this.actor.getY()), this._LeftEnd.setX(this.actor.getX() - 2), this._LeftEnd.setY(this.actor.getY()), this._RightEnd.setX(this.actor.getX() + ba.scaledSize('width', this.actor)), this._RightEnd.setY(this.actor.getY()))); }, init: function () { this._StarsString = '' + (k.engine.getGameAttribute('Stars List').length - 1) + '/34'; ba.setScale( 'width', d.getFont(228).getTextWidth(this._StarsString) / k.SCALE + 42, this.actor ); this.actor.makeAlwaysSimulate(); d.createRecycledActor(d.getActorType(529), this.actor.getX(), this.actor.getY(), 0); this._Star = d.getLastCreatedActor(); d.createRecycledActor(d.getActorType(531), this.actor.getX() - 2, this.actor.getY(), 0); this._LeftEnd = d.getLastCreatedActor(); d.createRecycledActor( d.getActorType(531), this.actor.getX() + ba.scaledSize('width', this.actor), this.actor.getY(), 0 ); this._RightEnd = d.getLastCreatedActor(); this.actor.anchorToScreen(); this._Star.anchorToScreen(); this._LeftEnd.anchorToScreen(); this._RightEnd.anchorToScreen(); this._Star.makeAlwaysSimulate(); this._LeftEnd.makeAlwaysSimulate(); this._RightEnd.makeAlwaysSimulate(); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: As }); var Bs = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_529'] = Bs; Bs.__name__ = 'scripts.ActorEvents_529'; Bs.__super__ = u; Bs.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Bs }); var Cs = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_531'] = Cs; Cs.__name__ = 'scripts.ActorEvents_531'; Cs.__super__ = u; Cs.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Cs }); var Ds = function (a, b, c) { u.call(this, b); this.nameMap.h.Hidden = '_Hidden'; this._Hidden = !1; }; h['scripts.ActorEvents_533'] = Ds; Ds.__name__ = 'scripts.ActorEvents_533'; Ds.__super__ = u; Ds.prototype = r(u.prototype, { _Hidden: null, _event_Updating: function (a) { this.wrapper.enabled && (d.engine.isPaused() && !this._Hidden ? ((this._Hidden = !0), this.actor.disableActorDrawing()) : !d.engine.isPaused() && this._Hidden && ((this._Hidden = !1), this.actor.enableActorDrawing())); }, init: function () { this.actor.makeAlwaysSimulate(); this.actor.anchorToScreen(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Ds }); var Es = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_537'] = Es; Es.__name__ = 'scripts.ActorEvents_537'; Es.__super__ = u; Es.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Es }); var Fs = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_539'] = Fs; Fs.__name__ = 'scripts.ActorEvents_539'; Fs.__super__ = u; Fs.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Fs }); var Gs = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_54'] = Gs; Gs.__name__ = 'scripts.ActorEvents_54'; Gs.__super__ = u; Gs.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Gs }); var Hs = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_541'] = Hs; Hs.__name__ = 'scripts.ActorEvents_541'; Hs.__super__ = u; Hs.prototype = r(u.prototype, { init: function () { this.actor.makeAlwaysSimulate(); }, forwardMessage: function (a) {}, __class__: Hs }); var Is = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_546'] = Is; Is.__name__ = 'scripts.ActorEvents_546'; Is.__super__ = u; Is.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Is }); var Js = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_548'] = Js; Js.__name__ = 'scripts.ActorEvents_548'; Js.__super__ = u; Js.prototype = r(u.prototype, { _event_Updating: function (a) { this.wrapper.enabled && (k.engine.getGameAttribute('MOBILE MODE') && 'Normal' == this.actor.getAnimation() ? this.actor.setAnimation('NormalC') : k.engine.getGameAttribute('MOBILE MODE') || 'NormalC' != this.actor.getAnimation() || this.actor.setAnimation('Normal'), k.engine.getGameAttribute('MOBILE MODE') && 'Off' == this.actor.getAnimation() ? this.actor.setAnimation('OffC') : k.engine.getGameAttribute('MOBILE MODE') || 'OffC' != this.actor.getAnimation() || this.actor.setAnimation('Off')); }, init: function () { d.createRecycledActorOnLayer( d.getActorType(550), this.actor.getX(), this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Js }); var Ks = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_550'] = Ks; Ks.__name__ = 'scripts.ActorEvents_550'; Ks.__super__ = u; Ks.prototype = r(u.prototype, { _event_Updating: function (a) { this.wrapper.enabled && 'Turn On' == this.actor.getAnimation() && 7 == this.actor.getCurrentFrame() && this.actor.setAnimation('On'); }, init: function () { this.actor.makeAlwaysSimulate(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Ks }); var Ls = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_557'] = Ls; Ls.__name__ = 'scripts.ActorEvents_557'; Ls.__super__ = u; Ls.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Ls }); var Ms = function (a, b, c) { u.call(this, b); this.nameMap.h.Pressed = '_Pressed'; this._Pressed = !1; this.nameMap.h.Hide = '_Hide'; this._Hide = !1; }; h['scripts.ActorEvents_559'] = Ms; Ms.__name__ = 'scripts.ActorEvents_559'; Ms.__super__ = u; Ms.prototype = r(u.prototype, { _Pressed: null, _Hide: null, _event_OnActor: function (a) { var b = this; !this.wrapper.enabled || 3 != a || this._Pressed || k.engine.getGameAttribute('Settings Open') || k.engine.getGameAttribute('Dead') || ((this._Pressed = k.engine.gameAttributes.h['Settings Open'] = !0), this.actor.setAnimation('Down'), d.createRecycledActor(d.getActorType(561), 0, 0, 0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)), d.runLater( 200, function (a) { b.actor.setAnimation('Normal'); }, this.actor ), d.runLater( 400, function (a) { b._Pressed = !1; }, this.actor )); }, _event_Keyboard: function (a, b) { var c = this; !this.wrapper.enabled || !a || this._Pressed || k.engine.getGameAttribute('Settings Open') || k.engine.getGameAttribute('Dead') || ((k.engine.gameAttributes.h['Settings Open'] = !0), (this._Pressed = k.engine.gameAttributes.h['Controller Mode'] = !0), this.actor.setAnimation('Down'), d.createRecycledActor(d.getActorType(561), 0, 0, 0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)), d.runLater( 200, function (a) { c.actor.setAnimation('Normal'); }, this.actor ), d.runLater( 400, function (a) { c._Pressed = !1; }, this.actor )); }, _event_Updating: function (a) { this.wrapper.enabled && (k.engine.getGameAttribute('Settings Open') && !this._Hide ? ((this._Hide = !0), this.actor.disableActorDrawing()) : !k.engine.getGameAttribute('Settings Open') && this._Hide && ((this._Hide = !1), this.actor.enableActorDrawing())); }, init: function () { this.actor.makeAlwaysSimulate(); this.actor.anchorToScreen(); this.addListener(this.actor.whenMousedOver, q(this, this._event_OnActor)); this.addListener( d.engine.whenKeyPressedEvents.getOrCreateEvent('action2'), q(this, this._event_Keyboard) ); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Ms }); var Ns = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_56'] = Ns; Ns.__name__ = 'scripts.ActorEvents_56'; Ns.__super__ = u; Ns.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Ns }); var Os = function (a, b, c) { u.call(this, b); this.nameMap.h.Inner = '_Inner'; }; h['scripts.ActorEvents_561'] = Os; Os.__name__ = 'scripts.ActorEvents_561'; Os.__super__ = u; Os.prototype = r(u.prototype, { _Inner: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.set_alpha(0); this.actor.setX(d.getScreenX() - 5); this.actor.setY(d.getScreenY() - 5); ba.setScale('width', d.getScreenWidth() + 10, this.actor); ba.setScale('height', d.getScreenHeight() + 10, this.actor); this.actor.fadeTo(0.5, 0.4, J.quadInOut); d.createRecycledActor( d.getActorType(563), d.getScreenWidth() / 2 - 149, d.getScreenY() - 284, 0 ); this._Inner = d.getLastCreatedActor(); this._Inner.moveTo( this._Inner.getX(), d.getScreenY() + (d.getScreenHeight() / 2 - 142), 0.7, J.elasticOut ); }, forwardMessage: function (a) {}, __class__: Os }); var Ps = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_567'] = Ps; Ps.__name__ = 'scripts.ActorEvents_567'; Ps.__super__ = u; Ps.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Ps }); var Qs = function (a, b, c) { u.call(this, b); this.nameMap.h.Pressed = '_Pressed'; this._Pressed = !1; }; h['scripts.ActorEvents_576'] = Qs; Qs.__name__ = 'scripts.ActorEvents_576'; Qs.__super__ = u; Qs.prototype = r(u.prototype, { _Pressed: null, _event_MultiTouch: function (a) { var b = this; this.wrapper.enabled && (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) > this.actor.getX() && (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) < this.actor.getX() + this.actor.getWidth() && (a.stageY - k.screenOffsetY) / (k.screenScaleY * k.SCALE) > this.actor.getY() && (a.stageY - k.screenOffsetY) / (k.screenScaleY * k.SCALE) < this.actor.getY() + this.actor.getHeight() && !this._Pressed && ((this._Pressed = !0), d.engine.isPaused() ? (d.engine.unpause(), this.actor.enableActorDrawing()) : (d.engine.pause(), this.actor.disableActorDrawing()), d.runLater( 200, function (a) { b._Pressed = !1; }, this.actor )); }, init: function () { this.actor.makeAlwaysSimulate(); this.actor.anchorToScreen(); this.addListener(d.engine.whenMTStarted, q(this, this._event_MultiTouch)); }, forwardMessage: function (a) {}, __class__: Qs }); var Rs = function (a, b, c) { u.call(this, b); this.nameMap.h.Dude = '_Dude'; this.nameMap.h['Fly Away'] = '_FlyAway'; this._FlyAway = !1; }; h['scripts.ActorEvents_578'] = Rs; Rs.__name__ = 'scripts.ActorEvents_578'; Rs.__super__ = u; Rs.prototype = r(u.prototype, { _Dude: null, _FlyAway: null, _event_EveryNsecs: function (a) { if (this.wrapper.enabled) { if (!this._FlyAway && this.actor.isOnScreen()) { a = this._Dude; if ( !d.isPrimitive(a) && ('string' == typeof a ? '' == x.__cast(a, String) : null == a) ) { a = 0; for (var b = d.getActorsOfType(d.getActorType(2)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Dude = c); } } a = this._Dude; (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Dude.getXCenter() > this.actor.getXCenter() - 100 && this._Dude.getXCenter() < this.actor.getXCenter() + 100 && this._Dude.getYCenter() > this.actor.getYCenter() - 100 && this._Dude.getYCenter() < this.actor.getYCenter() + 100 && ((this._FlyAway = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(724)), this.actor.setYVelocity(-15), this._Dude.getXCenter() > this.actor.getXCenter() ? (this.actor.setXVelocity(-15), this.actor.setAnimation('Fly Left')) : (this.actor.setXVelocity(15), this.actor.setAnimation('Fly Right'))); } this._FlyAway && !this.actor.isOnScreen() && d.recycleActor(this.actor); } }, init: function () { this.actor.makeAlwaysSimulate(); 1 == d.randomInt(1, 2) && this.actor.setAnimation('Peck Right'); this.actor.currAnimation.setFrameDuration(0, d.randomInt(500, 700)); d.runPeriodically(200, q(this, this._event_EveryNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: Rs }); var Ss = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_58'] = Ss; Ss.__name__ = 'scripts.ActorEvents_58'; Ss.__super__ = u; Ss.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Ss }); var Ts = function (a, b, c) { u.call(this, b); this.nameMap.h.Dude = '_Dude'; this.nameMap.h['Fly Away'] = '_FlyAway'; this._FlyAway = !1; }; h['scripts.ActorEvents_580'] = Ts; Ts.__name__ = 'scripts.ActorEvents_580'; Ts.__super__ = u; Ts.prototype = r(u.prototype, { _Dude: null, _FlyAway: null, _event_EveryNsecs: function (a) { if (this.wrapper.enabled) { if (!this._FlyAway && this.actor.isOnScreen()) { a = this._Dude; if ( !d.isPrimitive(a) && ('string' == typeof a ? '' == x.__cast(a, String) : null == a) ) { a = 0; for (var b = d.getActorsOfType(d.getActorType(2)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Dude = c); } } a = this._Dude; (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Dude.getXCenter() > this.actor.getXCenter() - 100 && this._Dude.getXCenter() < this.actor.getXCenter() + 100 && this._Dude.getYCenter() > this.actor.getYCenter() - 100 && this._Dude.getYCenter() < this.actor.getYCenter() + 100 && ((this._FlyAway = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(723)), this.actor.setYVelocity(-15), this._Dude.getXCenter() > this.actor.getXCenter() ? (this.actor.setXVelocity(-15), this.actor.setAnimation('Fly Left')) : (this.actor.setXVelocity(15), this.actor.setAnimation('Fly Right'))); } this._FlyAway && !this.actor.isOnScreen() && d.recycleActor(this.actor); } }, init: function () { this.actor.makeAlwaysSimulate(); 1 == d.randomInt(1, 2) && this.actor.setAnimation('Peck Right'); this.actor.currAnimation.setFrameDuration(0, d.randomInt(500, 700)); d.runPeriodically(200, q(this, this._event_EveryNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: Ts }); var Us = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_582'] = Us; Us.__name__ = 'scripts.ActorEvents_582'; Us.__super__ = u; Us.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Us }); var Vs = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_584'] = Vs; Vs.__name__ = 'scripts.ActorEvents_584'; Vs.__super__ = u; Vs.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Vs }); var Ws = function (a, b, c) { u.call(this, b); this.nameMap.h['Left Touch Is Down'] = '_LeftTouchIsDown'; this._LeftTouchIsDown = !1; this.nameMap.h['Right Touch Is Down'] = '_RightTouchIsDown'; this._RightTouchIsDown = !1; this.nameMap.h['Up Touch Is Down'] = '_UpTouchIsDown'; this._UpTouchIsDown = !1; this.nameMap.h['Down Touch Is Down'] = '_DownTouchIsDown'; this._DownTouchIsDown = !1; this.nameMap.h.Speed = '_Speed'; this._Speed = 0; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; }; h['scripts.ActorEvents_589'] = Ws; Ws.__name__ = 'scripts.ActorEvents_589'; Ws.__super__ = u; Ws.prototype = r(u.prototype, { _LeftTouchIsDown: null, _RightTouchIsDown: null, _UpTouchIsDown: null, _DownTouchIsDown: null, _Speed: null, _RightScrollLimit: null, _event_Pressed: function (a) { this.wrapper.enabled && (k.engine.getGameAttribute('Controller Mode') || ((k.engine.gameAttributes.h['Controller Mode'] = !0), this.actor.enableActorDrawing()), d.isKeyPressed('left') ? ((this._LeftTouchIsDown = !0), (this._RightTouchIsDown = !1)) : d.isKeyPressed('right') && ((this._RightTouchIsDown = !0), (this._LeftTouchIsDown = !1)), d.isKeyPressed('up') ? ((this._UpTouchIsDown = !0), (this._DownTouchIsDown = !1)) : d.isKeyPressed('down') && ((this._DownTouchIsDown = !0), (this._UpTouchIsDown = !1))); }, _event_Released: function (a) { this.wrapper.enabled && (d.isKeyReleased('left') ? (this._LeftTouchIsDown = !1) : d.isKeyReleased('right') && (this._RightTouchIsDown = !1), d.isKeyReleased('up') ? (this._UpTouchIsDown = !1) : d.isKeyReleased('down') && (this._DownTouchIsDown = !1)); }, _event_Updating: function (a) { if ( this.wrapper.enabled && ((this._Speed = 30), this._UpTouchIsDown ? this.actor.setYVelocity(-this._Speed) : this._DownTouchIsDown ? this.actor.setYVelocity(this._Speed) : this.actor.setYVelocity(0), this._LeftTouchIsDown ? this.actor.setXVelocity(-this._Speed) : this._RightTouchIsDown ? this.actor.setXVelocity(this._Speed) : this.actor.setXVelocity(0), k.engine.getGameAttribute('Controller Mode')) ) { a = 0; for (var b = d.getActorsOfType(d.getActorType(273)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c.setX(Math.min(this.actor.getX(), this._RightScrollLimit)); } } }, _event_MultiTouch: function (a) { this.wrapper.enabled && k.engine.getGameAttribute('Controller Mode') && ((k.engine.gameAttributes.h['Controller Mode'] = !1), this.actor.disableActorDrawing()); }, _event_Updated: function (a) { this.wrapper.enabled && (0 > this.actor.getScreenX() && (this.actor.setScreenX(0), this.actor.setXVelocity(0)), 0 > this.actor.getScreenY() && (this.actor.setScreenY(0), this.actor.setYVelocity(0)), this.actor.getScreenX() > d.getScreenWidth() - this.actor.getWidth() && (this.actor.setScreenX(d.getScreenWidth() - this.actor.getWidth()), this.actor.setXVelocity(0)), this.actor.getScreenY() > d.getScreenHeight() - this.actor.getHeight() && (this.actor.setScreenY(d.getScreenHeight() - this.actor.getHeight()), this.actor.setYVelocity(0))); }, init: function () { this.actor.makeAlwaysSimulate(); this.actor.anchorToScreen(); k.engine.getGameAttribute('Controller Mode') || this.actor.disableActorDrawing(); this._RightScrollLimit = Math.max( 696 - d.getScreenWidth() / 2 + 64, d.getScreenWidth() + 64 - d.getScreenWidth() / 2 ); this.addListener(d.engine.whenAnyKeyPressed, q(this, this._event_Pressed)); this.addListener(d.engine.whenAnyKeyReleased, q(this, this._event_Released)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(d.engine.whenMTStarted, q(this, this._event_MultiTouch)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updated)); }, forwardMessage: function (a) {}, __class__: Ws }); var Xs = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_596'] = Xs; Xs.__name__ = 'scripts.ActorEvents_596'; Xs.__super__ = u; Xs.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Xs }); var Ys = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_598'] = Ys; Ys.__name__ = 'scripts.ActorEvents_598'; Ys.__super__ = u; Ys.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Ys }); var Zs = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_6'] = Zs; Zs.__name__ = 'scripts.ActorEvents_6'; Zs.__super__ = u; Zs.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Zs }); var $s = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_60'] = $s; $s.__name__ = 'scripts.ActorEvents_60'; $s.__super__ = u; $s.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: $s }); var at = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_600'] = at; at.__name__ = 'scripts.ActorEvents_600'; at.__super__ = u; at.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: at }); var bt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_602'] = bt; bt.__name__ = 'scripts.ActorEvents_602'; bt.__super__ = u; bt.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: bt }); var ct = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_607'] = ct; ct.__name__ = 'scripts.ActorEvents_607'; ct.__super__ = u; ct.prototype = r(u.prototype, { init: function () { this.actor.makeAlwaysSimulate(); this.actor.disableActorDrawing(); }, forwardMessage: function (a) {}, __class__: ct }); var dt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_609'] = dt; dt.__name__ = 'scripts.ActorEvents_609'; dt.__super__ = u; dt.prototype = r(u.prototype, { init: function () { this.actor.makeAlwaysSimulate(); this.actor.disableActorDrawing(); }, forwardMessage: function (a) {}, __class__: dt }); var et = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_611'] = et; et.__name__ = 'scripts.ActorEvents_611'; et.__super__ = u; et.prototype = r(u.prototype, { _event_Updating: function (a) { this.wrapper.enabled && (d.engine.moveCamera(this.actor.getXCenter(), this.actor.getYCenter()), d.isMouseDown() ? 64 > d.getMouseY() ? this.actor.setYVelocity(-30) : d.getMouseY() > d.getScreenHeight() - 64 ? this.actor.setYVelocity(30) : d.getMouseX() < d.getScreenWidth() / 2 ? this.actor.setXVelocity(-30) : d.getMouseX() > d.getScreenWidth() / 2 && this.actor.setXVelocity(30) : (this.actor.setXVelocity(0), this.actor.setYVelocity(0))); }, init: function () { this.actor.makeAlwaysSimulate(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: et }); var ft = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_615'] = ft; ft.__name__ = 'scripts.ActorEvents_615'; ft.__super__ = u; ft.prototype = r(u.prototype, { init: function () { this.actor.makeAlwaysSimulate(); }, forwardMessage: function (a) {}, __class__: ft }); var gt = function (a, b, c) { u.call(this, b); this.nameMap.h.Springing = '_Springing'; this._Springing = !1; }; h['scripts.ActorEvents_62'] = gt; gt.__name__ = 'scripts.ActorEvents_62'; gt.__super__ = u; gt.prototype = r(u.prototype, { _Springing: null, _event_HitsDude: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorType(2); var e = a.otherActor.getType(), f = a.otherActor.getGroup(); c = c == e || c == f; } else c = !1; c && (a.otherActor.setYVelocity(-72), this._Springing || ((this._Springing = !0), this.actor.setAnimation('Springing'), a.otherActor.setValue('Dude Logic', '_Springing', !0), a.otherActor.setValue('Dude Logic', '_CanDoubleJump', !0), d.setValueForScene('Stage Logic', '_RumbleName', 'Spring'), d.sayToScene('Stage Logic', '_customEvent_rumble'), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(114)), d.runLater( 200, function (a) { b.actor.setAnimation('Normal'); b._Springing = !1; }, this.actor ))); }, _event_HitsCrate: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorType(32); var e = a.otherActor.getType(), f = a.otherActor.getGroup(); c = c == e || c == f; } else c = !1; c && 0 == a.otherActor.getValue('Pushable Crate Logic', '_HasSpring') && !this._Springing && ((this._Springing = !0), a.otherActor.setYVelocity(-72), this.actor.setAnimation('Springing'), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(114)), d.runLater( 200, function (a) { b.actor.setAnimation('Normal'); b._Springing = !1; }, this.actor )); }, init: function () { this.addListener(this.actor.whenCollided, q(this, this._event_HitsDude)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsCrate)); }, forwardMessage: function (a) {}, __class__: gt }); var ht = function (a, b, c) { u.call(this, b); this.nameMap.h['Total Time In Hundreths'] = '_TotalTimeInHundreths'; this._TotalTimeInHundreths = 0; this.nameMap.h['Total Time String'] = '_TotalTimeString'; this._TotalTimeString = ''; this.nameMap.h['Hundreths String'] = '_HundrethsString'; this._HundrethsString = ''; this.nameMap.h['Timer Hundreths'] = '_TimerHundreths'; this._TimerHundreths = 0; this.nameMap.h['Seconds String'] = '_SecondsString'; this._SecondsString = ''; this.nameMap.h['Timer Seconds'] = '_TimerSeconds'; this._TimerSeconds = 0; this.nameMap.h['Minutes String'] = '_MinutesString'; this._MinutesString = ''; this.nameMap.h['Timer Minutes'] = '_TimerMinutes'; this._TimerMinutes = 0; this.nameMap.h.Seconds = '_Seconds'; this._Seconds = 0; this.nameMap.h.Minutes = '_Minutes'; this._Minutes = 0; this.nameMap.h.Hours = '_Hours'; this._Hours = 0; this.nameMap.h.Hundreths = '_Hundreths'; this._Hundreths = 0; this.nameMap.h['Hours String'] = '_HoursString'; this._HoursString = ''; this.nameMap.h['Time Box'] = '_TimeBox'; }; h['scripts.ActorEvents_622'] = ht; ht.__name__ = 'scripts.ActorEvents_622'; ht.__super__ = u; ht.prototype = r(u.prototype, { _TotalTimeInHundreths: null, _TotalTimeString: null, _HundrethsString: null, _TimerHundreths: null, _SecondsString: null, _TimerSeconds: null, _MinutesString: null, _TimerMinutes: null, _Seconds: null, _Minutes: null, _Hours: null, _Hundreths: null, _HoursString: null, _TimeBox: null, _event_Updating: function (a) { this.wrapper.enabled && this._TimeBox.setY(this.actor.getY() + (this.actor.getHeight() / 2 - 11)); }, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled && k.engine.getGameAttribute('Timer Mode')) { var e = d.getFont(624); null != e && e != a.font && (a.font = e); e = this._TotalTimeString; b = this.actor.getWidth() + 24; c = this.actor.getHeight() / 2 - a.font.getHeight() / k.SCALE / 2; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (c = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, c); var f = null, g = a.font; g = e + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE; if (Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g)) (e = W.drawnStringCache.h[g]), (e.lifetime = 5), (f = e.img); else { var h = a.font.font.getTextWidth(e, a.font.letterSpacing, a.font.fontScale), l = (a.font.font.getFontHeight() * a.font.fontScale) | 0; 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, e, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (e = new Mb()), (e.img = f), (e.lifetime = 5), (W.drawnStringCache.h[g] = e), W.drawnStringCacheKeys.push(g)); } null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, f.width, f.height), a.graphics.endFill()); } }, init: function () { this._TotalTimeInHundreths = 0; d.createRecycledActor( d.getActorType(627), this.actor.getX() + (this.actor.getWidth() + 4), this.actor.getY() + (this.actor.getHeight() / 2 - 11), 0 ); this._TimeBox = d.getLastCreatedActor(); for ( var a = 0, b = x.__cast(k.engine.getGameAttribute('Best Times'), Array); a < b.length; ) { var c = b[a]; ++a; var e = this._TotalTimeInHundreths, f = ('' + B.string(c)).split(':')[0]; f = null == f ? 0 : 'number' == typeof f ? x.__cast(f, Nb) : 'number' == typeof f && (f | 0) === f ? x.__cast(f, Ab) : 'boolean' == typeof f ? x.__cast(f, Ob) ? 1 : 0 : 'string' == typeof f ? parseFloat(f) : parseFloat(B.string(f)); var g = ('' + B.string(c)).split(':')[1]; g = null == g ? 0 : 'number' == typeof g ? x.__cast(g, Nb) : 'number' == typeof g && (g | 0) === g ? x.__cast(g, Ab) : 'boolean' == typeof g ? x.__cast(g, Ob) ? 1 : 0 : 'string' == typeof g ? parseFloat(g) : parseFloat(B.string(g)); c = ('' + B.string(c)).split(':')[2]; this._TotalTimeInHundreths = e + (6e3 * f + 100 * g + (null == c ? 0 : 'number' == typeof c ? x.__cast(c, Nb) : 'number' == typeof c && (c | 0) === c ? x.__cast(c, Ab) : 'boolean' == typeof c ? x.__cast(c, Ob) ? 1 : 0 : 'string' == typeof c ? parseFloat(c) : parseFloat(B.string(c)))); } this._Hours = Math.floor(this._TotalTimeInHundreths / 100 / 60 / 60); this._Minutes = Math.floor(this._TotalTimeInHundreths / 100 / 60); this._Seconds = Math.floor(this._TotalTimeInHundreths / 100); this._Hundreths = this._TotalTimeInHundreths; this._Hundreths -= 100 * this._Seconds; this._Seconds -= 60 * this._Minutes; this._Minutes -= 60 * this._Hours; this._HoursString = '' + this._Hours; this._MinutesString = '' + this._Minutes; this._SecondsString = '' + this._Seconds; this._HundrethsString = '' + this._Hundreths; 1 == this._HoursString.length && (this._HoursString = '0' + this._HoursString); 1 == this._MinutesString.length && (this._MinutesString = '0' + this._MinutesString); 1 == this._SecondsString.length && (this._SecondsString = '0' + this._SecondsString); 1 == this._HundrethsString.length && (this._HundrethsString = '0' + this._HundrethsString); this._TotalTimeString = this._HoursString + (':' + (this._MinutesString + (':' + (this._SecondsString + (':' + this._HundrethsString))))); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); }, forwardMessage: function (a) {}, __class__: ht }); var it = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_625'] = it; it.__name__ = 'scripts.ActorEvents_625'; it.__super__ = u; it.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: it }); var jt = function (a, b, c) { u.call(this, b); this.nameMap.h['Stars String'] = '_StarsString'; this._StarsString = ''; this.nameMap.h.Star = '_Star'; this._Star = d.getActor(0); this.nameMap.h['Left End'] = '_LeftEnd'; this._LeftEnd = d.getActor(0); this.nameMap.h['Right End'] = '_RightEnd'; this._RightEnd = d.getActor(0); this.nameMap.h.Hidden = '_Hidden'; this._Hidden = !1; }; h['scripts.ActorEvents_627'] = jt; jt.__name__ = 'scripts.ActorEvents_627'; jt.__super__ = u; jt.prototype = r(u.prototype, { _StarsString: null, _Star: null, _LeftEnd: null, _RightEnd: null, _Hidden: null, _event_Updating: function (a) { this.wrapper.enabled && (k.engine.getGameAttribute('Timer Mode') && this._Hidden ? ((this._Hidden = !1), this.actor.enableActorDrawing()) : k.engine.getGameAttribute('Timer Mode') || this._Hidden || ((this._Hidden = !0), this.actor.disableActorDrawing())); }, init: function () { this.actor.makeAlwaysSimulate(); this.actor.anchorToScreen(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: jt }); var kt = function (a, b, c) { u.call(this, b); this.nameMap.h['Ground Check Top'] = '_GroundCheckTop'; this._GroundCheckTop = !1; this.nameMap.h['Ground Check Bottom'] = '_GroundCheckBottom'; this._GroundCheckBottom = !1; this.nameMap.h['Ground Check Left'] = '_GroundCheckLeft'; this._GroundCheckLeft = !1; this.nameMap.h['Ground Check Right'] = '_GroundCheckRight'; this._GroundCheckRight = !1; this.nameMap.h['On Ground Top'] = '_OnGroundTop'; this._OnGroundTop = !1; this.nameMap.h['On Ground Bottom'] = '_OnGroundBottom'; this._OnGroundBottom = !1; this.nameMap.h['On Ground Left'] = '_OnGroundLeft'; this._OnGroundLeft = !1; this.nameMap.h['On Ground Right'] = '_OnGroundRight'; this._OnGroundRight = !1; }; h['scripts.ActorEvents_629'] = kt; kt.__name__ = 'scripts.ActorEvents_629'; kt.__super__ = u; kt.prototype = r(u.prototype, { _GroundCheckTop: null, _GroundCheckBottom: null, _GroundCheckLeft: null, _GroundCheckRight: null, _OnGroundTop: null, _OnGroundBottom: null, _OnGroundLeft: null, _OnGroundRight: null, init: function () {}, forwardMessage: function (a) {}, __class__: kt }); var lt = function (a, b, c) { u.call(this, b); this.nameMap.h['Ground Check Top'] = '_GroundCheckTop'; this._GroundCheckTop = !1; this.nameMap.h['Ground Check Bottom'] = '_GroundCheckBottom'; this._GroundCheckBottom = !1; this.nameMap.h['Ground Check Left'] = '_GroundCheckLeft'; this._GroundCheckLeft = !1; this.nameMap.h['Ground Check Right'] = '_GroundCheckRight'; this._GroundCheckRight = !1; this.nameMap.h['On Ground Top'] = '_OnGroundTop'; this._OnGroundTop = !1; this.nameMap.h['On Ground Bottom'] = '_OnGroundBottom'; this._OnGroundBottom = !1; this.nameMap.h['On Ground Left'] = '_OnGroundLeft'; this._OnGroundLeft = !1; this.nameMap.h['On Ground Right'] = '_OnGroundRight'; this._OnGroundRight = !1; }; h['scripts.ActorEvents_631'] = lt; lt.__name__ = 'scripts.ActorEvents_631'; lt.__super__ = u; lt.prototype = r(u.prototype, { _GroundCheckTop: null, _GroundCheckBottom: null, _GroundCheckLeft: null, _GroundCheckRight: null, _OnGroundTop: null, _OnGroundBottom: null, _OnGroundLeft: null, _OnGroundRight: null, init: function () {}, forwardMessage: function (a) {}, __class__: lt }); var mt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_633'] = mt; mt.__name__ = 'scripts.ActorEvents_633'; mt.__super__ = u; mt.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: mt }); var nt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_635'] = nt; nt.__name__ = 'scripts.ActorEvents_635'; nt.__super__ = u; nt.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: nt }); var ot = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_637'] = ot; ot.__name__ = 'scripts.ActorEvents_637'; ot.__super__ = u; ot.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: ot }); var pt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_64'] = pt; pt.__name__ = 'scripts.ActorEvents_64'; pt.__super__ = u; pt.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: pt }); var qt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_66'] = qt; qt.__name__ = 'scripts.ActorEvents_66'; qt.__super__ = u; qt.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: qt }); var rt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_672'] = rt; rt.__name__ = 'scripts.ActorEvents_672'; rt.__super__ = u; rt.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: rt }); var st = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_68'] = st; st.__name__ = 'scripts.ActorEvents_68'; st.__super__ = u; st.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: st }); var tt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_683'] = tt; tt.__name__ = 'scripts.ActorEvents_683'; tt.__super__ = u; tt.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: tt }); var ut = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_685'] = ut; ut.__name__ = 'scripts.ActorEvents_685'; ut.__super__ = u; ut.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: ut }); var vt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_690'] = vt; vt.__name__ = 'scripts.ActorEvents_690'; vt.__super__ = u; vt.prototype = r(u.prototype, { init: function () { var a = this; this.actor.set_alpha(0.7); this.actor.fadeTo(0, 0.5, J.quadInOut); d.runLater( 600, function (b) { d.recycleActor(a.actor); }, this.actor ); }, forwardMessage: function (a) {}, __class__: vt }); var wt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_692'] = wt; wt.__name__ = 'scripts.ActorEvents_692'; wt.__super__ = u; wt.prototype = r(u.prototype, { init: function () { var a = this; this.actor.set_alpha(0.7); this.actor.fadeTo(0, 0.5, J.quadInOut); d.runLater( 600, function (b) { d.recycleActor(a.actor); }, this.actor ); }, forwardMessage: function (a) {}, __class__: wt }); var xt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_694'] = xt; xt.__name__ = 'scripts.ActorEvents_694'; xt.__super__ = u; xt.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: xt }); var yt = function (a, b, c) { u.call(this, b); this.nameMap.h.Go = '_Go'; this._Go = !1; this.nameMap.h.Fall = '_Fall'; this._Fall = !1; }; h['scripts.ActorEvents_696'] = yt; yt.__name__ = 'scripts.ActorEvents_696'; yt.__super__ = u; yt.prototype = r(u.prototype, { _Go: null, _Fall: null, init: function () {}, forwardMessage: function (a) {}, __class__: yt }); var zt = function (a, b, c) { u.call(this, b); this.nameMap.h.Springing = '_Springing'; this._Springing = !1; this.nameMap.h['Facing Left'] = '_FacingLeft'; this._FacingLeft = !1; }; h['scripts.ActorEvents_698'] = zt; zt.__name__ = 'scripts.ActorEvents_698'; zt.__super__ = u; zt.prototype = r(u.prototype, { _Springing: null, _FacingLeft: null, _event_Updating: function (a) { var b = this; this.wrapper.enabled && 'Splat' == this.actor.getAnimation() && 7 == this.actor.getCurrentFrame() && (this.actor.setAnimation('Done'), d.runLater( 1600, function (a) { b.actor.setAnimation('Shake'); d.createRecycledActorOnLayer( d.getActorType(700), b.actor.getX() + (2 + (b.actor.getWidth() - 2) / 2) - 64, b.actor.getYCenter() + 10, d.engine.getLayerById(3) ); d.getLastCreatedActor().moveToBottom(); d.getLastCreatedActor().moveBy(0, -96, 1, J.quadInOut); d.runLater( 1e3, function (a) { b.actor.setAnimation('Done'); }, b.actor ); }, this.actor )); }, init: function () { this.actor.makeAlwaysSimulate(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: zt }); var At = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_70'] = At; At.__name__ = 'scripts.ActorEvents_70'; At.__super__ = u; At.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: At }); var Bt = function (a, b, c) { u.call(this, b); this.nameMap.h.Flag = '_Flag'; }; h['scripts.ActorEvents_72'] = Bt; Bt.__name__ = 'scripts.ActorEvents_72'; Bt.__super__ = u; Bt.prototype = r(u.prototype, { _Flag: null, _event_HitsDude: function (a) { if (this.wrapper.enabled) { var b = d.getActorType(2); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && !k.engine.getGameAttribute('Checkpoint Passed') && ((k.engine.gameAttributes.h['Checkpoint Passed'] = !0), a.otherActor.getValue('Dude Logic', '_StarCollected') && (k.engine.gameAttributes.h['Star Collected'] = !0), (b = this._Flag), d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && (this._Flag.setAnimation('Go'), d.setValueForScene('Stage Logic', '_RumbleName', 'Item'), d.sayToScene('Stage Logic', '_customEvent_rumble'), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(118)), this._Flag.moveTo(this._Flag.getX(), this.actor.getY() + 20, 0.5, J.elasticOut)); }, init: function () { this.actor.makeAlwaysSimulate(); k.engine.getGameAttribute('Timer Mode') ? d.recycleActor(this.actor) : k.engine.getGameAttribute('Checkpoint Passed') ? (d.createRecycledActorOnLayer( d.getActorType(92), this.actor.getX() + 20, this.actor.getY() + 18, d.engine.getLayerById(this.actor.getLayerID()) ), (this._Flag = d.getLastCreatedActor()), this._Flag.moveToBottom(), this._Flag.setAnimation('Go')) : (d.createRecycledActorOnLayer( d.getActorType(92), this.actor.getX() + 20, this.actor.getY() + 60, d.engine.getLayerById(this.actor.getLayerID()) ), (this._Flag = d.getLastCreatedActor()), this._Flag.moveToBottom()); this.addListener(this.actor.whenCollided, q(this, this._event_HitsDude)); }, forwardMessage: function (a) {}, __class__: Bt }); var Ct = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_726'] = Ct; Ct.__name__ = 'scripts.ActorEvents_726'; Ct.__super__ = u; Ct.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Ct }); var Dt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_730'] = Dt; Dt.__name__ = 'scripts.ActorEvents_730'; Dt.__super__ = u; Dt.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Dt }); var Et = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_732'] = Et; Et.__name__ = 'scripts.ActorEvents_732'; Et.__super__ = u; Et.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Et }); var Ft = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_734'] = Ft; Ft.__name__ = 'scripts.ActorEvents_734'; Ft.__super__ = u; Ft.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Ft }); var Gt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_736'] = Gt; Gt.__name__ = 'scripts.ActorEvents_736'; Gt.__super__ = u; Gt.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Gt }); var Ht = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_738'] = Ht; Ht.__name__ = 'scripts.ActorEvents_738'; Ht.__super__ = u; Ht.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Ht }); var It = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_74'] = It; It.__name__ = 'scripts.ActorEvents_74'; It.__super__ = u; It.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: It }); var Jt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_752'] = Jt; Jt.__name__ = 'scripts.ActorEvents_752'; Jt.__super__ = u; Jt.prototype = r(u.prototype, { init: function () { ba.setScale('width', 962, this.actor); ba.setScale('height', 542, this.actor); }, forwardMessage: function (a) {}, __class__: Jt }); var Kt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_754'] = Kt; Kt.__name__ = 'scripts.ActorEvents_754'; Kt.__super__ = u; Kt.prototype = r(u.prototype, { init: function () { ba.setScale('width', 962, this.actor); ba.setScale('height', 542, this.actor); }, forwardMessage: function (a) {}, __class__: Kt }); var Lt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_756'] = Lt; Lt.__name__ = 'scripts.ActorEvents_756'; Lt.__super__ = u; Lt.prototype = r(u.prototype, { init: function () { ba.setScale('width', 962, this.actor); ba.setScale('height', 542, this.actor); }, forwardMessage: function (a) {}, __class__: Lt }); var Mt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_758'] = Mt; Mt.__name__ = 'scripts.ActorEvents_758'; Mt.__super__ = u; Mt.prototype = r(u.prototype, { _event_Updating: function (a) { this.wrapper.enabled && (this.actor.setX(d.getScreenX() - 1), this.actor.setY(d.getScreenY() - 1), this.actor.moveToBottom()); }, init: function () { this.actor.makeAlwaysSimulate(); ba.setScale('width', d.getSceneWidth(), this.actor); ba.setScale('height', d.getSceneHeight(), this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Mt }); var Nt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_760'] = Nt; Nt.__name__ = 'scripts.ActorEvents_760'; Nt.__super__ = u; Nt.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Nt }); var Ot = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_762'] = Ot; Ot.__name__ = 'scripts.ActorEvents_762'; Ot.__super__ = u; Ot.prototype = r(u.prototype, { _event_EveryNsecs: function (a) { this.wrapper.enabled && 8 == this.actor.getCurrentFrame() && d.recycleActor(this.actor); }, init: function () { d.runPeriodically(100, q(this, this._event_EveryNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: Ot }); var Pt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_764'] = Pt; Pt.__name__ = 'scripts.ActorEvents_764'; Pt.__super__ = u; Pt.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Pt }); var Qt = function (a, b, c) { u.call(this, b); this.nameMap.h.Hide = '_Hide'; this._Hide = !1; }; h['scripts.ActorEvents_766'] = Qt; Qt.__name__ = 'scripts.ActorEvents_766'; Qt.__super__ = u; Qt.prototype = r(u.prototype, { _Hide: null, _event_Updating: function (a) { this.wrapper.enabled && ((!d.engine.isPaused() && !k.engine.getGameAttribute('CONTROLLER TIME')) || this._Hide ? d.engine.isPaused() || k.engine.getGameAttribute('CONTROLLER TIME') || !this._Hide || ((this._Hide = !1), this.actor.enableActorDrawing()) : ((this._Hide = !0), this.actor.disableActorDrawing())); }, init: function () { this.actor.anchorToScreen(); this.actor.makeAlwaysSimulate(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Qt }); var Rt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_770'] = Rt; Rt.__name__ = 'scripts.ActorEvents_770'; Rt.__super__ = u; Rt.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Rt }); var St = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_78'] = St; St.__name__ = 'scripts.ActorEvents_78'; St.__super__ = u; St.prototype = r(u.prototype, { init: function () { this.actor.disableActorDrawing(); }, forwardMessage: function (a) {}, __class__: St }); var Tt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_80'] = Tt; Tt.__name__ = 'scripts.ActorEvents_80'; Tt.__super__ = u; Tt.prototype = r(u.prototype, { init: function () { this.actor.makeAlwaysSimulate(); this.actor.disableActorDrawing(); }, forwardMessage: function (a) {}, __class__: Tt }); var Ut = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_82'] = Ut; Ut.__name__ = 'scripts.ActorEvents_82'; Ut.__super__ = u; Ut.prototype = r(u.prototype, { init: function () { this.actor.makeAlwaysSimulate(); this.actor.disableActorDrawing(); }, forwardMessage: function (a) {}, __class__: Ut }); var Vt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_88'] = Vt; Vt.__name__ = 'scripts.ActorEvents_88'; Vt.__super__ = u; Vt.prototype = r(u.prototype, { _event_EveryNsecs: function (a) { this.wrapper.enabled && this.actor.getY() < d.getScreenY() + d.getScreenHeight() / 2 && 1 == d.randomInt(1, 3) && (d.createRecycledActorOnLayer( d.getActorType(90), d.randomInt((this.actor.getX() - 32) | 0, (this.actor.getX() + 32) | 0), this.actor.getY(), d.engine.getLayerById(3) ), d.getLastCreatedActor().setYVelocity(0.4 * d.randomInt(8, 12)), d.getLastCreatedActor().setXVelocity(2.4000000000000004)); }, init: function () { this.actor.disableActorDrawing(); this.actor.makeAlwaysSimulate(); d.runPeriodically(2e3, q(this, this._event_EveryNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: Vt }); var Wt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_90'] = Wt; Wt.__name__ = 'scripts.ActorEvents_90'; Wt.__super__ = u; Wt.prototype = r(u.prototype, { _event_Leavesscene: function (a, b, c, e) { this.wrapper.enabled && b && d.recycleActor(this.actor); }, init: function () { this.actor.makeAlwaysSimulate(); this.addListener(this.actor.whenPositionStateChanged, q(this, this._event_Leavesscene)); }, forwardMessage: function (a) {}, __class__: Wt }); var Xt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_92'] = Xt; Xt.__name__ = 'scripts.ActorEvents_92'; Xt.__super__ = u; Xt.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Xt }); var Yt = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_94'] = Yt; Yt.__name__ = 'scripts.ActorEvents_94'; Yt.__super__ = u; Yt.prototype = r(u.prototype, { _event_AfterNsecs: function (a) { this.wrapper.enabled && d.recycleActor(this.actor); }, init: function () { d.runLater(400, q(this, this._event_AfterNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: Yt }); var Zt = function (a, b, c) { u.call(this, b); this.nameMap.h.Up = '_Up'; this._Up = !1; }; h['scripts.ActorEvents_96'] = Zt; Zt.__name__ = 'scripts.ActorEvents_96'; Zt.__super__ = u; Zt.prototype = r(u.prototype, { _Up: null, init: function () {}, forwardMessage: function (a) {}, __class__: Zt }); var $t = function (a, b, c) { u.call(this, b); }; h['scripts.ActorEvents_98'] = $t; $t.__name__ = 'scripts.ActorEvents_98'; $t.__super__ = u; $t.prototype = r(u.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: $t }); var au = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h.Frequency = '_Frequency'; this._Frequency = 4; this.nameMap.h.Left = '_Left'; this._Left = !0; }; h['scripts.Design_101_101_HotdogLogic'] = au; au.__name__ = 'scripts.Design_101_101_HotdogLogic'; au.__super__ = u; au.prototype = r(u.prototype, { _Frequency: null, _Left: null, _event_EveryNsecs: function (a) { this.wrapper.enabled && 'Normal' == this.actor.getAnimation() && (k.engine.getGameAttribute('Sound Disabled') || (this.actor.isOnScreen() && d.runLater( 100, function (a) { d.playSound(d.getSound(222)); }, this.actor )), this._Left ? this.actor.setAnimation('Jump Left') : this.actor.setAnimation('Jump Right')); }, _event_Updating: function (a) { this.wrapper.enabled && ('Jump Left' == this.actor.getAnimation() ? 5 == this.actor.getCurrentFrame() && (this.actor.setAnimation('Shoot Left'), d.createRecycledActor( d.getActorType(218), this.actor.getX() + 2, this.actor.getY() + 2, 0 ), d.getLastCreatedActor().setXVelocity(-16), d.getLastCreatedActor().setYVelocity(-30), d.getLastCreatedActor().setAnimation('Left')) : 'Jump Right' == this.actor.getAnimation() && 5 == this.actor.getCurrentFrame() && (this.actor.setAnimation('Shoot Right'), d.createRecycledActor( d.getActorType(218), this.actor.getX() + (this.actor.getWidth() - 52), this.actor.getY() + 2, 0 ), d.getLastCreatedActor().setXVelocity(16), d.getLastCreatedActor().setYVelocity(-30), d.getLastCreatedActor().setAnimation('Right')), 'Shoot Left' == this.actor.getAnimation() ? 12 == this.actor.getCurrentFrame() && this.actor.setAnimation('Normal') : 'Shoot Right' == this.actor.getAnimation() && 12 == this.actor.getCurrentFrame() && this.actor.setAnimation('Normal')); }, init: function () { this.actor.makeAlwaysSimulate(); d.runPeriodically(1e3 * this._Frequency, q(this, this._event_EveryNsecs), this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: au }); var bu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Dialog Text'] = '_DialogText'; this._DialogText = 'DEFAULT'; this.nameMap.h['Dialog Complete'] = '_DialogComplete'; this._DialogComplete = !1; this.nameMap.h.Left = '_Left'; this._Left = !0; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['Origin Y'] = '_OriginY'; this._OriginY = 0; this.nameMap.h['Baby Type Number'] = '_BabyTypeNumber'; this._BabyTypeNumber = 1; this.nameMap.h['Talk First'] = '_TalkFirst'; this._TalkFirst = !0; this.nameMap.h['Level Number'] = '_LevelNumber'; this._LevelNumber = 0; this.nameMap.h['Start Y'] = '_StartY'; this._StartY = 0; }; h['scripts.Design_102_102_BabyLogic'] = bu; bu.__name__ = 'scripts.Design_102_102_BabyLogic'; bu.__super__ = u; bu.prototype = r(u.prototype, { _DialogText: null, _DialogComplete: null, _Left: null, _GravitySpeed: null, _OriginY: null, _BabyTypeNumber: null, _TalkFirst: null, _LevelNumber: null, _StartY: null, _customEvent_Dialog: function () { 'DEFAULT' == this._DialogText ? this.actor.say('Baby Logic', '_customEvent_dialogComplete') : this._DialogComplete || ((this._DialogComplete = !0), d.createRecycledActor(d.getActorType(161), 0, d.getScreenHeight() - 96, 0), d.getLastCreatedActor().setValue('Dialog Box Logic', '_DialogText', this._DialogText), this._TalkFirst ? (d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby' + this._BabyTypeNumber), k.engine.getGameAttribute('Possum Mode') ? d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character2', 'Baby' + this._BabyTypeNumber) : d.getLastCreatedActor().setValue('Dialog Box Logic', '_Character2', 'Dadish')) : (k.engine.getGameAttribute('Possum Mode') ? d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby' + this._BabyTypeNumber) : d.getLastCreatedActor().setValue('Dialog Box Logic', '_Character1', 'Dadish'), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character2', 'Baby' + this._BabyTypeNumber)), d.getLastCreatedActor().setValue('Dialog Box Logic', '_Parent', this.actor), d.getLastCreatedActor().say('Dialog Box Logic', '_customEvent_Go')); }, _customEvent_dialogComplete: function () { for (var a = 0, b = d.getActorsOfType(d.getActorType(2)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c.say('Dude Logic', '_customEvent_Exit'); } }, init: function () { this.actor.makeAlwaysSimulate(); this._StartY = this.actor.getY(); k.engine.getGameAttribute('Possum Mode') && ((this._BabyTypeNumber = 6), 'JP' == k.engine.getGameAttribute('Language') ? (this._DialogText = '*\u30ae\u30e3\u30fc*|*\u30ae\u30e3\u30fc*') : 'CN' == k.engine.getGameAttribute('Language') ? (this._DialogText = '*SCREECH*|*SCREECH*') : 'KR' == k.engine.getGameAttribute('Language') ? (this._DialogText = '*\uaf64\uc561*|*\uaf64\uc561*') : (this._DialogText = '*SCREECH*|*SCREECH*')); if (6 != this._BabyTypeNumber) { var a = d.getCurrentSceneName().split(' ')[1]; this._LevelNumber = null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a)); a = ('' + this._LevelNumber).charAt(('' + this._LevelNumber).length - 1); this._BabyTypeNumber = null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a)); 5 < this._BabyTypeNumber ? (this._BabyTypeNumber -= 5) : 0 == this._BabyTypeNumber && (this._BabyTypeNumber = 5); } this._Left ? this.actor.setAnimation('' + this._BabyTypeNumber + ' Left') : this.actor.setAnimation('' + this._BabyTypeNumber + ' Right'); this.actor.setY(this._StartY); }, forwardMessage: function (a) {}, __class__: bu }); var cu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h.Dude = '_Dude'; this.nameMap.h.Solid = '_Solid'; this._Solid = !1; this.nameMap.h['Collision Width'] = '_CollisionWidth'; this._CollisionWidth = 0; this.nameMap.h['Start Y'] = '_StartY'; this._StartY = 0; }; h['scripts.Design_10_10_PassThroughPlatform'] = cu; cu.__name__ = 'scripts.Design_10_10_PassThroughPlatform'; cu.__super__ = u; cu.prototype = r(u.prototype, { _Dude: null, _Solid: null, _CollisionWidth: null, _StartY: null, _event_Updating: function (a) { if (this.wrapper.enabled && this.actor.isOnScreen()) if ( ((a = this._Dude), !d.isPrimitive(a) && ('string' == typeof a ? '' == x.__cast(a, String) : null == a)) ) { a = 0; for (var b = d.getActorsOfType(d.getActorType(2)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Dude = c); } } else if ( 0 <= this._Dude.getYVelocity() && this._Dude.getY() <= this.actor.getY() - (this._Dude.getHeight() - 2) && !this._Solid ) (this._Solid = !0), this.actor.addRectangularShape(0, 0, this._CollisionWidth, 8), this.actor.getLastCreatedFixture().setSensor(!1); else if ( (0 > this._Dude.getYVelocity() || !(this._Dude.getY() <= this.actor.getY() - (this._Dude.getHeight() - 2))) && this._Solid ) { this._Solid = !1; a = this.actor; if (0 == a.physicsMode) for (a = a.getBody().getFixtureList(); null != a; ) a.getBody().DestroyFixture(a), (a = a.getNext()); this.actor.addRectangularShape(0, 0, this._CollisionWidth, 8); this.actor.getLastCreatedFixture().setSensor(!1); this.actor.getLastCreatedFixture().groupID = d.getActorGroup(8).ID; } }, init: function () { this._CollisionWidth = this.actor.getWidth(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: cu }); var du = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Total Length'] = '_TotalLength'; this._TotalLength = 0; this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; }; h['scripts.Design_119_119_OverworldBorderRepeater'] = du; du.__name__ = 'scripts.Design_119_119_OverworldBorderRepeater'; du.__super__ = u; du.prototype = r(u.prototype, { _TotalLength: null, _First: null, _RightScrollLimit: null, init: function () { this.actor.makeAlwaysSimulate(); this.actor.moveToBottom(); this._First = !0; for (var a = 0, b = d.getActorsOfType(this.actor.getType()); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c == this.actor || (this._First = !1); } if ( this._First && ((this._RightScrollLimit = Math.max(760, d.getScreenWidth() + 64)), this.actor.getWidth() < this._RightScrollLimit) ) for ( this._TotalLength = this.actor.getWidth(); !(this._TotalLength > this._RightScrollLimit); ) d.createRecycledActor( this.actor.getType(), this.actor.getX() + this._TotalLength, this.actor.getY(), 1 ), d.getLastCreatedActor().moveToBottom(), (this._TotalLength += this.actor.getWidth()); }, forwardMessage: function (a) {}, __class__: du }); var eu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Origin X'] = '_OriginX'; this._OriginX = 0; this.nameMap.h['Origin Y'] = '_OriginY'; this._OriginY = 0; this.nameMap.h['Distance X'] = '_DistanceX'; this._DistanceX = 0; this.nameMap.h['Distance Y'] = '_DistanceY'; this._DistanceY = 0; this.nameMap.h['Starting Level'] = '_StartingLevel'; this._StartingLevel = 0; this.nameMap.h['Button Pressed'] = '_ButtonPressed'; this._ButtonPressed = !1; this.nameMap.h['Next Button'] = '_NextButton'; this.nameMap.h['Previous Button'] = '_PreviousButton'; this.nameMap.h['Current World'] = '_CurrentWorld'; this._CurrentWorld = !1; this.nameMap.h['Current Level Button'] = '_CurrentLevelButton'; this.nameMap.h['Right Scroll Limit'] = '_RightScrollLimit'; this._RightScrollLimit = 0; this.nameMap.h.Cursor = '_Cursor'; }; h['scripts.Design_127_127_OverworldFrameLogic'] = eu; eu.__name__ = 'scripts.Design_127_127_OverworldFrameLogic'; eu.__super__ = u; eu.prototype = r(u.prototype, { _OriginX: null, _OriginY: null, _DistanceX: null, _DistanceY: null, _StartingLevel: null, _ButtonPressed: null, _NextButton: null, _PreviousButton: null, _CurrentWorld: null, _CurrentLevelButton: null, _RightScrollLimit: null, _Cursor: null, _event_Updating: function (a) { if ( this.wrapper.enabled && !this._ButtonPressed && !d.getValueForScene('Overworld Logic', '_ButtonPressed') ) { a = this._NextButton; if ( (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._NextButton.isMousePressed() ) { this._ButtonPressed = !0; this._NextButton.setAnimation('Down'); a = 0; for (var b = d.getActorsOfType(d.getActorType(244)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); } a = 0; for (b = d.getActorsOfType(d.getActorType(248)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(246)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(291)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(527)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(539)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, 70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(622)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, 70, 0.2, J.quadOut); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)); k.engine.gameAttributes.h['Wipe In Right'] = !0; k.engine.gameAttributes.h['Overworld Entered Left'] = !0; d.sayToScene('Transitions', '_customEvent_wipeOutRight'); d.runLater( 500, function (a) { if ('World 1 Select' == d.getCurrentSceneName()) { a = Fa.get().scenes.h[6].getID(); var b = 0, c = 0, e = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); var k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e); e = c = b = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, k, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)); } else 'World 2 Select' == d.getCurrentSceneName() ? ((a = Fa.get().scenes.h[7].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.1, (b << 16) | (c << 8) | e))) : 'World 3 Select' == d.getCurrentSceneName() && ((a = Fa.get().scenes.h[8].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.1, (b << 16) | (c << 8) | e))); }, this.actor ); } a = this._PreviousButton; if ( (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._PreviousButton.isMousePressed() ) { this._ButtonPressed = !0; this._PreviousButton.setAnimation('Down'); a = 0; for (b = d.getActorsOfType(d.getActorType(244)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(248)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(246)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(291)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(527)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(539)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, 70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(622)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, 70, 0.2, J.quadOut); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)); k.engine.gameAttributes.h['Wipe In Left'] = !0; k.engine.gameAttributes.h['Overworld Entered Right'] = !0; d.sayToScene('Transitions', '_customEvent_wipeOutLeft'); d.runLater( 500, function (a) { if ('World 2 Select' == d.getCurrentSceneName()) { a = Fa.get().scenes.h[5].getID(); var b = 0, c = 0, e = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); var k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e); e = c = b = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, k, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)); } else 'World 3 Select' == d.getCurrentSceneName() ? ((a = Fa.get().scenes.h[6].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.1, (b << 16) | (c << 8) | e))) : 'World 4 Select' == d.getCurrentSceneName() && ((a = Fa.get().scenes.h[7].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.1, (b << 16) | (c << 8) | e))); }, this.actor ); } } }, _event_Controller: function (a, b) { if (this.wrapper.enabled && a && k.engine.getGameAttribute('Controller Mode')) { a = 0; for (b = d.getActorsOfType(d.getActorType(589)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Cursor = c); } a = this._Cursor; if ( (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && !this._ButtonPressed && !d.getValueForScene('Overworld Logic', '_ButtonPressed') ) { a = this._NextButton; if ( (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Cursor.getScreenX() + 24 >= this._NextButton.getScreenX() && this._Cursor.getScreenX() + 24 < this._NextButton.getScreenX() + this._NextButton.getWidth() && this._Cursor.getScreenY() + 24 >= this._NextButton.getScreenY() && this._Cursor.getScreenY() + 24 < this._NextButton.getScreenY() + this._NextButton.getHeight() ) { this._ButtonPressed = !0; this._NextButton.setAnimation('Down'); a = 0; for (b = d.getActorsOfType(d.getActorType(244)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(248)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(246)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(291)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(527)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)); k.engine.gameAttributes.h['Wipe In Right'] = !0; k.engine.gameAttributes.h['Overworld Entered Left'] = !0; d.sayToScene('Transitions', '_customEvent_wipeOutRight'); d.runLater( 500, function (a) { if ('World 1 Select' == d.getCurrentSceneName()) { a = Fa.get().scenes.h[6].getID(); var b = 0, c = 0, e = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); var k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e); e = c = b = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, k, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)); } else 'World 2 Select' == d.getCurrentSceneName() ? ((a = Fa.get().scenes.h[7].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.1, (b << 16) | (c << 8) | e))) : 'World 3 Select' == d.getCurrentSceneName() && ((a = Fa.get().scenes.h[8].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.1, (b << 16) | (c << 8) | e))); }, this.actor ); } a = this._PreviousButton; if ( (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Cursor.getScreenX() + 24 >= this._PreviousButton.getScreenX() && this._Cursor.getScreenX() + 24 < this._PreviousButton.getScreenX() + this._PreviousButton.getWidth() && this._Cursor.getScreenY() + 24 >= this._PreviousButton.getScreenY() && this._Cursor.getScreenY() + 24 < this._PreviousButton.getScreenY() + this._PreviousButton.getHeight() ) { this._ButtonPressed = !0; this._PreviousButton.setAnimation('Down'); a = 0; for (b = d.getActorsOfType(d.getActorType(244)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(248)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(246)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(291)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (b = d.getActorsOfType(d.getActorType(527)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.moveBy(0, -70, 0.2, J.quadOut); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)); k.engine.gameAttributes.h['Wipe In Left'] = !0; k.engine.gameAttributes.h['Overworld Entered Right'] = !0; d.sayToScene('Transitions', '_customEvent_wipeOutLeft'); d.runLater( 500, function (a) { if ('World 2 Select' == d.getCurrentSceneName()) { a = Fa.get().scenes.h[5].getID(); var b = 0, c = 0, e = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); var k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e); e = c = b = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, k, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)); } else 'World 3 Select' == d.getCurrentSceneName() ? ((a = Fa.get().scenes.h[6].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.1, (b << 16) | (c << 8) | e))) : 'World 4 Select' == d.getCurrentSceneName() && ((a = Fa.get().scenes.h[7].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.1, (b << 16) | (c << 8) | e))); }, this.actor ); } } } }, init: function () { this.actor.makeAlwaysSimulate(); this.actor.setAnimation('Normal'); d.getScreenWidth() > this.actor.getWidth() + 128 ? (this._DistanceX = d.getScreenWidth() / 2 - this.actor.getWidth() / 2 + 32 - this.actor.getX()) : (this._DistanceX = 96 - this.actor.getX()); this._DistanceY = d.getSceneWidth() / 2 - this.actor.getHeight() / 2 - this.actor.getY(); this.actor.setX(this.actor.getX() + this._DistanceX); this.actor.setY(this.actor.getY() + this._DistanceY); for (var a = 0, b = x.__cast(d.getActorGroup(7), ze).list; a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (c.setX(c.getX() + this._DistanceX), c.setY(c.getY() + this._DistanceY)); } 1 < this._StartingLevel && (d.createRecycledActor( d.getActorType(289), this.actor.getX() - 64, this.actor.getY(), 0 ), (this._PreviousButton = d.getLastCreatedActor())); 30 > this._StartingLevel && k.engine.getGameAttribute('Highest Level') >= this._StartingLevel + 9 && (d.createRecycledActor( d.getActorType(285), this.actor.getX() + (this.actor.getWidth() + 32), this.actor.getY(), 0 ), (this._NextButton = d.getLastCreatedActor())); d.createRecycledActor(d.getActorType(277), this.actor.getX(), this.actor.getY(), 0); d.getLastCreatedActor().setValue( 'Level Button Logic', '_LevelNumber', this._StartingLevel ); this._StartingLevel += 1; d.createRecycledActor(d.getActorType(277), this.actor.getX() + 84, this.actor.getY(), 0); d.getLastCreatedActor().setValue( 'Level Button Logic', '_LevelNumber', this._StartingLevel ); this._StartingLevel += 1; d.createRecycledActor( d.getActorType(277), this.actor.getX() + 84, this.actor.getY() + 84, 0 ); d.getLastCreatedActor().setValue( 'Level Button Logic', '_LevelNumber', this._StartingLevel ); this._StartingLevel += 1; d.createRecycledActor( d.getActorType(277), this.actor.getX() + 168, this.actor.getY() + 84, 0 ); d.getLastCreatedActor().setValue( 'Level Button Logic', '_LevelNumber', this._StartingLevel ); this._StartingLevel += 1; d.createRecycledActor( d.getActorType(277), this.actor.getX() + 252, this.actor.getY() + 84, 0 ); d.getLastCreatedActor().setValue( 'Level Button Logic', '_LevelNumber', this._StartingLevel ); this._StartingLevel += 1; d.createRecycledActor(d.getActorType(277), this.actor.getX() + 252, this.actor.getY(), 0); d.getLastCreatedActor().setValue( 'Level Button Logic', '_LevelNumber', this._StartingLevel ); this._StartingLevel += 1; d.createRecycledActor(d.getActorType(277), this.actor.getX() + 336, this.actor.getY(), 0); d.getLastCreatedActor().setValue( 'Level Button Logic', '_LevelNumber', this._StartingLevel ); this._StartingLevel += 1; d.createRecycledActor(d.getActorType(277), this.actor.getX() + 420, this.actor.getY(), 0); d.getLastCreatedActor().setValue( 'Level Button Logic', '_LevelNumber', this._StartingLevel ); this._StartingLevel += 1; d.createRecycledActor( d.getActorType(277), this.actor.getX() + 420, this.actor.getY() + 84, 0 ); d.getLastCreatedActor().setValue( 'Level Button Logic', '_LevelNumber', this._StartingLevel ); this._StartingLevel += 1; d.createRecycledActor( d.getActorType(277), this.actor.getX() + 504, this.actor.getY() + 84, 0 ); d.getLastCreatedActor().setValue( 'Level Button Logic', '_LevelNumber', this._StartingLevel ); a = 0; for (b = d.getActorsOfType(d.getActorType(277)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || (c.moveToBottom(), this.actor.getType() == d.getActorType(261) && c.setValue('Level Button Logic', '_Dark', !0), c.say('Level Button Logic', '_customEvent_Go')); d.engine.moveCamera(0, this.actor.getYCenter()); a = 0; for (b = d.getActorsOfType(d.getActorType(277)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.getValue('Level Button Logic', '_LevelNumber') != k.engine.getGameAttribute('Highest Level') || ((this._CurrentWorld = !0), (this._CurrentLevelButton = c)); this._RightScrollLimit = Math.max( 696 - d.getScreenWidth() / 2 + 64, d.getScreenWidth() + 64 - d.getScreenWidth() / 2 ); this._CurrentWorld && !k.engine.getGameAttribute('Overworld Entered Left') ? d.createRecycledActor( d.getActorType(273), Math.max( Math.min(this._RightScrollLimit, this._CurrentLevelButton.getXCenter()), d.getScreenWidth() / 2 ), this.actor.getYCenter(), 0 ) : k.engine.getGameAttribute('Overworld Entered Right') ? ((k.engine.gameAttributes.h['Overworld Entered Right'] = !1), d.createRecycledActor( d.getActorType(273), Math.min(this._RightScrollLimit, this.actor.getX() + this.actor.getWidth()), this.actor.getYCenter(), 0 )) : ((k.engine.gameAttributes.h['Overworld Entered Left'] = !1), d.createRecycledActor( d.getActorType(273), Math.max(d.getScreenWidth() / 2, this.actor.getX()), this.actor.getYCenter(), 0 )); d.shoutToScene('_customEvent_createBorders'); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener( d.engine.whenKeyPressedEvents.getOrCreateEvent('action1'), q(this, this._event_Controller) ); }, forwardMessage: function (a) {}, __class__: eu }); var fu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Level Number'] = '_LevelNumber'; this._LevelNumber = 0; this.nameMap.h.Frame = '_Frame'; this.nameMap.h.Dark = '_Dark'; this._Dark = !1; this.nameMap.h['Boss Level'] = '_BossLevel'; this._BossLevel = !1; this.nameMap.h.Cursor = '_Cursor'; this.nameMap.h.Time = '_Time'; this._Time = ''; this.nameMap.h['Timer Wrap'] = '_TimerWrap'; this.nameMap.h['Timer Hidden'] = '_TimerHidden'; this._TimerHidden = !1; this.nameMap.h.PRESSED = '_PRESSED'; this._PRESSED = !1; }; h['scripts.Design_131_131_LevelButtonLogic'] = fu; fu.__name__ = 'scripts.Design_131_131_LevelButtonLogic'; fu.__super__ = u; fu.prototype = r(u.prototype, { _LevelNumber: null, _Frame: null, _Dark: null, _BossLevel: null, _Cursor: null, _Time: null, _TimerWrap: null, _TimerHidden: null, _PRESSED: null, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) { this._TimerHidden && k.engine.getGameAttribute('Timer Mode') ? ((this._TimerHidden = !1), this._TimerWrap.enableActorDrawing()) : this._TimerHidden || k.engine.getGameAttribute('Timer Mode') || ((this._TimerHidden = !0), this._TimerWrap.disableActorDrawing()); if (!this._BossLevel) if ( ((c = d.getFont(168)), null != c && c != a.font && (a.font = c), 'Down' == this.actor.getAnimation()) ) { c = '' + this._LevelNumber; b = this.actor.getWidth() / 2 - a.font.getTextWidth('' + this._LevelNumber) / k.SCALE / 2; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); if (a.drawActor) if (null != a.actor && a.actor.isHUD) { b = a.x + b * a.scaleX; var e = a.y + 28 * a.scaleY; } else (b = a.x + b * a.scaleX - k.cameraX), (e = a.y + 28 * a.scaleY - k.cameraY); else (b = a.x + b * a.scaleX), (e = a.y + 28 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, e); var f = null, g = a.font; g = c + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE; if (Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g)) (c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img); else { var h = a.font.font.getTextWidth(c, a.font.letterSpacing, a.font.fontScale), l = (a.font.font.getFontHeight() * a.font.fontScale) | 0; 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, c, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g)); } null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill()); } else 'Normal' == this.actor.getAnimation() && ((c = '' + this._LevelNumber), (b = this.actor.getWidth() / 2 - a.font.getTextWidth('' + this._LevelNumber) / k.SCALE / 2), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + 20 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + 20 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + 20 * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, e), (f = null), (g = a.font), (g = c + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth(c, a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, c, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))), null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill())); k.engine.getGameAttribute('Timer Mode') && ((c = this._Time), d.isPrimitive(c) || ('string' == typeof c ? '' != x.__cast(c, String) : null != c) ? ((c = d.getFont(624)), null != c && c != a.font && (a.font = c), 'Down' == this.actor.getAnimation() || 'Down Boss' == this.actor.getAnimation() ? ((c = this._Time), (b = this.actor.getWidth() / 2 - a.font.getTextWidth(this._Time) / k.SCALE / 2), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + 52 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + 52 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + 52 * a.scaleY))) : ((c = this._Time), (b = this.actor.getWidth() / 2 - a.font.getTextWidth(this._Time) / k.SCALE / 2), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + 44 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + 44 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + 44 * a.scaleY))), a.mtx.identity(), a.mtx.translate(b, e), (f = null), (g = a.font), (g = c + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth(c, a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, c, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))), null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill())) : (this._Time = '' + B.string( k.engine.getGameAttribute('Best Times')[(this._LevelNumber - 1) | 0] ))); } }, _event_OnActor: function (a) { var b = this; if ( this.wrapper.enabled && 3 == a && ((a = this._Frame), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && ('Normal' == this.actor.getAnimation() || 'Normal Boss' == this.actor.getAnimation()) && 0 == this._Frame.getValue('Overworld Frame Logic', '_ButtonPressed') && 0 == d.getValueForScene('Overworld Logic', '_ButtonPressed')) ) { this._Frame.setValue('Overworld Frame Logic', '_ButtonPressed', !0); d.stopAllSounds(); a = 0; for (var c = d.getActorsOfType(d.getActorType(244)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || e.moveBy(0, -70, 0.2, J.quadOut); } a = 0; for (c = d.getActorsOfType(d.getActorType(248)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (c = d.getActorsOfType(d.getActorType(246)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (c = d.getActorsOfType(d.getActorType(291)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (c = d.getActorsOfType(d.getActorType(527)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (c = d.getActorsOfType(d.getActorType(539)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveBy(0, 70, 0.2, J.quadOut); a = 0; for (c = d.getActorsOfType(d.getActorType(622)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveBy(0, 70, 0.2, J.quadOut); a = this._TimerWrap; (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._TimerWrap.setY(this.actor.getY() + 48); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)); this._BossLevel ? this.actor.setAnimation('Down Boss') : this.actor.setAnimation('Down'); d.runLater( 200, function (a) { d.setValueForScene('Transitions', '_TransitionType', 2); d.sayToScene('Transitions', '_customEvent_transitionOut'); d.runLater( 1e3, function (a) { gb.commercialBreak(function () { var a = Fa.get().scenes, c = d.getIDForScene('Level ' + b._LevelNumber); a = a.h[c].getID(); var e = (c = 0), f = 0; null == f && (f = 0); null == e && (e = 0); null == c && (c = 0); var g = d.createFadeOut(0.1, (c << 16) | (e << 8) | f); f = e = c = 0; null == f && (f = 0); null == e && (e = 0); null == c && (c = 0); d.switchScene(a, g, d.createFadeIn(0.1, (c << 16) | (e << 8) | f)); }); }, b.actor ); }, this.actor ); } }, _event_Updating: function (a) { var b = this; if ( this.wrapper.enabled && (d.isKeyPressed('action1') || d.isKeyPressed('enter')) && k.engine.getGameAttribute('Controller Mode') ) { a = 0; for (var c = d.getActorsOfType(d.getActorType(589)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || (this._Cursor = e); } a = this._Cursor; if ( (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Cursor.getScreenX() + 24 >= this.actor.getScreenX() && this._Cursor.getScreenX() + 24 < this.actor.getScreenX() + this.actor.getWidth() && this._Cursor.getScreenY() + 24 >= this.actor.getScreenY() && this._Cursor.getScreenY() + 24 < this.actor.getScreenY() + this.actor.getHeight() && ((a = this._Frame), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && ('Normal' == this.actor.getAnimation() || 'Normal Boss' == this.actor.getAnimation()) && 0 == this._Frame.getValue('Overworld Frame Logic', '_ButtonPressed') && 0 == d.getValueForScene('Overworld Logic', '_ButtonPressed')) ) { this._Frame.setValue('Overworld Frame Logic', '_ButtonPressed', !0); d.stopAllSounds(); a = 0; for (c = d.getActorsOfType(d.getActorType(244)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (c = d.getActorsOfType(d.getActorType(248)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (c = d.getActorsOfType(d.getActorType(246)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (c = d.getActorsOfType(d.getActorType(291)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (c = d.getActorsOfType(d.getActorType(527)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveBy(0, -70, 0.2, J.quadOut); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)); this._BossLevel ? this.actor.setAnimation('Down Boss') : this.actor.setAnimation('Down'); d.setValueForScene('Transitions', '_TransitionType', 2); d.sayToScene('Transitions', '_customEvent_transitionOut'); d.runLater( 1e3, function (a) { gb.commercialBreak(function () { var a = Fa.get().scenes, c = d.getIDForScene('Level ' + b._LevelNumber); a = a.h[c].getID(); var e = (c = 0), f = 0; null == f && (f = 0); null == e && (e = 0); null == c && (c = 0); var k = d.createFadeOut(0.1, (c << 16) | (e << 8) | f); f = e = c = 0; null == f && (f = 0); null == e && (e = 0); null == c && (c = 0); d.switchScene(a, k, d.createFadeIn(0.1, (c << 16) | (e << 8) | f)); }); }, this.actor ); } } }, _customEvent_Go: function () { if ( 10 == this._LevelNumber || 20 == this._LevelNumber || 30 == this._LevelNumber || 40 == this._LevelNumber ) this._BossLevel = !0; this._LevelNumber <= k.engine.getGameAttribute('Highest Level') + 1 ? (this._BossLevel ? this.actor.setAnimation('Normal Boss') : this.actor.setAnimation('Normal'), this._LevelNumber <= k.engine.getGameAttribute('Highest Level') && d.createRecycledActor( d.getActorType(279), this.actor.getX() + 46, this.actor.getY() - 10, 0 ), X.contains(k.engine.getGameAttribute('Stars List'), this._LevelNumber) ? d.createRecycledActor( d.getActorType(281), this.actor.getX() + 22, this.actor.getY() - 10, 0 ) : X.contains(k.engine.getGameAttribute('No Stars List'), this._LevelNumber) || (d.createRecycledActor( d.getActorType(281), this.actor.getX() + 22, this.actor.getY() - 10, 0 ), d.getLastCreatedActor().setAnimation('Empty'))) : this._Dark ? this.actor.setAnimation('Locked Dark') : this.actor.setAnimation('Locked Light'); }, init: function () { this.actor.makeAlwaysSimulate(); for (var a = 0, b = d.getActorsOfType(d.getActorType(259)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Frame = c); } a = 0; for (b = d.getActorsOfType(d.getActorType(261)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || (this._Frame = c); d.createRecycledActor( d.getActorType(625), this.actor.getX() - 12, this.actor.getY() + 40, 0 ); this._TimerWrap = d.getLastCreatedActor(); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); this.addListener(this.actor.whenMousedOver, q(this, this._event_OnActor)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: fu }); var gu = function (a, b) { d.call(this); this.nameMap.h.Dude = '_Dude'; this.nameMap.h['Transition Col Count'] = '_TransitionColCount'; this._TransitionColCount = 0; this.nameMap.h['Transition X Center'] = '_TransitionXCenter'; this._TransitionXCenter = 0; this.nameMap.h['Transition Y Center'] = '_TransitionYCenter'; this._TransitionYCenter = 0; this.nameMap.h['Transition Type'] = '_TransitionType'; this._TransitionType = 0; this.nameMap.h['Actors to slide'] = '_Actorstoslide'; this.nameMap.h.Go = '_Go'; this._Go = !1; }; h['scripts.Design_134_134_Transitions'] = gu; gu.__name__ = 'scripts.Design_134_134_Transitions'; gu.__super__ = sa; gu.prototype = r(sa.prototype, { _Dude: null, _TransitionColCount: null, _TransitionXCenter: null, _TransitionYCenter: null, _TransitionType: null, _Actorstoslide: null, _Go: null, _customEvent_transitionIn: function () { for (var a = 0, b = d.getActorsOfType(d.getActorType(2)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Dude = c); } a = 0; for (b = d.getActorsOfType(d.getActorType(668)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || (this._Dude = c); a = 0; for (b = d.getActorsOfType(d.getActorType(740)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || (this._Dude = c); a = 0; for (b = Math.ceil(d.getScreenWidth() / 48) + 4; a < b; ) { c = a++; for (var e = 0, f = Math.ceil(d.getScreenHeight() / 48) + 4; e < f; ) { var g = e++; d.createRecycledActor( d.getActorType(100), -64 + 48 * this._TransitionColCount, -64 + 48 * g, 0 ); if (0 == this._TransitionType) { if ( ((g = this._Dude), d.isPrimitive(g) || ('string' == typeof g ? '' != x.__cast(g, String) : null != g)) ) (this._TransitionXCenter = this._Dude.getScreenX() + this._Dude.getWidth() / 2), (this._TransitionYCenter = this._Dude.getScreenY() + this._Dude.getHeight() / 2), d .getLastCreatedActor() .setValue( 'Transition Block Logic', '_Delay', 0.3 + 5e-4 * (Math.max( d.getLastCreatedActor().getScreenX() + d.getLastCreatedActor().getWidth() / 2, this._Dude.getScreenX() + this._Dude.getWidth() / 2 ) - Math.min( d.getLastCreatedActor().getScreenX() + d.getLastCreatedActor().getWidth() / 2, this._Dude.getScreenX() + this._Dude.getWidth() / 2 ) + (Math.max( d.getLastCreatedActor().getScreenY() + d.getLastCreatedActor().getHeight() / 2, this._Dude.getScreenY() + this._Dude.getHeight() / 2 ) - Math.min( d.getLastCreatedActor().getScreenY() + d.getLastCreatedActor().getHeight() / 2, this._Dude.getScreenY() + this._Dude.getHeight() / 2 ))) ); } else 1 == this._TransitionType && ((this._TransitionXCenter = d.getScreenWidth() / 2), (this._TransitionYCenter = d.getScreenHeight() / 2), d .getLastCreatedActor() .setValue( 'Transition Block Logic', '_Delay', 0.001 * (Math.max(d.getLastCreatedActor().getScreenX(), d.getScreenWidth() / 2) - Math.min(d.getLastCreatedActor().getScreenX(), d.getScreenWidth() / 2) + (Math.max(d.getLastCreatedActor().getScreenY(), d.getScreenHeight() / 2) - Math.min( d.getLastCreatedActor().getScreenY(), d.getScreenHeight() / 2 ))) )); d.getLastCreatedActor().getX() < this._TransitionXCenter && d.getLastCreatedActor().getY() < this._TransitionYCenter ? d .getLastCreatedActor() .setValue('Transition Block Logic', '_Position', 'Top Left') : d.getLastCreatedActor().getX() >= this._TransitionXCenter && d.getLastCreatedActor().getY() < this._TransitionYCenter ? d .getLastCreatedActor() .setValue('Transition Block Logic', '_Position', 'Top Right') : d.getLastCreatedActor().getX() < this._TransitionXCenter && d.getLastCreatedActor().getY() >= this._TransitionYCenter ? d .getLastCreatedActor() .setValue('Transition Block Logic', '_Position', 'Bottom Left') : d .getLastCreatedActor() .setValue('Transition Block Logic', '_Position', 'Bottom Right'); d.getLastCreatedActor().say('Transition Block Logic', '_customEvent_Go'); } this._TransitionColCount = c; } k.engine.getGameAttribute('Sound Disabled') || 'Title Screen' == d.getCurrentSceneName() || d.playSound(d.getSound(253)); }, _customEvent_transitionOut: function () { if (!this._Go) { this._Go = !0; d.stopAllSounds(); for (var a = 0, b = d.getActorsOfType(d.getActorType(2)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Dude = c); } a = 0; for (b = d.getActorsOfType(d.getActorType(668)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || (this._Dude = c); a = 0; for (b = d.getActorsOfType(d.getActorType(740)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || (this._Dude = c); a = 0; for (b = Math.ceil(d.getScreenWidth() / 48) + 4; a < b; ) { for (var e = a++, f = 0, g = Math.ceil(d.getScreenHeight() / 48) + 4; f < g; ) { c = f++; d.createRecycledActor( d.getActorType(98), -64 + 48 * this._TransitionColCount, -64 + 48 * c, 0 ); if (0 == this._TransitionType) { if ( ((c = this._Dude), d.isPrimitive(c) || ('string' == typeof c ? '' != x.__cast(c, String) : null != c)) ) { this._TransitionXCenter = this._Dude.getScreenX() + this._Dude.getWidth() / 2; this._TransitionYCenter = this._Dude.getScreenY() + this._Dude.getHeight() / 2; d.getLastCreatedActor().setValue( 'Transition Block Logic', '_Delay', 5e-4 * ((d.getScreenWidth() + d.getScreenHeight()) / 2 - (Math.max( d.getLastCreatedActor().getScreenX() + d.getLastCreatedActor().getWidth() / 2, this._Dude.getScreenX() + this._Dude.getWidth() / 2 ) - Math.min( d.getLastCreatedActor().getScreenX() + d.getLastCreatedActor().getWidth() / 2, this._Dude.getScreenX() + this._Dude.getWidth() / 2 ) + (Math.max( d.getLastCreatedActor().getScreenY() + d.getLastCreatedActor().getHeight() / 2, this._Dude.getScreenY() + this._Dude.getHeight() / 2 ) - Math.min( d.getLastCreatedActor().getScreenY() + d.getLastCreatedActor().getHeight() / 2, this._Dude.getScreenY() + this._Dude.getHeight() / 2 )))) ); this._Dude.bringToFront(); this._Dude.moveToTop(); for (var h = 0, l = d.getActorsOfType(d.getActorType(537)); h < l.length; ) (c = l[h]), ++h, null == c || c.dead || c.recycled || (c.bringToFront(), c.moveToTop()); c = 0; for (h = d.getActorsOfType(d.getActorType(159)); c < h.length; ) (l = h[c]), ++c, null == l || l.dead || l.recycled || (l.bringToFront(), l.moveToTop()); } } else 1 == this._TransitionType ? ((this._TransitionXCenter = d.getScreenWidth() / 2), (this._TransitionYCenter = d.getScreenHeight() / 2), d .getLastCreatedActor() .setValue( 'Transition Block Logic', '_Delay', 0.001 * (Math.max( d.getLastCreatedActor().getScreenX(), d.getScreenWidth() / 2 ) - Math.min( d.getLastCreatedActor().getScreenX(), d.getScreenWidth() / 2 ) + (Math.max( d.getLastCreatedActor().getScreenY(), d.getScreenHeight() / 2 ) - Math.min( d.getLastCreatedActor().getScreenY(), d.getScreenHeight() / 2 ))) )) : 2 == this._TransitionType && ((this._TransitionXCenter = d.getScreenWidth() / 2), (this._TransitionYCenter = d.getScreenHeight() / 2), d .getLastCreatedActor() .setValue( 'Transition Block Logic', '_Delay', 0.001 * ((d.getScreenWidth() + d.getScreenHeight()) / 2 - (Math.max( d.getLastCreatedActor().getScreenX(), d.getScreenWidth() / 2 ) - Math.min( d.getLastCreatedActor().getScreenX(), d.getScreenWidth() / 2 ) + (Math.max( d.getLastCreatedActor().getScreenY(), d.getScreenHeight() / 2 ) - Math.min( d.getLastCreatedActor().getScreenY(), d.getScreenHeight() / 2 )))) )); d.getLastCreatedActor().getX() < this._TransitionXCenter && d.getLastCreatedActor().getY() < this._TransitionYCenter ? d .getLastCreatedActor() .setValue('Transition Block Logic', '_Position', 'Top Left') : d.getLastCreatedActor().getX() >= this._TransitionXCenter && d.getLastCreatedActor().getY() < this._TransitionYCenter ? d .getLastCreatedActor() .setValue('Transition Block Logic', '_Position', 'Top Right') : d.getLastCreatedActor().getX() < this._TransitionXCenter && d.getLastCreatedActor().getY() >= this._TransitionYCenter ? d .getLastCreatedActor() .setValue('Transition Block Logic', '_Position', 'Bottom Left') : d .getLastCreatedActor() .setValue('Transition Block Logic', '_Position', 'Bottom Right'); d.getLastCreatedActor().say('Transition Block Logic', '_customEvent_Go'); } this._TransitionColCount = e; e = 0; for (f = d.getActorsOfType(d.getActorType(8)); e < f.length; ) (g = f[e]), ++e, null == g || g.dead || g.recycled || g.disableActorDrawing(); e = 0; for (f = d.getActorsOfType(d.getActorType(4)); e < f.length; ) (g = f[e]), ++e, null == g || g.dead || g.recycled || g.disableActorDrawing(); e = 0; for (f = d.getActorsOfType(d.getActorType(6)); e < f.length; ) (g = f[e]), ++e, null == g || g.dead || g.recycled || g.disableActorDrawing(); } k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(254)); } }, _customEvent_wipeOutRight: function () { var a = this; this._Actorstoslide = []; for (var b = 0, c = Math.ceil((d.getScreenHeight() + 10) / 128); b < c; ) { var e = b++; d.createRecycledActor(d.getActorType(297), d.getScreenWidth(), 128 * e, 0); this._Actorstoslide.push(d.getLastCreatedActor()); } d.createRecycledActor(d.getActorType(283), d.getScreenWidth() + 30, -5, 0); this._Actorstoslide.push(d.getLastCreatedActor()); d.runLater( 100, function (b) { b = 0; for (var c = x.__cast(a._Actorstoslide, Array); b < c.length; ) { var e = c[b]; ++b; e.moveBy(-(d.getScreenWidth() + 32), 0, 0.4, J.quadInOut); } }, null ); }, _customEvent_wipeInRight: function () { var a = this; this._Actorstoslide = []; for (var b = 0, c = Math.ceil((d.getScreenHeight() + 10) / 128); b < c; ) { var e = b++; d.createRecycledActor(d.getActorType(297), d.getScreenWidth(), 128 * e, 0); d.getLastCreatedActor().setAnimation('Left'); this._Actorstoslide.push(d.getLastCreatedActor()); } d.createRecycledActor(d.getActorType(283), -8, -5, 0); this._Actorstoslide.push(d.getLastCreatedActor()); d.runLater( 100, function (b) { b = 0; for (var c = x.__cast(a._Actorstoslide, Array); b < c.length; ) { var e = c[b]; ++b; e.moveBy(-(d.getScreenWidth() + 32), 0, 0.4, J.quadInOut); } d.runLater( 500, function (a) { a = 0; for (var b = d.getActorsOfType(d.getActorType(283)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || d.recycleActor(c); } a = 0; for (b = d.getActorsOfType(d.getActorType(297)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || d.recycleActor(c); }, null ); }, null ); }, _customEvent_wipeOutLeft: function () { var a = this; this._Actorstoslide = []; for (var b = 0, c = Math.ceil((d.getScreenHeight() + 10) / 128); b < c; ) { var e = b++; d.createRecycledActor(d.getActorType(297), -32, 128 * e, 0); d.getLastCreatedActor().setAnimation('Left'); this._Actorstoslide.push(d.getLastCreatedActor()); } d.createRecycledActor(d.getActorType(283), -(d.getScreenWidth() + 30) - 8, -5, 0); this._Actorstoslide.push(d.getLastCreatedActor()); d.runLater( 100, function (b) { b = 0; for (var c = x.__cast(a._Actorstoslide, Array); b < c.length; ) { var e = c[b]; ++b; e.moveBy(d.getScreenWidth() + 32, 0, 0.4, J.quadInOut); } }, null ); }, _customEvent_wipeInLeft: function () { var a = this; this._Actorstoslide = []; for (var b = 0, c = Math.ceil((d.getScreenHeight() + 10) / 128); b < c; ) { var e = b++; d.createRecycledActor(d.getActorType(297), -32, 128 * e, 0); this._Actorstoslide.push(d.getLastCreatedActor()); } d.createRecycledActor(d.getActorType(283), -2, -5, 0); this._Actorstoslide.push(d.getLastCreatedActor()); d.runLater( 100, function (b) { b = 0; for (var c = x.__cast(a._Actorstoslide, Array); b < c.length; ) { var e = c[b]; ++b; e.moveBy(d.getScreenWidth() + 32, 0, 0.4, J.quadInOut); } d.runLater( 500, function (a) { a = 0; for (var b = d.getActorsOfType(d.getActorType(283)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || d.recycleActor(c); } a = 0; for (b = d.getActorsOfType(d.getActorType(297)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || d.recycleActor(c); }, null ); }, null ); }, init: function () {}, forwardMessage: function (a) {}, __class__: gu }); var hu = function (a, b) { d.call(this); this.nameMap.h['Home Button'] = '_HomeButton'; this.nameMap.h['Music Button'] = '_MusicButton'; this.nameMap.h['Sound Button'] = '_SoundButton'; this.nameMap.h['Ads Button'] = '_AdsButton'; this.nameMap.h['Button Pressed'] = '_ButtonPressed'; this._ButtonPressed = !1; this.nameMap.h['In Position'] = '_InPosition'; this._InPosition = !1; this.nameMap.h.Overlay = '_Overlay'; this.nameMap.h.Ready = '_Ready'; this._Ready = !1; this.nameMap.h['Star Count'] = '_StarCount'; this.nameMap.h['Possum Button'] = '_PossumButton'; this.nameMap.h['Show Possum Text'] = '_ShowPossumText'; this._ShowPossumText = !1; this.nameMap.h.Cursor = '_Cursor'; this.nameMap.h['Timer Button'] = '_TimerButton'; }; h['scripts.Design_138_138_OverworldLogic'] = hu; hu.__name__ = 'scripts.Design_138_138_OverworldLogic'; hu.__super__ = sa; hu.prototype = r(sa.prototype, { _HomeButton: null, _MusicButton: null, _SoundButton: null, _AdsButton: null, _ButtonPressed: null, _InPosition: null, _Overlay: null, _Ready: null, _StarCount: null, _PossumButton: null, _ShowPossumText: null, _Cursor: null, _TimerButton: null, _event_Updating: function (a) { var b = this; if ( this.wrapper.enabled && (this._Ready ? ((a = this._Cursor), (a = d.isPrimitive(a) ? !0 : 'string' == typeof a ? '' != x.__cast(a, String) : null != a)) : (a = !1), a) ) { a = this._HomeButton; if ( (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._InPosition && !this._ButtonPressed && (this._HomeButton.isMousePressed() || (k.engine.getGameAttribute('Controller Mode') && (d.isKeyPressed('enter') || d.isKeyPressed('action1')) && this._Cursor.getX() + 24 >= this._HomeButton.getX() && this._Cursor.getX() + 24 < this._HomeButton.getX() + this._HomeButton.getWidth() && this._Cursor.getY() + 24 >= this._HomeButton.getY() && this._Cursor.getY() + 24 < this._HomeButton.getY() + this._HomeButton.getHeight())) ) { this._ButtonPressed = !0; this._HomeButton.setAnimation('Down'); d.stopAllSounds(); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)); d.runLater( 300, function (a) { d.setValueForScene('Transitions', '_TransitionType', 2); d.sayToScene('Transitions', '_customEvent_transitionOut'); }, null ); d.runLater( 2e3, function (a) { a = Fa.get().scenes.h[4].getID(); var b = 0, c = 0, e = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); var f = d.createFadeOut(0.3, (b << 16) | (c << 8) | e); e = c = b = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, f, d.createFadeIn(0.3, (b << 16) | (c << 8) | e)); }, null ); a = 0; for (var c = d.getActorsOfType(d.getActorType(244)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || e.moveBy(0, -70, 0.2, J.quadOut); } a = 0; for (c = d.getActorsOfType(d.getActorType(248)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (c = d.getActorsOfType(d.getActorType(246)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (c = d.getActorsOfType(d.getActorType(291)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (c = d.getActorsOfType(d.getActorType(527)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveBy(0, -70, 0.2, J.quadOut); a = 0; for (c = d.getActorsOfType(d.getActorType(539)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveBy(0, 70, 0.2, J.quadOut); a = 0; for (c = d.getActorsOfType(d.getActorType(622)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveBy(0, 70, 0.2, J.quadOut); } a = this._SoundButton; (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._InPosition && !this._ButtonPressed && (this._SoundButton.isMousePressed() || (k.engine.getGameAttribute('Controller Mode') && (d.isKeyPressed('enter') || d.isKeyPressed('action1')) && this._Cursor.getX() + 24 >= this._SoundButton.getX() && this._Cursor.getX() + 24 < this._SoundButton.getX() + this._SoundButton.getWidth() && this._Cursor.getY() + 24 >= this._SoundButton.getY() && this._Cursor.getY() + 24 < this._SoundButton.getY() + this._SoundButton.getHeight())) && ((this._ButtonPressed = !0), this._SoundButton.setAnimation('Down'), k.engine.getGameAttribute('Sound Disabled') ? ((k.engine.gameAttributes.h['Sound Disabled'] = !1), d.setVolumeForChannel(1, 15)) : k.engine.getGameAttribute('Sound Disabled') || ((k.engine.gameAttributes.h['Sound Disabled'] = !0), d.setVolumeForChannel(0, 15)), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)), d.saveGame('mySave', function (a) {}), d.runLater( 200, function (a) { b._ButtonPressed = !1; k.engine.getGameAttribute('Sound Disabled') ? b._SoundButton.setAnimation('Off') : b._SoundButton.setAnimation('On'); }, null )); a = this._MusicButton; (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._InPosition && !this._ButtonPressed && (this._MusicButton.isMousePressed() || (k.engine.getGameAttribute('Controller Mode') && (d.isKeyPressed('enter') || d.isKeyPressed('action1')) && this._Cursor.getX() + 24 >= this._MusicButton.getX() && this._Cursor.getX() + 24 < this._MusicButton.getX() + this._MusicButton.getWidth() && this._Cursor.getY() + 24 >= this._MusicButton.getY() && this._Cursor.getY() + 24 < this._MusicButton.getY() + this._MusicButton.getHeight())) && ((this._ButtonPressed = !0), this._MusicButton.setAnimation('Down'), k.engine.getGameAttribute('Music Disabled') ? ((k.engine.gameAttributes.h['Music Disabled'] = !1), d.setVolumeForChannel(1, 16)) : k.engine.getGameAttribute('Music Disabled') || ((k.engine.gameAttributes.h['Music Disabled'] = !0), d.setVolumeForChannel(0, 16)), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)), d.saveGame('mySave', function (a) {}), d.runLater( 200, function (a) { b._ButtonPressed = !1; k.engine.getGameAttribute('Music Disabled') ? b._MusicButton.setAnimation('Off') : b._MusicButton.setAnimation('On'); }, null )); a = this._TimerButton; (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._InPosition && !this._ButtonPressed && (this._TimerButton.isMousePressed() || (k.engine.getGameAttribute('Controller Mode') && (d.isKeyPressed('enter') || d.isKeyPressed('action1')) && this._Cursor.getX() + 24 >= this._TimerButton.getX() && this._Cursor.getX() + 24 < this._TimerButton.getX() + this._TimerButton.getWidth() && this._Cursor.getY() + 24 >= this._TimerButton.getY() && this._Cursor.getY() + 24 < this._TimerButton.getY() + this._TimerButton.getHeight())) && ((this._ButtonPressed = !0), this._TimerButton.setAnimation('Down'), k.engine.getGameAttribute('Timer Mode') ? (k.engine.gameAttributes.h['Timer Mode'] = !1) : k.engine.getGameAttribute('Timer Mode') || (k.engine.gameAttributes.h['Timer Mode'] = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)), d.saveGame('mySave', function (a) {}), d.runLater( 200, function (a) { b._ButtonPressed = !1; k.engine.getGameAttribute('Timer Mode') ? b._TimerButton.setAnimation('On') : b._TimerButton.setAnimation('Off'); }, null )); a = this._PossumButton; (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._InPosition && !this._ButtonPressed && (this._PossumButton.isMousePressed() || (k.engine.getGameAttribute('Controller Mode') && (d.isKeyPressed('enter') || d.isKeyPressed('action1')) && this._Cursor.getX() + 24 >= this._PossumButton.getX() && this._Cursor.getX() + 24 < this._PossumButton.getX() + this._PossumButton.getWidth() && this._Cursor.getY() + 24 >= this._PossumButton.getY() && this._Cursor.getY() + 24 < this._PossumButton.getY() + this._PossumButton.getHeight())) && ((this._ButtonPressed = !0), 'JP' == k.engine.getGameAttribute('Language') ? this._PossumButton.setAnimation('JP Down') : 'CN' == k.engine.getGameAttribute('Language') ? this._PossumButton.setAnimation('CN Down') : 'KR' == k.engine.getGameAttribute('Language') ? this._PossumButton.setAnimation('KR Down') : this._PossumButton.setAnimation('Down'), k.engine.getGameAttribute('Possum Mode') ? (k.engine.gameAttributes.h['Possum Mode'] = !1) : k.engine.getGameAttribute('Possum Mode') || (k.engine.gameAttributes.h['Possum Mode'] = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)), d.runLater( 200, function (a) { b._ButtonPressed = !1; k.engine.getGameAttribute('Possum Mode') ? 'JP' == k.engine.getGameAttribute('Language') ? b._PossumButton.setAnimation('JP On') : 'CN' == k.engine.getGameAttribute('Language') ? b._PossumButton.setAnimation('CN On') : 'KR' == k.engine.getGameAttribute('Language') ? b._PossumButton.setAnimation('KR On') : b._PossumButton.setAnimation('On') : 'JP' == k.engine.getGameAttribute('Language') ? b._PossumButton.setAnimation('JP Off') : 'CN' == k.engine.getGameAttribute('Language') ? b._PossumButton.setAnimation('CN Off') : 'KR' == k.engine.getGameAttribute('Language') ? b._PossumButton.setAnimation('KR Off') : b._PossumButton.setAnimation('Off'); }, null )); } }, init: function () { var a = this; d.engine.unpause(); d.createRecycledActor( d.getActorType(589), d.getScreenWidth() / 2 - 13, d.getScreenHeight() / 2 - 13, 0 ); this._Cursor = d.getLastCreatedActor(); 34 <= k.engine.getGameAttribute('Stars List').length - 1 && !k.engine.getGameAttribute('Possum Mode Unlocked') && ((k.engine.gameAttributes.h['Possum Mode Unlocked'] = !0), d.saveGame('mySave', function (a) {})); d.runLater( 500, function (b) { a._Ready = !0; }, null ); k.engine.getGameAttribute('Start Overworld Music') && ((k.engine.gameAttributes.h['Start Overworld Music'] = !1), d.runLater( 300, function (a) { d.loopSoundOnChannel(d.getSound(450), 16); k.engine.getGameAttribute('Music Disabled') && d.setVolumeForChannel(0, 16); }, null )); k.engine.getGameAttribute('Wipe In Right') ? ((k.engine.gameAttributes.h['Wipe In Right'] = !1), d.createRecycledActor(d.getActorType(283), -5, -5, 0), (this._Overlay = d.getLastCreatedActor()), d.runLater( 100, function (b) { d.sayToScene('Transitions', '_customEvent_wipeInRight'); d.recycleActor(a._Overlay); }, null )) : k.engine.getGameAttribute('Wipe In Left') ? ((k.engine.gameAttributes.h['Wipe In Left'] = !1), d.createRecycledActor(d.getActorType(283), -5, -5, 0), (this._Overlay = d.getLastCreatedActor()), d.runLater( 100, function (b) { d.sayToScene('Transitions', '_customEvent_wipeInLeft'); d.recycleActor(a._Overlay); }, null )) : (d.createRecycledActor(d.getActorType(283), -5, -5, 0), (this._Overlay = d.getLastCreatedActor()), d.runLater( 100, function (b) { d.setValueForScene('Transitions', '_TransitionType', 1); d.sayToScene('Transitions', '_customEvent_transitionIn'); d.recycleActor(a._Overlay); }, null )); d.createRecycledActor(d.getActorType(291), 18, -50, 0); this._HomeButton = d.getLastCreatedActor(); this._HomeButton.makeAlwaysSimulate(); this._HomeButton.anchorToScreen(); 0 < k.engine.getGameAttribute('Stars List').length - 1 && (d.createRecycledActor(d.getActorType(527), 84, -50, 0), (this._StarCount = d.getLastCreatedActor())); d.createRecycledActor(d.getActorType(248), d.getScreenWidth() - 66, -50, 0); this._MusicButton = d.getLastCreatedActor(); this._MusicButton.makeAlwaysSimulate(); this._MusicButton.anchorToScreen(); d.createRecycledActor(d.getActorType(246), d.getScreenWidth() - 122, -50, 0); this._SoundButton = d.getLastCreatedActor(); this._SoundButton.makeAlwaysSimulate(); this._SoundButton.anchorToScreen(); k.engine.getGameAttribute('Sound Disabled') && this._SoundButton.setAnimation('Off'); k.engine.getGameAttribute('Music Disabled') && this._MusicButton.setAnimation('Off'); 40 <= k.engine.getGameAttribute('Highest Level') && (d.createRecycledActor(d.getActorType(622), 18, d.getScreenHeight(), 0), (this._TimerButton = d.getLastCreatedActor()), this._TimerButton.makeAlwaysSimulate(), this._TimerButton.anchorToScreen(), k.engine.getGameAttribute('Timer Mode') || this._TimerButton.setAnimation('Off')); k.engine.getGameAttribute('Possum Mode Unlocked') && (d.createRecycledActor( d.getActorType(539), d.getScreenWidth() - 202, d.getScreenHeight(), 0 ), (this._PossumButton = d.getLastCreatedActor()), this._PossumButton.makeAlwaysSimulate(), this._PossumButton.anchorToScreen(), k.engine.getGameAttribute('Possum Mode') || this._PossumButton.setAnimation('Off')); d.runLater( 900, function (b) { a._HomeButton.moveBy(0, 68, 0.8, J.elasticOut); b = a._StarCount; (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && d.runLater( 100, function (b) { a._StarCount.moveBy(0, 76, 0.8, J.elasticOut); }, null ); d.runLater( 200, function (b) { a._MusicButton.moveBy(0, 68, 0.8, J.elasticOut); }, null ); d.runLater( 300, function (b) { a._SoundButton.moveBy(0, 68, 0.8, J.elasticOut); }, null ); d.runLater( 400, function (b) { b = a._AdsButton; (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && a._AdsButton.moveBy(0, 68, 0.8, J.elasticOut); }, null ); d.runLater( 500, function (b) { b = a._PossumButton; (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && a._PossumButton.moveBy(0, -68, 0.8, J.elasticOut); b = a._TimerButton; (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && a._TimerButton.moveBy(0, -68, 0.8, J.elasticOut); }, null ); d.runLater( 1220, function (b) { a._InPosition = !0; }, null ); }, null ); this._Cursor.moveToTop(); D.mapJoystickButton('0', 'action1'); D.mapJoystickButton('1', 'action1'); D.mapJoystickButton('2', 'action1'); D.mapJoystickButton('3', 'action1'); this.addListener(d.engine.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: hu }); var iu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Object To Rotate'] = '_ObjectToRotate'; this.nameMap.h['Chain Length'] = '_ChainLength'; this._ChainLength = 2; this.nameMap.h.Speed = '_Speed'; this._Speed = 6; this.nameMap.h['Object Width'] = '_ObjectWidth'; this._ObjectWidth = 0; this.nameMap.h['Object Height'] = '_ObjectHeight'; this._ObjectHeight = 0; this.nameMap.h['Object List'] = '_ObjectList'; this.nameMap.h['Alternate Spikes'] = '_AlternateSpikes'; this._AlternateSpikes = !1; }; h['scripts.Design_14_14_RotatorLogic'] = iu; iu.__name__ = 'scripts.Design_14_14_RotatorLogic'; iu.__super__ = u; iu.prototype = r(u.prototype, { _ObjectToRotate: null, _ChainLength: null, _Speed: null, _ObjectWidth: null, _ObjectHeight: null, _ObjectList: null, _AlternateSpikes: null, init: function () { this.actor.makeAlwaysSimulate(); var a = this._ObjectToRotate; if (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) { this._ObjectList = []; d.createRecycledActor(this._ObjectToRotate, -500, -500, 0); d.getLastCreatedActor().makeAlwaysSimulate(); this._ObjectWidth = d.getLastCreatedActor().getWidth(); this._ObjectHeight = d.getLastCreatedActor().getHeight(); d.recycleActor(d.getLastCreatedActor()); a = 0; for (var b = this._ChainLength | 0; a < b; ) { var c = a++; d.createRecycledActorOnLayer( d.getActorType(26), this.actor.getXCenter() - 6, this.actor.getYCenter() - 16 * (c + 1) - 6, d.engine.getLayerById(this.actor.getLayerID()) ); this._ObjectList.push(d.getLastCreatedActor()); d.createRecycledActorOnLayer( d.getActorType(26), this.actor.getXCenter() - 6, this.actor.getYCenter() + 16 * (c + 1) - 6, d.engine.getLayerById(this.actor.getLayerID()) ); this._ObjectList.push(d.getLastCreatedActor()); d.createRecycledActorOnLayer( d.getActorType(26), this.actor.getXCenter() - 16 * (c + 1) - 6, this.actor.getYCenter() - 6, d.engine.getLayerById(this.actor.getLayerID()) ); this._ObjectList.push(d.getLastCreatedActor()); d.createRecycledActorOnLayer( d.getActorType(26), this.actor.getXCenter() + 16 * (c + 1) - 6, this.actor.getYCenter() - 6, d.engine.getLayerById(this.actor.getLayerID()) ); this._ObjectList.push(d.getLastCreatedActor()); } d.createRecycledActorOnLayer( this._ObjectToRotate, this.actor.getXCenter() - this._ObjectWidth / 2, this.actor.getYCenter() - 16 * (this._ChainLength + 1) - this._ObjectHeight / 2, d.engine.getLayerById(this.actor.getLayerID()) ); this._ObjectList.push(d.getLastCreatedActor()); d.createRecycledActorOnLayer( this._ObjectToRotate, this.actor.getXCenter() - this._ObjectWidth / 2, this.actor.getYCenter() + 16 * (this._ChainLength + 1) - this._ObjectHeight / 2, d.engine.getLayerById(this.actor.getLayerID()) ); this._ObjectList.push(d.getLastCreatedActor()); this._AlternateSpikes ? d.createRecycledActorOnLayer( d.getActorType(42), this.actor.getXCenter() - 16 * (this._ChainLength + 1) - 17, this.actor.getYCenter() - 17, d.engine.getLayerById(this.actor.getLayerID()) ) : d.createRecycledActorOnLayer( this._ObjectToRotate, this.actor.getXCenter() - 16 * (this._ChainLength + 1) - this._ObjectWidth / 2, this.actor.getYCenter() - this._ObjectHeight / 2, d.engine.getLayerById(this.actor.getLayerID()) ); this._ObjectList.push(d.getLastCreatedActor()); this._AlternateSpikes ? d.createRecycledActorOnLayer( d.getActorType(42), this.actor.getXCenter() + 16 * (this._ChainLength + 1) - 17, this.actor.getYCenter() - 17, d.engine.getLayerById(this.actor.getLayerID()) ) : d.createRecycledActorOnLayer( this._ObjectToRotate, this.actor.getXCenter() + 16 * (this._ChainLength + 1) - this._ObjectWidth / 2, this.actor.getYCenter() - this._ObjectHeight / 2, d.engine.getLayerById(this.actor.getLayerID()) ); this._ObjectList.push(d.getLastCreatedActor()); a = 0; for (b = x.__cast(this._ObjectList, Array); a < b.length; ) (c = b[a]), ++a, c.setValue('Rotator Object', '_OriginActor', this.actor), c.setValue('Rotator Object', '_Speed', this._Speed), c.say('Rotator Object', '_customEvent_Initialize'); } }, forwardMessage: function (a) {}, __class__: iu }); var ju = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Distance X'] = '_DistanceX'; this._DistanceX = 0; this.nameMap.h['Distance Y'] = '_DistanceY'; this._DistanceY = 0; this.nameMap.h.Direction = '_Direction'; this._Direction = 0; this.nameMap.h.Distance = '_Distance'; this._Distance = 0; this.nameMap.h.Speed = '_Speed'; this._Speed = 10; this.nameMap.h.Facing = '_Facing'; this._Facing = 0; this.nameMap.h['Point Away'] = '_PointAway'; this._PointAway = !0; this.nameMap.h['Origin Actor'] = '_OriginActor'; this.nameMap.h['Step Seconds'] = '_StepSeconds'; this._StepSeconds = 0; this.nameMap.h['New Distance'] = '_NewDistance'; this._NewDistance = 0; this.nameMap.h['Distance Threshold'] = '_DistanceThreshold'; this._DistanceThreshold = 10; this.nameMap.h['Fixed Radius'] = '_FixedRadius'; this._FixedRadius = !0; }; h['scripts.Design_16_16_RotateAroundActor'] = ju; ju.__name__ = 'scripts.Design_16_16_RotateAroundActor'; ju.__super__ = u; ju.prototype = r(u.prototype, { _DistanceX: null, _DistanceY: null, _Direction: null, _Distance: null, _Speed: null, _Facing: null, _PointAway: null, _OriginActor: null, _StepSeconds: null, _NewDistance: null, _DistanceThreshold: null, _FixedRadius: null, _event_Updated: function (a) { this.wrapper.enabled && ((a = this._OriginActor), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._OriginActor.isAlive() && (this._FixedRadius || ((this._DistanceX = this.actor.getXCenter() - this._OriginActor.getXCenter()), (this._DistanceY = this.actor.getYCenter() - this._OriginActor.getYCenter()), (this._NewDistance = Math.sqrt( Math.pow(this._DistanceX, 2) + Math.pow(this._DistanceY, 2) )), Math.abs(this._NewDistance - this._Distance) > this._DistanceThreshold && ((this._Distance = this._NewDistance), (this._Direction = Math.atan2(this._DistanceY, this._DistanceX)))), (this._Direction = (this._Direction += 0.01745329251994278 * this._Speed * this._StepSeconds) - 2 * Math.PI * Math.floor(this._Direction / (2 * Math.PI))), this.actor.setX( this._OriginActor.getXCenter() + this._Distance * Math.cos(this._Direction) - this.actor.getWidth() / 2 ), this.actor.setY( this._OriginActor.getYCenter() + this._Distance * Math.sin(this._Direction) - this.actor.getHeight() / 2 ), this._PointAway && this.actor.setAngle( 0.01745329251994278 * (57.29577951308402 * this._Direction - this._Facing) ))); }, _event_ActorAny: function (a) { this.wrapper.enabled && (this._Speed = -this._Speed); }, _event_Drawing: function (a, b, c) { if ( this.wrapper.enabled && (d.sceneHasBehavior('Game Debugger') ? ((b = d.getValueForScene('Game Debugger', '_Enabled')), (b = 1 == b ? !0 : 'true' == b)) : (b = !1), b && ((b = this._OriginActor), (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && this._OriginActor.isAlive())) ) { a.strokeColor = d.getValueForScene('Game Debugger', '_CustomColor'); b = d.getValueForScene('Game Debugger', '_StrokeThickness'); a.strokeSize = (null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b))) | 0; a.drawActor = !1; a.actor = null; a.x = 0; a.y = 0; b = this._OriginActor.getXCenter(); c = this._OriginActor.getYCenter(); var e = this._Distance; b *= a.scaleX; c *= a.scaleY; e *= a.scaleX; !a.drawActor || (null != a.actor && a.actor.isHUD) || ((a.x -= k.cameraX), (a.y -= k.cameraY)); 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * k.SCALE, a.strokeColor, a.alpha); a.graphics.drawCircle(a.x + b, a.y + c, e); a.drawActor && !a.actor.isHUD && ((a.x += k.cameraX), (a.y += k.cameraY)); a.graphics.lineStyle(); b = this._OriginActor.getXCenter(); c = this._OriginActor.getYCenter(); e = this.actor.getXCenter(); var f = this.actor.getYCenter(); b *= a.scaleX; c *= a.scaleY; e *= a.scaleX; f *= a.scaleY; !a.drawActor || (null != a.actor && a.actor.isHUD) || ((a.x -= k.cameraX), (a.y -= k.cameraY)); 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * k.SCALE, a.strokeColor, a.alpha); a.graphics.moveTo(a.x + b, a.y + c); a.graphics.lineTo(a.x + e, a.y + f); a.drawActor && !a.actor.isHUD && ((a.x += k.cameraX), (a.y += k.cameraY)); a.graphics.lineStyle(); } }, _customEvent_Initialize: function () { var a = this._OriginActor; (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._OriginActor.isAlive() && ((this._DistanceX = this.actor.getXCenter() - this._OriginActor.getXCenter()), (this._DistanceY = this.actor.getYCenter() - this._OriginActor.getYCenter()), (this._Distance = Math.sqrt( Math.pow(this._DistanceX, 2) + Math.pow(this._DistanceY, 2) )), (this._Direction = Math.atan2(this._DistanceY, this._DistanceX))); }, init: function () { this._StepSeconds = d.getStepSize() / 1e3; this._customEvent_Initialize(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updated)); this.addListener(this.actor.whenCollided, q(this, this._event_ActorAny)); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); }, forwardMessage: function (a) {}, __class__: ju }); var ku = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['On Ground'] = '_OnGround'; this._OnGround = !1; this.nameMap.h['Ground Check'] = '_GroundCheck'; this._GroundCheck = !1; this.nameMap.h['Can Make Noise'] = '_CanMakeNoise'; this._CanMakeNoise = !1; this.nameMap.h['Face Left'] = '_FaceLeft'; this._FaceLeft = !0; this.nameMap.h.Speed = '_Speed'; this._Speed = 12; this.nameMap.h.Fall = '_Fall'; this._Fall = !1; this.nameMap.h['No Gravity'] = '_NoGravity'; this._NoGravity = !1; this.nameMap.h.Health = '_Health'; this._Health = 3; this.nameMap.h.Hurt = '_Hurt'; this._Hurt = !1; this.nameMap.h.Dead = '_Dead'; this._Dead = !1; this.nameMap.h['Starting Y'] = '_StartingY'; this._StartingY = 0; this.nameMap.h['Ground Amnesty'] = '_GroundAmnesty'; this._GroundAmnesty = 0; this.nameMap.h.Go = '_Go'; this._Go = !1; this.nameMap.h.Dude = '_Dude'; this.nameMap.h['Ready To Talk'] = '_ReadyToTalk'; this._ReadyToTalk = !1; this.nameMap.h['Has Entered'] = '_HasEntered'; this._HasEntered = !1; this.nameMap.h['Dialog Complete'] = '_DialogComplete'; this._DialogComplete = !1; this.nameMap.h['Dialog Text'] = '_DialogText'; this._DialogText = 'DEFAULT'; }; h['scripts.Design_188_188_Boss1Logic'] = ku; ku.__name__ = 'scripts.Design_188_188_Boss1Logic'; ku.__super__ = u; ku.prototype = r(u.prototype, { _GravitySpeed: null, _OnGround: null, _GroundCheck: null, _CanMakeNoise: null, _FaceLeft: null, _Speed: null, _Fall: null, _NoGravity: null, _Health: null, _Hurt: null, _Dead: null, _StartingY: null, _GroundAmnesty: null, _Go: null, _Dude: null, _ReadyToTalk: null, _HasEntered: null, _DialogComplete: null, _DialogText: null, _event_HitsGround: function (a) { if (this.wrapper.enabled) { var b = d.getActorGroup(1); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && a.thisFromBottom && ((this._GroundCheck = !0), (this._GroundAmnesty = 4)); }, _event_EveryNsecs: function (a) { this.wrapper.enabled && (this._OnGround || --this._GroundAmnesty); }, _event_HitsHazard: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorGroup(4); var e = a.otherActor.getType(); a = a.otherActor.getGroup(); c = c == e || c == a; } else c = !1; if (c) if (this._Hurt) this.actor.setYVelocity(-100); else if ( ((this._Hurt = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(378)), this.actor.setFilter([d.createBrightnessFilter(100)]), d.runLater( 200, function (a) { b.actor.clearFilters(); }, this.actor ), --this._Health, 0 == this._Health) ) { this._Dead = !0; d.stopSoundOnChannel(16); c = 0; for (e = d.getActorsOfType(d.getActorType(353)); c < e.length; ) (a = e[c]), ++c, null == a || a.dead || a.recycled || (a.moveBy(0, 32, 0.3, J.quadInOut), a.setValue('Button Logic', '_Hide', !0)); this._GravitySpeed = 24; this.actor.setYVelocity(-120); } }, _event_GroundandGravity: function (a) { if (this.wrapper.enabled) { if (this._GroundCheck) { if (this._Hurt) { this._Hurt = this._Fall = !1; a = 0; for (var b = d.getActorsOfType(d.getActorType(353)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c.setValue('Button Logic', '_Disable', !1); } this._FaceLeft ? this.actor.setAnimation('Left') : this.actor.setAnimation('Right'); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(105)); a = 0; for (b = d.getActorsOfType(d.getActorType(2)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || (this.actor.getXCenter() > c.getXCenter() ? d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Right') : d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Left'), d.sayToScene('Stage Logic', '_customEvent_rumble')); d.startShakingScreen(0.006999999999999999, 0.15); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); this._Dead && (d.createRecycledActorOnLayer( d.getActorType(28), this.actor.getXCenter() - 16, this.actor.getYCenter() - 16, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(0, -128, 0.6, J.backOut), d.createRecycledActorOnLayer( d.getActorType(359), this.actor.getX(), this.actor.getY() - 12, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(0, 12, 0.3, J.quadIn), this._FaceLeft ? (d.getLastCreatedActor().setAnimation('Left'), d.createRecycledActorOnLayer( d.getActorType(365), this.actor.getX() + 10, this.actor.getY() + 42, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setAnimation('Left'), d.getLastCreatedActor().setYVelocity(-80), d.createRecycledActorOnLayer( d.getActorType(363), this.actor.getX() + 38, this.actor.getY() + 16, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setAnimation('Left'), d.getLastCreatedActor().setYVelocity(-90), d.createRecycledActorOnLayer( d.getActorType(361), this.actor.getX() + 12, this.actor.getY() + 70, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setAnimation('Left'), d.getLastCreatedActor().setYVelocity(-70), d.getLastCreatedActor().moveToBottom(), d.createRecycledActorOnLayer( d.getActorType(361), this.actor.getX() + 46, this.actor.getY() + 70, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setAnimation('Left'), d.getLastCreatedActor().setYVelocity(-70)) : (d.createRecycledActorOnLayer( d.getActorType(365), this.actor.getX() + 8, this.actor.getY() + 42, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setYVelocity(-80), d.createRecycledActorOnLayer( d.getActorType(363), this.actor.getX() + 38, this.actor.getY() + 16, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setYVelocity(-90), d.createRecycledActorOnLayer( d.getActorType(361), this.actor.getX() + 14, this.actor.getY() + 70, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setYVelocity(-70), d.createRecycledActorOnLayer( d.getActorType(361), this.actor.getX() + 48, this.actor.getY() + 70, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setYVelocity(-70), d.getLastCreatedActor().moveToBottom()), d.recycleActor(this.actor)); } this._OnGround || ((this._OnGround = !0), this.actor.setYVelocity(0), this._CanMakeNoise ? k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(117)) : (this._CanMakeNoise = !0)); } else this._OnGround && 0 == this._GroundAmnesty && (this._OnGround = !1); this._GroundCheck = !1; this._Fall && !this._NoGravity && this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)); this._Fall || this._Hurt || this._Dead || (this.actor.getY() < this._StartingY && this.actor.setY(this._StartingY)); } }, _event_Movement: function (a) { var b = this; if (this.wrapper.enabled) { a = this._Dude; if ( !d.isPrimitive(a) && ('string' == typeof a ? '' == x.__cast(a, String) : null == a) ) { a = 0; for (var c = d.getActorsOfType(d.getActorType(2)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || (this._Dude = e); } } if (this._Go) { this._Fall || this._Hurt || this._Dead ? this.actor.setXVelocity(0) : (this._FaceLeft && d.tileExistsAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 32)) / 32), Math.floor(this.actor.getX() / 32), d.engine.getLayerById(0) ) && 7 < d.getTileIDAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 32)) / 32), Math.floor(this.actor.getX() / 32), d.engine.getLayerById(0) ) ? ((this._FaceLeft = !1), this.actor.setAnimation('Turn'), d.runLater( 80, function (a) { b.actor.setAnimation('Right'); }, this.actor )) : !this._FaceLeft && d.tileExistsAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 32)) / 32), Math.ceil((this.actor.getX() + this.actor.getWidth()) / 32) - 1, d.engine.getLayerById(0) ) && 7 < d.getTileIDAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 32)) / 32), Math.ceil((this.actor.getX() + this.actor.getWidth()) / 32) - 1, d.engine.getLayerById(0) ) && ((this._FaceLeft = !0), this.actor.setAnimation('Turn'), d.runLater( 80, function (a) { b.actor.setAnimation('Left'); }, this.actor )), this._FaceLeft ? this.actor.setXVelocity(-this._Speed) : this.actor.setXVelocity(this._Speed)); a = 0; for (c = d.getActorsOfType(d.getActorType(40)); a < c.length; ) if ( ((e = c[a]), ++a, null != e && !e.dead && !e.recycled && e.getValue('Button Block Logic', '_BossHoleSensor') && this.actor.getX() >= e.getX() - 1 && this.actor.getX() <= e.getX() + 1 && 'Open' == e.getAnimation()) ) { this.actor.setX(e.getX()); this.actor.setXVelocity(0); e = 0; for (var f = d.getActorsOfType(d.getActorType(353)); e < f.length; ) { var g = f[e]; ++e; null == g || g.dead || g.recycled || g.setValue('Button Logic', '_Disable', !0); } this._Fall || (this.actor.setYVelocity(0), this._FaceLeft ? this.actor.setAnimation('Left Fall') : this.actor.setAnimation('Right Fall'), (this._NoGravity = this._Fall = !0), d.runLater( 400, function (a) { b._FaceLeft ? b.actor.setAnimation('Left Fall 2') : b.actor.setAnimation('Right Fall 2'); }, this.actor ), d.runLater( 500, function (a) { b._NoGravity = !1; b.actor.setYVelocity(100); }, this.actor ), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(373))); } if (this._Hurt && this.actor.getY() < this._StartingY) for (a = 0, c = d.getActorsOfType(d.getActorType(40)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.say('Button Block Logic', '_customEvent_Reset'); } this._ReadyToTalk && (k.engine.getGameAttribute('Boss 1 Dialog Read') ? ((this._ReadyToTalk = !1), this.actor.shout('_customEvent_dialogComplete')) : ((a = this._Dude), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Dude.getValue('Dude Logic', '_OnGround') && ((this._ReadyToTalk = !1), this._DialogComplete || ((this._DialogComplete = !0), d.stopSoundOnChannel(16), d.createRecycledActor(d.getActorType(161), 0, d.getScreenHeight() - 96, 0), 'JP' == k.engine.getGameAttribute('Language') ? k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '*\u30ae\u30e3\u30fc*|\u3042\u3042\u3001\u306a\u3093\u3066\u3053\u3063\u305f\u3002' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '\u3042\u3001\u3053\u3093\u306b\u3061\u306f\uff01\u3042\u306a\u305f\u306e\u540d\u524d\u306f\u4f55\u3067\u3059\u304b\uff1f|\u79c1\u306f\u30d0\u30fc\u30ac\u30fc\u30b0\u30e9\u30fc\u3001\u30c0\u30fc\u30ca\u30c3\u30af\u537f\u306e\u7b2c3\u306e\u5b50\u5206\u3067\u3059\uff01|\u306a\u3093\u3066\u7d20\u6575\u306a\u540d\u524d\u3067\u3059\uff01\u3053\u3093\u306b\u3061\u306f\u30d0\u30fc\u30ac\u30fc\u30b0\u30e9\u30fc\u3001\u79c1\u306f\u30c0\u30c7\u30a3\u30c3\u30b7\u30e5\u3067\u3059\uff01\u79c1\u306f\u5b9f\u306f\u79c1\u306e\u5b50\u4f9b\u305f\u3061\u3092\u63a2\u3057\u3066\u3044\u307e\u3059\u3001\u3042\u306a\u305f\u306f\u305f\u307e\u305f\u307e\u3053\u3053\u3067\u5c0f\u3055\u306a\u30e9\u30c7\u30c3\u30b7\u30e5\u3092\u898b\u305f\u3053\u3068\u304c\u3042\u308a\u307e\u305b\u3093\u304b\uff1f|\u3042\u306a\u305f\u306f\u30c0\u30fc\u30ca\u30c3\u30af\u537f\u306b\u6c7a\u3057\u3066\u5c4a\u304b\u306a\u3044\u3067\u3057\u3087\u3046\uff01\u6b7b\u306c\u6e96\u5099\u3092\u3057\u306a\u3055\u3044\uff01|\u305d\u308c\u3067\u3001\u3048\u3048\u3068\u3001\u305d\u308c\u306f\u3044\u3044\u3048\u3067\u3059\u304b\uff1f' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')) : 'CN' == k.engine.getGameAttribute('Language') ? k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '*SCREECH*|\u54e6\u5929\u54ea\u3002' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '\u54e6\uff0c\u4f60\u597d\uff01\u4f60\u53eb\u4ec0\u4e48\u540d\u5b57\uff1f|\u6211\u662fBURGURGULAR\uff0c\u675c\u7eb3\u514b\u52cb\u7235\u7684\u7b2c\u4e09\u4e2a\u968f\u4ece\uff01|\u591a\u597d\u7684\u540d\u5b57\u554a\uff01\u55e8\uff0cBurgurgular\uff0c\u6211\u662f\u7238\u7238\u841d\u535c\uff01\u6211\u5b9e\u9645\u4e0a\u662f\u5728\u5bfb\u627e\u6211\u7684\u5b69\u5b50\uff0c\u4f60\u6ca1\u6709\u5728\u8fd9\u91cc\u78b0\u5230\u4efb\u4f55\u5c0f\u841d\u535c\u5417\uff1f|\u4f60\u6c38\u8fdc\u4e0d\u4f1a\u8d76\u4e0a\u675c\u7eb3\u514b\u52cb\u7235\uff01\u51c6\u5907\u53bb\u6b7b\uff01|\u90a3\u4e48\uff0c\u5443\uff0c\u53ef\u4ee5\u8bf4\u4e0d\u5417\uff1f' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')) : 'KR' == k.engine.getGameAttribute('Language') ? k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '*\uaf64\uc561*|\uc5b4 \uc774\ub7f0.' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '\uc548\ub155\ud558\uc138\uc694! \uc774\ub984\uc774 \uc5b4\ub5bb\uac8c \ub418\uc138\uc694?|\ub09c \uc704\ub300\ud558\uc2e0 \ub354\ub098\ud06c\ub2d8\uc758 \uc138 \ubc88\uc9f8 \uc218\ud558, \ubc84\uac70\uae00\ub7ec\ub2e4!|\uba4b\uc9c4 \uc774\ub984\uc774\ub124\uc694! \uc548\ub155\ud558\uc138\uc694 \ubc84\uac70\uae00\ub7ec\uc528, \uc804 \ub300\ub514\uc26c\uc5d0\uc694! \uc804 \uc0ac\uc2e4 \uc81c \uc544\uc774\ub4e4\uc744 \ucc3e\uace0 \uc788\uc5b4\uc694. \uc8fc\ubcc0\uc5d0\uc11c \ub354 \uc791\uc740 \ubb34\ub97c \ubcf8 \uc801 \uc5c6\uc73c\uc2dc\uaca0\uc8e0?|\ub10c \uc808\ub300 \ub354\ub098\ud06c\ub2d8\uaed8 \uac08 \uc218 \uc5c6\ub2e4! \uc8fd\uc744 \uc900\ube44\ub97c \ud574\ub77c!|\uc5b4, \ubabb \ubcf4\uc168\ub2e4\ub294 \uac70\uc8e0?' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')) : k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue('Dialog Box Logic', '_DialogText', '*SCREECH*|Oh my gosh'), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', "Oh, hello! What's your name?|I AM BURGURGULAR, THIRD HENCHMAN TO LORD DURNAK!|What a nice name! Hi Burgurgular, I'm Dadish! I'm actually looking for my kids, you haven't happened to have seen any smaller radishes around here have you?|YOU WILL NEVER REACH LORD DURNAK! PREPARE TO DIE!|So, uh, is that a no?" ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')), d.getLastCreatedActor().setValue('Dialog Box Logic', '_Character2', 'Boss 1'), d.getLastCreatedActor().setValue('Dialog Box Logic', '_Parent', this.actor), d.getLastCreatedActor().say('Dialog Box Logic', '_customEvent_Go'))))); } }, _event_EntersScreen: function (a, b, c, e) { var f = this; this.wrapper.enabled && a && !this._HasEntered && !this._Go && ((this._HasEntered = !0), d.runLater( 700, function (a) { f._ReadyToTalk = !0; }, this.actor )); }, _event_HitsBlock: function (a) { if (this.wrapper.enabled) { var b = d.getActorType(40); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && a.thisFromBottom && (this._GroundCheck = !0); }, _customEvent_dialogComplete: function () { var a = this; d.runLater( 200, function (b) { a._Go = !0; k.engine.gameAttributes.h['Boss 1 Dialog Read'] = !0; a.actor.setAnimation('Left'); d.loopSoundOnChannel(d.getSound(377), 16); k.engine.getGameAttribute('Music Disabled') ? d.setVolumeForChannel(0, 16) : k.engine.getGameAttribute('Music Disabled') || d.setVolumeForChannel(1, 16); }, this.actor ); }, init: function () { this.actor.makeAlwaysSimulate(); this._GravitySpeed = 48; this._GroundCheck = this._OnGround = !0; this._StartingY = this.actor.getY(); this.addListener(this.actor.whenCollided, q(this, this._event_HitsGround)); d.runPeriodically(10, q(this, this._event_EveryNsecs), this.actor); this.addListener(this.actor.whenCollided, q(this, this._event_HitsHazard)); this.addListener(this.actor.whenUpdated, q(this, this._event_GroundandGravity)); this.addListener(this.actor.whenUpdated, q(this, this._event_Movement)); this.addListener(this.actor.whenPositionStateChanged, q(this, this._event_EntersScreen)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsBlock)); }, forwardMessage: function (a) {}, __class__: ku }); var lu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Step Seconds'] = '_StepSeconds'; this._StepSeconds = 0; this.nameMap.h['Distance X'] = '_DistanceX'; this._DistanceX = 0; this.nameMap.h['Distance Y'] = '_DistanceY'; this._DistanceY = 0; this.nameMap.h.Distance = '_Distance'; this._Distance = 0; this.nameMap.h.Direction = '_Direction'; this._Direction = 0; this.nameMap.h['Origin Actor'] = '_OriginActor'; this.nameMap.h['New Distance'] = '_NewDistance'; this._NewDistance = 0; this.nameMap.h['Distance Threshold'] = '_DistanceThreshold'; this._DistanceThreshold = 10; this.nameMap.h['Fixed Radius'] = '_FixedRadius'; this._FixedRadius = !0; this.nameMap.h.Speed = '_Speed'; this._Speed = 10; this.nameMap.h.Facing = '_Facing'; this._Facing = 0; this.nameMap.h['Point Away'] = '_PointAway'; this._PointAway = !0; this.nameMap.h.ActualX = '_ActualX'; this._ActualX = 0; this.nameMap.h.ActualY = '_ActualY'; this._ActualY = 0; this.nameMap.h['Speed Tracker'] = '_SpeedTracker'; this.nameMap.h['Tracker X Speed'] = '_TrackerXSpeed'; this._TrackerXSpeed = 0; }; h['scripts.Design_18_18_RotatorObject'] = lu; lu.__name__ = 'scripts.Design_18_18_RotatorObject'; lu.__super__ = u; lu.prototype = r(u.prototype, { _StepSeconds: null, _DistanceX: null, _DistanceY: null, _Distance: null, _Direction: null, _OriginActor: null, _NewDistance: null, _DistanceThreshold: null, _FixedRadius: null, _Speed: null, _Facing: null, _PointAway: null, _ActualX: null, _ActualY: null, _SpeedTracker: null, _TrackerXSpeed: null, _event_Updated: function (a) { this.wrapper.enabled && ((a = this._OriginActor), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._OriginActor.isAlive() && (this._FixedRadius || ((this._DistanceX = this.actor.getXCenter() - this._OriginActor.getXCenter()), (this._DistanceY = this.actor.getYCenter() - this._OriginActor.getYCenter()), (this._NewDistance = Math.sqrt( Math.pow(this._DistanceX, 2) + Math.pow(this._DistanceY, 2) )), Math.abs(this._NewDistance - this._Distance) > this._DistanceThreshold && ((this._Distance = this._NewDistance), (this._Direction = Math.atan2(this._DistanceY, this._DistanceX)))), (this._Direction = (this._Direction += 0.01745329251994278 * this._Speed * this._StepSeconds) - 2 * Math.PI * Math.floor(this._Direction / (2 * Math.PI))), (this._ActualX = this._OriginActor.getXCenter() + this._Distance * Math.cos(this._Direction) - this.actor.getWidth() / 2), (this._ActualY = this._OriginActor.getYCenter() + this._Distance * Math.sin(this._Direction) - this.actor.getHeight() / 2), this.actor.setX(this._ActualX), this.actor.setY(this._ActualY))); }, _event_Updating: function (a) { this.wrapper.enabled && ((a = this._SpeedTracker), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && (this._TrackerXSpeed = this._SpeedTracker.getXVelocity()); }, _customEvent_Initialize: function () { this.actor.makeAlwaysSimulate(); var a = this._OriginActor; (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._OriginActor.isAlive() && ((this._DistanceX = this.actor.getXCenter() - this._OriginActor.getXCenter()), (this._DistanceY = this.actor.getYCenter() - this._OriginActor.getYCenter()), (this._Distance = Math.sqrt( Math.pow(this._DistanceX, 2) + Math.pow(this._DistanceY, 2) )), (this._Direction = Math.atan2(this._DistanceY, this._DistanceX))); }, init: function () { this._StepSeconds = d.getStepSize() / 1e3; this.actor.getGroup() == d.getActorGroup(5) && (d.createRecycledActor( d.getActorType(64), this.actor.getXCenter(), this.actor.getYCenter(), 0 ), (this._SpeedTracker = d.getLastCreatedActor()), this._SpeedTracker.disableActorDrawing(), this._SpeedTracker.setValue('Follow Target', '_TargetActor', this.actor)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updated)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: lu }); var mu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['On Ground'] = '_OnGround'; this._OnGround = !1; this.nameMap.h['Ground Check'] = '_GroundCheck'; this._GroundCheck = !1; this.nameMap.h['Can Make Noise'] = '_CanMakeNoise'; this._CanMakeNoise = !1; this.nameMap.h['Face Left'] = '_FaceLeft'; this._FaceLeft = !0; this.nameMap.h.Speed = '_Speed'; this._Speed = 12; this.nameMap.h.Fall = '_Fall'; this._Fall = !1; this.nameMap.h['No Gravity'] = '_NoGravity'; this._NoGravity = !1; this.nameMap.h.Health = '_Health'; this._Health = 4; this.nameMap.h.Hurt = '_Hurt'; this._Hurt = !1; this.nameMap.h.Dead = '_Dead'; this._Dead = !1; this.nameMap.h['Starting Y'] = '_StartingY'; this._StartingY = 0; this.nameMap.h['Ground Amnesty'] = '_GroundAmnesty'; this._GroundAmnesty = 0; this.nameMap.h.Go = '_Go'; this._Go = !1; this.nameMap.h.Dude = '_Dude'; this.nameMap.h['Ready To Talk'] = '_ReadyToTalk'; this._ReadyToTalk = !1; this.nameMap.h['Has Entered'] = '_HasEntered'; this._HasEntered = !1; this.nameMap.h['Dialog Complete'] = '_DialogComplete'; this._DialogComplete = !1; this.nameMap.h['Dialog Text'] = '_DialogText'; this._DialogText = 'DEFAULT'; this.nameMap.h['Can Bounce'] = '_CanBounce'; this._CanBounce = !1; }; h['scripts.Design_205_205_Boss2Logic'] = mu; mu.__name__ = 'scripts.Design_205_205_Boss2Logic'; mu.__super__ = u; mu.prototype = r(u.prototype, { _GravitySpeed: null, _OnGround: null, _GroundCheck: null, _CanMakeNoise: null, _FaceLeft: null, _Speed: null, _Fall: null, _NoGravity: null, _Health: null, _Hurt: null, _Dead: null, _StartingY: null, _GroundAmnesty: null, _Go: null, _Dude: null, _ReadyToTalk: null, _HasEntered: null, _DialogComplete: null, _DialogText: null, _CanBounce: null, _event_HitsGround: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorGroup(1); var e = a.otherActor.getType(), f = a.otherActor.getGroup(); c = c == e || c == f; } else c = !1; c && this._Go && (this._Dead ? (d.createRecycledActorOnLayer( d.getActorType(385), this.actor.getX(), this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(105)), d.startShakingScreen(0.006999999999999999, 0.15), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() / 2 - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setAnimation('Dirt'), d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() - 8, this.actor.getY() + this.actor.getHeight() / 2 - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setAnimation('Dirt'), d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 8, this.actor.getY() + this.actor.getHeight() / 2 - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setAnimation('Dirt'), d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut), d.recycleActor(this.actor)) : (a.thisFromBottom && ((this._GroundCheck = !0), (this._GroundAmnesty = 4)), a.thisFromLeft && ((this._FaceLeft = !1), this.actor.setAnimation('Turn'), this.actor.setXVelocity(this._Speed), d.runLater( 200, function (a) { b.actor.setAnimation('Right'); }, this.actor )), a.thisFromRight && ((this._FaceLeft = !0), this.actor.setAnimation('Turn'), this.actor.setXVelocity(-this._Speed), d.runLater( 200, function (a) { b.actor.setAnimation('Left'); }, this.actor )))); }, _event_EveryNsecs: function (a) { this.wrapper.enabled && (this._OnGround || --this._GroundAmnesty); }, _event_HitsHazard: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorGroup(4); var e = a.otherActor.getType(), f = a.otherActor.getGroup(); c = c == e || c == f; } else c = !1; if ( c && !this._Hurt && ((this._Hurt = !0), (this._Speed *= 1.3), a.otherActor.getType() == d.getActorType(211) && a.otherActor.shout('_customEvent_Destroy'), this.actor.setXVelocity(0), this.actor.setYVelocity(0), (this._NoGravity = !0), --this._Health, this.actor.setFilter([d.createBrightnessFilter(100)]), d.runLater( 200, function (a) { b.actor.clearFilters(); }, this.actor ), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(378)), 0 < this._Health && (d.runLater( 400, function (a) { b._NoGravity = !1; }, this.actor ), this._FaceLeft ? this.actor.setAnimation('Left Hurt') : this.actor.setAnimation('Right Hurt')), 0 == this._Health) ) { d.runLater( 200, function (a) { b.actor.setAnimation('Dead Spin'); }, this.actor ); d.runLater( 600, function (a) { b._NoGravity = !1; }, this.actor ); this._Dead = !0; d.stopSoundOnChannel(16); a = 0; for (c = d.getActorsOfType(d.getActorType(353)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || (e.moveBy(0, 32, 0.3, J.quadInOut), e.setValue('Button Logic', '_Hide', !0)); a = 0; for (c = d.getActorsOfType(d.getActorType(208)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || (e.moveBy(-32, 0, 0.3, J.quadInOut), e.setValue('Button Logic', '_Hide', !0)); a = 0; for (c = d.getActorsOfType(d.getActorType(213)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || (e.moveBy(32, 0, 0.3, J.quadInOut), e.setValue('Button Logic', '_Hide', !0)); } }, _event_GroundandGravity: function (a) { var b = this; if (this.wrapper.enabled) { if (this._Go) if (this._GroundCheck) { if (!this._OnGround) { this._OnGround = !0; this._Hurt = !1; this.actor.setXVelocity(0); this.actor.setYVelocity(0); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(105)); a = 0; for (var c = d.getActorsOfType(d.getActorType(2)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || (this.actor.getXCenter() > e.getXCenter() ? d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Right') : d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Left'), d.sayToScene('Stage Logic', '_customEvent_rumble')); } d.startShakingScreen(0.004, 0.15); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); this._FaceLeft ? this.actor.setAnimation('Left Bounce') : this.actor.setAnimation('Right Bounce'); this.actor.setCurrentFrame(0); d.runLater( 100, function (a) { b._FaceLeft ? b.actor.setXVelocity(-b._Speed) : b.actor.setXVelocity(b._Speed); b.actor.setYVelocity(-90); }, this.actor ); } } else this._OnGround = !1; this._GroundCheck = !1; this._Go && !this._NoGravity && this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)); } }, _event_Movement: function (a) { if (this.wrapper.enabled) { a = this._Dude; if ( !d.isPrimitive(a) && ('string' == typeof a ? '' == x.__cast(a, String) : null == a) ) { a = 0; for (var b = d.getActorsOfType(d.getActorType(2)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Dude = c); } } this._ReadyToTalk && (k.engine.getGameAttribute('Boss 2 Dialog Read') ? ((this._ReadyToTalk = !1), this.actor.shout('_customEvent_dialogComplete')) : ((a = this._Dude), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Dude.getValue('Dude Logic', '_OnGround') && ((this._ReadyToTalk = !1), this._DialogComplete || ((this._DialogComplete = !0), d.stopSoundOnChannel(16), d.createRecycledActor(d.getActorType(161), 0, d.getScreenHeight() - 96, 0), 'JP' == k.engine.getGameAttribute('Language') ? k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '*\u30ae\u30e3\u30fc*|\u3042\u3042\u3001\u306a\u3093\u3066\u3053\u3063\u305f\u3002' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '\u3053\u3093\u306b\u3061\u306f\u3001\u30c0\u30c7\u30a3\u30c3\u30b7\u30e5\u3067\u3059\uff01\u79c1\u306e\u611a\u304b\u306a\u5b50\u4f9b\u305f\u3061\u3092\u898b\u305f\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u304b\uff1f|\u79c1\u306f\u30db\u30c3\u30c8\u30c9\u30c3\u30b0\u3001\u30c0\u30fc\u30ca\u30c3\u30af\u537f\u306e2 \u756a\u76ee\u306e\u5b50\u5206\u3067\u3059\uff01|\u3042\u306a\u305f\u306e\u540d\u524d\u306f... \u30db\u30c3\u30c8\u30c9\u30c3\u30b0..\uff1f\u672c\u5f53\u3067\u3059\u304b\uff1f|\u79c1\u306f\u30db\u30c3\u30c8\u30c9\u30c3\u30af\u3067\u3059\uff01\u6b7b\u306c\u6e96\u5099\u3092\u3057\u306a\u3055\u3044\uff01|\u4e86\u89e3\u3002' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')) : 'CN' == k.engine.getGameAttribute('Language') ? k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '*SCREECH*|\u54e6\u5929\u54ea\u3002' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '\u55e8\uff0c\u6211\u662f\u7238\u7238\u841d\u535c\uff01\u4f60\u770b\u5230\u6211\u90a3\u4e9b\u8822\u5b69\u5b50\u4e86\u5417\uff1f|\u6211\u662f\u70ed\u72d7\uff0c\u675c\u7eb3\u514b\u52cb\u7235\u7684\u7b2c\u4e8c\u4e2a\u968f\u4ece\uff01|\u70ed\u72d7\u2026\u2026\uff1f\u4f60\u5b8c\u5168\u786e\u5b9a\u5417\uff1f|\u6211\u662f\u70ed\u72d7\uff01\u51c6\u5907\u53bb\u6b7b\uff01|\u597d\u3002' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')) : 'KR' == k.engine.getGameAttribute('Language') ? k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '*\uaf64\uc561*|\uc5b4 \uc774\ub7f0.' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '\uc548\ub155\ud558\uc138\uc694, \uc804 \ub300\ub514\uc26c\uc5d0\uc694! \uc81c \uba4d\uccad\ud55c \uc544\uc774\ub4e4\uc744 \ubcf8 \uc801 \uc788\uc73c\uc138\uc694?|\ub09c \ud56b\ub3c4\uadf8\ub2e4. \ub354\ub098\ud06c\ub2d8\uc758 \ub450 \ubc88\uc9f8 \uc218\ud558\uc9c0!|\uadf8\ub7ec\ub2c8\uae4c \uc774\ub984\uc774... \ud56b\ub3c4\uadf8\uc2dc\ub77c\uad6c\uc694..? \uc9c4\uc9dc\ub85c\uc694?|\ub098\ub294 \ud56b\ub3c4\uadf8\ub2e4! \uc8fd\uc744 \uc900\ube44\ub97c \ud574\ub77c!|\uc54c\uc558\uc5b4\uc694.' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')) : k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue('Dialog Box Logic', '_DialogText', '*SCREECH*|Oh my gosh'), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', "Hi there, I'm Dadish! Have you seen my stupid children?|I AM HOTDOG, SECOND HENCHMAN TO LORD DURNAK!|Your name is... Hotdog..? Are you absolutely sure?|I AM HOTDOG! PREPARE TO DIE!|Righto." ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')), d.getLastCreatedActor().setValue('Dialog Box Logic', '_Character2', 'Boss 2'), d.getLastCreatedActor().setValue('Dialog Box Logic', '_Parent', this.actor), d.getLastCreatedActor().say('Dialog Box Logic', '_customEvent_Go'))))); } }, _event_EntersScreen: function (a, b, c, e) { var f = this; this.wrapper.enabled && a && !this._HasEntered && !this._Go && ((this._HasEntered = !0), d.runLater( 700, function (a) { f._ReadyToTalk = !0; }, this.actor )); }, _customEvent_dialogComplete: function () { var a = this; d.runLater( 200, function (b) { a._Go = !0; k.engine.gameAttributes.h['Boss 2 Dialog Read'] = !0; a.actor.setAnimation('Left'); d.loopSoundOnChannel(d.getSound(377), 16); k.engine.getGameAttribute('Music Disabled') ? d.setVolumeForChannel(0, 16) : k.engine.getGameAttribute('Music Disabled') || d.setVolumeForChannel(1, 16); }, this.actor ); }, init: function () { this.actor.makeAlwaysSimulate(); this._GravitySpeed = 48; this._StartingY = this.actor.getY(); this.addListener(this.actor.whenCollided, q(this, this._event_HitsGround)); d.runPeriodically(10, q(this, this._event_EveryNsecs), this.actor); this.addListener(this.actor.whenCollided, q(this, this._event_HitsHazard)); this.addListener(this.actor.whenUpdated, q(this, this._event_GroundandGravity)); this.addListener(this.actor.whenUpdated, q(this, this._event_Movement)); this.addListener(this.actor.whenPositionStateChanged, q(this, this._event_EntersScreen)); }, forwardMessage: function (a) {}, __class__: mu }); var nu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['On Ground'] = '_OnGround'; this._OnGround = !1; this.nameMap.h['Ground Check'] = '_GroundCheck'; this._GroundCheck = !1; this.nameMap.h['Can Make Noise'] = '_CanMakeNoise'; this._CanMakeNoise = !1; this.nameMap.h['On Platform'] = '_OnPlatform'; this._OnPlatform = !1; this.nameMap.h['Platform Check'] = '_PlatformCheck'; this._PlatformCheck = !1; this.nameMap.h['Platform Release Delay'] = '_PlatformReleaseDelay'; this._PlatformReleaseDelay = 0; this.nameMap.h['Current Platform'] = '_CurrentPlatform'; this.nameMap.h['Platform Pos X'] = '_PlatformPosX'; this._PlatformPosX = 0; this.nameMap.h['Non Stick'] = '_NonStick'; this._NonStick = !1; this.nameMap.h.Spring = '_Spring'; this.nameMap.h['Has Spring'] = '_HasSpring'; this._HasSpring = !1; }; h['scripts.Design_209_209_PushableCrateLogic'] = nu; nu.__name__ = 'scripts.Design_209_209_PushableCrateLogic'; nu.__super__ = u; nu.prototype = r(u.prototype, { _GravitySpeed: null, _OnGround: null, _GroundCheck: null, _CanMakeNoise: null, _OnPlatform: null, _PlatformCheck: null, _PlatformReleaseDelay: null, _CurrentPlatform: null, _PlatformPosX: null, _NonStick: null, _Spring: null, _HasSpring: null, _event_HitsGround: function (a) { if (this.wrapper.enabled) { var b = d.getActorGroup(1); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && a.thisFromBottom && (this._GroundCheck = !0); }, _event_HitsPlatform: function (a) { if (this.wrapper.enabled) { var b = d.getActorGroup(5); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; if (b && a.thisFromBottom) { this._PlatformCheck = this._GroundCheck = !0; if (0 == this._PlatformReleaseDelay || 0 != this.actor.getXVelocity()) this._PlatformPosX = this.actor.getX() - a.otherActor.getX(); this._PlatformReleaseDelay = 6; this._CurrentPlatform = a.otherActor; } }, _event_Updating: function (a) { if (this.wrapper.enabled) { this._GroundCheck ? this._OnGround || ((this._OnGround = !0), this._CanMakeNoise && !this._OnPlatform ? k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(117)) : (this._CanMakeNoise = !0)) : this._OnGround && (this._OnGround = !1); this._GroundCheck = !1; this._PlatformCheck ? (this.actor.setYVelocity(40), this._OnPlatform || (this._OnPlatform = !0)) : this._OnPlatform && 0 == this._PlatformReleaseDelay && (this._OnPlatform = !1); this._PlatformCheck = !1; 0 < this._PlatformReleaseDelay && --this._PlatformReleaseDelay; if (this._OnPlatform) { var b = this._CurrentPlatform; a = d.isPrimitive(b) ? !0 : 'string' == typeof b ? '' != x.__cast(b, String) : null != b; } else a = !1; a && !this._NonStick && (this._CurrentPlatform.hasBehavior('Rotator Object') && 0 != this._CurrentPlatform.getValue('Rotator Object', '_Speed') ? (0 == this.actor.getXVelocity() && ((a = this.actor), (b = this._CurrentPlatform.getValue('Rotator Object', '_ActualX')), a.setX( (null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b))) + this._PlatformPosX )), (a = this.actor), (b = this._CurrentPlatform.getValue('Rotator Object', '_ActualY')), a.setY( (null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b))) - this.actor.getHeight() )) : (0 == this.actor.getXVelocity() && this.actor.setX(this._CurrentPlatform.getX() + this._PlatformPosX), this.actor.setY(this._CurrentPlatform.getY() - this.actor.getHeight()))); this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)); 0 < this.actor.getXVelocity() ? this.actor.setXVelocity(Math.max(0, this.actor.getXVelocity() - 1)) : 0 > this.actor.getXVelocity() && this.actor.setXVelocity(Math.min(0, this.actor.getXVelocity() + 1)); b = this._Spring; if (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) this._Spring.setX(this.actor.getX()), this._Spring.setY(this.actor.getY() - 32); } }, init: function () { this.actor.makeAlwaysSimulate(); this._GravitySpeed = 48; this._GroundCheck = this._OnGround = !0; this._CanMakeNoise = !1; this._HasSpring && (d.createRecycledActorOnLayer( d.getActorType(62), this.actor.getX(), this.actor.getY() - 32, d.engine.getLayerById(this.actor.getLayerID()) ), (this._Spring = d.getLastCreatedActor()), this._Spring.moveToBottom(), this.actor.moveToBottom()); this.addListener(this.actor.whenCollided, q(this, this._event_HitsGround)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsPlatform)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: nu }); var ou = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Key Number'] = '_KeyNumber'; this._KeyNumber = 0; this.nameMap.h.Unlocked = '_Unlocked'; this._Unlocked = !1; this.nameMap.h['Lock list'] = '_Locklist'; }; h['scripts.Design_20_20_KeyLogic'] = ou; ou.__name__ = 'scripts.Design_20_20_KeyLogic'; ou.__super__ = u; ou.prototype = r(u.prototype, { _KeyNumber: null, _Unlocked: null, _Locklist: null, _customEvent_unlock: function () { this._Locklist = []; if (!this._Unlocked) { this._Unlocked = !0; d.setValueForScene('Stage Logic', '_RumbleName', 'Item'); d.sayToScene('Stage Logic', '_customEvent_rumble'); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(110)); this.actor.disableActorDrawing(); for (var a = 0, b = d.getActorsOfType(d.getActorType(30)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (c.getValue('Locked Block Logic', '_LockNumber') == this._KeyNumber && this._Locklist.push(c)); } a = 0; for (b = this._Locklist.length; a < b; ) (c = a++), this._Locklist[c].setValue('Locked Block Logic', '_GoDelay', 0.2 * c + 0.4), this._Locklist[c].shout('_customEvent_Go'), c == this._Locklist.length - 1 && d.recycleActor(this.actor); } }, init: function () {}, forwardMessage: function (a) {}, __class__: ou }); var pu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['On Ground'] = '_OnGround'; this._OnGround = !1; this.nameMap.h['Ground Check'] = '_GroundCheck'; this._GroundCheck = !1; this.nameMap.h['Can Make Noise'] = '_CanMakeNoise'; this._CanMakeNoise = !1; this.nameMap.h['Face Left'] = '_FaceLeft'; this._FaceLeft = !0; this.nameMap.h.Speed = '_Speed'; this._Speed = 6; this.nameMap.h.Fall = '_Fall'; this._Fall = !1; this.nameMap.h['No Gravity'] = '_NoGravity'; this._NoGravity = !1; this.nameMap.h.Health = '_Health'; this._Health = 5; this.nameMap.h.Hurt = '_Hurt'; this._Hurt = !1; this.nameMap.h.Dead = '_Dead'; this._Dead = !1; this.nameMap.h['Starting Y'] = '_StartingY'; this._StartingY = 0; this.nameMap.h['Ground Amnesty'] = '_GroundAmnesty'; this._GroundAmnesty = 0; this.nameMap.h.Go = '_Go'; this._Go = !1; this.nameMap.h.Dude = '_Dude'; this._Dude = d.getActor(0); this.nameMap.h['Ready To Talk'] = '_ReadyToTalk'; this._ReadyToTalk = !1; this.nameMap.h['Has Entered'] = '_HasEntered'; this._HasEntered = !1; this.nameMap.h['Dialog Complete'] = '_DialogComplete'; this._DialogComplete = !1; this.nameMap.h['Dialog Text'] = '_DialogText'; this._DialogText = ''; this.nameMap.h['Can Bounce'] = '_CanBounce'; this._CanBounce = !1; }; h['scripts.Design_220_220_Boss3Logic'] = pu; pu.__name__ = 'scripts.Design_220_220_Boss3Logic'; pu.__super__ = u; pu.prototype = r(u.prototype, { _GravitySpeed: null, _OnGround: null, _GroundCheck: null, _CanMakeNoise: null, _FaceLeft: null, _Speed: null, _Fall: null, _NoGravity: null, _Health: null, _Hurt: null, _Dead: null, _StartingY: null, _GroundAmnesty: null, _Go: null, _Dude: null, _ReadyToTalk: null, _HasEntered: null, _DialogComplete: null, _DialogText: null, _CanBounce: null, _event_HitsGround: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorGroup(1); var e = a.otherActor.getType(), f = a.otherActor.getGroup(); c = c == e || c == f; } else c = !1; c && !this._Hurt && this._Go && (a.thisFromBottom && ((this._GroundCheck = !0), (this._GroundAmnesty = 4)), a.thisFromLeft && ((this._FaceLeft = !1), this.actor.setAnimation('Turn'), this.actor.setXVelocity(this._Speed), d.runLater( 200, function (a) { b.actor.setAnimation('Right'); }, this.actor )), a.thisFromRight && ((this._FaceLeft = !0), this.actor.setAnimation('Turn'), this.actor.setXVelocity(-this._Speed), d.runLater( 200, function (a) { b.actor.setAnimation('Left'); }, this.actor ))); }, _event_EveryNsecs: function (a) { this.wrapper.enabled && (this._OnGround || --this._GroundAmnesty); }, _event_FollowDude: function (a) { var b = this; this.wrapper.enabled && ((a = this._Dude), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && (this._FaceLeft && this._Dude.getXCenter() > this.actor.getXCenter() + 64 ? (this.actor.setXVelocity(0), (this._FaceLeft = !1), this.actor.setAnimation('Turn'), d.runLater( 100, function (a) { b.actor.setAnimation('Right'); b.actor.setXVelocity(b._Speed); }, this.actor )) : !this._FaceLeft && this._Dude.getXCenter() < this.actor.getXCenter() - 64 && (this.actor.setXVelocity(0), (this._FaceLeft = !0), this.actor.setAnimation('Turn'), d.runLater( 100, function (a) { b.actor.setXVelocity(-b._Speed); b.actor.setAnimation('Left'); }, this.actor ))); }, _event_HitsHazard: function (a) { var b = this; if ( this.wrapper.enabled && this.internalGetGroup(a.otherActor, a.otherShape, a) == d.getActorGroup(4) && !this._Hurt ) { this._Hurt = !0; this._Speed *= 1.1; a.otherActor.getType() == d.getActorType(211) && a.otherActor.shout('_customEvent_Destroy'); this.actor.setXVelocity(0); this.actor.setYVelocity(0); --this._Health; this.actor.setFilter([d.createBrightnessFilter(100)]); a = 0; for (var c = d.getActorsOfType(d.getActorType(2)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || (this.actor.getXCenter() > e.getXCenter() ? d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Right') : d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Left'), d.sayToScene('Stage Logic', '_customEvent_rumble')); } k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(378)); d.createRecycledActorOnLayer( d.getActorType(395), d.randomInt(this.actor.getX() | 0, (this.actor.getX() + 64) | 0), this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().setYVelocity(d.randomInt(-50, -64)); d.getLastCreatedActor().setXVelocity(d.randomInt(-24, 24)); d.createRecycledActorOnLayer( d.getActorType(395), d.randomInt(this.actor.getX() | 0, (this.actor.getX() + 64) | 0), this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().setYVelocity(d.randomInt(-50, -64)); d.getLastCreatedActor().setXVelocity(d.randomInt(-24, 24)); this._FaceLeft ? this.actor.setAnimation('Left Hurt') : this.actor.setAnimation('Right Hurt'); d.runLater( 200, function (a) { b.actor.clearFilters(); b._Hurt = !1; d.runLater( 800, function (a) { d.setValueForScene('Stage Logic', '_RumbleName', 'Boss Pop'); d.sayToScene('Stage Logic', '_customEvent_rumble'); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(119)); d.startShakingScreen(0.006999999999999999, 0.15); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getY() + b.actor.getHeight() / 2 - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().setAnimation('Dirt'); d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getX() - 8, b.actor.getY() + b.actor.getHeight() / 2 - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().setAnimation('Dirt'); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getX() + b.actor.getWidth() - 8, b.actor.getY() + b.actor.getHeight() / 2 - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().setAnimation('Dirt'); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); b._FaceLeft ? (b.actor.setAnimation('Left'), b.actor.setXVelocity(-b._Speed)) : (b.actor.setAnimation('Right'), b.actor.setXVelocity(b._Speed)); }, b.actor ); }, this.actor ); 0 < this._Health && d.runLater( 400, function (a) { b._NoGravity = !1; }, this.actor ); if (0 == this._Health) { d.runLater( 600, function (a) { b._NoGravity = !1; }, this.actor ); this._Dead = !0; for (a = 0; 10 > a; ) a++, d.createRecycledActorOnLayer( d.getActorType(395), d.randomInt(this.actor.getX() | 0, (this.actor.getX() + 64) | 0), this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setYVelocity(d.randomInt(-50, -64)), d.getLastCreatedActor().setXVelocity(d.randomInt(-24, 24)); d.runLater( 200, function (a) { d.createRecycledActorOnLayer( d.getActorType(397), b.actor.getX(), b.actor.getY(), d.engine.getLayerById(b.actor.getLayerID()) ); d.recycleActor(b.actor); }, this.actor ); d.stopSoundOnChannel(16); a = 0; for (c = d.getActorsOfType(d.getActorType(391)); a < c.length; ) if (((e = c[a]), ++a, null != e && !e.dead && !e.recycled)) { var f = e.getValue('Crusher Logic', '_OriginY'); e.setValue( 'Crusher Logic', '_OriginY', (null == f ? 0 : 'number' == typeof f ? x.__cast(f, Nb) : 'number' == typeof f && (f | 0) === f ? x.__cast(f, Ab) : 'boolean' == typeof f ? x.__cast(f, Ob) ? 1 : 0 : 'string' == typeof f ? parseFloat(f) : parseFloat(B.string(f))) - 96 ); } a = 0; for (c = d.getActorsOfType(d.getActorType(353)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || (e.moveBy(0, 32, 0.3, J.quadInOut), e.setValue('Button Logic', '_Hide', !0)); a = 0; for (c = d.getActorsOfType(d.getActorType(208)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || (e.moveBy(-32, 0, 0.3, J.quadInOut), e.setValue('Button Logic', '_Hide', !0)); a = 0; for (c = d.getActorsOfType(d.getActorType(213)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || (e.moveBy(32, 0, 0.3, J.quadInOut), e.setValue('Button Logic', '_Hide', !0)); } } }, _event_GroundandGravity: function (a) { this.wrapper.enabled && (this._Go && (this._GroundCheck ? this._OnGround || (this._OnGround = !0) : (this._OnGround = !1)), (this._GroundCheck = !1), this._Go && !this._NoGravity && this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed))); }, _event_Movement: function (a) { if (this.wrapper.enabled) { this._Hurt && this.actor.setXVelocity(0); a = this._Dude; if ( !d.isPrimitive(a) && ('string' == typeof a ? '' == x.__cast(a, String) : null == a) ) { a = 0; for (var b = d.getActorsOfType(d.getActorType(2)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Dude = c); } } this._ReadyToTalk && (k.engine.getGameAttribute('Boss 3 Dialog Read') ? ((this._ReadyToTalk = !1), this.actor.shout('_customEvent_dialogComplete')) : ((a = this._Dude), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Dude.getValue('Dude Logic', '_OnGround') && ((this._ReadyToTalk = !1), this._DialogComplete || ((this._DialogComplete = !0), d.stopSoundOnChannel(16), d.createRecycledActor(d.getActorType(161), 0, d.getScreenHeight() - 96, 0), 'JP' == k.engine.getGameAttribute('Language') ? k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '*\u30ae\u30e3\u30fc*|\u3042\u3042\u3001\u306a\u3093\u3066\u3053\u3063\u305f\u3002' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '\u3053\u3093\u306b\u3061\u306f\uff01\u79c1\u306e\u99ac\u9e7f\u306a\u5b50\u4f9b\u305f\u3061\u3092\u898b\u305f\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u304b\uff1f|\u79c1\u306f\u30b7\u30e3\u30ed\u30f3\u3001\u30c0\u30fc\u30ca\u30c3\u30af\u537f\u306e\u6700\u521d\u306e\u5b50\u5206\u3067\u3059\uff01|\u307e\u305f\u304b......|\u3042\u306a\u305f\u306f\u611a\u304b\u306b\u3082\u3053\u3053\u306b\u6765\u305f\u3001\u6226\u58eb\u3088\uff01|\u3042\u3042\u3001\u79c1\u306f\u6226\u58eb\u3067\u306f\u306a\u304f\u3066\u3001\u30c0\u30c7\u30a3\u30c3\u30b7\u30e5\u3067\u3059\u3002\u3054\u5b58\u77e5\u306e\u3088\u3046\u306b\u3001\u79c1\u306f\u304a\u7236\u3055\u3093\u3067\u3059\u304c\u3001\u30e9\u30c7\u30c3\u30b7\u30e5\u3067\u3082\u3042\u308a\u307e\u3059\u3002|\u6b7b\u306c\u6e96\u5099\u3092\u3057\u306a\u3055\u3044\uff01' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')) : 'CN' == k.engine.getGameAttribute('Language') ? k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '*SCREECH*|\u54e6\u5929\u54ea\u3002' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '\u4f60\u597d\uff01\u4f60\u770b\u5230\u6211\u7684\u50bb\u5b69\u5b50\u4e86\u5417\uff1f|\u6211\u662f\u6c99\u9f99\uff0c\u675c\u7eb3\u514b\u52cb\u7235\u7684\u7b2c\u4e00\u4e2a\u968f\u4ece\uff01|\u4e0d\u8981\u518d\u8fd9\u6837\u2026\u2026|\u4f60\u6765\u8fd9\u513f\u771f\u662f\u592a\u8822\u4e86\uff0c\u52c7\u58eb\uff01|\u5662\uff0c\u6211\u4e0d\u662f\u52c7\u58eb\uff0c\u6211\u662f\u7238\u7238\u841d\u535c\u3002\u4f60\u770b\uff0c\u6211\u662f\u7238\u7238\uff0c\u4e5f\u662f\u841d\u535c\u3002|\u51c6\u5907\u53bb\u6b7b\uff01' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')) : 'KR' == k.engine.getGameAttribute('Language') ? k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '*\uaf64\uc561*|\uc5b4 \uc774\ub7f0.' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '\uc548\ub155\ud558\uc138\uc694! \uc81c \ubc14\ubcf4\uac19\uc740 \uc544\uc774\ub4e4\uc744 \ubcf8 \uc801 \uc788\uc73c\uc138\uc694?|\ub09c \uc0e4\ub860\uc774\ub2e4. \ub354\ub098\ud06c\ub2d8\uc758 \uccab \ubc88\uc9f8 \uc218\ud558\uc9c0!|\ub610\uc57c...|\uc5ec\uae30\uc5d0 \uc624\ub2e4\ub2c8 \uc815\ub9d0 \uba4d\uccad\ud558\uad70, \uc804\uc0ac\uc5ec!|\uc804 \uc804\uc0ac\uac00 \uc544\ub2c8\ub77c \ub300\ub514\uc26c\uc5d0\uc694. \ubcf4\uc2dc\ub2e4\uc2dc\ud53c, \uc804 \uc544\ube60(\ub300\ub514)\uc608\uc694. \uadf8\ub9ac\uace0 \ubb34(\ub798\ub514\uc26c)\uc8e0. \ub9d0\uc7a5\ub09c\uc774\uc5d0\uc694.|\uc7a5\ub09c\uc774\ub77c\uace0?|\ub124, \ub9d0\uc7a5\ub09c\uc774\uc694.|\uc8fd\uc744 \uc900\ube44\ub97c \ud574\ub77c!' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')) : k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue('Dialog Box Logic', '_DialogText', '*SCREECH*|Oh my gosh'), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', "Hello! Have you seen my idiot children?|I AM SHARON, FIRST HENCHMAN TO LORD DURNAK!|Not this again...|YOU WERE FOOLISH TO COME HERE, WARRIOR!|Oh I'm not a warrior, I'm Dadish. You see, I'm a Dad, but also a radish. It's a portmanteau.|A POOR MAN TOE?|Uh, yeah, sure.|PREPARE TO DIE!" ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')), d.getLastCreatedActor().setValue('Dialog Box Logic', '_Character2', 'Boss 3'), d.getLastCreatedActor().setValue('Dialog Box Logic', '_Parent', this.actor), d.getLastCreatedActor().say('Dialog Box Logic', '_customEvent_Go'))))); } }, _event_EntersScreen: function (a, b, c, e) { var f = this; this.wrapper.enabled && a && !this._HasEntered && !this._Go && ((this._HasEntered = !0), d.runLater( 700, function (a) { f._ReadyToTalk = !0; }, this.actor )); }, _customEvent_dialogComplete: function () { var a = this; d.runLater( 200, function (b) { a._Go = !0; k.engine.gameAttributes.h['Boss 3 Dialog Read'] = !0; a.actor.setAnimation('Left'); a.actor.setXVelocity(-a._Speed); d.loopSoundOnChannel(d.getSound(377), 16); k.engine.getGameAttribute('Music Disabled') ? d.setVolumeForChannel(0, 16) : k.engine.getGameAttribute('Music Disabled') || d.setVolumeForChannel(1, 16); }, this.actor ); }, init: function () { this.actor.makeAlwaysSimulate(); this._GravitySpeed = 48; this._StartingY = this.actor.getY(); this.addListener(this.actor.whenCollided, q(this, this._event_HitsGround)); d.runPeriodically(10, q(this, this._event_EveryNsecs), this.actor); d.runPeriodically(1400, q(this, this._event_FollowDude), this.actor); this.addListener(this.actor.whenCollided, q(this, this._event_HitsHazard)); this.addListener(this.actor.whenUpdated, q(this, this._event_GroundandGravity)); this.addListener(this.actor.whenUpdated, q(this, this._event_Movement)); this.addListener(this.actor.whenPositionStateChanged, q(this, this._event_EntersScreen)); }, forwardMessage: function (a) {}, __class__: pu }); var qu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Button Number'] = '_ButtonNumber'; this._ButtonNumber = 0; this.nameMap.h.Go = '_Go'; this._Go = !1; this.nameMap.h['Target Y'] = '_TargetY'; this._TargetY = 0; this.nameMap.h.Fall = '_Fall'; this._Fall = !1; this.nameMap.h['Origin Y'] = '_OriginY'; this._OriginY = 0; this.nameMap.h.Pole = '_Pole'; }; h['scripts.Design_222_222_CrusherLogic'] = qu; qu.__name__ = 'scripts.Design_222_222_CrusherLogic'; qu.__super__ = u; qu.prototype = r(u.prototype, { _ButtonNumber: null, _Go: null, _TargetY: null, _Fall: null, _OriginY: null, _Pole: null, _event_Updating: function (a) { var b = this; this.wrapper.enabled && (this._Fall && (this.actor.setYVelocity(Math.min(48, this.actor.getYVelocity() + 2)), this.actor.getY() >= this._TargetY && ((this._Fall = !1), this.actor.setYVelocity(0), this.actor.setY(this._TargetY), d.startShakingScreen(0.02, 0.05), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(105)), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut), d.runLater( 2e3, function (a) { b.actor.moveTo(b.actor.getX(), b._OriginY, 0.3, J.quadInOut); d.runLater( 320, function (a) { b._Go = !1; }, b.actor ); }, this.actor ))), (a = this._Pole), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Pole.setY(this.actor.getY() - 254)); }, _event_ActorType: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorType(389); var e = a.otherActor.getType(), f = a.otherActor.getGroup(); c = c == e || c == f; } else c = !1; c && this._Fall && ((this._Fall = !1), this.actor.setYVelocity(0), this.actor.setY(a.otherActor.getY() - 128), d.startShakingScreen(0.02, 0.05), this.actor.moveTo(this.actor.getX(), this._OriginY, 0.3, J.quadInOut), d.runLater( 320, function (a) { b._Go = !1; }, this.actor )); }, _customEvent_Go: function () { this._Go || ((this._Fall = this._Go = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(106))); }, init: function () { this.actor.makeAlwaysSimulate(); this._OriginY = this.actor.getY(); this._TargetY = this.actor.getY() + 224; d.createRecycledActorOnLayer( d.getActorType(393), this.actor.getXCenter() - 29, this.actor.getY() - 254, d.engine.getLayerById(this.actor.getLayerID()) ); this._Pole = d.getLastCreatedActor(); this._Pole.moveToBottom(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenCollided, q(this, this._event_ActorType)); }, forwardMessage: function (a) {}, __class__: qu }); var ru = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Lock Number'] = '_LockNumber'; this._LockNumber = 0; this.nameMap.h.Go = '_Go'; this._Go = !1; this.nameMap.h['Go Delay'] = '_GoDelay'; this._GoDelay = 0; this.nameMap.h['Turn Block'] = '_TurnBlock'; }; h['scripts.Design_22_22_LockedBlockLogic'] = ru; ru.__name__ = 'scripts.Design_22_22_LockedBlockLogic'; ru.__super__ = u; ru.prototype = r(u.prototype, { _LockNumber: null, _Go: null, _GoDelay: null, _TurnBlock: null, _customEvent_Go: function () { var a = this; this._Go || ((this._Go = !0), d.runLater( 1e3 * this._GoDelay, function (b) { a.actor.setAnimation('Turn'); b = 0; for (var c = d.getActorsOfType(d.getActorType(607)); b < c.length; ) { var e = c[b]; ++b; null == e || e.dead || e.recycled || d.recycleActor(e); } k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(111)); b = 0; for (c = d.getActorsOfType(d.getActorType(2)); b < c.length; ) (e = c[b]), ++b, null == e || e.dead || e.recycled || (a.actor.getXCenter() > e.getXCenter() ? d.setValueForScene('Stage Logic', '_RumbleName', 'Block Right') : d.setValueForScene('Stage Logic', '_RumbleName', 'Block Left'), d.sayToScene('Stage Logic', '_customEvent_rumble')); d.createRecycledActorOnLayer( d.getActorType(381), a.actor.getX(), a.actor.getY(), d.engine.getLayerById(a.actor.getLayerID()) ); a._TurnBlock = d.getLastCreatedActor(); a._TurnBlock.spinBy(180, 0.2, J.quadInOut); d.runLater( 100, function (a) { d.startShakingScreen(0.005, 0.05); }, a.actor ); d.runLater( 200, function (b) { d.recycleActor(a._TurnBlock); d.recycleActor(a.actor); }, a.actor ); }, this.actor )); }, init: function () { this.actor.makeAlwaysSimulate(); }, forwardMessage: function (a) {}, __class__: ru }); var su = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['On Ground'] = '_OnGround'; this._OnGround = !1; this.nameMap.h['Ground Check'] = '_GroundCheck'; this._GroundCheck = !1; this.nameMap.h['Can Make Noise'] = '_CanMakeNoise'; this._CanMakeNoise = !1; this.nameMap.h['Face Left'] = '_FaceLeft'; this._FaceLeft = !0; this.nameMap.h.Speed = '_Speed'; this._Speed = 10; this.nameMap.h.Fall = '_Fall'; this._Fall = !1; this.nameMap.h['No Gravity'] = '_NoGravity'; this._NoGravity = !1; this.nameMap.h.Health = '_Health'; this._Health = 4; this.nameMap.h.Hurt = '_Hurt'; this._Hurt = !1; this.nameMap.h.Dead = '_Dead'; this._Dead = !1; this.nameMap.h['Starting Y'] = '_StartingY'; this._StartingY = 0; this.nameMap.h['Ground Amnesty'] = '_GroundAmnesty'; this._GroundAmnesty = 0; this.nameMap.h.Go = '_Go'; this._Go = !1; this.nameMap.h.Dude = '_Dude'; this.nameMap.h['Ready To Talk'] = '_ReadyToTalk'; this._ReadyToTalk = !1; this.nameMap.h['Has Entered'] = '_HasEntered'; this._HasEntered = !1; this.nameMap.h['Dialog Complete'] = '_DialogComplete'; this._DialogComplete = !1; this.nameMap.h['Dialog Text'] = '_DialogText'; this._DialogText = 'DEFAULT'; this.nameMap.h['Can Bounce'] = '_CanBounce'; this._CanBounce = !1; this.nameMap.h['Dead On Ground'] = '_DeadOnGround'; this._DeadOnGround = !1; }; h['scripts.Design_246_246_Boss4Logic'] = su; su.__name__ = 'scripts.Design_246_246_Boss4Logic'; su.__super__ = u; su.prototype = r(u.prototype, { _GravitySpeed: null, _OnGround: null, _GroundCheck: null, _CanMakeNoise: null, _FaceLeft: null, _Speed: null, _Fall: null, _NoGravity: null, _Health: null, _Hurt: null, _Dead: null, _StartingY: null, _GroundAmnesty: null, _Go: null, _Dude: null, _ReadyToTalk: null, _HasEntered: null, _DialogComplete: null, _DialogText: null, _CanBounce: null, _DeadOnGround: null, _event_HitsGround: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorGroup(1); var e = a.otherActor.getType(), f = a.otherActor.getGroup(); c = c == e || c == f; } else c = !1; c && this._Go && (this._Dead && a.thisFromBottom ? this._DeadOnGround || ((this._DeadOnGround = !0), this.actor.setFilter([d.createBrightnessFilter(100)]), d.runLater( 100, function (a) { d.createRecycledActorOnLayer( d.getActorType(28), b.actor.getXCenter() - 16, b.actor.getYCenter() - 16, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveToBottom(); for (a = 0; 20 > a; ) a++, d.createRecycledActorOnLayer( d.getActorType(427), d.randomInt( b.actor.getX() | 0, (b.actor.getX() + (b.actor.getWidth() - 16)) | 0 ), d.randomInt( b.actor.getY() | 0, (b.actor.getY() + (b.actor.getHeight() - 16)) | 0 ), d.engine.getLayerById(b.actor.getLayerID()) ), d.getLastCreatedActor().setYVelocity(1.6 * d.randomInt(-50, -64)), d.getLastCreatedActor().setXVelocity(1.6 * d.randomInt(-24, 24)); for (a = 0; 20 > a; ) a++, d.createRecycledActorOnLayer( d.getActorType(425), d.randomInt( b.actor.getX() | 0, (b.actor.getX() + (b.actor.getWidth() - 16)) | 0 ), d.randomInt( b.actor.getY() | 0, (b.actor.getY() + (b.actor.getHeight() - 16)) | 0 ), d.engine.getLayerById(b.actor.getLayerID()) ), d.getLastCreatedActor().setYVelocity(d.randomInt(-50, -64)), d.getLastCreatedActor().setXVelocity(d.randomInt(-24, 24)); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(430)); d.startShakingScreen(0.006999999999999999, 0.15); d.recycleActor(b.actor); }, this.actor )) : (a.thisFromBottom && ((this._GroundCheck = !0), (this._GroundAmnesty = 4)), a.thisFromLeft && ((this._FaceLeft = !1), this.actor.setAnimation('Turn'), this.actor.setXVelocity(this._Speed), d.runLater( 200, function (a) { b.actor.setAnimation('Right'); }, this.actor )), a.thisFromRight && ((this._FaceLeft = !0), this.actor.setAnimation('Turn'), this.actor.setXVelocity(-this._Speed), d.runLater( 200, function (a) { b.actor.setAnimation('Left'); }, this.actor )))); }, _event_EveryNsecs: function (a) { this.wrapper.enabled && (this._OnGround || --this._GroundAmnesty); }, _event_HitsHazard: function (a) { var b = this; if ( this.wrapper.enabled && this.internalGetGroup(a.otherActor, a.otherShape, a) == d.getActorGroup(4) && !this._Hurt && ((this._Hurt = !0), (this._Speed *= 1.15), this.actor.setXVelocity(0), this.actor.setYVelocity(-60), --this._Health, this.actor.setFilter([d.createBrightnessFilter(100)]), d.runLater( 200, function (a) { b.actor.clearFilters(); }, this.actor ), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(378)), 0 < this._Health && (d.runLater( 400, function (a) { b._NoGravity = !1; }, this.actor ), this._FaceLeft ? this.actor.setAnimation('Left Hurt') : this.actor.setAnimation('Right Hurt')), 0 == this._Health) ) { this._FaceLeft ? this.actor.setAnimation('Left Hurt') : this.actor.setAnimation('Right Hurt'); this._Dead = !0; d.stopSoundOnChannel(16); a = 0; for (var c = d.getActorsOfType(d.getActorType(353)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || (e.moveBy(0, 32, 0.3, J.quadInOut), e.setValue('Button Logic', '_Hide', !0)); } } }, _event_GroundandGravity: function (a) { var b = this; if (this.wrapper.enabled) { if (this._Go && !this._Dead) if (this._GroundCheck) { if (!this._OnGround) { this._OnGround = !0; this._Hurt = !1; this.actor.setXVelocity(0); this.actor.setYVelocity(0); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(105)); a = 0; for (var c = d.getActorsOfType(d.getActorType(2)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || (this.actor.getXCenter() > e.getXCenter() ? d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Right') : d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Left'), d.sayToScene('Stage Logic', '_customEvent_rumble')); } d.startShakingScreen(0.004, 0.15); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); this._FaceLeft ? this.actor.setAnimation('Left Bounce') : this.actor.setAnimation('Right Bounce'); this.actor.setCurrentFrame(0); d.runLater( 100, function (a) { b._FaceLeft ? b.actor.setXVelocity(-b._Speed) : b.actor.setXVelocity(b._Speed); b.actor.setYVelocity(-90); }, this.actor ); } } else this._OnGround = !1; this._GroundCheck = !1; this._Go && !this._NoGravity && this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)); } }, _event_Movement: function (a) { if (this.wrapper.enabled) { a = this._Dude; if ( !d.isPrimitive(a) && ('string' == typeof a ? '' == x.__cast(a, String) : null == a) ) { a = 0; for (var b = d.getActorsOfType(d.getActorType(2)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Dude = c); } } this._ReadyToTalk && (k.engine.getGameAttribute('Boss 4 Dialog Read') ? ((this._ReadyToTalk = !1), this.actor.shout('_customEvent_dialogComplete')) : ((a = this._Dude), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Dude.getValue('Dude Logic', '_OnGround') && ((this._ReadyToTalk = !1), this._DialogComplete || ((this._DialogComplete = !0), d.stopSoundOnChannel(16), d.createRecycledActor(d.getActorType(161), 0, d.getScreenHeight() - 96, 0), 'JP' == k.engine.getGameAttribute('Language') ? k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '*\u30ae\u30e3\u30fc*|\u3042\u3042\u3001\u306a\u3093\u3066\u3053\u3063\u305f\u3002' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '\u3053\u3093\u306b\u3061\u306f\uff01\u79c1\u306f\u30c0\u30c7\u30a3\u30c3\u30b7\u30e5\u3067\u3059\uff01|\u79c1\u306e\u8981\u585e\u3001\u30c0\u30c7\u30a3\u30c3\u30b7\u30e5\u3078\u3088\u3046\u3053\u305d\uff01\u79c1\u306f\u30c0\u30fc\u30ca\u30c3\u30af\u537f\u3067\u3059\uff01\u3088\u3046\u3084\u304f\u304a\u4f1a\u3044\u3067\u304d\u3066\u3046\u308c\u3057\u3044\u3067\u3059\u3002\u79c1\u306f\u7d20\u6674\u3089\u3057\u3044\u3053\u3068\u3092\u805e\u3044\u305f\u3002|\u672c\u5f53\u306b\uff1f|\u3044\u3044\u3048\u3002|\u3042\u3042\u3002|\u79c1\u306e\u5b50\u5206\u305f\u3061\u304c\u3042\u306a\u305f\u306b\u53d7\u3051\u3055\u305b\u305f\u3059\u3079\u3066\u306e\u9762\u5012\u306b\u3064\u3044\u3066\u8b1d\u308a\u305f\u3044\u3002\u3053\u306e\u3088\u3046\u306a\u4e0d\u5e78\u306a\u8aa4\u89e3\u3002|\u5927\u4e08\u592b\u3001\u5fc3\u914d\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u6700\u5f8c\u306e\u884c\u65b9\u4e0d\u660e\u306b\u306a\u3063\u305f\u5b50\u4f9b\u3092\u898b\u3064\u3051\u3066\u5bb6\u306b\u5e30\u308a\u305f\u3044\u3060\u3051\u3067\u3059\u3002|\u7406\u89e3\u3067\u304d\u307e\u3059\u3002\u3057\u304b\u3057\u3001\u6700\u521d\u306b\u3001\u305d\u308c\u304c\u3042\u307e\u308a\u9762\u5012\u3067\u306a\u3044\u306a\u3089...|\u4f55\u3067\u3059\u304b\uff1f|\u6b7b\u306c\u6e96\u5099\u3092\u3057\u306a\u3055\u3044\uff01|\u3042\u3042\u3001\u52d8\u5f01\u3057\u3066\u3002' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')) : 'CN' == k.engine.getGameAttribute('Language') ? k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '*SCREECH*|\u54e6\u5929\u54ea\u3002' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '\u4f60\u597d\uff01\u6211\u662f\u7238\u7238\u841d\u535c\uff01|\u6b22\u8fce\u6765\u5230\u6211\u7684\u57ce\u5821\uff0c\u7238\u7238\u841d\u535c\uff01\u6211\u662f\u675c\u7eb3\u514b\u52cb\u7235\uff01\u5f88\u9ad8\u5174\u7ec8\u4e8e\u89c1\u5230\u4f60\u3002\u6211\u542c\u8bf4\u4e86\u5f88\u68d2\u7684\u4e8b\u60c5\u3002|\u771f\u7684\u5417?|\u4e0d\u3002|\u54e6\u3002|\u4e0d\u8fc7\u6211\u8fd8\u662f\u8981\u4e3a\u6211\u7684\u968f\u4ece\u7ed9\u4f60\u5e26\u6765\u7684\u9ebb\u70e6\u9053\u6b49\u3002\u8fd9\u662f\u4e2a\u4ee4\u4eba\u9057\u61be\u7684\u8bef\u4f1a\u3002|\u563f\uff0c\u5f88\u597d\uff0c\u4e0d\u7528\u62c5\u5fc3\u3002\u6211\u53ea\u60f3\u627e\u5230\u6211\u6700\u540e\u4e00\u4e2a\u5931\u8e2a\u7684\u5b69\u5b50\uff0c\u7136\u540e\u56de\u5bb6\u3002|\u53ef\u4ee5\u7406\u89e3\u3002\u4f46\u662f\u9996\u5148\uff0c\u5982\u679c\u4e0d\u662f\u5f88\u9ebb\u70e6\u2026\u2026|\u662f\u4ec0\u4e48\uff1f|\u51c6\u5907\u53bb\u6b7b\uff01|\u54e6\uff0c\u6765\u5427\u3002' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')) : 'KR' == k.engine.getGameAttribute('Language') ? k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '*\uaf64\uc561*|\uc5b4 \uc774\ub7f0.' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '\uc548\ub155\ud558\uc138\uc694! \uc804 \ub300\ub514\uc26c\uc5d0\uc694|\ub0b4 \uc694\uc0c8\uc5d0 \uc628 \uac78 \ud658\uc601\ud55c\ub2e4, \ub300\ub514\uc26c! \ub09c \ub85c\ub4dc \ub354\ub098\ud06c\ub2e4! \ub4dc\ub514\uc5b4 \ub9cc\ub098\uac8c \ub418\uc11c \ubc18\uac00\uc6cc\uc694. \uc9c0\uae08\uae4c\uc9c0 \uad49\uc7a5\ud55c \uc774\uc57c\uae30\ub97c \ub4e4\uc5c8\uc9c0.|\uc815\ub9d0\uc694?|\uc544\ub2c8.|\uc5b4..|\uadf8\ub807\uc9c0\ub9cc \ub0b4 \uc218\ud558\ub4e4\uc774 \ub110 \ubc29\ud574\ud55c \uac78 \ubaa8\ub450 \uc0ac\uacfc\ud558\uace0 \uc2f6\uad70. \ubd88\ud589\ud788\ub3c4 \uc624\ud574\uac00 \uc788\uc5c8\uc5b4.|\uad1c\ucc2e\uc544\uc694. \uac71\uc815\ud558\uc9c0 \ub9c8\uc138\uc694. \uc804 \uadf8\ub0e5 \uc2e4\uc885\ub41c \ub9c8\uc9c0\ub9c9 \uc544\uc774\ub97c \ucc3e\uc544 \uc9d1\uc5d0 \uac00\uace0 \uc2f6\uc5b4\uc694.|\uadf8\ub807\uad70. \ud558\uc9c0\ub9cc \uba3c\uc800 \ub108\ubb34 \ud3d0\uac00 \ub418\uc9c0 \uc54a\ub294\ub2e4\uba74...|\ubb34\uc2a8 \uc77c\uc774\uc138\uc694?|\uc8fd\uc744 \uc900\ube44\ub97c \ud574\ub77c!|\uc544 \uc81c\ubc1c.' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')) : k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue('Dialog Box Logic', '_DialogText', '*SCREECH*|Oh my gosh'), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', "Hello! I'm Dadish!|Welcome to my fortress, Dadish! I am Lord Durnak! It's nice to finally meet you. I've heard great things.|Really?|No.|Oh.|Though I do wish to apologize for all the bother my henchmen put you through. Such an unfortunate misunderstanding.|Hey that's all good, no worries. I just want to find my last missing kid and go home.|Understandable. But first, if it's not too much trouble...|What is it?|PREPARE TO DIE!|Oh come on." ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')), d.getLastCreatedActor().setValue('Dialog Box Logic', '_Character2', 'Boss 4'), d.getLastCreatedActor().setValue('Dialog Box Logic', '_Parent', this.actor), d.getLastCreatedActor().say('Dialog Box Logic', '_customEvent_Go'))))); } }, _event_EntersScreen: function (a, b, c, e) { var f = this; this.wrapper.enabled && a && !this._HasEntered && !this._Go && ((this._HasEntered = !0), d.runLater( 700, function (a) { f._ReadyToTalk = !0; }, this.actor )); }, _event_FollowDude: function (a) { var b = this; this.wrapper.enabled && !this._Dead && ((a = this._Dude), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && (this._FaceLeft && this._Dude.getXCenter() > this.actor.getXCenter() + 64 ? (this.actor.setXVelocity(0), (this._FaceLeft = !1), this.actor.setAnimation('Turn'), d.runLater( 100, function (a) { b.actor.setAnimation('Right'); b.actor.setXVelocity(b._Speed); }, this.actor )) : !this._FaceLeft && this._Dude.getXCenter() < this.actor.getXCenter() - 64 && (this.actor.setXVelocity(0), (this._FaceLeft = !0), this.actor.setAnimation('Turn'), d.runLater( 100, function (a) { b.actor.setXVelocity(-b._Speed); b.actor.setAnimation('Left'); }, this.actor ))); }, _customEvent_dialogComplete: function () { this._Go = !0; k.engine.gameAttributes.h['Boss 4 Dialog Read'] = !0; this.actor.setAnimation('Left'); d.loopSoundOnChannel(d.getSound(377), 16); k.engine.getGameAttribute('Music Disabled') ? d.setVolumeForChannel(0, 16) : k.engine.getGameAttribute('Music Disabled') || d.setVolumeForChannel(1, 16); }, init: function () { var a = this; d.runLater( 200, function (b) { a.actor.makeAlwaysSimulate(); a._GravitySpeed = 48; a._StartingY = a.actor.getY(); }, this.actor ); this.addListener(this.actor.whenCollided, q(this, this._event_HitsGround)); d.runPeriodically(10, q(this, this._event_EveryNsecs), this.actor); this.addListener(this.actor.whenCollided, q(this, this._event_HitsHazard)); this.addListener(this.actor.whenUpdated, q(this, this._event_GroundandGravity)); this.addListener(this.actor.whenUpdated, q(this, this._event_Movement)); this.addListener(this.actor.whenPositionStateChanged, q(this, this._event_EntersScreen)); d.runPeriodically(1800, q(this, this._event_FollowDude), this.actor); }, forwardMessage: function (a) {}, __class__: su }); var tu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Button Number'] = '_ButtonNumber'; this._ButtonNumber = 0; this.nameMap.h.Go = '_Go'; this._Go = !1; this.nameMap.h['Target Y'] = '_TargetY'; this._TargetY = 0; this.nameMap.h.Fall = '_Fall'; this._Fall = !1; this.nameMap.h['Origin Y'] = '_OriginY'; this._OriginY = 0; this.nameMap.h.Pole = '_Pole'; this.nameMap.h['Origin X'] = '_OriginX'; this._OriginX = 0; this.nameMap.h.Delay = '_Delay'; this._Delay = 0; }; h['scripts.Design_248_248_BossSpikesLogic'] = tu; tu.__name__ = 'scripts.Design_248_248_BossSpikesLogic'; tu.__super__ = u; tu.prototype = r(u.prototype, { _ButtonNumber: null, _Go: null, _TargetY: null, _Fall: null, _OriginY: null, _Pole: null, _OriginX: null, _Delay: null, _event_Updating: function (a) { var b = this; this.wrapper.enabled && this._Fall && (this.actor.setYVelocity(Math.max(-48, this.actor.getYVelocity() - 2)), this.actor.getY() <= this._TargetY && ((this._Fall = !1), this.actor.setYVelocity(0), this.actor.setY(this._TargetY), d.startShakingScreen(0.02, 0.05), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(105)), d.runLater( 500, function (a) { b.actor.moveTo(b.actor.getX(), b._OriginY, 0.3, J.quadInOut); d.runLater( 320, function (a) { b._Go = !1; }, b.actor ); }, this.actor ))); }, _event_ActorType: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorType(389); var e = a.otherActor.getType(), f = a.otherActor.getGroup(); c = c == e || c == f; } else c = !1; c && this._Fall && ((this._Fall = !1), this.actor.setYVelocity(0), this.actor.setY(a.otherActor.getY() - 128), d.startShakingScreen(0.02, 0.05), this.actor.moveTo(this.actor.getX(), this._OriginY, 0.3, J.quadInOut), d.runLater( 320, function (a) { b._Go = !1; }, this.actor )); }, _customEvent_Go: function () { var a = this; this._Go || ((this._Go = !0), this.actor.setAnimation('Shake'), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(423)), this.actor.getType() == d.getActorType(694) ? (d.createRecycledActor( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 68, this.actor.getYCenter() - 8, 0 ), d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut), d.createRecycledActor( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 68, this.actor.getYCenter() - 8, 0 ), d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut), d.createRecycledActor( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 68, this.actor.getYCenter() - 8, 0 )) : this.actor.getType() == d.getActorType(696) ? (d.createRecycledActor( d.getActorType(94), this.actor.getX() + 64 - 8, this.actor.getYCenter() - 8, 0 ), d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut), d.createRecycledActor( d.getActorType(94), this.actor.getX() + 64 - 8, this.actor.getYCenter() - 8, 0 ), d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut), d.createRecycledActor( d.getActorType(94), this.actor.getX() + 64 - 8, this.actor.getYCenter() - 8, 0 )) : (d.createRecycledActor( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + 64 - 8, 0 ), d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut), d.createRecycledActor( d.getActorType(94), this.actor.getX() - 8, this.actor.getY() + 64 - 8, 0 ), d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut), d.createRecycledActor( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 8, this.actor.getY() + 64 - 8, 0 )), d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut), d.runLater( 1e3 * this._Delay, function (b) { a.actor.setAnimation('Normal'); a.actor.getType() == d.getActorType(694) || a.actor.getType() == d.getActorType(696) ? (k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(424)), a.actor.setX(a._OriginX), a.actor.setY(a._OriginY), a.actor.getType() == d.getActorType(694) ? (a.actor.moveTo(a._OriginX + 48, a._OriginY, 0.2, J.elasticOut), d.runLater( 1e3, function (b) { a.actor.say('Boss Spikes Logic', '_customEvent_return'); }, a.actor )) : (a.actor.moveTo(a._OriginX - 48, a._OriginY, 0.2, J.elasticOut), d.runLater( 1e3, function (b) { a.actor.say('Boss Spikes Logic', '_customEvent_return'); }, a.actor ))) : ((a._Fall = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(424))); }, this.actor )); }, _customEvent_return: function () { var a = this; this.actor.moveTo(this._OriginX, this._OriginY, 0.1, J.linear); d.runLater( 400, function (b) { a._Go = !1; }, this.actor ); }, init: function () { this.actor.makeAlwaysSimulate(); this._OriginY = this.actor.getY(); this._OriginX = this.actor.getX(); this._TargetY = this.actor.getY() - 64; this.actor.getType() == d.getActorType(694) || this.actor.getType() == d.getActorType(696) ? (this._Delay = 0.6) : (this._Delay = 0.3); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenCollided, q(this, this._event_ActorType)); }, forwardMessage: function (a) {}, __class__: tu }); var uu = function (a, b) { d.call(this); this.nameMap.h['Left Text'] = '_LeftText'; this._LeftText = ''; this.nameMap.h['Right Text'] = '_RightText'; this._RightText = ''; this.nameMap.h['Bottom Letterbox'] = '_BottomLetterbox'; this.nameMap.h['Top Letterbox'] = '_TopLetterbox'; this.nameMap.h['Title Left'] = '_TitleLeft'; this.nameMap.h['Title Right'] = '_TitleRight'; this.nameMap.h['Font To Use'] = '_FontToUse'; this.nameMap.h['Show Skip Text'] = '_ShowSkipText'; this._ShowSkipText = !1; this.nameMap.h['Can Skip'] = '_CanSkip'; this._CanSkip = !1; this.nameMap.h['Button Input'] = '_ButtonInput'; this._ButtonInput = ''; this.nameMap.h['Button Pressed'] = '_ButtonPressed'; this._ButtonPressed = !1; this.nameMap.h['Skip Text Mid Y'] = '_SkipTextMidY'; this._SkipTextMidY = 0; this.nameMap.h['No Skip'] = '_NoSkip'; this._NoSkip = !1; this.nameMap.h.Finished = '_Finished'; this._Finished = !1; }; h['scripts.Design_255_255_CutsceneLogic'] = uu; uu.__name__ = 'scripts.Design_255_255_CutsceneLogic'; uu.__super__ = sa; uu.prototype = r(sa.prototype, { _LeftText: null, _RightText: null, _BottomLetterbox: null, _TopLetterbox: null, _TitleLeft: null, _TitleRight: null, _FontToUse: null, _ShowSkipText: null, _CanSkip: null, _ButtonInput: null, _ButtonPressed: null, _SkipTextMidY: null, _NoSkip: null, _Finished: null, _event_AnyButton: function (a) { var b = this; !this.wrapper.enabled || ((this._ButtonInput = a), ('0' != this._ButtonInput && '1' != this._ButtonInput && '2' != this._ButtonInput && '3' != this._ButtonInput) || this._NoSkip || this._ButtonPressed) || (this._CanSkip ? this._CanSkip && '0' == this._ButtonInput && ((this._ButtonPressed = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(119)), d.sayToScene('Cutscene Logic', '_customEvent_Finished')) : ((this._ShowSkipText = this._ButtonPressed = !0), d.runLater( 100, function (a) { b._ButtonPressed = !1; b._CanSkip = !0; }, null ))); }, _event_MultiTouch: function (a) { var b = this; !this.wrapper.enabled || this._NoSkip || this._ButtonPressed || (this._CanSkip ? this._CanSkip && ((this._ButtonPressed = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(119)), d.sayToScene('Cutscene Logic', '_customEvent_Finished')) : ((this._ShowSkipText = this._ButtonPressed = !0), d.runLater( 100, function (a) { b._ButtonPressed = !1; b._CanSkip = !0; }, null ))); }, _event_Keyboard: function (a, b) { var c = this; this.wrapper.enabled && a && !this._NoSkip && !this._ButtonPressed && (this._CanSkip ? this._CanSkip && ((this._ButtonPressed = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(119)), d.sayToScene('Cutscene Logic', '_customEvent_Finished')) : ((this._ShowSkipText = this._ButtonPressed = !0), d.runLater( 100, function (a) { c._ButtonPressed = !1; c._CanSkip = !0; }, null ))); }, _event_Drawing: function (a, b, c) { if ( this.wrapper.enabled && ((b = this._BottomLetterbox), (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && this._CanSkip && !this._ButtonPressed) ) { b = d.getFont(526); null != b && b != a.font && (a.font = b); if (k.engine.getGameAttribute('MOBILE MODE')) { c = this._SkipTextMidY - d.getFont(441).getHeight() / k.SCALE / 2; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + 42 * a.scaleX), (c = a.y + c * a.scaleY)) : ((b = a.x + 42 * a.scaleX - k.cameraX), (c = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + 42 * a.scaleX), (c = a.y + c * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, c); var e = null, f = a.font; f = 'TAP TO SKIP:' + f.ID + ':' + a.alpha + ':' + f.letterSpacing + ':' + k.SCALE; if (Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, f)) { var g = W.drawnStringCache.h[f]; g.lifetime = 5; e = g.img; } else { g = a.font.font.getTextWidth('TAP TO SKIP', a.font.letterSpacing, a.font.fontScale); var h = (a.font.font.getFontHeight() * a.font.fontScale) | 0; 0 < g && 0 < h && ((e = new ja(g, h, !0, 0)), a.font.font.renderToImg( e, 'TAP TO SKIP', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (g = new Mb()), (g.img = e), (g.lifetime = 5), (W.drawnStringCache.h[f] = g), W.drawnStringCacheKeys.push(f)); } } else (c = this._SkipTextMidY - 12), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + 42 * a.scaleX), (c = a.y + c * a.scaleY)) : ((b = a.x + 42 * a.scaleX - k.cameraX), (c = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + 42 * a.scaleX), (c = a.y + c * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, c), (e = null), (f = a.font), (f = '-:' + f.ID + ':' + a.alpha + ':' + f.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, f) ? ((g = W.drawnStringCache.h[f]), (g.lifetime = 5), (e = g.img)) : ((g = a.font.font.getTextWidth('-', a.font.letterSpacing, a.font.fontScale)), (h = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < g && 0 < h && ((e = new ja(g, h, !0, 0)), a.font.font.renderToImg( e, '-', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (g = new Mb()), (g.img = e), (g.lifetime = 5), (W.drawnStringCache.h[f] = g), W.drawnStringCacheKeys.push(f))), null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, e.width, e.height), a.graphics.endFill()), (b = 42 + a.font.getTextWidth('- ') / k.SCALE), (c = this._SkipTextMidY - d.getFont(441).getHeight() / k.SCALE / 2), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (c = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, c), (e = null), (f = a.font), (f = 'SKIP:' + f.ID + ':' + a.alpha + ':' + f.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, f) ? ((g = W.drawnStringCache.h[f]), (g.lifetime = 5), (e = g.img)) : ((g = a.font.font.getTextWidth('SKIP', a.font.letterSpacing, a.font.fontScale)), (h = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < g && 0 < h && ((e = new ja(g, h, !0, 0)), a.font.font.renderToImg( e, 'SKIP', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (g = new Mb()), (g.img = e), (g.lifetime = 5), (W.drawnStringCache.h[f] = g), W.drawnStringCacheKeys.push(f))); null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, e.width, e.height), a.graphics.endFill()); } }, _customEvent_Finished: function () { var a = this; this._Finished || ((this._Finished = !0), d.runLater( 200, function (b) { a._TopLetterbox.moveBy(0, 0.309 * d.getScreenHeight(), 0.4, J.quadIn); a._BottomLetterbox.moveBy(0, -(0.309 * d.getScreenHeight()), 0.4, J.quadIn); b = a._TitleLeft; if ( d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b) ) a._TitleLeft.moveBy( -(a._FontToUse.getTextWidth(a._LeftText) / k.SCALE + 42), 0, 0.4, J.quadIn ), a._TitleRight.moveBy( a._FontToUse.getTextWidth(a._RightText) / k.SCALE + 42, 0, 0.4, J.quadIn ); d.runLater( 700, function (a) { if ('Forest Cutscene' == d.getCurrentSceneName()) gb.commercialBreak(function () { var a = Fa.get().scenes.h[13].getID(), b = 0, c = 0, e = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); var f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e); e = c = b = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)); }); else if ('Beach Cutscene' == d.getCurrentSceneName()) { a = Fa.get().scenes.h[23].getID(); var b = 0, c = 0, g = 0; null == g && (g = 0); null == c && (c = 0); null == b && (b = 0); var k = d.createFadeOut(0.1, (b << 16) | (c << 8) | g); g = c = b = 0; null == g && (g = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, k, d.createFadeIn(0.1, (b << 16) | (c << 8) | g)); } else 'Snow Cutscene' == d.getCurrentSceneName() ? ((a = Fa.get().scenes.h[33].getID()), (g = c = b = 0), null == g && (g = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | g)), (g = c = b = 0), null == g && (g = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.1, (b << 16) | (c << 8) | g))) : 'Cave Cutscene' == d.getCurrentSceneName() ? ((a = Fa.get().scenes.h[14].getID()), (g = c = b = 0), null == g && (g = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | g)), (g = c = b = 0), null == g && (g = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.1, (b << 16) | (c << 8) | g))) : 'Castle Cutscene' == d.getCurrentSceneName() ? ((a = Fa.get().scenes.h[43].getID()), (g = c = b = 0), null == g && (g = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | g)), (g = c = b = 0), null == g && (g = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.1, (b << 16) | (c << 8) | g))) : 'Intro Cutscene' == d.getCurrentSceneName() && ((a = Fa.get().scenes.h[53].getID()), (g = c = b = 0), null == g && (g = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | g)), (g = c = b = 0), null == g && (g = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.1, (b << 16) | (c << 8) | g))); }, null ); }, null )); }, init: function () { var a = this; d.engine.unpause(); this._NoSkip = !0; d.runLater( 400, function (b) { a._NoSkip = !1; a._CanSkip = !0; }, null ); 'JP' == k.engine.getGameAttribute('Language') ? ((this._FontToUse = d.getFont(606)), 'Forest Cutscene' == d.getCurrentSceneName() ? ((this._LeftText = '\u30a8\u30ea\u30a2 1'), (this._RightText = '\u30a2\u30d0\u30ed\u306e\u68ee')) : 'Beach Cutscene' == d.getCurrentSceneName() ? ((this._LeftText = '\u30a8\u30ea\u30a2 2'), (this._RightText = '\u30b9\u30c8\u30e9\u30f3\u30c9\u30d3\u30fc\u30c1')) : 'Snow Cutscene' == d.getCurrentSceneName() ? ((this._LeftText = '\u30a8\u30ea\u30a2 3'), (this._RightText = '\u30e2\u30f3\u30c8\u5c71')) : 'Cave Cutscene' == d.getCurrentSceneName() ? ((this._LeftText = '\u30a8\u30ea\u30a2 4'), (this._RightText = '\u30d5\u30a1\u30f3\u30b4\u6d1e\u7a9f')) : 'Castle Cutscene' == d.getCurrentSceneName() && ((this._LeftText = '\u30a8\u30ea\u30a2 5'), (this._RightText = '\u30ab\u30b9\u30c6\u30ed\u57ce'))) : 'CN' == k.engine.getGameAttribute('Language') ? ((this._FontToUse = d.getFont(604)), 'Forest Cutscene' == d.getCurrentSceneName() ? ((this._LeftText = '\u533a\u57df 1'), (this._RightText = '\u963f\u5df4\u7f57\u68ee\u6797')) : 'Beach Cutscene' == d.getCurrentSceneName() ? ((this._LeftText = '\u533a\u57df 2'), (this._RightText = '\u65af\u7279\u5170\u591a\u6d77\u6ee9')) : 'Snow Cutscene' == d.getCurrentSceneName() ? ((this._LeftText = '\u533a\u57df 3'), (this._RightText = '\u8499\u6258\u5c71')) : 'Cave Cutscene' == d.getCurrentSceneName() ? ((this._LeftText = '\u533a\u57df 4'), (this._RightText = '\u771f\u83cc\u6d1e')) : 'Castle Cutscene' == d.getCurrentSceneName() && ((this._LeftText = '\u533a\u57df 5'), (this._RightText = '\u5361\u65af\u7279\u6d1b\u57ce\u5821'))) : 'KR' == k.engine.getGameAttribute('Language') ? ((this._FontToUse = d.getFont(605)), 'Forest Cutscene' == d.getCurrentSceneName() ? ((this._LeftText = '\uc9c0\uc5ed 1'), (this._RightText = '\uc544\ubc14\ub85c \uc232')) : 'Beach Cutscene' == d.getCurrentSceneName() ? ((this._LeftText = '\uc9c0\uc5ed 2'), (this._RightText = '\uc2a4\ud2b8 \ub780\ub3c4 \ube44\uce58')) : 'Snow Cutscene' == d.getCurrentSceneName() ? ((this._LeftText = '\uc9c0\uc5ed 3'), (this._RightText = '\ubaac\ud1a0 \ub9c8\uc6b4\ud2f4')) : 'Cave Cutscene' == d.getCurrentSceneName() ? ((this._LeftText = '\uc9c0\uc5ed 4'), (this._RightText = '\ud391\uace0 \ub3d9\uad74')) : 'Castle Cutscene' == d.getCurrentSceneName() && ((this._LeftText = '\uc9c0\uc5ed 5'), (this._RightText = '\uce74\uc2a4\ud154\ub85c \uc131'))) : ((this._FontToUse = d.getFont(441)), 'Forest Cutscene' == d.getCurrentSceneName() ? ((this._LeftText = 'WORLD 1'), (this._RightText = 'ABARO WOODS')) : 'Beach Cutscene' == d.getCurrentSceneName() ? ((this._LeftText = 'WORLD 2'), (this._RightText = 'STRANDO BEACH')) : 'Snow Cutscene' == d.getCurrentSceneName() ? ((this._LeftText = 'WORLD 3'), (this._RightText = 'MONTO MOUNTAIN')) : 'Cave Cutscene' == d.getCurrentSceneName() ? ((this._LeftText = 'WORLD 4'), (this._RightText = 'FUNGO CAVE')) : 'Castle Cutscene' == d.getCurrentSceneName() && ((this._LeftText = 'WORLD 5'), (this._RightText = 'KASTELO FORTRESS'))); d.engine.moveCamera(d.getSceneWidth() / 2, d.getSceneHeight() / 2); d.createRecycledActor(d.getActorType(437), d.getScreenX() - 5, d.getScreenY() - 5, 0); this._TopLetterbox = d.getLastCreatedActor(); d.createRecycledActor( d.getActorType(437), d.getScreenX() - 5, d.getScreenY() + d.getScreenHeight() / 2, 0 ); this._BottomLetterbox = d.getLastCreatedActor(); this._SkipTextMidY = d.getScreenHeight() - 48; d.runLater( 300, function (b) { a._TopLetterbox.moveBy(0, -(0.309 * d.getScreenHeight()), 0.4, J.backOut); a._BottomLetterbox.moveBy(0, 0.309 * d.getScreenHeight(), 0.4, J.backOut); }, null ); d.runLater( 900, function (b) { 'NONE' != a._LeftText && (d.createRecycledActor( d.getActorType(435), d.getScreenX() - 199, d.getScreenY() + ((0.191 * d.getScreenHeight()) / 2 - 11), 0 ), (a._TitleLeft = d.getLastCreatedActor()), a._TitleLeft.setValue('Cutscene Title Logic', '_Text', a._LeftText), a._TitleLeft.moveBy( a._FontToUse.getTextWidth(a._LeftText) / k.SCALE + 42, 0, 0.4, J.quadOut ), 'Beach Cutscene' == d.getCurrentSceneName() ? a._TitleLeft.setAnimation('Yellow') : 'Snow Cutscene' == d.getCurrentSceneName() ? a._TitleLeft.setAnimation('Blue') : 'Cave Cutscene' == d.getCurrentSceneName() ? a._TitleLeft.setAnimation('Brown') : 'Castle Cutscene' == d.getCurrentSceneName() && a._TitleLeft.setAnimation('Grey'), d.createRecycledActor( d.getActorType(439), d.getScreenX() + d.getScreenWidth(), a._BottomLetterbox.getY() + (0.191 * d.getScreenHeight()) / 2 - 11, 0 ), (a._TitleRight = d.getLastCreatedActor()), a._TitleRight.setValue('Cutscene Title Logic', '_Text', a._RightText), a._TitleRight.moveBy( -(a._FontToUse.getTextWidth(a._RightText) / k.SCALE + 42), 0, 0.4, J.quadOut ), 'Beach Cutscene' == d.getCurrentSceneName() ? a._TitleRight.setAnimation('Yellow') : 'Snow Cutscene' == d.getCurrentSceneName() ? a._TitleRight.setAnimation('Blue') : 'Cave Cutscene' == d.getCurrentSceneName() ? a._TitleRight.setAnimation('Brown') : 'Castle Cutscene' == d.getCurrentSceneName() && a._TitleRight.setAnimation('Grey')); }, null ); this.addListener(d.engine.whenAnyGamepadPressed, q(this, this._event_AnyButton)); this.addListener(d.engine.whenMTStarted, q(this, this._event_MultiTouch)); this.addListener( d.engine.whenKeyPressedEvents.getOrCreateEvent('enter'), q(this, this._event_Keyboard) ); this.addListener(d.engine.whenDrawing, q(this, this._event_Drawing)); }, forwardMessage: function (a) {}, __class__: uu }); var vu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h.Text = '_Text'; this._Text = ''; }; h['scripts.Design_258_258_CutsceneTitleLogic'] = vu; vu.__name__ = 'scripts.Design_258_258_CutsceneTitleLogic'; vu.__super__ = u; vu.prototype = r(u.prototype, { _Text: null, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) { var e = 'JP' == k.engine.getGameAttribute('Language') ? d.getFont(606) : 'CN' == k.engine.getGameAttribute('Language') ? d.getFont(604) : 'KR' == k.engine.getGameAttribute('Language') ? d.getFont(605) : d.getFont(441); null != e && e != a.font && (a.font = e); if (this.actor.getType() == d.getActorType(435)) { e = this._Text; b = this.actor.getWidth() - (a.font.getTextWidth(this._Text) / k.SCALE + 14); c = this.actor.getHeight() / 2 - a.font.getHeight() / k.SCALE / 2; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (c = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, c); var f = null, g = a.font; g = e + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE; if (Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g)) (e = W.drawnStringCache.h[g]), (e.lifetime = 5), (f = e.img); else { var h = a.font.font.getTextWidth(e, a.font.letterSpacing, a.font.fontScale), l = (a.font.font.getFontHeight() * a.font.fontScale) | 0; 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, e, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (e = new Mb()), (e.img = f), (e.lifetime = 5), (W.drawnStringCache.h[g] = e), W.drawnStringCacheKeys.push(g)); } } else (e = this._Text), (c = this.actor.getHeight() / 2 - a.font.getHeight() / k.SCALE / 2), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + 14 * a.scaleX), (c = a.y + c * a.scaleY)) : ((b = a.x + 14 * a.scaleX - k.cameraX), (c = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + 14 * a.scaleX), (c = a.y + c * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, c), (f = null), (g = a.font), (g = e + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((e = W.drawnStringCache.h[g]), (e.lifetime = 5), (f = e.img)) : ((h = a.font.font.getTextWidth(e, a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, e, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (e = new Mb()), (e.img = f), (e.lifetime = 5), (W.drawnStringCache.h[g] = e), W.drawnStringCacheKeys.push(g))); null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, f.width, f.height), a.graphics.endFill()); } }, init: function () { this.actor.makeAlwaysSimulate(); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); }, forwardMessage: function (a) {}, __class__: vu }); var wu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h.Speed = '_Speed'; this._Speed = 0; this.nameMap.h['Path String'] = '_PathString'; this._PathString = ''; this.nameMap.h['Move Count'] = '_MoveCount'; this._MoveCount = 0; this.nameMap.h['Current Move'] = '_CurrentMove'; this._CurrentMove = ''; this.nameMap.h['Current Direction'] = '_CurrentDirection'; this._CurrentDirection = ''; this.nameMap.h['Current Distance'] = '_CurrentDistance'; this._CurrentDistance = 0; this.nameMap.h.Ease = '_Ease'; this._Ease = !1; this.nameMap.h['Target X'] = '_TargetX'; this._TargetX = 0; this.nameMap.h['Target Y'] = '_TargetY'; this._TargetY = 0; this.nameMap.h['Current Distance String'] = '_CurrentDistanceString'; this._CurrentDistanceString = ''; this.nameMap.h['Speed Tracker'] = '_SpeedTracker'; this.nameMap.h['Tracker X Speed'] = '_TrackerXSpeed'; this._TrackerXSpeed = 0; this.nameMap.h['Previous Direction'] = '_PreviousDirection'; this._PreviousDirection = ''; this.nameMap.h.Delay = '_Delay'; this._Delay = 0; this.nameMap.h['Touch To Start'] = '_TouchToStart'; this._TouchToStart = !1; this.nameMap.h['Touch To Start Reset'] = '_TouchToStartReset'; this._TouchToStartReset = !1; }; h['scripts.Design_25_25_SetPath'] = wu; wu.__name__ = 'scripts.Design_25_25_SetPath'; wu.__super__ = u; wu.prototype = r(u.prototype, { _Speed: null, _PathString: null, _MoveCount: null, _CurrentMove: null, _CurrentDirection: null, _CurrentDistance: null, _Ease: null, _TargetX: null, _TargetY: null, _CurrentDistanceString: null, _SpeedTracker: null, _TrackerXSpeed: null, _PreviousDirection: null, _Delay: null, _TouchToStart: null, _TouchToStartReset: null, _event_Updating: function (a) { this.wrapper.enabled && '' != this._PathString && ((a = this._SpeedTracker), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && (this._TrackerXSpeed = this._SpeedTracker.getXVelocity()); }, _event_TouchToStart: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorType(2); var e = a.otherActor.getType(); a = a.otherActor.getGroup(); c = c == e || c == a; } else c = !1; c && this._TouchToStart && ((this._TouchToStart = !1), d.runLater( 1e3 * this._Delay, function (a) { b.actor.say('Set Path', '_customEvent_Move'); }, this.actor )); }, _event_TouchToStartTrigger: function (a) { var b = this; this.wrapper.enabled && this._TouchToStart && ((this._TouchToStart = !1), d.runLater( 1e3 * this._Delay, function (a) { b.actor.say('Set Path', '_customEvent_Move'); }, this.actor )); }, _customEvent_Move: function () { var a = this; if ('' != this._PathString) { this._CurrentMove = '' + this._PathString.split('|')[this._MoveCount | 0]; var b = this._CurrentDirection; if (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) this._PreviousDirection = this._CurrentDirection; this._CurrentDirection = this._CurrentMove.charAt(0); b = this._CurrentDistanceString = 2 < this._CurrentMove.length ? this._CurrentMove.charAt(1) + this._CurrentMove.charAt(2) : this._CurrentMove.charAt(1); this._CurrentDistance = null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b)); 'U' == this._CurrentDirection ? ((this._TargetX = 0), (this._TargetY = -32 * this._CurrentDistance)) : 'D' == this._CurrentDirection ? ((this._TargetX = 0), (this._TargetY = 32 * this._CurrentDistance)) : 'L' == this._CurrentDirection ? ((this._TargetX = -32 * this._CurrentDistance), (this._TargetY = 0)) : 'R' == this._CurrentDirection && ((this._TargetX = 32 * this._CurrentDistance), (this._TargetY = 0)); 'P' != this._CurrentDirection && 'T' != this._CurrentDirection && (this._Ease ? this.actor.moveBy( this._TargetX, this._TargetY, this._Speed * this._CurrentDistance, J.quadInOut ) : this.actor.moveBy( this._TargetX, this._TargetY, this._Speed * this._CurrentDistance, J.linear )); if ('T' == this._CurrentDirection) if ('U' == this._PreviousDirection) { if (this.actor.isOnScreen()) { b = 0; for (var c = d.getActorsOfType(d.getActorType(2)); b < c.length; ) { var e = c[b]; ++b; } d.startShakingScreen(0.005, 0.05); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(105)); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(0, 32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() - 8, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, 32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 8, this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, 32, 0.3, J.backOut); } } else if ('D' == this._PreviousDirection) { if (this.actor.isOnScreen()) { b = 0; for (c = d.getActorsOfType(d.getActorType(2)); b < c.length; ) (e = c[b]), ++b, null == e || e.dead || e.recycled || (this.actor.getXCenter(), e.getXCenter(), d.runLater(150, function (a) {}, this.actor)); d.startShakingScreen(0.005, 0.05); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(105)); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); } } else if ('L' == this._PreviousDirection) { if (this.actor.isOnScreen()) { b = 0; for (c = d.getActorsOfType(d.getActorType(2)); b < c.length; ) (e = c[b]), ++b, null == e || e.dead || e.recycled || (this.actor.getXCenter(), e.getXCenter(), d.runLater(150, function (a) {}, this.actor)); d.startShakingScreen(0.005, 0.05); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(105)); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX(), this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, 0, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX(), this.actor.getY() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX(), this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, 32, 0.3, J.backOut); } } else if ('R' == this._PreviousDirection && this.actor.isOnScreen()) { b = 0; for (c = d.getActorsOfType(d.getActorType(2)); b < c.length; ) (e = c[b]), ++b, null == e || e.dead || e.recycled || (this.actor.getXCenter(), e.getXCenter(), d.runLater(150, function (a) {}, this.actor)); d.startShakingScreen(0.005, 0.05); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(105)); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, 0, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 8, this.actor.getY() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, 32, 0.3, J.backOut); } d.runLater( 1e3 * (this._Speed * Math.max(1, this._CurrentDistance) + 0.04), function (b) { a.actor.say('Set Path', '_customEvent_Move'); }, this.actor ); this._MoveCount == this._PathString.split('|').length - 1 ? (this._MoveCount = 0) : (this._MoveCount += 1); } }, init: function () { var a = this; '' != this._PathString && 0 < this._Speed && (d.createRecycledActor( d.getActorType(64), this.actor.getXCenter(), this.actor.getYCenter(), 0 ), (this._SpeedTracker = d.getLastCreatedActor()), this._SpeedTracker.disableActorDrawing(), this._SpeedTracker.setValue('Follow Target', '_TargetActor', this.actor), this._TouchToStart || d.runLater( 1e3 * this._Delay, function (b) { a.actor.say('Set Path', '_customEvent_Move'); }, this.actor )); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenCollided, q(this, this._event_TouchToStart)); this.addListenerWithKey2( d.engine.whenCollidedEvents, d.getActorType(2).ID, d.getActorType(417).ID, q(this, this._event_TouchToStartTrigger) ); }, forwardMessage: function (a) {}, __class__: wu }); var xu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h.Bounce = '_Bounce'; this._Bounce = !1; this.nameMap.h['Back and Forth'] = '_BackandForth'; this._BackandForth = !1; this.nameMap.h.Left = '_Left'; this._Left = !1; this.nameMap.h['Set Colour'] = '_SetColour'; this._SetColour = !1; this.nameMap.h.Colour = '_Colour'; this._Colour = 0; this.nameMap.h['High Jump'] = '_HighJump'; this._HighJump = !1; this.nameMap.h.Surprised = '_Surprised'; this._Surprised = !1; this.nameMap.h.Balloon = '_Balloon'; this.nameMap.h.Exclamation = '_Exclamation'; this.nameMap.h['Exclamation Created'] = '_ExclamationCreated'; this._ExclamationCreated = !1; this.nameMap.h['Off Screen'] = '_OffScreen'; this._OffScreen = !1; this.nameMap.h.Stop = '_Stop'; this._Stop = !1; this.nameMap.h.Stopped = '_Stopped'; this._Stopped = !1; this.nameMap.h['Delay Bounce'] = '_DelayBounce'; this._DelayBounce = !1; this.nameMap.h['Go Right'] = '_GoRight'; this._GoRight = !1; }; h['scripts.Design_266_266_CutsceneBabyLogic'] = xu; xu.__name__ = 'scripts.Design_266_266_CutsceneBabyLogic'; xu.__super__ = u; xu.prototype = r(u.prototype, { _GravitySpeed: null, _Bounce: null, _BackandForth: null, _Left: null, _SetColour: null, _Colour: null, _HighJump: null, _Surprised: null, _Balloon: null, _Exclamation: null, _ExclamationCreated: null, _OffScreen: null, _Stop: null, _Stopped: null, _DelayBounce: null, _GoRight: null, _event_Updating: function (a) { var b = this; this.wrapper.enabled && (!this._OffScreen && this.actor.getX() > d.getScreenX() + d.getScreenWidth() && 'Ending' != d.getCurrentSceneName() && ((this._OffScreen = !0), d.runLater( 500, function (a) { d.recycleActor(b.actor); }, this.actor )), this._Stop && this.actor.setXVelocity(0)); }, _event_ActorGroup: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorGroup(1); var e = a.otherActor.getType(); a = a.otherActor.getGroup(); c = c == e || c == a; } else c = !1; c && (this._DelayBounce || (this._Surprised ? (this.actor.setXVelocity(0), this._ExclamationCreated || (this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.setAnimation( '' + this.actor.getAnimation().split(' ')[0] + ' Right' ), (this._ExclamationCreated = !0), d.createRecycledActor( d.getActorType(131), this.actor.getXCenter() - 14, this.actor.getY() - 28, 0 ), (this._Exclamation = d.getLastCreatedActor()), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(183)), d.runLater( 500, function (a) { d.recycleActor(b._Exclamation); }, this.actor ))) : this._Stop ? this._Stopped || ((this._Stopped = !0), this.actor.setXVelocity(0), this.actor.setYVelocity(0)) : this._Bounce || ((this._Bounce = !0), this.actor.isOnScreen() && (k.engine.getGameAttribute('Sound Disabled') || this._BackandForth || 'Ending' == d.getCurrentSceneName() || d.playSound(d.getSound(220))), this.actor.setXVelocity(0), this.actor.setYVelocity(0), this._Left ? this.actor.setAnimation( '' + this.actor.getAnimation().split(' ')[0] + ' Left Crouch' ) : this.actor.setAnimation( '' + this.actor.getAnimation().split(' ')[0] + ' Right Crouch' ), d.runLater( 100, function (a) { 'Castle Cutscene' == d.getCurrentSceneName() ? b.actor.setXVelocity(40) : b._BackandForth ? b._Left ? (b.actor.setXVelocity(10), (b._Left = !1)) : ((b._Left = !0), b.actor.setXVelocity(-10)) : 'Ending' == d.getCurrentSceneName() ? b.actor.setXVelocity(15.5) : (b.actor.setXVelocity(30), 'Intro Cutscene' == d.getCurrentSceneName() && (b._GoRight = !0)); b._HighJump ? b.actor.setYVelocity(-40) : b.actor.setYVelocity(-30); b._Left ? b.actor.setAnimation( '' + b.actor.getAnimation().split(' ')[0] + ' Left Jump' ) : b.actor.setAnimation( '' + b.actor.getAnimation().split(' ')[0] + ' Right Jump' ); d.runLater( 100, function (a) { b._Bounce = !1; }, b.actor ); }, this.actor ))), this._GoRight && this.actor.setXVelocity(30)); }, _event_Balloon: function (a) { this.wrapper.enabled && (this._Surprised ? (a = !1) : ((a = this._Balloon), (a = d.isPrimitive(a) ? !0 : 'string' == typeof a ? '' != x.__cast(a, String) : null != a)), a && this._Balloon.getX() > this.actor.getXCenter() && ((this._Balloon = d.getDefaultValue(this._Balloon)), (this._Surprised = !0), this.actor.setXVelocity(0))); }, _event_Gravity: function (a) { this.wrapper.enabled && this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)); }, init: function () { var a = this; this.actor.makeAlwaysSimulate(); this._GravitySpeed = 48; k.engine.getGameAttribute('Possum Mode') && ((this._SetColour = !0), (this._Colour = 6)); this._SetColour && (this._Left ? this.actor.setAnimation('' + this._Colour + ' Left Jump') : this.actor.setAnimation('' + this._Colour + ' Right Jump')); this._DelayBounce && (this.actor.setXVelocity(15.5), d.runLater( 300, function (b) { a._DelayBounce = !1; }, this.actor )); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenCollided, q(this, this._event_ActorGroup)); d.runPeriodically(50, q(this, this._event_Balloon), this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Gravity)); }, forwardMessage: function (a) {}, __class__: xu }); var yu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Button Number'] = '_ButtonNumber'; this._ButtonNumber = 0; this.nameMap.h.Go = '_Go'; this._Go = !1; this.nameMap.h['Go Delay'] = '_GoDelay'; this._GoDelay = 0; this.nameMap.h['Lock list'] = '_Locklist'; this.nameMap.h['Boss Hole Sensor'] = '_BossHoleSensor'; this._BossHoleSensor = !1; this.nameMap.h.Reset = '_Reset'; this._Reset = !1; this.nameMap.h['Turn Block'] = '_TurnBlock'; }; h['scripts.Design_28_28_ButtonBlockLogic'] = yu; yu.__name__ = 'scripts.Design_28_28_ButtonBlockLogic'; yu.__super__ = u; yu.prototype = r(u.prototype, { _ButtonNumber: null, _Go: null, _GoDelay: null, _Locklist: null, _BossHoleSensor: null, _Reset: null, _TurnBlock: null, _customEvent_Go: function () { var a = this; this._Go || ((this._Go = !0), d.runLater( 1e3 * this._GoDelay, function (b) { a.actor.setAnimation('Turn'); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(111)); b = 0; for (var c = d.getActorsOfType(d.getActorType(2)); b < c.length; ) { var e = c[b]; ++b; null == e || e.dead || e.recycled || (a.actor.getXCenter() > e.getXCenter() ? d.setValueForScene('Stage Logic', '_RumbleName', 'Block Right') : d.setValueForScene('Stage Logic', '_RumbleName', 'Block Left'), d.sayToScene('Stage Logic', '_customEvent_rumble')); } d.createRecycledActorOnLayer( d.getActorType(381), a.actor.getX(), a.actor.getY(), d.engine.getLayerById(a.actor.getLayerID()) ); a._TurnBlock = d.getLastCreatedActor(); a._TurnBlock.spinBy(180, 0.2, J.quadInOut); if ('Level 12' == d.getCurrentSceneName()) for (b = 0, c = d.getActorsOfType(d.getActorType(609)); b < c.length; ) (e = c[b]), ++b, null == e || e.dead || e.recycled || d.recycleActor(e); d.runLater( 100, function (a) { d.startShakingScreen(0.005, 0.05); }, a.actor ); d.runLater( 200, function (b) { d.recycleActor(a._TurnBlock); a.actor.setAnimation('Open'); }, a.actor ); }, this.actor )); }, _customEvent_Reset: function () { var a = this; this._Go && !this._Reset && ((this._Reset = !0), (this._Go = !1), this.actor.setAnimation('Turn'), this.actor.setFilter([d.createBrightnessFilter(100)]), this.actor.spinTo(0, 0.2, J.quadInOut), d.runLater( 210, function (b) { a.actor.clearFilters(); a.actor.setAnimation('Closed'); a._Reset = !1; }, this.actor )); }, init: function () { this.actor.makeAlwaysSimulate(); }, forwardMessage: function (a) {}, __class__: yu }); var zu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Button Number'] = '_ButtonNumber'; this._ButtonNumber = 0; this.nameMap.h.Unlocked = '_Unlocked'; this._Unlocked = !1; this.nameMap.h['Lock list'] = '_Locklist'; this.nameMap.h['Dude Check'] = '_DudeCheck'; this._DudeCheck = !1; this.nameMap.h['Button Is Pressed'] = '_ButtonIsPressed'; this._ButtonIsPressed = !1; this.nameMap.h['Button List'] = '_ButtonList'; this.nameMap.h['All Buttons Are Down'] = '_AllButtonsAreDown'; this._AllButtonsAreDown = !1; this.nameMap.h.Hide = '_Hide'; this._Hide = !1; this.nameMap.h.Disable = '_Disable'; this._Disable = !1; this.nameMap.h['Boss 5 Left'] = '_Boss5Left'; this._Boss5Left = !1; }; h['scripts.Design_29_29_ButtonLogic'] = zu; zu.__name__ = 'scripts.Design_29_29_ButtonLogic'; zu.__super__ = u; zu.prototype = r(u.prototype, { _ButtonNumber: null, _Unlocked: null, _Locklist: null, _DudeCheck: null, _ButtonIsPressed: null, _ButtonList: null, _AllButtonsAreDown: null, _Hide: null, _Disable: null, _Boss5Left: null, _event_HitsDude: function (a) { if (this.wrapper.enabled) { var b = d.getActorType(2); var c = a.otherActor.getType(); a = a.otherActor.getGroup(); b = b == c || b == a; } else b = !1; !b || this._Hide || this._Disable || (this._DudeCheck = !0); }, _event_HitsCrate: function (a) { if (this.wrapper.enabled) { var b = d.getActorType(32); var c = a.otherActor.getType(); a = a.otherActor.getGroup(); b = b == c || b == a; } else b = !1; b && !this._Hide && (this._DudeCheck = !0); }, _event_HitsBigCrate: function (a) { if (this.wrapper.enabled) { var b = d.getActorType(379); var c = a.otherActor.getType(); a = a.otherActor.getGroup(); b = b == c || b == a; } else b = !1; b && !this._Hide && (this._DudeCheck = !0); }, _event_Updating: function (a) { if (this.wrapper.enabled && !this._Hide && !this._Unlocked) { if (this._DudeCheck) { if (!this._ButtonIsPressed) { this._ButtonIsPressed = !0; k.engine.getGameAttribute('Sound Disabled') || (d.playSound(d.getSound(107)), d.setValueForScene('Stage Logic', '_RumbleName', 'Item'), d.sayToScene('Stage Logic', '_customEvent_rumble')); a = 0; for (var b = d.getActorsOfType(d.getActorType(38)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (c.getValue('Button Logic', '_ButtonNumber') == this._ButtonNumber && this._ButtonList.push(c)); } a = 0; for (b = d.getActorsOfType(d.getActorType(40)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || (c.getValue('Button Block Logic', '_ButtonNumber') == this._ButtonNumber && this._Locklist.push(c)); this.actor.setAnimation('Down'); this._AllButtonsAreDown = !0; a = 0; for (b = x.__cast(this._ButtonList, Array); a < b.length; ) (c = b[a]), ++a, 0 == c.getValue('Button Logic', '_ButtonIsPressed') && (this._AllButtonsAreDown = !1); if (this._AllButtonsAreDown) { this._Unlocked = !0; a = 0; for (b = x.__cast(this._ButtonList, Array); a < b.length; ) (c = b[a]), ++a, c.setAnimation('Down'), c.setValue('Button Logic', '_Unlocked', !0); d.startShakingScreen(0.005, 0.05); a = 0; for (b = this._Locklist.length; a < b; ) (c = a++), this._Locklist[c].setValue('Button Block Logic', '_GoDelay', 0.2 * c + 0.4), this._Locklist[c].shout('_customEvent_Go'); if (this.actor.getType() == d.getActorType(353)) { this._Hide = !0; this.actor.moveBy(0, 32, 0.4, J.quadInOut); a = 0; for (b = d.getActorsOfType(d.getActorType(208)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || (c.getValue('Cannon Logic', '_BossCannonNumber') == this._ButtonNumber && c.say('Cannon Logic', '_customEvent_Shoot')); a = 0; for (b = d.getActorsOfType(d.getActorType(213)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || (c.getValue('Cannon Logic', '_BossCannonNumber') == this._ButtonNumber && c.say('Cannon Logic', '_customEvent_Shoot')); a = 0; for (b = d.getActorsOfType(d.getActorType(391)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || (c.getValue('Crusher Logic', '_ButtonNumber') == this._ButtonNumber && c.say('Crusher Logic', '_customEvent_Go')); a = 0; for (b = d.getActorsOfType(d.getActorType(421)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || (c.getValue('Boss Spikes Logic', '_ButtonNumber') == this._ButtonNumber && c.say('Boss Spikes Logic', '_customEvent_Go')); a = 0; for (b = d.getActorsOfType(d.getActorType(696)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || (c.getValue('Boss Spikes Logic', '_ButtonNumber') == this._ButtonNumber && c.say('Boss Spikes Logic', '_customEvent_Go')); a = 0; for (b = d.getActorsOfType(d.getActorType(694)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || (c.getValue('Boss Spikes Logic', '_ButtonNumber') == this._ButtonNumber && c.say('Boss Spikes Logic', '_customEvent_Go')); a = 0; for (b = d.getActorsOfType(d.getActorType(353)); a < b.length; ) if ( ((c = [b[a]]), ++a, null != c[0] && !c[0].dead && !c[0].recycled && c[0] != this.actor && c[0].getValue('Button Logic', '_Hide')) ) { c[0].moveBy(0, -32, 0.4, J.quadInOut); c[0].setAnimation('Normal'); if (c[0].getValue('Button Logic', '_ButtonIsPressed')) for ( var e = 0, f = d.getActorsOfType(d.getActorType(40)); e < f.length; ) { var g = f[e]; ++e; null == g || g.dead || g.recycled || X.contains(this._Locklist, g) || g.shout('_customEvent_Reset'); } d.runLater( 400, (function (a) { return function (b) { a[0].setValue('Button Logic', '_Hide', !1); a[0].setValue('Button Logic', '_Unlocked', !1); a[0].setValue('Button Logic', '_ButtonIsPressed', !1); }; })(c), this.actor ); } } } } } else this._ButtonIsPressed && ((this._ButtonIsPressed = !1), this._Unlocked || this.actor.setAnimation('Normal')); this._DudeCheck = !1; } }, init: function () { this.actor.makeAlwaysSimulate(); this._ButtonList = []; this._Locklist = []; this._Hide && this.actor.setY(this.actor.getY() + 32); this.addListener(this.actor.whenCollided, q(this, this._event_HitsDude)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsCrate)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsBigCrate)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: zu }); var Au = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Left Touch Is Down'] = '_LeftTouchIsDown'; this._LeftTouchIsDown = !1; this.nameMap.h['Right Touch Is Down'] = '_RightTouchIsDown'; this._RightTouchIsDown = !1; this.nameMap.h['Ground Check'] = '_GroundCheck'; this._GroundCheck = !1; this.nameMap.h['On Ground'] = '_OnGround'; this._OnGround = !1; this.nameMap.h['Jump Touch ID'] = '_JumpTouchID'; this._JumpTouchID = ''; this.nameMap.h['Jump Speed'] = '_JumpSpeed'; this._JumpSpeed = 0; this.nameMap.h['Left Touch ID'] = '_LeftTouchID'; this._LeftTouchID = ''; this.nameMap.h['Right Touch ID'] = '_RightTouchID'; this._RightTouchID = ''; this.nameMap.h['Run Speed'] = '_RunSpeed'; this._RunSpeed = 0; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['Left Button'] = '_LeftButton'; this.nameMap.h['Right Button'] = '_RightButton'; this.nameMap.h['Jump Button'] = '_JumpButton'; this.nameMap.h['Distance X'] = '_DistanceX'; this._DistanceX = 0; this.nameMap.h['Camera Target'] = '_CameraTarget'; this.nameMap.h['Distance Y'] = '_DistanceY'; this._DistanceY = 0; this.nameMap.h.Distance = '_Distance'; this._Distance = 0; this.nameMap.h['Camera X'] = '_CameraX'; this._CameraX = 0; this.nameMap.h['Camera Y'] = '_CameraY'; this._CameraY = 0; this.nameMap.h.Dead = '_Dead'; this._Dead = !1; this.nameMap.h.Hurt = '_Hurt'; this._Hurt = !1; this.nameMap.h['Jump Hang'] = '_JumpHang'; this._JumpHang = 0; this.nameMap.h['Jump Amnesty'] = '_JumpAmnesty'; this._JumpAmnesty = 0; this.nameMap.h['Camera Boundaries Found'] = '_CameraBoundariesFound'; this._CameraBoundariesFound = !1; this.nameMap.h['Left Boundary'] = '_LeftBoundary'; this.nameMap.h['Right Boundary'] = '_RightBoundary'; this.nameMap.h['Top Boundary'] = '_TopBoundary'; this.nameMap.h['Bottom Boundary'] = '_BottomBoundary'; this.nameMap.h['Boundary X Distance'] = '_BoundaryXDistance'; this._BoundaryXDistance = 0; this.nameMap.h['Boundary Y Distance'] = '_BoundaryYDistance'; this._BoundaryYDistance = 0; this.nameMap.h['Left Boundary X'] = '_LeftBoundaryX'; this._LeftBoundaryX = 0; this.nameMap.h['Right Boundary X'] = '_RightBoundaryX'; this._RightBoundaryX = 0; this.nameMap.h['Top Boundary Y'] = '_TopBoundaryY'; this._TopBoundaryY = 0; this.nameMap.h['Bottom Boundary Y'] = '_BottomBoundaryY'; this._BottomBoundaryY = 0; this.nameMap.h.Exiting = '_Exiting'; this._Exiting = !1; this.nameMap.h['Platform Check'] = '_PlatformCheck'; this._PlatformCheck = !1; this.nameMap.h['Current Platform'] = '_CurrentPlatform'; this.nameMap.h['Platform Pos X'] = '_PlatformPosX'; this._PlatformPosX = 0; this.nameMap.h['On Platform'] = '_OnPlatform'; this._OnPlatform = !1; this.nameMap.h.Jumping = '_Jumping'; this._Jumping = !1; this.nameMap.h['Platform Release Delay'] = '_PlatformReleaseDelay'; this._PlatformReleaseDelay = 0; this.nameMap.h['Camera Target X'] = '_CameraTargetX'; this._CameraTargetX = 0; this.nameMap.h['Camera Target Y'] = '_CameraTargetY'; this._CameraTargetY = 0; this.nameMap.h['Jump Touch Timer'] = '_JumpTouchTimer'; this._JumpTouchTimer = 0; this.nameMap.h['Crate Check'] = '_CrateCheck'; this._CrateCheck = !1; this.nameMap.h['Pushing Crate'] = '_PushingCrate'; this._PushingCrate = !1; this.nameMap.h['Crate Release Delay'] = '_CrateReleaseDelay'; this._CrateReleaseDelay = 0; this.nameMap.h['Bottom Was Hit'] = '_BottomWasHit'; this._BottomWasHit = !1; this.nameMap.h['Top Was Hit'] = '_TopWasHit'; this._TopWasHit = !1; this.nameMap.h['Left Was Hit'] = '_LeftWasHit'; this._LeftWasHit = !1; this.nameMap.h['Right Was Hit'] = '_RightWasHit'; this._RightWasHit = !1; this.nameMap.h['Platform X Speed Offset'] = '_PlatformXSpeedOffset'; this._PlatformXSpeedOffset = 0; this.nameMap.h['Camera Boundary Type'] = '_CameraBoundaryType'; this.nameMap.h['Camera Transition'] = '_CameraTransition'; this._CameraTransition = !1; this.nameMap.h['Camera Transition Finished'] = '_CameraTransitionFinished'; this._CameraTransitionFinished = !1; this.nameMap.h['Camera Transition Top'] = '_CameraTransitionTop'; this._CameraTransitionTop = !1; this.nameMap.h['Camera Transition Bottom'] = '_CameraTransitionBottom'; this._CameraTransitionBottom = !1; this.nameMap.h['Camera Transition Left'] = '_CameraTransitionLeft'; this._CameraTransitionLeft = !1; this.nameMap.h['Camera Transition Right'] = '_CameraTransitionRight'; this._CameraTransitionRight = !1; this.nameMap.h['Right Boundary Offset'] = '_RightBoundaryOffset'; this._RightBoundaryOffset = 0; this.nameMap.h['Left Boundary Offset'] = '_LeftBoundaryOffset'; this._LeftBoundaryOffset = 0; this.nameMap.h['Bottom Boundary Offset'] = '_BottomBoundaryOffset'; this._BottomBoundaryOffset = 0; this.nameMap.h['Top Boundary Offset'] = '_TopBoundaryOffset'; this._TopBoundaryOffset = 0; this.nameMap.h['Bottom Transition Speed'] = '_BottomTransitionSpeed'; this._BottomTransitionSpeed = 0; this.nameMap.h['Top Transition Speed'] = '_TopTransitionSpeed'; this._TopTransitionSpeed = 0; this.nameMap.h['Left Transition Speed'] = '_LeftTransitionSpeed'; this._LeftTransitionSpeed = 0; this.nameMap.h['Right Transition Speed'] = '_RightTransitionSpeed'; this._RightTransitionSpeed = 0; this.nameMap.h['Left Trans Mid'] = '_LeftTransMid'; this._LeftTransMid = 0; this.nameMap.h['Right Trans Mid'] = '_RightTransMid'; this._RightTransMid = 0; this.nameMap.h['Top Trans Mid'] = '_TopTransMid'; this._TopTransMid = 0; this.nameMap.h['Bottom Trans Mid'] = '_BottomTransMid'; this._BottomTransMid = 0; this.nameMap.h['Sensor Row Count'] = '_SensorRowCount'; this._SensorRowCount = 0; this.nameMap.h['Sensor Column Count'] = '_SensorColumnCount'; this._SensorColumnCount = 0; this.nameMap.h['Facing Right'] = '_FacingRight'; this._FacingRight = !1; this.nameMap.h['Fall Timer'] = '_FallTimer'; this._FallTimer = 0; this.nameMap.h['Has Entered'] = '_HasEntered'; this._HasEntered = !1; this.nameMap.h['Entrance Tween'] = '_EntranceTween'; this._EntranceTween = !1; this.nameMap.h['Can Start'] = '_CanStart'; this._CanStart = !1; this.nameMap.h.Arrow = '_Arrow'; this.nameMap.h['Transitioned In'] = '_TransitionedIn'; this._TransitionedIn = !1; this.nameMap.h['Step 1'] = '_Step1'; this._Step1 = !1; this.nameMap.h['Can Double Jump'] = '_CanDoubleJump'; this._CanDoubleJump = !1; this.nameMap.h['Touch X'] = '_TouchX'; this._TouchX = 0; this.nameMap.h['Previous Direction'] = '_PreviousDirection'; this._PreviousDirection = ''; this.nameMap.h['Touch X Sensor'] = '_TouchXSensor'; this.nameMap.h['Changed Direction'] = '_ChangedDirection'; this._ChangedDirection = !1; this.nameMap.h['Last Touch ID'] = '_LastTouchID'; this._LastTouchID = ''; this.nameMap.h['Has Hit Baby'] = '_HasHitBaby'; this._HasHitBaby = !1; this.nameMap.h['Move To Baby Position'] = '_MoveToBabyPosition'; this._MoveToBabyPosition = !1; this.nameMap.h['Baby X Pos'] = '_BabyXPos'; this._BabyXPos = 0; this.nameMap.h.Baby = '_Baby'; this.nameMap.h['Exit Animation'] = '_ExitAnimation'; this._ExitAnimation = !1; this.nameMap.h['Screen X'] = '_ScreenX'; this._ScreenX = 0; this.nameMap.h['Screen Y'] = '_ScreenY'; this._ScreenY = 0; this.nameMap.h['Exit Camera X'] = '_ExitCameraX'; this._ExitCameraX = 0; this.nameMap.h['Exit Camera Y'] = '_ExitCameraY'; this._ExitCameraY = 0; this.nameMap.h['Exit Origin Y'] = '_ExitOriginY'; this._ExitOriginY = 0; this.nameMap.h['Origin Y'] = '_OriginY'; this._OriginY = 0; this.nameMap.h.Anchored = '_Anchored'; this._Anchored = !1; this.nameMap.h['Baby Exit Origin Y'] = '_BabyExitOriginY'; this._BabyExitOriginY = 0; this.nameMap.h['Fly Off Screen'] = '_FlyOffScreen'; this._FlyOffScreen = !1; this.nameMap.h['Baby Type'] = '_BabyType'; this._BabyType = ''; this.nameMap.h['Direction RN'] = '_DirectionRN'; this._DirectionRN = 1; this.nameMap.h['Star Collected'] = '_StarCollected'; this._StarCollected = !1; this.nameMap.h['Exit Go'] = '_ExitGo'; this._ExitGo = !1; this.nameMap.h.Springing = '_Springing'; this._Springing = !1; this.nameMap.h['Baby Type Number'] = '_BabyTypeNumber'; this._BabyTypeNumber = 0; this.nameMap.h['Left Touch Margin'] = '_LeftTouchMargin'; this._LeftTouchMargin = 0; this.nameMap.h['First Touch'] = '_FirstTouch'; this._FirstTouch = !1; this.nameMap.h['First Touch X'] = '_FirstTouchX'; this._FirstTouchX = 0; this.nameMap.h['Go Button'] = '_GoButton'; this.nameMap.h['Possum Sprite'] = '_PossumSprite'; this.nameMap.h.DELETEME = '_DELETEME'; this._DELETEME = 'FART'; this.nameMap.h['Direction Hint'] = '_DirectionHint'; this.nameMap.h["Touch Wasn't Jump"] = '_TouchWasntJump'; this._TouchWasntJump = !1; this.nameMap.h['Touch Drag Threshold'] = '_TouchDragThreshold'; this._TouchDragThreshold = 0; this.nameMap.h['Touch Tap Threshold'] = '_TouchTapThreshold'; this._TouchTapThreshold = 0; this.nameMap.h['Up Touch Is Down'] = '_UpTouchIsDown'; this._UpTouchIsDown = !1; this.nameMap.h['Down Touch Is Down'] = '_DownTouchIsDown'; this._DownTouchIsDown = !1; this.nameMap.h['Ground Sensor'] = '_GroundSensor'; this.nameMap.h['Sensor Check'] = '_SensorCheck'; this._SensorCheck = !1; this.nameMap.h['Sensor On Ground'] = '_SensorOnGround'; this._SensorOnGround = !1; this.nameMap.h['Mushroom Timer'] = '_MushroomTimer'; this._MushroomTimer = 0; this.nameMap.h['Big Spring'] = '_BigSpring'; this._BigSpring = !1; this.nameMap.h['Button Input'] = '_ButtonInput'; this._ButtonInput = ''; this.nameMap.h['Z Button Indicator'] = '_ZButtonIndicator'; }; h['scripts.Design_2_2_DudeLogic'] = Au; Au.__name__ = 'scripts.Design_2_2_DudeLogic'; Au.__super__ = u; Au.prototype = r(u.prototype, { _LeftTouchIsDown: null, _RightTouchIsDown: null, _GroundCheck: null, _OnGround: null, _JumpTouchID: null, _JumpSpeed: null, _LeftTouchID: null, _RightTouchID: null, _RunSpeed: null, _GravitySpeed: null, _LeftButton: null, _RightButton: null, _JumpButton: null, _DistanceX: null, _CameraTarget: null, _DistanceY: null, _Distance: null, _CameraX: null, _CameraY: null, _Dead: null, _Hurt: null, _JumpHang: null, _JumpAmnesty: null, _CameraBoundariesFound: null, _LeftBoundary: null, _RightBoundary: null, _TopBoundary: null, _BottomBoundary: null, _BoundaryXDistance: null, _BoundaryYDistance: null, _LeftBoundaryX: null, _RightBoundaryX: null, _TopBoundaryY: null, _BottomBoundaryY: null, _Exiting: null, _PlatformCheck: null, _CurrentPlatform: null, _PlatformPosX: null, _OnPlatform: null, _Jumping: null, _PlatformReleaseDelay: null, _CameraTargetX: null, _CameraTargetY: null, _JumpTouchTimer: null, _CrateCheck: null, _PushingCrate: null, _CrateReleaseDelay: null, _BottomWasHit: null, _TopWasHit: null, _LeftWasHit: null, _RightWasHit: null, _PlatformXSpeedOffset: null, _CameraBoundaryType: null, _CameraTransition: null, _CameraTransitionFinished: null, _CameraTransitionTop: null, _CameraTransitionBottom: null, _CameraTransitionLeft: null, _CameraTransitionRight: null, _RightBoundaryOffset: null, _LeftBoundaryOffset: null, _BottomBoundaryOffset: null, _TopBoundaryOffset: null, _BottomTransitionSpeed: null, _TopTransitionSpeed: null, _LeftTransitionSpeed: null, _RightTransitionSpeed: null, _LeftTransMid: null, _RightTransMid: null, _TopTransMid: null, _BottomTransMid: null, _SensorRowCount: null, _SensorColumnCount: null, _FacingRight: null, _FallTimer: null, _HasEntered: null, _EntranceTween: null, _CanStart: null, _Arrow: null, _TransitionedIn: null, _Step1: null, _CanDoubleJump: null, _TouchX: null, _PreviousDirection: null, _TouchXSensor: null, _ChangedDirection: null, _LastTouchID: null, _HasHitBaby: null, _MoveToBabyPosition: null, _BabyXPos: null, _Baby: null, _ExitAnimation: null, _ScreenX: null, _ScreenY: null, _ExitCameraX: null, _ExitCameraY: null, _ExitOriginY: null, _OriginY: null, _Anchored: null, _BabyExitOriginY: null, _FlyOffScreen: null, _BabyType: null, _DirectionRN: null, _StarCollected: null, _ExitGo: null, _Springing: null, _BabyTypeNumber: null, _LeftTouchMargin: null, _FirstTouch: null, _FirstTouchX: null, _GoButton: null, _PossumSprite: null, _DELETEME: null, _DirectionHint: null, _TouchWasntJump: null, _TouchDragThreshold: null, _TouchTapThreshold: null, _UpTouchIsDown: null, _DownTouchIsDown: null, _GroundSensor: null, _SensorCheck: null, _SensorOnGround: null, _MushroomTimer: null, _BigSpring: null, _ButtonInput: null, _ZButtonIndicator: null, _event_Updating: function (a) { this.wrapper.enabled && !k.engine.getGameAttribute('MOBILE MODE') && (k.engine.getGameAttribute('Left Button Down') ? ((this._LeftTouchIsDown = !0), (this._RightTouchIsDown = !1)) : (this._LeftTouchIsDown = !1), k.engine.getGameAttribute('Right Button Down') ? ((this._RightTouchIsDown = !0), (this._LeftTouchIsDown = !1)) : (this._RightTouchIsDown = !1)); }, _event_KeyboardStarted: function (a, b) { this.wrapper.enabled && a && (this._HasEntered || this._EntranceTween || d.engine.isPaused() || (this._CanStart && this.actor.say('Dude Logic', '_customEvent_Enter')), this._Dead || this._Exiting || (this._FirstTouch && (this._FirstTouch = !1), d.engine.isPaused() || ((0 < this._JumpAmnesty || this._OnPlatform || this._OnGround) && (this._HasEntered || this._EntranceTween) ? (this.actor.setYVelocity(Math.min(this.actor.getYVelocity(), -this._JumpSpeed)), (this._JumpAmnesty = 0), (this._JumpHang = 6), (this._Jumping = !0), (this._OnPlatform = this._OnGround = !1), (this._JumpTouchTimer = 0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(109))) : this._CanDoubleJump && !this._SensorOnGround && (this._HasEntered || this._EntranceTween) ? ((this._CanDoubleJump = !1), this.actor.setYVelocity(Math.min(this.actor.getYVelocity(), -this._JumpSpeed)), (this._JumpAmnesty = 0), (this._JumpHang = 6), (this._Jumping = !0), (this._JumpTouchTimer = 0), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setAnimation('Small'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-16, 0, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(16, 0, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(120))) : (this._JumpTouchTimer = 16)))); }, _event_KeyboardReleased: function (a, b) { this.wrapper.enabled && b && -20 > this.actor.getYVelocity() && !this._Springing && this.actor.setYVelocity(-20); }, _event_HitsGround: function (a) { if (this.wrapper.enabled) { var b = d.getActorGroup(1); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && a.thisFromBottom && (this._GroundCheck = !0); }, _event_HitsPlatform: function (a) { if (this.wrapper.enabled) { var b = d.getActorGroup(5); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; if (b && a.thisFromBottom && !this._Jumping) { this._PlatformCheck = this._GroundCheck = !0; if (0 == this._PlatformReleaseDelay || 0 != this.actor.getXVelocity()) this._PlatformPosX = this.actor.getX() - a.otherActor.getX(); this._PlatformReleaseDelay = 6; this._CurrentPlatform = a.otherActor; } }, _event_HitsHazard: function (a) { this.wrapper.enabled && this.internalGetGroup(a.otherActor, a.otherShape, a) == d.getActorGroup(4) && (a.thisFromBottom ? (this._BottomWasHit = !0) : a.thisFromTop ? (this._TopWasHit = !0) : a.thisFromLeft ? (this._LeftWasHit = !0) : a.thisFromRight && (this._RightWasHit = !0), this.actor.say('Dude Logic', '_customEvent_Die')); }, _event_HitsBaby: function (a) { if (this.wrapper.enabled) { var b = d.getActorType(159); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && (gb.gameplayStop(), this._HasHitBaby || this._Exiting || (gb.happyTime(0.2), k.engine.getGameAttribute('Timer Mode') && d.sayToScene('Stage Logic', '_customEvent_timerStop'), (b = this._DirectionHint), (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && this._DirectionHint.disableActorDrawing(), (b = this._JumpButton), (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && this._JumpButton.disableActorDrawing(), (this._Exiting = this._HasHitBaby = !0), (this._RightTouchIsDown = this._LeftTouchIsDown = !1), (this._Baby = a.otherActor), this.actor.setXVelocity(0), this.actor.setYVelocity(0), (this._MoveToBabyPosition = !0), (this._ExitCameraY = a.otherActor.getYCenter()), a.otherActor.getValue('Baby Logic', '_Left') ? ((this._BabyXPos = a.otherActor.getXCenter() - 64), (this._ExitCameraX = a.otherActor.getXCenter() - 32)) : ('6 Right' == a.otherActor.getAnimation() ? (this._BabyXPos = a.otherActor.getXCenter() + 96) : (this._BabyXPos = a.otherActor.getXCenter() + 64), (this._ExitCameraX = a.otherActor.getXCenter() + 32)), this.actor.setYVelocity(-this._JumpSpeed), (this._JumpAmnesty = 0), (this._JumpHang = 6), (this._Jumping = !0), (this._OnPlatform = !1), (this._JumpTouchTimer = 0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(109)))); }, _event_MoveToBabyPos: function (a) { var b = this; this.wrapper.enabled && !this._ExitGo && (this._MoveToBabyPosition ? ((a = this._Baby), (a = d.isPrimitive(a) ? !0 : 'string' == typeof a ? '' != x.__cast(a, String) : null != a)) : (a = !1), a && (this._BabyXPos > this.actor.getXCenter() + 4 ? this._OnGround || this._OnPlatform ? this.actor.setXVelocity(this._RunSpeed) : this.actor.setXVelocity(this._RunSpeed + 2) : this._BabyXPos < this.actor.getXCenter() - 4 ? this._OnGround || this._OnPlatform ? this.actor.setXVelocity(-this._RunSpeed) : this.actor.setXVelocity(-(this._RunSpeed + 2)) : (this.actor.setXVelocity(0), this._OnGround && !this._ExitAnimation && ((this._MoveToBabyPosition = this._OnPlatform = this._Jumping = !1), (this._ExitAnimation = !0), d.runLater( 600, function (a) { b._Baby.say('Baby Logic', '_customEvent_Dialog'); }, this.actor ), this._Baby.getX() > this.actor.getX() ? this.actor.setAnimation('Idle Right') : this.actor.setAnimation('Idle Left'))))); }, _event_HitsKey: function (a) { if (this.wrapper.enabled) { var b = d.getActorType(28); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && a.otherActor.say('Key Logic', '_customEvent_unlock'); }, _event_HitsCrate: function (a) { if (this.wrapper.enabled) { var b = d.getActorType(32); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && ((a.thisFromLeft && this._LeftTouchIsDown) || (a.thisFromRight && this._RightTouchIsDown)) && ((this._CrateCheck = !0), (this._CrateReleaseDelay = 6)); }, _event_HitsBigCrate: function (a) { if (this.wrapper.enabled) { var b = d.getActorType(379); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && ((a.thisFromLeft && this._LeftTouchIsDown) || (a.thisFromRight && this._RightTouchIsDown)) && ((this._CrateCheck = !0), (this._CrateReleaseDelay = 6)); }, _event_HitsCameraSensor: function (a) { if (this.wrapper.enabled) { var b = d.getActorType(78); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && (1 == a.otherActor.getValue('Camera Sensor Logic', '_CameraNumber') && this._CameraBoundaryType != d.getActorType(18) ? ((k.engine.gameAttributes.h['Camera Boundary Number'] = 1), this.actor.say('Dude Logic', '_customEvent_setCameraBounds')) : 2 == a.otherActor.getValue('Camera Sensor Logic', '_CameraNumber') && this._CameraBoundaryType != d.getActorType(80) ? ((k.engine.gameAttributes.h['Camera Boundary Number'] = 2), this.actor.say('Dude Logic', '_customEvent_setCameraBounds')) : 3 == a.otherActor.getValue('Camera Sensor Logic', '_CameraNumber') && this._CameraBoundaryType != d.getActorType(82) && ((k.engine.gameAttributes.h['Camera Boundary Number'] = 3), this.actor.say('Dude Logic', '_customEvent_setCameraBounds'))); }, _event_Camera: function (a) { if (this.wrapper.enabled) if (this._CameraBoundariesFound) !this._Hurt && ((e = this._CameraTarget), d.isPrimitive(e) || ('string' == typeof e ? '' != x.__cast(e, String) : null != e)) && (this._Exiting ? ((this._DistanceX = Math.ceil(this._ExitCameraX - this._CameraX)), (this._DistanceY = Math.ceil(this._ExitCameraY - this._CameraY)), (this._Distance = Math.sqrt( Math.pow(this._DistanceX, 2) + Math.pow(this._DistanceY, 2) )), this._ExitCameraX > this._CameraX ? (this._CameraX = Math.min( this._ExitCameraX, this._CameraX + Math.abs(this._DistanceX) / 32 )) : this._ExitCameraX < this._CameraX && (this._CameraX = Math.max( this._ExitCameraX, this._CameraX - Math.abs(this._DistanceX) / 32 )), this._CameraY > this._ExitCameraY ? (this._CameraY = Math.max( this._CameraY - Math.abs(this._DistanceY) / 16, this._ExitCameraY )) : this._CameraY < this._ExitCameraY && (this._CameraY = Math.min( this._CameraY + Math.abs(this._DistanceY) / 16, this._ExitCameraY ))) : ((this._DistanceX = Math.ceil( this.actor.getXCenter() + 4 * this.actor.getXVelocity() - this._CameraX )), (this._DistanceY = Math.ceil(this.actor.getYCenter() - this._CameraY)), (this._Distance = Math.sqrt( Math.pow(this._DistanceX, 2) + Math.pow(this._DistanceY, 2) )), this.actor.getXCenter() + 4 * this.actor.getXVelocity() > this._CameraX ? (this._CameraX = Math.min( this.actor.getXCenter() + 4 * this.actor.getXVelocity(), this._CameraX + Math.abs(this._DistanceX) / 32 )) : this.actor.getXCenter() + 4 * this.actor.getXVelocity() < this._CameraX && (this._CameraX = Math.max( this.actor.getXCenter() + 4 * this.actor.getXVelocity(), this._CameraX - Math.abs(this._DistanceX) / 32 )), this._CameraY > this.actor.getYCenter() ? (this._CameraY = Math.max( this._CameraY - Math.abs(this._DistanceY) / 8, this.actor.getYCenter() )) : this._CameraY < this.actor.getYCenter() && (this._CameraY = Math.min( this._CameraY + Math.abs(this._DistanceY) / 8, this.actor.getYCenter() ))), this._CameraX < this._LeftBoundaryX && !this._Exiting ? this._CameraTransitionLeft ? ((this._CameraX = this._LeftBoundaryX - this._LeftBoundaryOffset), (this._LeftTransitionSpeed = this._LeftBoundaryOffset < this._LeftTransMid ? Math.max(1, Math.min(32, this._LeftBoundaryOffset / 8)) : Math.max( 1, Math.min(32, (2 * this._LeftTransMid - this._LeftBoundaryOffset) / 8) )), (this._LeftBoundaryOffset = Math.max( 0, this._LeftBoundaryOffset - this._LeftTransitionSpeed ))) : (this._CameraX = this._LeftBoundaryX) : this._CameraTransitionLeft && (this._CameraTransitionLeft = !1), this._CameraX > this._RightBoundaryX && !this._Exiting ? this._CameraTransitionRight ? ((this._CameraX = this._RightBoundaryX + this._RightBoundaryOffset), (this._RightTransitionSpeed = this._RightBoundaryOffset < this._RightTransMid ? Math.max(1, Math.min(32, this._RightBoundaryOffset / 8)) : Math.max( 1, Math.min( 32, (2 * this._RightTransMid - this._RightBoundaryOffset) / 8 ) )), (this._RightBoundaryOffset = Math.max( 0, this._RightBoundaryOffset - this._RightTransitionSpeed ))) : (this._CameraX = this._RightBoundaryX) : this._CameraTransitionRight && (this._CameraTransitionRight = !1), this._CameraY < this._TopBoundaryY && !this._Exiting ? this._CameraTransitionTop ? ((this._CameraY = this._TopBoundaryY - this._TopBoundaryOffset), (this._TopTransitionSpeed = this._TopBoundaryOffset < this._TopTransMid ? Math.max(1, Math.min(32, this._TopBoundaryOffset / 8)) : Math.max( 1, Math.min(32, (2 * this._TopTransMid - this._TopBoundaryOffset) / 8) )), (this._TopBoundaryOffset = Math.max( 0, this._TopBoundaryOffset - this._TopTransitionSpeed ))) : (this._CameraY = this._TopBoundaryY) : this._CameraTransitionTop && (this._CameraTransitionTop = !1), this._CameraY > this._BottomBoundaryY && !this._Exiting ? this._CameraTransitionBottom ? ((this._CameraY = this._BottomBoundaryY + this._BottomBoundaryOffset), (this._BottomTransitionSpeed = this._BottomBoundaryOffset < this._BottomTransMid ? Math.max(1, Math.min(32, this._BottomBoundaryOffset / 8)) : Math.max( 1, Math.min( 32, (2 * this._BottomTransMid - this._BottomBoundaryOffset) / 8 ) )), (this._BottomBoundaryOffset = Math.max( 0, this._BottomBoundaryOffset - this._BottomTransitionSpeed ))) : (this._CameraY = this._BottomBoundaryY) : this._CameraTransitionBottom && (this._CameraTransitionBottom = !1), (this._CameraTargetX = this._CameraX), (this._CameraTargetY = this._CameraY), d.engine.moveCamera(this._CameraTargetX, this._CameraTargetY), this._TransitionedIn || ((this._TransitionedIn = !0), d.sayToScene('Transitions', '_customEvent_transitionIn'), d.recycleActor(d.getValueForScene('Stage Logic', '_Overlay')))); else { this._CameraBoundariesFound = !0; a = 0; for (var b = d.getActorsOfType(this._CameraBoundaryType); a < b.length; ) { var c = b[a]; ++a; if (null != c && !c.dead && !c.recycled) { var e = this._TopBoundary; d.isPrimitive(e) || ('string' == typeof e ? '' != x.__cast(e, String) : null != e) ? c.getY() < this._TopBoundary.getY() && (this._TopBoundary = c) : (this._TopBoundary = c); e = this._BottomBoundary; d.isPrimitive(e) || ('string' == typeof e ? '' != x.__cast(e, String) : null != e) ? c.getY() > this._BottomBoundary.getY() && (this._BottomBoundary = c) : (this._BottomBoundary = c); e = this._LeftBoundary; d.isPrimitive(e) || ('string' == typeof e ? '' != x.__cast(e, String) : null != e) ? c.getX() < this._LeftBoundary.getX() && (this._LeftBoundary = c) : (this._LeftBoundary = c); e = this._RightBoundary; d.isPrimitive(e) || ('string' == typeof e ? '' != x.__cast(e, String) : null != e) ? c.getX() > this._RightBoundary.getX() && (this._RightBoundary = c) : (this._RightBoundary = c); } } this._BoundaryXDistance = this._RightBoundary.getXCenter() - this._LeftBoundary.getXCenter(); this._BoundaryYDistance = this._BottomBoundary.getYCenter() - this._TopBoundary.getYCenter(); this._BoundaryXDistance < d.getScreenWidth() && (this._LeftBoundary.setX( this._LeftBoundary.getX() - (d.getScreenWidth() - this._BoundaryXDistance) / 2 ), this._RightBoundary.setX( this._RightBoundary.getX() + (d.getScreenWidth() - this._BoundaryXDistance) / 2 )); this._BoundaryYDistance < d.getScreenHeight() && (this._TopBoundary.setY( this._TopBoundary.getY() - (d.getScreenHeight() - this._BoundaryYDistance) / 2 ), this._BottomBoundary.setY( this._BottomBoundary.getY() + (d.getScreenHeight() - this._BoundaryYDistance) / 2 )); this._TopBoundaryY = this._TopBoundary.getYCenter() + d.getScreenHeight() / 2; this._BottomBoundaryY = this._BottomBoundary.getYCenter() - d.getScreenHeight() / 2; this._LeftBoundaryX = this._LeftBoundary.getXCenter() + d.getScreenWidth() / 2; this._RightBoundaryX = this._RightBoundary.getXCenter() - d.getScreenWidth() / 2; 'Endless Mode' == d.getCurrentSceneName() && ((this._TopBoundaryY = d.getScreenHeight() / 2), (this._BottomBoundaryY = d.getSceneHeight() - d.getScreenHeight() / 2), (this._LeftBoundaryX = d.getScreenWidth() / 2), (this._RightBoundaryX = d.getSceneWidth() - d.getScreenWidth() / 2)); this._CameraTransitionTop && ((this._TopBoundaryOffset = Math.max(this._CameraY, this._TopBoundaryY) - Math.min(this._CameraY, this._TopBoundaryY)), (this._TopTransMid = this._TopBoundaryOffset / 2)); this._CameraTransitionBottom && ((this._BottomBoundaryOffset = Math.max(this._CameraY, this._BottomBoundaryY) - Math.min(this._CameraY, this._BottomBoundaryY)), (this._BottomTransMid = this._BottomBoundaryOffset / 2)); this._CameraTransitionLeft && ((this._LeftBoundaryOffset = Math.max(this._CameraX, this._LeftBoundaryX) - Math.min(this._CameraX, this._LeftBoundaryX)), (this._LeftTransMid = this._LeftBoundaryOffset / 2)); this._CameraTransitionRight && ((this._RightBoundaryOffset = Math.max(this._CameraX, this._RightBoundaryX) - Math.min(this._CameraX, this._RightBoundaryX)), (this._RightTransMid = this._RightBoundaryOffset / 2)); } }, _event_Movement: function (a) { var b = this; if (this.wrapper.enabled) { a = this._GroundSensor; if (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) this._GroundSensor.setX(this.actor.getXCenter() - 32), this._GroundSensor.setY(this.actor.getY() + this.actor.getHeight()), this._SensorCheck ? (this._SensorOnGround || (this._SensorOnGround = !0), (this._SensorCheck = !1)) : !this._SensorCheck && this._SensorOnGround && (this._SensorOnGround = !1); if (!this._ExitAnimation) { k.engine.getGameAttribute('MOBILE MODE') && !this._HasEntered && !this._EntranceTween && this._CanStart && ((a = this._GoButton), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._GoButton.isMousePressed() && (d.stopAllSounds(), 'JP' == k.engine.getGameAttribute('Language') || 'CN' == k.engine.getGameAttribute('Language') || 'KR' == k.engine.getGameAttribute('Language') ? this._GoButton.setAnimation('WW Down') : this._GoButton.setAnimation('Down'), d.runLater( 200, function (a) { k.engine.getGameAttribute('Timer Mode') && d.sayToScene('Stage Logic', '_customEvent_timerStart'); d.recycleActor(b._GoButton); b._GoButton = d.getDefaultValue(b._GoButton); d.createRecycledActor(d.getActorType(582), 24, d.getScreenHeight() - 116, 0); b._DirectionHint = d.getLastCreatedActor(); b._DirectionHint.anchorToScreen(); d.createRecycledActor( d.getActorType(770), d.getScreenWidth() - 110, d.getScreenHeight() - 100, 0 ); b._JumpButton = d.getLastCreatedActor(); b._JumpButton.anchorToScreen(); k.engine.getGameAttribute('Direction Hint') || (b._DirectionHint.disableActorDrawing(), b._JumpButton.disableActorDrawing()); }, this.actor ), k.engine.getGameAttribute('Direction Hint') ? (this._TouchX = 2 * Math.round((0.1428 * d.getScreenWidth()) / 2) - 16) : (this._TouchX = d.getMouseX()), (this._EntranceTween = this._FirstTouch = !0), this.actor.setAnimation('Emerge'), this.actor.moveBy(0, -64, 0.3, J.backOut), (a = this._Arrow), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && d.recycleActor(this._Arrow), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Dirt'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Dirt'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Dirt'), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(119)), k.engine.getGameAttribute('Music Disabled') && d.setVolumeForChannel(0, 16), k.engine.getGameAttribute('Sound Disabled') && d.setVolumeForChannel(0, 15), d.runLater( 310, function (a) { b._CanDoubleJump = !0; 'Grasslands' == k.engine.getGameAttribute('Stage Type') ? (d.loopSoundOnChannel(d.getSound(133), 16), d.loopSoundOnChannel(d.getSound(135), 15)) : 'Seaside' == k.engine.getGameAttribute('Stage Type') ? (d.loopSoundOnChannel(d.getSound(147), 16), d.loopSoundOnChannel(d.getSound(148), 15)) : 'Snow' == k.engine.getGameAttribute('Stage Type') ? (d.loopSoundOnChannel(d.getSound(158), 16), d.loopSoundOnChannel(d.getSound(157), 15)) : 'Castle' == k.engine.getGameAttribute('Stage Type') && (d.loopSoundOnChannel(d.getSound(195), 16), d.loopSoundOnChannel(d.getSound(196), 15)); k.engine.getGameAttribute('Sound Disabled') ? d.setVolumeForChannel(0, 15) : k.engine.getGameAttribute('Sound Disabled') || d.setVolumeForChannel(1, 15); k.engine.getGameAttribute('Music Disabled') ? d.setVolumeForChannel(0, 16) : k.engine.getGameAttribute('Music Disabled') || d.setVolumeForChannel(1, 16); b._HasEntered = !0; a = 0; for (var c = d.getActorsOfType(d.getActorType(550)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || e.setAnimation('Turn On'); } d.runLater( 200, function (a) { a = 0; for (var b = d.getActorsOfType(d.getActorType(345)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c.setAnimation('Normal'); } a = 0; for (b = d.getActorsOfType(d.getActorType(548)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.setAnimation('Normal'); a = 0; for (b = d.getActorsOfType(d.getActorType(347)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.setAnimation('Normal'); }, b.actor ); }, this.actor ))); if (this._HasEntered && !this._Hurt) { this._GroundCheck ? this._OnGround || ((this._OnGround = !0), (this._Springing = this._BigSpring = !1), (this._CanDoubleJump = !0), (this._JumpHang = 0), (this._JumpAmnesty = 8), 30 < this._FallTimer ? (d.setValueForScene('Stage Logic', '_RumbleName', 'Thud'), d.sayToScene('Stage Logic', '_customEvent_rumble'), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(117)), d.startShakingScreen(0.005, 0.05), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut), 'Fall Left' == this.actor.getAnimation() ? this.actor.setAnimation('Ground Left') : 'Fall Right' == this.actor.getAnimation() && this.actor.setAnimation('Ground Right')) : 12 < this._FallTimer && (d.setValueForScene('Stage Logic', '_RumbleName', 'Small Thud'), d.sayToScene('Stage Logic', '_customEvent_rumble'), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(112))), (this._FallTimer = 0)) : (this._OnGround && (this._OnGround = !1), 0 < this.actor.getYVelocity() ? (this._FallTimer += 1) : (this._FallTimer = 0)); this._GroundCheck = !1; !this._OnGround && 0 < this._JumpAmnesty && (14 > Math.abs(this.actor.getXVelocity()) ? (this._JumpAmnesty = 0) : --this._JumpAmnesty); this._PlatformCheck ? (this._Jumping || this.actor.setYVelocity(40), this._OnPlatform || ((this._OnPlatform = !0), (this._JumpHang = 0), (this._JumpAmnesty = 8))) : this._OnPlatform && 0 == this._PlatformReleaseDelay && (this._OnPlatform = !1); this._PlatformCheck = !1; 0 < this._PlatformReleaseDelay && --this._PlatformReleaseDelay; if (this._CrateCheck) { if (!this._PushingCrate) { this._PushingCrate = !0; this._RunSpeed = 6; var c = 0 < this.actor.getXVelocity(); } } else this._PushingCrate && 0 == this._CrateReleaseDelay && ((this._PushingCrate = !1), (this._RunSpeed = 16)); this._CrateCheck = !1; 0 < this._CrateReleaseDelay && --this._CrateReleaseDelay; this._OnPlatform ? ((a = this._CurrentPlatform), (c = d.isPrimitive(a) ? !0 : 'string' == typeof a ? '' != x.__cast(a, String) : null != a)) : (c = !1); c ? this._CurrentPlatform.hasBehavior('Set Path') ? ((a = this._CurrentPlatform.getValue('Set Path', '_TrackerXSpeed')), (this._PlatformXSpeedOffset = null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a)))) : this._CurrentPlatform.hasBehavior('Rotator Object') ? ((a = this._CurrentPlatform.getValue('Rotator Object', '_TrackerXSpeed')), (this._PlatformXSpeedOffset = null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a)))) : (this._PlatformXSpeedOffset = 0) : (this._PlatformXSpeedOffset = 0); this._HasHitBaby || (this._LeftTouchIsDown ? Math.abs(this.actor.getXVelocity()) > this._PlatformXSpeedOffset + (this._RunSpeed + 2) && !this._OnPlatform ? 0 < this.actor.getXVelocity() ? this.actor.setXVelocity(Math.max(0, this.actor.getXVelocity() - 0.1)) : 0 > this.actor.getXVelocity() && this.actor.setXVelocity(Math.min(0, this.actor.getXVelocity() + 0.1)) : this._OnGround || this._OnPlatform ? this.actor.setXVelocity(this._PlatformXSpeedOffset + -this._RunSpeed) : this.actor.setXVelocity(this._PlatformXSpeedOffset + -(this._RunSpeed + 2)) : this._RightTouchIsDown ? this._BigSpring && Math.abs(this.actor.getXVelocity()) > this._PlatformXSpeedOffset + (this._RunSpeed + 2) && !this._OnPlatform ? 0 < this.actor.getXVelocity() ? this.actor.setXVelocity(Math.max(0, this.actor.getXVelocity() - 0.1)) : 0 > this.actor.getXVelocity() && this.actor.setXVelocity(Math.min(0, this.actor.getXVelocity() + 0.1)) : ((this._BigSpring = !1), this._OnGround || this._OnPlatform ? this.actor.setXVelocity(this._PlatformXSpeedOffset + this._RunSpeed) : this.actor.setXVelocity( this._PlatformXSpeedOffset + (this._RunSpeed + 2) )) : this._BigSpring && Math.abs(this.actor.getXVelocity()) > this._PlatformXSpeedOffset + (this._RunSpeed + 2) && !this._OnPlatform ? 0 < this.actor.getXVelocity() ? this.actor.setXVelocity(Math.max(0, this.actor.getXVelocity() - 0.2)) : 0 > this.actor.getXVelocity() && this.actor.setXVelocity(Math.min(0, this.actor.getXVelocity() + 0.2)) : ((this._BigSpring = !1), 0 < this.actor.getXVelocity() ? this.actor.setXVelocity(Math.max(0, this.actor.getXVelocity() - 2)) : 0 > this.actor.getXVelocity() && this.actor.setXVelocity(Math.min(0, this.actor.getXVelocity() + 2)))); 0 < this._JumpHang && 0 == Math.round(this.actor.getYVelocity()) ? (this.actor.setYVelocity(0), --this._JumpHang) : this._Dead ? this.actor.setYVelocity( Math.min(this.actor.getYVelocity() + 0.5, this._GravitySpeed) ) : this.actor.setYVelocity( Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed) ); 0 < this.actor.getYVelocity() && (this._Jumping = !1); this._Jumping ? (c = !1) : this._OnPlatform ? ((a = this._CurrentPlatform), (c = d.isPrimitive(a) ? !0 : 'string' == typeof a ? '' != x.__cast(a, String) : null != a)) : (c = !1); c && (this._CurrentPlatform.hasBehavior('Rotator Object') && 0 != this._CurrentPlatform.getValue('Rotator Object', '_Speed') ? (0 != this.actor.getXVelocity() || this._LeftTouchIsDown || this._RightTouchIsDown || ((c = this.actor), (a = this._CurrentPlatform.getValue('Rotator Object', '_ActualX')), c.setX( (null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a))) + this._PlatformPosX )), this._Jumping || ((c = this.actor), (a = this._CurrentPlatform.getValue('Rotator Object', '_ActualY')), c.setY( (null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a))) - this.actor.getHeight() ))) : (0 == this.actor.getXVelocity() && this.actor.setX(this._CurrentPlatform.getX() + this._PlatformPosX), this._Jumping || this.actor.setY(this._CurrentPlatform.getY() - this.actor.getHeight()))); 0 < this._JumpTouchTimer && (0 < this._JumpAmnesty || this._OnPlatform ? (this.actor.setYVelocity( Math.min(this.actor.getYVelocity(), -this._JumpSpeed) ), (this._JumpAmnesty = 0), (this._JumpHang = 6), (this._Jumping = !0), (this._OnPlatform = !1), (this._JumpTouchTimer = 0)) : --this._JumpTouchTimer); } this._Dead && this.actor.setYVelocity( Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed) ); } 0 != this._ExitOriginY && !this._FlyOffScreen && this._ExitAnimation && (this.actor.getY() < this._ExitOriginY ? this.actor.setYVelocity( Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed) ) : this.actor.getY() > this._ExitOriginY && 0 < this.actor.getYVelocity() && (this.actor.setYVelocity(0), this.actor.setXVelocity(0), this.actor.setY(this._ExitOriginY)), (a = this._Baby), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && (this._Baby.getY() < this._BabyExitOriginY ? this._Baby.setYVelocity( Math.min(this._Baby.getYVelocity() + 2, this._GravitySpeed) ) : this._Baby.getY() > this._BabyExitOriginY && 0 < this._Baby.getYVelocity() && (this._Baby.setYVelocity(0), this._Baby.setXVelocity(0), this._Baby.setY(this._BabyExitOriginY))); } }, _event_Sweat: function (a) { this.wrapper.enabled && this._PushingCrate && (0 < this.actor.getXVelocity() ? (d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 4, this.actor.getY() + 4, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-16, -16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Sweat')) : 0 > this.actor.getXVelocity() && (d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 4, this.actor.getY() + 4, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(16, -16, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Sweat'))); }, _event_EveryNsecs: function (a) { this.wrapper.enabled && this._FlyOffScreen && (d.createRecycledActorOnLayer( d.getActorType(223), this.actor.getXCenter() - 16, this.actor.getYCenter() - 16, d.engine.getLayerById(0) ), (this._DirectionRN = 3 > this._DirectionRN ? this._DirectionRN + 1 : 1), 1 == this._DirectionRN ? d.getLastCreatedActor().moveBy(-32, 32, 0.6, J.backOut) : 2 == this._DirectionRN ? d.getLastCreatedActor().moveBy(32, 32, 0.6, J.backOut) : 3 == this._DirectionRN && d.getLastCreatedActor().moveBy(0, 32, 0.6, J.backOut)); }, _event_Steps: function (a) { this.wrapper.enabled && this._PushingCrate && this._OnGround && (this._LeftTouchIsDown || this._RightTouchIsDown) && (this.actor.getXVelocity(), k.engine.getGameAttribute('Sound Disabled') || (this._Step1 ? ((this._Step1 = !1), d.playSound(d.getSound(116))) : ((this._Step1 = !0), d.playSound(d.getSound(115))))); }, _event_Animations: function (a) { this.wrapper.enabled && (k.engine.getGameAttribute('Possum Mode') ? ((a = this._PossumSprite), (a = d.isPrimitive(a) ? !0 : 'string' == typeof a ? '' != x.__cast(a, String) : null != a)) : (a = !1), a && (this._PossumSprite.setX(this.actor.getX()), this._PossumSprite.setY(this.actor.getY() - 2), this._PossumSprite.getAnimation() != this.actor.getAnimation() && this._PossumSprite.setAnimation(this.actor.getAnimation())), !this._HasEntered || this._Dead || this._Hurt || this._ExitAnimation || ('Ground Left' != this.actor.getAnimation() && 'Ground Right' != this.actor.getAnimation() ? (0 < this.actor.getXVelocity() ? (this._FacingRight = !0) : 0 > this.actor.getXVelocity() && (this._FacingRight = !1), this._OnGround || 0 < this._JumpAmnesty || this._OnPlatform ? this._LeftTouchIsDown || (this._MoveToBabyPosition && 0 > this.actor.getXVelocity()) ? 'Walk Left' != this.actor.getAnimation() && this.actor.setAnimation('Walk Left') : this._RightTouchIsDown || (this._MoveToBabyPosition && 0 < this.actor.getXVelocity()) ? 'Walk Right' != this.actor.getAnimation() && this.actor.setAnimation('Walk Right') : this._RightTouchIsDown || this._LeftTouchIsDown || (this._FacingRight && 'Idle Right' != this.actor.getAnimation() ? this.actor.setAnimation('Idle Right') : this._FacingRight || 'Idle Left' == this.actor.getAnimation() || this.actor.setAnimation('Idle Left')) : 0 > this.actor.getYVelocity() ? 'Flip Left' != this.actor.getAnimation() && 'Flip Right' != this.actor.getAnimation() ? this._FacingRight && 'Jump Right' != this.actor.getAnimation() ? this.actor.setAnimation('Jump Right') : this._FacingRight || 'Jump Left' == this.actor.getAnimation() || this.actor.setAnimation('Jump Left') : this._FacingRight && 9 == this.actor.getCurrentFrame() ? this.actor.setAnimation('Jump Right') : this._FacingRight || 9 != this.actor.getCurrentFrame() || this.actor.setAnimation('Jump Left') : 0 < this.actor.getYVelocity() ? 'Flip Left' != this.actor.getAnimation() && 'Flip Right' != this.actor.getAnimation() && (this._FacingRight && 'Fall Right' != this.actor.getAnimation() ? this.actor.setAnimation('Fall Right') : this._FacingRight || 'Fall Left' == this.actor.getAnimation() || this.actor.setAnimation('Fall Left')) : this._FacingRight && 9 == this.actor.getCurrentFrame() ? this.actor.setAnimation('Fall Right') : this._FacingRight || 9 != this.actor.getCurrentFrame() || this.actor.setAnimation('Fall Left')) : 'Ground Left' == this.actor.getAnimation() ? 4 == this.actor.getCurrentFrame() && this.actor.setAnimation('Idle Left') : 'Ground Right' == this.actor.getAnimation() && 4 == this.actor.getCurrentFrame() && this.actor.setAnimation('Idle Right')), this._ExitAnimation && (0 < this.actor.getYVelocity() && 'Jump Right' == this.actor.getAnimation() ? this.actor.setAnimation('Fall Right') : 0 < this.actor.getYVelocity() && 'Jump Left' == this.actor.getAnimation() ? this.actor.setAnimation('Fall Left') : 0 == this.actor.getYVelocity() && 'Fall Right' == this.actor.getAnimation() ? this.actor.setAnimation('Idle Right') : 0 == this.actor.getYVelocity() && 'Fall Left' == this.actor.getAnimation() ? this.actor.setAnimation('Idle Left') : 0 == this.actor.getYVelocity() && 'Flip Right' == this.actor.getAnimation() ? this.actor.setAnimation('Idle Right') : 0 == this.actor.getYVelocity() && 'Flip Left' == this.actor.getAnimation() && this.actor.setAnimation('Idle Left'))); }, _event_SensorHitsTiles: function (a) { if (this.wrapper.enabled) { var b = d.getActorGroup(1); var c = a.otherActor.getType(); a = a.otherActor.getGroup(); b = b == c || b == a; } else b = !1; b && ((b = this._GroundSensor), d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && (this._SensorCheck = !0); }, _event_SensorHitsPlatform: function (a) { if (this.wrapper.enabled) { var b = d.getActorGroup(5); var c = a.otherActor.getType(); a = a.otherActor.getGroup(); b = b == c || b == a; } else b = !1; b && ((b = this._GroundSensor), d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && (this._SensorCheck = !0); }, _event_TouchStarted: function (a) { !this.wrapper.enabled || this._Dead || this._Exiting || ((this._LastTouchID = '' + a.touchPointID), this._FirstTouch && (this._FirstTouch = !1), (this._HasEntered || this._EntranceTween) && (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) < d.getScreenWidth() / 2 - 16 && '' + a.touchPointID != this._LeftTouchID && ('Right' == this._PreviousDirection ? (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) < this._TouchX - this._TouchTapThreshold ? ((this._LeftTouchIsDown = !0), (this._PreviousDirection = 'Left')) : (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) >= this._TouchX - this._TouchTapThreshold && (this._RightTouchIsDown = !0) : 'Left' == this._PreviousDirection ? (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) <= this._TouchX + this._TouchTapThreshold ? (this._LeftTouchIsDown = !0) : (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) > this._TouchX + this._TouchTapThreshold && ((this._RightTouchIsDown = !0), (this._PreviousDirection = 'Right')) : (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) <= this._TouchX - 1 ? ((this._LeftTouchIsDown = !0), (this._PreviousDirection = 'Left')) : (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) >= this._TouchX + 1 && ((this._RightTouchIsDown = !0), (this._PreviousDirection = 'Right')), k.engine.getGameAttribute('Direction Hint') || (this._TouchX = Math.max( this._LeftTouchMargin, (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) )), (this._LeftTouchID = '' + a.touchPointID))); }, _event_Jump: function (a) { !this.wrapper.enabled || this._Dead || this._Exiting || ((this._LastTouchID = '' + a.touchPointID), this._FirstTouch && (this._FirstTouch = !1), (this._HasEntered || this._EntranceTween) && !d.engine.isPaused() && (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) >= d.getScreenWidth() / 2 && ((this._JumpTouchID = '' + a.touchPointID), 0 < this._JumpAmnesty || this._OnPlatform || this._OnGround ? (this.actor.setYVelocity(Math.min(this.actor.getYVelocity(), -this._JumpSpeed)), (this._JumpAmnesty = 0), (this._JumpHang = 6), (this._Jumping = !0), (this._OnPlatform = !1), (this._JumpTouchTimer = 0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(109))) : this._CanDoubleJump && !this._SensorOnGround ? ((this._CanDoubleJump = !1), this.actor.setYVelocity(Math.min(this.actor.getYVelocity(), -this._JumpSpeed)), (this._JumpAmnesty = 0), (this._JumpHang = 6), (this._Jumping = !0), (this._JumpTouchTimer = 0), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setAnimation('Small'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(-16, 0, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveBy(16, 0, 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Small'), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(120))) : (this._JumpTouchTimer = 16))); }, _event_TouchDragged: function (a) { if ( this.wrapper.enabled && !this._Dead && !this._Exiting && !d.engine.isPaused() && this._HasEntered && (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) < d.getScreenWidth() / 2 ) { k.engine.getGameAttribute('Direction Hint') || ((a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) > this._TouchX + 32 ? (this._TouchX = Math.max( this._LeftTouchMargin, (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) )) : (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) < this._TouchX - 32 && (this._TouchX = Math.max( this._LeftTouchMargin, (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) ))); if ( !this._LeftTouchIsDown && (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) < this._TouchX - this._TouchDragThreshold ) { this._LeftTouchIsDown = !0; this._RightTouchIsDown = !1; this._PreviousDirection = 'Left'; var b = this._LeftTouchID; d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b) || (this._LeftTouchID = this._LastTouchID); this._ChangedDirection = this._ChangedDirection ? !1 : !0; } !this._RightTouchIsDown && (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) > this._TouchX + this._TouchDragThreshold && ((this._RightTouchIsDown = !0), (this._LeftTouchIsDown = !1), (this._PreviousDirection = 'Right'), (b = this._LeftTouchID), d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b) || (this._LeftTouchID = this._LastTouchID), (this._ChangedDirection = this._ChangedDirection ? !1 : !0)); } }, _event_TouchReleased: function (a) { if (this.wrapper.enabled) { (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) < d.getScreenWidth() / 2 && ((this._RightTouchIsDown = this._LeftTouchIsDown = !1), this._ChangedDirection && ((this._ChangedDirection = !1), (('Left' == this._PreviousDirection && (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) < this._TouchX) || ('Right' == this._PreviousDirection && (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE) > this._TouchX)) && !k.engine.getGameAttribute('Direction Hint') && (this._TouchX = Math.max( (a.stageX - k.screenOffsetX) / (k.screenScaleX * k.SCALE), this._LeftTouchMargin ))), (this._LeftTouchID = d.getDefaultValue(this._LeftTouchID))); var b = this._JumpTouchID; (!d.isPrimitive(b) && ('string' == typeof b ? '' == x.__cast(b, String) : null == b)) || this._JumpTouchID != '' + a.touchPointID || this._Springing || (-20 > this.actor.getYVelocity() && this.actor.setYVelocity(-20), (this._JumpTouchID = d.getDefaultValue(this._JumpTouchID))); } }, _event_DirectionHint: function (a) { if (this.wrapper.enabled) { k.engine.getGameAttribute('Direction Hint') ? ((a = this._DirectionHint), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a) ? (this._TouchX = this._DirectionHint.getX() + this._DirectionHint.getWidth() / 2) : (this._TouchX = Math.max( 90, 2 * Math.round((0.1428 * d.getScreenWidth()) / 2) - 16 )), (this._TouchTapThreshold = this._TouchDragThreshold = 0)) : ((this._TouchDragThreshold = 12), (this._TouchTapThreshold = 24)); a = this._JumpButton; if (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) (a = this._JumpTouchID), (!d.isPrimitive(a) && ('string' == typeof a ? '' == x.__cast(a, String) : null == a)) || 'Down' == this._JumpButton.getAnimation() ? ((a = this._JumpTouchID), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a) || 'Down' != this._JumpButton.getAnimation() || this._JumpButton.setAnimation('Normal')) : this._JumpButton.setAnimation('Down'); a = this._DirectionHint; if (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) 'Snow' == k.engine.getGameAttribute('Stage Type') ? this._LeftTouchIsDown ? 'SnowLeft' != this._DirectionHint.getAnimation() && this._DirectionHint.setAnimation('SnowLeft') : this._RightTouchIsDown ? 'SnowRight' != this._DirectionHint.getAnimation() && this._DirectionHint.setAnimation('SnowRight') : 'SnowNormal' != this._DirectionHint.getAnimation() && this._DirectionHint.setAnimation('SnowNormal') : this._LeftTouchIsDown ? 'Left' != this._DirectionHint.getAnimation() && this._DirectionHint.setAnimation('Left') : this._RightTouchIsDown ? 'Right' != this._DirectionHint.getAnimation() && this._DirectionHint.setAnimation('Right') : 'Normal' != this._DirectionHint.getAnimation() && this._DirectionHint.setAnimation('Normal'); } }, _event_Updating2: function (a) { this.wrapper.enabled && (this._TouchXSensor.setX(this._TouchX), this._TouchXSensor.setY(d.getScreenHeight() / 2)); }, _customEvent_Enter: function () { var a = this; d.stopAllSounds(); var b = this._Arrow; (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && d.recycleActor(this._Arrow); d.runLater( 200, function (a) { k.engine.getGameAttribute('Timer Mode') && d.sayToScene('Stage Logic', '_customEvent_timerStart'); }, this.actor ); this._EntranceTween = this._FirstTouch = !0; this.actor.setAnimation('Emerge'); this.actor.moveBy(0, -64, 0.3, J.backOut); b = this._Arrow; (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && d.recycleActor(this._Arrow); b = this._ZButtonIndicator; (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && d.recycleActor(this._ZButtonIndicator); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Dirt'); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Dirt'); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Dirt'); d.setValueForScene('Stage Logic', '_RumbleName', 'Emerge'); d.sayToScene('Stage Logic', '_customEvent_rumble'); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(119)); k.engine.getGameAttribute('Music Disabled') && d.setVolumeForChannel(0, 16); k.engine.getGameAttribute('Sound Disabled') && d.setVolumeForChannel(0, 15); d.runLater( 310, function (b) { a._CanDoubleJump = !0; 'Grasslands' == k.engine.getGameAttribute('Stage Type') ? (d.loopSoundOnChannel(d.getSound(133), 16), d.loopSoundOnChannel(d.getSound(135), 15)) : 'Seaside' == k.engine.getGameAttribute('Stage Type') ? (d.loopSoundOnChannel(d.getSound(147), 16), d.loopSoundOnChannel(d.getSound(148), 15)) : 'Snow' == k.engine.getGameAttribute('Stage Type') ? (d.loopSoundOnChannel(d.getSound(158), 16), d.loopSoundOnChannel(d.getSound(157), 15)) : 'Castle' == k.engine.getGameAttribute('Stage Type') ? (d.loopSoundOnChannel(d.getSound(195), 16), d.loopSoundOnChannel(d.getSound(196), 15)) : 'Cave' == k.engine.getGameAttribute('Stage Type') && (d.loopSoundOnChannel(d.getSound(748), 16), d.loopSoundOnChannel(d.getSound(747), 15)); k.engine.getGameAttribute('Sound Disabled') ? d.setVolumeForChannel(0, 15) : k.engine.getGameAttribute('Sound Disabled') || d.setVolumeForChannel(1, 15); k.engine.getGameAttribute('Music Disabled') ? d.setVolumeForChannel(0, 16) : k.engine.getGameAttribute('Music Disabled') || d.setVolumeForChannel(1, 16); a._HasEntered = !0; b = 0; for (var c = d.getActorsOfType(d.getActorType(550)); b < c.length; ) { var f = c[b]; ++b; null == f || f.dead || f.recycled || f.setAnimation('Turn On'); } d.runLater( 200, function (a) { a = 0; for (var b = d.getActorsOfType(d.getActorType(345)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c.setAnimation('Normal'); } a = 0; for (b = d.getActorsOfType(d.getActorType(548)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.setAnimation('Normal'); a = 0; for (b = d.getActorsOfType(d.getActorType(347)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || c.setAnimation('Normal'); }, a.actor ); }, this.actor ); }, _customEvent_Exit: function () { var a = this; if (!this._ExitGo) { this._CurrentPlatform = d.getDefaultValue(this._CurrentPlatform); this._OnPlatform = !1; this._ExitGo = !0; k.engine.getGameAttribute('Timer Mode') && d.sayToScene('Stage Logic', '_customEvent_timerHide'); var b = this._Baby; if ( d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b) ) { d.getCurrentSceneName(); var c = 0; for (b = d.getActorsOfType(d.getActorType(234)); c < b.length; ) { var e = b[c]; ++c; null == e || e.dead || e.recycled || d.recycleActor(e); } d.stopAllSounds(); if (k.engine.getGameAttribute('Star Collected') || this._StarCollected) (k.engine.gameAttributes.h['Star Collected'] = !1), d.sayToScene('Stage Logic', '_customEvent_starGet'); b = d.getCurrentSceneName().split(' ')[1]; (null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b))) > k.engine.getGameAttribute('Highest Level') && ((c = k.engine), (b = d.getCurrentSceneName().split(' ')[1]), (b = null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b))), (c.gameAttributes.h['Highest Level'] = b)); d.saveGame('mySave', function (a) {}); this._ScreenX = this.actor.getScreenX(); this._ScreenY = this.actor.getScreenY(); this.actor.anchorToScreen(); this.actor.setX(this._ScreenX); this.actor.setY(this._ScreenY); b = this._PossumSprite; if ( d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b) ) this._PossumSprite.anchorToScreen(), this._PossumSprite.setX(this._ScreenX), this._PossumSprite.setY(this._ScreenY); this._ScreenX = this._Baby.getScreenX(); this._ScreenY = this._Baby.getScreenY(); this._Baby.anchorToScreen(); this._Baby.setX(this._ScreenX); this._Baby.setY(this._ScreenY); this._ExitOriginY = Math.floor(this.actor.getY() - 1); this._BabyExitOriginY = this._Baby.getY(); this._BabyType = this._Baby.getAnimation(); b = this._Baby.getValue('Baby Logic', '_BabyTypeNumber'); this._BabyTypeNumber = null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b)); this._Baby.getX() > this.actor.getX() ? (d.runLater( 500, function (b) { a.actor.setY(a._ExitOriginY); a.actor.setAnimation('Jump Right'); a._Baby.setAnimation('' + a._BabyTypeNumber + ' Left Jump'); a._Baby.setCurrentFrame(0); a.actor.setYVelocity(-a._JumpSpeed); a._JumpAmnesty = 0; a._JumpHang = 6; a._Jumping = !0; a._OnPlatform = !1; a._JumpTouchTimer = 0; k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(109)); a.actor.setXVelocity(5); a._Baby.setXVelocity(-5); a._Baby.setYVelocity(-a._JumpSpeed); }, this.actor ), d.runLater( 1e3, function (b) { a.actor.setY(a._ExitOriginY); d.setValueForScene('Stage Logic', '_RumbleName', 'Small Thud'); d.sayToScene('Stage Logic', '_customEvent_rumble'); a._Baby.setAnimation('' + a._BabyTypeNumber + ' Left Jump'); a._Baby.setCurrentFrame(0); a.actor.setAnimation('Flip Right'); a.actor.setYVelocity(-a._JumpSpeed); a._JumpAmnesty = 0; a._JumpHang = 6; a._Jumping = !0; a._OnPlatform = !1; a._JumpTouchTimer = 0; k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(109)); a.actor.setXVelocity(-5); a._Baby.setXVelocity(5); a._Baby.setYVelocity(-a._JumpSpeed); }, this.actor ), d.runLater( 1500, function (b) { a.actor.setY(a._ExitOriginY); d.setValueForScene('Stage Logic', '_RumbleName', 'Small Thud'); d.sayToScene('Stage Logic', '_customEvent_rumble'); a.actor.setAnimation('Jump Right'); a._Baby.setAnimation('' + a._BabyTypeNumber + ' Left Jump'); a._Baby.setCurrentFrame(0); a.actor.setYVelocity(-a._JumpSpeed); a._JumpAmnesty = 0; a._JumpHang = 6; a._Jumping = !0; a._OnPlatform = !1; a._JumpTouchTimer = 0; k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(109)); a.actor.setXVelocity(5); a._Baby.setXVelocity(-5); a._Baby.setYVelocity(-a._JumpSpeed); }, this.actor )) : (d.runLater( 500, function (b) { a.actor.setY(a._ExitOriginY); a.actor.setAnimation('Jump Left'); a._Baby.setAnimation('' + a._BabyTypeNumber + ' Right Jump'); a._Baby.setCurrentFrame(0); a.actor.setYVelocity(-a._JumpSpeed); a._JumpAmnesty = 0; a._JumpHang = 6; a._Jumping = !0; a._OnPlatform = !1; a._JumpTouchTimer = 0; k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(109)); a.actor.setXVelocity(-5); a._Baby.setXVelocity(5); a._Baby.setYVelocity(-a._JumpSpeed); }, this.actor ), d.runLater( 1e3, function (b) { a.actor.setY(a._ExitOriginY); d.setValueForScene('Stage Logic', '_RumbleName', 'Small Thud'); d.sayToScene('Stage Logic', '_customEvent_rumble'); a.actor.setAnimation('Flip Left'); a.actor.setYVelocity(-a._JumpSpeed); a._Baby.setAnimation('' + a._BabyTypeNumber + ' Right Jump'); a._Baby.setCurrentFrame(0); a._JumpAmnesty = 0; a._JumpHang = 6; a._Jumping = !0; a._OnPlatform = !1; a._JumpTouchTimer = 0; k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(109)); a.actor.setXVelocity(5); a._Baby.setXVelocity(-5); a._Baby.setYVelocity(-a._JumpSpeed); }, this.actor ), d.runLater( 1500, function (b) { a.actor.setY(a._ExitOriginY); d.setValueForScene('Stage Logic', '_RumbleName', 'Small Thud'); d.sayToScene('Stage Logic', '_customEvent_rumble'); a.actor.setAnimation('Jump Left'); a.actor.setYVelocity(-a._JumpSpeed); a._Baby.setAnimation('' + a._BabyTypeNumber + ' Right Jump'); a._Baby.setCurrentFrame(0); a._JumpAmnesty = 0; a._JumpHang = 6; a._Jumping = !0; a._OnPlatform = !1; a._JumpTouchTimer = 0; k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(109)); a.actor.setXVelocity(-5); a._Baby.setXVelocity(5); a._Baby.setYVelocity(-a._JumpSpeed); }, this.actor )); d.runLater( 2e3, function (b) { d.setValueForScene('Stage Logic', '_RumbleName', 'Small Thud'); d.sayToScene('Stage Logic', '_customEvent_rumble'); 'Idle Left' == a.actor.getAnimation() ? a.actor.setAnimation('Ground Left') : a.actor.setAnimation('Ground Right'); a._Baby.setAnimation(a._BabyType + ' Crouch'); }, this.actor ); d.runLater( 2500, function (b) { a.actor.setAnimation('Jump Right'); a._Baby.setAnimation(a._BabyType + ' Jump'); a._FlyOffScreen = !0; k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(225)); d.setValueForScene('Stage Logic', '_RumbleName', 'Exit'); d.sayToScene('Stage Logic', '_customEvent_rumble'); a.actor.moveBy(0, -d.getScreenHeight(), 0.5, J.linear); a._Baby.moveBy(0, -d.getScreenHeight(), 0.5, J.linear); }, this.actor ); d.runLater( 1e3, function (a) { d.sayToScene('Transitions', '_customEvent_transitionOut'); }, this.actor ); d.runLater( 4400, function (a) { k.engine.gameAttributes.h['Checkpoint Passed'] = !1; gb.commercialBreak(function () { if ('Level' == d.getCurrentSceneName().split(' ')[0]) { var a = d.getCurrentSceneName().split(' ')[1]; if ( 10 == (null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a))) ) { var b = Fa.get().scenes.h[54].getID(), c = (a = 0), e = 0; null == e && (e = 0); null == c && (c = 0); null == a && (a = 0); var f = d.createFadeOut(0.3, (a << 16) | (c << 8) | e); } else (a = d.getCurrentSceneName().split(' ')[1]), 20 == (null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a))) ? (b = Fa.get().scenes.h[55].getID()) : ((a = d.getCurrentSceneName().split(' ')[1]), 30 == (null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a))) ? (b = Fa.get().scenes.h[56].getID()) : ((a = d.getCurrentSceneName().split(' ')[1]), 40 == (null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a))) ? (b = Fa.get().scenes.h[59].getID()) : ((b = Fa.get().scenes), (a = d.getCurrentSceneName().split(' ')[1]), (a = d.getIDForScene( 'Level ' + ((null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a))) + 1) )), (b = b.h[a].getID())))), (e = c = a = 0), null == e && (e = 0), null == c && (c = 0), null == a && (a = 0), (f = d.createFadeOut(0.3, (a << 16) | (c << 8) | e)); e = c = a = 0; null == e && (e = 0); null == c && (c = 0); null == a && (a = 0); d.switchScene(b, f, d.createFadeIn(0.3, (a << 16) | (c << 8) | e)); } }); }, this.actor ); } } }, _customEvent_setCameraBounds: function () { 0 == k.engine.getGameAttribute('Camera Boundary Number') ? (this._CameraBoundaryType = d.getActorType(455)) : 1 == k.engine.getGameAttribute('Camera Boundary Number') ? (this._CameraBoundaryType = d.getActorType(18)) : 2 == k.engine.getGameAttribute('Camera Boundary Number') ? (this._CameraBoundaryType = d.getActorType(80)) : 3 == k.engine.getGameAttribute('Camera Boundary Number') && (this._CameraBoundaryType = d.getActorType(82)); this._TopBoundary = d.getDefaultValue(this._TopBoundary); this._BottomBoundary = d.getDefaultValue(this._BottomBoundary); this._RightBoundary = d.getDefaultValue(this._RightBoundary); this._LeftBoundary = d.getDefaultValue(this._LeftBoundary); this._HasEntered && ((this._CameraTransitionRight = this._CameraTransitionLeft = this._CameraTransitionBottom = this._CameraTransitionTop = !0), (this._CameraBoundariesFound = !1)); }, _customEvent_Die: function () { var a = this; d.stopAllSounds(); gb.gameplayStop(); if (!this._Dead && !this._Hurt && !this._Exiting) { var b = this._DirectionHint; (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && this._DirectionHint.disableActorDrawing(); b = this._JumpButton; (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && this._JumpButton.disableActorDrawing(); k.engine.gameAttributes.h.Dead = !0; k.engine.getGameAttribute('Timer Mode') && d.sayToScene('Stage Logic', '_customEvent_timerHide'); d.createRecycledActor(d.getActorType(14), d.getScreenX() - 5, d.getScreenY() - 5, 0); this.actor.setAnimation('Dead'); this.actor.bringToFront(); b = this._PossumSprite; (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && this._PossumSprite.bringToFront(); this._Hurt = !0; k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(134)); d.startShakingScreen(0.01, 0.1); d.createRecycledActor( d.getActorType(103), this.actor.getXCenter(), this.actor.getYCenter(), 0 ); this.actor.setYVelocity(-30); this._LeftWasHit ? this.actor.setXVelocity(16) : this._RightWasHit && this.actor.setXVelocity(-16); d.runLater( 100, function (b) { a._Dead = !0; d.runLater( 800, function (a) { d.setValueForScene('Transitions', '_TransitionType', 1); d.sayToScene('Transitions', '_customEvent_transitionOut'); }, a.actor ); d.runLater( 1400, function (a) { gb.commercialBreak(function () { var a = 0, b = 0, c = 0; null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); var e = d.createFadeOut(0.3, (a << 16) | (b << 8) | c); c = b = a = 0; null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); d.reloadCurrentScene(e, d.createFadeIn(0.3, (a << 16) | (b << 8) | c)); }); }, a.actor ); }, this.actor ); } }, _customEvent_clearTouches: function () { this._RightTouchIsDown = this._LeftTouchIsDown = !1; }, init: function () { var a = this; D.setJoySensitivity(0.5); k.engine.gameAttributes.h.Dead = !1; this.actor.makeAlwaysSimulate(); this.actor.moveToTop(); k.engine.getGameAttribute('Possum Mode') && (d.createRecycledActorOnLayer( d.getActorType(537), this.actor.getX(), this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), (this._PossumSprite = d.getLastCreatedActor()), this.actor.disableActorDrawing()); this._JumpSpeed = 46; this._RunSpeed = 16; this._GravitySpeed = 48; this._LeftTouchMargin = 28; this._FacingRight = !0; k.engine.getGameAttribute('MOBILE MODE') ? (d.createRecycledActor( d.getActorType(533), 2 * Math.round((0.1428 * d.getScreenWidth()) / 2) - 36, d.getScreenHeight() - 98, 0 ), (this._GoButton = d.getLastCreatedActor())) : ((k.engine.gameAttributes.h['Direction Hint'] = !1), d.createRecycledActor(d.getActorType(766), 24, d.getScreenHeight() - 66, 0), (this._ZButtonIndicator = d.getLastCreatedActor()), d.createRecycledActor( d.getActorType(96), this.actor.getXCenter() - 16, this.actor.getY() - 64, 0 ), (this._Arrow = d.getLastCreatedActor())); this._CameraX = this.actor.getXCenter(); this._CameraY = this.actor.getYCenter(); d.createRecycledActor( d.getActorType(10), this.actor.getXCenter(), this.actor.getYCenter(), 0 ); this._CameraTarget = d.getLastCreatedActor(); this._CameraTarget.makeAlwaysSimulate(); this._CameraTarget.disableActorDrawing(); d.engine.moveCamera(this._CameraTarget.getX(), this._CameraTarget.getY()); this.actor.say('Dude Logic', '_customEvent_setCameraBounds'); ('JP' != k.engine.getGameAttribute('Language') && 'CN' != k.engine.getGameAttribute('Language') && 'KR' != k.engine.getGameAttribute('Language')) || this._GoButton.setAnimation('WW Normal'); d.runLater( 500, function (b) { a._CanStart = !0; d.sayToScene('Stage Logic', '_customEvent_createPauseButton'); }, this.actor ); d.createRecycledActor(d.getActorType(150), 0, 0, 0); this._TouchXSensor = d.getLastCreatedActor(); d.getLastCreatedActor().anchorToScreen(); d.getLastCreatedActor().disableActorDrawing(); d.createRecycledActor( d.getActorType(637), this.actor.getXCenter() - 32, this.actor.getY() + this.actor.getHeight(), 0 ); this._GroundSensor = d.getLastCreatedActor(); d.getLastCreatedActor().makeAlwaysSimulate(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener( d.engine.whenKeyPressedEvents.getOrCreateEvent('action1'), q(this, this._event_KeyboardStarted) ); this.addListener( d.engine.whenKeyPressedEvents.getOrCreateEvent('action1'), q(this, this._event_KeyboardReleased) ); this.addListener(this.actor.whenCollided, q(this, this._event_HitsGround)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsPlatform)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsHazard)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsBaby)); this.addListener(this.actor.whenUpdated, q(this, this._event_MoveToBabyPos)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsKey)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsCrate)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsBigCrate)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsCameraSensor)); this.addListener(this.actor.whenUpdated, q(this, this._event_Camera)); this.addListener(this.actor.whenUpdated, q(this, this._event_Movement)); d.runPeriodically(500, q(this, this._event_Sweat), this.actor); d.runPeriodically(40, q(this, this._event_EveryNsecs), this.actor); d.runPeriodically(200, q(this, this._event_Steps), this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Animations)); this.addListener(this._GroundSensor.whenCollided, q(this, this._event_SensorHitsTiles)); this.addListener( this._GroundSensor.whenCollided, q(this, this._event_SensorHitsPlatform) ); this.addListener(d.engine.whenMTStarted, q(this, this._event_TouchStarted)); this.addListener(d.engine.whenMTStarted, q(this, this._event_Jump)); this.addListener(d.engine.whenMTDragged, q(this, this._event_TouchDragged)); this.addListener(d.engine.whenMTEnded, q(this, this._event_TouchReleased)); this.addListener(this.actor.whenUpdated, q(this, this._event_DirectionHint)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating2)); }, forwardMessage: function (a) {}, __class__: Au }); var Bu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h.Letter = '_Letter'; this._Letter = ''; this.nameMap.h.Float = '_Float'; this._Float = !1; this.nameMap.h['Origin Y'] = '_OriginY'; this._OriginY = 0; this.nameMap.h.Up = '_Up'; this._Up = !1; this.nameMap.h.White = '_White'; this._White = !1; }; h['scripts.Design_300_300_AreaClearLetterLogic'] = Bu; Bu.__name__ = 'scripts.Design_300_300_AreaClearLetterLogic'; Bu.__super__ = u; Bu.prototype = r(u.prototype, { _Letter: null, _Float: null, _OriginY: null, _Up: null, _White: null, _event_EveryNsecs: function (a) { this.wrapper.enabled && this._Float && (this._Up ? this.actor.getY() <= this._OriginY - 1 ? (this._Up = !1) : this.actor.setY(this.actor.getY() - 1) : this.actor.getY() >= this._OriginY + 1 ? (this._Up = !0) : this.actor.setY(this.actor.getY() + 1)); }, _event_Exit: function (a) { var b = this; this.wrapper.enabled && (this.actor.moveTo(d.getScreenWidth() + 8, this.actor.getY(), 0.4, J.quadInOut), d.runLater( 500, function (a) { d.recycleActor(b.actor); }, this.actor )); }, _event_Drawing: function (a, b, c) { if ( this.wrapper.enabled && ((b = this._Letter), (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && !d.engine.isPaused()) ) { b = this._White ? d.getFont(526) : d.getFont(479); null != b && b != a.font && (a.font = b); var e = this._Letter; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + 0 * a.scaleX), (c = a.y + 0 * a.scaleY)) : ((b = a.x + 0 * a.scaleX - k.cameraX), (c = a.y + 0 * a.scaleY - k.cameraY)) : ((b = a.x + 0 * a.scaleX), (c = a.y + 0 * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, c); var f = null, g = a.font; g = e + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE; if (Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g)) (e = W.drawnStringCache.h[g]), (e.lifetime = 5), (f = e.img); else { var h = a.font.font.getTextWidth(e, a.font.letterSpacing, a.font.fontScale), l = (a.font.font.getFontHeight() * a.font.fontScale) | 0; 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, e, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (e = new Mb()), (e.img = f), (e.lifetime = 5), (W.drawnStringCache.h[g] = e), W.drawnStringCacheKeys.push(g)); } null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, f.width, f.height), a.graphics.endFill()); } }, init: function () { var a = this; this._OriginY = this.actor.getY(); this.actor.makeAlwaysSimulate(); this.actor.anchorToScreen(); d.runLater( 500, function (b) { a._Float = !0; }, this.actor ); d.runPeriodically(200, q(this, this._event_EveryNsecs), this.actor); d.runLater(6500, q(this, this._event_Exit), this.actor); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); }, forwardMessage: function (a) {}, __class__: Bu }); var Cu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h.Bottom = '_Bottom'; this._Bottom = 0; }; h['scripts.Design_333_333_CannotExitScene'] = Cu; Cu.__name__ = 'scripts.Design_333_333_CannotExitScene'; Cu.__super__ = u; Cu.prototype = r(u.prototype, { _Bottom: null, _event_Updated: function (a) { this.wrapper.enabled && (0 > this.actor.getX() && (this.actor.setX(0), this.actor.setXVelocity(0)), 0 > this.actor.getY() && (this.actor.setY(0), this.actor.setYVelocity(0)), this.actor.getX() + this.actor.getWidth() > d.getSceneWidth() && (this.actor.setX(d.getSceneWidth() - this.actor.getWidth()), this.actor.setXVelocity(0)), this.actor.getY() + this.actor.getHeight() > d.getSceneHeight() && (this.actor.setY(d.getSceneHeight() - this.actor.getHeight()), this.actor.setYVelocity(0))); }, init: function () { this.actor.makeAlwaysSimulate(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updated)); }, forwardMessage: function (a) {}, __class__: Cu }); var Du = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; }; h['scripts.Design_338_338_CannotExitScreen'] = Du; Du.__name__ = 'scripts.Design_338_338_CannotExitScreen'; Du.__super__ = u; Du.prototype = r(u.prototype, { _event_Updated: function (a) { this.wrapper.enabled && (0 > this.actor.getScreenX() && (this.actor.setX(d.getScreenX()), this.actor.setXVelocity(0)), 0 > this.actor.getScreenY() && (this.actor.setY(d.getScreenY()), this.actor.setYVelocity(0)), this.actor.getScreenX() + this.actor.getWidth() > d.getScreenWidth() && (this.actor.setX(d.getScreenX() + (d.getScreenWidth() - this.actor.getWidth())), this.actor.setXVelocity(0)), this.actor.getScreenY() + this.actor.getHeight() > d.getScreenHeight() && (this.actor.setY(d.getScreenY() + (d.getScreenHeight() - this.actor.getHeight())), this.actor.setYVelocity(0))); }, init: function () { this.actor.makeAlwaysSimulate(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updated)); }, forwardMessage: function (a) {}, __class__: Du }); var Eu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Block Col'] = '_BlockCol'; this._BlockCol = 0; this.nameMap.h['Block Row'] = '_BlockRow'; this._BlockRow = 0; this.nameMap.h['Row Count'] = '_RowCount'; this._RowCount = 0; this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h.Last = '_Last'; this._Last = !1; this.nameMap.h['Y Count'] = '_YCount'; this._YCount = 0; this.nameMap.h['Copy Actor Type'] = '_CopyActorType'; this.nameMap.h['Copy Actor X'] = '_CopyActorX'; this._CopyActorX = 0; this.nameMap.h['Copy Actor Y'] = '_CopyActorY'; this._CopyActorY = 0; this.nameMap.h['Actor To Copy'] = '_ActorToCopy'; this.nameMap.h['Actor Speed'] = '_ActorSpeed'; this._ActorSpeed = 0; this.nameMap.h['Actor Ease'] = '_ActorEase'; this._ActorEase = !1; this.nameMap.h['Actor PathString'] = '_ActorPathString'; this._ActorPathString = ''; this.nameMap.h['Actor Delay'] = '_ActorDelay'; this._ActorDelay = 0; this.nameMap.h['Actor FaceLeft'] = '_ActorFaceLeft'; this._ActorFaceLeft = !1; this.nameMap.h['Actor HasSpring'] = '_ActorHasSpring'; this._ActorHasSpring = !1; }; h['scripts.Design_345_345_EndlessNodeLogic'] = Eu; Eu.__name__ = 'scripts.Design_345_345_EndlessNodeLogic'; Eu.__super__ = u; Eu.prototype = r(u.prototype, { _BlockCol: null, _BlockRow: null, _RowCount: null, _First: null, _Last: null, _YCount: null, _CopyActorType: null, _CopyActorX: null, _CopyActorY: null, _ActorToCopy: null, _ActorSpeed: null, _ActorEase: null, _ActorPathString: null, _ActorDelay: null, _ActorFaceLeft: null, _ActorHasSpring: null, _customEvent_Go: function () { this._BlockCol = 1; 'Right' == this.actor.getAnimation() ? (this._First || (this._BlockCol = d.randomInt(2, 9)), (this._BlockRow = 0)) : 'Up' == this.actor.getAnimation() ? (this._BlockRow = 1) : 'Right Up' == this.actor.getAnimation() ? (this._BlockRow = 2) : 'Up Right' == this.actor.getAnimation() ? (this._BlockRow = 3) : 'Right Down' == this.actor.getAnimation() ? (this._BlockRow = 4) : 'Down Right' == this.actor.getAnimation() ? (this._BlockRow = 5) : 'Down' == this.actor.getAnimation() && (this._BlockRow = 6); for (var a = 0; 13 > a; ) { for (var b = a++, c = 0; 12 > c; ) { var e = c++; d.removeTileAt( (this.actor.getY() / 32 + this._RowCount) | 0, (this.actor.getX() / 32 + e) | 0, d.engine.getLayerById(0) ); d.tileExistsAt( (12 * this._BlockRow + this._RowCount) | 0, (12 * this._BlockCol + e) | 0, d.engine.getLayerById(0) ) && 46 != d.getTileIDAt( (12 * this._BlockRow + this._RowCount) | 0, (12 * this._BlockCol + e) | 0, d.engine.getLayerById(0) ) && d.setTileAt( (this.actor.getY() / 32 + this._RowCount) | 0, (this.actor.getX() / 32 + e) | 0, d.engine.getLayerById(0), 615, d.getTileIDAt( (12 * this._BlockRow + this._RowCount) | 0, (12 * this._BlockCol + e) | 0, d.engine.getLayerById(0) ) ); } this._RowCount = b; } a = 0; for (c = x.__cast(d.getActorGroup(4), ze).list; a < c.length; ) (b = c[a]), ++a, null != b && !b.dead && !b.recycled && b.getX() >= 384 * this._BlockCol && b.getX() <= 384 * (this._BlockCol + 1) + this.actor.getWidth() && b.getY() >= 384 * this._BlockRow && b.getY() <= 384 * (this._BlockRow + 1) + this.actor.getHeight() && ((this._ActorToCopy = b), (e = this._ActorToCopy.getValue('Set Path', '_Speed')), (this._ActorSpeed = null == e ? 0 : 'number' == typeof e ? x.__cast(e, Nb) : 'number' == typeof e && (e | 0) === e ? x.__cast(e, Ab) : 'boolean' == typeof e ? x.__cast(e, Ob) ? 1 : 0 : 'string' == typeof e ? parseFloat(e) : parseFloat(B.string(e))), (this._ActorEase = this._ActorToCopy.getValue('Set Path', '_Ease')), (this._ActorPathString = '' + B.string(this._ActorToCopy.getValue('Set Path', '_PathString'))), (e = this._ActorToCopy.getValue('Set Path', '_Delay')), (this._ActorDelay = null == e ? 0 : 'number' == typeof e ? x.__cast(e, Nb) : 'number' == typeof e && (e | 0) === e ? x.__cast(e, Ab) : 'boolean' == typeof e ? x.__cast(e, Ob) ? 1 : 0 : 'string' == typeof e ? parseFloat(e) : parseFloat(B.string(e))), b.hasBehavior('Set Path'), (this._ActorFaceLeft = this._ActorToCopy.getValue( 'Back And Forth Movement', '_FaceLeft' )), (e = this._ActorToCopy.getValue('Back And Forth Movement', '_Speed')), (this._ActorSpeed = null == e ? 0 : 'number' == typeof e ? x.__cast(e, Nb) : 'number' == typeof e && (e | 0) === e ? x.__cast(e, Ab) : 'boolean' == typeof e ? x.__cast(e, Ob) ? 1 : 0 : 'string' == typeof e ? parseFloat(e) : parseFloat(B.string(e))), (this._ActorHasSpring = this._ActorToCopy.getValue( 'Back And Forth Movement', '_HasSpring' )), b.hasBehavior('Back And Forth Movement'), (this._CopyActorType = b.getType()), (this._CopyActorX = b.getX() - 384 * this._BlockCol), (this._CopyActorY = b.getY() - 384 * this._BlockRow), d.createRecycledActorOnLayer( this._CopyActorType, this.actor.getX() + this._CopyActorX, this.actor.getY() + this._CopyActorY, d.engine.getLayerById(3) ), d.getLastCreatedActor().setValue('Set Path', '_Speed', this._ActorSpeed), d.getLastCreatedActor().setValue('Set Path', '_Ease', this._ActorEase), d.getLastCreatedActor().setValue('Set Path', '_PathString', this._ActorPathString), d.getLastCreatedActor().setValue('Set Path', '_Delay', this._ActorDelay), d .getLastCreatedActor() .setValue('Back And Forth Movement', '_FaceLeft', this._ActorFaceLeft), d .getLastCreatedActor() .setValue('Back And Forth Movement', '_Speed', this._ActorSpeed), d .getLastCreatedActor() .setValue('Back And Forth Movement', '_HasSpring', this._ActorHasSpring)); a = 0; for (c = x.__cast(d.getActorGroup(1), ze).list; a < c.length; ) (b = c[a]), ++a, !( null == b || b.dead || b.recycled || (b.getType() != d.getActorType(60) && b.getType() != d.getActorType(16) && b.getType() != d.getActorType(341) && b.getType() != d.getActorType(343) && b.getType() != d.getActorType(58)) ) && b.getX() >= 384 * this._BlockCol && b.getX() <= 384 * (this._BlockCol + 1) + this.actor.getWidth() && b.getY() >= 384 * this._BlockRow && b.getY() <= 384 * (this._BlockRow + 1) + this.actor.getHeight() && ((this._CopyActorType = b.getType()), (this._CopyActorX = b.getX() - 384 * this._BlockCol), (this._CopyActorY = b.getY() - 384 * this._BlockRow), d.createRecycledActorOnLayer( this._CopyActorType, this.actor.getX() + this._CopyActorX, this.actor.getY() + this._CopyActorY, d.engine.getLayerById(3) )); a = 0; for (c = x.__cast(d.getActorGroup(2), ze).list; a < c.length; ) (b = c[a]), ++a, null != b && !b.dead && !b.recycled && b.getX() >= 384 * this._BlockCol && b.getX() <= 384 * (this._BlockCol + 1) + this.actor.getWidth() && b.getY() >= 384 * this._BlockRow && b.getY() <= 384 * (this._BlockRow + 1) + this.actor.getHeight() && ((this._CopyActorType = b.getType()), (this._CopyActorX = b.getX() - 384 * this._BlockCol), (this._CopyActorY = b.getY() - 384 * this._BlockRow), d.createRecycledActorOnLayer( this._CopyActorType, this.actor.getX() + this._CopyActorX, this.actor.getY() + this._CopyActorY, d.engine.getLayerById(3) )); a = 0; for (c = x.__cast(d.getActorGroup(3), ze).list; a < c.length; ) (b = c[a]), ++a, null != b && !b.dead && !b.recycled && b.getX() >= 384 * this._BlockCol && b.getX() <= 384 * (this._BlockCol + 1) + this.actor.getWidth() && b.getY() >= 384 * this._BlockRow && b.getY() <= 384 * (this._BlockRow + 1) + this.actor.getHeight() && ((this._CopyActorType = b.getType()), (this._CopyActorX = b.getX() - 384 * this._BlockCol), (this._CopyActorY = b.getY() - 384 * this._BlockRow), d.createRecycledActorOnLayer( this._CopyActorType, this.actor.getX() + this._CopyActorX, this.actor.getY() + this._CopyActorY, d.engine.getLayerById(3) )); a = 0; for (c = x.__cast(d.getActorGroup(5), ze).list; a < c.length; ) (b = c[a]), ++a, null != b && !b.dead && !b.recycled && b.getX() >= 384 * this._BlockCol && b.getX() <= 384 * (this._BlockCol + 1) + this.actor.getWidth() && b.getY() >= 384 * this._BlockRow && b.getY() <= 384 * (this._BlockRow + 1) + this.actor.getHeight() && ((this._CopyActorType = b.getType()), (this._CopyActorX = b.getX() - 384 * this._BlockCol), (this._CopyActorY = b.getY() - 384 * this._BlockRow), d.createRecycledActorOnLayer( this._CopyActorType, this.actor.getX() + this._CopyActorX, this.actor.getY() + this._CopyActorY, d.engine.getLayerById(3) )); this._First && d.createRecycledActor( d.getActorType(70), this.actor.getX() + 96, this.actor.getY() + 320, 1 ); }, init: function () {}, forwardMessage: function (a) {}, __class__: Eu }); var Fu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['On Ground'] = '_OnGround'; this._OnGround = !1; this.nameMap.h['Ground Check'] = '_GroundCheck'; this._GroundCheck = !1; this.nameMap.h.Left = '_Left'; this._Left = !1; this.nameMap.h['Number Of Hops'] = '_NumberOfHops'; this._NumberOfHops = 1; this.nameMap.h['Hop Count'] = '_HopCount'; this._HopCount = 0; this.nameMap.h.Hopping = '_Hopping'; this._Hopping = !1; this.nameMap.h['Start Y'] = '_StartY'; this._StartY = 0; this.nameMap.h['On Platform'] = '_OnPlatform'; this._OnPlatform = !1; this.nameMap.h.Dead = '_Dead'; this._Dead = !1; this.nameMap.h['Straight Up'] = '_StraightUp'; this._StraightUp = !1; this.nameMap.h.Splash = '_Splash'; this._Splash = !1; this.nameMap.h['Face Left'] = '_FaceLeft'; this._FaceLeft = !1; this.nameMap.h['Snooze Z List'] = '_SnoozeZList'; this.nameMap.h.Snore = '_Snore'; this._Snore = !1; this.nameMap.h['Going Left'] = '_GoingLeft'; this._GoingLeft = !1; this.nameMap.h.Dude = '_Dude'; this.nameMap.h['X Distance'] = '_XDistance'; this._XDistance = 0; this.nameMap.h.Charging = '_Charging'; this._Charging = !1; this.nameMap.h.Wander = '_Wander'; this._Wander = !1; this.nameMap.h['Has Charged'] = '_HasCharged'; this._HasCharged = !1; this.nameMap.h.Exclamation = '_Exclamation'; this.nameMap.h['Charge Speed'] = '_ChargeSpeed'; this._ChargeSpeed = 0; this.nameMap.h.Stunned = '_Stunned'; this._Stunned = !1; this.nameMap.h.Sleeping = '_Sleeping'; this._Sleeping = !1; }; h['scripts.Design_356_356_BoundingMovement'] = Fu; Fu.__name__ = 'scripts.Design_356_356_BoundingMovement'; Fu.__super__ = u; Fu.prototype = r(u.prototype, { _GravitySpeed: null, _OnGround: null, _GroundCheck: null, _Left: null, _NumberOfHops: null, _HopCount: null, _Hopping: null, _StartY: null, _OnPlatform: null, _Dead: null, _StraightUp: null, _Splash: null, _FaceLeft: null, _SnoozeZList: null, _Snore: null, _GoingLeft: null, _Dude: null, _XDistance: null, _Charging: null, _Wander: null, _HasCharged: null, _Exclamation: null, _ChargeSpeed: null, _Stunned: null, _Sleeping: null, _event_Updating: function (a) { var b = this; if (this.wrapper.enabled) { if (!this._Dead) { if (this._GroundCheck || (this._OnPlatform && this.actor.getY() >= this._StartY)) { if ((this._OnPlatform && this.actor.setY(this._StartY), !this._OnGround)) { this._OnGround = !0; this.actor.setXVelocity(0); this.actor.isOnScreen() && !k.engine.getGameAttribute('Sound Disabled') && d.playSound(d.getSound(117)); if (this.actor.isOnScreen()) { a = 0; for (var c = d.getActorsOfType(d.getActorType(2)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || (this.actor.getXCenter() > e.getXCenter() ? d.setValueForScene('Stage Logic', '_RumbleName', 'Small Thud Right') : d.setValueForScene('Stage Logic', '_RumbleName', 'Small Thud Left'), d.sayToScene('Stage Logic', '_customEvent_rumble')); } } this._Hopping && (this._Left ? this.actor.setAnimation('Idle Left') : this.actor.setAnimation('Idle Right'), (this._Hopping = !1), d.runLater( 100, function (a) { b.actor.say('Bounding Movement', '_customEvent_Hop'); }, this.actor )); } } else this._OnGround && (this._OnGround = !1); this._GroundCheck = !1; (this._OnPlatform && this.actor.getY() >= this._StartY) || this.actor.setYVelocity( Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed) ); } this._Left && (!d.tileExistsAt( Math.round((this._StartY + (this.actor.getHeight() - 34)) / 32 + 1), Math.floor(this.actor.getX() / 32), d.engine.getLayerById(0) ) || (d.tileExistsAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32), Math.floor(this.actor.getX() / 32), d.engine.getLayerById(0) ) && 7 < d.getTileIDAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32), Math.floor(this.actor.getX() / 32), d.engine.getLayerById(0) ))) ? ((this._Left = !1), this.actor.setXVelocity(0)) : this._Left || (d.tileExistsAt( Math.round((this._StartY + (this.actor.getHeight() - 34)) / 32 + 1), Math.ceil(this.actor.getX() / 32), d.engine.getLayerById(0) ) && !( d.tileExistsAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32), Math.ceil(this.actor.getX() / 32), d.engine.getLayerById(0) ) && 7 < d.getTileIDAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32), Math.ceil(this.actor.getX() / 32), d.engine.getLayerById(0) ) )) || ((this._Left = !0), this.actor.setXVelocity(0)); } }, _event_ActorAny: function (a) { var b = this; this.wrapper.enabled && (this._OnPlatform || (this.internalGetGroup(a.otherActor, a.otherShape, a) != d.getActorGroup(1) && this.internalGetGroup(a.otherActor, a.otherShape, a) != d.getActorGroup(8)) || !a.thisFromBottom || (this._GroundCheck = !0), a.otherActor.getType() != d.getActorType(203) || this._Dead || ((this._Dead = !0), this.actor.setFilter([d.createBrightnessFilter(100)]), d.runLater( 100, function (a) { k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(378)); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, 32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, 32, 0.3, J.backOut); d.recycleActor(b.actor); }, this.actor ))); }, _event_Sleep: function (a) { this.wrapper.enabled && 'Sleep' == this.actor.getAnimation() && (d.createRecycledActor( d.getActorType(127), this.actor.getXCenter() - 12, this.actor.getY(), 0 ), this._SnoozeZList.push(d.getLastCreatedActor()), this._Snore ? (this._Snore = !1) : ((this._Snore = !0), !k.engine.getGameAttribute('Sound Disabled') && this.actor.isOnScreen() && d.playSound(d.getSound(454)))); }, _event_SnoozeZKilled: function (a) { this.wrapper.enabled && X.contains(this._SnoozeZList, a) && A.remove(this._SnoozeZList, a); }, _event_EveryNsecs: function (a) { var b = this; if (this.wrapper.enabled && this._Sleeping) if ( ((a = this._Dude), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) ) { if ( ((this._XDistance = Math.max(this.actor.getXCenter(), this._Dude.getXCenter()) - Math.min(this.actor.getXCenter(), this._Dude.getXCenter())), this._Dude.getYCenter() > this.actor.getY() && this._Dude.getYCenter() < this.actor.getY() + this.actor.getHeight() && 200 > this._XDistance && !this._Charging && !this._HasCharged && !this._Stunned) ) { a = 0; for (e = x.__cast(this._SnoozeZList, Array); a < e.length; ) { var c = e[a]; ++a; c.isAlive() && d.recycleActor(c); } this._Dude.getX() > this.actor.getX() ? this._Left || ((this._Charging = !0), d.createRecycledActor( d.getActorType(131), this.actor.getXCenter() - 14, this.actor.getY() - 28, 0 ), (this._Exclamation = d.getLastCreatedActor()), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(373)), this.actor.setXVelocity(0), this.actor.setYVelocity(-20), this.actor.setAnimation('Idle Right'), d.runLater( 500, function (a) { d.recycleActor(b._Exclamation); }, this.actor ), d.runLater( 700, function (a) { b.actor.say('Bounding Movement', '_customEvent_Hop'); }, this.actor )) : this._Left && ((this._Charging = !0), d.createRecycledActor( d.getActorType(131), this.actor.getXCenter() - 14, this.actor.getY() - 28, 0 ), d.getLastCreatedActor().setAnimation('Right'), (this._Exclamation = d.getLastCreatedActor()), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(373)), this.actor.setXVelocity(0), this.actor.setYVelocity(-20), this.actor.setAnimation('Idle Left'), d.runLater( 500, function (a) { d.recycleActor(b._Exclamation); }, this.actor ), d.runLater( 700, function (a) { b.actor.say('Bounding Movement', '_customEvent_Hop'); }, this.actor )); } } else { a = 0; for (var e = d.getActorsOfType(d.getActorType(2)); a < e.length; ) (c = e[a]), ++a, null == c || c.dead || c.recycled || (this._Dude = c); } }, _customEvent_Hop: function () { this._Dead || ((this._Hopping = !0), this.actor.setYVelocity(-30), this._StraightUp || (this._Left ? (this.actor.setAnimation('LeftHop'), this.actor.setXVelocity(-11.6)) : (this.actor.setAnimation('RightHop'), this.actor.setXVelocity(11.6)))); }, init: function () { this.actor.makeAlwaysSimulate(); this._GravitySpeed = 48; this._GroundCheck = this._OnGround = !0; this._StartY = this.actor.getY(); this._SnoozeZList = []; this._Sleeping ? (this.actor.setAnimation('Sleep'), (this._Left = !0)) : this.actor.say('Bounding Movement', '_customEvent_Hop'); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenCollided, q(this, this._event_ActorAny)); d.runPeriodically(700, q(this, this._event_Sleep), this.actor); this.addListenerWithKey( d.engine.whenTypeGroupKilledEvents, d.getActorType(127), q(this, this._event_SnoozeZKilled) ); d.runPeriodically(100, q(this, this._event_EveryNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: Fu }); var Gu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['On Ground'] = '_OnGround'; this._OnGround = !1; this.nameMap.h['Ground Check'] = '_GroundCheck'; this._GroundCheck = !1; this.nameMap.h['Start Y'] = '_StartY'; this._StartY = 0; this.nameMap.h.Hopping = '_Hopping'; this._Hopping = !1; this.nameMap.h.Splash = '_Splash'; this._Splash = !1; this.nameMap.h.Left = '_Left'; this._Left = !1; this.nameMap.h['Straight Up'] = '_StraightUp'; this._StraightUp = !1; this.nameMap.h['Hop Count'] = '_HopCount'; this._HopCount = 0; this.nameMap.h['Number Of Hops'] = '_NumberOfHops'; this._NumberOfHops = 1; this.nameMap.h.Dead = '_Dead'; this._Dead = !1; this.nameMap.h['Swoop Go'] = '_SwoopGo'; this._SwoopGo = !1; this.nameMap.h['Swoop Return'] = '_SwoopReturn'; this._SwoopReturn = !1; this.nameMap.h['X Tweener'] = '_XTweener'; this.nameMap.h['Y Tweener'] = '_YTweener'; this.nameMap.h.Distance = '_Distance'; this._Distance = 0; }; h['scripts.Design_358_358_SwoopingMovement'] = Gu; Gu.__name__ = 'scripts.Design_358_358_SwoopingMovement'; Gu.__super__ = u; Gu.prototype = r(u.prototype, { _GravitySpeed: null, _OnGround: null, _GroundCheck: null, _StartY: null, _Hopping: null, _Splash: null, _Left: null, _StraightUp: null, _HopCount: null, _NumberOfHops: null, _Dead: null, _SwoopGo: null, _SwoopReturn: null, _XTweener: null, _YTweener: null, _Distance: null, _event_Updating: function (a) { this.wrapper.enabled && ((a = this._XTweener), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a) ? ((a = this._YTweener), (a = d.isPrimitive(a) ? !0 : 'string' == typeof a ? '' != x.__cast(a, String) : null != a)) : (a = !1), a && (this.actor.setX(this._XTweener.getX()), this.actor.setY(this._YTweener.getY()))); }, _customEvent_Swoop: function () { var a = this; this._Distance = 200; this._YTweener.moveBy(0, this._Distance / 2, 1.2, J.quadInOut); d.runLater( 1250, function (b) { a._YTweener.moveBy(0, -(a._Distance / 2), 1.2, J.quadInOut); }, this.actor ); this._Left ? this._XTweener.moveBy(-this._Distance, 0, 2.5, J.quadInOut) : this._XTweener.moveBy(this._Distance, 0, 2.5, J.quadInOut); d.runLater( 3400, function (b) { a._Left = a._Left ? !1 : !0; a.actor.say('Swooping Movement', '_customEvent_Swoop'); }, this.actor ); }, init: function () { var a = this; this.actor.makeAlwaysSimulate(); this._StartY = this.actor.getY(); d.createRecycledActor(d.getActorType(635), this.actor.getX(), this.actor.getY(), 0); this._XTweener = d.getLastCreatedActor(); d.getLastCreatedActor().makeAlwaysSimulate(); d.createRecycledActor(d.getActorType(635), this.actor.getX(), this.actor.getY(), 0); this._YTweener = d.getLastCreatedActor(); d.getLastCreatedActor().makeAlwaysSimulate(); d.runLater( 1e3, function (b) { a.actor.say('Swooping Movement', '_customEvent_Swoop'); }, this.actor ); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Gu }); var Hu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Hit Ground'] = '_HitGround'; this._HitGround = !1; this.nameMap.h['Sensor Row Count'] = '_SensorRowCount'; this._SensorRowCount = 0; this.nameMap.h['Sensor Column Count'] = '_SensorColumnCount'; this._SensorColumnCount = 0; this.nameMap.h['Shake Image'] = '_ShakeImage'; this.nameMap.h['Shake Image Instance'] = '_ShakeImageInstance'; this.nameMap.h['Shake Count'] = '_ShakeCount'; this._ShakeCount = 0; this.nameMap.h.Left = '_Left'; this._Left = !1; this.nameMap.h.Shake = '_Shake'; this._Shake = !1; this.nameMap.h['Sensor List'] = '_SensorList'; this.nameMap.h.Fall = '_Fall'; this._Fall = !1; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h.Done = '_Done'; this._Done = !1; this.nameMap.h['Has Hit Dude'] = '_HasHitDude'; this._HasHitDude = !1; this.nameMap.h.Height = '_Height'; this._Height = 0; }; h['scripts.Design_35_35_FallingBlockLogic'] = Hu; Hu.__name__ = 'scripts.Design_35_35_FallingBlockLogic'; Hu.__super__ = u; Hu.prototype = r(u.prototype, { _HitGround: null, _SensorRowCount: null, _SensorColumnCount: null, _ShakeImage: null, _ShakeImageInstance: null, _ShakeCount: null, _Left: null, _Shake: null, _SensorList: null, _Fall: null, _GravitySpeed: null, _Done: null, _HasHitDude: null, _Height: null, _event_EveryNsecs: function (a) { this.wrapper.enabled && this._Shake && !this._Fall && !this._Done && (d.attachImageToActor( this._ShakeImageInstance, this.actor, (-2 + this._ShakeCount) | 0, 0, 1 ), 6 != this._ShakeCount || this._Left ? 0 == this._ShakeCount && this._Left && (this._Left = !1) : (this._Left = !0), (this._ShakeCount = this._Left ? this._ShakeCount - 2 : this._ShakeCount + 2)); }, _event_DudeHitsSensor: function (a) { this.wrapper.enabled && X.contains(this._SensorList, a.otherActor) && this.actor.say('Falling Block Logic', '_customEvent_Fall'); }, _event_HitsDude: function (a) { if (this.wrapper.enabled) { var b = d.getActorType(2); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && a.thisFromTop && this.actor.say('Falling Block Logic', '_customEvent_Fall'); }, _customEvent_Fall: function () { var a = this; if (!this._Shake && !this._Fall && !this._Done) { this._Shake = !0; k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(106)); this.actor.moveToBottom(); for (var b = 0, c = x.__cast(this._SensorList, Array); b < c.length; ) { var e = c[b]; ++b; d.recycleActor(e); } d.runLater( 1e3, function (b) { a._Fall = !0; a.actor.moveBy(0, 32 * a._Height, 0.08 * a._Height, J.quadIn); a.actor.setAnimation('Fall'); a._Shake = !1; d.attachImageToActor(a._ShakeImageInstance, a.actor, 0, 0, 1); d.runLater( 80 * a._Height, function (b) { a._Done = !0; a._Fall = !1; a.actor.setY(32 * Math.round(a.actor.getY() / 32)); d.runLater( 200, function (b) { a.actor.setAnimation('Normal'); }, a.actor ); d.startShakingScreen(0.005, 0.05); b = 0; for (var c = d.getActorsOfType(d.getActorType(2)); b < c.length; ) { var e = c[b]; ++b; null == e || e.dead || e.recycled || (a.actor.getXCenter() > e.getXCenter() ? d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Right') : d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Left'), d.sayToScene('Stage Logic', '_customEvent_rumble')); } k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(105)); d.createRecycledActorOnLayer( d.getActorType(94), a.actor.getXCenter() - 8, a.actor.getY() + a.actor.getHeight() - 24, d.engine.getLayerById(a.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), a.actor.getX() - 8, a.actor.getY() + a.actor.getHeight() - 24, d.engine.getLayerById(a.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), a.actor.getX() + a.actor.getWidth() - 8, a.actor.getY() + a.actor.getHeight() - 24, d.engine.getLayerById(a.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); d.removeImage(a._ShakeImageInstance); a.actor.enableActorDrawing(); a.actor.makeSometimesSimulate(); }, a.actor ); }, this.actor ); } }, init: function () { this.actor.makeAlwaysSimulate(); this.actor.setX(32 * Math.round(this.actor.getX() / 32)); this.actor.setY(32 * Math.round(this.actor.getY() / 32)); this._ShakeImage = d.getImageForActor(this.actor); this._ShakeImageInstance = new Qh(new Mc(this._ShakeImage)); this.actor.disableActorDrawing(); d.attachImageToActor(this._ShakeImageInstance, this.actor, 0, 0, 1); this._GravitySpeed = 48; this._SensorList = []; for (var a = 0, b = (this.actor.getWidth() / 32) | 0; a < b; ) { a++; this._HitGround = !1; for (this._SensorRowCount = 1; !this._HitGround; ) d.tileExistsAt( (Math.round((this.actor.getY() + this.actor.getHeight()) / 32) + this._SensorRowCount) | 0, (Math.round(this.actor.getX() / 32) + this._SensorColumnCount) | 0, d.engine.getLayerById(0) ) && 7 < d.getTileIDAt( (Math.round((this.actor.getY() + this.actor.getHeight()) / 32) + this._SensorRowCount) | 0, (Math.round(this.actor.getX() / 32) + this._SensorColumnCount) | 0, d.engine.getLayerById(0) ) ? (this._HitGround = !0) : (d.createRecycledActor( d.getActorType(52), 32 * (Math.round(this.actor.getX() / 32) + this._SensorColumnCount), 32 * (Math.round((this.actor.getY() + this.actor.getHeight()) / 32) + this._SensorRowCount), 0 ), d.getLastCreatedActor().disableActorDrawing(), this._SensorList.push(d.getLastCreatedActor()), (this._SensorRowCount += 1)); this._SensorColumnCount += 1; if (0 == this._Height || this._Height < this._SensorRowCount) this._Height = this._SensorRowCount; } d.runPeriodically(20, q(this, this._event_EveryNsecs), this.actor); this.addListenerWithKey2( d.engine.whenCollidedEvents, d.getActorType(2).ID, d.getActorType(52).ID, q(this, this._event_DudeHitsSensor) ); this.addListener(this.actor.whenCollided, q(this, this._event_HitsDude)); }, forwardMessage: function (a) {}, __class__: Hu }); var Iu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Node Number'] = '_NodeNumber'; this._NodeNumber = 0; this.nameMap.h.First = '_First'; this._First = !1; this.nameMap.h.Last = '_Last'; this._Last = !1; this.nameMap.h.Level = '_Level'; this._Level = 0; }; h['scripts.Design_364_364_OverworldNodeLogic'] = Iu; Iu.__name__ = 'scripts.Design_364_364_OverworldNodeLogic'; Iu.__super__ = u; Iu.prototype = r(u.prototype, { _NodeNumber: null, _First: null, _Last: null, _Level: null, init: function () { this.actor.makeAlwaysSimulate(); 'Beach Map' == d.getCurrentSceneName() ? 0 != this._Level && k.engine.getGameAttribute('Highest Level') + 1 < this._Level ? this.actor.setAnimation('WhiteClosed') : this.actor.setAnimation('WhiteOpen') : 'Cave Map' == d.getCurrentSceneName() ? 0 != this._Level && k.engine.getGameAttribute('Highest Level') + 1 < this._Level ? this.actor.setAnimation('BrownClosed') : this.actor.setAnimation('BrownOpen') : 'Castle Map' == d.getCurrentSceneName() ? 0 != this._Level && k.engine.getGameAttribute('Highest Level') + 1 < this._Level ? this.actor.setAnimation('GreyClosed') : this.actor.setAnimation('GreyOpen') : 0 != this._Level && k.engine.getGameAttribute('Highest Level') + 1 < this._Level && this.actor.setAnimation('Closed'); }, forwardMessage: function (a) {}, __class__: Iu }); var Ju = function (a, b) { d.call(this); this.nameMap.h['Stars String'] = '_StarsString'; this._StarsString = ''; this.nameMap.h['Star Count Star'] = '_StarCountStar'; this.nameMap.h['Level Number'] = '_LevelNumber'; this._LevelNumber = 0; this.nameMap.h.Overlay = '_Overlay'; this.nameMap.h['Hide Text'] = '_HideText'; this._HideText = !1; this.nameMap.h['World Title'] = '_WorldTitle'; this._WorldTitle = ''; this.nameMap.h['Font To Use'] = '_FontToUse'; this.nameMap.h['Left Text'] = '_LeftText'; this._LeftText = ''; this.nameMap.h['Right Text'] = '_RightText'; this._RightText = ''; this.nameMap.h['Star Is Hidden'] = '_StarIsHidden'; this._StarIsHidden = !1; this.nameMap.h['Total Time In Hundreths'] = '_TotalTimeInHundreths'; this._TotalTimeInHundreths = 0; this.nameMap.h['Time Box'] = '_TimeBox'; this.nameMap.h.Hours = '_Hours'; this._Hours = 0; this.nameMap.h.Minutes = '_Minutes'; this._Minutes = 0; this.nameMap.h.Seconds = '_Seconds'; this._Seconds = 0; this.nameMap.h.Hundreths = '_Hundreths'; this._Hundreths = 0; this.nameMap.h['Hours String'] = '_HoursString'; this._HoursString = ''; this.nameMap.h['Minutes String'] = '_MinutesString'; this._MinutesString = ''; this.nameMap.h['Seconds String'] = '_SecondsString'; this._SecondsString = ''; this.nameMap.h['Hundreths String'] = '_HundrethsString'; this._HundrethsString = ''; this.nameMap.h['Total Time String'] = '_TotalTimeString'; this._TotalTimeString = ''; this.nameMap.h['LAST INPUT'] = '_LASTINPUT'; this._LASTINPUT = ''; this.nameMap.h['Bottom Border'] = '_BottomBorder'; this.nameMap.h['Right Border'] = '_RightBorder'; this.nameMap.h['Bottom Right Corner'] = '_BottomRightCorner'; this.nameMap.h['Bottom Left Corner'] = '_BottomLeftCorner'; this.nameMap.h['Left Border'] = '_LeftBorder'; this.nameMap.h['Top Border'] = '_TopBorder'; this.nameMap.h['Top Right Corner'] = '_TopRightCorner'; }; h['scripts.Design_370_370_SwitchOverworld'] = Ju; Ju.__name__ = 'scripts.Design_370_370_SwitchOverworld'; Ju.__super__ = sa; Ju.prototype = r(sa.prototype, { _StarsString: null, _StarCountStar: null, _LevelNumber: null, _Overlay: null, _HideText: null, _WorldTitle: null, _FontToUse: null, _LeftText: null, _RightText: null, _StarIsHidden: null, _TotalTimeInHundreths: null, _TimeBox: null, _Hours: null, _Minutes: null, _Seconds: null, _Hundreths: null, _HoursString: null, _MinutesString: null, _SecondsString: null, _HundrethsString: null, _TotalTimeString: null, _LASTINPUT: null, _BottomBorder: null, _RightBorder: null, _BottomRightCorner: null, _BottomLeftCorner: null, _LeftBorder: null, _TopBorder: null, _TopRightCorner: null, _event_Updating: function (a) { this.wrapper.enabled && (this._HideText ? this._StarIsHidden || ((this._StarIsHidden = !0), this._StarCountStar.disableActorDrawing()) : this._StarIsHidden && ((this._StarIsHidden = !1), this._StarCountStar.enableActorDrawing())); }, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled && !this._HideText) { c = d.getFont(526); null != c && c != a.font && (a.font = c); c = this._StarsString; b = d.getScreenWidth() - (30 + d.getFont(526).getTextWidth(this._StarsString) / k.SCALE); null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); if (a.drawActor) if (null != a.actor && a.actor.isHUD) { b = a.x + b * a.scaleX; var e = a.y + 18 * a.scaleY; } else (b = a.x + b * a.scaleX - k.cameraX), (e = a.y + 18 * a.scaleY - k.cameraY); else (b = a.x + b * a.scaleX), (e = a.y + 18 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, e); var f = null, g = a.font; g = c + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE; if (Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g)) (c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img); else { var h = a.font.font.getTextWidth(c, a.font.letterSpacing, a.font.fontScale), l = (a.font.font.getFontHeight() * a.font.fontScale) | 0; 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, c, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g)); } null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill()); k.engine.getGameAttribute('Timer Mode') || ((c = this._RightText), (b = d.getScreenWidth() / 2 - a.font.getTextWidth(this._RightText) / k.SCALE / 2), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + 18 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + 18 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + 18 * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, e), (f = null), (g = a.font), (g = c + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth(c, a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, c, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))), null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill())); } }, _customEvent_AdjustSize: function () { var a = this._LeftBorder; d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a) ? ((a = this._RightBorder), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a) ? ((a = this._BottomBorder), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a) ? ((a = this._BottomLeftCorner), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a) ? ((a = this._BottomRightCorner), (a = d.isPrimitive(a) ? !0 : 'string' == typeof a ? '' != x.__cast(a, String) : null != a)) : (a = !1)) : (a = !1)) : (a = !1)) : (a = !1); a ? ((a = this._TopRightCorner), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a) ? ((a = this._TopBorder), (a = d.isPrimitive(a) ? !0 : 'string' == typeof a ? '' != x.__cast(a, String) : null != a)) : (a = !1)) : (a = !1); a && (ba.setScale('height', d.getScreenHeight(), this._LeftBorder), this._RightBorder.setX(d.getScreenWidth() - 32), ba.setScale('height', d.getScreenHeight(), this._RightBorder), ba.setScale('width', d.getScreenWidth(), this._TopBorder), this._BottomBorder.setY(d.getScreenHeight() - 48), ba.setScale('width', d.getScreenWidth(), this._BottomBorder), this._TopRightCorner.setX(d.getScreenWidth() - this._TopRightCorner.getWidth()), this._BottomLeftCorner.setY(d.getScreenHeight() - this._BottomLeftCorner.getHeight()), this._BottomRightCorner.setX(d.getScreenWidth() - this._BottomRightCorner.getWidth()), this._BottomRightCorner.setY( d.getScreenHeight() - this._BottomRightCorner.getHeight() )); }, init: function () { var a = this; d.engine.unpause(); 'JP' == k.engine.getGameAttribute('Language') ? ((this._FontToUse = d.getFont(606)), 'Forest Map' == d.getCurrentSceneName() ? (this._RightText = '\u30a2\u30d0\u30ed\u306e\u68ee') : 'Beach Map' == d.getCurrentSceneName() ? (this._RightText = '\u30b9\u30c8\u30e9\u30f3\u30c9\u30d3\u30fc\u30c1') : 'Snow Map' == d.getCurrentSceneName() ? (this._RightText = '\u30e2\u30f3\u30c8\u5c71') : 'Castle Map' == d.getCurrentSceneName() && (this._RightText = '\u30ab\u30b9\u30c6\u30ed\u57ce')) : 'CN' == k.engine.getGameAttribute('Language') ? ((this._FontToUse = d.getFont(604)), 'Forest Map' == d.getCurrentSceneName() ? (this._RightText = '\u963f\u5df4\u7f57\u68ee\u6797') : 'Beach Map' == d.getCurrentSceneName() ? (this._RightText = '\u65af\u7279\u5170\u591a\u6d77\u6ee9') : 'Snow Map' == d.getCurrentSceneName() ? (this._RightText = '\u8499\u6258\u5c71') : 'Castle Map' == d.getCurrentSceneName() && (this._RightText = '\u5361\u65af\u7279\u6d1b\u57ce\u5821')) : 'KR' == k.engine.getGameAttribute('Language') ? ((this._FontToUse = d.getFont(605)), 'Forest Map' == d.getCurrentSceneName() ? (this._RightText = '\uc544\ubc14\ub85c \uc232') : 'Beach Map' == d.getCurrentSceneName() ? (this._RightText = '\uc2a4\ud2b8 \ub780\ub3c4 \ube44\uce58') : 'Snow Map' == d.getCurrentSceneName() ? (this._RightText = '\ubaac\ud1a0 \ub9c8\uc6b4\ud2f4') : 'Castle Map' == d.getCurrentSceneName() && (this._RightText = '\uce74\uc2a4\ud154\ub85c \uc131')) : ((this._FontToUse = d.getFont(441)), 'Forest Map' == d.getCurrentSceneName() ? (this._RightText = 'ABARO WOODS') : 'Beach Map' == d.getCurrentSceneName() ? (this._RightText = 'STRANDO BEACH') : 'Snow Map' == d.getCurrentSceneName() ? (this._RightText = 'MONTO MOUNTAIN') : 'Cave Map' == d.getCurrentSceneName() ? (this._RightText = 'FUNGO CAVE') : 'Castle Map' == d.getCurrentSceneName() && (this._RightText = 'KASTELO FORTRESS')); 43 <= k.engine.getGameAttribute('Stars List').length - 1 && !k.engine.getGameAttribute('Possum Mode Unlocked') && ((k.engine.gameAttributes.h['Possum Mode Unlocked'] = !0), d.saveGame('mySave', function (a) {})); k.engine.getGameAttribute('Start Overworld Music') && ((k.engine.gameAttributes.h['Start Overworld Music'] = !1), d.runLater( 300, function (a) { d.loopSoundOnChannel(d.getSound(744), 16); k.engine.getGameAttribute('Music Disabled') && d.setVolumeForChannel(0, 16); }, null )); d.createRecycledActor(d.getActorType(646), 0, -2, 0); this._TopBorder = d.getLastCreatedActor(); d.createRecycledActor(d.getActorType(648), 0, d.getScreenHeight() - 48, 0); this._BottomBorder = d.getLastCreatedActor(); d.createRecycledActor(d.getActorType(650), -2, 0, 0); this._LeftBorder = d.getLastCreatedActor(); d.createRecycledActor(d.getActorType(652), d.getScreenWidth() - 32, 0, 0); this._RightBorder = d.getLastCreatedActor(); d.createRecycledActor(d.getActorType(654), 0, 0, 0); d.createRecycledActor(d.getActorType(656), 0, 0, 0); this._TopRightCorner = d.getLastCreatedActor(); d.createRecycledActor(d.getActorType(658), 0, 0, 0); this._BottomLeftCorner = d.getLastCreatedActor(); d.createRecycledActor(d.getActorType(660), 0, 0, 0); this._BottomRightCorner = d.getLastCreatedActor(); this._StarsString = '' + (k.engine.getGameAttribute('Stars List').length - 1) + '/43'; d.createRecycledActor( d.getActorType(529), d.getScreenWidth() - (66 + d.getFont(526).getTextWidth(this._StarsString) / k.SCALE), 6, 0 ); this._StarCountStar = d.getLastCreatedActor(); this._StarCountStar.makeAlwaysSimulate(); this._StarCountStar.anchorToScreen(); this._HideText && ((this._StarIsHidden = !0), this._StarCountStar.disableActorDrawing()); k.engine.getGameAttribute('Wipe In Right') ? ((k.engine.gameAttributes.h['Wipe In Right'] = !1), d.createRecycledActor(d.getActorType(283), -5, -5, 0), (this._Overlay = d.getLastCreatedActor()), d.runLater( 100, function (b) { d.sayToScene('Transitions', '_customEvent_wipeInRight'); d.recycleActor(a._Overlay); }, null )) : k.engine.getGameAttribute('Wipe In Left') ? ((k.engine.gameAttributes.h['Wipe In Left'] = !1), d.createRecycledActor(d.getActorType(283), -5, -5, 0), (this._Overlay = d.getLastCreatedActor()), d.runLater( 100, function (b) { d.sayToScene('Transitions', '_customEvent_wipeInLeft'); d.recycleActor(a._Overlay); }, null )) : (d.createRecycledActor(d.getActorType(283), -5, -5, 0), (this._Overlay = d.getLastCreatedActor()), d.runLater( 300, function (b) { d.setValueForScene('Transitions', '_TransitionType', 1); d.sayToScene('Transitions', '_customEvent_transitionIn'); d.recycleActor(a._Overlay); }, null )); k.engine.gameAttributes.h.Dead = !1; k.engine.gameAttributes.h['Settings Open'] = !1; k.engine.gameAttributes.h['Boss 1 Dialog Read'] = !1; k.engine.gameAttributes.h['Boss 2 Dialog Read'] = !1; k.engine.gameAttributes.h['Boss 3 Dialog Read'] = !1; k.engine.gameAttributes.h['Boss 4 Dialog Read'] = !1; k.engine.gameAttributes.h['Boss 5 Dialog Read'] = !1; k.engine.gameAttributes.h['Overworld Entered Left'] = !1; k.engine.gameAttributes.h['Overworld Entered Right'] = !1; k.engine.gameAttributes.h['Checkpoint Passed'] = !1; k.engine.gameAttributes.h['Star Collected'] = !1; k.engine.gameAttributes.h['Dialog Box Open'] = !1; this.addListener(d.engine.whenUpdated, q(this, this._event_Updating)); this.addListener(d.engine.whenDrawing, q(this, this._event_Drawing)); }, forwardMessage: function (a) {}, __class__: Ju }); var Ku = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['On Ground'] = '_OnGround'; this._OnGround = !1; this.nameMap.h['Ground Check'] = '_GroundCheck'; this._GroundCheck = !1; this.nameMap.h['Can Make Noise'] = '_CanMakeNoise'; this._CanMakeNoise = !1; this.nameMap.h['Face Left'] = '_FaceLeft'; this._FaceLeft = !0; this.nameMap.h.Speed = '_Speed'; this._Speed = 12; this.nameMap.h.Fall = '_Fall'; this._Fall = !1; this.nameMap.h['No Gravity'] = '_NoGravity'; this._NoGravity = !1; this.nameMap.h.Health = '_Health'; this._Health = 3; this.nameMap.h.Hurt = '_Hurt'; this._Hurt = !1; this.nameMap.h.Dead = '_Dead'; this._Dead = !1; this.nameMap.h['Starting Y'] = '_StartingY'; this._StartingY = 0; this.nameMap.h['Ground Amnesty'] = '_GroundAmnesty'; this._GroundAmnesty = 0; this.nameMap.h.Go = '_Go'; this._Go = !1; this.nameMap.h.Dude = '_Dude'; this.nameMap.h['Ready To Talk'] = '_ReadyToTalk'; this._ReadyToTalk = !1; this.nameMap.h['Has Entered'] = '_HasEntered'; this._HasEntered = !1; this.nameMap.h['Dialog Complete'] = '_DialogComplete'; this._DialogComplete = !1; this.nameMap.h['Dialog Text'] = '_DialogText'; this._DialogText = 'DEFAULT'; this.nameMap.h.Charging = '_Charging'; this._Charging = !1; this.nameMap.h['Go Left'] = '_GoLeft'; this._GoLeft = !1; this.nameMap.h['Go Right'] = '_GoRight'; this._GoRight = !1; this.nameMap.h.Stunned = '_Stunned'; this._Stunned = !1; this.nameMap.h['Stunned Bounce'] = '_StunnedBounce'; this._StunnedBounce = !1; }; h['scripts.Design_392_392_Boss5Logic'] = Ku; Ku.__name__ = 'scripts.Design_392_392_Boss5Logic'; Ku.__super__ = u; Ku.prototype = r(u.prototype, { _GravitySpeed: null, _OnGround: null, _GroundCheck: null, _CanMakeNoise: null, _FaceLeft: null, _Speed: null, _Fall: null, _NoGravity: null, _Health: null, _Hurt: null, _Dead: null, _StartingY: null, _GroundAmnesty: null, _Go: null, _Dude: null, _ReadyToTalk: null, _HasEntered: null, _DialogComplete: null, _DialogText: null, _Charging: null, _GoLeft: null, _GoRight: null, _Stunned: null, _StunnedBounce: null, _event_HitsGround: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorGroup(1); var e = a.otherActor.getType(), f = a.otherActor.getGroup(); c = c == e || c == f; } else c = !1; if (c) if (a.thisFromBottom) (this._GroundCheck = !0), (this._GroundAmnesty = 4), !this._Stunned || this._StunnedBounce || this._GoLeft || this._GoRight || this.actor.setXVelocity(0); else if (a.thisFromLeft && !this._StunnedBounce) { d.startShakingScreen(0.01, 0.1); this._Stunned = this._StunnedBounce = !0; this._GoLeft = !1; this.actor.setAnimation('Stunned'); this._Dead ? (this.actor.setXVelocity(40), this.actor.setYVelocity(-70), d.runLater( 100, function (a) { b.actor.setAnimation('Dead Stunned'); }, this.actor )) : (this._StunnedBounce ? this.actor.setXVelocity(20) : this.actor.setXVelocity(10), this.actor.setYVelocity(-40)); d.createRecycledActor( d.getActorType(94), this.actor.getX(), this.actor.getYCenter() - 8, 0 ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); d.createRecycledActor( d.getActorType(94), this.actor.getX(), this.actor.getYCenter() - 8, 0 ); d.getLastCreatedActor().moveBy(32, 0, 0.3, J.backOut); d.createRecycledActor( d.getActorType(94), this.actor.getX(), this.actor.getYCenter() - 8, 0 ); d.getLastCreatedActor().moveBy(32, 32, 0.3, J.backOut); a = 0; for (c = d.getActorsOfType(d.getActorType(2)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || (this.actor.getXCenter() > e.getXCenter() ? d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Right') : d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Left'), d.sayToScene('Stage Logic', '_customEvent_rumble')); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(105)); d.runLater( 300, function (a) { b._StunnedBounce = !1; }, this.actor ); d.runLater( 1e3, function (a) { b._FaceLeft = !1; b._Stunned = !1; }, this.actor ); } else if (a.thisFromRight && !this._StunnedBounce) { d.startShakingScreen(0.01, 0.1); this._Stunned = this._StunnedBounce = !0; this._GoRight = !1; this.actor.setAnimation('Stunned'); this._Dead ? (this.actor.setXVelocity(-40), this.actor.setYVelocity(-70), d.runLater( 100, function (a) { b.actor.setAnimation('Dead Stunned'); }, this.actor )) : (this._StunnedBounce ? this.actor.setXVelocity(-20) : this.actor.setXVelocity(-10), this.actor.setYVelocity(-40)); d.createRecycledActor( d.getActorType(94), this.actor.getX() + (this.actor.getWidth() - 16), this.actor.getYCenter() - 8, 0 ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.createRecycledActor( d.getActorType(94), this.actor.getX() + (this.actor.getWidth() - 16), this.actor.getYCenter() - 8, 0 ); d.getLastCreatedActor().moveBy(-32, 0, 0.3, J.backOut); d.createRecycledActor( d.getActorType(94), this.actor.getX() + (this.actor.getWidth() - 16), this.actor.getYCenter() - 8, 0 ); d.getLastCreatedActor().moveBy(-32, 32, 0.3, J.backOut); a = 0; for (c = d.getActorsOfType(d.getActorType(2)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || (this.actor.getXCenter() > e.getXCenter() ? d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Right') : d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Left'), d.sayToScene('Stage Logic', '_customEvent_rumble')); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(105)); d.runLater( 300, function (a) { b._StunnedBounce = !1; }, this.actor ); d.runLater( 1e3, function (a) { b._FaceLeft = !0; b._Stunned = !1; }, this.actor ); } }, _event_EveryNsecs: function (a) { this.wrapper.enabled && (this._OnGround || --this._GroundAmnesty); }, _event_EveryNsecs2: function (a) { if (this.wrapper.enabled) if (this._GoLeft) { a = 0; for (var b = d.randomInt(1, 4); a < b; ) a++, d.createRecycledActor( d.getActorType(94), this.actor.getXCenter() + d.randomInt(-24, 24), this.actor.getY() + d.randomInt(14, 48), 0 ), d.getLastCreatedActor().setAnimation('Ice Cream'); } else if (this._GoRight) for (a = 0, b = d.randomInt(1, 4); a < b; ) a++, d.createRecycledActor( d.getActorType(94), this.actor.getXCenter() + d.randomInt(-24, 24), this.actor.getY() + d.randomInt(14, 48), 0 ), d.getLastCreatedActor().setAnimation('Ice Cream'); }, _event_HitsHazard: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorGroup(4); var e = a.otherActor.getType(), f = a.otherActor.getGroup(); c = c == e || c == f; } else c = !1; if (c && 0 < this._Health && !this._Hurt) { this._Hurt = !0; d.runLater( 2e3, function (a) { b._Hurt = !1; }, this.actor ); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(378)); c = 0; for (e = d.getActorsOfType(d.getActorType(2)); c < e.length; ) (f = e[c]), ++c, null == f || f.dead || f.recycled || (this.actor.getXCenter() > f.getXCenter() ? d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Right') : d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Left'), d.sayToScene('Stage Logic', '_customEvent_rumble')); this.actor.setFilter([d.createBrightnessFilter(100)]); d.runLater( 200, function (a) { b.actor.clearFilters(); }, this.actor ); --this._Health; if (0 == this._Health) for ( this._Dead = !0, this.actor.setAnimation('Dead Spin'), d.stopSoundOnChannel(16), c = 0, e = d.getActorsOfType(d.getActorType(353)); c < e.length; ) (f = e[c]), ++c, null == f || f.dead || f.recycled || (f.moveBy(0, 32, 0.3, J.quadInOut), f.setValue('Button Logic', '_Hide', !0)); else if ( (d.startShakingScreen(0.02, 0.1), this.actor.getXCenter() > a.otherActor.getXCenter() && !this._StunnedBounce) ) { this._Stunned = this._StunnedBounce = !0; this._GoLeft = !1; this.actor.setAnimation('Hurt'); this._Dead ? (this.actor.setXVelocity(40), this.actor.setYVelocity(-70)) : (this.actor.setXVelocity(20), this.actor.setYVelocity(-40)); a.otherActor.say('Boss Spikes Logic', '_customEvent_return'); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(105)); c = 0; for (e = d.getActorsOfType(d.getActorType(2)); c < e.length; ) (f = e[c]), ++c, null == f || f.dead || f.recycled || (this.actor.getXCenter() > f.getXCenter() ? d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Right') : d.setValueForScene('Stage Logic', '_RumbleName', 'Big Thud Left'), d.sayToScene('Stage Logic', '_customEvent_rumble')); d.runLater( 300, function (a) { b._StunnedBounce = !1; }, this.actor ); d.runLater( 1e3, function (a) { b._FaceLeft = !1; b._Stunned = !1; }, this.actor ); } else this.actor.getXCenter() < a.otherActor.getXCenter() && !this._StunnedBounce && ((this._Stunned = this._StunnedBounce = !0), (this._GoRight = !1), this.actor.setAnimation('Hurt'), this._Dead ? (this.actor.setXVelocity(-40), this.actor.setYVelocity(-70)) : (this.actor.setXVelocity(-20), this.actor.setYVelocity(-40)), a.otherActor.say('Boss Spikes Logic', '_customEvent_return'), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(105)), d.runLater( 300, function (a) { b._StunnedBounce = !1; }, this.actor ), d.runLater( 1e3, function (a) { b._FaceLeft = !0; b._Stunned = !1; }, this.actor )); } }, _event_GroundandGravity: function (a) { this.wrapper.enabled && (this._GroundCheck ? this._OnGround || ((this._OnGround = !0), this.actor.setYVelocity(0), this._CanMakeNoise ? k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(117)) : (this._CanMakeNoise = !0)) : this._OnGround && 0 == this._GroundAmnesty && (this._OnGround = !1), (this._GroundCheck = !1), this._Stunned && this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)), this._Stunned || this._Hurt || this._Dead || (this.actor.getY() < this._StartingY && this.actor.setY(this._StartingY))); }, _event_Movement: function (a) { var b = this; if (this.wrapper.enabled) { a = this._Dude; if ( !d.isPrimitive(a) && ('string' == typeof a ? '' == x.__cast(a, String) : null == a) ) { a = 0; for (var c = d.getActorsOfType(d.getActorType(2)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || (this._Dude = e); } } !this._Go || !this._OnGround || this._GoLeft || this._GoRight || this._Charging || this._Stunned || ((this._Charging = !0), this._FaceLeft ? this.actor.setAnimation('Left Charge') : this.actor.setAnimation('Right Charge'), d.runLater( 1e3, function (a) { b._FaceLeft ? ((b._GoLeft = !0), (b._Charging = !1), b.actor.setAnimation('Left'), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(118)), b.actor.setXVelocity(-50)) : ((b._GoRight = !0), (b._Charging = !1), b.actor.setAnimation('Right'), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(118)), b.actor.setXVelocity(50)); }, this.actor )); a = this._Dude; (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._ReadyToTalk && this._Dude.getXCenter() > this.actor.getX() - 256 && this._Dude.getY() > this.actor.getY() && (k.engine.getGameAttribute('Boss 5 Dialog Read') ? ((this._ReadyToTalk = !1), this.actor.shout('_customEvent_dialogComplete')) : ((a = this._Dude), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Dude.getValue('Dude Logic', '_OnGround') && ((this._ReadyToTalk = !1), this._DialogComplete || ((this._DialogComplete = !0), d.stopSoundOnChannel(16), d.createRecycledActor(d.getActorType(161), 0, d.getScreenHeight() - 96, 0), 'JP' == k.engine.getGameAttribute('Language') ? k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '*\u30ae\u30e3\u30fc*|\u3042\u3042\u3001\u306a\u3093\u3066\u3053\u3063\u305f\u3002' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '\u3053\u3093\u306b\u3061\u306f\u3001\u79c1\u306f\u30c0\u30c7\u30a3\u30c3\u30b7\u30e5\u3067\u3059\uff01|\u3053\u3093\u306b\u3061\u306f\u3001\u79c1\u306f\u30a2\u30a4\u30b9\u30af\u30ea\u30fc\u30e0\u3067\u3059\uff01|\u306f\u3058\u3081\u307e\u3057\u3066\uff01|\u79c1\u306f\u30e8\u30fc\u30b0\u30eb\u30c8\u3092\u51cd\u3089\u305b\u3066\u3044\u307e\u305b\u3093\uff01|\u79c1\u306f...\u3042\u306a\u305f\u304c\u305d\u3046\u3067\u3042\u308b\u3068\u306f\u8a00\u3044\u307e\u305b\u3093\u3067\u3057\u305f||\u79c1\u306f\u30e8\u30fc\u30b0\u30eb\u30c8\u3067\u306f\u3042\u308a\u307e\u305b\u3093 \uff01 \u5acc\u3044\u3067\u3059\uff01|\u5927\u4e08\u592b\u3067\u3059\u304b\uff1f|\u6bba\u3057\u307e\u3059\uff01' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')) : 'CN' == k.engine.getGameAttribute('Language') ? k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '*SCREECH*|\u54e6\u5929\u54ea\u3002' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '\u55e8\uff0c\u6211\u662fDadish\uff01|\u55e8\uff0c\u6211\u662f\u51b0\u6dc7\u6dcb\uff01|\u5f88\u9ad8\u5174\u8ba4\u8bc6\u4f60\uff01|\u6211\u4e0d\u662f\u51b7\u51bb\u9178\u5976\uff01|\u6211...\u6211\u4e0d\u662f\u8bf4\u4f60\u662f\u5417\uff1f|\u6211\u4e0d\u662f\u9178\u5976 \uff01 \u6211\u8ba8\u538c\u5b83\uff01|\u4f60\u8fd8\u597d\u5417\uff1f|\u6211\u4f1a\u6740\u4e86\u4f60\uff01' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')) : 'KR' == k.engine.getGameAttribute('Language') ? k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '*\uaf64\uc561*|\uc5b4 \uc774\ub7f0.' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', '\uc548\ub155\ud558\uc138\uc694, \uc800\ub294 \uc544\ube60\uc785\ub2c8\ub2e4! | \uc548\ub155\ud558\uc138\uc694, \uc800\ub294 \uc544\uc774\uc2a4\ud06c\ub9bc\uc785\ub2c8\ub2e4! | \ub9cc\ub098\uc11c \ubc18\uac00\uc6cc\uc694! | \ub09c \uc5bc\uc5b4 \ubd99\uc740 \uba4d\uccad\uc774\uac00 \uc544\ub2c8\uc5d0\uc694! | \ub09c ... \ub09c \ub2f9\uc2e0\uc774 \uadf8\ub7ac\ub2e4\uace0 \ub9d0 \uc548\ud588\uc5b4? | \ub09c \uba4d\uccad\uc774\uac00 \uc544\ub2c8\uc57c ! \uc2eb\uc5b4! | \uad1c\ucc2e\uc544? | \ub0b4\uac00 \uc8fd\uc5ec \ubc84\ub9b4\uac70\uc57c!' ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')) : k.engine.getGameAttribute('Possum Mode') ? (d .getLastCreatedActor() .setValue('Dialog Box Logic', '_DialogText', '*SCREECH*|Oh my gosh'), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Baby6')) : (d .getLastCreatedActor() .setValue( 'Dialog Box Logic', '_DialogText', "Hi, I'm Dadish!|Hi, I'm The Icecream!|Nice to meet you!|I'M NOT FROZEN YOGURT!|I... I didn't say that you were?|I'M NOT YOGURT! I HATE IT!|Are you OK?|I'LL KILL YOU!" ), d .getLastCreatedActor() .setValue('Dialog Box Logic', '_Character1', 'Dadish')), d.getLastCreatedActor().setValue('Dialog Box Logic', '_Character2', 'Boss 5'), d.getLastCreatedActor().setValue('Dialog Box Logic', '_Parent', this.actor), d.getLastCreatedActor().say('Dialog Box Logic', '_customEvent_Go'))))); this._Dead && 0 < this.actor.getYVelocity() && this.actor.getY() >= this._StartingY && (d.createRecycledActorOnLayer( d.getActorType(698), this.actor.getX(), this._StartingY, d.engine.getLayerById(this.actor.getLayerID()) ), d.recycleActor(this.actor)); } }, _event_EntersScreen: function (a, b, c, e) { var f = this; this.wrapper.enabled && a && ((a = this._Dude), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Dude.getY() >= this.actor.getX() - 32 && !this._HasEntered && !this._Go && ((this._HasEntered = !0), d.runLater( 700, function (a) { f._ReadyToTalk = !0; }, this.actor ))); }, _event_HitsBlock: function (a) { if (this.wrapper.enabled) { var b = d.getActorType(40); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && a.thisFromBottom && (this._GroundCheck = !0); }, _customEvent_dialogComplete: function () { var a = this; d.runLater( 200, function (b) { a._Go = !0; k.engine.gameAttributes.h['Boss 5 Dialog Read'] = !0; d.loopSoundOnChannel(d.getSound(377), 16); k.engine.getGameAttribute('Music Disabled') ? d.setVolumeForChannel(0, 16) : k.engine.getGameAttribute('Music Disabled') || d.setVolumeForChannel(1, 16); }, this.actor ); }, init: function () { this.actor.makeAlwaysSimulate(); this._GravitySpeed = 48; this._GroundCheck = this._OnGround = !0; this._StartingY = this.actor.getY(); this._FaceLeft = !0; this.addListener(this.actor.whenCollided, q(this, this._event_HitsGround)); d.runPeriodically(10, q(this, this._event_EveryNsecs), this.actor); d.runPeriodically(50, q(this, this._event_EveryNsecs2), this.actor); this.addListener(this.actor.whenCollided, q(this, this._event_HitsHazard)); this.addListener(this.actor.whenUpdated, q(this, this._event_GroundandGravity)); this.addListener(this.actor.whenUpdated, q(this, this._event_Movement)); this.addListener(this.actor.whenPositionStateChanged, q(this, this._event_EntersScreen)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsBlock)); }, forwardMessage: function (a) {}, __class__: Ku }); var Lu = function (a, b) { d.call(this); this.nameMap.h['INITIAL SCREEN WIDTH'] = '_INITIALSCREENWIDTH'; this._INITIALSCREENWIDTH = 0; this.nameMap.h['INITIAL SCREEN HEIGHT'] = '_INITIALSCREENHEIGHT'; this._INITIALSCREENHEIGHT = 0; this.nameMap.h['CURRENT RES X'] = '_CURRENTRESX'; this._CURRENTRESX = 0; this.nameMap.h['CURRENT RES Y'] = '_CURRENTRESY'; this._CURRENTRESY = 0; this.nameMap.h.Fucko = '_Fucko'; this._Fucko = ''; this.nameMap.h.DELETEME = '_DELETEME'; this._DELETEME = 'FART'; this.nameMap.h['Button Input'] = '_ButtonInput'; this._ButtonInput = ''; this.nameMap.h['Can Start'] = '_CanStart'; this._CanStart = !1; this.nameMap.h['Has Entered'] = '_HasEntered'; this._HasEntered = !1; this.nameMap.h['Entrance Tween'] = '_EntranceTween'; this._EntranceTween = !1; this.nameMap.h['First Touch'] = '_FirstTouch'; this._FirstTouch = !1; this.nameMap.h['Left Touch Is Down'] = '_LeftTouchIsDown'; this._LeftTouchIsDown = !1; this.nameMap.h['Right Touch Is Down'] = '_RightTouchIsDown'; this._RightTouchIsDown = !1; this.nameMap.h['Jump Speed'] = '_JumpSpeed'; this._JumpSpeed = 0; this.nameMap.h['Jump Amnesty'] = '_JumpAmnesty'; this._JumpAmnesty = 0; this.nameMap.h['Jump Hang'] = '_JumpHang'; this._JumpHang = 0; this.nameMap.h.Jumping = '_Jumping'; this._Jumping = !1; this.nameMap.h['On Platform'] = '_OnPlatform'; this._OnPlatform = !1; this.nameMap.h['Jump Touch Timer'] = '_JumpTouchTimer'; this._JumpTouchTimer = 0; this.nameMap.h['On Ground'] = '_OnGround'; this._OnGround = !1; this.nameMap.h['Can Double Jump'] = '_CanDoubleJump'; this._CanDoubleJump = !1; this.nameMap.h['Sensor On Ground'] = '_SensorOnGround'; this._SensorOnGround = !1; this.nameMap.h.Dead = '_Dead'; this._Dead = !1; this.nameMap.h.Exiting = '_Exiting'; this._Exiting = !1; this.nameMap.h.Springing = '_Springing'; this._Springing = !1; this.nameMap.h['TARGET RES X'] = '_TARGETRESX'; this._TARGETRESX = 0; this.nameMap.h['TARGET RES Y'] = '_TARGETRESY'; this._TARGETRESY = 0; this.nameMap.h['Has Started'] = '_HasStarted'; this._HasStarted = !1; }; h['scripts.Design_408_408_NSwitchSizeAdjust'] = Lu; Lu.__name__ = 'scripts.Design_408_408_NSwitchSizeAdjust'; Lu.__super__ = sa; Lu.prototype = r(sa.prototype, { _INITIALSCREENWIDTH: null, _INITIALSCREENHEIGHT: null, _CURRENTRESX: null, _CURRENTRESY: null, _Fucko: null, _DELETEME: null, _ButtonInput: null, _CanStart: null, _HasEntered: null, _EntranceTween: null, _FirstTouch: null, _LeftTouchIsDown: null, _RightTouchIsDown: null, _JumpSpeed: null, _JumpAmnesty: null, _JumpHang: null, _Jumping: null, _OnPlatform: null, _JumpTouchTimer: null, _OnGround: null, _CanDoubleJump: null, _SensorOnGround: null, _Dead: null, _Exiting: null, _Springing: null, _TARGETRESX: null, _TARGETRESY: null, _HasStarted: null, _event_ControlStarted: function (a) { if ( this.wrapper.enabled && ((this._ButtonInput = a), (k.engine.gameAttributes.h['CONTROLLER TIME'] = !0), '13' == this._ButtonInput ? (this._ButtonInput = 'left hat') : '14' == this._ButtonInput && (this._ButtonInput = 'right hat'), !this._Dead && !this._Exiting) ) if ('left hat' == this._ButtonInput || '-axis 0' == this._ButtonInput) (k.engine.gameAttributes.h['Left Button Down'] = !0), (k.engine.gameAttributes.h['Right Button Down'] = !1); else if ('right hat' == this._ButtonInput || '+axis 0' == this._ButtonInput) (k.engine.gameAttributes.h['Right Button Down'] = !0), (k.engine.gameAttributes.h['Left Button Down'] = !1); }, _event_AnyKey: function (a) { this.wrapper.enabled && (k.engine.gameAttributes.h['CONTROLLER TIME'] = !1); }, _event_ControlReleased: function (a) { if (this.wrapper.enabled) { this._ButtonInput = a; '13' == this._ButtonInput ? (this._ButtonInput = 'left hat') : '14' == this._ButtonInput && (this._ButtonInput = 'right hat'); if ('left hat' == this._ButtonInput || '-axis 0' == this._ButtonInput) k.engine.gameAttributes.h['Left Button Down'] = !1; if ('right hat' == this._ButtonInput || '+axis 0' == this._ButtonInput) k.engine.gameAttributes.h['Right Button Down'] = !1; } }, _event_KeyboardPressedCopy: function (a) { this.wrapper.enabled && !k.engine.getGameAttribute('CONTROLLER TIME') && (this._Dead || this._Exiting || !d.isKeyDown('right') ? (k.engine.gameAttributes.h['Right Button Down'] = !1) : ((k.engine.gameAttributes.h['Right Button Down'] = !0), (k.engine.gameAttributes.h['Left Button Down'] = !1)), this._Dead || this._Exiting || !d.isKeyDown('left') ? (k.engine.gameAttributes.h['Left Button Down'] = !1) : ((k.engine.gameAttributes.h['Left Button Down'] = !0), (k.engine.gameAttributes.h['Right Button Down'] = !1))); }, init: function () { this.addListener(d.engine.whenAnyGamepadPressed, q(this, this._event_ControlStarted)); this.addListener(d.engine.whenAnyKeyPressed, q(this, this._event_AnyKey)); this.addListener(d.engine.whenAnyGamepadReleased, q(this, this._event_ControlReleased)); this.addListener(d.engine.whenUpdated, q(this, this._event_KeyboardPressedCopy)); }, forwardMessage: function (a) {}, __class__: Lu }); var Mu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Hide Text'] = '_HideText'; this._HideText = !1; this.nameMap.h['At Start Pos'] = '_AtStartPos'; this._AtStartPos = !1; this.nameMap.h['Current Node'] = '_CurrentNode'; this.nameMap.h['On Level Node'] = '_OnLevelNode'; this._OnLevelNode = !1; this.nameMap.h['Moving Backward'] = '_MovingBackward'; this._MovingBackward = !1; this.nameMap.h['Moving Forward'] = '_MovingForward'; this._MovingForward = !1; this.nameMap.h['Start X'] = '_StartX'; this._StartX = 0; this.nameMap.h['Start Y'] = '_StartY'; this._StartY = 0; this.nameMap.h.Speed = '_Speed'; this._Speed = 0; this.nameMap.h['Completed Badge'] = '_CompletedBadge'; this.nameMap.h['Star Badge'] = '_StarBadge'; this.nameMap.h.Sprite = '_Sprite'; this.nameMap.h['Can Enter'] = '_CanEnter'; this._CanEnter = !1; this.nameMap.h['Can Move'] = '_CanMove'; this._CanMove = !1; this.nameMap.h['Total Time In Hundreths'] = '_TotalTimeInHundreths'; this._TotalTimeInHundreths = 0; this.nameMap.h.Hours = '_Hours'; this._Hours = 0; this.nameMap.h.Minutes = '_Minutes'; this._Minutes = 0; this.nameMap.h.Seconds = '_Seconds'; this._Seconds = 0; this.nameMap.h.Hundreths = '_Hundreths'; this._Hundreths = 0; this.nameMap.h['Hours String'] = '_HoursString'; this._HoursString = ''; this.nameMap.h['Minutes String'] = '_MinutesString'; this._MinutesString = ''; this.nameMap.h['Seconds String'] = '_SecondsString'; this._SecondsString = ''; this.nameMap.h['Hundreths String'] = '_HundrethsString'; this._HundrethsString = ''; this.nameMap.h['Total Time String'] = '_TotalTimeString'; this._TotalTimeString = ''; this.nameMap.h['Level Number'] = '_LevelNumber'; this._LevelNumber = 0; this.nameMap.h['Level Text'] = '_LevelText'; this._LevelText = ''; this.nameMap.h['Timer Position'] = '_TimerPosition'; this._TimerPosition = 0; this.nameMap.h.Time = '_Time'; this._Time = ''; this.nameMap.h['Time Width'] = '_TimeWidth'; this._TimeWidth = 0; this.nameMap.h['On Node'] = '_OnNode'; this._OnNode = !1; this.nameMap.h['Got Node'] = '_GotNode'; this._GotNode = !1; this.nameMap.h.Direction = '_Direction'; this._Direction = ''; this.nameMap.h['Node Distance'] = '_NodeDistance'; this._NodeDistance = 0; this.nameMap.h['Current Node Number'] = '_CurrentNodeNumber'; this._CurrentNodeNumber = 0; this.nameMap.h['Button Input'] = '_ButtonInput'; this._ButtonInput = ''; this.nameMap.h['Button Pressed'] = '_ButtonPressed'; this._ButtonPressed = !1; this.nameMap.h['Can Go Forwards'] = '_CanGoForwards'; this._CanGoForwards = !1; this.nameMap.h['Can Go Backwards'] = '_CanGoBackwards'; this._CanGoBackwards = !1; this.nameMap.h['Forward Direction'] = '_ForwardDirection'; this._ForwardDirection = ''; this.nameMap.h['Back Direction'] = '_BackDirection'; this._BackDirection = ''; }; h['scripts.Design_437_437_OverworldDadishLogic'] = Mu; Mu.__name__ = 'scripts.Design_437_437_OverworldDadishLogic'; Mu.__super__ = u; Mu.prototype = r(u.prototype, { _HideText: null, _AtStartPos: null, _CurrentNode: null, _OnLevelNode: null, _MovingBackward: null, _MovingForward: null, _StartX: null, _StartY: null, _Speed: null, _CompletedBadge: null, _StarBadge: null, _Sprite: null, _CanEnter: null, _CanMove: null, _TotalTimeInHundreths: null, _Hours: null, _Minutes: null, _Seconds: null, _Hundreths: null, _HoursString: null, _MinutesString: null, _SecondsString: null, _HundrethsString: null, _TotalTimeString: null, _LevelNumber: null, _LevelText: null, _TimerPosition: null, _Time: null, _TimeWidth: null, _OnNode: null, _GotNode: null, _Direction: null, _NodeDistance: null, _CurrentNodeNumber: null, _ButtonInput: null, _ButtonPressed: null, _CanGoForwards: null, _CanGoBackwards: null, _ForwardDirection: null, _BackDirection: null, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) if ( ((b = this._CurrentNode), (d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && this._OnLevelNode && this._OnNode) ) { b = d.getFont(526); null != b && b != a.font && (a.font = b); a.drawActor = !1; a.actor = null; a.x = 0; a.y = 0; d.setDrawingLayerToSceneLayer(); b = this._CurrentNode.getValue('Overworld Node Logic', '_Level'); this._LevelNumber = null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b)); if (!this._HideText) { c = this._LevelText = 10 == this._LevelNumber ? 'BURGURGULAR' : 20 == this._LevelNumber ? 'HOTDOG' : 30 == this._LevelNumber ? 'SHARON' : 40 == this._LevelNumber ? 'THE ICECREAM' : 50 == this._LevelNumber ? 'LORD DURNAK' : 'LEVEL ' + this._LevelNumber; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); if (a.drawActor) if (null != a.actor && a.actor.isHUD) { b = a.x + 30 * a.scaleX; var e = a.y + 18 * a.scaleY; } else (b = a.x + 30 * a.scaleX - k.cameraX), (e = a.y + 18 * a.scaleY - k.cameraY); else (b = a.x + 30 * a.scaleX), (e = a.y + 18 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, e); var f = null, g = a.font; g = c + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE; if (Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g)) (c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img); else { var h = a.font.font.getTextWidth(c, a.font.letterSpacing, a.font.fontScale), l = (a.font.font.getFontHeight() * a.font.fontScale) | 0; 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, c, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g)); } null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill()); b = d.getScreenWidth() - (30 + a.font.getTextWidth('- START') / k.SCALE); c = d.getScreenHeight() - 32; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + c * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, e); f = null; g = a.font; g = '-:' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE; Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth('-', a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, '-', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))); null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill()); b = d.getScreenWidth() - (30 + a.font.getTextWidth('- START') / k.SCALE) + a.font.getTextWidth('- ') / k.SCALE; c = d.getScreenHeight() - 26; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + c * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, e); f = null; g = a.font; g = 'START:' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE; Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth( 'START', a.font.letterSpacing, a.font.fontScale )), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, 'START', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))); null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill()); c = d.getScreenHeight() - 32; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + 30 * a.scaleX), (e = a.y + c * a.scaleY)) : ((b = a.x + 30 * a.scaleX - k.cameraX), (e = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + 30 * a.scaleX), (e = a.y + c * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, e); f = null; g = a.font; g = '=:' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE; Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth('=', a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, '=', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))); null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill()); b = 30 + a.font.getTextWidth('= ') / k.SCALE; c = d.getScreenHeight() - 26; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + c * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, e); f = null; g = a.font; g = 'BACK:' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE; Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth('BACK', a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, 'BACK', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))); null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill()); k.engine.getGameAttribute('Possum Mode Unlocked') && ((b = a.font.getTextWidth('= BACK') / k.SCALE + 60), (c = d.getScreenHeight() - 32), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + c * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, e), (f = null), (g = a.font), (g = '~:' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth('~', a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, '~', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))), null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill()), (b = a.font.getTextWidth('= BACK') / k.SCALE + 60 + a.font.getTextWidth('] ') / k.SCALE), (c = d.getScreenHeight() - 26), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + c * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, e), (f = null), (g = a.font), (g = 'POSSUM MODE:' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth( 'POSSUM MODE', a.font.letterSpacing, a.font.fontScale )), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, 'POSSUM MODE', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))), null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill())); 50 <= k.engine.getGameAttribute('Highest Level') && ((b = d.getScreenWidth() - (30 + (a.font.getTextWidth('- START') / k.SCALE + 30 + a.font.getTextWidth('TIMER') / k.SCALE))), (c = d.getScreenHeight() - 26), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + c * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, e), (f = null), (g = a.font), (g = 'TIMER:' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth( 'TIMER', a.font.letterSpacing, a.font.fontScale )), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, 'TIMER', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))), null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill()), (b = d.getScreenWidth() - (30 + (a.font.getTextWidth('- START') / k.SCALE + 30 + a.font.getTextWidth('` TIMER') / k.SCALE))), (c = d.getScreenHeight() - 32), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + c * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, e), (f = null), (g = a.font), (g = '`:' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth('`', a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, '`', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))), null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill())); } b = this._StarBadge; d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b) ? ((b = this._CompletedBadge), (b = d.isPrimitive(b) ? !0 : 'string' == typeof b ? '' != x.__cast(b, String) : null != b)) : (b = !1); b && (this._LevelNumber <= k.engine.getGameAttribute('Highest Level') && !this._HideText ? this._CompletedBadge.setX(38 + a.font.getTextWidth(this._LevelText) / k.SCALE) : this._CompletedBadge.setX(-200), X.contains(k.engine.getGameAttribute('No Stars List'), this._LevelNumber) || this._HideText ? this._StarBadge.setX(-200) : this._LevelNumber <= k.engine.getGameAttribute('Highest Level') ? this._StarBadge.setX(68 + a.font.getTextWidth(this._LevelText) / k.SCALE) : this._StarBadge.setX(38 + a.font.getTextWidth(this._LevelText) / k.SCALE), X.contains(k.engine.getGameAttribute('Stars List'), this._LevelNumber) ? this._StarBadge.setAnimation('Normal') : this._StarBadge.setAnimation('Empty'), (this._TimerPosition = Math.max( Math.max( this._CompletedBadge.getX() + this._CompletedBadge.getWidth() + 30, this._StarBadge.getX() + this._StarBadge.getWidth() + 30 ), 60 + a.font.getTextWidth(this._LevelText) / k.SCALE ))); k.engine.getGameAttribute('Timer Mode') && !this._HideText && ((this._Time = '' + B.string(k.engine.getGameAttribute('Best Times')[(this._LevelNumber - 1) | 0])), (this._TimeWidth = d .getFont(526) .getTextWidth('%' + (this._Time + (this._TotalTimeString + 'TOTAL:'))) / k.SCALE + 30), (b = this._TimerPosition), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + 10 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + 10 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + 10 * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, e), (f = null), (g = a.font), (g = '%:' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth('%', a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, '%', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))), null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill()), (c = this._Time), (b = this._TimerPosition + d.getFont(526).getTextWidth('%') / k.SCALE), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + 18 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + 18 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + 18 * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, e), (f = null), (g = a.font), (g = c + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth(c, a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, c, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))), null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill()), (c = 'TOTAL:' + this._TotalTimeString), (b = this._TimerPosition + d.getFont(526).getTextWidth('%' + this._Time) / k.SCALE + 30), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + 18 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + 18 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + 18 * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, e), (f = null), (g = a.font), (g = c + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth(c, a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, c, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))), null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill())); } else (b = this._StarBadge), d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b) ? ((b = this._CompletedBadge), (b = d.isPrimitive(b) ? !0 : 'string' == typeof b ? '' != x.__cast(b, String) : null != b)) : (b = !1), b && (this._CompletedBadge.setX(-200), this._StarBadge.setX(-200)); }, _event_EveryNsecs: function (a) { this.wrapper.enabled && this._OnNode && !this._OnLevelNode && (this._MovingForward ? this.actor.shout('_customEvent_Forward') : this._MovingBackward && this.actor.shout('_customEvent_Back')); }, _event_AnyButton: function (a) { var b = this; this.wrapper.enabled && ((this._ButtonInput = a), '13' == this._ButtonInput ? (this._ButtonInput = 'left hat') : '14' == this._ButtonInput ? (this._ButtonInput = 'right hat') : '11' == this._ButtonInput ? (this._ButtonInput = 'up hat') : '12' == this._ButtonInput && (this._ButtonInput = 'down hat'), !this._ButtonPressed && this._CanMove && this._OnLevelNode && ((a = this._CurrentNode), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._OnLevelNode && ('0' == this._ButtonInput ? ((this._ButtonPressed = !0), d.stopAllSounds(), (this._HideText = !0), d.setValueForScene('Switch Overworld', '_HideText', !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)), d.runLater( 200, function (a) { d.setValueForScene('Transitions', '_TransitionType', 0); d.sayToScene('Transitions', '_customEvent_transitionOut'); d.runLater( 1e3, function (a) { a = Fa.get().scenes; var c = d.getIDForScene('Level ' + b._LevelNumber); a = a.h[c].getID(); var e = (c = 0), k = 0; null == k && (k = 0); null == e && (e = 0); null == c && (c = 0); var l = d.createFadeOut(0.1, (c << 16) | (e << 8) | k); k = e = c = 0; null == k && (k = 0); null == e && (e = 0); null == c && (c = 0); d.switchScene(a, l, d.createFadeIn(0.1, (c << 16) | (e << 8) | k)); }, b.actor ); }, this.actor )) : '1' == this._ButtonInput ? ((this._ButtonPressed = !0), d.stopAllSounds(), (this._HideText = !0), d.setValueForScene('Switch Overworld', '_HideText', !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)), d.runLater( 200, function (a) { d.setValueForScene('Transitions', '_TransitionType', 1); d.sayToScene('Transitions', '_customEvent_transitionOut'); }, this.actor ), d.runLater( 1e3, function (a) { a = Fa.get().scenes.h[4].getID(); var b = 0, c = 0, g = 0; null == g && (g = 0); null == c && (c = 0); null == b && (b = 0); var k = d.createFadeOut(0.3, (b << 16) | (c << 8) | g); g = c = b = 0; null == g && (g = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, k, d.createFadeIn(0.3, (b << 16) | (c << 8) | g)); }, this.actor )) : k.engine.getGameAttribute('Possum Mode Unlocked') && '2' == this._ButtonInput ? ((this._ButtonPressed = !0), this._Sprite.setFilter([d.createBrightnessFilter(100)]), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(108)), d.startShakingScreen(0.01, 0.2), d.runLater( 200, function (a) { d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, 32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, 32, 0.3, J.backOut); d.recycleActor(b._Sprite); k.engine.getGameAttribute('Possum Mode') ? ((k.engine.gameAttributes.h['Possum Mode'] = !1), d.createRecycledActorOnLayer( d.getActorType(668), b.actor.getX(), b.actor.getY(), d.engine.getLayerById(b.actor.getLayerID()) )) : ((k.engine.gameAttributes.h['Possum Mode'] = !0), d.createRecycledActorOnLayer( d.getActorType(740), b.actor.getX(), b.actor.getY(), d.engine.getLayerById(b.actor.getLayerID()) )); b._Sprite = d.getLastCreatedActor(); d.runLater( 100, function (a) { b._ButtonPressed = !1; }, b.actor ); }, this.actor )) : 50 <= k.engine.getGameAttribute('Highest Level') && '3' == this._ButtonInput ? ((this._ButtonPressed = !0), k.engine.getGameAttribute('Timer Mode') ? (k.engine.gameAttributes.h['Timer Mode'] = !1) : k.engine.getGameAttribute('Timer Mode') || (k.engine.gameAttributes.h['Timer Mode'] = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)), d.saveGame('mySave', function (a) {}), d.runLater( 200, function (a) { b._ButtonPressed = !1; }, this.actor )) : (0 == this._CurrentNode.getValue('Overworld Node Logic', '_Last') ? ((a = this._CurrentNode.getValue('Overworld Node Logic', '_Level')), (null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a))) < k.engine.getGameAttribute('Highest Level') + 1 ? ((a = this._CurrentNode.getValue('Overworld Node Logic', '_Level')), (a = 50 > (null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a))))) : (a = !1)) : (a = !1), (this._CanGoForwards = a ? !0 : !1), 0 == this._CurrentNode.getValue('Overworld Node Logic', '_First') ? ((a = this._CurrentNode.getValue('Overworld Node Logic', '_Level')), (a = 1 < (null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a))))) : (a = !1), (this._CanGoBackwards = a ? !0 : !1), !this._CanGoForwards || ('up hat' != this._ButtonInput && '-axis 1' != this._ButtonInput) || 'Up' != this._ForwardDirection ? !this._CanGoForwards || ('down hat' != this._ButtonInput && '+axis 1' != this._ButtonInput) || 'Down' != this._ForwardDirection ? !this._CanGoForwards || ('left hat' != this._ButtonInput && '-axis 0' != this._ButtonInput) || 'Left' != this._ForwardDirection ? !this._CanGoForwards || ('right hat' != this._ButtonInput && '+axis 0' != this._ButtonInput) || 'Right' != this._ForwardDirection ? !this._CanGoBackwards || ('up hat' != this._ButtonInput && '-axis 1' != this._ButtonInput) || 'Up' != this._BackDirection ? !this._CanGoBackwards || ('down hat' != this._ButtonInput && '+axis 1' != this._ButtonInput) || 'Down' != this._BackDirection ? !this._CanGoBackwards || ('left hat' != this._ButtonInput && '-axis 0' != this._ButtonInput) || 'Left' != this._BackDirection ? !this._CanGoBackwards || ('right hat' != this._ButtonInput && '+axis 0' != this._ButtonInput) || 'Right' != this._BackDirection || this.actor.shout('_customEvent_Back') : this.actor.shout('_customEvent_Back') : this.actor.shout('_customEvent_Back') : this.actor.shout('_customEvent_Back') : this.actor.shout('_customEvent_Forward') : this.actor.shout('_customEvent_Forward') : this.actor.shout('_customEvent_Forward') : this.actor.shout('_customEvent_Forward'))))); }, _event_AnyKey: function (a) { var b = this; this.wrapper.enabled && !this._ButtonPressed && this._CanMove && this._OnLevelNode && ((a = this._CurrentNode), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._OnLevelNode && (d.isKeyPressed('enter') ? ((this._ButtonPressed = !0), d.stopAllSounds(), (this._HideText = !0), d.setValueForScene('Switch Overworld', '_HideText', !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)), d.runLater( 200, function (a) { d.setValueForScene('Transitions', '_TransitionType', 0); d.sayToScene('Transitions', '_customEvent_transitionOut'); d.runLater( 1e3, function (a) { a = Fa.get().scenes; var c = d.getIDForScene('Level ' + b._LevelNumber); a = a.h[c].getID(); var e = (c = 0), k = 0; null == k && (k = 0); null == e && (e = 0); null == c && (c = 0); var l = d.createFadeOut(0.1, (c << 16) | (e << 8) | k); k = e = c = 0; null == k && (k = 0); null == e && (e = 0); null == c && (c = 0); d.switchScene(a, l, d.createFadeIn(0.1, (c << 16) | (e << 8) | k)); }, b.actor ); }, this.actor )) : d.isKeyPressed('Escape') ? ((this._ButtonPressed = !0), d.stopAllSounds(), (this._HideText = !0), d.setValueForScene('Switch Overworld', '_HideText', !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)), d.runLater( 200, function (a) { d.setValueForScene('Transitions', '_TransitionType', 1); d.sayToScene('Transitions', '_customEvent_transitionOut'); }, this.actor ), d.runLater( 1e3, function (a) { a = Fa.get().scenes.h[4].getID(); var b = 0, c = 0, g = 0; null == g && (g = 0); null == c && (c = 0); null == b && (b = 0); var k = d.createFadeOut(0.3, (b << 16) | (c << 8) | g); g = c = b = 0; null == g && (g = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, k, d.createFadeIn(0.3, (b << 16) | (c << 8) | g)); }, this.actor )) : k.engine.getGameAttribute('Possum Mode Unlocked') && d.isKeyPressed('P') ? ((this._ButtonPressed = !0), this._Sprite.setFilter([d.createBrightnessFilter(100)]), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(108)), d.startShakingScreen(0.01, 0.2), d.runLater( 200, function (a) { d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, 32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, 32, 0.3, J.backOut); d.recycleActor(b._Sprite); k.engine.getGameAttribute('Possum Mode') ? ((k.engine.gameAttributes.h['Possum Mode'] = !1), d.createRecycledActorOnLayer( d.getActorType(668), b.actor.getX(), b.actor.getY(), d.engine.getLayerById(b.actor.getLayerID()) )) : ((k.engine.gameAttributes.h['Possum Mode'] = !0), d.createRecycledActorOnLayer( d.getActorType(740), b.actor.getX(), b.actor.getY(), d.engine.getLayerById(b.actor.getLayerID()) )); b._Sprite = d.getLastCreatedActor(); d.runLater( 100, function (a) { b._ButtonPressed = !1; }, b.actor ); }, this.actor )) : 50 <= k.engine.getGameAttribute('Highest Level') && d.isKeyPressed('T') ? ((this._ButtonPressed = !0), k.engine.getGameAttribute('Timer Mode') ? (k.engine.gameAttributes.h['Timer Mode'] = !1) : k.engine.getGameAttribute('Timer Mode') || (k.engine.gameAttributes.h['Timer Mode'] = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)), d.saveGame('mySave', function (a) {}), d.runLater( 200, function (a) { b._ButtonPressed = !1; }, this.actor )) : (0 == this._CurrentNode.getValue('Overworld Node Logic', '_Last') ? ((a = this._CurrentNode.getValue('Overworld Node Logic', '_Level')), (null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a))) < k.engine.getGameAttribute('Highest Level') + 1 ? ((a = this._CurrentNode.getValue('Overworld Node Logic', '_Level')), (a = 50 > (null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a))))) : (a = !1)) : (a = !1), (this._CanGoForwards = a ? !0 : !1), 0 == this._CurrentNode.getValue('Overworld Node Logic', '_First') ? ((a = this._CurrentNode.getValue('Overworld Node Logic', '_Level')), (a = 1 < (null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a))))) : (a = !1), (this._CanGoBackwards = a ? !0 : !1), this._CanGoForwards && d.isKeyPressed('up') && 'Up' == this._ForwardDirection ? this.actor.shout('_customEvent_Forward') : this._CanGoForwards && d.isKeyPressed('down') && 'Down' == this._ForwardDirection ? this.actor.shout('_customEvent_Forward') : this._CanGoForwards && d.isKeyPressed('left') && 'Left' == this._ForwardDirection ? this.actor.shout('_customEvent_Forward') : this._CanGoForwards && d.isKeyPressed('right') && 'Right' == this._ForwardDirection ? this.actor.shout('_customEvent_Forward') : this._CanGoBackwards && d.isKeyPressed('up') && 'Up' == this._BackDirection ? this.actor.shout('_customEvent_Back') : this._CanGoBackwards && d.isKeyPressed('down') && 'Down' == this._BackDirection ? this.actor.shout('_customEvent_Back') : this._CanGoBackwards && d.isKeyPressed('left') && 'Left' == this._BackDirection ? this.actor.shout('_customEvent_Back') : this._CanGoBackwards && d.isKeyPressed('right') && 'Right' == this._BackDirection && this.actor.shout('_customEvent_Back')))); }, _event_Updating: function (a) { if ( this.wrapper.enabled && ((a = this._Sprite), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) ) if ( (this._Sprite.setX(this.actor.getX()), this._Sprite.setY(this.actor.getY() - 12), (a = this._CurrentNode), (!d.isPrimitive(a) && ('string' == typeof a ? '' == x.__cast(a, String) : null == a)) || this.actor.getX() != this._CurrentNode.getX() || this.actor.getY() != this._CurrentNode.getY()) ) this.actor.getX() == this._StartX && this.actor.getY() == this._StartY ? (this._OnNode = !0) : (this._OnNode = this._OnLevelNode = !1); else if ( ((this._OnNode = !0), (a = this._CurrentNode.getValue('Overworld Node Logic', '_NodeNumber')), (this._CurrentNodeNumber = null == a ? 0 : 'number' == typeof a ? x.__cast(a, Nb) : 'number' == typeof a && (a | 0) === a ? x.__cast(a, Ab) : 'boolean' == typeof a ? x.__cast(a, Ob) ? 1 : 0 : 'string' == typeof a ? parseFloat(a) : parseFloat(B.string(a))), this._CurrentNode.getType() == d.getActorType(644)) ) { this._GotNode = !1; a = 0; for (var b = x.__cast(d.getActorGroup(11), ze).list; a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || this._GotNode || c.getValue('Overworld Node Logic', '_NodeNumber') != this._CurrentNodeNumber + 1 || ((this._GotNode = !0), c.getX() == this.actor.getX() && c.getY() < this.actor.getY() ? (this._ForwardDirection = 'Up') : c.getX() == this.actor.getX() && c.getY() > this.actor.getY() ? (this._ForwardDirection = 'Down') : c.getY() == this.actor.getY() && c.getX() < this.actor.getX() ? (this._ForwardDirection = 'Left') : c.getY() == this.actor.getY() && c.getX() > this.actor.getX() && (this._ForwardDirection = 'Right')); } this._GotNode = !1; a = 0; for (b = x.__cast(d.getActorGroup(11), ze).list; a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || this._GotNode || c.getValue('Overworld Node Logic', '_NodeNumber') != this._CurrentNodeNumber - 1 || ((this._GotNode = !0), c.getX() == this.actor.getX() && c.getY() < this.actor.getY() ? (this._BackDirection = 'Up') : c.getX() == this.actor.getX() && c.getY() > this.actor.getY() ? (this._BackDirection = 'Down') : c.getY() == this.actor.getY() && c.getX() < this.actor.getX() ? (this._BackDirection = 'Left') : c.getY() == this.actor.getY() && c.getX() > this.actor.getX() && (this._BackDirection = 'Right')); this._OnLevelNode = !0; 'Down' != this._Sprite.getAnimation() && this._Sprite.setAnimation('Down'); } else this._CanEnter && 1 == this._CurrentNode.getValue('Overworld Node Logic', '_Last') && 'Castle Map' != d.getCurrentSceneName() ? k.engine.getGameAttribute('Map Enter Right') && this._AtStartPos ? ((this._OnLevelNode = this._AtStartPos = k.engine.gameAttributes.h['Map Enter Right'] = !1), this.actor.shout('_customEvent_Back')) : ((this._OnLevelNode = !1), (this._HideText = this._ButtonPressed = !0), (k.engine.gameAttributes.h['Wipe In Right'] = !0), d.setValueForScene('Switch Overworld', '_HideText', !0), d.sayToScene('Transitions', '_customEvent_wipeOutLeft'), (k.engine.gameAttributes.h['Map Enter Left'] = !0), d.runLater( 500, function (a) { if ('Forest Map' == d.getCurrentSceneName()) { a = Fa.get().scenes.h[69].getID(); var b = 0, c = 0, e = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); var k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e); e = c = b = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, k, d.createFadeIn(0.3, (b << 16) | (c << 8) | e)); } else 'Beach Map' == d.getCurrentSceneName() ? ((a = Fa.get().scenes.h[71].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.3, (b << 16) | (c << 8) | e))) : 'Snow Map' == d.getCurrentSceneName() ? ((a = Fa.get().scenes.h[72].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.3, (b << 16) | (c << 8) | e))) : 'Cave Map' == d.getCurrentSceneName() && ((a = Fa.get().scenes.h[73].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.3, (b << 16) | (c << 8) | e))); }, this.actor )) : this._CanEnter && !k.engine.getGameAttribute('Map Enter Left') && 1 == this._CurrentNode.getValue('Overworld Node Logic', '_First') ? this._AtStartPos ? ((this._OnLevelNode = this._AtStartPos = !1), this.actor.shout('_customEvent_Forward')) : 'Forest Map' != d.getCurrentSceneName() && ((this._OnLevelNode = !1), (this._HideText = this._ButtonPressed = !0), (k.engine.gameAttributes.h['Wipe In Left'] = !0), d.setValueForScene('Switch Overworld', '_HideText', !0), d.sayToScene('Transitions', '_customEvent_wipeOutRight'), (k.engine.gameAttributes.h['Map Enter Right'] = !0), d.runLater( 500, function (a) { if ('Beach Map' == d.getCurrentSceneName()) { a = Fa.get().scenes.h[62].getID(); var b = 0, c = 0, e = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); var k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e); e = c = b = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, k, d.createFadeIn(0.3, (b << 16) | (c << 8) | e)); } else 'Snow Map' == d.getCurrentSceneName() ? ((a = Fa.get().scenes.h[69].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.3, (b << 16) | (c << 8) | e))) : 'Cave Map' == d.getCurrentSceneName() ? ((a = Fa.get().scenes.h[71].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.3, (b << 16) | (c << 8) | e))) : 'Castle Map' == d.getCurrentSceneName() && ((a = Fa.get().scenes.h[72].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (k = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, k, d.createFadeIn(0.3, (b << 16) | (c << 8) | e))); }, this.actor )) : (this._OnLevelNode = !1); }, _customEvent_Forward: function () { this._GotNode = !1; this._MovingForward = !0; this._MovingBackward = !1; for (var a = 0, b = x.__cast(d.getActorGroup(11), ze).list; a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || this._GotNode || c.getValue('Overworld Node Logic', '_NodeNumber') != this._CurrentNodeNumber + 1 || ((this._GotNode = !0), (this._CurrentNode = c), this._CurrentNode.getX() == this.actor.getX() && this._CurrentNode.getY() < this.actor.getY() ? (this._Direction = 'Up') : this._CurrentNode.getX() == this.actor.getX() && this._CurrentNode.getY() > this.actor.getY() ? (this._Direction = 'Down') : this._CurrentNode.getY() == this.actor.getY() && this._CurrentNode.getX() < this.actor.getX() ? (this._Direction = 'Left') : this._CurrentNode.getY() == this.actor.getY() && this._CurrentNode.getX() > this.actor.getX() && (this._Direction = 'Right'), 'Up' == this._Direction ? ((this._NodeDistance = (this.actor.getY() - this._CurrentNode.getY()) / 32), 'Up' != this._Sprite.getAnimation() && this._Sprite.setAnimation('Up')) : 'Down' == this._Direction ? ((this._NodeDistance = (this._CurrentNode.getY() - this.actor.getY()) / 32), 'Down' != this._Sprite.getAnimation() && this._Sprite.setAnimation('Down')) : 'Left' == this._Direction ? ((this._NodeDistance = (this.actor.getX() - this._CurrentNode.getX()) / 32), 'Left' != this._Sprite.getAnimation() && this._Sprite.setAnimation('Left')) : 'Right' == this._Direction && ((this._NodeDistance = (this._CurrentNode.getX() - this.actor.getX()) / 32), 'Right' != this._Sprite.getAnimation() && this._Sprite.setAnimation('Right')), this.actor.moveTo( this._CurrentNode.getX(), this._CurrentNode.getY(), this._Speed * this._NodeDistance, J.linear )); } }, _customEvent_Back: function () { this._MovingForward = this._GotNode = !1; this._MovingBackward = !0; for (var a = 0, b = x.__cast(d.getActorGroup(11), ze).list; a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || this._GotNode || c.getValue('Overworld Node Logic', '_NodeNumber') != this._CurrentNodeNumber - 1 || ((this._GotNode = !0), (this._CurrentNode = c), this._CurrentNode.getX() == this.actor.getX() && this._CurrentNode.getY() < this.actor.getY() ? (this._Direction = 'Down') : this._CurrentNode.getX() == this.actor.getX() && this._CurrentNode.getY() > this.actor.getY() ? (this._Direction = 'Up') : this._CurrentNode.getY() == this.actor.getY() && this._CurrentNode.getX() < this.actor.getX() ? (this._Direction = 'Right') : this._CurrentNode.getY() == this.actor.getY() && this._CurrentNode.getX() > this.actor.getX() && (this._Direction = 'Left'), 'Up' == this._Direction ? ((this._NodeDistance = (this._CurrentNode.getY() - this.actor.getY()) / 32), 'Down' != this._Sprite.getAnimation() && this._Sprite.setAnimation('Down')) : 'Down' == this._Direction ? ((this._NodeDistance = (this.actor.getY() - this._CurrentNode.getY()) / 32), 'Up' != this._Sprite.getAnimation() && this._Sprite.setAnimation('Up')) : 'Left' == this._Direction ? ((this._NodeDistance = (this._CurrentNode.getX() - this.actor.getX()) / 32), 'Right' != this._Sprite.getAnimation() && this._Sprite.setAnimation('Right')) : 'Right' == this._Direction && ((this._NodeDistance = (this.actor.getX() - this._CurrentNode.getX()) / 32), 'Left' != this._Sprite.getAnimation() && this._Sprite.setAnimation('Left')), this.actor.moveTo( this._CurrentNode.getX(), this._CurrentNode.getY(), this._Speed * this._NodeDistance, J.linear )); } }, init: function () { var a = this; this._HideText = !0; d.setValueForScene('Switch Overworld', '_HideText', !0); d.runLater( 1200, function (b) { a._HideText = !1; d.setValueForScene('Switch Overworld', '_HideText', !1); }, this.actor ); this.actor.makeAlwaysSimulate(); if (k.engine.getGameAttribute('Map Enter Right')) { this._AtStartPos = !0; for (var b = 0, c = d.getActorsOfType(d.getActorType(642)); b < c.length; ) { var e = c[b]; ++b; null == e || e.dead || e.recycled || 1 != e.getValue('Overworld Node Logic', '_Last') || (this.actor.setX(e.getX()), this.actor.setY(e.getY()), (this._CurrentNode = e)); } } else if (k.engine.getGameAttribute('Map Enter Left')) for ( this._AtStartPos = !0, k.engine.gameAttributes.h['Map Enter Left'] = !1, b = 0, c = x.__cast(d.getActorGroup(11), ze).list; b < c.length; ) { var f = c[b]; ++b; null == f || f.dead || f.recycled || f.getX() != this.actor.getX() || f.getY() != this.actor.getY() || (this._CurrentNode = f); } else if (0 != k.engine.getGameAttribute('Last Stage Played')) for ( this._AtStartPos = !1, b = 0, c = d.getActorsOfType(d.getActorType(644)); b < c.length; ) { if (((e = c[b]), ++b, null != e && !e.dead && !e.recycled)) { f = Math.round(k.engine.getGameAttribute('Last Stage Played')); var g = e.getValue('Overworld Node Logic', '_Level'); f == Math.round( null == g ? 0 : 'number' == typeof g ? x.__cast(g, Nb) : 'number' == typeof g && (g | 0) === g ? x.__cast(g, Ab) : 'boolean' == typeof g ? x.__cast(g, Ob) ? 1 : 0 : 'string' == typeof g ? parseFloat(g) : parseFloat(B.string(g)) ) && (this.actor.setX(e.getX()), this.actor.setY(e.getY()), (this._CurrentNode = e), (this._OnLevelNode = !0), (this._MovingForward = this._MovingBackward = !1)); } } else for (b = 0, c = x.__cast(d.getActorGroup(11), ze).list; b < c.length; ) (f = c[b]), ++b, null == f || f.dead || f.recycled || f.getX() != this.actor.getX() || f.getY() != this.actor.getY() || (this._CurrentNode = f); this._StartX = this.actor.getX(); this._StartY = this.actor.getY(); this._Speed = 0.1; this.actor.moveToTop(); d.createRecycledActor( d.getActorType(662), this.actor.getXCenter(), this.actor.getYCenter(), 0 ); d.createRecycledActor(d.getActorType(666), -200, 12, 0); this._CompletedBadge = d.getLastCreatedActor(); this._CompletedBadge.makeAlwaysSimulate(); this._CompletedBadge.anchorToScreen(); d.createRecycledActor(d.getActorType(664), -200, 10, 0); this._StarBadge = d.getLastCreatedActor(); this._StarBadge.makeAlwaysSimulate(); this._StarBadge.anchorToScreen(); k.engine.getGameAttribute('Possum Mode') ? d.createRecycledActorOnLayer( d.getActorType(740), this.actor.getX(), this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ) : d.createRecycledActorOnLayer( d.getActorType(668), this.actor.getX(), this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ); this._Sprite = d.getLastCreatedActor(); this._Sprite.makeAlwaysSimulate(); d.runLater( 400, function (b) { a._CanEnter = !0; }, this.actor ); d.runLater( 900, function (b) { a._CanMove = !0; }, this.actor ); b = this._TotalTimeInHundreths = 0; for (c = x.__cast(k.engine.getGameAttribute('Best Times'), Array); b < c.length; ) { e = c[b]; ++b; f = this._TotalTimeInHundreths; g = ('' + B.string(e)).split(':')[0]; g = null == g ? 0 : 'number' == typeof g ? x.__cast(g, Nb) : 'number' == typeof g && (g | 0) === g ? x.__cast(g, Ab) : 'boolean' == typeof g ? x.__cast(g, Ob) ? 1 : 0 : 'string' == typeof g ? parseFloat(g) : parseFloat(B.string(g)); var h = ('' + B.string(e)).split(':')[1]; h = null == h ? 0 : 'number' == typeof h ? x.__cast(h, Nb) : 'number' == typeof h && (h | 0) === h ? x.__cast(h, Ab) : 'boolean' == typeof h ? x.__cast(h, Ob) ? 1 : 0 : 'string' == typeof h ? parseFloat(h) : parseFloat(B.string(h)); e = ('' + B.string(e)).split(':')[2]; this._TotalTimeInHundreths = f + (6e3 * g + 100 * h + (null == e ? 0 : 'number' == typeof e ? x.__cast(e, Nb) : 'number' == typeof e && (e | 0) === e ? x.__cast(e, Ab) : 'boolean' == typeof e ? x.__cast(e, Ob) ? 1 : 0 : 'string' == typeof e ? parseFloat(e) : parseFloat(B.string(e)))); } this._Hours = Math.floor(this._TotalTimeInHundreths / 100 / 60 / 60); this._Minutes = Math.floor(this._TotalTimeInHundreths / 100 / 60); this._Seconds = Math.floor(this._TotalTimeInHundreths / 100); this._Hundreths = this._TotalTimeInHundreths; this._Hundreths -= 100 * this._Seconds; this._Seconds -= 60 * this._Minutes; this._Minutes -= 60 * this._Hours; this._HoursString = '' + this._Hours; this._MinutesString = '' + this._Minutes; this._SecondsString = '' + this._Seconds; this._HundrethsString = '' + this._Hundreths; 1 == this._HoursString.length && (this._HoursString = '0' + this._HoursString); 1 == this._MinutesString.length && (this._MinutesString = '0' + this._MinutesString); 1 == this._SecondsString.length && (this._SecondsString = '0' + this._SecondsString); 1 == this._HundrethsString.length && (this._HundrethsString = '0' + this._HundrethsString); this._TotalTimeString = this._HoursString + (':' + (this._MinutesString + (':' + (this._SecondsString + (':' + this._HundrethsString))))); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); d.runPeriodically(10, q(this, this._event_EveryNsecs), this.actor); this.addListener(d.engine.whenAnyGamepadPressed, q(this, this._event_AnyButton)); this.addListener(this.actor.whenUpdated, q(this, this._event_AnyKey)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Mu }); var Nu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Target Actor'] = '_TargetActor'; this.nameMap.h['Distance X'] = '_DistanceX'; this._DistanceX = 0; this.nameMap.h['Distance Y'] = '_DistanceY'; this._DistanceY = 0; this.nameMap.h.Distance = '_Distance'; this._Distance = 0; this.nameMap.h.Direction = '_Direction'; this._Direction = 0; this.nameMap.h.Speed = '_Speed'; this._Speed = 30; this.nameMap.h.Margin = '_Margin'; this._Margin = 0; this.nameMap.h.Easing = '_Easing'; this._Easing = !0; this.nameMap.h['Minimum Easing Speed'] = '_MinimumEasingSpeed'; this._MinimumEasingSpeed = 5; this.nameMap.h['Screen Diagonal'] = '_ScreenDiagonal'; this._ScreenDiagonal = 0; this.nameMap.h['Stop when Colliding'] = '_StopwhenColliding'; this._StopwhenColliding = !0; this.nameMap.h.Collided = '_Collided'; this._Collided = !1; }; h['scripts.Design_43_43_FollowTarget'] = Nu; Nu.__name__ = 'scripts.Design_43_43_FollowTarget'; Nu.__super__ = u; Nu.prototype = r(u.prototype, { _TargetActor: null, _DistanceX: null, _DistanceY: null, _Distance: null, _Direction: null, _Speed: null, _Margin: null, _Easing: null, _MinimumEasingSpeed: null, _ScreenDiagonal: null, _StopwhenColliding: null, _Collided: null, _event_Updated: function (a) { this.wrapper.enabled && ((a = this._TargetActor), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._TargetActor.isAlive() && ((this._DistanceX = this._TargetActor.getXCenter() - this.actor.getXCenter()), (this._DistanceY = this._TargetActor.getYCenter() - this.actor.getYCenter()), (this._Distance = Math.sqrt( Math.pow(this._DistanceX, 2) + Math.pow(this._DistanceY, 2) )), (this._Direction = 57.29577951308402 * Math.atan2(this._DistanceY, this._DistanceX)), !(this._Distance > this._Margin) || (this._StopwhenColliding && this._Collided) ? this.actor.setVelocity(0, 0) : this._Easing ? this.actor.setVelocity( this._Direction, this._MinimumEasingSpeed + ((this._Distance - this._Margin) / this._ScreenDiagonal) * this._Speed ) : this.actor.setVelocity(this._Direction, this._Speed), (this._Collided = !1))); }, _event_ActorActor: function (a) { this.wrapper.enabled && this._TargetActor == a.otherActor && (this._Collided = !0); }, init: function () { this._ScreenDiagonal = Math.sqrt( Math.pow(d.getScreenWidth(), 2) + Math.pow(d.getScreenHeight(), 2) ); this.addListener(this.actor.whenUpdated, q(this, this._event_Updated)); this.addListener(this.actor.whenCollided, q(this, this._event_ActorActor)); }, forwardMessage: function (a) {}, __class__: Nu }); var Ou = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Hit Ground'] = '_HitGround'; this._HitGround = !1; this.nameMap.h['Sensor Row Count'] = '_SensorRowCount'; this._SensorRowCount = 0; this.nameMap.h['Sensor Column Count'] = '_SensorColumnCount'; this._SensorColumnCount = 0; this.nameMap.h['Shake Image'] = '_ShakeImage'; this.nameMap.h['Shake Image Instance'] = '_ShakeImageInstance'; this.nameMap.h['Shake Count'] = '_ShakeCount'; this._ShakeCount = 0; this.nameMap.h.Left = '_Left'; this._Left = !1; this.nameMap.h.Shake = '_Shake'; this._Shake = !1; this.nameMap.h['Sensor List'] = '_SensorList'; this.nameMap.h.Fall = '_Fall'; this._Fall = !1; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h.Done = '_Done'; this._Done = !1; this.nameMap.h['Has Hit Dude'] = '_HasHitDude'; this._HasHitDude = !1; this.nameMap.h.Height = '_Height'; this._Height = 0; }; h['scripts.Design_45_45_FallingSpikeLogic'] = Ou; Ou.__name__ = 'scripts.Design_45_45_FallingSpikeLogic'; Ou.__super__ = u; Ou.prototype = r(u.prototype, { _HitGround: null, _SensorRowCount: null, _SensorColumnCount: null, _ShakeImage: null, _ShakeImageInstance: null, _ShakeCount: null, _Left: null, _Shake: null, _SensorList: null, _Fall: null, _GravitySpeed: null, _Done: null, _HasHitDude: null, _Height: null, _event_EveryNsecs: function (a) { this.wrapper.enabled && this._Shake && !this._Fall && !this._Done && (d.attachImageToActor( this._ShakeImageInstance, this.actor, (-2 + this._ShakeCount) | 0, 0, 1 ), 6 != this._ShakeCount || this._Left ? 0 == this._ShakeCount && this._Left && (this._Left = !1) : (this._Left = !0), (this._ShakeCount = this._Left ? this._ShakeCount - 2 : this._ShakeCount + 2)); }, _event_DudeHitsSensor: function (a) { var b = this; if ( this.wrapper.enabled && !this._Shake && !this._Fall && !this._Done && X.contains(this._SensorList, a.otherActor) ) { this._Shake = !0; k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(106)); a = 0; for (var c = x.__cast(this._SensorList, Array); a < c.length; ) { var e = c[a]; ++a; d.recycleActor(e); } d.runLater( 800, function (a) { b._Fall = !0; b.actor.moveBy(0, 32 * b._Height, 0.08 * (b._Height + 1), J.quadIn); b._Shake = !1; d.attachImageToActor(b._ShakeImageInstance, b.actor, 0, 0, 1); d.runLater( 80 * (b._Height + 1), function (a) { b._Done = !0; b._Fall = !1; a = 0; for (var c = d.getActorsOfType(d.getActorType(2)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || (b.actor.getXCenter() > e.getXCenter() ? d.setValueForScene('Stage Logic', '_RumbleName', 'Spike Right') : d.setValueForScene('Stage Logic', '_RumbleName', 'Spike Left'), d.sayToScene('Stage Logic', '_customEvent_rumble')); } k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(113)); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getY() + b.actor.getHeight() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Small'); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getY() + b.actor.getHeight() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Small'); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getY() + b.actor.getHeight() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Small'); b.actor.say('Falling Spike Logic', '_customEvent_Destroy'); d.startShakingScreen(0.002, 0.03); }, b.actor ); }, this.actor ); } }, _event_HitsDude: function (a) { if (this.wrapper.enabled) { var b = d.getActorType(2); var c = a.otherActor.getType(), e = a.otherActor.getGroup(); b = b == c || b == e; } else b = !1; b && !this._HasHitDude && ((this._HasHitDude = !0), a.otherActor.say('Dude Logic', '_customEvent_Die'), this.actor.say('Falling Spike Logic', '_customEvent_Destroy')); }, _customEvent_Destroy: function () { d.recycleActor(this.actor); }, init: function () { this.actor.makeAlwaysSimulate(); this._ShakeImage = d.getImageForActor(this.actor); this._ShakeImageInstance = new Qh(new Mc(this._ShakeImage)); this.actor.disableActorDrawing(); d.attachImageToActor(this._ShakeImageInstance, this.actor, 0, 0, 1); this._GravitySpeed = 48; this._SensorList = []; this._HitGround = !1; for (this._SensorRowCount = 0; !this._HitGround; ) d.tileExistsAt( (Math.round((this.actor.getY() + this.actor.getHeight()) / 32) + this._SensorRowCount) | 0, Math.floor(this.actor.getX() / 32), d.engine.getLayerById(0) ) && 7 < d.getTileIDAt( (Math.round((this.actor.getY() + this.actor.getHeight()) / 32) + this._SensorRowCount) | 0, (Math.round(this.actor.getX() / 32) + this._SensorColumnCount) | 0, d.engine.getLayerById(0) ) ? (this._HitGround = !0) : (d.createRecycledActor( d.getActorType(68), 16 * Math.round(this.actor.getX() / 16), 32 * (Math.round((this.actor.getY() + this.actor.getHeight()) / 32) + this._SensorRowCount), 0 ), this._SensorList.push(d.getLastCreatedActor()), d.getLastCreatedActor().disableActorDrawing()), (this._SensorRowCount += 1); if (0 == this._Height || this._Height < this._SensorRowCount) this._Height = this._SensorRowCount; d.runPeriodically(20, q(this, this._event_EveryNsecs), this.actor); this.addListenerWithKey2( d.engine.whenCollidedEvents, d.getActorType(2).ID, d.getActorType(68).ID, q(this, this._event_DudeHitsSensor) ); this.addListener(this.actor.whenCollided, q(this, this._event_HitsDude)); }, forwardMessage: function (a) {}, __class__: Ou }); var Pu = function (a, b) { d.call(this); this.nameMap.h['Player Created'] = '_PlayerCreated'; this._PlayerCreated = !1; this.nameMap.h['Transition Row Count'] = '_TransitionRowCount'; this._TransitionRowCount = 0; this.nameMap.h['Transition Col Count'] = '_TransitionColCount'; this._TransitionColCount = 0; this.nameMap.h.Dude = '_Dude'; this.nameMap.h['Transition Type'] = '_TransitionType'; this._TransitionType = 0; this.nameMap.h['Snow Speed'] = '_SnowSpeed'; this._SnowSpeed = 0; this.nameMap.h['Pause Button'] = '_PauseButton'; this.nameMap.h['Transition X Center'] = '_TransitionXCenter'; this._TransitionXCenter = 0; this.nameMap.h['Transition Y Center'] = '_TransitionYCenter'; this._TransitionYCenter = 0; this.nameMap.h.Overlay = '_Overlay'; this.nameMap.h['Level Number'] = '_LevelNumber'; this._LevelNumber = 0; this.nameMap.h['Beach BG Created'] = '_BeachBGCreated'; this._BeachBGCreated = !1; this.nameMap.h['Beach BG Width'] = '_BeachBGWidth'; this._BeachBGWidth = 0; this.nameMap.h.Angle = '_Angle'; this._Angle = 0; this.nameMap.h['Landscape Left'] = '_LandscapeLeft'; this._LandscapeLeft = !1; this.nameMap.h['Current Orientation'] = '_CurrentOrientation'; this._CurrentOrientation = 0; this.nameMap.h['CONTROLLER TESTER'] = '_CONTROLLERTESTER'; this._CONTROLLERTESTER = ''; this.nameMap.h['Timer Banner'] = '_TimerBanner'; this.nameMap.h['Time String'] = '_TimeString'; this._TimeString = ''; this.nameMap.h['Timer On'] = '_TimerOn'; this._TimerOn = !1; this.nameMap.h['Timer Seconds'] = '_TimerSeconds'; this._TimerSeconds = 0; this.nameMap.h['Timer Minutes'] = '_TimerMinutes'; this._TimerMinutes = 0; this.nameMap.h['Timer Hundreths'] = '_TimerHundreths'; this._TimerHundreths = 0; this.nameMap.h['Minutes String'] = '_MinutesString'; this._MinutesString = ''; this.nameMap.h['Seconds String'] = '_SecondsString'; this._SecondsString = ''; this.nameMap.h['Hundreths String'] = '_HundrethsString'; this._HundrethsString = ''; this.nameMap.h['Show Timer'] = '_ShowTimer'; this._ShowTimer = !1; this.nameMap.h['Total in Hundreths'] = '_TotalinHundreths'; this._TotalinHundreths = 0; this.nameMap.h['Previous Total In Hundreths'] = '_PreviousTotalInHundreths'; this._PreviousTotalInHundreths = 0; this.nameMap.h['Previous Time String'] = '_PreviousTimeString'; this._PreviousTimeString = ''; this.nameMap.h['Rumble Name'] = '_RumbleName'; this._RumbleName = ''; }; h['scripts.Design_49_49_StageLogic'] = Pu; Pu.__name__ = 'scripts.Design_49_49_StageLogic'; Pu.__super__ = sa; Pu.prototype = r(sa.prototype, { _PlayerCreated: null, _TransitionRowCount: null, _TransitionColCount: null, _Dude: null, _TransitionType: null, _SnowSpeed: null, _PauseButton: null, _TransitionXCenter: null, _TransitionYCenter: null, _Overlay: null, _LevelNumber: null, _BeachBGCreated: null, _BeachBGWidth: null, _Angle: null, _LandscapeLeft: null, _CurrentOrientation: null, _CONTROLLERTESTER: null, _TimerBanner: null, _TimeString: null, _TimerOn: null, _TimerSeconds: null, _TimerMinutes: null, _TimerHundreths: null, _MinutesString: null, _SecondsString: null, _HundrethsString: null, _ShowTimer: null, _TotalinHundreths: null, _PreviousTotalInHundreths: null, _PreviousTimeString: null, _RumbleName: null, _event_Timer: function (a, b, c) { if ( this.wrapper.enabled && ((b = this._TimerBanner), d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b)) && (this._TimerBanner.setX( -( this._TimerBanner.getWidth() - (d.getFont(526).getTextWidth(this._TimeString) / k.SCALE + 48) ) ), this._ShowTimer) ) { b = d.getFont(526); null != b && b != a.font && (a.font = b); var e = this._TimerBanner; a.drawActor = !0; a.actor = e; e.smoothMove ? ((b = e.drawX - Math.floor(e.cacheWidth / 2) - e.currOffset.x), (c = e.drawY - Math.floor(e.cacheHeight / 2) - e.currOffset.y), (a.x = b * a.scaleX), (a.y = c * a.scaleY)) : ((a.x = e.colX * a.scaleX), (a.y = e.colY * a.scaleY)); d.setDrawingLayerToSceneLayer(); e = this._TimeString; b = this._TimerBanner.getWidth() - (d.getFont(526).getTextWidth(this._TimeString) / k.SCALE + 16); c = this._TimerBanner.getHeight() / 2 - d.getFont(441).getHeight() / k.SCALE / 2; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (c = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, c); var f = null, g = a.font; g = e + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE; if (Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g)) (e = W.drawnStringCache.h[g]), (e.lifetime = 5), (f = e.img); else { var h = a.font.font.getTextWidth(e, a.font.letterSpacing, a.font.fontScale), l = (a.font.font.getFontHeight() * a.font.fontScale) | 0; 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, e, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (e = new Mb()), (e.img = f), (e.lifetime = 5), (W.drawnStringCache.h[g] = e), W.drawnStringCacheKeys.push(g)); } null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, f.width, f.height), a.graphics.endFill()); } }, _event_TimerCount: function (a) { this.wrapper.enabled && (this._TimerOn && ((this._TimerHundreths += 1), 99 < this._TimerHundreths && ((this._TimerSeconds += 1), (this._TimerHundreths = 0), 59 < this._TimerSeconds && ((this._TimerMinutes += 1), (this._TimerSeconds = 0)))), 10 <= this._TimerMinutes ? ((this._MinutesString = '10'), (this._HundrethsString = this._SecondsString = '00')) : (1 == ('' + this._TimerHundreths).length ? (this._HundrethsString = '0' + this._TimerHundreths) : 2 == ('' + this._TimerHundreths).length && (this._HundrethsString = '' + this._TimerHundreths), 1 == ('' + this._TimerSeconds).length ? (this._SecondsString = '0' + this._TimerSeconds) : 2 == ('' + this._TimerSeconds).length && (this._SecondsString = '' + this._TimerSeconds), 1 == ('' + this._TimerMinutes).length ? (this._MinutesString = '0' + this._TimerMinutes) : 2 == ('' + this._TimerMinutes).length && (this._MinutesString = '' + this._TimerMinutes)), (this._TimeString = this._MinutesString + (':' + (this._SecondsString + (':' + this._HundrethsString))))); }, _event_Snow: function (a) { if (this.wrapper.enabled && 'Snow' == k.engine.getGameAttribute('Stage Type')) { 1 == d.randomInt(1, 2) && (1 == d.randomInt(1, 2) ? (this._SnowSpeed = Math.min(this._SnowSpeed + 1, 12)) : (this._SnowSpeed = Math.max(this._SnowSpeed - 1, -12))); a = 0; for (var b = d.randomInt(1, 3); a < b; ) a++, d.createRecycledActor( d.getActorType(155), d.randomInt( (d.getScreenX() - d.getScreenWidth() / 2) | 0, (d.getScreenX() + (d.getScreenWidth() + d.getScreenWidth() / 2)) | 0 ), d.getScreenY() - 16 - d.randomInt(0, d.getScreenHeight()), 0 ); } }, _customEvent_createPauseButton: function () { var a = this._PauseButton; d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a) || (d.createRecycledActor(d.getActorType(234), d.getScreenWidth() - 56, 12, 0), (this._PauseButton = d.getLastCreatedActor())); }, _customEvent_timerStart: function () { this._TimerOn = !0; }, _customEvent_timerHide: function () { var a = this; d.runLater( 1e3, function (b) { a._ShowTimer = !1; a._TimerBanner.disableActorDrawing(); }, null ); }, _customEvent_timerShow: function () { var a = this; d.runLater( 1e3, function (b) { a._ShowTimer = !0; a._TimerBanner.enableActorDrawing(); }, null ); }, _customEvent_timerStop: function () { this._TimerOn = !1; var a = k.engine.getGameAttribute('Best Times'), b = d.getCurrentSceneName().split(' ')[1]; this._PreviousTimeString = '' + B.string( a[ ((null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b))) - 1) | 0 ] ); b = this._PreviousTimeString.split(':')[0]; a = null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b)); b = this._PreviousTimeString.split(':')[1]; var c = null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b)); b = this._PreviousTimeString.split(':')[2]; this._PreviousTotalInHundreths = 6e3 * a + 100 * c + (null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b))); b = this._TimeString.split(':')[0]; a = null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b)); b = this._TimeString.split(':')[1]; c = null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b)); b = this._TimeString.split(':')[2]; this._TotalinHundreths = 6e3 * a + 100 * c + (null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b))); this._TotalinHundreths < this._PreviousTotalInHundreths && ((a = k.engine.getGameAttribute('Best Times')), (b = d.getCurrentSceneName().split(' ')[1]), (a[ ((null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b))) - 1) | 0 ] = this._TimeString), d.saveGame('mySave', function (a) {})); }, _customEvent_starGet: function () { X.contains(k.engine.getGameAttribute('Stars List'), this._LevelNumber) || (k.engine.getGameAttribute('Stars List').push(this._LevelNumber), d.saveGame('mySave', function (a) {}), 43 <= k.engine.getGameAttribute('Stars List').length - 1 && k.engine.getGameAttribute('Possum Mode Unlocked')); }, _customEvent_rumble: function () { 'Small Thud' == this._RumbleName ? d.runLater(50, function (a) {}, null) : 'Small Thud Left' == this._RumbleName ? d.runLater(50, function (a) {}, null) : 'Small Thud Right' == this._RumbleName ? d.runLater(50, function (a) {}, null) : 'Thud' == this._RumbleName ? d.runLater(50, function (a) {}, null) : 'Big Thud Left' == this._RumbleName ? d.runLater(150, function (a) {}, null) : 'Big Thud Right' == this._RumbleName ? d.runLater(150, function (a) {}, null) : 'Dead' == this._RumbleName ? d.runLater(20, function (a) {}, null) : 'Spike Left' == this._RumbleName ? d.runLater(60, function (a) {}, null) : 'Spike Right' == this._RumbleName ? d.runLater(60, function (a) {}, null) : 'Spring' == this._RumbleName ? d.runLater(150, function (a) {}, null) : 'Star' == this._RumbleName ? d.runLater(80, function (a) {}, null) : 'Item' == this._RumbleName ? d.runLater(80, function (a) {}, null) : 'Block Left' == this._RumbleName ? d.runLater(60, function (a) {}, null) : 'Block Right' == this._RumbleName ? d.runLater(60, function (a) {}, null) : 'Cannon Left' == this._RumbleName ? d.runLater(300, function (a) {}, null) : 'Cannon Right' == this._RumbleName ? d.runLater(300, function (a) {}, null) : 'Explode Left' == this._RumbleName ? d.runLater(250, function (a) {}, null) : 'Explode Right' == this._RumbleName ? d.runLater(250, function (a) {}, null) : 'Crumble' == this._RumbleName ? d.runLater(160, function (a) {}, null) : 'Balloon' == this._RumbleName ? d.runLater(100, function (a) {}, null) : 'Boss Pop' == this._RumbleName ? d.runLater(60, function (a) {}, null) : 'Emerge' == this._RumbleName ? d.runLater(100, function (a) {}, null) : 'Exit' == this._RumbleName && d.runLater(100, function (a) {}, null); this._RumbleName = 'None'; }, init: function () { var a = this; gb.gameplayStart(); d.stopAllSounds(); if ('Level' == d.getCurrentSceneName().split(' ')[0]) { var b = d.getCurrentSceneName().split(' ')[1]; this._LevelNumber = null == b ? 0 : 'number' == typeof b ? x.__cast(b, Nb) : 'number' == typeof b && (b | 0) === b ? x.__cast(b, Ab) : 'boolean' == typeof b ? x.__cast(b, Ob) ? 1 : 0 : 'string' == typeof b ? parseFloat(b) : parseFloat(B.string(b)); } else this._LevelNumber = 0; k.engine.gameAttributes.h['Last Stage Played'] = this._LevelNumber; d.saveGame('mySave', function (a) {}); d.engine.unpause(); d.createRecycledActor(d.getActorType(283), -5, -5, 0); this._Overlay = d.getLastCreatedActor(); if (86 == d.getTilesetIDAt(0, 0, d.engine.getLayerById(0))) (k.engine.gameAttributes.h['Stage Type'] = 'Grasslands'), d.loopSoundOnChannel(d.getSound(135), 15); else if (144 == d.getTilesetIDAt(0, 0, d.engine.getLayerById(0))) for ( k.engine.gameAttributes.h['Stage Type'] = 'Seaside', d.loopSoundOnChannel(d.getSound(148), 15), d.createRecycledActorOnLayer(d.getActorType(756), -1, -1, d.engine.getLayerById(7)), d.createRecycledActorOnLayer(d.getActorType(541), 0, 0, d.engine.getLayerById(7)), this._BeachBGWidth = d.getLastCreatedActor().getWidth(); !this._BeachBGCreated; ) 960 > this._BeachBGWidth ? (d.createRecycledActorOnLayer( d.getActorType(541), d.getLastCreatedActor().getX() + d.getLastCreatedActor().getWidth(), 0, d.engine.getLayerById(7) ), (this._BeachBGWidth += d.getLastCreatedActor().getWidth())) : (this._BeachBGCreated = !0); else if (149 == d.getTilesetIDAt(0, 0, d.engine.getLayerById(0))) for ( k.engine.gameAttributes.h['Stage Type'] = 'Snow', d.loopSoundOnChannel(d.getSound(157), 15), d.createRecycledActorOnLayer(d.getActorType(754), -1, -1, d.engine.getLayerById(7)), d.createRecycledActorOnLayer(d.getActorType(615), 0, 0, d.engine.getLayerById(7)), this._BeachBGWidth = d.getLastCreatedActor().getWidth(); !this._BeachBGCreated; ) 960 > this._BeachBGWidth ? (d.createRecycledActorOnLayer( d.getActorType(615), d.getLastCreatedActor().getX() + d.getLastCreatedActor().getWidth(), 0, d.engine.getLayerById(7) ), (this._BeachBGWidth += d.getLastCreatedActor().getWidth())) : (this._BeachBGCreated = !0); else if (671 == d.getTilesetIDAt(0, 0, d.engine.getLayerById(0))) for ( k.engine.gameAttributes.h['Stage Type'] = 'Cave', d.loopSoundOnChannel(d.getSound(747), 15), d.createRecycledActorOnLayer(d.getActorType(752), -1, -1, d.engine.getLayerById(7)), d.createRecycledActorOnLayer(d.getActorType(672), -1, -1, d.engine.getLayerById(7)), ba.setScale('width', 962, d.getLastCreatedActor()), ba.setScale('height', 271, d.getLastCreatedActor()), d.createRecycledActorOnLayer( d.getActorType(674), 0, d.getScreenHeight() / 2 - 436, d.engine.getLayerById(7) ), this._BeachBGWidth = d.getLastCreatedActor().getWidth(); !this._BeachBGCreated; ) 960 > this._BeachBGWidth ? (d.createRecycledActorOnLayer( d.getActorType(674), d.getLastCreatedActor().getX() + d.getLastCreatedActor().getWidth(), d.getScreenHeight() / 2 - 436, d.engine.getLayerById(7) ), (this._BeachBGWidth += d.getLastCreatedActor().getWidth())) : (this._BeachBGCreated = !0); else 193 == d.getTilesetIDAt(0, 0, d.engine.getLayerById(0)) && ((k.engine.gameAttributes.h['Stage Type'] = 'Castle'), d.loopSoundOnChannel(d.getSound(196), 15)); k.engine.getGameAttribute('Sound Disabled') ? d.setVolumeForChannel(0, 15) : k.engine.getGameAttribute('Sound Disabled') || d.setVolumeForChannel(1, 15); k.engine.getGameAttribute('Music Disabled') ? d.setVolumeForChannel(0, 16) : k.engine.getGameAttribute('Music Disabled') || d.setVolumeForChannel(1, 16); if (k.engine.getGameAttribute('Checkpoint Passed')) { b = 0; for (var c = d.getActorsOfType(d.getActorType(72)); b < c.length; ) { var e = c[b]; ++b; if (null != e && !e.dead && !e.recycled && !this._PlayerCreated) { this._PlayerCreated = !0; e.setAnimation('Passed'); d.createRecycledActorOnLayer( d.getActorType(2), e.getX() - 2 + 32, e.getY() + e.getHeight() - 16, d.engine.getLayerById(e.getLayerID()) ); e = 0; for (var f = d.getActorsOfType(d.getActorType(70)); e < f.length; ) { var g = f[e]; ++e; null == g || g.dead || g.recycled || d.recycleActor(g); } } } } else for (b = 0, c = d.getActorsOfType(d.getActorType(70)); b < c.length; ) (e = c[b]), ++b, null == e || e.dead || e.recycled || (this._PlayerCreated || ((k.engine.gameAttributes.h['Camera Boundary Number'] = 1), (this._PlayerCreated = !0), e.setAnimation('Passed'), d.createRecycledActorOnLayer( d.getActorType(2), e.getX() - 2, e.getY() + e.getHeight() - 16, d.engine.getLayerById(e.getLayerID()) )), d.recycleActor(e)); if ('Snow' == k.engine.getGameAttribute('Stage Type')) for (b = 0; 24 > b; ) b++, d.createRecycledActor( d.getActorType(155), d.randomInt( (d.getScreenX() - d.getScreenWidth() / 2) | 0, (d.getScreenX() + (d.getScreenWidth() + d.getScreenWidth() / 2)) | 0 ), d.randomInt( (d.getScreenY() - d.getScreenHeight() / 2) | 0, (d.getScreenY() + d.getScreenHeight() / 2) | 0 ), 0 ); k.engine.getGameAttribute('Timer Mode') && (d.createRecycledActor(d.getActorType(435), -100, 10, 0), d.getLastCreatedActor().setAnimation('Blue'), d.getLastCreatedActor().disableBehavior('Cutscene Title Logic'), d.getLastCreatedActor().anchorToScreen(), d.getLastCreatedActor().makeAlwaysSimulate(), (this._TimerBanner = d.getLastCreatedActor()), (this._TimeString = '00:00:00'), this._TimerBanner.disableActorDrawing(), d.runLater( 1e3, function (b) { a._ShowTimer = !0; a._TimerBanner.enableActorDrawing(); }, null )); d.runLater( 200, function (a) { if ( 'JP' == k.engine.getGameAttribute('Language') && !k.engine.getGameAttribute('Possum Mode') ) { a = 0; for (var b = d.getActorsOfType(d.getActorType(159)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || ('Level 1' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3053\u3093\u306b\u3061\u306f\u304a\u7236\u3055\u3093\uff01\u3042\u306a\u305f\u306f\u79c1\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff01|\u3042\u306a\u305f\u306f\u3042\u307e\u308a\u9060\u304f\u307e\u3067\u884c\u3063\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f... |\u3042\u306a\u305f\u306e\u5b50\u4f9b\u305f\u3061\u306e\u3046\u3061\u3001\u79c1\u306f\u9593\u9055\u3044\u306a\u304f\u6700\u3082\u6020\u3051\u8005\u3067\u3059\u3002\u5206\u304b\u3063\u3066\u826f\u304b\u3063\u305f\u3002' ) : 'Level 2' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u304a\u7236\u3055\u3093\u3001\u3059\u3054\u3044\u3001\u30c0\u30d6\u30eb\u30b8\u30e3\u30f3\u30d7\u3067\u304d\u308b\u3068\u306f\u77e5\u3089\u306a\u304b\u3063\u305f\uff01|\u307e\u3042\u3001\u3082\u3057\u4e88\u5b9a\u901a\u308a\u3042\u306a\u305f\u304c\u5bb6\u306b\u3044\u308b\u3088\u3046\u306a\u3089\u3001\u79c1\u306f\u30c0\u30d6\u30eb\u30b8\u30e3\u30f3\u30d7\u3059\u308b\u5fc5\u8981\u306f\u306a\u3044\u3060\u308d\u3046\u3002|\u30c0\u30d6\u30eb\u30b8\u30e3\u30f3\u30d7\u306f\u3068\u3066\u3082\u30af\u30fc\u30eb\u3060\uff01|*#\u305f\u3081\u606f*' ) : 'Level 3' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3061\u3087\u3063\u3068\uff01|\u4f55\uff1f\uff01|\u51fa\u3066\u3044\u3051\uff01|\u3059\u307f\u307e\u305b\u3093\uff1f\uff01|\u3053\u308c\u306f\u304a\u7236\u3055\u3093\u7981\u6b62\u30be\u30fc\u30f3\u3067\u3059\uff01\u5931\u305b\u308d\uff01|\u305d\u308c\u3060\u3051\u3060\u3001\u30df\u30b9\u30bf\u30fc\u3001\u3042\u306a\u305f\u306f\u5916\u51fa\u7981\u6b62\u3067\u3059\u3002|\u3054\u3081\u3093\u306d\u3002' ) : 'Level 4' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3053\u3053\u3067\u4f55\u3092\u3057\u3066\u3044\u308b\u306e\u3067\u3059\u304b\uff1f|\u79c1\u306e\u4eba\u751f\u306e\u6642\u9593\u3092\u904e\u3054\u3057\u3066\u3044\u307e\u3059\uff01|\u30aa\u30fc\u30b1\u30fc\u3001\u3048\u3063\u3068\u3001\u305d\u308c\u306f\u3044\u3044\u3068\u601d\u3046\u3051\u3069\u3001\u4eca\u306f\u5bb6\u306b\u5e30\u308b\u6642\u9593\u3060|\u30aa\u30fc\u30b1\u30fc\u3001\u3044\u3044\u306d...\u81ea\u5206\u306e\u4eba\u751f\u306e\u6642\u9593\u3092\u904e\u3054\u3059\u306e\u306f\u75b2\u308c\u308b\u306d\u3002' ) : 'Level 5' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3053\u3093\u306b\u3061\u306f\u304a\u7236\u3055\u3093\uff01\u5bb6\u306b\u5e30\u308b\u3088\u3046\u306b\u79c1\u306b\u8a00\u3046\u3068\u3053\u308d\u3067\u3059\u304b\uff1f|\u306f\u3044\u3001\u305a\u3063\u3068\u3068\u3066\u3082\u5fc3\u914d\u3057\u3066\u3044\u307e\u3059\uff01|\u3042\u3042\u3001\u79c1\u3082\u3002|\u3069\u3046\u3044\u3046\u610f\u5473\u3067\u3059\u304b\uff1f|\u79c1\u306f\u7d76\u3048\u305a\u3001\u305d\u3057\u3066\u308f\u3056\u3068\u3072\u3069\u3044\u5371\u967a\u306b\u81ea\u5206\u3092\u3055\u3089\u3057\u3066\u3044\u307e\u3059\u3002\u79c1\u306f\u30b9\u30ea\u30eb\u306e\u305f\u3081\u306b\u305d\u308c\u3092\u3057\u3066\u3044\u308b\u3075\u308a\u3092\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u672c\u5f53\u306f\u6c17\u306b\u304b\u3051\u3066\u3082\u3089\u3044\u305f\u3044\u3060\u3051\u3067\u3059\u3002|\u7d20\u6674\u3089\u3057\u3044\u3002' ) : 'Level 6' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3053\u3093\u306b\u3061\u306f\u304a\u7236\u3055\u3093\uff01\u3053\u306e\u5834\u6240\u306f\u7d20\u6674\u3089\u3057\u3044\u3068\u306f\u601d\u3044\u307e\u305b\u3093\u304b|\u79c1\u306f\u77e5\u308a\u307e\u305b\u3093...\u3053\u3053\u306f\u3068\u3052\u3068\u3052\u3057\u3044\u5371\u967a\u306a\u3082\u306e\u3067\u3044\u3063\u3071\u3044\u3067\u3059\u3002|\u5206\u3063\u3066\u307e\u3059\uff01\u7d20\u6674\u3089\u3057\u3044\uff01' ) : 'Level 7' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3053\u306e\u6d1e\u7a9f\u306f\u79c1\u306e\u65b0\u3057\u3044\u5bb6\u3067\u3059\u3002\u79c1\u306f\u4eca\u3053\u3053\u306b\u4f4f\u3093\u3067\u3044\u307e\u3059\u3002|\u4f4f\u3093\u3067\u306a\u3044\u3067\u3057\u3087\u3002|\u4f4f\u3093\u3067\u3044\u307e\u3059\u3002|\u4f4f\u3093\u3067\u306a\u3044\u3002|\u30aa\u30fc\u30b1\u30fc\u3001\u3054\u3081\u3093\u306d\u3002' ) : 'Level 8' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3042\u3042...\u3048\u30fc\u3068...\u3042\u306a\u305f\u306f\u79c1\u306e\u5b50\u4f9b\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u306d...|*\u30ae\u30e3\u30fc*|\u3042\u3042\u3001\u306a\u3093\u3066\u3053\u3063\u305f\u3002' ) : 'Level 9' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u306a\u305c\u3042\u306a\u305f\u306e\u5b50\u4f9b\u304c\u305d\u306e\u3088\u3046\u306a\u5371\u967a\u306a\u5834\u6240\u306b\u96a0\u308c\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u306e\u3067\u3059\u304b\uff1f\u306a\u305c\u3042\u306a\u305f\u306f\u30e2\u30fc\u30eb\u3084\u4f55\u304b\u306b\u96a0\u308c\u308b\u3053\u3068\u304c\u3067\u304d\u306a\u304b\u3063\u305f\u306e\u3067\u3059\u304b\uff1f|\u5f85\u3063\u3066... \u3053\u308c\u306f\u30e2\u30fc\u30eb\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u304b\uff1f\u305d\u308c\u304c\u3001\u5f7c\u3089\u304c\u79c1\u306b\u3053\u306e\u534a\u30ba\u30dc\u30f3\u3092\u8fd4\u3055\u305b\u306a\u3044\u7406\u7531\u3092\u8aac\u660e\u3057\u3066\u3044\u307e\u3059\u3002|\u534a\u30ba\u30dc\u30f3\uff1f\u3042\u306a\u305f\u306f\u8db3\u3055\u3048\u6301\u3063\u3066\u3044\u307e\u305b\u3093\uff01|\u305d\u308c\u3053\u305d\u307e\u3055\u306b\u79c1\u304c\u534a\u30ba\u30dc\u30f3\u3092\u8fd4\u305d\u3046\u3068\u3057\u3066\u3044\u305f\u7406\u7531\u3067\u3059\uff01' ) : 'Level 10' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3042\u3042\u306a\u308b\u307b\u3069\uff01\u3042\u306a\u305f\u306f\u305d\u306e\u5947\u5999\u306a\u30cf\u30f3\u30d0\u30fc\u30ac\u30fc\u306e\u7537\u3092\u6253\u3061\u8ca0\u304b\u3057\u305f\uff01|\u898b\u3066\u3001\u79c1\u306f\u305d\u306e\u3053\u3068\u306b\u3064\u3044\u3066\u3044\u3044\u611f\u3058\u306f\u3057\u307e\u305b\u3093\u3002\u5f7c\u306f\u304b\u306a\u308a\u3044\u3044\u4eba\u306e\u3088\u3046\u306b\u898b\u3048\u307e\u3057\u305f\u3002|\u5f7c\u306f\u3042\u306a\u305f\u3092\u6bba\u305d\u3046\u3068\u3057\u307e\u3057\u305f\uff01|\u3064\u307e\u308a\u3001\u5f7c\u306f\u6bba\u305d\u3046\u3068\u3057\u305f\u3051\u3069...\u307e\u3042...\u3042\u306a\u305f\u304c\u7121\u4e8b\u3067\u3046\u308c\u3057\u3044\u3067\u3059\u3002|\u3042\u3042\u3001\u79c1\u3082\u3067\u3059\u3002\u3042\u308a\u304c\u3068\u3046\u3001\u304a\u7236\u3055\u3093\u3002' ) : 'Level 11' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u79c1\u306f\u30d3\u30fc\u30c1\u3067\u7d20\u6575\u306a\u4e00\u65e5\u3092\u904e\u3054\u3057\u3066\u3044\u307e\u3059\uff01|\u3053\u3053\u306f\u79c1\u304c\u4eca\u307e\u3067\u898b\u305f\u4e2d\u3067\u6700\u3082\u5371\u967a\u306a\u30d3\u30fc\u30c1\u3067\u3059\u3002|\u3053\u3053\u306f\u79c1\u304c\u4eca\u307e\u3067\u898b\u305f\u4e2d\u3067\u6700\u3082\u30a8\u30ad\u30b5\u30a4\u30c6\u30a3\u30f3\u30b0\u306a\u30d3\u30fc\u30c1\u3067\u3059\uff01' ) : 'Level 12' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3053\u306e\u666f\u8272\u306f\u7d20\u6674\u3089\u3057\u3044\u3067\u3059\uff01|\u7d20\u6674\u3089\u3057\u3044\u3051\u3069\u3001\u81ea\u5b85\u306b\u3082\u540c\u3058\u3088\u3046\u306a\u3082\u306e\u304c\u3042\u308a\u307e\u3059\u3002|\u30d3\u30c7\u30aa\u30b2\u30fc\u30e0\u696d\u754c\u3067\u306f\u3001\u5f7c\u3089\u306f\u305d\u308c\u3092\u8cc7\u7523\u306e\u518d\u5229\u7528\u3068\u547c\u3093\u3067\u3044\u307e\u3059\u3002\u3053\u308c\u306f\u30e1\u30e2\u30ea\u3092\u7bc0\u7d04\u3057\u3066\u958b\u767a\u6642\u9593\u3092\u77ed\u7e2e\u3059\u308b\u8ce2\u3044\u65b9\u6cd5\u3067\u3059\u3002|\u300c\u30d3\u30c7\u30aa\u30b2\u30fc\u30e0\u696d\u754c\u300d\u3068\u306f\u4f55\u3067\u3059\u304b\uff1f|\u79c1\u306b\u306f\u308f\u304b\u308a\u307e\u305b\u3093\u3002' ) : 'Level 13' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3042\u306a\u305f\u304c\u3053\u3053\u306b\u3044\u308b\u3053\u3068\u306b\u611f\u8b1d\u3057\u307e\u3059|\u306d\u3048\u3001\u4f1a\u3048\u3066\u3046\u308c\u3057\u3044\u3088\u3001\u76f8\u68d2\uff01|\u79c1\u306f\u3068\u3066\u3082\u65e5\u713c\u3051\u3057\u305f\u3088|\u3042\u3042\u3002|\u306a\u305c\u305d\u3093\u306a\u306b\u9577\u304f\u304b\u304b\u3063\u305f\u3093\u3060' ) : 'Level 14' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u5c0f\u3055\u306a\u30d4\u30b6\u306e\u7537\u305f\u3061\u3092\u898b\u307e\u3057\u305f\u304b\uff1f|\u79c1\u306f... \u898b\u305f\u3088\u3002\u306f\u3044\u3002|\u5f7c\u3089\u306f\u3068\u3066\u3082\u7d20\u6674\u3089\u3057\u3044\u3067\u3059\u3002|\u5f7c\u3089\u306f...\u79c1\u3092\u6bba\u305d\u3046\u3068\u3057\u307e\u3057\u305f...|\u3068\u3066\u3082\u7d20\u6674\u3089\u3057\u3044\u3067\u3059\u3002' ) : 'Level 15' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3061\u3087\u3063\u3068\u304a\u7236\u3055\u3093\uff01\u79c1\u306f\u30ca\u30de\u30b3\u3092\u63a2\u3057\u3066\u3044\u307e\u3059\uff01|\u3069\u3046\u306a\u3063\u3066\u3044\u307e\u3059\u304b\uff1f|\u826f\u304f\u306a\u3044\u3067\u3059\u3001\u4eca\u307e\u3067\u306e\u3068\u3053\u308d\u898b\u3064\u3051\u3066\u3044\u307e\u305b\u3093\u3002|\u307e\u3042\u3001\u305d\u308c\u306f\u5bb6\u306b\u5e30\u308b\u6642\u304b\u3082\u77e5\u308c\u307e\u305b\u3093\u3002|\u3060\u3051\u3069\u30ca\u30de\u30b3\u306f\u79c1\u306e\u60c5\u71b1\u3067\u3059\u3002|\u305d\u308c\u306f\u3042\u307e\u308a\u826f\u3044\u60c5\u71b1\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002' ) : 'Level 16' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3053\u3053\u3067\u79c1\u304c\u3069\u3046\u3084\u3063\u3066\u4e0a\u3063\u305f\u306e\u304b\u5206\u304b\u3089\u306a\u3044\u3002\u3069\u3046\u3084\u3063\u3066\u964d\u308a\u308b\u304b\u3082\u308f\u304b\u3089\u306a\u3044\u3002|\u5fc3\u914d\u3057\u306a\u3044\u3067\u3001\u3059\u3079\u3066\u306e\u30ec\u30d9\u30eb\u306e\u7d42\u308f\u308a\u306b\u98db\u3073\u53bb\u308b\u3060\u3051\u3060\u3002|\u304b\u306a\u308a\u4fbf\u5229\u3060\u306d\uff01|\u305d\u308c\u306f\u3069\u3046\u3084\u308b\u3093\u3067\u3059\u304b\u3002|\u79c1\u306b\u306f\u308f\u304b\u3089\u306a\u3044\u3002|\u307e\u305f\u3001\u30ec\u30d9\u30eb\u3068\u306f\u4f55\u3067\u3059\u304b\uff1f|\u3082\u3046\u4e00\u56de,\u201c no idea.\u201d' ) : 'Level 17' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3042\u306a\u305f\u304c\u305d\u308c\u3089\u306e\u5927\u304d\u306a\u3068\u304c\u3063\u305f\u3082\u306e\u306b\u62bc\u3057\u3064\u3076\u3055\u308c\u306a\u304b\u3063\u305f\u3053\u3068\u3092\u3046\u308c\u3057\u304f\u601d\u3044\u307e\u3059\uff01|\u606f\u5b50\u306b\u611f\u8b1d\u3002\u3068\u3066\u3082\u52a9\u304b\u308a\u307e\u3059\u3002|\u3069\u3046\u3044\u305f\u3057\u307e\u3057\u3066\uff01' ) : 'Level 18' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3042\u3042\u3001\u30d1\u30d1\uff01\u3042\u306a\u305f\u306f\u3053\u3053\u3067\u4f55\u3092\u3057\u3066\u3044\u308b\u306e\u3067\u3059\u304b\uff1f|\u79c1\u306e\u611a\u304b\u306a\u5b50\u4f9b\u305f\u3061\u3092\u63a2\u3057\u3066\u3044\u307e\u3059\u3001\u305f\u3044\u3066\u3044|\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u304b\uff1f| ...|\u3042\u3042\u3002' ) : 'Level 19' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3042\u3042\u3001\u30d3\u30fc\u30c1\u3067\u306a\u3093\u3066\u30ea\u30e9\u30c3\u30af\u30b9\u3057\u305f\u4e00\u65e5\uff01|\u3042\u306a\u305f\u306f\u5916\u51fa\u7981\u6b62\u3067\u3059\u3002|\u30cf\u30a1\u30c3\uff1f|\u3042\u306a\u305f\u306f\u7686\u5916\u51fa\u7981\u6b62\u3067\u3059\u3002|\u4f55\uff1f|\u6c38\u9060\u306b\u3002' ) : 'Level 20' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u308f\u30fc\u3044\uff01\u3042\u306a\u305f\u306f\u30db\u30c3\u30c8\u30c9\u30c3\u30b0\u3092\u5012\u3057\u307e\u3057\u305f\uff01|\u305d\u308c\u304c\u672c\u5f53\u306b\u5f7c\u306e\u540d\u524d\u3060\u3063\u305f\u306e\u3067\u3059\u304b\uff1f|\u3048\u3048\u3001\u5f7c\u306e\u4e21\u89aa\u306f\u5947\u5999\u306a\u30e6\u30fc\u30e2\u30a2\u306e\u30bb\u30f3\u30b9\u3092\u6301\u3063\u3066\u3044\u307e\u3057\u305f\u3002\u4e21\u89aa\u306f\u3068\u3066\u3082\u5947\u5999\u3067\u3059\u3002|\u898b\u3066\u304f\u3060\u3055\u3044\u3002' ) : 'Level 21' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3053\u3053\u306f\u3068\u3066\u3082\u5bd2\u3044\u306e\u3067\u3001\u3064\u307e\u5148\u3092\u611f\u3058\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\uff01|\u3042\u306a\u305f\u306f\u30e9\u30c7\u30c3\u30b7\u30e5\u3067\u3001\u3064\u307e\u5148\u304c\u3042\u308a\u307e\u305b\u3093\u3002|\u30aa\u30fc\u30ce\u30fc\uff01' ) : 'Level 22' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u30a4\u30a8\u30c6\u30a3\u3092\u898b\u307e\u3057\u305f\uff01|\u3044\u3044\u3048\u3001\u898b\u307e\u305b\u3093\u3067\u3057\u305f\u3002|\u3044\u3044\u3048\u3001\u898b\u307e\u305b\u3093\u3067\u3057\u305f\u3002' ) : 'Level 23' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u304a\u7236\u3055\u3093\u3001\u30e1\u30ea\u30fc\u30af\u30ea\u30b9\u30de\u30b9\uff01|\u3048\u3048\u3001\u3042\u308a\u304c\u3068\u3046\u3001\u3067\u3082\u30af\u30ea\u30b9\u30de\u30b9\u306e\u6642\u671f\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002|\u305d\u308c\u306a\u3089\u3001\u306a\u305c\u96ea\u304c\u964d\u3063\u3066\u3044\u308b\u306e\u3067\u3059\u304b\uff1f|\u79c1\u305f\u3061\u306f\u5c71\u306b\u3044\u308b\u304b\u3089\u3067\u3059|\u30af\u30ea\u30b9\u30de\u30b9\u306e\u5c71\uff01|\u3044\u3044\u3048\u3001\u305f\u3060\u306e\u5c71\u3067\u3059\u3002|\u5e78\u305b\u306a\u4f11\u65e5\uff01' ) : 'Level 24' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u79c1\u306f\u3053\u3053\u306e\u30d3\u30fc\u30c1\u3067\u7d20\u6575\u306a\u6642\u9593\u3092\u904e\u3054\u3057\u3066\u3044\u307e\u3059\uff01|\u3053\u308c\u306f\u30d3\u30fc\u30c1\u3067\u306f\u306a\u304f\u3001\u3053\u308c\u306f\u5c71\u3067\u3059\u3002|\u524d\u5411\u304d\u306a\u7cbe\u795e\u7684\u614b\u5ea6\u304c\u3042\u308c\u3070\u3001\u3069\u3053\u3067\u3082\u30d3\u30fc\u30c1\u306b\u306a\u308c\u307e\u3059\uff01|\u3044\u3044\u3048...\u3044\u3044\u3048\u3001\u305d\u308c\u306f\u6b63\u3057\u3044\u3068\u306f\u601d\u3044\u307e\u305b\u3093\u3002' ) : 'Level 25' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u305d\u306e\u7537\u305f\u3061\u306f\u4e00\u4f53\u3069\u3046\u306a\u3063\u3066\u3044\u308b\u306e\u304b\uff01|\u3068\u3066\u3082\u30af\u30fc\u30eb\u3060\uff01|\u3044\u3044\u3048\uff01\u30af\u30fc\u30eb\u3067\u306f\u3042\u308a\u307e\u305b\u3093\uff01\u5f7c\u3089\u306f\u79c1\u3092\u6bba\u305d\u3046\u3068\u3057\u305f\uff01\u5f7c\u3089\u306f\u3069\u3053\u304b\u3089\u30bd\u30fc\u30bb\u30fc\u30b8\u3092\u5165\u624b\u3057\u3066\u3044\u308b\u306e\u3067\u3057\u3087\u3046\u304b\uff1f\uff01|\u3042\u3042\u3001\u5f7c\u3089\u306f\u6b21\u5143\u9593\u30bd\u30fc\u30bb\u30fc\u30b8\u306e\u6e26\u304b\u3089\u305d\u308c\u3089\u3092\u5165\u624b\u3057\u307e\u3059\u3002|\u4f55\uff1f|\u305d\u308c\u306b\u3064\u3044\u3066\u8003\u3048\u306a\u3044\u3053\u3068\u304c\u304a\u305d\u3089\u304f\u6700\u5584\u3067\u3059\u3002' ) : 'Level 26' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3046\u308f\u3042\u3001\u304a\u7236\u3055\u3093\uff01\u305d\u308c\u306f\u304b\u306a\u308a\u306e\u843d\u4e0b\u3067\u3057\u305f\uff01\u5927\u4e08\u592b\u3067\u3059\u304b\uff1f|\u9aa8\u304c\u306a\u3044\u306e\u306f\u672c\u5f53\u306b\u3046\u308c\u3057\u3044\u3067\u3059\u3002|\u79c1\u3082\uff01' ) : 'Level 27' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u79c1\u306f\u3053\u306e\u96ea\u306e\u6d1e\u7a9f\u306b\u3046\u3093\u3056\u308a\u3057\u3066\u3044\u307e\u3059\u3002\u4eca\u3059\u3050\u5bb6\u306b\u5e30\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u304b\uff1f|\u79c1\u305f\u3061\u306f\u3053\u306e\u6642\u9593\u305a\u3063\u3068\u5bb6\u306b\u3044\u305f\u304b\u3082\u3057\u308c\u306a\u3044\u3002' ) : 'Level 28' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u79c1\u306f\u51cd\u3063\u3066\u3044\u307e\u3059|\u3042\u306a\u305f\u306f\u5143\u6c17\u3067\u3059\u3002|\u79c1\u306f\u6c37\u306e\u584a\u3067\u3059|\u6c37\u306e\u584a\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002|\u79c1\u306f\u79c1\u306e\u540d\u524d\u3092\u5c0f\u3055\u306a\u3064\u3089\u3089\u306b\u5909\u3048\u3066\u3044\u307e\u3059\u3002|\u305d\u308c\u306f\u3001\u3001\u3001\u304b\u306a\u308a\u826f\u3044\u3067\u3059\u306d\u3002' ) : 'Level 29' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3082\u3046\u4e00\u5ea6\uff01|\u307b\u3089\u3001\u524d\u306e\u3053\u3068\u306b\u672c\u5f53\u306b\u3054\u3081\u3093\u306a\u3055\u3044\u3002\u79c1\u306f\u305d\u306e\u3088\u3046\u306b\u91d1\u5207\u308a\u58f0\u3092\u4e0a\u3052\u308b\u3064\u3082\u308a\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3001\u79c1\u304c\u672c\u5f53\u306b\u7c21\u5358\u306b\u3073\u3063\u304f\u308a\u3059\u308b\u3060\u3051\u3067\u3059\u3002|\u306d\u3048\u3001\u5927\u4e08\u592b\u3067\u3059\u3001\u5fc3\u914d\u3057\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002|*\u91d1\u5207\u58f0*|\u3042\u3042\u3063\u3002' ) : 'Level 30' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3042\u306a\u305f\u306f\u78ba\u304b\u306b\u30dc\u30b9\u306e\u30b7\u30e3\u30ed\u30f3\u3092\u898b\u305b\u305f\uff01|\u79c1\u306f\u30dc\u30b9\u306e\u3088\u3046\u306b\u611f\u3058\u307e\u305b\u3093\u3002\u79c1\u306f\u75b2\u308c\u305f\u307f\u305f\u3044\u3002\u3059\u3054\u304f\u75b2\u308c\u305f\u3002\u79c1\u306f\u3042\u306a\u305f\u306e\u3059\u3079\u3066\u306e\u5b50\u4f9b\u3092\u898b\u3064\u3051\u3066\u5bb6\u306b\u5e30\u308a\u305f\u3044\u3060\u3051\u3067\u3059\u3002\u3069\u3046\u3057\u3066\u3053\u3093\u306a\u306b\u5b50\u4f9b\u304c\u591a\u3044\u306e\u3067\u3059\u304b\uff1f|\u3046\u30fc\u3093... \u308f\u304b\u3089\u306a\u3044...\u305f\u3076\u3093...\u80de\u5b50\uff1f|\u3044\u3044\u3048\u3001\u305d\u308c\u306f\u6b63\u3057\u304f\u306a\u3044\u3067\u3057\u3087\u3046\u3002' ) : 'Level 31' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3053\u306e\u5834\u6240\u306f\u4e0d\u6c17\u5473\u3067\u3059\uff01\u30b4\u30fc\u30b9\u30c8\u306e\u3088\u3046\u306a\u5302\u3044\u304c\u3059\u308b\uff01|\u30ab\u30d3\u306e\u5302\u3044\u304c\u3059\u308b\u3002|\u304b\u3073\u81ed\u3044\u30b4\u30fc\u30b9\u30c8\uff01' ) : 'Level 32' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u7206\u767a\u3057\u305f\u3088\u3046\u306a\u5974\u3089\uff01|\u79c1\u306f\u6c17\u3065\u3044\u305f\u3002|\u533b\u8005\u306b\u96fb\u8a71\u3059\u3079\u304d\u3060\u3068\u601d\u3046\u304b\uff1f|\u3044\u3084\u3001\u5f7c\u3089\u306f\u5927\u4e08\u592b\u3060\u3002' ) : 'Level 33' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u79d8\u5bc6\u306e\u4e0d\u6c17\u5473\u306a\u30c8\u30f3\u30cd\u30eb\u3078\u3088\u3046\u3053\u305d\uff01|\u3042\u308a\u304c\u3068\u3046\u3001\u5acc\u3044\u3060\u3002' ) : 'Level 34' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3053\u306e\u5834\u6240\u306f\u975e\u5e38\u306b\u5371\u967a\u3067\u3059\uff01\u306a\u305c\u3053\u3053\u306b\u3044\u308b\u306e\u3067\u3059\u304b\uff1f|\u306a\u305c\u3053\u3053\u306b\u3044\u308b\u306e\u3067\u3059\u304b\uff1f|\u79c1\u306f\u3053\u3053\u3067\u3042\u306a\u305f\u3092\u63a2\u3057\u3066\u3044\u307e\u3059\uff01|\u79c1\u306f\u3053\u3053\u3067\u3042\u306a\u305f\u3092\u63a2\u3057\u3066\u3044\u307e\u3059\uff01|\u3084\u3081\u3066\u304f\u3060\u3055\u3044\uff01' ) : 'Level 35' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3053\u308c\u304c\u30c9\u30a5\u30eb\u30ca\u30c3\u30af\u537f\u306e\u5bb6\u3067\u3059\uff01\u5f7c\u306f\u9b45\u529b\u7684\u306a\u7d33\u58eb\u3067\u3059\uff01|\u3042\u3042\u3001\u305d\u308c\u306f\u6717\u5831\u3067\u3059\uff01|\u5f7c\u306f\u4fb5\u5165\u8005\u3092\u62f7\u554f\u3059\u308b\u306e\u304c\u597d\u304d\u306a\u72c2\u4eba\u3067\u3082\u3042\u308a\u307e\u3059\uff01|\u3042\u3042\u3001\u305d\u3046\u3067\u3059\u3002' ) : 'Level 36' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3053\u306e\u5834\u6240\u306f\u3068\u3066\u3082\u4e0d\u6c17\u5473\u3067\u3059\u3002|\u98a8\u8239\u306f\u3044\u3044\u3067\u3059\u3002|\u672c\u5f53\u3067\u3059\u306d\u3002\u4e0d\u6c17\u5473\u306a\u8a95\u751f\u65e5\u30d1\u30fc\u30c6\u30a3\u30fc\u306e\u3088\u3046\u306a\u3082\u306e\u3067\u3059\u3002|\u305d\u306e\u901a\u308a\u3002' ) : 'Level 37' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u79c1\u306f\u4e0d\u6c17\u5473\u306a\u8981\u585e\u306e\u5973\u738b\u3067\u3059\uff01|\u3042\u306a\u305f\u306f\u5f7c\u5973\u306e\u5c31\u5bdd\u6642\u523b\u3092\u904e\u304e\u305f\u30e9\u30c7\u30a3\u30c3\u30b7\u30e5\u3067\u3059\u3002|\u4e0d\u6c17\u5473\u306a\u8981\u585e\u306e\u5973\u738b\uff01' ) : 'Level 38' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u3053\u306e\u5c4b\u5185\u30d7\u30fc\u30eb\u306f\u3069\u308c\u304f\u3089\u3044\u6dbc\u3057\u3044\u3067\u3059\u304b\uff1f|\u3053\u308c\u306f\u4e0b\u6c34\u3060\u3068\u78ba\u4fe1\u3057\u3066\u3044\u307e\u3059\u3002|\u3042\u3042...\u98f2\u3093\u3067\u3082\u5b89\u5168\u3060\u3068\u601d\u3044\u307e\u3059\u304b\uff1f|\u4eca\u8a00\u3046\u3068\u3053\u308d\u3060\u3063\u305f...\u3044\u3044\u3048\u3002|\u3042\u3042\u3002' ) : 'Level 39' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u304a\u7236\u3055\u3093\u3001\u3059\u3054\u3044\uff01\u3042\u306a\u305f\u304c\u3053\u306e\u3068\u304c\u3063\u305f\u30a8\u30ec\u30d9\u30fc\u30bf\u30fc\u3068\u304b\u3044\u3046\u3082\u306e\u3092\u901a\u308a\u904e\u304e\u308b\u3068\u306f\u601d\u3044\u307e\u305b\u3093\u3067\u3057\u305f\uff01|\u3042\u306a\u305f\u304c\u305f\u3060\u5bb6\u306b\u5c45\u305f\u3060\u3051\u306a\u3089\u3001\u79c1\u306f\u305d\u3046\u3059\u308b\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002|\u3067\u3082\u305d\u3046\u3057\u3066\u3044\u305f\u3089\u3001\u3042\u306a\u305f\u304c\u3069\u308c\u3060\u3051\u3059\u3054\u3044\u304b\u308f\u304b\u3089\u306a\u304b\u3063\u305f\uff01' ) : 'Level 40' == d.getCurrentSceneName() && c.setValue( 'Baby Logic', '_DialogText', '\u3084\u3063\u305f\u306d\u3001\u304a\u7236\u3055\u3093\uff01\u3042\u306a\u305f\u306f\u79c1\u305f\u3061\u5168\u54e1\u3092\u6551\u3063\u305f\uff01|\u79c1\u306f\u5b8c\u5168\u306b\u75b2\u308c\u305f\u3002\u5bb6\u306b\u5e30\u308b\u6642\u9593|\u304a\u7236\u3055\u3093\u5927\u597d\u304d\u3060\u3088\u3002|\u79c1\u3082\u5927\u597d\u304d\u3060\u3088\u3001\u76f8\u68d2\u3002\u3042\u306a\u305f\u306f\u5916\u51fa\u7981\u6b62\u3067\u3059\u3002' )); } } }, null ); d.runLater( 200, function (a) { if ( 'CN' == k.engine.getGameAttribute('Language') && !k.engine.getGameAttribute('Possum Mode') ) { a = 0; for (var b = d.getActorsOfType(d.getActorType(159)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || ('Level 1' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u55e8\uff0c\u7238\u7238\uff01\u4f60\u627e\u5230\u4e86\u6211\uff01|\u4f60\u771f\u7684\u6ca1\u6709\u8d70\u5f88\u8fdc\u2026\u2026|\u5728\u4f60\u6240\u6709\u7684\u5b69\u5b50\u4e2d\uff0c\u6211\u7edd\u5bf9\u662f\u6700\u61d2\u7684\u3002|\u5f88\u9ad8\u5174\u77e5\u9053\u3002' ) : 'Level 2' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u5662\uff0c\u7238\u7238\uff0c\u6211\u4e0d\u77e5\u9053\u4f60\u53ef\u4ee5\u53cc\u8df3\uff01|\u597d\u5427\uff0c\u5982\u679c\u4f60\u4e56\u4e56\u5446\u5728\u5bb6\u91cc\uff0c\u6211\u5c31\u4e0d\u5fc5\u53cc\u8df3\u4e86\u3002|\u53cc\u8df3\u592a\u9177\u4e86\uff01|*#Sigh*' ) : 'Level 3' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u563f\uff01|\u4ec0\u4e48\uff1f\uff01|\u51fa\u53bb\uff01|\u4e3a\u4ec0\u4e48\uff1f\uff01|\u8fd9\u662f\u4e00\u4e2a\u6ca1\u6709\u7238\u7238\u7684\u5730\u5e26\uff01\u8ff7\u8def\u4e86\uff01|\u5c31\u662f\u8fd9\u6837\uff0c\u4f60\u5df2\u7ecf\u7740\u9646\u4e86\u3002|\u62b1\u6b49\u3002' ) : 'Level 4' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u4f60\u8fd8\u5728\u8fd9\u91cc\u505a\u4ec0\u4e48\uff1f|\u4eab\u53d7\u6211\u751f\u547d\u4e2d\u6700\u7f8e\u597d\u7684\u65f6\u5149\uff01|\u5594\uff0c\u6211\u60f3\u90a3\u4e0d\u9519\uff0c\u4f46\u662f\u73b0\u5728\u8be5\u56de\u5bb6\u4e86\u3002|\u597d\u7684\uff0c\u8fd9\u5f88\u9177\u2026\u2026\u4eab\u53d7\u751f\u547d\u4e2d\u6700\u7f8e\u597d\u7684\u65f6\u5149\u8ba9\u4eba\u7cbe\u75b2\u529b\u5c3d\u3002' ) : 'Level 5' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u55e8\uff0c\u7238\u7238\uff01\u4f60\u8981\u53eb\u6211\u56de\u5bb6\u5417\uff1f|\u662f\u7684\uff0c\u6211\u4e00\u76f4\u5f88\u62c5\u5fc3\uff01|\u54e6\uff0c\u6211\u4e5f\u662f\u3002|\u4f60\u4ec0\u4e48\u610f\u601d\uff1f|\u6211\u6545\u610f\u4e0d\u65ad\u628a\u81ea\u5df1\u7f6e\u4e8e\u53ef\u6015\u7684\u5371\u9669\u4e4b\u4e2d\u3002\u6211\u5047\u88c5\u81ea\u5df1\u662f\u4e3a\u4e86\u523a\u6fc0\u800c\u8fd9\u6837\uff0c\u4f46\u5b9e\u9645\u4e0a\u6211\u53ea\u662f\u60f3\u8981\u5173\u6ce8\u3002|\u5f88\u597d\u3002' ) : 'Level 6' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u55e8\uff0c\u7238\u7238\uff01\u8fd9\u4e2a\u5730\u65b9\u4e0d\u662f\u5f88\u597d\u5417\uff1f|\u6211\u4e0d\u77e5\u9053\u2026\u2026\u5230\u5904\u90fd\u662f\u5c16\u5c16\u7684\u5371\u9669\u7269\u54c1\u3002|\u6211\u77e5\u9053\uff01\u592a\u9177\u4e86\uff01' ) : 'Level 7' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u8fd9\u4e2a\u6d1e\u7a74\u662f\u6211\u7684\u65b0\u5bb6\uff0c\u6211\u73b0\u5728\u4f4f\u5728\u8fd9\u91cc\u3002|\u4e0d\uff0c\u4f60\u4e0d\u662f\u3002|\u662f\uff0c\u6211\u662f\u3002|\u4e0d\uff0c\u4f60\u4e0d\u662f\u3002|\u597d\u5427\uff0c\u62b1\u6b49\u3002' ) : 'Level 8' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u54e6\u2026\u2026\u55ef\u2026\u2026\u4f60\u4e0d\u662f\u6211\u7684\u5b69\u5b50\u2026\u2026|*SCREECH*|\u54e6\u5929\u54ea\u3002' ) : 'Level 9' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u4e3a\u4ec0\u4e48\u4f60\u7684\u5b69\u5b50\u8981\u8eb2\u5728\u5982\u6b64\u5371\u9669\u7684\u5730\u65b9\uff1f\u4f60\u4e3a\u4ec0\u4e48\u4e0d\u80fd\u8eb2\u5728\u8d2d\u7269\u4e2d\u5fc3\u4e4b\u7c7b\u7684\u5730\u65b9\uff1f|\u7b49\u7b49\u2026\u2026\u8fd9\u4e0d\u662f\u8d2d\u7269\u4e2d\u5fc3\uff1f\u8fd9\u5c31\u89e3\u91ca\u4e86\u4e3a\u4ec0\u4e48\u4ed6\u4eec\u4e0d\u8ba9\u6211\u9000\u8fd8\u8fd9\u6761\u77ed\u88e4\u3002|\u77ed\u88e4\uff1f\uff01\u4f60\u751a\u81f3\u6ca1\u6709\u817f\uff01|\u90a3\u6b63\u662f\u6211\u8bd5\u56fe\u9000\u8fd8\u5b83\u4eec\u7684\u539f\u56e0\uff01' ) : 'Level 10' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u54c7\uff01\u4f60\u6253\u8d25\u4e86\u6c49\u5821\u5305\u90a3\u4e2a\u5947\u602a\u7684\u5bb6\u4f19\uff01|\u770b\uff0c\u6211\u5bf9\u6b64\u5e76\u4e0d\u5b8c\u5168\u611f\u89c9\u826f\u597d\u3002\u4ed6\u770b\u4e0a\u53bb\u50cf\u4e2a\u5f88\u4e0d\u9519\u7684\u5bb6\u4f19\u3002|\u4ed6\u8bd5\u56fe\u6740\u4f60\uff01|\u6211\u662f\u8bf4\uff0c\u662f\u7684\uff0c\u6211\u60f3\u662f\u7684\uff0c\u4f46\u662f\u2026\u2026\u55ef\u2026\u2026\u770b\uff0c\u6211\u5f88\u9ad8\u5174\u4f60\u6ca1\u4e8b\u3002|\u5929\u554a\uff0c\u6211\u4e5f\u662f\u3002\u8c22\u8c22\u7238\u7238\u3002' ) : 'Level 11' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u6211\u5728\u6d77\u6ee9\u4e0a\u5ea6\u8fc7\u4e86\u6109\u5feb\u7684\u4e00\u5929\uff01|\u8fd9\u662f\u6211\u89c1\u8fc7\u7684\u6700\u5371\u9669\u7684\u6d77\u6ee9\u3002|\u8fd9\u662f\u6211\u89c1\u8fc7\u7684\u6700\u523a\u6fc0\u7684\u6d77\u6ee9\uff01' ) : 'Level 12' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u8fd9\u4e2a\u89c2\u70b9\u5f88\u597d\uff01|\u5b83\u5f88\u4e0d\u9519\uff0c\u4f46\u5728\u6211\u4eec\u5bb6\u4e2d\u4e5f\u6709\u548c\u5b83\u4e00\u6837\u7684\u3002|\u5728\u89c6\u9891\u6e38\u620f\u4ea7\u4e1a\u4e2d\uff0c\u4ed6\u4eec\u79f0\u5176\u4e3a\u201c\u8d44\u4ea7\u91cd\u7528\u201d\u3002\u8fd9\u662f\u8282\u7701\u5185\u5b58\u5e76\u51cf\u5c11\u5f00\u53d1\u65f6\u95f4\u7684\u660e\u667a\u65b9\u6cd5\u3002|\u4ec0\u4e48\u662f\u201c\u89c6\u9891\u6e38\u620f\u4ea7\u4e1a\u201d\uff1f|\u6211\u4e0d\u77e5\u9053\u3002' ) : 'Level 13' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u8c22\u5929\u8c22\u5730\u4f60\u5728\u8fd9\u91cc|\u563f\uff0c\u6211\u4e5f\u5f88\u9ad8\u5174\u770b\u5230\u4f60\uff0c\u5b69\u5b50\uff01|\u6211\u6652\u6210\u8fd9\u6837\u4e86|\u54e6\u3002|\u4e3a\u4ec0\u4e48\u4f60\u7528\u4e86\u90a3\u4e48\u4e45' ) : 'Level 14' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u4f60\u770b\u5230\u6bd4\u8428\u997c\u90a3\u4e9b\u5c0f\u5bb6\u4f19\u4e86\u5417\uff1f|\u6211\u2026\u2026\u662f\u7684\u662f\u7684\u3002|\u4ed6\u4eec\u771f\u68d2\u3002|\u4ed6\u4eec\u2026\u2026\u60f3\u6740\u6211\u2026\u2026|\u597d\u6781\u4e86\u3002' ) : 'Level 15' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u563f\uff0c\u7238\u7238\uff01\u6211\u5728\u627e\u6d77\u53c2\uff01|\u600e\u4e48\u6837\uff1f|\u4e0d\u592a\u597d\uff0c\u5230\u76ee\u524d\u4e3a\u6b62\u6211\u8fd8\u6ca1\u6709\u627e\u5230\u3002|\u5662\uff0c\u90a3\u4e5f\u8bb8\u8be5\u56de\u5bb6\u4e86\u3002|\u4f46\u662f\u6d77\u53c2\u662f\u6211\u7684\u7231\u597d\uff01|\u56de\u5bb6\u662f\u6211\u7684\u7231\u597d\u3002|\u90a3\u4e0d\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u7231\u597d\u3002' ) : 'Level 16' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u6211\u4e0d\u77e5\u9053\u6211\u600e\u4e48\u4e0a\u5230\u8fd9\u91cc\u7684\u3002\u6211\u4e5f\u4e0d\u786e\u5b9a\u6211\u4eec\u5982\u4f55\u4e0b\u53bb\u3002|\u4e0d\u7528\u62c5\u5fc3\uff0c\u6211\u4eec\u53ea\u662f\u5728\u6bcf\u4e2a\u5173\u5361\u7684\u7ed3\u5c3e\u98de\u8d70\u3002|\u8fd9\u5f88\u65b9\u4fbf\uff01\u90a3\u4e2a\u600e\u4e48\u8fd0\u884c\uff1f|\u6211\u4e0d\u77e5\u9053\u3002|\u5173\u5361\u662f\u4ec0\u4e48\uff1f|\u518d\u6b21,\u201c no idea.\u201d' ) : 'Level 17' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u6211\u5f88\u9ad8\u5174\u4f60\u6ca1\u6709\u88ab\u90a3\u4e9b\u5c16\u5c16\u7684\u5927\u4e1c\u897f\u538b\u788e\uff01|\u8c22\u8c22\u513f\u5b50\uff0c\u8fd9\u5bf9\u6211\u6765\u8bf4\u771f\u7684\u5f88\u91cd\u8981\u3002|\u6ca1\u95ee\u9898\uff01' ) : 'Level 18' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u54e6\uff0c\u7238\u7238\uff01\u4f60\u5728\u8fd9\u91cc\u505a\u4ec0\u4e48\uff1f|\u4e3b\u8981\u662f\u5728\u5bfb\u627e\u6211\u7684\u8822\u5b69\u5b50\u3002|\u627e\u5230\u4ed6\u4eec\u4e86\u5417\uff1f|\u2026\u2026|\u54e6\u3002' ) : 'Level 19' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u554a\uff0c\u591a\u4e48\u60a0\u95f2\u7684\u6d77\u6ee9\u65f6\u5149\uff01|\u4f60\u7740\u9646\u4e86\u3002|\u5475\u5475\uff1f|\u4f60\u4eec\u90fd\u7740\u9646\u4e86\u3002|\u4ec0\u4e48\uff1f|\u6c38\u8fdc\u3002' ) : 'Level 20' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u54c7\uff01\u4f60\u51fb\u8d25\u4e86\u70ed\u72d7\uff01|\u90a3\u771f\u7684\u662f\u4ed6\u7684\u540d\u5b57\u5417\uff1f|\u662f\u7684\uff0c\u4ed6\u7684\u7236\u6bcd\u6709\u4e00\u79cd\u5947\u602a\u7684\u5e7d\u9ed8\u611f\u3002\u7236\u6bcd\u592a\u5947\u602a\u4e86\u3002|\u770b\u3002' ) : 'Level 21' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u8fd9\u91cc\u592a\u51b7\u4e86\uff0c\u6211\u7684\u811a\u8dbe\u6ca1\u77e5\u89c9\u4e86\uff01|\u4f60\u662f\u841d\u535c\uff0c\u4f60\u6ca1\u6709\u811a\u8dbe\u3002|\u54e6\uff0c\u4e0d\uff01' ) : 'Level 22' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u6211\u770b\u5230\u4e86\u96ea\u4eba\uff01|\u4e0d\uff0c\u4f60\u6ca1\u6709\u3002|\u6211\u6ca1\u6709\u3002' ) : 'Level 23' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u7238\u7238\uff0c\u5723\u8bde\u8282\u5feb\u4e50\uff01|\u5443\uff0c\u8c22\u8c22\uff0c\u4f46\u73b0\u5728\u4e0d\u662f\u5723\u8bde\u65f6\u95f4\u3002|\u90a3\u4e3a\u4ec0\u4e48\u4e0b\u96ea\u4e86\uff1f|\u56e0\u4e3a\u6211\u4eec\u5728\u5c71\u4e0a\u3002|\u4e00\u5ea7\u5723\u8bde\u5c71\uff01|\u4e0d\uff0c\u53ea\u662f\u4e00\u5ea7\u666e\u901a\u7684\u5c71\u3002|\u8282\u65e5\u5feb\u4e50\uff01' ) : 'Level 24' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u6211\u5728\u6d77\u6ee9\u4e0a\u5ea6\u8fc7\u4e86\u6109\u5feb\u7684\u65f6\u5149\uff01|\u8fd9\u4e0d\u662f\u6d77\u6ee9\uff0c\u8fd9\u662f\u4e00\u5ea7\u5c71\u3002|\u5982\u679c\u4f60\u6709\u79ef\u6781\u7684\u7cbe\u795e\u6001\u5ea6\uff0c\u4efb\u4f55\u5730\u65b9\u90fd\u53ef\u4ee5\u6210\u4e3a\u6d77\u6ee9\uff01|\u4e0d\u2026\u2026\u4e0d\uff0c\u6211\u8ba4\u4e3a\u90a3\u662f\u4e0d\u5bf9\u7684\u3002' ) : 'Level 25' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u8fd9\u4e9b\u5bb6\u4f19\u5230\u5e95\u600e\u4e48\u56de\u4e8b\uff1f\uff01|\u592a\u9177\u4e86\u5bf9\u5427\uff01|\u4e0d\uff01\u4e0d\u9177\uff01\u4ed6\u4eec\u8bd5\u56fe\u6740\u6211\uff01\u4ed6\u4eec\u4ece\u54ea\u91cc\u5f97\u5230\u8fd9\u4e9b\u9999\u80a0\uff1f\uff01|\u54e6\uff0c\u4ed6\u4eec\u662f\u4ece\u591a\u7ef4\u9999\u80a0\u6da1\u6d41\u90a3\u91cc\u5f97\u5230\u7684\u3002|\u4ec0\u4e48\uff1f|\u6700\u597d\u4e0d\u8981\u53bb\u60f3\u5b83\u3002' ) : 'Level 26' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u54c7\uff0c\u7238\u7238\uff01\u6454\u4e86\u4e00\u8de4\uff01\u4f60\u8fd8\u597d\u5417\uff1f|\u6211\u771f\u7684\u5f88\u9ad8\u5174\u6211\u6ca1\u6709\u9aa8\u5934\u3002|\u6211\u4e5f\u662f\uff01' ) : 'Level 27' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u6211\u5df2\u7ecf\u538c\u5026\u4e86\u8fd9\u4e2a\u96ea\u6d1e\uff0c\u73b0\u5728\u6211\u4eec\u53ef\u4ee5\u56de\u5bb6\u4e86\u5417\uff1f|\u6211\u4eec\u672c\u6765\u53ef\u4ee5\u4e00\u76f4\u5446\u5728\u5bb6\u91cc\u3002' ) : 'Level 28' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u6211\u51bb\u4f4f\u4e86|\u4f60\u8fd8\u597d\u3002|\u6211\u662f\u4e00\u5757\u51b0|\u4e0d\uff0c\u4f60\u4e0d\u662f\u3002|\u6211\u8981\u628a\u6211\u7684\u827a\u540d\u6539\u4e3a\u5c0f\u51b0\u67f1|\u90a3\u2026\u2026\u4e8b\u5b9e\u4e0a\u76f8\u5f53\u597d\u3002' ) : 'Level 29' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u53c8\u662f\u4f60\uff01|\u770b\uff0c\u5173\u4e8e\u4e4b\u524d\u6211\u771f\u7684\u5f88\u62b1\u6b49\u3002\u6211\u4e0d\u662f\u6545\u610f\u90a3\u6837\u5c16\u53eb\uff0c\u53ea\u662f\u6211\u771f\u7684\u5f88\u60ca\u8bb6\u3002|\u563f\uff0c\u6ca1\u5173\u7cfb\uff0c\u4f19\u8ba1\uff0c\u4e0d\u7528\u62c5\u5fc3\u3002|*SCREECH*|\u5662\uff0c\u6211\u7684\u5929\u54ea\u3002' ) : 'Level 30' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u4f60\u786e\u5b9a\u5411\u6c99\u9f99\u4ecb\u7ecd\u4e86\u8c01\u662f\u8001\u677f\uff01|\u6211\u611f\u89c9\u4e0d\u50cf\u8001\u677f\u3002\u6211\u7d2f\u4e86\u3002\u5f88\u7d2f\u3002\u6211\u53ea\u60f3\u627e\u5230\u6240\u6709\u7684\u5b69\u5b50\u7136\u540e\u56de\u5bb6\u3002\u4e3a\u4ec0\u4e48\u6211\u6709\u8fd9\u4e48\u591a\u5b69\u5b50\uff1f|\u55ef\u2026\u2026\u6211\u4e0d\u786e\u5b9a\u2026\u2026\u4e5f\u8bb8\u2026\u2026\u5b62\u5b50\uff1f|\u4e0d\uff0c\u542c\u8d77\u6765\u4e0d\u5bf9\u3002' ) : 'Level 31' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u8fd9\u4e2a\u5730\u65b9\u5f88\u6050\u6016\uff01\u8fd9\u91cc\u95fb\u8d77\u6765\u5c31\u50cf\u5e7d\u7075\uff01|\u95fb\u8d77\u6765\u50cf\u9709\u83cc\u3002|\u9709\u83cc\u5e7d\u7075\uff01' ) : 'Level 32' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u90a3\u4e9b\u5bb6\u4f19\u5c31\u50cf\u7206\u70b8\u4e86\uff01|\u6211\u6ce8\u610f\u5230\u4e86\u3002|\u4f60\u8ba4\u4e3a\u6211\u4eec\u5e94\u8be5\u627e\u533b\u751f\u5417\uff1f|\u4e0d\uff0c\u4ed6\u4eec\u4f1a\u6ca1\u4e8b\u7684\u3002' ) : 'Level 33' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u6b22\u8fce\u6765\u5230\u6211\u7684\u79d8\u5bc6\u6050\u6016\u96a7\u9053\uff01|\u8c22\u8c22\uff0c\u6211\u8ba8\u538c\u5b83\u3002' ) : 'Level 34' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u8fd9\u4e2a\u5730\u65b9\u6781\u4e3a\u5371\u9669\uff01\u4e3a\u4ec0\u4e48\u4f60\u8fd8\u5728\u8fd9\u91cc\uff1f|\u4e3a\u4ec0\u4e48\u4f60\u8fd8\u5728\u8fd9\u91cc\uff1f|\u6211\u5728\u8fd9\u91cc\u5bfb\u627e\u4f60\uff01|\u6211\u5728\u8fd9\u91cc\u5bfb\u627e\u4f60\uff01|\u505c\u4e0b\u6765\uff01' ) : 'Level 35' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u8fd9\u662f\u675c\u7eb3\u514b\u52cb\u7235\u7684\u623f\u5b50\uff01\u4ed6\u662f\u4e00\u4e2a\u6709\u9b45\u529b\u7684\u7ec5\u58eb\uff01|\u54e6\uff0c\u8fd9\u662f\u4e2a\u597d\u6d88\u606f\uff01|\u4ed6\u4e5f\u662f\u4e00\u4e2a\u559c\u6b22\u6298\u78e8\u5165\u4fb5\u8005\u7684\u75af\u5b50\uff01|\u54e6\uff0c\u5bf9\u3002' ) : 'Level 36' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u8fd9\u4e2a\u5730\u65b9\u8d85\u7ea7\u6050\u6016\u3002|\u6c14\u7403\u771f\u597d\u3002|\u662f\u7684\u3002\u5c31\u50cf\u4e00\u4e2a\u6050\u6016\u7684\u751f\u65e5\u805a\u4f1a\u3002|\u786e\u5b9e\u3002' ) : 'Level 37' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u6211\u662f\u6050\u6016\u57ce\u5821\u5973\u738b\uff01|\u4f60\u662f\u4e00\u4e2a\u7761\u8fc7\u5934\u7684\u841d\u535c\u3002|\u6050\u6016\u57ce\u5821\u5973\u738b\u2026\u2026\uff01' ) : 'Level 38' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u8fd9\u4e2a\u5ba4\u5185\u6e38\u6cf3\u6c60\u6709\u591a\u9177\uff1f|\u6211\u975e\u5e38\u786e\u5b9a\u8fd9\u662f\u6c61\u6c34\u3002|\u54e6\u2026\u2026\u4f60\u89c9\u5f97\u996e\u7528\u5b89\u5168\u5417\uff1f|\u6211\u8981\u8bf4\u2026\u2026\u4e0d\u3002|\u55ef\u54e6\u3002' ) : 'Level 39' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\u54c7\uff0c\u7238\u7238\uff0c\u4f60\u771f\u4e86\u4e0d\u8d77\uff01\u6211\u6ca1\u60f3\u5230\u4f60\u80fd\u901a\u8fc7\u8fd9\u4e2a\u5c16\u5c16\u7684\u5347\u964d\u673a\uff01|\u5982\u679c\u4f60\u5446\u5728\u5bb6\u91cc\uff0c\u6211\u5c31\u4e0d\u7528\u8fd9\u4e48\u505a\u4e86\u3002|\u4e0d\u8fc7\u90a3\u6837\u6211\u5c31\u4e0d\u77e5\u9053\u4f60\u6709\u591a\u68d2\u4e86!' ) : 'Level 40' == d.getCurrentSceneName() && c.setValue( 'Baby Logic', '_DialogText', '\u4f60\u505a\u5230\u4e86\uff0c\u7238\u7238\uff01\u4f60\u6551\u4e86\u6211\u4eec\u6240\u6709\u4eba\uff01|\u6211\u7cbe\u75b2\u529b\u5c3d\u4e86\u3002\u8be5\u56de\u5bb6\u4e86\u3002|\u6211\u7231\u4f60\uff0c\u7238\u7238\u3002|\u6211\u4e5f\u7231\u4f60\uff0c\u5b69\u5b50\u3002\u4f60\u7740\u9646\u4e86\u3002' )); } } }, null ); d.runLater( 200, function (a) { if ( 'KR' == k.engine.getGameAttribute('Language') && !k.engine.getGameAttribute('Possum Mode') ) { a = 0; for (var b = d.getActorsOfType(d.getActorType(159)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || ('Level 1' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc544\ube60 \uc548\ub155! \uc808 \ucc3e\uc73c\uc168\ub124\uc694!|\ubcc4\ub85c \uba40\ub9ac \uac00\uc9c0 \uc54a\uc558\uad6c\ub098...|\uc6b0\ub9ac \ud615\uc81c\ub4e4 \uc911\uc5d0\uc11c \uc804 \uac00\uc7a5 \uac8c\uc73c\ub974\uc796\uc544\uc694.|\ub2e4\ud589\uc774\uad6c\ub098.' ) : 'Level 2' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc640, \uc544\ube60\uac00 \ub354\ube14 \uc810\ud504\ub97c \ud558\uc2e4 \uc904 \ubab0\ub790\uc5b4\uc694!|\uc74c, \ub108\ud76c\uac00 \uc9d1\uc5d0 \uc798 \uc788\uc5c8\ub2e4\uba74 \ub0b4\uac00 \uc810\ud504\ud560 \ud544\uc694\ub3c4 \uc5c6\uc5c8\uc744 \uac70\ub780\ub2e4.|\ub354\ube14 \uc810\ud504 \uba4b\uc838\uc694!|*#\ud55c\uc228*' ) : 'Level 3' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc774\ubd10\uc694!|\ubb50?!|\ub2f9\uc7a5 \ub098\uac00\uc694!|\ubb50\ub77c\uace0?!|\uc5ec\uae34 \ubd80\ubaa8 \uae08\uc9c0\uad6c\uc5ed\uc774\uc5d0\uc694! \ub098\uac00\uc694!|\ub410\ub2e4, \ub10c \uc678\ucd9c \uae08\uc9c0\uc57c.|\uc8c4\uc1a1\ud574\uc694.' ) : 'Level 4' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc5ec\uae30\uc5d0\uc11c \ubb50 \ud558\uace0 \uc788\ub2c8?|\uc81c \uc778\uc0dd\uc744 \uc990\uae30\uace0 \uc788\uc5c8\uc5b4\uc694!|\uadf8\ub798, \uc88b\uc740 \uac70 \uac19\uae34 \ud55c\ub370 \uc774\uc81c \uc9d1\uc5d0 \uac08 \uc2dc\uac04\uc774\ub2e4.|\ub124, \uc88b\uc544\uc694... \uc778\uc0dd\uc744 \uc990\uae30\ub294 \uac83\ub3c4 \uc880 \ud798\ub4dc\ub124\uc694.' ) : 'Level 5' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc544\ube60 \uc548\ub155! \uc9d1\uc5d0 \uc624\ub77c\uace0 \ud558\uc2e4 \uac70\uc608\uc694?|\uadf8\ub798. \ub108\ubb34 \uac71\uc815\ud588\ub2e8\ub2e4!|\uc5b4, \uc800\ub450\uc694.|\ubb34\uc2a8 \ub9d0\uc774\ub2c8?|\uc804 \uc77c\ubd80\ub7ec \uacc4\uc18d \uc704\ud5d8\uc5d0 \ucc98\ud558\ub824\uace0 \ud588\uc5b4\uc694. \uc2a4\ub9b4\uc744 \uc990\uae30\ub294\ucc99 \ud588\uc9c0\ub9cc, \uc0ac\uc2e4\uc740 \uadf8\ub0e5 \uad00\uc2ec\ubc1b\uace0 \uc2f6\uc5c8\uc5b4\uc694.|\uadf8\ub807\uad6c\ub098.' ) : 'Level 6' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc544\ube60 \uc548\ub155! \uc5ec\uae30 \uba4b\uc788\uc9c0 \uc54a\uc544\uc694?|\ubaa8\ub974\uaca0\uad6c\ub098... \ubfb0\uc871\ud558\uace0 \uc704\ud5d8\ud55c \ubb3c\uac74\uc774 \ub108\ubb34 \ub9ce\uc544.|\uc54c\uc544\uc694! \uc815\ub9d0 \uba4b\uc788\uc5b4\uc694!' ) : 'Level 7' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc774 \ub3d9\uad74\uc774 \uc81c \uc0c8\uc9d1\uc774\uc5d0\uc694. \uc774\uc81c \uc5ec\uae30\uc5d0\uc11c \uc0b4 \uac70\uc608\uc694.|\uc548\ub3fc.|\uc5ec\uae30\uc11c \uc0b4 \uac70\uc608\uc694.|\uc548\ub41c\ub2e4\ub2c8\uae4c.|\uc54c\uc558\uc5b4\uc694. \uc8c4\uc1a1\ud574\uc694.' ) : 'Level 8' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc5b4... \uc74c... \uc81c \uc544\uc774\uac00 \uc544\ub2c8\uc2dc\ub124\uc694...|*\uaf64\uc561*|\uc5b4 \uc774\ub7f0.' ) : 'Level 9' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc598\ub4e4\uc544, \uc65c \uc774\ub807\uac8c \uc704\ud5d8\ud55c \uacf3\uc5d0 \uc228\ub294 \uac70\ub2c8? \uc1fc\ud551\ubab0 \uac19\uc740 \ub370\uc5d0 \uc228\uc744 \uc218\ub294 \uc5c6\ub2c8?|\uc7a0\uae50\ub9cc\uc694... \uc5ec\uae30 \uc1fc\ud551\ubab0 \uc544\ub2c8\uc5d0\uc694? \uc65c \ubc18\ubc14\uc9c0\ub97c \ubc18\ud488\ud574\uc8fc\uc9c0 \uc54a\uc558\ub294\uc9c0 \uc54c \uac83 \uac19\ub124\uc694.|\ubc18\ubc14\uc9c0?! \ub10c \ub2e4\ub9ac\ub3c4 \uc5c6\uc796\uc544!|\uc5b4, \uadf8\ub798\uc11c \ubc18\ubc14\uc9c0\ub97c \ud658\ubd88\ud558\ub824\uace0 \ud588\uc5b4\uc694!' ) : 'Level 10' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc6b0\uc640! \uc800 \uc774\uc0c1\ud55c \ud584\ubc84\uac70\ub97c \uc774\uae30\uc168\ub124\uc694!|\uc608\uc57c, \ubcc4\ub85c \uae30\ubd84\uc774 \uc88b\uc9c4 \uc54a\uad6c\ub098. \uaf64 \uc88b\uc740 \uc0ac\ub78c \uac19\uc558\uc5b4.|\uc544\ube60\ub97c \uc8fd\uc774\ub824\uace0 \ud588\uc5b4\uc694!|\uadf8\ub2c8\uae4c \ubb50 \uadf8\ub7f0 \uac83 \uac19\uae34 \ud55c\ub370... \uc74c... \ubb34\uc0ac\ud55c \uac83 \uac19\uc544\uc11c \ub2e4\ud589\uc774\uad6c\ub098.|\uc544\ube60\ub3c4 \ubb34\uc0ac\ud574\uc11c \ub2e4\ud589\uc774\uc5d0\uc694. \uace0\ub9c8\uc6cc\uc694, \uc544\ube60.' ) : 'Level 11' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\ubc14\ub2f7\uac00\uc5d0\uc11c \ub180\uace0 \uc788\uc5c8\uc5b4\uc694!|\uc5ec\uae34 \ub0b4\uac00 \uac00\ubcf8 \ubc14\ub2f7\uac00 \uc911\uc5d0\uc11c \uac00\uc7a5 \uc704\ud5d8\ud55c \uacf3\uc774\uad6c\ub098.|\uc81c\uac00 \uac00\ubcf8 \ubc14\ub2f7\uac00 \uc911 \uac00\uc7a5 \uc7ac\ubbf8\uc788\ub294 \uacf3\uc774\uc5d0\uc694!' ) : 'Level 12' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc5ec\uae30 \uacbd\uce58\uac00 \uc815\ub9d0 \uba4b\uc838\uc694!|\uba4b\uc9c0\uad6c\ub098, \ud558\uc9c0\ub9cc \uc9d1\uc5d0\ub3c4 \uc774\ub7f0 \uacf3\uc774 \uc788\uc9c0 \uc54a\ub2c8.|\uac8c\uc784 \uc0b0\uc5c5\uc5d0\uc11c\ub294 \u201c\ub9ac\uc18c\uc2a4 \uc7ac\ud65c\uc6a9\u201d\uc774\ub77c\uace0 \ud558\uc8e0. \uba54\ubaa8\ub9ac\ub97c \uc808\uc57d\ud558\uace0 \uac1c\ubc1c \uc2dc\uac04\uc744 \uc544\ub07c\ub294 \ub370 \uc88b\uc740 \ubc29\ubc95\uc774\uc5d0\uc694.|\u201d\uac8c\uc784 \uc0b0\uc5c5\u201d\uc774 \ubb50\ub2c8\u201c\u201c?|\ubaa8\ub974\uaca0\uc5b4\uc694.' ) : 'Level 13' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc544\ube60\uac00 \uc624\uc154\uc11c \ub2e4\ud589\uc774\uc5d0\uc694|\uc544\uac00\uc57c, \ub2e4\uc2dc \ubd10\uc11c \uc815\ub9d0 \ub2e4\ud589\uc774\uad6c\ub098!|\ud587\ubcd5\uc5d0 \ub108\ubb34 \ub9ce\uc774 \ud0d4\uc5b4\uc694|\uc774\ub7f0.|\uc65c \uc774\ub807\uac8c \uc624\ub798 \uac78\ub9ac\uc168\uc5b4\uc694' ) : 'Level 14' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc800\uae30 \uc791\uc740 \ud53c\uc790 \ubcf4\uc168\uc5b4\uc694?|\uc5b4... \ubd24\uc9c0. \uadf8\ub798.|\uaf64 \uba4b\uc788\ub294 \uac70 \uac19\uc544\uc694.|\uc800\uac74... \ub0a0 \uc8fd\uc774\ub824\uace0 \ud588\uc5b4...|\uaf64 \uba4b\uc788\ub124\uc694.' ) : 'Level 15' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc544\ube60! \ud574\uc0bc\uc744 \ucc3e\uace0 \uc788\uc5c8\uc5b4\uc694!|\uc5bc\ub9c8\ub098 \ucc3e\uc558\ub2c8?|\uadf8\ub2e4\uc9c0 \uc548 \uc88b\uc544\uc694. \ubcc4\ub85c \ubabb \uc7a1\uc558\uc5b4\uc694|\uadf8\ub7fc, \uc774\uc81c \uc9d1\uc5d0 \uac00\uba74 \ub418\uaca0\ub2e4.|\ud558\uc9c0\ub9cc \ud574\uc0bc\uc740 \uc81c \uc778\uc0dd\uc758 \ubaa9\ud45c\ub77c\uace0\uc694!|\uc9d1\uc5d0 \uac00\ub294 \uac74 \ub0b4 \uc778\uc0dd\uc758 \ubaa9\ud45c\ub780\ub2e4.|\uadf8\ub807\uac8c \uc88b\uc740 \ubaa9\ud45c\ub294 \uc544\ub2c8\ub124\uc694.' ) : 'Level 16' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc5ec\uae30\uc5d0 \uc5b4\ub5bb\uac8c \uc654\ub294\uc9c0 \uc804\ud600 \ubaa8\ub974\uaca0\uc5b4\uc694. \uc5b4\ub5bb\uac8c \ub0b4\ub824\uac00\uc57c \ud558\ub294\uc9c0\ub3c4 \ubaa8\ub974\uaca0\uc5b4\uc694.|\uac71\uc815\ud558\uc9c0 \ub9d0\ub834. \ub808\ubca8\uc774 \ub05d\ub0a0 \ub54c\ub9c8\ub2e4 \uadf8\ub0e5 \ub0a0\uc544\uac04\ub2e8\ub2e4.|\uadf8\uac83\ucc38 \ud3b8\ub9ac\ud558\ub124\uc694! \uc5b4\ub5bb\uac8c \ud558\ub294 \uac70\uc608\uc694?|\ub098\ub3c4 \ubaa8\ub978\ub2e8\ub2e4.|\u201d\ub808\ubca8\u201d\uc740 \ub610 \ubb50\uc5d0\uc694?|\uadf8\uac83\ub3c4 \ubaa8\ub974\uaca0\uad6c\ub098.,\u201c no idea.\u201d' ) : 'Level 17' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc800 \ucee4\ub2e4\ub780 \uac00\uc2dc \uc0c1\uc790\uc5d0 \uae54\ub9ac\uc9c0 \uc54a\uc544\uc11c \ucc38 \ub2e4\ud589\uc774\uc5d0\uc694!|\uace0\ub9d9\uad6c\ub098 \uc544\ub4e4\uc544. \uadf8\uac83\ucc38 \ub3c4\uc6c0\uc774 \ub410\uc5b4.|\ucc9c\ub9cc\uc5d0\uc694!' ) : 'Level 18' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc640, \uc544\ube60 \uc548\ub155! \uc5ec\uae30\uc5d0\uc11c \ubb50 \ud558\uc138\uc694?|\uc6b0\ub9ac \uba4d\uccad\ud55c \uc544\uc774\ub4e4\uc744 \ucc3e\uace0 \uc788\uc9c0.|\uba4d\uccad\ud55c \uc560\ub4e4\uc740 \uc798 \ucc3e\uc73c\uc168\uc5b4\uc694?|...|\uc544.' ) : 'Level 19' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\ud574\ubcc0\uc5d0\uc11c \uc26c\ub2c8\uae4c \uc88b\ub124\uc694!|\ub10c \uc678\ucd9c \uae08\uc9c0\uc57c..|\ub124?|\ub108\ub124 \uc804\ubd80 \uc678\ucd9c \uae08\uc9c0\uc57c.|\ubb50\ub77c\uace0\uc694?|\uc601\uc6d0\ud788.' ) : 'Level 20' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc640! \ud56b\ub3c4\uadf8\ub97c \ubb3c\ub9ac\uce58\uc168\uc5b4\uc694!|\uadf8\uac70 \uc9c4\uc9dc \uc774\ub984\uc778 \uac70\uc57c?|\ub124, \ud56b\ub3c4\uadf8\ub124 \ubd80\ubaa8\ub2d8\ub4e4\uc758 \uc791\uba85 \uc13c\uc2a4\uac00 \ubcc4\ub85c\uc600\ub358 \uac70 \uac19\uc544\uc694. \ubd80\ubaa8\ub2d8\ub4e4\uc774 \uc815\ub9d0 \uc774\uc0c1\ud574\uc694.|\ub9d0\uc870\uc2ec\ud558\ub834.' ) : 'Level 21' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\ub108\ubb34 \ucd94\uc6cc\uc694. \ubc1c\uac00\ub77d\uc5d0 \uac10\uac01\uc774 \uc5c6\uc5b4\uc694!|\ub108\ub294 \ubb34\ub2c8\uae4c \ubc1c\uac00\ub77d\ub3c4 \uc5c6\uc796\ub2c8.|\uc774\ub7f0!' ) : 'Level 22' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc124\uc778\uc744 \ubd24\uc5b4\uc694!|\uc544\ub2c8, \ubcf8 \uc801 \uc5c6\ub2e4.|\ub124, \ubcf8 \uc801 \uc5c6\uc8e0.' ) : 'Level 23' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc544\ube60, \uba54\ub9ac \ud06c\ub9ac\uc2a4\ub9c8\uc2a4!|\uc5b4, \uace0\ub9d9\uad6c\ub098. \uadfc\ub370 \ud06c\ub9ac\uc2a4\ub9c8\uc2a4 \uc2dc\uc98c\uc774 \uc544\ub2c8\ub780\ub2e4.|\uadf8\ub7fc \uc65c \ub208\uc774 \uc624\uc8e0?|\uc6b0\ub9ac\uac00 \uc0b0\uc5d0 \uc788\uc73c\ub2c8\uae4c.|\ud06c\ub9ac\uc2a4\ub9c8\uc2a4 \uc0b0\uc774\ub124\uc694!|\uc544\ub2c8, \uadf8\ub0e5 \uc0b0\uc774\uc57c.|\ud589\ubcf5\ud55c \uc131\ud0c4\uc808!' ) : 'Level 24' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\ubc14\ub2f7\uac00\uc5d0\uc11c \uc815\ub9d0 \uba4b\uc9c4 \uc2dc\uac04\uc744 \ubcf4\ub0b4\uace0 \uc788\uc5c8\uc5b4\uc694!|\uc5ec\uae34 \ubc14\ub2f7\uac00\uac00 \uc544\ub2c8\ub780\ub2e4. \uc5ec\uae34 \uc0b0\uc774\uc9c0.|\uc5b4\ub514\ub4e0\uc9c0 \ubc14\ub2f7\uac00\uac00 \ub420 \uc218 \uc788\uc5b4\uc694. \uae0d\uc815\uc801\uc778 \uc790\uc138\ub97c \uac00\uc9c0\uc138\uc694!|\uc544\ub2c8... \uadf8\uac74 \uc633\uc9c0 \uc54a\uc544.' ) : 'Level 25' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc800 \uc790\uc2dd\ub4e4\uc740 \ub300\uccb4 \uc65c \uc800\ub7ec\ub294 \uac70\uc57c?|\uc644\uc804 \uba4b\uc788\uc8e0!|\uc544\ub2c8! \uba4b\uc788\uc9c0 \uc54a\uc544! \ub0a0 \uc8fd\uc774\ub824\uace0 \ud588\ub2e4\uace0! \uc800 \uc18c\uc2dc\uc9c0\ub4e4\uc740 \ub300\uccb4 \uc5b4\ub514\uc5d0\uc11c \uc628 \uac70\uc57c?!|\uc5b4, \ub0b4\ucc28\uc6d0\uc758 \uc18c\uc2dc\uc9c0 \uc18c\uc6a9\ub3cc\uc774\uc5d0\uc11c \uc654\uc5b4\uc694.|\ub0b4\ucc28\uc6d0, \ubb50?|\uadf8\ub0e5 \uc0dd\uac01\ud558\uc9c0 \uc54a\ub294 \uac8c \ub098\uc744 \uac70 \uac19\uc544\uc694.' ) : 'Level 26' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc640 \uc544\ube60! \uba4b\uc9c4 \ucc29\ub959\uc774\uc5c8\uc5b4\uc694! \uad1c\ucc2e\uc73c\uc138\uc694?|\ub0b4\uac8c \ubf08\uac00 \uc5c6\uc5b4\uc11c \uc815\ub9d0 \ub2e4\ud589\uc774\uad6c\ub098.|\uc800\ub450\uc694!' ) : 'Level 27' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc5ec\uae30 \ub208 \ub3d9\uad74\uc5d0 \uc9c8\ub838\uc5b4\uc694. \uc9d1\uc5d0 \uac00\uba74 \uc548 \ub3fc\uc694?|\uc9c0\uae08\uae4c\uc9c0 \uacc4\uc18d \uc9d1\uc5d0 \uc788\uc5b4\uc57c \ud588\ub2e8\ub2e4.' ) : 'Level 28' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', "\uc800\ub294 \uc5bc\uc5c8\uc5b4\uc694|\uad1c\ucc2e\ub2e8\ub2e4.|\uc800\ub294 \uc5bc\uc74c\ub369\uc5b4\ub9ac\uc608\uc694|\uc544\ub2c8\ub780\ub2e4.|\uc800\ub294 \ub7a9 \ub124\uc784\uc744 \u201cLIL' ICICLE\u201d\u201d\uc774\ub77c\uace0 \ubc14\uafc0 \uac70\uc608\uc694|\uadf8\uac70... \uaf64 \uba4b\uc9c0\uad6c\ub098." ) : 'Level 29' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\ub610 \ubcf4\ub124\uc694!|\uc774\uc804\uc5d0\ub294 \ubbf8\uc548\ud588\uc5b4\uc694. \uadf8\ub807\uac8c \ube44\uba85\uc744 \uc9c0\ub97c \uc0dd\uac01\uc740 \uc5c6\uc5c8\uc5b4\uc694. \uadf8\ub0e5 \uc81c\uac00 \uc815\ub9d0 \uc798 \ub180\ub77c\uc694.|\uc774\ubd10\uc694, \uad1c\ucc2e\uc544\uc694. \uac71\uc815\ud558\uc9c0 \ub9c8\uc138\uc694.|*\uaf64\uc561*|\uc544, \uc774\ub7f0.' ) : 'Level 30' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc0e4\ub860\uc5d0\uac8c \ubcf8\ub54c\ub97c \ubcf4\uc5ec\uc92c\uc5b4\uc694!|\ubcf8\ub54c\uac00 \ubb54\uc9c0\ub294 \uc798 \ubaa8\ub974\uaca0\uad6c\ub098. \ud53c\uace4\ud558\uad6c\ub098. \ub108\ubb34 \ud53c\uace4\ud574. \uadf8\ub0e5 \ub108\ud76c\ub4e4\uc744 \ubaa8\ub450 \ucc3e\uc544 \uc9d1\uc5d0 \uac00\uace0 \uc2f6\uad6c\ub098. \uc65c \uc774\ub807\uac8c \uc560\uac00 \ub9ce\uc740 \uac70\uc9c0?|\uc74c... \uc798 \ubaa8\ub974\uaca0\ub124\uc694... \uc544\ub9c8... \ud3ec\uc790\ub85c \ubc88\uc2dd\ud558\uc168\uc5b4\uc694?|\uc74c, \uadf8\uac74 \uc544\ub2cc \uac83 \uac19\uad6c\ub098.' ) : 'Level 31' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc5ec\uae30 \uc815\ub9d0 \uc73c\uc2a4\uc2a4\ud574\uc694! \uadc0\uc2e0 \ub0c4\uc0c8\uac00 \ub098\ub294 \uac83 \uac19\uc544\uc694!|\uacf0\ud321\uc774 \ub0c4\uc0c8\uaca0\uc9c0.|\uacf0\ud321\uc774 \uadc0\uc2e0!' ) : 'Level 32' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc7e4\ub124\ub4e4\uc774, \ub9c9, \ud130\uc84c\uc5b4\uc694!|\ubd24\ub2e8\ub2e4.|\uc758\uc0ac\ub97c \ubd88\ub7ec\uc57c \ud560\uae4c\uc694?|\uc544\ub2c8, \uc544\ub9c8 \uad1c\ucc2e\uc744 \uac8c\ub2e4.' ) : 'Level 33' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc81c \ube44\ubc00\uc758 \uadc0\uc2e0 \ud130\ub110\uc5d0 \uc628 \uac78 \ud658\uc601\ud569\ub2c8\ub2e4!!|\uace0\ub9d9\uad6c\ub098, \ub9d8\uc5d0\ub294 \uc548 \ub4e4\uc9c0\ub9cc.' ) : 'Level 34' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc5ec\uae30\ub294 \uc815\ub9d0 \uc704\ud5d8\ud574! \uc65c \uc5ec\uae30\uc5d0 \uc788\ub294 \uac70\ub2c8?|\uc65c \uc5ec\uae30\uc5d0 \uc788\uc73c\uc2e0 \uac74\ub370\uc694?|\ub09c \ub108\ub97c \ucc3e\uc73c\ub7ec \uc654\uc5b4!|\uc804 \uc544\ube60\ub97c \ucc3e\uc73c\ub7ec \uc654\uc5b4\uc694!|\uadf8\ub9cc\ud574!' ) : 'Level 35' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc5ec\uae30\ub294 \ub85c\ub4dc \ub354\ub098\ud06c\uc758 \uc9d1\uc774\uc5d0\uc694! \uadf8\ub294 \uba4b\uc9c4 \uc2e0\uc0ac\uc608\uc694!|\uadf8\uac83\ucc38, \uc88b\uc740 \uc18c\uc2dd\uc774\uad6c\ub098!|\uadf8\ub9ac\uace0 \uce68\uc785\uc790\ub97c \uace0\ubb38\ud558\uae38 \uc88b\uc544\ud558\ub294 \ubbf8\uce5c\ub188\uc774\ub798\uc694!|\uc544, \uadf8\ub807\uad6c\ub098.' ) : 'Level 36' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc815\ub9d0 \uc624\uc2f9\ud55c \uacf3\uc774\uad6c\ub098.|\ud48d\uc120\uc774 \uba4b\uc838\uc694.|\uadf8\uac74 \uadf8\ub798. \uc624\uc2f9\ud55c \uc0dd\uc77c\ud30c\ud2f0 \uac19\uad6c\ub098.|\uadf8\ub7ec\uac8c\uc694.' ) : 'Level 37' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\ub098\ub294 \uc73c\uc2a4\uc2a4\ud55c \uc694\uc0c8\uc758 \uc5ec\uc655\uc774\ub2e4!|\ub10c \uc790\ub7ec \uac00\uc57c \ud560 \uc2dc\uac04\uc774 \uc9c0\ub09c \ubb34\ub780\ub2e4.|\uc73c\uc2a4\uc2a4\ud55c \uc694\uc0c8\uc758 \uc5ec\uc5b4\uc5b4\uc5b4\uc655!' ) : 'Level 38' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc5ec\uae30 \uc2e4\ub0b4 \uc218\uc601\uc7a5 \uc9c4\uc9dc \uba4b\uc788\uc9c0 \uc54a\uc544\uc694?|\ub0b4 \uc0dd\uac01\uc5d0\ub294 \ud558\uc218\uad6c\uc778 \uac83 \uac19\uad6c\ub098.|\uc5b4... \ub9c8\uc154\ub3c4 \uc548\uc804\ud560\uae4c\uc694?|\uc544\ub9c8... \uc544\ub2d0 \uac83 \uac19\uad6c\ub098.|\uc5b4 \uc774\ub7f0.' ) : 'Level 39' == d.getCurrentSceneName() ? c.setValue( 'Baby Logic', '_DialogText', '\uc640, \uc544\ube60 \uc815\ub9d0 \ub300\ub2e8\ud574\uc694! \uc800 \uac00\uc2dc \ub2ec\ub9b0 \uc5d8\ub9ac\ubca0\uc774\ud130\ub97c \uc9c0\ub098\uc624\uc2e4 \uc904 \ubab0\ub790\uc5b4\uc694!|\ub124\uac00 \uc9d1\uc5d0 \uc788\uc5c8\ub2e4\uba74 \uadf8\ub7f4 \ud544\uc694\uac00 \uc5c6\uc5c8\ub2e8\ub2e4.|\ud558\uc9c0\ub9cc \uadf8\ub7fc \uc544\ube60\uac00 \ub300\ub2e8\ud558\ub2e4\ub294 \uac83\ub3c4 \ubab0\ub790\uc744 \uac70\uc608\uc694!' ) : 'Level 40' == d.getCurrentSceneName() && c.setValue( 'Baby Logic', '_DialogText', '\uc544\ube60\uac00 \ud574\ub0c8\uc5b4\uc694! \uc544\ube60\uac00 \ubaa8\ub450\ub97c \uad6c\ud588\uc5b4\uc694!|\ub108\ubb34 \uc9c0\ucce4\uad6c\ub098. \uc774\uc81c \uc9d1\uc5d0 \uac00\uc790.|\uc0ac\ub791\ud574\uc694 \uc544\ube60.|\ub098\ub3c4 \uc0ac\ub791\ud55c\ub2e8\ub2e4, \uc544\uac00. \ub10c \uc678\ucd9c \uae08\uc9c0\uc57c.' )); } } }, null ); this.addListener(d.engine.whenDrawing, q(this, this._event_Timer)); d.runPeriodically(1, q(this, this._event_TimerCount), null); d.runPeriodically(700, q(this, this._event_Snow), null); }, forwardMessage: function (a) {}, __class__: Pu }); var Qu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Face Left'] = '_FaceLeft'; this._FaceLeft = !1; this.nameMap.h.Speed = '_Speed'; this._Speed = 8; this.nameMap.h.Dude = '_Dude'; this.nameMap.h['Distance X'] = '_DistanceX'; this._DistanceX = 0; this.nameMap.h['Distance Y'] = '_DistanceY'; this._DistanceY = 0; this.nameMap.h.Distance = '_Distance'; this._Distance = 0; this.nameMap.h.Detonate = '_Detonate'; this._Detonate = !1; this.nameMap.h['Debris Speed'] = '_DebrisSpeed'; this._DebrisSpeed = 0; this.nameMap.h['Detonate Timer'] = '_DetonateTimer'; this._DetonateTimer = 0; this.nameMap.h['Has Spring'] = '_HasSpring'; this._HasSpring = !1; this.nameMap.h.Spring = '_Spring'; }; h['scripts.Design_51_51_BackAndForthMovement'] = Qu; Qu.__name__ = 'scripts.Design_51_51_BackAndForthMovement'; Qu.__super__ = u; Qu.prototype = r(u.prototype, { _FaceLeft: null, _Speed: null, _Dude: null, _DistanceX: null, _DistanceY: null, _Distance: null, _Detonate: null, _DebrisSpeed: null, _DetonateTimer: null, _HasSpring: null, _Spring: null, _event_Updating: function (a) { var b = this; if (this.wrapper.enabled) { if ( !this._Detonate && (this._FaceLeft && (!d.tileExistsAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32 + 1), Math.floor(this.actor.getX() / 32), d.engine.getLayerById(0) ) || (d.tileExistsAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32), Math.floor(this.actor.getX() / 32), d.engine.getLayerById(0) ) && 7 < d.getTileIDAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32), Math.floor(this.actor.getX() / 32), d.engine.getLayerById(0) ))) ? ((this._FaceLeft = !1), this.actor.setAnimation('Right')) : this._FaceLeft || (d.tileExistsAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32 + 1), Math.ceil(this.actor.getX() / 32), d.engine.getLayerById(0) ) && !( d.tileExistsAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32), Math.ceil(this.actor.getX() / 32), d.engine.getLayerById(0) ) && 7 < d.getTileIDAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32), Math.ceil(this.actor.getX() / 32), d.engine.getLayerById(0) ) )) || ((this._FaceLeft = !0), this.actor.setAnimation('Left')), this._FaceLeft ? this.actor.setXVelocity(-this._Speed) : this.actor.setXVelocity(this._Speed), this.actor.getType() == d.getActorType(401)) ) if ( ((a = this._Dude), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) ) (a = this._Dude), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Dude.isAlive() && ((this._DistanceX = this._Dude.getXCenter() - this.actor.getXCenter()), (this._DistanceY = this._Dude.getYCenter() - this.actor.getYCenter()), (this._Distance = Math.sqrt( Math.pow(this._DistanceX, 2) + Math.pow(this._DistanceY, 2) )), 100 > this._Distance && !this._Detonate && ((this._Detonate = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSoundOnChannel(d.getSound(413), 9), this.actor.setXVelocity(0), this._FaceLeft ? this.actor.setAnimation('Left Detonate') : this.actor.setAnimation('Right Detonate'), d.runLater( 800, function (a) { d.stopSoundOnChannel(9); b.actor.setAnimation('Explode'); d.runLater( 100, function (a) { b.actor.isOnScreen() && (k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(405)), d.startShakingScreen(0.01, 0.1)); a = 0; for (var c = d.getActorsOfType(d.getActorType(2)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || (b.actor.getXCenter() > e.getXCenter() ? d.setValueForScene( 'Stage Logic', '_RumbleName', 'Cannon Right' ) : d.setValueForScene( 'Stage Logic', '_RumbleName', 'Cannon Left' ), d.sayToScene('Stage Logic', '_customEvent_rumble')); } d.createRecycledActorOnLayer( d.getActorType(403), b.actor.getXCenter() - 80, b.actor.getYCenter() - 80, d.engine.getLayerById(b.actor.getLayerID()) ); b._DebrisSpeed = 30; d.createRecycledActor( d.getActorType(406), b.actor.getX() - 8, b.actor.getY() - 4, 0 ); d.getLastCreatedActor().setAnimation('1'); d.getLastCreatedActor().setXVelocity(-b._DebrisSpeed); d.getLastCreatedActor().setYVelocity(-b._DebrisSpeed); d.createRecycledActor( d.getActorType(406), b.actor.getX() - 8, b.actor.getY() + 24, 0 ); d.getLastCreatedActor().setAnimation('2'); d.getLastCreatedActor().setXVelocity(b._DebrisSpeed); d.getLastCreatedActor().setYVelocity(-b._DebrisSpeed); d.createRecycledActor( d.getActorType(406), b.actor.getX() + 14, b.actor.getY() - 4, 0 ); d.getLastCreatedActor().setAnimation('3'); d.getLastCreatedActor().setXVelocity(-b._DebrisSpeed); d.getLastCreatedActor().setYVelocity(b._DebrisSpeed); d.createRecycledActor( d.getActorType(406), b.actor.getX() + 14, b.actor.getY() + 24, 0 ); d.getLastCreatedActor().setAnimation('4'); d.getLastCreatedActor().setXVelocity(b._DebrisSpeed); d.getLastCreatedActor().setYVelocity(b._DebrisSpeed); d.recycleActor(b.actor); }, b.actor ); }, this.actor ))); else { a = 0; for (var c = d.getActorsOfType(d.getActorType(2)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || (this._Dude = e); } } a = this._Spring; if (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) this._Spring.setX(this.actor.getX() + 2), this._Spring.setY(this.actor.getY() - 12); } }, _event_EveryNsecs: function (a) { if (this.wrapper.enabled && this._Detonate) { a = 0; for (var b = Math.max(1, Math.round(this._DetonateTimer / 2)) | 0; a < b; ) a++, d.createRecycledActorOnLayer( d.getActorType(94), d.randomInt((this.actor.getXCenter() - 16) | 0, this.actor.getXCenter() | 0), this.actor.getY(), d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().moveToBottom(), d.getLastCreatedActor().moveBy(0, d.randomInt(-16, -32), 0.3, J.backOut), d.getLastCreatedActor().setAnimation('Dirt'); this._DetonateTimer += 1; } }, init: function () { this.actor.makeAlwaysSimulate(); this._FaceLeft || this.actor.setAnimation('Right'); this._HasSpring && (d.createRecycledActorOnLayer( d.getActorType(62), this.actor.getX() + 2, this.actor.getY() - 12, d.engine.getLayerById(this.actor.getLayerID()) ), (this._Spring = d.getLastCreatedActor()), this._Spring.moveToBottom(), this.actor.moveToBottom()); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); d.runPeriodically(100, q(this, this._event_EveryNsecs), this.actor); }, forwardMessage: function (a) {}, __class__: Qu }); var Ru = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Camera Number'] = '_CameraNumber'; this._CameraNumber = 0; }; h['scripts.Design_55_55_CameraSensorLogic'] = Ru; Ru.__name__ = 'scripts.Design_55_55_CameraSensorLogic'; Ru.__super__ = u; Ru.prototype = r(u.prototype, { _CameraNumber: null, init: function () {}, forwardMessage: function (a) {}, __class__: Ru }); var Su = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h.Delay = '_Delay'; this._Delay = 0; this.nameMap.h.Position = '_Position'; this._Position = ''; }; h['scripts.Design_63_63_TransitionBlockLogic'] = Su; Su.__name__ = 'scripts.Design_63_63_TransitionBlockLogic'; Su.__super__ = u; Su.prototype = r(u.prototype, { _Delay: null, _Position: null, _customEvent_Go: function () { var a = this; d.runLater( 1e3 * this._Delay, function (b) { a.actor.setAnimation(a._Position); }, this.actor ); }, init: function () { this.actor.makeAlwaysSimulate(); this.actor.anchorToScreen(); }, forwardMessage: function (a) {}, __class__: Su }); var Tu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h.Up = '_Up'; this._Up = !1; this.nameMap.h['Hover Distance'] = '_HoverDistance'; this._HoverDistance = 0; }; h['scripts.Design_66_66_HoverMovement'] = Tu; Tu.__name__ = 'scripts.Design_66_66_HoverMovement'; Tu.__super__ = u; Tu.prototype = r(u.prototype, { _Up: null, _HoverDistance: null, _customEvent_Move: function () { var a = this; this._Up ? (this.actor.moveBy(0, -this._HoverDistance, 0.4, J.quadInOut), (this._Up = !1), d.runLater( 500, function (b) { a.actor.shout('_customEvent_Move'); }, this.actor )) : (this.actor.moveBy(0, this._HoverDistance, 0.4, J.quadInOut), (this._Up = !0), d.runLater( 500, function (b) { a.actor.shout('_customEvent_Move'); }, this.actor )); }, init: function () { this.actor.shout('_customEvent_Move'); }, forwardMessage: function (a) {}, __class__: Tu }); var Uu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Face Left'] = '_FaceLeft'; this._FaceLeft = !1; this.nameMap.h.Speed = '_Speed'; this._Speed = 8; this.nameMap.h.Dude = '_Dude'; this.nameMap.h['Has Charged'] = '_HasCharged'; this._HasCharged = !1; this.nameMap.h.Charging = '_Charging'; this._Charging = !1; this.nameMap.h['Charge Speed'] = '_ChargeSpeed'; this._ChargeSpeed = 0; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h.Bounce = '_Bounce'; this._Bounce = !1; this.nameMap.h['X Distance'] = '_XDistance'; this._XDistance = 0; this.nameMap.h.Stunned = '_Stunned'; this._Stunned = !1; this.nameMap.h['Snooze Z List'] = '_SnoozeZList'; this.nameMap.h.Exclamation = '_Exclamation'; this.nameMap.h.Snore = '_Snore'; this._Snore = !1; this.nameMap.h['Distance X'] = '_DistanceX'; this._DistanceX = 0; this.nameMap.h['Distance Y'] = '_DistanceY'; this._DistanceY = 0; this.nameMap.h.Distance = '_Distance'; this._Distance = 0; this.nameMap.h.Detonate = '_Detonate'; this._Detonate = !1; this.nameMap.h['Debris Speed'] = '_DebrisSpeed'; this._DebrisSpeed = 0; this.nameMap.h.Spring = '_Spring'; this.nameMap.h.Wander = '_Wander'; this._Wander = !1; this.nameMap.h['Start Awake'] = '_StartAwake'; this._StartAwake = !1; this.nameMap.h['Going Left'] = '_GoingLeft'; this._GoingLeft = !1; }; h['scripts.Design_68_68_ChargingMovement'] = Uu; Uu.__name__ = 'scripts.Design_68_68_ChargingMovement'; Uu.__super__ = u; Uu.prototype = r(u.prototype, { _FaceLeft: null, _Speed: null, _Dude: null, _HasCharged: null, _Charging: null, _ChargeSpeed: null, _GravitySpeed: null, _Bounce: null, _XDistance: null, _Stunned: null, _SnoozeZList: null, _Exclamation: null, _Snore: null, _DistanceX: null, _DistanceY: null, _Distance: null, _Detonate: null, _DebrisSpeed: null, _Spring: null, _Wander: null, _StartAwake: null, _GoingLeft: null, _event_EveryNsecs: function (a) { var b = this; if (this.wrapper.enabled && this.actor.isOnScreen()) if ( ('Idle Left' == this.actor.getAnimation() || 'Left' == this.actor.getAnimation() || 'Left Wander' == this.actor.getAnimation() || 'Sleep' == this.actor.getAnimation() ? (this._GoingLeft = !0) : (this._GoingLeft = !1), (a = this._Dude), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) ) if ( ((this._XDistance = Math.max(this.actor.getXCenter(), this._Dude.getXCenter()) - Math.min(this.actor.getXCenter(), this._Dude.getXCenter())), this._Dude.getYCenter() > this.actor.getY() && this._Dude.getYCenter() < this.actor.getY() + this.actor.getHeight() && 200 > this._XDistance) ) { if (!this._Charging && !this._HasCharged && !this._Stunned) { a = 0; for (e = x.__cast(this._SnoozeZList, Array); a < e.length; ) { var c = e[a]; ++a; c.isAlive() && d.recycleActor(c); } this._Dude.getX() > this.actor.getX() ? this._GoingLeft || ((this._Charging = !0), (this._Wander = !1), (this._HasCharged = !0), d.createRecycledActor( d.getActorType(131), this.actor.getXCenter() - 14, this.actor.getY() - 28, 0 ), (this._Exclamation = d.getLastCreatedActor()), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(373)), this.actor.setXVelocity(0), this.actor.setYVelocity(-20), this.actor.setAnimation('Idle Right'), d.runLater( 300, function (a) { b.actor.setAnimation('Right'); }, this.actor ), d.runLater( 500, function (a) { d.recycleActor(b._Exclamation); }, this.actor ), d.runLater( 700, function (a) { b.actor.setXVelocity(b._ChargeSpeed); }, this.actor )) : this._GoingLeft && ((this._Charging = !0), (this._Wander = !1), (this._HasCharged = !0), d.createRecycledActor( d.getActorType(131), this.actor.getXCenter() - 14, this.actor.getY() - 28, 0 ), d.getLastCreatedActor().setAnimation('Right'), (this._Exclamation = d.getLastCreatedActor()), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(373)), this.actor.setXVelocity(0), this.actor.setYVelocity(-20), this.actor.setAnimation('Idle Left'), d.runLater( 300, function (a) { b.actor.setAnimation('Left'); }, this.actor ), d.runLater( 500, function (a) { d.recycleActor(b._Exclamation); }, this.actor ), d.runLater( 700, function (a) { b.actor.setXVelocity(-b._ChargeSpeed); }, this.actor )); } } else this._Charging || (this._HasCharged = !1); else { a = 0; for (var e = d.getActorsOfType(d.getActorType(2)); a < e.length; ) (c = e[a]), ++a, null == c || c.dead || c.recycled || (this._Dude = c); } }, _event_Sleep: function (a) { this.wrapper.enabled && 'Sleep' == this.actor.getAnimation() && (d.createRecycledActor( d.getActorType(127), this.actor.getXCenter() - 12, this.actor.getY(), 0 ), this._SnoozeZList.push(d.getLastCreatedActor()), this._Snore ? (this._Snore = !1) : ((this._Snore = !0), !k.engine.getGameAttribute('Sound Disabled') && this.actor.isOnScreen() && d.playSound(d.getSound(454)))); }, _event_SnoozeZKilled: function (a) { this.wrapper.enabled && X.contains(this._SnoozeZList, a) && A.remove(this._SnoozeZList, a); }, _event_Updating: function (a) { this.wrapper.enabled && this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)); }, _event_HitsWalls: function (a) { var b = this; if (this.wrapper.enabled) { var c = d.getActorGroup(1); var e = a.otherActor.getType(), f = a.otherActor.getGroup(); c = c == e || c == f; } else c = !1; c && !this._Wander && (this._Charging && (a.thisFromLeft ? ((this._Charging = !1), d.startShakingScreen(0.01, 0.1), this.actor.setYVelocity(-30), this.actor.setXVelocity(14), (this._Stunned = this._Bounce = !0), this.actor.setAnimation('Idle Left'), d.createRecycledActor( d.getActorType(94), this.actor.getX() - 8, this.actor.getYCenter() - 8, 0 ), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(117)), d.createRecycledActorOnLayer( d.getActorType(125), this.actor.getX() + 16, this.actor.getY() + 10, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setAnimation('0'), d.getLastCreatedActor().setXVelocity(12), d.getLastCreatedActor().setYVelocity(-50), d.createRecycledActorOnLayer( d.getActorType(125), this.actor.getX() + 16, this.actor.getY() + 10, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setAnimation('1'), d.getLastCreatedActor().setXVelocity(18), d.getLastCreatedActor().setYVelocity(-50), d.createRecycledActorOnLayer( d.getActorType(125), this.actor.getX() + 16, this.actor.getY() + 10, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setAnimation('2'), d.getLastCreatedActor().setXVelocity(24), d.getLastCreatedActor().setYVelocity(-50), d.runLater( 600, function (a) { b._Stunned = !1; b._Wander = !0; b._HasCharged = !1; b.actor.setAnimation('Right Wander'); }, this.actor )) : a.thisFromRight && ((this._Charging = !1), d.startShakingScreen(0.01, 0.1), this.actor.setYVelocity(-30), this.actor.setXVelocity(-14), (this._Stunned = this._Bounce = !0), this.actor.setAnimation('Idle Right'), d.createRecycledActor( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 8, this.actor.getYCenter() - 8, 0 ), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(117)), d.createRecycledActorOnLayer( d.getActorType(125), this.actor.getX(), this.actor.getY() + 10, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setAnimation('2'), d.getLastCreatedActor().setXVelocity(-12), d.getLastCreatedActor().setYVelocity(-50), d.createRecycledActorOnLayer( d.getActorType(125), this.actor.getX(), this.actor.getY() + 10, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setAnimation('1'), d.getLastCreatedActor().setXVelocity(-18), d.getLastCreatedActor().setYVelocity(-50), d.createRecycledActorOnLayer( d.getActorType(125), this.actor.getX(), this.actor.getY() + 10, d.engine.getLayerById(this.actor.getLayerID()) ), d.getLastCreatedActor().setAnimation('0'), d.getLastCreatedActor().setXVelocity(-24), d.getLastCreatedActor().setYVelocity(-50), d.runLater( 600, function (a) { b._Stunned = !1; b._Wander = !0; b._HasCharged = !1; b.actor.setAnimation('Left Wander'); }, this.actor ))), a.thisFromBottom && this._Bounce && -5 < this.actor.getYVelocity() && ((this._Bounce = !1), this.actor.setXVelocity(0))); }, _event_Updating2: function (a) { this.wrapper.enabled && this._Wander && (0 > this.actor.getXVelocity() && 'Left Wander' != this.actor.getAnimation() ? this.actor.setAnimation('Left Wander') : 0 < this.actor.getXVelocity() && 'Right Wander' != this.actor.getAnimation() && this.actor.setAnimation('Right Wander'), this._FaceLeft && (!d.tileExistsAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32 + 1), Math.floor(this.actor.getX() / 32), d.engine.getLayerById(0) ) || (d.tileExistsAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32), Math.floor(this.actor.getX() / 32), d.engine.getLayerById(0) ) && (7 < d.getTileIDAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32), Math.floor(this.actor.getX() / 32), d.engine.getLayerById(0) ) || 67 == d.getTileIDAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32), Math.floor(this.actor.getX() / 32), d.engine.getLayerById(0) ) || 66 == d.getTileIDAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32), Math.floor(this.actor.getX() / 32), d.engine.getLayerById(0) )))) ? ((this._FaceLeft = !1), this.actor.setAnimation('Right Wander')) : !this._FaceLeft && (!d.tileExistsAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32 + 1), Math.ceil(this.actor.getX() / 32), d.engine.getLayerById(0) ) || (d.tileExistsAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32), Math.ceil(this.actor.getX() / 32), d.engine.getLayerById(0) ) && (7 < d.getTileIDAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32), Math.ceil(this.actor.getX() / 32), d.engine.getLayerById(0) ) || 67 == d.getTileIDAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32), Math.ceil(this.actor.getX() / 32), d.engine.getLayerById(0) ) || 66 == d.getTileIDAt( Math.round((this.actor.getY() + (this.actor.getHeight() - 34)) / 32), Math.ceil(this.actor.getX() / 32), d.engine.getLayerById(0) )))) && ((this._FaceLeft = !0), this.actor.setAnimation('Left Wander')), this._FaceLeft ? this.actor.setXVelocity(-this._Speed) : this.actor.setXVelocity(this._Speed)); }, init: function () { this._Speed = 4; this.actor.makeAlwaysSimulate(); this._ChargeSpeed = 28; this._GravitySpeed = 48; this._SnoozeZList = []; this._StartAwake && ((this._Wander = !0), this.actor.setAnimation('Left Wander')); d.runPeriodically(100, q(this, this._event_EveryNsecs), this.actor); d.runPeriodically(700, q(this, this._event_Sleep), this.actor); this.addListenerWithKey( d.engine.whenTypeGroupKilledEvents, d.getActorType(127), q(this, this._event_SnoozeZKilled) ); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsWalls)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating2)); }, forwardMessage: function (a) {}, __class__: Uu }); var Vu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Gravity Speed'] = '_GravitySpeed'; this._GravitySpeed = 0; this.nameMap.h['On Ground'] = '_OnGround'; this._OnGround = !1; this.nameMap.h['Ground Check'] = '_GroundCheck'; this._GroundCheck = !1; this.nameMap.h.Left = '_Left'; this._Left = !1; this.nameMap.h['Number Of Hops'] = '_NumberOfHops'; this._NumberOfHops = 1; this.nameMap.h['Hop Count'] = '_HopCount'; this._HopCount = 0; this.nameMap.h.Hopping = '_Hopping'; this._Hopping = !1; this.nameMap.h['Start Y'] = '_StartY'; this._StartY = 0; this.nameMap.h['On Platform'] = '_OnPlatform'; this._OnPlatform = !1; this.nameMap.h.Dead = '_Dead'; this._Dead = !1; this.nameMap.h['Straight Up'] = '_StraightUp'; this._StraightUp = !1; this.nameMap.h.Splash = '_Splash'; this._Splash = !1; }; h['scripts.Design_73_73_HoppingMovement'] = Vu; Vu.__name__ = 'scripts.Design_73_73_HoppingMovement'; Vu.__super__ = u; Vu.prototype = r(u.prototype, { _GravitySpeed: null, _OnGround: null, _GroundCheck: null, _Left: null, _NumberOfHops: null, _HopCount: null, _Hopping: null, _StartY: null, _OnPlatform: null, _Dead: null, _StraightUp: null, _Splash: null, _event_Updating: function (a) { var b = this; if (this.wrapper.enabled && !this._Dead) { if (this._GroundCheck || (this._OnPlatform && this.actor.getY() >= this._StartY)) { if ((this._OnPlatform && this.actor.setY(this._StartY), !this._OnGround)) { this._OnGround = !0; this.actor.setAnimation('Idle'); this.actor.setXVelocity(0); this._Splash && this.actor.isOnScreen() && (k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(617)), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(0) ), d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(0) ), d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut), d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() + this.actor.getWidth() - 8, this.actor.getYCenter() - 8, d.engine.getLayerById(0) ), d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut)); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().setAnimation('Small'); d.getLastCreatedActor().moveBy(-16, -16, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getXCenter() - 8, this.actor.getY() + this.actor.getHeight() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(16, -16, 0.3, J.backOut); d.getLastCreatedActor().setAnimation('Small'); if (this.actor.isOnScreen()) { a = 0; for (var c = d.getActorsOfType(d.getActorType(2)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || (this.actor.getXCenter() > e.getXCenter() ? d.setValueForScene('Stage Logic', '_RumbleName', 'Small Thud Right') : d.setValueForScene('Stage Logic', '_RumbleName', 'Small Thud Left'), d.sayToScene('Stage Logic', '_customEvent_rumble')); } } this.actor.isOnScreen() && !k.engine.getGameAttribute('Sound Disabled') && d.playSound(d.getSound(117)); this._Hopping && ((this._Hopping = !1), d.runLater( 500, function (a) { b.actor.say('Hopping Movement', '_customEvent_Hop'); }, this.actor )); } } else this._OnGround && (this._OnGround = !1); this._GroundCheck = !1; (this._OnPlatform && this.actor.getY() >= this._StartY) || this.actor.setYVelocity(Math.min(this.actor.getYVelocity() + 2, this._GravitySpeed)); } }, _event_ActorAny: function (a) { var b = this; this.wrapper.enabled && (this._OnPlatform || (this.internalGetGroup(a.otherActor, a.otherShape, a) != d.getActorGroup(1) && this.internalGetGroup(a.otherActor, a.otherShape, a) != d.getActorGroup(8)) || !a.thisFromBottom || (this._GroundCheck = !0), a.otherActor.getType() != d.getActorType(203) || this._Dead || ((this._Dead = !0), this.actor.setFilter([d.createBrightnessFilter(100)]), d.runLater( 100, function (a) { k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(378)); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(-32, 32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), b.actor.getXCenter() - 8, b.actor.getYCenter() - 8, d.engine.getLayerById(b.actor.getLayerID()) ); d.getLastCreatedActor().moveBy(32, 32, 0.3, J.backOut); d.recycleActor(b.actor); }, this.actor ))); }, _customEvent_Hop: function () { var a = this; this._Dead || ((this._Hopping = !0), this.actor.setAnimation('Crouch'), d.runLater( 340, function (b) { a.actor.setAnimation('Jump'); }, this.actor ), d.runLater( 400, function (b) { a.actor.setYVelocity(-80); a._Splash && a.actor.isOnScreen() && (k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(617)), d.createRecycledActorOnLayer( d.getActorType(94), a.actor.getXCenter() - 8, a.actor.getYCenter() - 8, d.engine.getLayerById(0) ), d.getLastCreatedActor().moveBy(0, -32, 0.3, J.backOut), d.createRecycledActorOnLayer( d.getActorType(94), a.actor.getX() - 8, a.actor.getYCenter() - 8, d.engine.getLayerById(0) ), d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut), d.createRecycledActorOnLayer( d.getActorType(94), a.actor.getX() + a.actor.getWidth() - 8, a.actor.getYCenter() - 8, d.engine.getLayerById(0) ), d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut)); a._StraightUp || (a._Left ? a.actor.setXVelocity(11.6) : a.actor.setXVelocity(-11.6)); }, this.actor ), (this._HopCount += 1), this._HopCount >= this._NumberOfHops && ((this._HopCount = 0), (this._Left = this._Left ? !1 : !0))); }, init: function () { var a = this; this.actor.makeAlwaysSimulate(); this._GravitySpeed = 48; this._GroundCheck = this._OnGround = !0; this._StartY = this.actor.getY(); d.runLater( 1e3, function (b) { a.actor.say('Hopping Movement', '_customEvent_Hop'); }, this.actor ); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenCollided, q(this, this._event_ActorAny)); }, forwardMessage: function (a) {}, __class__: Vu }); var Wu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h['Left Side'] = '_LeftSide'; this.nameMap.h['Right Side'] = '_RightSide'; this.nameMap.h['Text Scroll Up Delay'] = '_TextScrollUpDelay'; this._TextScrollUpDelay = 0; this.nameMap.h['Text Scrolling Up'] = '_TextScrollingUp'; this._TextScrollingUp = !1; this.nameMap.h['Display Character Count'] = '_DisplayCharacterCount'; this._DisplayCharacterCount = 0; this.nameMap.h['Dialog Text List'] = '_DialogTextList'; this.nameMap.h['Current Page'] = '_CurrentPage'; this._CurrentPage = 0; this.nameMap.h['Last Page'] = '_LastPage'; this._LastPage = !1; this.nameMap.h['Auto Close'] = '_AutoClose'; this._AutoClose = !1; this.nameMap.h['Current Paragraph'] = '_CurrentParagraph'; this._CurrentParagraph = 1; this.nameMap.h['Paragraph List'] = '_ParagraphList'; this.nameMap.h['End Of Paragraph'] = '_EndOfParagraph'; this._EndOfParagraph = !1; this.nameMap.h['Page Down Flash'] = '_PageDownFlash'; this._PageDownFlash = !1; this.nameMap.h['Action Text Actioned'] = '_ActionTextActioned'; this._ActionTextActioned = !1; this.nameMap.h['Show Down Arrow'] = '_ShowDownArrow'; this._ShowDownArrow = !1; this.nameMap.h['All lines split'] = '_Alllinessplit'; this._Alllinessplit = !1; this.nameMap.h['Dialog Text Has Value'] = '_DialogTextHasValue'; this._DialogTextHasValue = !1; this.nameMap.h['Space Found'] = '_SpaceFound'; this._SpaceFound = !1; this.nameMap.h['Space Finder'] = '_SpaceFinder'; this._SpaceFinder = 0; this.nameMap.h["Don't Clear"] = '_DontClear'; this._DontClear = !1; this.nameMap.h['Dialog Text'] = '_DialogText'; this._DialogText = ''; this.nameMap.h['Paragraph Text'] = '_ParagraphText'; this._ParagraphText = ''; this.nameMap.h['Line Limit'] = '_LineLimit'; this._LineLimit = 0; this.nameMap.h.Portrait = '_Portrait'; this.nameMap.h['Down Arrow'] = '_DownArrow'; this.nameMap.h['Character Count Stagger'] = '_CharacterCountStagger'; this._CharacterCountStagger = 0; this.nameMap.h['Last Character'] = '_LastCharacter'; this._LastCharacter = ''; this.nameMap.h['Voice On'] = '_VoiceOn'; this._VoiceOn = !1; this.nameMap.h['Voice Stagger'] = '_VoiceStagger'; this._VoiceStagger = 0; this.nameMap.h['Previous Voice Sample'] = '_PreviousVoiceSample'; this._PreviousVoiceSample = 0; this.nameMap.h['Voice Sample RN'] = '_VoiceSampleRN'; this._VoiceSampleRN = 0; this.nameMap.h['Vowels List'] = '_VowelsList'; this.nameMap.h['Sentence Pitch'] = '_SentencePitch'; this._SentencePitch = 0; this.nameMap.h['Pitch Up'] = '_PitchUp'; this._PitchUp = !1; this.nameMap.h['New Sentence'] = '_NewSentence'; this._NewSentence = !1; this.nameMap.h['Ended Sentence'] = '_EndedSentence'; this._EndedSentence = !1; this.nameMap.h.Start = '_Start'; this._Start = !1; this.nameMap.h['Total Text Length'] = '_TotalTextLength'; this._TotalTextLength = 0; this.nameMap.h['Display Character Count 2'] = '_DisplayCharacterCount2'; this._DisplayCharacterCount2 = 0; this.nameMap.h['Pitch Jump Count'] = '_PitchJumpCount'; this._PitchJumpCount = 0; this.nameMap.h['Skip Speech'] = '_SkipSpeech'; this._SkipSpeech = !1; this.nameMap.h.Character = '_Character'; this._Character = 'Dadish'; this.nameMap.h['Character Voice'] = '_CharacterVoice'; this._CharacterVoice = ''; this.nameMap.h.Go = '_Go'; this._Go = !1; this.nameMap.h.Top = '_Top'; this._Top = !1; this.nameMap.h['Character 1'] = '_Character1'; this._Character1 = ''; this.nameMap.h['Character 2'] = '_Character2'; this._Character2 = ''; this.nameMap.h['Switch Characters'] = '_SwitchCharacters'; this._SwitchCharacters = !1; this.nameMap.h.Parent = '_Parent'; this.nameMap.h.Screech = '_Screech'; this._Screech = !1; this.nameMap.h['No First Screech'] = '_NoFirstScreech'; this._NoFirstScreech = !1; this.nameMap.h.Margin = '_Margin'; this._Margin = 0; this.nameMap.h['Draw Shadow'] = '_DrawShadow'; this._DrawShadow = !1; this.nameMap.h['Font To Use'] = '_FontToUse'; this.nameMap.h['Last Voice Character'] = '_LastVoiceCharacter'; this._LastVoiceCharacter = ''; this.nameMap.h['Dummy Text For Voice'] = '_DummyTextForVoice'; this._DummyTextForVoice = ''; this.nameMap.h['Dummy Text Position'] = '_DummyTextPosition'; this._DummyTextPosition = 0; this.nameMap.h['Voice Off'] = '_VoiceOff'; this._VoiceOff = !1; this.nameMap.h['Button Input'] = '_ButtonInput'; this._ButtonInput = ''; this.nameMap.h['Button Is Down'] = '_ButtonIsDown'; this._ButtonIsDown = !1; this.nameMap.h['Down Button ID'] = '_DownButtonID'; this._DownButtonID = ''; }; h['scripts.Design_83_83_DialogBoxLogic'] = Wu; Wu.__name__ = 'scripts.Design_83_83_DialogBoxLogic'; Wu.__super__ = u; Wu.prototype = r(u.prototype, { _LeftSide: null, _RightSide: null, _TextScrollUpDelay: null, _TextScrollingUp: null, _DisplayCharacterCount: null, _DialogTextList: null, _CurrentPage: null, _LastPage: null, _AutoClose: null, _CurrentParagraph: null, _ParagraphList: null, _EndOfParagraph: null, _PageDownFlash: null, _ActionTextActioned: null, _ShowDownArrow: null, _Alllinessplit: null, _DialogTextHasValue: null, _SpaceFound: null, _SpaceFinder: null, _DontClear: null, _DialogText: null, _ParagraphText: null, _LineLimit: null, _Portrait: null, _DownArrow: null, _CharacterCountStagger: null, _LastCharacter: null, _VoiceOn: null, _VoiceStagger: null, _PreviousVoiceSample: null, _VoiceSampleRN: null, _VowelsList: null, _SentencePitch: null, _PitchUp: null, _NewSentence: null, _EndedSentence: null, _Start: null, _TotalTextLength: null, _DisplayCharacterCount2: null, _PitchJumpCount: null, _SkipSpeech: null, _Character: null, _CharacterVoice: null, _Go: null, _Top: null, _Character1: null, _Character2: null, _SwitchCharacters: null, _Parent: null, _Screech: null, _NoFirstScreech: null, _Margin: null, _DrawShadow: null, _FontToUse: null, _LastVoiceCharacter: null, _DummyTextForVoice: null, _DummyTextPosition: null, _VoiceOff: null, _ButtonInput: null, _ButtonIsDown: null, _DownButtonID: null, _event_Text: function (a, b, c) { if ( this.wrapper.enabled && this._Go && 0 < this._DisplayCharacterCount && (d.setDrawingLayer(d.engine.getLayerById(this.actor.getLayerID())), this._Alllinessplit) ) if ( ((c = d.getFont(165)), null != c && c != a.font && (a.font = c), this._TextScrollingUp) ) { if (this._CurrentPage - 1 < this._DialogTextList.length) { if (this._DrawShadow) { c = d.getFont(165); null != c && c != a.font && (a.font = c); c = U.replace( ('' + B.string(this._DialogTextList[(this._CurrentPage - 1) | 0])).substring( 0, Math.min( ('' + B.string(this._DialogTextList[(this._CurrentPage - 1) | 0])).length, this._DisplayCharacterCount ) | 0 ), '#', '' ); b = 96 + (this._Margin / 2 + 2); null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); if (a.drawActor) if (null != a.actor && a.actor.isHUD) { b = a.x + b * a.scaleX; var e = a.y + 16 * a.scaleY; } else (b = a.x + b * a.scaleX - k.cameraX), (e = a.y + 16 * a.scaleY - k.cameraY); else (b = a.x + b * a.scaleX), (e = a.y + 16 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, e); var f = null, g = a.font; g = c + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE; if (Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g)) (c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img); else { var h = a.font.font.getTextWidth(c, a.font.letterSpacing, a.font.fontScale), l = (a.font.font.getFontHeight() * a.font.fontScale) | 0; 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, c, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g)); } null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill()); } c = this._FontToUse; null != c && c != a.font && (a.font = c); c = U.replace( ('' + B.string(this._DialogTextList[(this._CurrentPage - 1) | 0])).substring( 0, Math.min( ('' + B.string(this._DialogTextList[(this._CurrentPage - 1) | 0])).length, this._DisplayCharacterCount ) | 0 ), '#', '' ); b = 96 + this._Margin / 2; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + 14 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + 14 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + 14 * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, e); f = null; g = a.font; g = c + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE; Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth(c, a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, c, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))); null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill()); } this._CurrentPage < this._DialogTextList.length && (this._DrawShadow && ((c = d.getFont(165)), null != c && c != a.font && (a.font = c), (c = U.replace( ('' + B.string(this._DialogTextList[this._CurrentPage | 0])).substring( 0, Math.min( ('' + B.string(this._DialogTextList[this._CurrentPage | 0])).length, this._DisplayCharacterCount ) | 0 ), '#', '' )), (b = 96 + (this._Margin / 2 + 2)), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + 44 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + 44 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + 44 * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, e), (f = null), (g = a.font), (g = c + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth(c, a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, c, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))), null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill())), (c = this._FontToUse), null != c && c != a.font && (a.font = c), (c = U.replace( ('' + B.string(this._DialogTextList[this._CurrentPage | 0])).substring( 0, Math.min( ('' + B.string(this._DialogTextList[this._CurrentPage | 0])).length, this._DisplayCharacterCount ) | 0 ), '#', '' )), (b = 96 + this._Margin / 2), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + 42 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + 42 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + 42 * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, e), (f = null), (g = a.font), (g = c + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth(c, a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, c, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))), null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill())); } else this._CurrentPage < this._DialogTextList.length && (this._DrawShadow && ((c = d.getFont(165)), null != c && c != a.font && (a.font = c), (c = U.replace( ('' + B.string(this._DialogTextList[this._CurrentPage | 0])).substring( 0, Math.min( ('' + B.string(this._DialogTextList[this._CurrentPage | 0])).length, this._DisplayCharacterCount ) | 0 ), '#', '' )), (b = 96 + (this._Margin / 2 + 2)), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + 24 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + 24 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + 24 * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, e), (f = null), (g = a.font), (g = c + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth(c, a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, c, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))), null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill())), (c = this._FontToUse), null != c && c != a.font && (a.font = c), (c = U.replace( ('' + B.string(this._DialogTextList[this._CurrentPage | 0])).substring( 0, Math.min( ('' + B.string(this._DialogTextList[this._CurrentPage | 0])).length, this._DisplayCharacterCount ) | 0 ), '#', '' )), (b = 96 + this._Margin / 2), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + 22 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + 22 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + 22 * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, e), (f = null), (g = a.font), (g = c + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth(c, a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, c, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))), null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill())), this._CurrentPage + 1 < this._DialogTextList.length && this._DisplayCharacterCount > ('' + B.string(this._DialogTextList[this._CurrentPage | 0])).length && (this._DrawShadow && ((c = d.getFont(165)), null != c && c != a.font && (a.font = c), (c = U.replace( ('' + B.string(this._DialogTextList[(this._CurrentPage + 1) | 0])).substring( 0, Math.min( ('' + B.string(this._DialogTextList[(this._CurrentPage + 1) | 0])).length, this._DisplayCharacterCount - ('' + B.string(this._DialogTextList[this._CurrentPage | 0])).length ) | 0 ), '#', '' )), (b = 96 + (this._Margin / 2 + 2)), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + 52 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + 52 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + 52 * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, e), (f = null), (g = a.font), (g = c + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth(c, a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, c, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))), null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill())), (c = this._FontToUse), null != c && c != a.font && (a.font = c), (c = U.replace( ('' + B.string(this._DialogTextList[(this._CurrentPage + 1) | 0])).substring( 0, Math.min( ('' + B.string(this._DialogTextList[(this._CurrentPage + 1) | 0])).length, this._DisplayCharacterCount - ('' + B.string(this._DialogTextList[this._CurrentPage | 0])).length ) | 0 ), '#', '' )), (b = 96 + this._Margin / 2), null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (e = a.y + 50 * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (e = a.y + 50 * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (e = a.y + 50 * a.scaleY)), a.mtx.identity(), a.mtx.translate(b, e), (f = null), (g = a.font), (g = c + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE), Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g) ? ((c = W.drawnStringCache.h[g]), (c.lifetime = 5), (f = c.img)) : ((h = a.font.font.getTextWidth(c, a.font.letterSpacing, a.font.fontScale)), (l = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, c, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (c = new Mb()), (c.img = f), (c.lifetime = 5), (W.drawnStringCache.h[g] = c), W.drawnStringCacheKeys.push(g))), null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, e, f.width, f.height), a.graphics.endFill())); }, _event_Updating: function (a) { if (this.wrapper.enabled && this._Go) { this.actor.setX(d.getScreenX() + this._Margin / 2); this._Top ? this.actor.setY(d.getScreenY() + this._Margin / 2) : this.actor.setY( d.getScreenY() + d.getScreenHeight() - (this.actor.getHeight() + this._Margin / 2) ); this._Portrait.setX(this.actor.getX()); this._Portrait.setY(this.actor.getY()); this._DownArrow.setY(this.actor.getY() + (this.actor.getHeight() - 24)); a = this._DialogText; if ( (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && !this._DialogTextHasValue ) { this._DialogTextHasValue = !0; this._ParagraphList = []; a = 0; for (var b = x.__cast(this._DialogText.split('|'), Array); a < b.length; ) { var c = b[a]; ++a; this._ParagraphList.push(c); } this._DialogTextList = []; for ( this._ParagraphText = '' + B.string(this._ParagraphList[(this._CurrentParagraph - 1) | 0]); !this._Alllinessplit; ) if (this._ParagraphText.length < this._LineLimit + 1) (this._Alllinessplit = !0), this._DialogTextList.push(this._ParagraphText); else for ( this._SpaceFound = !1, this._SpaceFinder = Math.min(this._ParagraphText.length, this._LineLimit); !this._SpaceFound; ) ' ' == this._ParagraphText.charAt(this._SpaceFinder | 0) || (('JP' == k.engine.getGameAttribute('Language') || 'CN' == k.engine.getGameAttribute('Language')) && '\u3002' != this._ParagraphText.charAt((this._SpaceFinder + 1) | 0) && '\uff1f' != this._ParagraphText.charAt((this._SpaceFinder + 1) | 0) && '\uff01' != this._ParagraphText.charAt((this._SpaceFinder + 1) | 0) && '\u3001' != this._ParagraphText.charAt((this._SpaceFinder + 1) | 0) && '.' != this._ParagraphText.charAt((this._SpaceFinder + 1) | 0)) ? ((this._SpaceFound = !0), 'JP' == k.engine.getGameAttribute('Language') || 'CN' == k.engine.getGameAttribute('Language') ? this._DialogTextList.push( this._ParagraphText.substring( 0, (this._LineLimit - (this._LineLimit - this._SpaceFinder) + 1) | 0 ) ) : this._DialogTextList.push( this._ParagraphText.substring( 0, (this._LineLimit - (this._LineLimit - this._SpaceFinder)) | 0 ) ), (this._ParagraphText = this._ParagraphText.substring( (this._LineLimit + 1 - (this._LineLimit - this._SpaceFinder)) | 0, this._ParagraphText.length ))) : --this._SpaceFinder; } this._CharacterVoice = 'Baby1' == this._Character || 'Baby2' == this._Character || 'Baby3' == this._Character || 'Baby4' == this._Character || 'Baby5' == this._Character || ('Baby6' == this._Character && this._NoFirstScreech) ? 'Baby' : 'Baby6' == this._Character ? 'Baby6' : 'Boss 1' == this._Character || 'Boss 2' == this._Character || 'Boss 3' == this._Character || 'Boss 4' == this._Character || 'Boss 5' == this._Character ? 'Boss' : 'Dadish'; } }, _event_Text2Working: function (a) { if (this.wrapper.enabled && this._Go) { if (this._Alllinessplit) { if (this._TextScrollingUp) --this._TextScrollUpDelay, 0 == this._TextScrollUpDelay && ((this._TextScrollingUp = !1), (this._DisplayCharacterCount = ( '' + B.string(this._DialogTextList[this._CurrentPage | 0]) ).length)), this._CurrentPage - 1 < this._DialogTextList.length && (this._TotalTextLength = ('' + B.string(this._DialogTextList[(this._CurrentPage - 1) | 0])).length + ('' + B.string(this._DialogTextList[this._CurrentPage | 0])).length); else { this._TotalTextLength = ('' + B.string(this._DialogTextList[this._CurrentPage | 0])).length + ('' + B.string(this._DialogTextList[(this._CurrentPage + 1) | 0])).length; this._CurrentPage < this._DialogTextList.length && ((this._LastCharacter = ( '' + B.string(this._DialogTextList[this._CurrentPage | 0]) ).charAt( Math.min( ('' + B.string(this._DialogTextList[this._CurrentPage | 0])).length, this._DisplayCharacterCount ) | 0 )), (this._LastVoiceCharacter = this._DummyTextForVoice.charAt( this._DummyTextPosition | 0 ))); this._CurrentPage + 1 < this._DialogTextList.length && this._DisplayCharacterCount > ('' + B.string(this._DialogTextList[this._CurrentPage | 0])).length && ((this._LastCharacter = ( '' + B.string(this._DialogTextList[(this._CurrentPage + 1) | 0]) ).charAt( (Math.min( ('' + B.string(this._DialogTextList[(this._CurrentPage + 1) | 0])).length, this._DisplayCharacterCount - ('' + B.string(this._DialogTextList[this._CurrentPage | 0])).length ) - 1) | 0 )), (this._LastVoiceCharacter = this._DummyTextForVoice.charAt( this._DummyTextPosition | 0 ))); this._CurrentPage + 2 >= this._DialogTextList.length && this._CurrentParagraph == this._ParagraphList.length ? ((this._LastPage = !0), this._AutoClose && (this._AutoClose = !1)) : this._CurrentPage + 2 >= this._DialogTextList.length && (this._EndOfParagraph = !0); if ( '.' == this._LastCharacter || '!' == this._LastCharacter || '?' == this._LastCharacter || this._Start ) (this._Start = !1), (this._SentencePitch = 6), (this._NewSentence = !1); ' ' == this._LastCharacter && 0 < this._SentencePitch && --this._SentencePitch; } this._DisplayCharacterCount >= this._TotalTextLength && !this._TextScrollingUp && (!this._LastPage || this._ShowDownArrow) && (this._PageDownFlash ? this._DownArrow.disableActorDrawing() : this._DownArrow.enableActorDrawing(), X.contains( ('' + B.string(this._DialogTextList[(this._CurrentPage + 1) | 0])).split(' '), '~' ) && !this._ActionTextActioned && ((this._ActionTextActioned = !0), d.shoutToScene('_customEvent_textAction'))); } this._DisplayCharacterCount >= this._TotalTextLength && this._Portrait.getAnimation() != this._Character ? this._Portrait.setAnimation(this._Character) : this._DisplayCharacterCount >= this._TotalTextLength || this._Portrait.getAnimation() == this._Character + ' Speak' || ('Baby6' == this._Character ? this._Screech ? this._Portrait.setAnimation(this._Character) : (this._Portrait.setAnimation(this._Character + ' Speak'), (this._NoFirstScreech = !1)) : this._Portrait.setAnimation(this._Character + ' Speak')); if ( this._DisplayCharacterCount < this._TotalTextLength && (1 <= this._CharacterCountStagger || this._ButtonIsDown || d.isMouseDown()) ) if ( ((this._DisplayCharacterCount = Math.min( this._DisplayCharacterCount + 1, this._TotalTextLength )), (this._DummyTextPosition = this._DummyTextPosition < this._DummyTextForVoice.length - 1 ? this._DummyTextPosition + 1 : 0), this._SkipSpeech && '#' != this._LastCharacter && '#' != this._LastCharacter) ) this._SkipSpeech = !1; else if ('Baby6' != this._Character || this._NoFirstScreech) { if ( (('JP' != k.engine.getGameAttribute('Language') && 'CN' != k.engine.getGameAttribute('Language') && 'KR' != k.engine.getGameAttribute('Language')) || '#' == this._LastCharacter || (this._LastCharacter = this._LastVoiceCharacter), X.contains(this._VowelsList, this._LastCharacter) || '#' == this._LastCharacter) ) { this._SkipSpeech = !0; if ('y' == this._LastCharacter || 'Y' == this._LastCharacter) this._LastCharacter = 'E'; '#' == this._LastCharacter || '#' == this._LastCharacter ? ((this._VoiceOff = !0), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(575))) : this._VoiceOff || (0 < this._SentencePitch ? k.engine.getGameAttribute('Sound Disabled') || d.playSound( d.getSoundByName( this._CharacterVoice + ' Voice ' + this._LastCharacter.toUpperCase() + ' High' ) ) : 4 > this._PitchJumpCount ? ((this._PitchJumpCount += 1), k.engine.getGameAttribute('Sound Disabled') || d.playSound( d.getSoundByName( this._CharacterVoice + ' Voice ' + this._LastCharacter.toUpperCase() ) )) : ((this._PitchJumpCount = 0), k.engine.getGameAttribute('Sound Disabled') || d.playSound( d.getSoundByName( this._CharacterVoice + ' Voice ' + this._LastCharacter.toUpperCase() + ' High' ) ))); } } else this._Screech || ((this._Screech = !0), d.runLater(1200, function (a) {}, this.actor), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(442))); this._CharacterCountStagger = 1 > this._CharacterCountStagger ? this._CharacterCountStagger + 1 : 0; } }, _event_EveryNsecs: function (a) { this.wrapper.enabled && this._Go && (this._PageDownFlash = this._PageDownFlash ? !1 : !0); }, _event_KeyPressed: function (a) { this.wrapper.enabled && (d.isKeyPressed('action1') || d.isKeyPressed('action2') || d.isKeyPressed('enter') || d.isKeyPressed('down')) && !this._ButtonIsDown && ((this._ButtonIsDown = !0), (this._DownButtonID = this._ButtonInput), this.actor.say('Dialog Box Logic', '_customEvent_Pressed')); }, _event_KeyReleased: function (a) { this.wrapper.enabled && this._ButtonIsDown && (d.isKeyReleased('action1') || d.isKeyReleased('action2') || d.isKeyReleased('enter') || d.isKeyReleased('down')) && ((this._ButtonIsDown = !1), (this._DownButtonID = this._ButtonInput)); }, _event_Click: function () { this.wrapper.enabled && this.actor.say('Dialog Box Logic', '_customEvent_Pressed'); }, _customEvent_Go: function () { if (!this._Go) { for (var a = 0, b = d.getActorsOfType(d.getActorType(582)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c.disableActorDrawing(); } this._Go = !0; this._Margin = 2 * Math.round((0.0714 * d.getScreenWidth()) / 2); k.engine.gameAttributes.h['Dialog Box Open'] = !0; d.engine.pause(); this.actor.makeAlwaysSimulate(); ba.setScale('width', d.getScreenWidth() - this._Margin, this.actor); this.actor.setX(d.getScreenX() + this._Margin / 2); this.actor.setY( d.getScreenY() + d.getScreenHeight() - (this.actor.getHeight() + this._Margin / 2) ); 'JP' == k.engine.getGameAttribute('Language') || 'CN' == k.engine.getGameAttribute('Language') ? (this._LineLimit = Math.floor((d.getScreenWidth() - (96 + 2 * this._Margin)) / 24)) : 'KR' == k.engine.getGameAttribute('Language') ? (this._LineLimit = Math.floor((d.getScreenWidth() - (96 + 2 * this._Margin)) / 19)) : (this._LineLimit = Math.floor((d.getScreenWidth() - (96 + 2 * this._Margin)) / 16)); d.createRecycledActor(d.getActorType(166), this.actor.getX(), this.actor.getY(), 0); this._Portrait = d.getLastCreatedActor(); this._Character = this._Character1; this._Portrait.setAnimation(this._Character); d.createRecycledActor( d.getActorType(169), this.actor.getX() + (ba.scaledSize('width', this.actor) - 32), this.actor.getY() + (this.actor.getHeight() - 24), 0 ); this._DownArrow = d.getLastCreatedActor(); this._DownArrow.makeAlwaysSimulate(); this._DownArrow.disableActorDrawing(); this._VowelsList = []; this._VowelsList.push('a'); this._VowelsList.push('e'); this._VowelsList.push('i'); this._VowelsList.push('o'); this._VowelsList.push('u'); this._VowelsList.push('y'); this._VowelsList.push('A'); this._VowelsList.push('E'); this._VowelsList.push('I'); this._VowelsList.push('O'); this._VowelsList.push('U'); this._VowelsList.push('Y'); this._VowelsList.push('#'); this._VowelsList.push('#'); this._Start = !0; 'Level 29' == d.getCurrentSceneName() && (this._NoFirstScreech = this._Screech = !0); } }, _customEvent_clearDialogBox: function () { this._Go && ((this._ActionTextActioned = !1), (this._TextScrollUpDelay = 0), (this._TextScrollingUp = !1), (this._DisplayCharacterCount = 0), (this._DialogTextList = d.getDefaultValue(this._DialogTextList)), (this._ParagraphList = d.getDefaultValue(this._ParagraphList)), (this._ParagraphText = d.getDefaultValue(this._ParagraphText)), (this._CurrentPage = 0), (this._Alllinessplit = this._PageDownFlash = this._LastPage = !1), (this._DialogText = d.getDefaultValue(this._DialogText)), (this._EndOfParagraph = this._AutoClose = this._SpaceFound = this._DialogTextHasValue = !1), (this._SpaceFinder = 0), (this._CurrentParagraph = 1), (this._ShowDownArrow = !1)); }, _customEvent_Pressed: function () { if (this._Go) if (this._LastPage && this._DisplayCharacterCount >= this._TotalTextLength) { if (!this._DontClear) { for (var a = 0, b = d.getActorsOfType(d.getActorType(166)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || d.recycleActor(c); } a = 0; for (b = d.getActorsOfType(d.getActorType(169)); a < b.length; ) (c = b[a]), ++a, null == c || c.dead || c.recycled || d.recycleActor(c); if (k.engine.getGameAttribute('Direction Hint')) for (a = 0, b = d.getActorsOfType(d.getActorType(2)); a < b.length; ) if ( ((c = b[a]), ++a, null != c && !c.dead && !c.recycled && !c.getValue('Dude Logic', '_Exiting')) ) { c = 0; for (var e = d.getActorsOfType(d.getActorType(582)); c < e.length; ) { var f = e[c]; ++c; null == f || f.dead || f.recycled || f.enableActorDrawing(); } } d.engine.unpause(); a = this._Parent; (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Parent.shout('_customEvent_dialogComplete'); d.recycleActor(this.actor); } } else this._EndOfParagraph && this._DisplayCharacterCount >= this._TotalTextLength ? ('Baby6' == this._Character && (this._Screech = !1), (this._EndOfParagraph = !1), (this._CurrentParagraph += 1), (this._ParagraphText = d.getDefaultValue(this._ParagraphText)), (this._DialogTextList = d.getDefaultValue(this._DialogTextList)), (this._TextScrollUpDelay = this._DisplayCharacterCount = 0), (this._PageDownFlash = this._TextScrollingUp = !1), (this._CurrentPage = this._SpaceFinder = 0), (this._DialogTextHasValue = this._SpaceFound = this._Alllinessplit = !1), (this._Start = !0), this._DownArrow.disableActorDrawing(), this._Character == this._Character1 ? (this._Character = this._Character2) : this._Character == this._Character2 && (this._Character = this._Character1), this._Top ? (this._Portrait.setAnimation(this._Character), (this._Top = !1)) : (this._Portrait.setAnimation(this._Character), (this._Top = !0))) : this._DisplayCharacterCount >= this._TotalTextLength && ((this._CurrentPage += 1), (this._TextScrollingUp = !0), (this._TextScrollUpDelay = 3), this._DownArrow.disableActorDrawing()); }, init: function () { this._DummyTextForVoice = 'Kia ora. Spit the dummy, this crook cuzzie is as pearler as a heaps good housie. Mean while, in that one episode of Tux Wonder Dogs, you know the one bro, The Topp Twins and Jonah Lomu were up to no good with a bunch of bung chilly bins. The fully sick force of his playing rugby was on par with John Key~x2019s beaut whitebait fritter. Put the jug on will you bro, all these whithouse sifebeater singlets can wait till later. '; this._DummyTextPosition = d.randomInt(0, this._DummyTextForVoice.length - 4); 'JP' == k.engine.getGameAttribute('Language') ? ((this._DrawShadow = !1), (this._FontToUse = d.getFont(588))) : 'CN' == k.engine.getGameAttribute('Language') ? ((this._DrawShadow = !1), (this._FontToUse = d.getFont(592))) : 'KR' == k.engine.getGameAttribute('Language') ? ((this._DrawShadow = !1), (this._FontToUse = d.getFont(593))) : ((this._DrawShadow = !0), (this._FontToUse = d.getFont(168))); this.addListener(this.actor.whenDrawing, q(this, this._event_Text)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); d.runPeriodically(18, q(this, this._event_Text2Working), this.actor); d.runPeriodically(400, q(this, this._event_EveryNsecs), this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_KeyPressed)); this.addListener(this.actor.whenUpdated, q(this, this._event_KeyReleased)); this.addListener(d.engine.whenMousePressed, q(this, this._event_Click)); }, forwardMessage: function (a) {}, __class__: Wu }); var Xu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h.Delay = '_Delay'; this._Delay = 0; }; h['scripts.Design_94_94_HiddenSpikeLogic'] = Xu; Xu.__name__ = 'scripts.Design_94_94_HiddenSpikeLogic'; Xu.__super__ = u; Xu.prototype = r(u.prototype, { _Delay: null, _event_Updating: function (a) { this.wrapper.enabled && ('In' == this.actor.getAnimation() ? 5 == this.actor.getCurrentFrame() && (this.actor.setAnimation('Out'), this.actor.isOnScreen() && !k.engine.getGameAttribute('Sound Disabled') && d.playSoundOnChannel(d.getSound(207), 4)) : 'Out' == this.actor.getAnimation() && 4 == this.actor.getCurrentFrame() && this.actor.setAnimation('In')); }, init: function () { var a = this; this.actor.makeAlwaysSimulate(); d.runLater( 1e3 * this._Delay, function (b) { a.actor.setAnimation('In'); }, this.actor ); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Xu }); var Yu = function (a, b, c) { u.call(this, b); this.nameMap.h.Actor = 'actor'; this.nameMap.h.Left = '_Left'; this._Left = !1; this.nameMap.h.Delay = '_Delay'; this._Delay = 0; this.nameMap.h['Cannonball Speed'] = '_CannonballSpeed'; this._CannonballSpeed = 20; this.nameMap.h.Frequency = '_Frequency'; this._Frequency = 2; this.nameMap.h['Boss Cannon'] = '_BossCannon'; this._BossCannon = !1; this.nameMap.h['Boss Cannon Number'] = '_BossCannonNumber'; this._BossCannonNumber = 0; this.nameMap.h.Hide = '_Hide'; this._Hide = !1; }; h['scripts.Design_96_96_CannonLogic'] = Yu; Yu.__name__ = 'scripts.Design_96_96_CannonLogic'; Yu.__super__ = u; Yu.prototype = r(u.prototype, { _Left: null, _Delay: null, _CannonballSpeed: null, _Frequency: null, _BossCannon: null, _BossCannonNumber: null, _Hide: null, _event_Updating: function (a) { this.wrapper.enabled && 'Shoot' == this.actor.getAnimation() && 3 == this.actor.getCurrentFrame() && this.actor.setAnimation('Normal'); }, _customEvent_Shoot: function () { var a = this; this.actor.setAnimation('Shoot'); this.actor.isOnScreen() && !k.engine.getGameAttribute('Sound Disabled') && d.playSound(d.getSound(210)); if (this._Left) { if (this.actor.isOnScreen()) { d.startShakingScreen(0.006, 0.05); for (var b = 0, c = d.getActorsOfType(d.getActorType(2)); b < c.length; ) { var e = c[b]; ++b; null == e || e.dead || e.recycled || (this.actor.getXCenter() > e.getXCenter() ? d.setValueForScene('Stage Logic', '_RumbleName', 'Cannon Right') : d.setValueForScene('Stage Logic', '_RumbleName', 'Cannon Left'), d.sayToScene('Stage Logic', '_customEvent_rumble')); } d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() + this.actor.getWidth(), this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveToBottom(); d.getLastCreatedActor().setAnimation('Smoke'); d.getLastCreatedActor().moveBy(32, 0, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() + this.actor.getWidth(), this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveToBottom(); d.getLastCreatedActor().setAnimation('Smoke'); d.getLastCreatedActor().moveBy(32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() + this.actor.getWidth(), this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveToBottom(); d.getLastCreatedActor().setAnimation('Smoke'); d.getLastCreatedActor().moveBy(32, 32, 0.3, J.backOut); } d.createRecycledActorOnLayer( d.getActorType(211), this.actor.getX() + 32, this.actor.getY() + 32, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().setAnimation('Right'); d.getLastCreatedActor().setXVelocity(this._CannonballSpeed); } else { if (this.actor.isOnScreen()) { d.startShakingScreen(0.006, 0.05); b = 0; for (c = d.getActorsOfType(d.getActorType(2)); b < c.length; ) (e = c[b]), ++b; d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() - 16, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveToBottom(); d.getLastCreatedActor().setAnimation('Smoke'); d.getLastCreatedActor().moveBy(-32, 0, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() - 16, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveToBottom(); d.getLastCreatedActor().setAnimation('Smoke'); d.getLastCreatedActor().moveBy(-32, -32, 0.3, J.backOut); d.createRecycledActorOnLayer( d.getActorType(94), this.actor.getX() - 16, this.actor.getYCenter() - 8, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().moveToBottom(); d.getLastCreatedActor().setAnimation('Smoke'); d.getLastCreatedActor().moveBy(-32, 32, 0.3, J.backOut); } d.createRecycledActorOnLayer( d.getActorType(211), this.actor.getX(), this.actor.getY() + 32, d.engine.getLayerById(this.actor.getLayerID()) ); d.getLastCreatedActor().setAnimation('Left'); d.getLastCreatedActor().setXVelocity(-this._CannonballSpeed); } this._BossCannon && d.runLater( 400, function (b) { if (a.actor.getType() == d.getActorType(208)) { a._Hide = !0; a.actor.moveBy(-32, 0, 0.4, J.quadInOut); b = 0; for (var c = d.getActorsOfType(d.getActorType(213)); b < c.length; ) { var e = c[b]; ++b; null == e || e.dead || e.recycled || 1 != e.getValue('Cannon Logic', '_Hide') || (e.setValue('Cannon Logic', '_Hide', !1), e.moveBy(-32, 0, 0.4, J.quadInOut)); } } else for ( a._Hide = !0, a.actor.moveBy(32, 0, 0.4, J.quadInOut), b = 0, c = d.getActorsOfType(d.getActorType(208)); b < c.length; ) (e = c[b]), ++b, null == e || e.dead || e.recycled || 1 != e.getValue('Cannon Logic', '_Hide') || (e.setValue('Cannon Logic', '_Hide', !1), e.moveBy(32, 0, 0.4, J.quadInOut)); }, this.actor ); this._BossCannon || d.runLater( 1e3 * this._Frequency, function (b) { a.actor.say('Cannon Logic', '_customEvent_Shoot'); }, this.actor ); }, init: function () { var a = this; this.actor.getType() == d.getActorType(208) && (this._Left = !0); if (this._BossCannon) { var b = this.actor; if (0 == b.physicsMode) for (b = b.getBody().getFixtureList(); null != b; ) b.getBody().DestroyFixture(b), (b = b.getNext()); } else d.runLater( 1e3 * this._Delay, function (b) { a.actor.say('Cannon Logic', '_customEvent_Shoot'); }, this.actor ); this._Hide && this.actor.setX(this.actor.getX() - 32); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Yu }); var ix = function () {}; h['scripts.MyScripts'] = ix; ix.__name__ = 'scripts.MyScripts'; var Zu = function (a, b) { d.call(this); }; h['scripts.SceneEvents_11'] = Zu; Zu.__name__ = 'scripts.SceneEvents_11'; Zu.__super__ = sa; Zu.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Zu }); var $u = function (a, b) { d.call(this); }; h['scripts.SceneEvents_13'] = $u; $u.__name__ = 'scripts.SceneEvents_13'; $u.__super__ = sa; $u.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: $u }); var av = function (a, b) { d.call(this); }; h['scripts.SceneEvents_16'] = av; av.__name__ = 'scripts.SceneEvents_16'; av.__super__ = sa; av.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: av }); var bv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_17'] = bv; bv.__name__ = 'scripts.SceneEvents_17'; bv.__super__ = sa; bv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: bv }); var cv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_18'] = cv; cv.__name__ = 'scripts.SceneEvents_18'; cv.__super__ = sa; cv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: cv }); var dv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_19'] = dv; dv.__name__ = 'scripts.SceneEvents_19'; dv.__super__ = sa; dv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: dv }); var ev = function (a, b) { d.call(this); }; h['scripts.SceneEvents_20'] = ev; ev.__name__ = 'scripts.SceneEvents_20'; ev.__super__ = sa; ev.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: ev }); var fv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_21'] = fv; fv.__name__ = 'scripts.SceneEvents_21'; fv.__super__ = sa; fv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: fv }); var gv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_22'] = gv; gv.__name__ = 'scripts.SceneEvents_22'; gv.__super__ = sa; gv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: gv }); var hv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_23'] = hv; hv.__name__ = 'scripts.SceneEvents_23'; hv.__super__ = sa; hv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: hv }); var iv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_24'] = iv; iv.__name__ = 'scripts.SceneEvents_24'; iv.__super__ = sa; iv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: iv }); var jv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_25'] = jv; jv.__name__ = 'scripts.SceneEvents_25'; jv.__super__ = sa; jv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: jv }); var kv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_26'] = kv; kv.__name__ = 'scripts.SceneEvents_26'; kv.__super__ = sa; kv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: kv }); var lv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_27'] = lv; lv.__name__ = 'scripts.SceneEvents_27'; lv.__super__ = sa; lv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: lv }); var mv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_28'] = mv; mv.__name__ = 'scripts.SceneEvents_28'; mv.__super__ = sa; mv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: mv }); var nv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_29'] = nv; nv.__name__ = 'scripts.SceneEvents_29'; nv.__super__ = sa; nv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: nv }); var ov = function (a, b) { d.call(this); }; h['scripts.SceneEvents_30'] = ov; ov.__name__ = 'scripts.SceneEvents_30'; ov.__super__ = sa; ov.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: ov }); var pv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_31'] = pv; pv.__name__ = 'scripts.SceneEvents_31'; pv.__super__ = sa; pv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: pv }); var qv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_32'] = qv; qv.__name__ = 'scripts.SceneEvents_32'; qv.__super__ = sa; qv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: qv }); var rv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_33'] = rv; rv.__name__ = 'scripts.SceneEvents_33'; rv.__super__ = sa; rv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: rv }); var sv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_34'] = sv; sv.__name__ = 'scripts.SceneEvents_34'; sv.__super__ = sa; sv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: sv }); var tv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_35'] = tv; tv.__name__ = 'scripts.SceneEvents_35'; tv.__super__ = sa; tv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: tv }); var uv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_36'] = uv; uv.__name__ = 'scripts.SceneEvents_36'; uv.__super__ = sa; uv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: uv }); var vv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_37'] = vv; vv.__name__ = 'scripts.SceneEvents_37'; vv.__super__ = sa; vv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: vv }); var wv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_38'] = wv; wv.__name__ = 'scripts.SceneEvents_38'; wv.__super__ = sa; wv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: wv }); var xv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_39'] = xv; xv.__name__ = 'scripts.SceneEvents_39'; xv.__super__ = sa; xv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: xv }); var yv = function (a, b) { d.call(this); this.nameMap.h['Can Start'] = '_CanStart'; this._CanStart = !1; this.nameMap.h['Flash On'] = '_FlashOn'; this._FlashOn = !1; this.nameMap.h.Logo = '_Logo'; this.nameMap.h.Dude = '_Dude'; this.nameMap.h['Transition Col Count'] = '_TransitionColCount'; this._TransitionColCount = 0; this.nameMap.h['Transition Type'] = '_TransitionType'; this._TransitionType = 0; this.nameMap.h.Go = '_Go'; this._Go = !1; this.nameMap.h['Jumping Dadish'] = '_JumpingDadish'; this.nameMap.h['Transition X Center'] = '_TransitionXCenter'; this._TransitionXCenter = 0; this.nameMap.h['Transition Y Center'] = '_TransitionYCenter'; this._TransitionYCenter = 0; this.nameMap.h['Main Menu Walls Height'] = '_MainMenuWallsHeight'; this._MainMenuWallsHeight = 0; this.nameMap.h['Clouds Width'] = '_CloudsWidth'; this._CloudsWidth = 0; this.nameMap.h['Back Clouds Pacer'] = '_BackCloudsPacer'; this._BackCloudsPacer = !1; this.nameMap.h['Settings Button'] = '_SettingsButton'; this.nameMap.h['Settings is Open'] = '_SettingsisOpen'; this._SettingsisOpen = !1; this.nameMap.h['Set Landscape Left'] = '_SetLandscapeLeft'; this._SetLandscapeLeft = !1; this.nameMap.h['Touch To Start Text'] = '_TouchToStartText'; this._TouchToStartText = ''; this.nameMap.h['Touch To Start Font'] = '_TouchToStartFont'; this.nameMap.h['CONTROL TEST'] = '_CONTROLTEST'; this._CONTROLTEST = ''; this.nameMap.h['Button Input'] = '_ButtonInput'; this._ButtonInput = ''; this.nameMap.h['Show Exit Text'] = '_ShowExitText'; this._ShowExitText = !1; }; h['scripts.SceneEvents_4'] = yv; yv.__name__ = 'scripts.SceneEvents_4'; yv.__super__ = sa; yv.prototype = r(sa.prototype, { _CanStart: null, _FlashOn: null, _Logo: null, _Dude: null, _TransitionColCount: null, _TransitionType: null, _Go: null, _JumpingDadish: null, _TransitionXCenter: null, _TransitionYCenter: null, _MainMenuWallsHeight: null, _CloudsWidth: null, _BackCloudsPacer: null, _SettingsButton: null, _SettingsisOpen: null, _SetLandscapeLeft: null, _TouchToStartText: null, _TouchToStartFont: null, _CONTROLTEST: null, _ButtonInput: null, _ShowExitText: null, _event_Camera: function (a) { this.wrapper.enabled && d.engine.moveCamera(d.getSceneWidth() / 2, d.getSceneHeight() / 2); }, _event_AfterNsecs: function (a) { this.wrapper.enabled && (this._CanStart = !0); }, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) { if (this._CanStart && this._FlashOn) { var e = this._Logo; e = d.isPrimitive(e) ? !0 : 'string' == typeof e ? '' != x.__cast(e, String) : null != e; } else e = !1; if (e && !k.engine.getGameAttribute('Settings Open')) { e = this._TouchToStartFont; null != e && e != a.font && (a.font = e); e = this._TouchToStartText; b = d.getScreenWidth() / 2 - a.font.getTextWidth(this._TouchToStartText) / k.SCALE / 2; c = d.getScreenHeight() / 2 - 124 + this._Logo.getHeight() + 30; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (c = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, c); var f = null, g = a.font; g = e + ':' + g.ID + ':' + a.alpha + ':' + g.letterSpacing + ':' + k.SCALE; if (Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, g)) (e = W.drawnStringCache.h[g]), (e.lifetime = 5), (f = e.img); else { var h = a.font.font.getTextWidth(e, a.font.letterSpacing, a.font.fontScale), l = (a.font.font.getFontHeight() * a.font.fontScale) | 0; 0 < h && 0 < l && ((f = new ja(h, l, !0, 0)), a.font.font.renderToImg( f, e, 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (e = new Mb()), (e.img = f), (e.lifetime = 5), (W.drawnStringCache.h[g] = e), W.drawnStringCacheKeys.push(g)); } null != f && (a.graphics.beginBitmapFill(f, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, f.width, f.height), a.graphics.endFill()); } a = 0; for (e = d.getActorsOfType(d.getActorType(475)); a < e.length; ) (b = e[a]), ++a, null == b || b.dead || b.recycled || (b.setX(b.getX() - 1), b.getX() <= -this._CloudsWidth && b.setX(this._CloudsWidth * Math.ceil(d.getScreenWidth() / this._CloudsWidth))); if (this._BackCloudsPacer) this._BackCloudsPacer = !1; else for ( this._BackCloudsPacer = !0, a = 0, e = d.getActorsOfType(d.getActorType(477)); a < e.length; ) (b = e[a]), ++a, null == b || b.dead || b.recycled || (b.setX(b.getX() - 1), b.getX() <= -this._CloudsWidth && b.setX( this._CloudsWidth * Math.ceil(d.getScreenWidth() / this._CloudsWidth) )); } }, _event_Language: function (a) { this.wrapper.enabled && ((this._TouchToStartFont = d.getFont(479)), 'JP' == k.engine.getGameAttribute('Language') ? ((this._TouchToStartText = '~x3044~x305a~x308c~x304b~x306e~x30ad~x30fc~x3092~x62bc~x3059'), (this._TouchToStartFont = d.getFont(591))) : 'CN' == k.engine.getGameAttribute('Language') ? ((this._TouchToStartText = '~x6309~x4e0b~x4efb~x610f~x952e'), (this._TouchToStartFont = d.getFont(594))) : 'KR' == k.engine.getGameAttribute('Language') ? ((this._TouchToStartText = '~xc544~xbb34 ~xd0a4~xb098 ~xb204~xb974~xc138~xc694'), (this._TouchToStartFont = d.getFont(595))) : (this._TouchToStartText = 'PRESS ANY KEY')); }, _event_EveryNsecs: function (a) { this.wrapper.enabled && (this._FlashOn = this._FlashOn ? !1 : !0); }, _event_AnyKey: function (a) { var b = this; if ( this.wrapper.enabled && (d.engine.unpause(), !k.engine.getGameAttribute('Settings Open') && this._CanStart && !this._Go && ((this._CanStart = !1), d.recycleActor(this._SettingsButton), (this._SettingsButton = d.getDefaultValue(this._SettingsButton)), (this._Go = !0), (a = this._Logo), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a))) ) { 'JP' == k.engine.getGameAttribute('Language') ? (this._Logo.setAnimation('JP No Dadish'), d.createRecycledActorOnLayer( d.getActorType(232), this._Logo.getX() + 126, this._Logo.getY() + 6, d.engine.getLayerById(this._Logo.getLayerID()) )) : 'CN' == k.engine.getGameAttribute('Language') ? (this._Logo.setAnimation('CN No Dadish'), d.createRecycledActorOnLayer( d.getActorType(232), this._Logo.getX() + 98, this._Logo.getY() + 6, d.engine.getLayerById(this._Logo.getLayerID()) )) : (this._Logo.setAnimation('No Dadish'), d.createRecycledActorOnLayer( d.getActorType(232), this._Logo.getX() + 76, this._Logo.getY() + 6, d.engine.getLayerById(this._Logo.getLayerID()) )); this._JumpingDadish = d.getLastCreatedActor(); this._JumpingDadish.moveToBottom(); a = 0; for (var c = d.getActorsOfType(d.getActorType(475)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || e.moveToBottom(); } a = 0; for (c = d.getActorsOfType(d.getActorType(477)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveToBottom(); d.stopAllSounds(); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(119)); this._JumpingDadish.moveBy(0, -120, 0.6, J.quadOut); d.runLater( 200, function (a) { b._JumpingDadish.setAnimation('Jump'); }, null ); d.runLater( 620, function (a) { b._JumpingDadish.moveToTop(); b._JumpingDadish.moveTo( b._JumpingDadish.getX(), d.getScreenY() + (d.getScreenHeight() + 10), d.getScreenHeight() / 600, J.quadIn ); d.runLater( 1e3 * (d.getScreenHeight() / 600 + 0.1), function (a) { d.setValueForScene('Transitions', '_TransitionType', 2); d.sayToScene('Transitions', '_customEvent_transitionOut'); d.runLater( 1e3, function (a) { if (31 <= k.engine.getGameAttribute('Last Stage Played')) { a = Fa.get().scenes.h[8].getID(); var b = 0, c = 0, e = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); var f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e); e = c = b = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)); k.engine.gameAttributes.h['Start Overworld Music'] = !0; } else 21 <= k.engine.getGameAttribute('Last Stage Played') ? ((a = Fa.get().scenes.h[7].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)), (k.engine.gameAttributes.h['Start Overworld Music'] = !0)) : 11 <= k.engine.getGameAttribute('Last Stage Played') ? ((a = Fa.get().scenes.h[6].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)), (k.engine.gameAttributes.h['Start Overworld Music'] = !0)) : 1 >= k.engine.getGameAttribute('Last Stage Played') ? ((a = Fa.get().scenes.h[57].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e))) : ((a = Fa.get().scenes.h[5].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)), (k.engine.gameAttributes.h['Start Overworld Music'] = !0)); }, null ); }, null ); }, null ); } }, _event_MultiTouch: function (a) { var b = this; if ( this.wrapper.enabled && (d.engine.unpause(), (k.engine.gameAttributes.h['MOBILE MODE'] = !0), !k.engine.getGameAttribute('Settings Open') && this._CanStart && !this._Go && ((this._CanStart = !1), d.recycleActor(this._SettingsButton), (this._SettingsButton = d.getDefaultValue(this._SettingsButton)), (this._Go = !0), (a = this._Logo), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a))) ) { 'JP' == k.engine.getGameAttribute('Language') ? (this._Logo.setAnimation('JP No Dadish'), d.createRecycledActorOnLayer( d.getActorType(232), this._Logo.getX() + 126, this._Logo.getY() + 6, d.engine.getLayerById(this._Logo.getLayerID()) )) : 'CN' == k.engine.getGameAttribute('Language') ? (this._Logo.setAnimation('CN No Dadish'), d.createRecycledActorOnLayer( d.getActorType(232), this._Logo.getX() + 98, this._Logo.getY() + 6, d.engine.getLayerById(this._Logo.getLayerID()) )) : (this._Logo.setAnimation('No Dadish'), d.createRecycledActorOnLayer( d.getActorType(232), this._Logo.getX() + 76, this._Logo.getY() + 6, d.engine.getLayerById(this._Logo.getLayerID()) )); this._JumpingDadish = d.getLastCreatedActor(); this._JumpingDadish.moveToBottom(); a = 0; for (var c = d.getActorsOfType(d.getActorType(475)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || e.moveToBottom(); } a = 0; for (c = d.getActorsOfType(d.getActorType(477)); a < c.length; ) (e = c[a]), ++a, null == e || e.dead || e.recycled || e.moveToBottom(); d.stopAllSounds(); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(119)); this._JumpingDadish.moveBy(0, -120, 0.6, J.quadOut); d.runLater( 200, function (a) { b._JumpingDadish.setAnimation('Jump'); }, null ); d.runLater( 620, function (a) { b._JumpingDadish.moveToTop(); b._JumpingDadish.moveTo( b._JumpingDadish.getX(), d.getScreenY() + (d.getScreenHeight() + 10), d.getScreenHeight() / 600, J.quadIn ); d.runLater( 1e3 * (d.getScreenHeight() / 600 + 0.1), function (a) { d.setValueForScene('Transitions', '_TransitionType', 2); d.sayToScene('Transitions', '_customEvent_transitionOut'); d.runLater( 1e3, function (a) { if (31 <= k.engine.getGameAttribute('Last Stage Played')) { a = Fa.get().scenes.h[8].getID(); var b = 0, c = 0, e = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); var f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e); e = c = b = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)); k.engine.gameAttributes.h['Start Overworld Music'] = !0; } else 21 <= k.engine.getGameAttribute('Last Stage Played') ? ((a = Fa.get().scenes.h[7].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)), (k.engine.gameAttributes.h['Start Overworld Music'] = !0)) : 11 <= k.engine.getGameAttribute('Last Stage Played') ? ((a = Fa.get().scenes.h[6].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)), (k.engine.gameAttributes.h['Start Overworld Music'] = !0)) : 1 >= k.engine.getGameAttribute('Last Stage Played') ? ((a = Fa.get().scenes.h[57].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e))) : ((a = Fa.get().scenes.h[5].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)), (k.engine.gameAttributes.h['Start Overworld Music'] = !0)); }, null ); }, null ); }, null ); } }, _event_Click: function () { var a = this; if ( this.wrapper.enabled && (d.engine.unpause(), !k.engine.getGameAttribute('Settings Open') && this._CanStart && !this._Go) ) { this._CanStart = !1; d.recycleActor(this._SettingsButton); this._SettingsButton = d.getDefaultValue(this._SettingsButton); this._Go = !0; var b = this._Logo; if ( d.isPrimitive(b) || ('string' == typeof b ? '' != x.__cast(b, String) : null != b) ) { 'JP' == k.engine.getGameAttribute('Language') ? (this._Logo.setAnimation('JP No Dadish'), d.createRecycledActorOnLayer( d.getActorType(232), this._Logo.getX() + 126, this._Logo.getY() + 6, d.engine.getLayerById(this._Logo.getLayerID()) )) : 'CN' == k.engine.getGameAttribute('Language') ? (this._Logo.setAnimation('CN No Dadish'), d.createRecycledActorOnLayer( d.getActorType(232), this._Logo.getX() + 98, this._Logo.getY() + 6, d.engine.getLayerById(this._Logo.getLayerID()) )) : (this._Logo.setAnimation('No Dadish'), d.createRecycledActorOnLayer( d.getActorType(232), this._Logo.getX() + 76, this._Logo.getY() + 6, d.engine.getLayerById(this._Logo.getLayerID()) )); this._JumpingDadish = d.getLastCreatedActor(); this._JumpingDadish.moveToBottom(); b = 0; for (var c = d.getActorsOfType(d.getActorType(475)); b < c.length; ) { var e = c[b]; ++b; null == e || e.dead || e.recycled || e.moveToBottom(); } b = 0; for (c = d.getActorsOfType(d.getActorType(477)); b < c.length; ) (e = c[b]), ++b, null == e || e.dead || e.recycled || e.moveToBottom(); d.stopAllSounds(); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(119)); this._JumpingDadish.moveBy(0, -120, 0.6, J.quadOut); d.runLater( 200, function (b) { a._JumpingDadish.setAnimation('Jump'); }, null ); d.runLater( 620, function (b) { a._JumpingDadish.moveToTop(); a._JumpingDadish.moveTo( a._JumpingDadish.getX(), d.getScreenY() + (d.getScreenHeight() + 10), d.getScreenHeight() / 600, J.quadIn ); d.runLater( 1e3 * (d.getScreenHeight() / 600 + 0.1), function (a) { d.setValueForScene('Transitions', '_TransitionType', 2); d.sayToScene('Transitions', '_customEvent_transitionOut'); d.runLater( 1e3, function (a) { if (31 <= k.engine.getGameAttribute('Last Stage Played')) { a = Fa.get().scenes.h[8].getID(); var b = 0, c = 0, e = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); var f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e); e = c = b = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)); k.engine.gameAttributes.h['Start Overworld Music'] = !0; } else 21 <= k.engine.getGameAttribute('Last Stage Played') ? ((a = Fa.get().scenes.h[7].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)), (k.engine.gameAttributes.h['Start Overworld Music'] = !0)) : 11 <= k.engine.getGameAttribute('Last Stage Played') ? ((a = Fa.get().scenes.h[6].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)), (k.engine.gameAttributes.h['Start Overworld Music'] = !0)) : 1 >= k.engine.getGameAttribute('Last Stage Played') ? ((a = Fa.get().scenes.h[57].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e))) : ((a = Fa.get().scenes.h[5].getID()), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), (f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e)), (e = c = b = 0), null == e && (e = 0), null == c && (c = 0), null == b && (b = 0), d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)), (k.engine.gameAttributes.h['Start Overworld Music'] = !0)); }, null ); }, null ); }, null ); } } }, _customEvent_newLogo: function () { var a = this._Logo; if (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) d.recycleActor(this._Logo), (this._Logo = d.getDefaultValue(this._Logo)), d.createRecycledActor( d.getActorType(226), d.getScreenWidth() / 2 - 145, d.getScreenHeight() / 2 - 124, 2 ), (this._Logo = d.getLastCreatedActor()), 'JP' == k.engine.getGameAttribute('Language') && (this._Logo.setAnimation('JP Idle'), this._Logo.setX(d.getScreenWidth() / 2 - this._Logo.getWidth() / 2)), 'CN' == k.engine.getGameAttribute('Language') && (this._Logo.setAnimation('CN Idle'), this._Logo.setX(d.getScreenWidth() / 2 - this._Logo.getWidth() / 2)), this._Logo.shout('_customEvent_Move'); }, init: function () { var a = this; d.engine.unpause(); k.engine.gameAttributes.h['MOBILE MODE'] = !1; d.runLater( 1e3, function (b) { a._ShowExitText = !0; }, null ); d.engine.moveCamera(d.getSceneWidth() / 2, d.getSceneHeight() / 2); d.createRecycledActor(d.getActorType(758), 0, 0, 2); d.stopAllSounds(); d.engine.unpause(); d.createRecycledActor( d.getActorType(473), -2, d.getScreenY() + (d.getScreenHeight() - 50), 2 ); d.createRecycledActor( d.getActorType(226), d.getScreenX() + (d.getScreenWidth() / 2 - 145), d.getScreenY() + (d.getScreenHeight() / 2 - 124), 2 ); this._Logo = d.getLastCreatedActor(); 'JP' == k.engine.getGameAttribute('Language') && (this._Logo.setAnimation('JP Idle'), this._Logo.setX(d.getScreenWidth() / 2 - this._Logo.getWidth() / 2)); 'CN' == k.engine.getGameAttribute('Language') && (this._Logo.setAnimation('CN Idle'), this._Logo.setX(d.getScreenWidth() / 2 - this._Logo.getWidth() / 2)); this._Logo.shout('_customEvent_Move'); k.engine.gameAttributes.h.Dead = !1; k.engine.gameAttributes.h['Settings Open'] = !1; k.engine.gameAttributes.h['Map Enter Left'] = !1; k.engine.gameAttributes.h['Map Enter Right'] = !1; k.engine.gameAttributes.h['Boss 1 Dialog Read'] = !1; k.engine.gameAttributes.h['Boss 2 Dialog Read'] = !1; k.engine.gameAttributes.h['Boss 3 Dialog Read'] = !1; k.engine.gameAttributes.h['Boss 4 Dialog Read'] = !1; k.engine.gameAttributes.h['Boss 5 Dialog Read'] = !1; k.engine.gameAttributes.h['No Transition'] = !1; k.engine.gameAttributes.h['Overworld Entered Left'] = !1; k.engine.gameAttributes.h['Overworld Entered Right'] = !1; k.engine.gameAttributes.h['Wipe In Left'] = !1; k.engine.gameAttributes.h['Wipe In Right'] = !1; k.engine.gameAttributes.h['Checkpoint Passed'] = !1; k.engine.gameAttributes.h['Dialog Box Open'] = !1; k.engine.gameAttributes.h['Start Overworld Music'] = !1; k.engine.gameAttributes.h['Star Collected'] = !1; k.engine.getGameAttribute('Music Disabled') ? d.setVolumeForChannel(0, 16) : k.engine.getGameAttribute('Music Disabled') || d.setVolumeForChannel(1, 16); d.setValueForScene('Transitions', '_TransitionType', 1); d.sayToScene('Transitions', '_customEvent_transitionIn'); this._CloudsWidth = 960; for (var b = 0, c = Math.ceil(d.getSceneWidth() / this._CloudsWidth) + 1; b < c; ) { var e = b++; d.createRecycledActor( d.getActorType(475), this._CloudsWidth * e, d.getScreenY() + (d.getScreenHeight() - 318), 2 ); d.getLastCreatedActor().moveToBottom(); } b = 0; for (c = Math.ceil(d.getSceneWidth() / this._CloudsWidth) + 1; b < c; ) (e = b++), d.createRecycledActor( d.getActorType(477), this._CloudsWidth * e, d.getScreenY() + (d.getScreenHeight() - 318), 2 ), d.getLastCreatedActor().moveToBottom(); this.addListener(d.engine.whenUpdated, q(this, this._event_Camera)); d.runLater(500, q(this, this._event_AfterNsecs), null); this.addListener(d.engine.whenDrawing, q(this, this._event_Drawing)); this.addListener(d.engine.whenUpdated, q(this, this._event_Language)); d.runPeriodically(200, q(this, this._event_EveryNsecs), null); this.addListener(d.engine.whenAnyKeyPressed, q(this, this._event_AnyKey)); this.addListener(d.engine.whenMTStarted, q(this, this._event_MultiTouch)); this.addListener(d.engine.whenMousePressed, q(this, this._event_Click)); }, forwardMessage: function (a) {}, __class__: yv }); var zv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_41'] = zv; zv.__name__ = 'scripts.SceneEvents_41'; zv.__super__ = sa; zv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: zv }); var Av = function (a, b) { d.call(this); }; h['scripts.SceneEvents_42'] = Av; Av.__name__ = 'scripts.SceneEvents_42'; Av.__super__ = sa; Av.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Av }); var Bv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_43'] = Bv; Bv.__name__ = 'scripts.SceneEvents_43'; Bv.__super__ = sa; Bv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Bv }); var Cv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_44'] = Cv; Cv.__name__ = 'scripts.SceneEvents_44'; Cv.__super__ = sa; Cv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Cv }); var Dv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_45'] = Dv; Dv.__name__ = 'scripts.SceneEvents_45'; Dv.__super__ = sa; Dv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Dv }); var Ev = function (a, b) { d.call(this); }; h['scripts.SceneEvents_46'] = Ev; Ev.__name__ = 'scripts.SceneEvents_46'; Ev.__super__ = sa; Ev.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Ev }); var Fv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_47'] = Fv; Fv.__name__ = 'scripts.SceneEvents_47'; Fv.__super__ = sa; Fv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Fv }); var Gv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_48'] = Gv; Gv.__name__ = 'scripts.SceneEvents_48'; Gv.__super__ = sa; Gv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Gv }); var Hv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_49'] = Hv; Hv.__name__ = 'scripts.SceneEvents_49'; Hv.__super__ = sa; Hv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Hv }); var Iv = function (a, b) { d.call(this); this.nameMap.h.Overlay = '_Overlay'; this.nameMap.h['Leaf Speed'] = '_LeafSpeed'; this._LeafSpeed = 10; }; h['scripts.SceneEvents_5'] = Iv; Iv.__name__ = 'scripts.SceneEvents_5'; Iv.__super__ = sa; Iv.prototype = r(sa.prototype, { _Overlay: null, _LeafSpeed: null, _event_EveryNsecs: function (a) { if (this.wrapper.enabled) { 1 == d.randomInt(1, 2) ? (this._LeafSpeed = Math.min(15, this._LeafSpeed + 1)) : (this._LeafSpeed = Math.max(5, this._LeafSpeed - 1)); a = 0; for (var b = d.randomInt(1, 3); a < b; ) a++, d.createRecycledActor( d.getActorType(90), d.randomInt( (d.getScreenX() - 128) | 0, (d.getScreenX() + d.getScreenWidth() - 64) | 0 ), d.getScreenY() - 10, 0 ), d .getLastCreatedActor() .setXVelocity(0.002 * this._LeafSpeed * d.randomInt(80, 100)), d.getLastCreatedActor().setYVelocity(2); a = 0; for (b = d.getActorsOfType(d.getActorType(90)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || d .getLastCreatedActor() .setXVelocity(0.002 * this._LeafSpeed * d.randomInt(80, 100)); } } }, _customEvent_createBorders: function () { d.createRecycledActor(d.getActorType(255), 0, d.getScreenY(), 1); d.getLastCreatedActor().moveToBottom(); d.createRecycledActor( d.getActorType(257), 0, d.getScreenY() + (d.getScreenHeight() - 80), 1 ); d.getLastCreatedActor().moveToBottom(); }, init: function () { for (var a = 0; 6 > a; ) a++, d.createRecycledActor( d.getActorType(90), d.randomInt( (d.getScreenX() - 64) | 0, (d.getScreenX() + d.getScreenWidth() - 64) | 0 ), d.randomInt( (d.getScreenY() - 64) | 0, (d.getScreenY() + d.getScreenHeight() - 64) | 0 ), 0 ), d.getLastCreatedActor().setXVelocity(0.002 * this._LeafSpeed * d.randomInt(80, 100)), d.getLastCreatedActor().setYVelocity(2); d.runPeriodically(5e3, q(this, this._event_EveryNsecs), null); }, forwardMessage: function (a) {}, __class__: Iv }); var Jv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_50'] = Jv; Jv.__name__ = 'scripts.SceneEvents_50'; Jv.__super__ = sa; Jv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Jv }); var Kv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_51'] = Kv; Kv.__name__ = 'scripts.SceneEvents_51'; Kv.__super__ = sa; Kv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Kv }); var Lv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_52'] = Lv; Lv.__name__ = 'scripts.SceneEvents_52'; Lv.__super__ = sa; Lv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Lv }); var Mv = function (a, b) { d.call(this); this.nameMap.h.Dude = '_Dude'; }; h['scripts.SceneEvents_53'] = Mv; Mv.__name__ = 'scripts.SceneEvents_53'; Mv.__super__ = sa; Mv.prototype = r(sa.prototype, { _Dude: null, _event_Updating: function (a) { this.wrapper.enabled && ((a = this._Dude), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Dude.getX() > d.getScreenX() + (d.getScreenWidth() + 64) && (d.sayToScene('Cutscene Logic', '_customEvent_Finished'), d.stopAllSounds(), d.recycleActor(this._Dude), (this._Dude = d.getDefaultValue(this._Dude)))); }, init: function () { var a = this; d.loopSoundOnChannel(d.getSound(135), 15); k.engine.getGameAttribute('Sound Disabled') ? d.setVolumeForChannel(0, 15) : k.engine.getGameAttribute('Sound Disabled') || d.setVolumeForChannel(1, 15); d.runLater( 500, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('1 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 700, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('2 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 900, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('3 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1100, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('4 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1300, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('5 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1500, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('1 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1700, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('2 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1900, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('3 Right Jump'); d.getLastCreatedActor().setXVelocity(30); }, null ); d.runLater( 2100, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('4 Right Jump'); d.getLastCreatedActor().setXVelocity(30); }, null ); d.runLater( 2300, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('5 Right Jump'); d.getLastCreatedActor().setXVelocity(30); }, null ); d.runLater( 4e3, function (b) { d.createRecycledActorOnLayer( d.getActorType(431), d.getScreenX() - 48, 504, d.engine.getLayerById(3) ); a._Dude = d.getLastCreatedActor(); a._Dude.setAnimation('Walk Right'); a._Dude.setXVelocity(24); }, null ); this.addListener(d.engine.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Mv }); var Nv = function (a, b) { d.call(this); this.nameMap.h.Dude = '_Dude'; this.nameMap.h['Beach BG Width'] = '_BeachBGWidth'; this._BeachBGWidth = 0; this.nameMap.h['Beach BG Created'] = '_BeachBGCreated'; this._BeachBGCreated = !1; }; h['scripts.SceneEvents_54'] = Nv; Nv.__name__ = 'scripts.SceneEvents_54'; Nv.__super__ = sa; Nv.prototype = r(sa.prototype, { _Dude: null, _BeachBGWidth: null, _BeachBGCreated: null, _event_Updating: function (a) { this.wrapper.enabled && ((a = this._Dude), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Dude.getX() > d.getScreenX() + (d.getScreenWidth() + 64) && (d.sayToScene('Cutscene Logic', '_customEvent_Finished'), d.stopAllSounds(), d.recycleActor(this._Dude), (this._Dude = d.getDefaultValue(this._Dude)))); }, init: function () { var a = this; d.createRecycledActorOnLayer(d.getActorType(756), -1, -1, d.engine.getLayerById(7)); d.createRecycledActorOnLayer(d.getActorType(541), 0, 0, d.engine.getLayerById(7)); for (this._BeachBGWidth = d.getLastCreatedActor().getWidth(); !this._BeachBGCreated; ) 960 > this._BeachBGWidth ? (d.createRecycledActorOnLayer( d.getActorType(541), d.getLastCreatedActor().getX() + d.getLastCreatedActor().getWidth(), 0, d.engine.getLayerById(7) ), (this._BeachBGWidth += d.getLastCreatedActor().getWidth())) : (this._BeachBGCreated = !0); d.loopSoundOnChannel(d.getSound(148), 15); k.engine.getGameAttribute('Sound Disabled') ? d.setVolumeForChannel(0, 15) : k.engine.getGameAttribute('Sound Disabled') || d.setVolumeForChannel(1, 15); d.runLater( 500, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('1 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 700, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('2 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 900, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('3 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1100, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('4 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1300, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('5 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1500, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('1 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1700, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('2 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1900, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('3 Right Jump'); d.getLastCreatedActor().setXVelocity(30); }, null ); d.runLater( 2100, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('4 Right Jump'); d.getLastCreatedActor().setXVelocity(30); }, null ); d.runLater( 2300, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('5 Right Jump'); d.getLastCreatedActor().setXVelocity(30); }, null ); d.runLater( 2800, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); d.getLastCreatedActor().setAnimation('6 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setX(d.getScreenX() - 48); d.getLastCreatedActor().setY(512); }, null ); d.runLater( 4500, function (b) { d.createRecycledActorOnLayer( d.getActorType(431), d.getScreenX() - 48, 504, d.engine.getLayerById(3) ); a._Dude = d.getLastCreatedActor(); a._Dude.setAnimation('Walk Right'); a._Dude.setXVelocity(24); }, null ); this.addListener(d.engine.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Nv }); var Ov = function (a, b) { d.call(this); this.nameMap.h['Snow Speed'] = '_SnowSpeed'; this._SnowSpeed = 0; this.nameMap.h.Dude = '_Dude'; this.nameMap.h['First Baby'] = '_FirstBaby'; this.nameMap.h.Fries = '_Fries'; this.nameMap.h['Fries Shocked'] = '_FriesShocked'; this._FriesShocked = !1; this.nameMap.h.Exclamation = '_Exclamation'; this.nameMap.h['Fries Run'] = '_FriesRun'; this._FriesRun = !1; this.nameMap.h['Fries Dead'] = '_FriesDead'; this._FriesDead = !1; this.nameMap.h['Beach BG Width'] = '_BeachBGWidth'; this._BeachBGWidth = 0; this.nameMap.h['Beach BG Created'] = '_BeachBGCreated'; this._BeachBGCreated = !1; }; h['scripts.SceneEvents_55'] = Ov; Ov.__name__ = 'scripts.SceneEvents_55'; Ov.__super__ = sa; Ov.prototype = r(sa.prototype, { _SnowSpeed: null, _Dude: null, _FirstBaby: null, _Fries: null, _FriesShocked: null, _Exclamation: null, _FriesRun: null, _FriesDead: null, _BeachBGWidth: null, _BeachBGCreated: null, _event_Snow: function (a) { if (this.wrapper.enabled) { d.createRecycledActorOnLayer(d.getActorType(754), -1, -1, d.engine.getLayerById(7)); d.createRecycledActorOnLayer(d.getActorType(615), 0, 0, d.engine.getLayerById(7)); for (this._BeachBGWidth = d.getLastCreatedActor().getWidth(); !this._BeachBGCreated; ) 960 > this._BeachBGWidth ? (d.createRecycledActorOnLayer( d.getActorType(615), d.getLastCreatedActor().getX() + d.getLastCreatedActor().getWidth(), 0, d.engine.getLayerById(7) ), (this._BeachBGWidth += d.getLastCreatedActor().getWidth())) : (this._BeachBGCreated = !0); 1 == d.randomInt(1, 2) && (1 == d.randomInt(1, 2) ? (this._SnowSpeed = Math.min(this._SnowSpeed + 1, 12)) : (this._SnowSpeed = Math.max(this._SnowSpeed - 1, -12))); a = 0; for (var b = d.randomInt(1, 3); a < b; ) a++, d.createRecycledActorOnLayer( d.getActorType(155), d.randomInt( (d.getScreenX() - d.getScreenWidth() / 2) | 0, (d.getScreenX() + (d.getScreenWidth() + d.getScreenWidth() / 2)) | 0 ), d.getScreenY() - 16 - d.randomInt(0, d.getScreenHeight()), d.engine.getLayerById(6) ); } }, _event_Updating: function (a) { var b = this; this.wrapper.enabled && ((a = this._Fries), d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a) ? ((a = this._FirstBaby), (a = d.isPrimitive(a) ? !0 : 'string' == typeof a ? '' != x.__cast(a, String) : null != a)) : (a = !1), a && (260 > this._Fries.getX() - this._FirstBaby.getX() && !this._FriesShocked && ((this._FriesShocked = !0), d.createRecycledActor( d.getActorType(131), this._Fries.getXCenter() - 14, this._Fries.getY() - 28, 0 ), (this._Exclamation = d.getLastCreatedActor()), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(373)), this._Fries.setYVelocity(-20)), 160 > this._Fries.getX() - this._FirstBaby.getX() && !this._FriesRun && ((this._FriesRun = !0), d.recycleActor(this._Exclamation), this._Fries.setAnimation('Right'), d.runLater( 100, function (a) { b._Fries.setXVelocity(16); }, null )), 5 > this._Fries.getX() - this._FirstBaby.getX() && !this._FriesDead && ((this._FriesDead = !0), d.createRecycledActorOnLayer( d.getActorType(445), this._Fries.getX() - 8, this._Fries.getY() + 6, d.engine.getLayerById(3) ), k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(378)), d.recycleActor(this._Fries), (this._Fries = d.getDefaultValue(this._Fries))))); }, _event_Updating2: function (a) { this.wrapper.enabled && ((a = this._Dude), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Dude.getX() > d.getScreenX() + (d.getScreenWidth() + 64) && (d.sayToScene('Cutscene Logic', '_customEvent_Finished'), d.stopAllSounds(), d.recycleActor(this._Dude), (this._Dude = d.getDefaultValue(this._Dude)))); }, init: function () { var a = this; d.loopSoundOnChannel(d.getSound(157), 15); k.engine.getGameAttribute('Sound Disabled') ? d.setVolumeForChannel(0, 15) : k.engine.getGameAttribute('Sound Disabled') || d.setVolumeForChannel(1, 15); d.createRecycledActorOnLayer( d.getActorType(443), d.getSceneWidth() / 2 - 18, 496, d.engine.getLayerById(3) ); this._Fries = d.getLastCreatedActor(); d.runLater( 500, function (b) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('1 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); a._FirstBaby = d.getLastCreatedActor(); }, null ); d.runLater( 700, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('2 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 900, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('3 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1100, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('4 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1300, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('5 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1500, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('1 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1700, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('2 Right Jump'); d.getLastCreatedActor().setXVelocity(30); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1900, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('3 Right Jump'); d.getLastCreatedActor().setXVelocity(30); }, null ); d.runLater( 2100, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('4 Right Jump'); d.getLastCreatedActor().setXVelocity(30); }, null ); d.runLater( 2300, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('5 Right Jump'); d.getLastCreatedActor().setXVelocity(30); }, null ); d.runLater( 3500, function (b) { d.createRecycledActorOnLayer( d.getActorType(431), d.getScreenX() - 48, 504, d.engine.getLayerById(3) ); a._Dude = d.getLastCreatedActor(); a._Dude.setAnimation('Walk Right'); a._Dude.setXVelocity(24); }, null ); for (var b = 0; 24 > b; ) b++, d.createRecycledActor( d.getActorType(155), d.randomInt( (d.getScreenX() - d.getScreenWidth() / 2) | 0, (d.getScreenX() + (d.getScreenWidth() + d.getScreenWidth() / 2)) | 0 ), d.randomInt( (d.getScreenY() - d.getScreenHeight() / 2) | 0, (d.getScreenY() + d.getScreenHeight() / 2) | 0 ), 0 ); d.runPeriodically(300, q(this, this._event_Snow), null); this.addListener(d.engine.whenUpdated, q(this, this._event_Updating)); this.addListener(d.engine.whenUpdated, q(this, this._event_Updating2)); }, forwardMessage: function (a) {}, __class__: Ov }); var Pv = function (a, b) { d.call(this); this.nameMap.h.Dude = '_Dude'; this.nameMap.h.Boss = '_Boss'; }; h['scripts.SceneEvents_56'] = Pv; Pv.__name__ = 'scripts.SceneEvents_56'; Pv.__super__ = sa; Pv.prototype = r(sa.prototype, { _Dude: null, _Boss: null, _event_Updating: function (a) { this.wrapper.enabled && ((a = this._Boss), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Boss.getX() > d.getScreenX() + (d.getScreenWidth() + 64) && (d.sayToScene('Cutscene Logic', '_customEvent_Finished'), d.stopAllSounds(), d.recycleActor(this._Boss), (this._Boss = d.getDefaultValue(this._Boss))), (a = this._Dude), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Dude.getX() > d.getScreenX() + (d.getScreenWidth() + 64) && (d.recycleActor(this._Dude), (this._Dude = d.getDefaultValue(this._Dude)))); }, init: function () { var a = this; d.loopSoundOnChannel(d.getSound(196), 15); k.engine.getGameAttribute('Sound Disabled') ? d.setVolumeForChannel(0, 15) : k.engine.getGameAttribute('Sound Disabled') || d.setVolumeForChannel(1, 15); d.runLater( 500, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('1 Right Jump'); d.getLastCreatedActor().setXVelocity(40); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 700, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('2 Right Jump'); d.getLastCreatedActor().setXVelocity(40); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 900, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('3 Right Jump'); d.getLastCreatedActor().setXVelocity(40); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1100, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('4 Right Jump'); d.getLastCreatedActor().setXVelocity(40); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1300, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('5 Right Jump'); d.getLastCreatedActor().setXVelocity(40); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1500, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('1 Right Jump'); d.getLastCreatedActor().setXVelocity(40); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1700, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('2 Right Jump'); d.getLastCreatedActor().setXVelocity(40); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 1900, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('3 Right Jump'); d.getLastCreatedActor().setXVelocity(40); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 2100, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('4 Right Jump'); d.getLastCreatedActor().setXVelocity(40); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 2300, function (a) { d.createRecycledActorOnLayer( d.getActorType(433), d.getScreenX() - 48, 512, d.engine.getLayerById(3) ); k.engine.getGameAttribute('Possum Mode') ? d.getLastCreatedActor().setAnimation('6 Right Jump') : d.getLastCreatedActor().setAnimation('5 Right Jump'); d.getLastCreatedActor().setXVelocity(40); d.getLastCreatedActor().setYVelocity(-30); }, null ); d.runLater( 3e3, function (b) { d.createRecycledActorOnLayer( d.getActorType(431), d.getScreenX() - 48, 504, d.engine.getLayerById(3) ); a._Dude = d.getLastCreatedActor(); a._Dude.setAnimation('Walk Right'); a._Dude.setXVelocity(34); }, null ); d.runLater( 3500, function (b) { d.createRecycledActorOnLayer( d.getActorType(447), d.getScreenX() - 96, 402, d.engine.getLayerById(3) ); a._Boss = d.getLastCreatedActor(); }, null ); this.addListener(d.engine.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Pv }); var Qv = function (a, b) { d.call(this); this.nameMap.h.Dude = '_Dude'; this.nameMap.h.Balloon = '_Balloon'; this.nameMap.h['Last Baby'] = '_LastBaby'; this._LastBaby = !1; this.nameMap.h['Wake Dude'] = '_WakeDude'; this._WakeDude = !1; this.nameMap.h['Beach BG Width'] = '_BeachBGWidth'; this._BeachBGWidth = 0; this.nameMap.h['Beach BG Created'] = '_BeachBGCreated'; this._BeachBGCreated = !1; }; h['scripts.SceneEvents_57'] = Qv; Qv.__name__ = 'scripts.SceneEvents_57'; Qv.__super__ = sa; Qv.prototype = r(sa.prototype, { _Dude: null, _Balloon: null, _LastBaby: null, _WakeDude: null, _BeachBGWidth: null, _BeachBGCreated: null, _event_Updating: function (a) { if ( this.wrapper.enabled && ((a = this._Dude), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Dude.getX() > d.getScreenX() + (d.getScreenWidth() + 64) && (d.sayToScene('Cutscene Logic', '_customEvent_Finished'), d.stopAllSounds(), d.recycleActor(this._Dude), (this._Dude = d.getDefaultValue(this._Dude))), (a = this._Balloon), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Balloon.getX() > d.getScreenX() + d.getScreenWidth()) ) { d.recycleActor(this._Balloon); a = 0; for (var b = d.getActorsOfType(d.getActorType(433)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (c.setValue('Cutscene Baby Logic', '_BackandForth', !1), c.setValue('Cutscene Baby Logic', '_Surprised', !1)); } } }, _event_ActorCreated: function (a) { var b = this; if (this.wrapper.enabled) { this._LastBaby = !0; a = 0; for (var c = d.getActorsOfType(d.getActorType(433)); a < c.length; ) { var e = c[a]; ++a; null == e || e.dead || e.recycled || !e.isOnScreen() || (this._LastBaby = !1); } this._LastBaby && !this._WakeDude && ((this._WakeDude = !0), d.runLater( 1e3, function (a) { b._Dude.shout('_customEvent_Wake'); }, null )); } }, init: function () { var a = this; d.createRecycledActorOnLayer(d.getActorType(756), -1, -1, d.engine.getLayerById(8)); d.createRecycledActorOnLayer(d.getActorType(541), 0, 0, d.engine.getLayerById(8)); for (this._BeachBGWidth = d.getLastCreatedActor().getWidth(); !this._BeachBGCreated; ) 960 > this._BeachBGWidth ? (d.createRecycledActorOnLayer( d.getActorType(541), d.getLastCreatedActor().getX() + d.getLastCreatedActor().getWidth(), 0, d.engine.getLayerById(8) ), (this._BeachBGWidth += d.getLastCreatedActor().getWidth())) : (this._BeachBGCreated = !0); for (var b = 0, c = d.getActorsOfType(d.getActorType(431)); b < c.length; ) { var e = c[b]; ++b; null == e || e.dead || e.recycled || (this._Dude = e); } d.loopSoundOnChannel(d.getSound(148), 15); k.engine.getGameAttribute('Sound Disabled') ? d.setVolumeForChannel(0, 15) : k.engine.getGameAttribute('Sound Disabled') || d.setVolumeForChannel(1, 15); d.runLater( 4e3, function (b) { a._Dude.shout('_customEvent_Sleep'); }, null ); d.runLater( 6e3, function (b) { d.createRecycledActorOnLayer( d.getActorType(452), d.getScreenX() - 48, d.getScreenYCenter() - 48 - 48, d.engine.getLayerById(3) ); a._Balloon = d.getLastCreatedActor(); a._Balloon.setXVelocity(16); b = 0; for (var c = d.getActorsOfType(d.getActorType(433)); b < c.length; ) { var e = c[b]; ++b; null == e || e.dead || e.recycled || e.setValue('Cutscene Baby Logic', '_Balloon', a._Balloon); } }, null ); this.addListener(d.engine.whenUpdated, q(this, this._event_Updating)); this.addListenerWithKey( d.engine.whenTypeGroupKilledEvents, d.getActorType(433), q(this, this._event_ActorCreated) ); }, forwardMessage: function (a) {}, __class__: Qv }); var Rv = function (a, b) { d.call(this); this.nameMap.h.Dude = '_Dude'; this.nameMap.h['Can Skip'] = '_CanSkip'; this._CanSkip = !1; this.nameMap.h['Set Landscape Left'] = '_SetLandscapeLeft'; this._SetLandscapeLeft = !1; }; h['scripts.SceneEvents_58'] = Rv; Rv.__name__ = 'scripts.SceneEvents_58'; Rv.__super__ = sa; Rv.prototype = r(sa.prototype, { _Dude: null, _CanSkip: null, _SetLandscapeLeft: null, _event_AnyKey: function (a) { this.wrapper.enabled && d.shoutToScene('_customEvent_Skip'); }, _event_Updating: function (a) { this.wrapper.enabled && (d.engine.moveCamera(d.getSceneWidth() / 2, d.getSceneHeight() / 2), (a = this._Dude), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._Dude.getY() > d.getScreenHeight() && (d.recycleActor(this._Dude), (this._Dude = d.getDefaultValue(this._Dude)), d.runLater( 800, function (a) { k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(480)); a = 0; for (var b = d.getActorsOfType(d.getActorType(467)); a < b.length; ) { var e = b[a]; ++a; null == e || e.dead || e.recycled || d.recycleActor(e); } a = 0; for (b = d.getActorsOfType(d.getActorType(459)); a < b.length; ) (e = b[a]), ++a, null == e || e.dead || e.recycled || e.setAnimation('Close'); a = 0; for (b = d.getActorsOfType(d.getActorType(461)); a < b.length; ) (e = b[a]), ++a, null == e || e.dead || e.recycled || e.setAnimation('Close'); d.runLater( 500, function (a) { a = Fa.get().scenes.h[4].getID(); var b = 0, c = 0, e = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); var f = d.createFadeOut(0.2, (b << 16) | (c << 8) | e); e = c = b = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, f, d.createFadeIn(0.2, (b << 16) | (c << 8) | e)); }, null ); }, null ))); }, _event_AfterNsecs: function (a) { this.wrapper.enabled && (this._CanSkip = !0); }, _event_AnyButton: function (a) { this.wrapper.enabled && d.shoutToScene('_customEvent_Skip'); }, _customEvent_Skip: function () { if (this._CanSkip) { this._CanSkip = !1; var a = Fa.get().scenes.h[4].getID(), b = 0, c = 0, e = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); var f = d.createCircleOut(0.3, (b << 16) | (c << 8) | e); e = c = b = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(252)); } }, init: function () { var a = this; d.engine.moveCamera(d.getSceneWidth() / 2, d.getSceneHeight() / 2); d.createRecycledActor( d.getActorType(457), d.getScreenX() + (d.getScreenWidth() / 2 - 68), d.getScreenY() + (d.getScreenHeight() / 2 - 80), 0 ); this._Dude = d.getLastCreatedActor(); d.runLater( 3e3, function (b) { d.createRecycledActor( d.getActorType(461), d.getScreenX() + (d.getScreenWidth() / 2 - 86), a._Dude.getY() + 122, 0 ); d.getLastCreatedActor().moveToBottom(); d.createRecycledActor( d.getActorType(459), d.getScreenX() + (d.getScreenWidth() / 2 - 86), -1, 0 ); ba.setScale('height', d.getSceneHeight() / 2 + 43, d.getLastCreatedActor()); d.getLastCreatedActor().moveToBottom(); }, null ); d.runLater( 6e3, function (b) { a._Dude.setAnimation('Wake Up'); k.engine.getGameAttribute('Sound Disabled') || d.playSound(d.getSound(178)); }, null ); this.addListener(d.engine.whenAnyKeyPressed, q(this, this._event_AnyKey)); this.addListener(d.engine.whenUpdated, q(this, this._event_Updating)); d.runLater(500, q(this, this._event_AfterNsecs), null); this.addListener(d.engine.whenAnyGamepadPressed, q(this, this._event_AnyButton)); }, forwardMessage: function (a) {}, __class__: Rv }); var Sv = function (a, b) { d.call(this); this.nameMap.h['Top Letterbox'] = '_TopLetterbox'; this.nameMap.h['Bottom Letterbox'] = '_BottomLetterbox'; this.nameMap.h['Layer Number'] = '_LayerNumber'; this._LayerNumber = 0; this.nameMap.h.Camera = '_Camera'; this.nameMap.h['Area Clear Text List'] = '_AreaClearTextList'; this.nameMap.h['Area Clear Text'] = '_AreaClearText'; this._AreaClearText = ''; this.nameMap.h['Area Clear Total Text Width'] = '_AreaClearTotalTextWidth'; this._AreaClearTotalTextWidth = 0; this.nameMap.h['Area Clear Text Width'] = '_AreaClearTextWidth'; this._AreaClearTextWidth = 0; this.nameMap.h['Area Clear Float Up'] = '_AreaClearFloatUp'; this._AreaClearFloatUp = !1; this.nameMap.h.Credits = '_Credits'; this.nameMap.h['Credits Item Count'] = '_CreditsItemCount'; this._CreditsItemCount = 0; this.nameMap.h['Last Letter'] = '_LastLetter'; this._LastLetter = !1; this.nameMap.h['Text Y'] = '_TextY'; this._TextY = 0; this.nameMap.h['Can Show Credits'] = '_CanShowCredits'; this._CanShowCredits = !1; this.nameMap.h['Credits Titles'] = '_CreditsTitles'; this.nameMap.h['Title Text List'] = '_TitleTextList'; this.nameMap.h['Title Text Width'] = '_TitleTextWidth'; this._TitleTextWidth = 0; this.nameMap.h['Title Total Text Width'] = '_TitleTotalTextWidth'; this._TitleTotalTextWidth = 0; this.nameMap.h['Title Text'] = '_TitleText'; this._TitleText = ''; }; h['scripts.SceneEvents_59'] = Sv; Sv.__name__ = 'scripts.SceneEvents_59'; Sv.__super__ = sa; Sv.prototype = r(sa.prototype, { _TopLetterbox: null, _BottomLetterbox: null, _LayerNumber: null, _Camera: null, _AreaClearTextList: null, _AreaClearText: null, _AreaClearTotalTextWidth: null, _AreaClearTextWidth: null, _AreaClearFloatUp: null, _Credits: null, _CreditsItemCount: null, _LastLetter: null, _TextY: null, _CanShowCredits: null, _CreditsTitles: null, _TitleTextList: null, _TitleTextWidth: null, _TitleTotalTextWidth: null, _TitleText: null, _event_Updating: function (a) { this.wrapper.enabled && ((a = this._TopLetterbox), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._TopLetterbox.setX(d.getScreenX() - 5), (a = this._BottomLetterbox), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && this._BottomLetterbox.setX(d.getScreenX() - 5)); }, _event_EveryNsecs: function (a) { this.wrapper.enabled && (8 > this._LayerNumber ? (d.fadeTileLayerTo(d.engine.getLayerById(this._LayerNumber | 0), 0, 8), d.fadeTileLayerTo(d.engine.getLayerById((this._LayerNumber + 10) | 0), 0, 8), (this._LayerNumber += 1)) : 8 == this._LayerNumber && (d.fadeTileLayerTo(d.engine.getLayerById((this._LayerNumber + 10) | 0), 0, 8), (this._LayerNumber += 1))); }, _event_CreditsCheck: function (a) { if ( this.wrapper.enabled && this._CanShowCredits && this._CreditsItemCount <= this._Credits.length ) { this._LastLetter = !0; a = 0; for (var b = d.getActorsOfType(d.getActorType(523)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._LastLetter = !1); } this._LastLetter && d.shoutToScene('_customEvent_showCredits'); } }, _customEvent_creditsStart: function () { this._CanShowCredits = !0; this._TextY = this._BottomLetterbox.getScreenY() + (d.getScreenHeight() - this._BottomLetterbox.getScreenY()) / 2; }, _customEvent_showCredits: function () { var a = this; this._AreaClearTextList = []; this._AreaClearTotalTextWidth = this._AreaClearTextWidth = 0; this._AreaClearText = '' + B.string(this._Credits[this._CreditsItemCount | 0]); for (var b = 0, c = this._AreaClearText.length; b < c; ) { var e = b++; this._AreaClearTextList.push(this._AreaClearText.charAt(e)); } b = 0; for (c = this._AreaClearTextList.length; b < c; ) (e = b++), (this._AreaClearTotalTextWidth += d.getFont(479).getTextWidth('' + B.string(this._AreaClearTextList[e])) / k.SCALE); b = 0; for (c = this._AreaClearTextList.length; b < c; ) (e = [b++]), d.runLater( (e[0] / 10) * 1e3, (function (b) { return function (c) { d.createRecycledActor(d.getActorType(523), -32, a._TextY + 3, 0); d.getLastCreatedActor().setValue( 'Area Clear Letter Logic', '_Letter', a._AreaClearTextList[b[0]] ); if (0 < b[0]) { c = a._AreaClearTextWidth; var e = d.getFont(479).getTextWidth('' + B.string(a._AreaClearTextList[b[0] - 1])) / k.SCALE; a._AreaClearTextWidth = c + e; } a._AreaClearFloatUp ? ((a._AreaClearFloatUp = !1), d.getLastCreatedActor().setValue('Area Clear Letter Logic', '_Up', !0)) : (a._AreaClearFloatUp = !0); d.getLastCreatedActor().moveTo( d.getScreenWidth() / 2 - a._AreaClearTotalTextWidth / 2 + a._AreaClearTextWidth, d.getLastCreatedActor().getY(), 0.4, J.quadInOut ); }; })(e), null ); this._TitleTextList = []; this._TitleTotalTextWidth = this._TitleTextWidth = 0; this._TitleText = '' + B.string(this._CreditsTitles[this._CreditsItemCount | 0]); this._CreditsItemCount += 1; b = 0; for (c = this._TitleText.length; b < c; ) (e = b++), this._TitleTextList.push(this._TitleText.charAt(e)); b = 0; for (c = this._TitleTextList.length; b < c; ) (e = b++), (this._TitleTotalTextWidth += d.getFont(479).getTextWidth('' + B.string(this._TitleTextList[e])) / k.SCALE); b = 0; for (c = this._TitleTextList.length; b < c; ) (e = [b++]), d.runLater( (e[0] / 10) * 1e3, (function (b) { return function (c) { d.createRecycledActor( d.getActorType(523), -32, a._TextY - (d.getFont(479).getHeight() / k.SCALE + 3), 0 ); d.getLastCreatedActor().setValue( 'Area Clear Letter Logic', '_Letter', a._TitleTextList[b[0]] ); d.getLastCreatedActor().setValue('Area Clear Letter Logic', '_White', !0); if (0 < b[0]) { c = a._TitleTextWidth; var e = d.getFont(479).getTextWidth('' + B.string(a._TitleTextList[b[0] - 1])) / k.SCALE; a._TitleTextWidth = c + e; } d.getLastCreatedActor().moveTo( d.getScreenWidth() / 2 - a._TitleTotalTextWidth / 2 + a._TitleTextWidth, d.getLastCreatedActor().getY(), 0.4, J.quadInOut ); }; })(e), null ); }, init: function () { var a = this; d.stopAllSounds(); gb.happyTime(100); d.runLater( 500, function (a) { k.engine.getGameAttribute('Music Disabled') || d.playSoundOnChannel(d.getSound(525), 16); }, null ); d.engine.moveCamera(d.getScreenWidth() / 2, d.getSceneHeight() / 2 + 268); d.createRecycledActor(d.getActorType(437), d.getScreenX() - 5, d.getScreenY() - 5, 0); this._TopLetterbox = d.getLastCreatedActor(); d.createRecycledActor( d.getActorType(437), d.getScreenX() - 5, d.getScreenY() + d.getScreenHeight() / 2, 0 ); this._BottomLetterbox = d.getLastCreatedActor(); d.createRecycledActor( d.getActorType(514), d.getScreenWidth() / 2, d.getSceneHeight() / 2 + 268, 0 ); this._Camera = d.getLastCreatedActor(); d.runLater( 300, function (b) { a._TopLetterbox.moveBy(0, -(d.getScreenHeight() / 2), 0.4, J.backOut); a._BottomLetterbox.moveBy(0, (0.309 * d.getScreenHeight()) / 2, 0.4, J.backOut); d.runLater( 1e3, function (b) { d.recycleActor(a._TopLetterbox); d.shoutToScene('_customEvent_creditsStart'); }, null ); }, null ); this._LayerNumber = 1; this._Credits = []; this._CreditsTitles = []; this._CreditsTitles.push('A GAME BY'); this._Credits.push('TOM YOUNG'); this._CreditsTitles.push('THANKS'); this._Credits.push('NIKI THOMPSON'); this._CreditsTitles.push('THANKS'); this._Credits.push('HADLEY DONALDSON'); this._CreditsTitles.push('THANKS'); this._Credits.push('JOHN MUNRO'); this._CreditsTitles.push('THANKS'); this._Credits.push('JEREMY HANSEN'); this._CreditsTitles.push('THANKS'); this._Credits.push('ROSE YOUNG'); this._CreditsTitles.push('THANKS'); this._Credits.push('...YOU!'); this._CreditsTitles.push(' '); this._Credits.push('DADISH WILL RETURN IN DADISH 2'); this.addListener(d.engine.whenUpdated, q(this, this._event_Updating)); d.runPeriodically(8e3, q(this, this._event_EveryNsecs), null); d.runPeriodically(500, q(this, this._event_CreditsCheck), null); }, forwardMessage: function (a) {}, __class__: Sv }); var Tv = function (a, b) { d.call(this); this.nameMap.h.Overlay = '_Overlay'; this.nameMap.h['Leaf Speed'] = '_LeafSpeed'; this._LeafSpeed = 10; }; h['scripts.SceneEvents_6'] = Tv; Tv.__name__ = 'scripts.SceneEvents_6'; Tv.__super__ = sa; Tv.prototype = r(sa.prototype, { _Overlay: null, _LeafSpeed: null, _customEvent_createBorders: function () { d.createRecycledActor(d.getActorType(295), 0, d.getScreenY(), 1); d.getLastCreatedActor().moveToBottom(); d.createRecycledActor( d.getActorType(293), 0, d.getScreenY() + (d.getScreenHeight() - 60), 1 ); d.getLastCreatedActor().moveToBottom(); }, init: function () {}, forwardMessage: function (a) {}, __class__: Tv }); var Uv = function (a, b) { d.call(this); this.nameMap.h.Logo = '_Logo'; this.nameMap.h.Copyright = '_Copyright'; this.nameMap.h.Angle = '_Angle'; this._Angle = 0; this.nameMap.h['Current Orientation'] = '_CurrentOrientation'; this._CurrentOrientation = 0; this.nameMap.h['Landscape Left'] = '_LandscapeLeft'; this._LandscapeLeft = !1; }; h['scripts.SceneEvents_60'] = Uv; Uv.__name__ = 'scripts.SceneEvents_60'; Uv.__super__ = sa; Uv.prototype = r(sa.prototype, { _Logo: null, _Copyright: null, _Angle: null, _CurrentOrientation: null, _LandscapeLeft: null, _event_Updating: function (a) { this.wrapper.enabled && d.engine.moveCamera(d.getSceneWidth() / 2, d.getSceneHeight() / 2); }, init: function () { d.engine.moveCamera(d.getSceneWidth() / 2, d.getSceneHeight() / 2); d.runLater( 300, function (a) { d.loadGame('mySave', function (a) { 'EN' != k.engine.getGameAttribute('Language') && ((k.engine.gameAttributes.h.Language = 'EN'), d.saveGame('mySave', function (a) {})); d.engine.unpause(); a = Fa.get().scenes.h[4].getID(); var b = 0, e = 0, f = 0; null == f && (f = 0); null == e && (e = 0); null == b && (b = 0); var g = d.createFadeOut(0.2, (b << 16) | (e << 8) | f); f = e = b = 0; null == f && (f = 0); null == e && (e = 0); null == b && (b = 0); d.switchScene(a, g, d.createFadeIn(0.2, (b << 16) | (e << 8) | f)); }); }, null ); this.addListener(d.engine.whenUpdated, q(this, this._event_Updating)); }, forwardMessage: function (a) {}, __class__: Uv }); var Vv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_63'] = Vv; Vv.__name__ = 'scripts.SceneEvents_63'; Vv.__super__ = sa; Vv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Vv }); var Wv = function (a, b) { d.call(this); this.nameMap.h['Back Button'] = '_BackButton'; this.nameMap.h['Button Pressed'] = '_ButtonPressed'; this._ButtonPressed = !1; }; h['scripts.SceneEvents_65'] = Wv; Wv.__name__ = 'scripts.SceneEvents_65'; Wv.__super__ = sa; Wv.prototype = r(sa.prototype, { _BackButton: null, _ButtonPressed: null, _event_Updating: function (a) { if ( this.wrapper.enabled && ((a = this._BackButton), (d.isPrimitive(a) || ('string' == typeof a ? '' != x.__cast(a, String) : null != a)) && !this._ButtonPressed && this._BackButton.isMousePressed()) ) { this._ButtonPressed = !0; this._BackButton.setAnimation('Down'); d.playSound(d.getSound(119)); k.engine.gameAttributes.h['Ignore Load Fail'] = !0; a = Fa.get().scenes.h[60].getID(); var b = 0, c = 0, e = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); var f = d.createFadeOut(0.1, (b << 16) | (c << 8) | e); e = c = b = 0; null == e && (e = 0); null == c && (c = 0); null == b && (b = 0); d.switchScene(a, f, d.createFadeIn(0.1, (b << 16) | (c << 8) | e)); } }, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) { b = d.getFont(479); null != b && b != a.font && (a.font = b); b = d.getScreenWidth() / 2 - a.font.getTextWidth('ERROR:') / k.SCALE / 2; c = d.getScreenHeight() / 2 - 100; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (c = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, c); var e = null, f = a.font; f = 'ERROR:' + f.ID + ':' + a.alpha + ':' + f.letterSpacing + ':' + k.SCALE; if (Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, f)) { var g = W.drawnStringCache.h[f]; g.lifetime = 5; e = g.img; } else { g = a.font.font.getTextWidth('ERROR', a.font.letterSpacing, a.font.fontScale); var h = (a.font.font.getFontHeight() * a.font.fontScale) | 0; 0 < g && 0 < h && ((e = new ja(g, h, !0, 0)), a.font.font.renderToImg( e, 'ERROR', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (g = new Mb()), (g.img = e), (g.lifetime = 5), (W.drawnStringCache.h[f] = g), W.drawnStringCacheKeys.push(f)); } null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, e.width, e.height), a.graphics.endFill()); b = d.getScreenWidth() / 2 - a.font.getTextWidth('SAVE FAILED TO LOAD!') / k.SCALE / 2; c = d.getScreenHeight() / 2 - 80; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (c = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, c); e = null; f = a.font; f = 'SAVE FAILED TO LOAD!:' + f.ID + ':' + a.alpha + ':' + f.letterSpacing + ':' + k.SCALE; Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, f) ? ((g = W.drawnStringCache.h[f]), (g.lifetime = 5), (e = g.img)) : ((g = a.font.font.getTextWidth( 'SAVE FAILED TO LOAD!', a.font.letterSpacing, a.font.fontScale )), (h = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < g && 0 < h && ((e = new ja(g, h, !0, 0)), a.font.font.renderToImg( e, 'SAVE FAILED TO LOAD!', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (g = new Mb()), (g.img = e), (g.lifetime = 5), (W.drawnStringCache.h[f] = g), W.drawnStringCacheKeys.push(f))); null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, e.width, e.height), a.graphics.endFill()); b = d.getFont(526); null != b && b != a.font && (a.font = b); b = d.getScreenWidth() / 2 - a.font.getTextWidth('RESTART THE GAME,') / k.SCALE / 2; c = d.getScreenHeight() / 2 - 40; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (c = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, c); e = null; f = a.font; f = 'RESTART THE GAME,:' + f.ID + ':' + a.alpha + ':' + f.letterSpacing + ':' + k.SCALE; Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, f) ? ((g = W.drawnStringCache.h[f]), (g.lifetime = 5), (e = g.img)) : ((g = a.font.font.getTextWidth( 'RESTART THE GAME,', a.font.letterSpacing, a.font.fontScale )), (h = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < g && 0 < h && ((e = new ja(g, h, !0, 0)), a.font.font.renderToImg( e, 'RESTART THE GAME,', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (g = new Mb()), (g.img = e), (g.lifetime = 5), (W.drawnStringCache.h[f] = g), W.drawnStringCacheKeys.push(f))); null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, e.width, e.height), a.graphics.endFill()); b = d.getScreenWidth() / 2 - a.font.getTextWidth('RESTART YOUR DEVICE,') / k.SCALE / 2; c = d.getScreenHeight() / 2 - 20; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (c = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, c); e = null; f = a.font; f = 'RESTART YOUR DEVICE,:' + f.ID + ':' + a.alpha + ':' + f.letterSpacing + ':' + k.SCALE; Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, f) ? ((g = W.drawnStringCache.h[f]), (g.lifetime = 5), (e = g.img)) : ((g = a.font.font.getTextWidth( 'RESTART YOUR DEVICE,', a.font.letterSpacing, a.font.fontScale )), (h = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < g && 0 < h && ((e = new ja(g, h, !0, 0)), a.font.font.renderToImg( e, 'RESTART YOUR DEVICE,', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (g = new Mb()), (g.img = e), (g.lifetime = 5), (W.drawnStringCache.h[f] = g), W.drawnStringCacheKeys.push(f))); null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, e.width, e.height), a.graphics.endFill()); b = d.getScreenWidth() / 2 - a.font.getTextWidth('OR CONTINUE AT') / k.SCALE / 2; c = d.getScreenHeight() / 2; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (c = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, c); e = null; f = a.font; f = 'OR CONTINUE AT:' + f.ID + ':' + a.alpha + ':' + f.letterSpacing + ':' + k.SCALE; Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, f) ? ((g = W.drawnStringCache.h[f]), (g.lifetime = 5), (e = g.img)) : ((g = a.font.font.getTextWidth( 'OR CONTINUE AT', a.font.letterSpacing, a.font.fontScale )), (h = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < g && 0 < h && ((e = new ja(g, h, !0, 0)), a.font.font.renderToImg( e, 'OR CONTINUE AT', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (g = new Mb()), (g.img = e), (g.lifetime = 5), (W.drawnStringCache.h[f] = g), W.drawnStringCacheKeys.push(f))); null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, e.width, e.height), a.graphics.endFill()); b = d.getScreenWidth() / 2 - a.font.getTextWidth('YOUR OWN RISK:') / k.SCALE / 2; c = d.getScreenHeight() / 2 + 20; null == a.font && ((a.font = a.defaultFont), a.font.fontScale != k.SCALE && (a.font.fontScale = k.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)) : ((b = a.x + b * a.scaleX - k.cameraX), (c = a.y + c * a.scaleY - k.cameraY)) : ((b = a.x + b * a.scaleX), (c = a.y + c * a.scaleY)); a.mtx.identity(); a.mtx.translate(b, c); e = null; f = a.font; f = 'YOUR OWN RISK::' + f.ID + ':' + a.alpha + ':' + f.letterSpacing + ':' + k.SCALE; Object.prototype.hasOwnProperty.call(W.drawnStringCache.h, f) ? ((g = W.drawnStringCache.h[f]), (g.lifetime = 5), (e = g.img)) : ((g = a.font.font.getTextWidth( 'YOUR OWN RISK:', a.font.letterSpacing, a.font.fontScale )), (h = (a.font.font.getFontHeight() * a.font.fontScale) | 0), 0 < g && 0 < h && ((e = new ja(g, h, !0, 0)), a.font.font.renderToImg( e, 'YOUR OWN RISK:', 0, a.alpha, 0, 0, a.font.letterSpacing, a.font.fontScale, 0, !1 ), (g = new Mb()), (g.img = e), (g.lifetime = 5), (W.drawnStringCache.h[f] = g), W.drawnStringCacheKeys.push(f))); null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, e.width, e.height), a.graphics.endFill()); } }, init: function () { d.createRecycledActor( d.getActorType(685), d.getScreenWidth() / 2 - 90, d.getScreenHeight() / 2 + 60, 0 ); this._BackButton = d.getLastCreatedActor(); this._BackButton.setValue('Button Logic', '_ButtonText', 'Continue'); this.addListener(d.engine.whenUpdated, q(this, this._event_Updating)); this.addListener(d.engine.whenDrawing, q(this, this._event_Drawing)); }, forwardMessage: function (a) {}, __class__: Wv }); var Xv = function (a, b) { d.call(this); this.nameMap.h.Overlay = '_Overlay'; this.nameMap.h['Leaf Speed'] = '_LeafSpeed'; this._LeafSpeed = 8; }; h['scripts.SceneEvents_7'] = Xv; Xv.__name__ = 'scripts.SceneEvents_7'; Xv.__super__ = sa; Xv.prototype = r(sa.prototype, { _Overlay: null, _LeafSpeed: null, _event_EveryNsecs: function (a) { if (this.wrapper.enabled) { 1 == d.randomInt(1, 2) ? (this._LeafSpeed = Math.min(12, this._LeafSpeed + 1)) : (this._LeafSpeed = Math.max(3, this._LeafSpeed - 1)); a = 0; for (var b = d.randomInt(1, 3); a < b; ) a++, d.createRecycledActor( d.getActorType(155), d.randomInt( (d.getScreenX() - 128) | 0, (d.getScreenX() + d.getScreenWidth() - 64) | 0 ), d.getScreenY() - 10, 0 ), d.getLastCreatedActor().setAnimation('2'), d .getLastCreatedActor() .setXVelocity(-(0.01 * this._LeafSpeed * d.randomInt(80, 100))), d.getLastCreatedActor().setYVelocity(10); a = 0; for (b = d.getActorsOfType(d.getActorType(155)); a < b.length; ) { var c = b[a]; ++a; null == c || c.dead || c.recycled || d .getLastCreatedActor() .setXVelocity(-(0.01 * this._LeafSpeed * d.randomInt(80, 100))); } } }, _customEvent_createBorders: function () { d.createRecycledActor(d.getActorType(309), 0, d.getScreenY(), 1); d.getLastCreatedActor().moveToBottom(); d.createRecycledActor( d.getActorType(311), 0, d.getScreenY() + (d.getScreenHeight() - 60), 1 ); d.getLastCreatedActor().moveToBottom(); }, init: function () { for (var a = 0; 6 > a; ) a++, d.createRecycledActor( d.getActorType(155), d.randomInt( (d.getScreenX() - 64) | 0, (d.getScreenX() + d.getScreenWidth() - 64) | 0 ), d.randomInt( (d.getScreenY() - 64) | 0, (d.getScreenY() + d.getScreenHeight() - 64) | 0 ), 0 ), d.getLastCreatedActor().setAnimation('2'), d .getLastCreatedActor() .setXVelocity(-(0.01 * this._LeafSpeed * d.randomInt(80, 100))), d.getLastCreatedActor().setYVelocity(10); d.runPeriodically(2e3, q(this, this._event_EveryNsecs), null); }, forwardMessage: function (a) {}, __class__: Xv }); var Yv = function (a, b) { d.call(this); this.nameMap.h.Overlay = '_Overlay'; this.nameMap.h['Leaf Speed'] = '_LeafSpeed'; this._LeafSpeed = 10; }; h['scripts.SceneEvents_8'] = Yv; Yv.__name__ = 'scripts.SceneEvents_8'; Yv.__super__ = sa; Yv.prototype = r(sa.prototype, { _Overlay: null, _LeafSpeed: null, _customEvent_createBorders: function () { d.createRecycledActor(d.getActorType(325), 0, d.getScreenY(), 1); d.getLastCreatedActor().moveToBottom(); d.createRecycledActor( d.getActorType(329), d.getLastCreatedActor().getX(), d.getLastCreatedActor().getY() + d.getLastCreatedActor().getHeight(), 2 ); d.getLastCreatedActor().moveToBottom(); d.createRecycledActor( d.getActorType(327), 0, d.getScreenY() + (d.getScreenHeight() - 64), 1 ); d.getLastCreatedActor().moveToBottom(); }, init: function () {}, forwardMessage: function (a) {}, __class__: Yv }); var Zv = function (a, b) { d.call(this); }; h['scripts.SceneEvents_9'] = Zv; Zv.__name__ = 'scripts.SceneEvents_9'; Zv.__super__ = sa; Zv.prototype = r(sa.prototype, { init: function () {}, forwardMessage: function (a) {}, __class__: Zv }); var $v = function () {}; h['scripts.SplashBox'] = $v; $v.__name__ = 'scripts.SplashBox'; $v.prototype = { __class__: $v }; var rk = function () { this.onComplete = new Ld(); var a = this; Ca.call(this); Ma.get_current().addChild(this); this.locked = !1; var b = k.SCALE, c = ''; this.background = new Ca(); this.background.get_graphics().beginFill(-15592942, 1); this.background.get_graphics().drawRect(0, 0, this.getWidth(), this.getHeight()); this.addChild(this.background); X.getConfigBitmap('config/preloader-bg.png').onComplete(function (b) { a.addChildAt(b, a.getChildIndex(a.background) + 1); }); var d = 2 * b; this.barWidth = (b * k.screenScaleX * 120) | 0; this.barHeight = (b * k.screenScaleY * 8) | 0; var f = 0 * b; b *= 0; c = this.getWidth() / 2 - this.barWidth / 2; var g = this.getHeight() - this.barHeight - d; this.barBorder = new Ca(); this.barBorder.get_graphics().beginFill(-12303292, 1); this.barBorder .get_graphics() .drawRect(-d, -d, this.barWidth + 2 * d, this.barHeight + 2 * d); this.barBorder.set_x(c + f); this.barBorder.set_y(g + b); this.addChild(this.barBorder); this.barBackground = new Ca(); this.barBackground.get_graphics().beginFill(-12303292, 1); this.barBackground.get_graphics().drawRect(0, 0, this.barWidth, this.barHeight); this.barBackground.set_x(c + f); this.barBackground.set_y(g + b); this.barBackground.set_scaleX(1); this.addChild(this.barBackground); this.bar = new Ca(); this.bar.get_graphics().beginFill(-13382452, 1); this.bar.get_graphics().drawRect(0, 0, this.barWidth, this.barHeight); d = new fa(0, 0, 0, this.barHeight); this.bar.set_scrollRect(d); this.bar.set_x(c + f); this.bar.set_y(g + b); this.addChild(this.bar); '' != this.getURL() && this.addEventListener('mouseDown', q(this, this.onMouseDown), !1, 2); c = this.getLockURL(); if (this.isSiteLocked() && null != c && '' != c) { d = !1; f = Ma.get_current().get_loaderInfo().url; if (null == f) d = !0; else if (0 > f.indexOf('http://') && 0 > f.indexOf('https://')) d = !0; else if (0 < f.indexOf('stencyl.com') || 0 < f.indexOf('localhost')) d = !0; if (!d) { b = c.split(','); for (c = 0; c < b.length; ) (d = b[c]), ++c, (d = U.trim(d)), 0 <= d.indexOf('*') || (U.startsWith(d, '^') && U.endsWith(d, '$')) ? ((d = new Ja(d, '')), (d = d.match(f))) : (d = 0 <= f.indexOf(d)); d || this.showLockScreen(b[0]); } } }; h['scripts.StencylPreloader'] = rk; rk.__name__ = 'scripts.StencylPreloader'; rk.__super__ = Ca; rk.prototype = r(Ca.prototype, { barBorder: null, bar: null, barBackground: null, background: null, barWidth: null, barHeight: null, locked: null, onComplete: null, adPlaying: null, ready: null, getLockURL: function () { return ''; }, isSiteLocked: function () { return !1; }, showLockScreen: function (a) { this.locked = !0; X.removeAllChildren(this); var b = new Mc(new ja(this.getWidth() | 0, this.getHeight() | 0, !1, 5658198)); this.addChild(b); var c = new Ze(); c.set_width(this.getWidth() - 16); c.set_height(this.getHeight() - 16); c.set_x(8); c.set_y(8); c.set_textColor(16777215); c.set_multiline(!0); c.set_wordWrap(!0); c.set_text( 'Hi there! It looks like somebody copied this game without my permission. Just click anywhere, or copy-paste this URL into your browser.\n\n' + a + '\n\nThanks, and have fun!' ); a = new Qg(null, 25); c.setTextFormat(a); this.addChild(c); this.removeEventListener('mouseDown', q(this, this.onMouseDown)); c.addEventListener('click', q(this, this.goToLockURL)); b.addEventListener('click', q(this, this.goToLockURL)); }, getURL: function () { return ''; }, goToLockURL: function (a) { Ma.getURL(new Tg(this.getLockURL().split(',')[0]), '_parent'); }, onMouseDown: function (a) { this.removeEventListener('mouseDown', q(this, this.onMouseDown)); Ma.getURL(new Tg(this.getURL()), '_blank'); }, getBackgroundColor: function () { return 3368601; }, getWidth: function () { return ya.windowWidth; }, getHeight: function () { return ya.windowHeight; }, onUpdate: function (a, b) { Ma.get_current().get_loaderInfo().__update(a, b); null != this.bar && ((a = new fa(0, 0, (a / b) * this.barWidth, this.barHeight)), this.bar.set_scrollRect(a)); }, onLoaded: function () { Ma.get_current().get_loaderInfo().__complete(); this.ready = !0; this.adPlaying || this.unload(); }, adFinished: function () { this.adPlaying = !1; this.ready && this.unload(); }, unload: function () { new $v(); (this.isSiteLocked() && this.locked) || (this.parent == Ma.get_current() && Ma.get_current().removeChild(this), Ma.get_current().stage.set_focus(null), this.onComplete.dispatch()); }, __class__: rk }); var Ib = function () {}; h['tweenxcore.Easing'] = Ib; Ib.__name__ = 'tweenxcore.Easing'; Ib.linear = function (a) { return a; }; Ib.sineIn = function (a) { return 0 == a ? 0 : 1 == a ? 1 : 1 - Math.cos(1.5707963267948966 * a); }; Ib.sineOut = function (a) { return 0 == a ? 0 : 1 == a ? 1 : Math.sin(1.5707963267948966 * a); }; Ib.sineInOut = function (a) { return 0 == a ? 0 : 1 == a ? 1 : -0.5 * (Math.cos(3.141592653589793 * a) - 1); }; Ib.sineOutIn = function (a) { return 0 == a ? 0 : 1 == a ? 1 : 0.5 > a ? 0.5 * Math.sin(3.141592653589793 * a) : -0.5 * Math.cos(1.5707963267948966 * (2 * a - 1)) + 1; }; Ib.quadIn = function (a) { return a * a; }; Ib.quadOut = function (a) { return -a * (a - 2); }; Ib.quadInOut = function (a) { return 0.5 > a ? 2 * a * a : -2 * --a * a + 1; }; Ib.quadOutIn = function (a) { if (0.5 > a) return -0.5 * (a *= 2) * (a - 2); a = 2 * a - 1; return 0.5 * a * a + 0.5; }; Ib.cubicIn = function (a) { return a * a * a; }; Ib.cubicOut = function (a) { return --a * a * a + 1; }; Ib.cubicInOut = function (a) { return 1 > (a *= 2) ? 0.5 * a * a * a : 0.5 * ((a -= 2) * a * a + 2); }; Ib.cubicOutIn = function (a) { a = 2 * a - 1; return 0.5 * (a * a * a + 1); }; Ib.quartIn = function (a) { return (a *= a) * a; }; Ib.quartOut = function (a) { a *= --a; return 1 - a * a; }; Ib.quartInOut = function (a) { if (1 > (a *= 2)) return 0.5 * (a *= a) * a; a *= a -= 2; return -0.5 * (a * a - 2); }; Ib.quartOutIn = function (a) { if (0.5 > a) return (a = 2 * a - 1), -0.5 * (a *= a) * a + 0.5; a = 2 * a - 1; return 0.5 * (a *= a) * a + 0.5; }; Ib.quintIn = function (a) { return a * (a *= a) * a; }; Ib.quintOut = function (a) { return --a * (a *= a) * a + 1; }; Ib.quintInOut = function (a) { return 1 > (a *= 2) ? 0.5 * a * (a *= a) * a : 0.5 * (a -= 2) * (a *= a) * a + 1; }; Ib.quintOutIn = function (a) { a = 2 * a - 1; return 0.5 * (a * (a *= a) * a + 1); }; Ib.expoIn = function (a) { return 0 == a ? 0 : Math.exp(6.931471805599453 * (a - 1)); }; Ib.expoOut = function (a) { return 1 == a ? 1 : 1 - Math.exp(-6.931471805599453 * a); }; Ib.expoInOut = function (a) { return 0 == a ? 0 : 1 == a ? 1 : 1 > (a *= 2) ? 0.5 * Math.exp(6.931471805599453 * (a - 1)) : 0.5 * (2 - Math.exp(-6.931471805599453 * (a - 1))); }; Ib.expoOutIn = function (a) { return 0.5 > a ? 0.5 * (1 - Math.exp(-13.862943611198906 * a)) : 0.5 == a ? 0.5 : 0.5 * (Math.exp(13.862943611198906 * (a - 1)) + 1); }; Ib.circIn = function (a) { return -1 > a || 1 < a ? 0 : 1 - Math.sqrt(1 - a * a); }; Ib.circOut = function (a) { return 0 > a || 2 < a ? 0 : Math.sqrt(a * (2 - a)); }; Ib.circInOut = function (a) { return -0.5 > a || 1.5 < a ? 0.5 : 1 > (a *= 2) ? -0.5 * (Math.sqrt(1 - a * a) - 1) : 0.5 * (Math.sqrt(1 - (a -= 2) * a) + 1); }; Ib.circOutIn = function (a) { if (0 > a) return 0; if (1 < a) return 1; if (0.5 > a) return (a = 2 * a - 1), 0.5 * Math.sqrt(1 - a * a); a = 2 * a - 1; return -0.5 * (Math.sqrt(1 - a * a) - 1 - 1); }; Ib.bounceIn = function (a) { a = 1 - a; return 0.36363636363636365 > a ? 1 - 7.5625 * a * a : 0.7272727272727273 > a ? 1 - (7.5625 * (a -= 0.5454545454545454) * a + 0.75) : 0.9090909090909091 > a ? 1 - (7.5625 * (a -= 0.8181818181818182) * a + 0.9375) : 1 - (7.5625 * (a -= 0.9545454545454546) * a + 0.984375); }; Ib.bounceOut = function (a) { return 0.36363636363636365 > a ? 7.5625 * a * a : 0.7272727272727273 > a ? 7.5625 * (a -= 0.5454545454545454) * a + 0.75 : 0.9090909090909091 > a ? 7.5625 * (a -= 0.8181818181818182) * a + 0.9375 : 7.5625 * (a -= 0.9545454545454546) * a + 0.984375; }; Ib.bounceInOut = function (a) { if (0.5 > a) return ( (a = 1 - 2 * a), 0.36363636363636365 > a ? 0.5 * (1 - 7.5625 * a * a) : 0.7272727272727273 > a ? 0.5 * (1 - (7.5625 * (a -= 0.5454545454545454) * a + 0.75)) : 0.9090909090909091 > a ? 0.5 * (1 - (7.5625 * (a -= 0.8181818181818182) * a + 0.9375)) : 0.5 * (1 - (7.5625 * (a -= 0.9545454545454546) * a + 0.984375)) ); a = 2 * a - 1; return 0.36363636363636365 > a ? 7.5625 * a * a * 0.5 + 0.5 : 0.7272727272727273 > a ? 0.5 * (7.5625 * (a -= 0.5454545454545454) * a + 0.75) + 0.5 : 0.9090909090909091 > a ? 0.5 * (7.5625 * (a -= 0.8181818181818182) * a + 0.9375) + 0.5 : 0.5 * (7.5625 * (a -= 0.9545454545454546) * a + 0.984375) + 0.5; }; Ib.bounceOutIn = function (a) { if (0.5 > a) return 0.36363636363636365 > (a *= 2) ? 3.78125 * a * a : 0.7272727272727273 > a ? 0.5 * (7.5625 * (a -= 0.5454545454545454) * a + 0.75) : 0.9090909090909091 > a ? 0.5 * (7.5625 * (a -= 0.8181818181818182) * a + 0.9375) : 0.5 * (7.5625 * (a -= 0.9545454545454546) * a + 0.984375); a = 1 - (2 * a - 1); return 0.36363636363636365 > a ? 0.5 - 3.78125 * a * a + 0.5 : 0.7272727272727273 > a ? 0.5 - 0.5 * (7.5625 * (a -= 0.5454545454545454) * a + 0.75) + 0.5 : 0.9090909090909091 > a ? 0.5 - 0.5 * (7.5625 * (a -= 0.8181818181818182) * a + 0.9375) + 0.5 : 0.5 - 0.5 * (7.5625 * (a -= 0.9545454545454546) * a + 0.984375) + 0.5; }; Ib.backIn = function (a) { return 0 == a ? 0 : 1 == a ? 1 : a * a * (2.70158 * a - 1.70158); }; Ib.backOut = function (a) { return 0 == a ? 0 : 1 == a ? 1 : --a * a * (2.70158 * a + 1.70158) + 1; }; Ib.backInOut = function (a) { return 0 == a ? 0 : 1 == a ? 1 : 1 > (a *= 2) ? 0.5 * a * a * (3.5949095 * a - 2.5949095) : 0.5 * ((a -= 2) * a * (3.5949095 * a + 2.5949095) + 2); }; Ib.backOutIn = function (a) { if (0 == a) return 0; if (1 == a) return 1; if (0.5 > a) return (a = 2 * a - 1), 0.5 * (a * a * (2.70158 * a + 1.70158) + 1); a = 2 * a - 1; return 0.5 * a * a * (2.70158 * a - 1.70158) + 0.5; }; Ib.elasticIn = function (a) { return 0 == a ? 0 : 1 == a ? 1 : -( Math.exp(6.931471805599453 * --a) * Math.sin((6.283185307179586 * (0.001 * a - 7.5e-5)) / 3e-4) ); }; Ib.elasticOut = function (a) { return 0 == a ? 0 : 1 == a ? 1 : Math.exp(-6.931471805599453 * a) * Math.sin((6.283185307179586 * (0.001 * a - 7.5e-5)) / 3e-4) + 1; }; Ib.elasticInOut = function (a) { return 0 == a ? 0 : 1 == a ? 1 : 1 > (a *= 2) ? -0.5 * Math.exp(6.931471805599453 * --a) * Math.sin((6.283185307179586 * (0.001 * a - 7.5e-5)) / 3e-4) : Math.exp(-6.931471805599453 * --a) * Math.sin((6.283185307179586 * (0.001 * a - 7.5e-5)) / 3e-4) * 0.5 + 1; }; Ib.elasticOutIn = function (a) { if (0.5 > a) return 0 == (a *= 2) ? 0 : 0.5 * Math.exp(-6.931471805599453 * a) * Math.sin((6.283185307179586 * (0.001 * a - 7.5e-5)) / 3e-4) + 0.5; if (0.5 == a) return 0.5; if (1 == a) return 1; a = 2 * a - 1; return ( -( 0.5 * Math.exp(6.931471805599453 * --a) * Math.sin((6.283185307179586 * (0.001 * a - 7.5e-5)) / 3e-4) ) + 0.5 ); }; Ib.warpOut = function (a) { return 0 >= a ? 0 : 1; }; Ib.warpIn = function (a) { return 1 > a ? 0 : 1; }; Ib.warpInOut = function (a) { return 0.5 > a ? 0 : 1; }; Ib.warpOutIn = function (a) { return 0 >= a ? 0 : 1 > a ? 0.5 : 1; }; var Cc = function () {}; h['tweenxcore.FloatTools'] = Cc; Cc.__name__ = 'tweenxcore.FloatTools'; Cc.revert = function (a) { return 1 - a; }; Cc.clamp = function (a, b, c) { null == c && (c = 1); null == b && (b = 0); return a <= b ? b : c <= a ? c : a; }; Cc.lerp = function (a, b, c) { return b * (1 - a) + c * a; }; Cc.inverseLerp = function (a, b, c) { return (a - b) / (c - b); }; Cc.repeat = function (a, b, c) { null == c && (c = 1); null == b && (b = 0); a = (a - b) / (c - b); return a - Math.floor(a); }; Cc.shake = function (a, b, c) { null == b && (b = 0); null == c && (c = Math.random); c = c(); return b + (-a * (1 - c) + a * c); }; Cc.spread = function (a, b) { return -b * (1 - a) + b * a; }; Cc.sinByRate = function (a) { return Math.sin(2 * a * Math.PI); }; Cc.cosByRate = function (a) { return Math.cos(2 * a * Math.PI); }; Cc.yoyo = function (a, b) { return b(2 * (0.5 > a ? a : 1 - a)); }; Cc.zigzag = function (a, b) { return 0.5 > a ? b(2 * a) : 1 - b(2 * (a - 0.5)); }; Cc.mixEasing = function (a, b, c, d) { null == d && (d = 0.5); return b(a) * (1 - d) + c(a) * d; }; Cc.crossfadeEasing = function (a, b, c, d, f, g) { null == g && (g = 1); null == f && (f = 0); d = d(a); f = f * (1 - d) + g * d; return b(a) * (1 - f) + c(a) * f; }; Cc.connectEasing = function (a, b, c, d, f) { null == f && (f = 0.5); null == d && (d = 0.5); if (a < d) return (a = b(a / d)), 0 * (1 - a) + f * a; a = c((a - d) / (1 - d)); return f * (1 - a) + a; }; Cc.oneTwoEasing = function (a, b, c, d) { null == d && (d = 0.5); return a < d ? b(a / d) : c((a - d) / (1 - d)); }; Cc.binarySearch = function (a, b, c) { null == c && (c = 0); var d = 0, f = a.length; if (0 == c) for (;;) { c = (((f - d) / 2) | 0) + d; var g = a[c]; g <= b ? (d = c + 1) : (f = c); if (d == f) break; } else for ( ; (c = (((f - d) / 2) | 0) + d), (g = a[c]), g < b ? (d = c + 1) : (f = c), d != f; ); return d; }; Cc.polyline = function (a, b) { if (2 > b.length) throw M.thrown('points length must be more than 2'); var c = b.length - 1; a *= c; var d = 0; --c; null == c && (c = 1); null == d && (d = 0); c = Math.floor(a <= d ? d : c <= a ? c : a); a -= c; return b[c] * (1 - a) + b[c + 1] * a; }; Cc.bezier2 = function (a, b, c, d) { return (b * (1 - a) + c * a) * (1 - a) + (c * (1 - a) + d * a) * a; }; Cc.bezier3 = function (a, b, c, d, f) { var e = c * (1 - a) + d * a; return ( ((b * (1 - a) + c * a) * (1 - a) + e * a) * (1 - a) + (e * (1 - a) + (d * (1 - a) + f * a) * a) * a ); }; Cc.bezier = function (a, b) { if (2 > b.length) throw M.thrown('points length must be more than 2'); if (2 == b.length) return b[0] * (1 - a) + b[1] * a; if (3 == b.length) { var c = b[1]; return (b[0] * (1 - a) + c * a) * (1 - a) + (c * (1 - a) + b[2] * a) * a; } return Cc._bezier(a, b); }; Cc._bezier = function (a, b) { if (4 == b.length) { var c = b[1], d = b[2], f = c * (1 - a) + d * a; return ( ((b[0] * (1 - a) + c * a) * (1 - a) + f * a) * (1 - a) + (f * (1 - a) + (d * (1 - a) + b[3] * a) * a) * a ); } c = []; d = 0; for (f = b.length - 1; d < f; ) { var g = d++; c.push(b[g] * (1 - a) + b[g + 1] * a); } return Cc._bezier(a, c); }; Cc.uniformQuadraticBSpline = function (a, b) { if (2 > b.length) throw M.thrown('points length must be more than 2'); if (2 == b.length) return b[0] * (1 - a) + b[1] * a; var c = b.length - 2; a *= c; var d = 0; --c; null == c && (c = 1); null == d && (d = 0); c = Math.floor(a <= d ? d : c <= a ? c : a); a -= c; d = b[c]; var f = b[c + 1]; return a * a * (d / 2 - f + b[c + 2] / 2) + a * (-d + f) + d / 2 + f / 2; }; Cc.frameToSecond = function (a, b) { return a / b; }; Cc.secondToFrame = function (a, b) { return a * b; }; Cc.degreeToRate = function (a) { return a / 360; }; Cc.rateToDegree = function (a) { return 360 * a; }; Cc.radianToRate = function (a) { return a / (2 * Math.PI); }; Cc.rateToRadian = function (a) { return 2 * a * Math.PI; }; Cc.millisecondToBeat = function (a, b) { return (a * b) / 6e4; }; Cc.beatToMillisecond = function (a, b) { return (6e4 * a) / b; }; var pk = function () {}; h['tweenxcore.PointTools'] = pk; pk.__name__ = 'tweenxcore.PointTools'; pk.polyline = function (a, b, c) { var d = [], f = []; for (c = O(c); c.hasNext(); ) { var g = c.next(); d.push(g.x); f.push(g.y); } if (2 > d.length) throw M.thrown('points length must be more than 2'); var k = d.length - 1; c = b * k; g = 0; --k; null == k && (k = 1); null == g && (g = 0); g = Math.floor(c <= g ? g : k <= c ? k : c); c -= g; d = d[g] * (1 - c) + d[g + 1] * c; a.x = d; if (2 > f.length) throw M.thrown('points length must be more than 2'); k = f.length - 1; c = b * k; g = 0; --k; null == k && (k = 1); null == g && (g = 0); g = Math.floor(c <= g ? g : k <= c ? k : c); c -= g; d = f[g] * (1 - c) + f[g + 1] * c; a.y = d; }; pk.bezier2 = function (a, b, c, d, f) { f = d.x; a.x = (c.x * (1 - b) + f * b) * (1 - b) + (f * (1 - b) + c.x * b) * b; f = d.y; a.y = (c.y * (1 - b) + f * b) * (1 - b) + (f * (1 - b) + c.y * b) * b; }; pk.bezier3 = function (a, b, c, d, f, g) { g = d.x; var e = f.x, k = g * (1 - b) + e * b; a.x = ((c.x * (1 - b) + g * b) * (1 - b) + k * b) * (1 - b) + (k * (1 - b) + (e * (1 - b) + c.x * b) * b) * b; g = d.y; e = f.y; k = g * (1 - b) + e * b; a.y = ((c.y * (1 - b) + g * b) * (1 - b) + k * b) * (1 - b) + (k * (1 - b) + (e * (1 - b) + c.y * b) * b) * b; }; pk.bezier = function (a, b, c) { var d = [], f = []; for (c = O(c); c.hasNext(); ) { var g = c.next(); d.push(g.x); f.push(g.y); } if (2 > d.length) throw M.thrown('points length must be more than 2'); 2 == d.length ? (d = d[0] * (1 - b) + d[1] * b) : 3 == d.length ? ((c = d[1]), (d = (d[0] * (1 - b) + c * b) * (1 - b) + (c * (1 - b) + d[2] * b) * b)) : (d = Cc._bezier(b, d)); a.x = d; if (2 > f.length) throw M.thrown('points length must be more than 2'); 2 == f.length ? (d = f[0] * (1 - b) + f[1] * b) : 3 == f.length ? ((c = f[1]), (d = (f[0] * (1 - b) + c * b) * (1 - b) + (c * (1 - b) + f[2] * b) * b)) : (d = Cc._bezier(b, f)); a.y = d; }; pk.uniformQuadraticBSpline = function (a, b, c) { for (var d = [], f = [], g = O(c); g.hasNext(); ) (c = g.next()), d.push(c.x), f.push(c.y); if (2 > d.length) throw M.thrown('points length must be more than 2'); if (2 == d.length) d = d[0] * (1 - b) + d[1] * b; else { var k = d.length - 2; c = b * k; g = 0; --k; null == k && (k = 1); null == g && (g = 0); g = Math.floor(c <= g ? g : k <= c ? k : c); k = c - g; var l = d[g]; c = d[g + 1]; d = d[g + 2]; d = k * k * (l / 2 - c + d / 2) + k * (-l + c) + l / 2 + c / 2; } a.x = d; if (2 > f.length) throw M.thrown('points length must be more than 2'); 2 == f.length ? (d = f[0] * (1 - b) + f[1] * b) : ((k = f.length - 2), (c = b * k), (g = 0), --k, null == k && (k = 1), null == g && (g = 0), (g = Math.floor(c <= g ? g : k <= c ? k : c)), (k = c - g), (l = f[g]), (c = f[g + 1]), (d = f[g + 2]), (d = k * k * (l / 2 - c + d / 2) + k * (-l + c) + l / 2 + c / 2)); a.y = d; }; var Uw = function () {}; h['tweenxcore.MatrixTools'] = Uw; Uw.__name__ = 'tweenxcore.MatrixTools'; Uw.createSimilarityTransform = function (a, b, c, d, f) { d -= b; var e = f - c; f = Math.atan2(e, d); d = Math.sqrt(d * d + e * e); a.a = d * Math.cos(f); a.b = d * Math.sin(f); a.c = -d * Math.sin(f); a.d = d * Math.cos(f); a.tx = b; a.ty = c; }; R.$haxeUID |= 0; 'undefined' != typeof performance && 'function' == typeof performance.now && (A.now = performance.now.bind(performance)); h.Math = Math; null == String.fromCodePoint && (String.fromCodePoint = function (a) { return 65536 > a ? String.fromCharCode(a) : String.fromCharCode((a >> 10) + 55232) + String.fromCharCode((a & 1023) + 56320); }); String.prototype.__class__ = h.String = String; String.__name__ = 'String'; h.Array = Array; Array.__name__ = 'Array'; Date.prototype.__class__ = h.Date = Date; Date.__name__ = 'Date'; var Ab = {}, kx = {}, Nb = Number, Ob = Boolean, ew = {}, bx = {}; Jc.count = 0; yh.content = [ { name: 'config_game_config_json', data: 'ewoJImFudGlhbGlhcyI6IGZhbHNlLAoJImJ1aWxkQ29uZmlnIjogeyJkZWJ1ZyI6dHJ1ZSwiZXh0cmEiOltdLCJwbGF0Zm9ybSI6Imh0bWw1In0sCgkiZGVidWdEcmF3IjogZmFsc2UsCgkiZGlzcG9zZUltYWdlcyI6IGZhbHNlLAoJImZvcmNlSGlSZXNBc3NldHMiOiB0cnVlLAoJImluaXRTY2VuZUlEIjogNjAsCgkia2V5cyI6IHsKCQkidXAiOiBbIlVQIiwiVyJdLAoJCSJkb3duIjogWyJET1dOIiwiUyJdLAoJCSJsZWZ0IjogWyJMRUZUIiwiQSJdLAoJCSJyaWdodCI6IFsiUklHSFQiLCJEIl0sCgkJImFjdGlvbjEiOiBbIkMiLCJDT05UUk9MIiwiU1BBQ0UiXSwKCQkiYWN0aW9uMiI6IFsiWCJdLAoJCSJlbnRlciI6IFsiRU5URVIiXSwKCQkiRXNjYXBlIjogWyJFU0NBUEUiXSwKCQkiUCI6IFsiUCJdLAoJCSJUIjogWyJUIl0KCQkKCX0sCgkicGl4ZWxzbmFwIjogZmFsc2UsCgkicGh5c2ljc01vZGUiOiAiTk9STUFMX1BIWVNJQ1MiLAoJInJlbGVhc2VNb2RlIjogdHJ1ZSwKCSJzaG93Q29uc29sZSI6IGZhbHNlLAoJInN0YWdlV2lkdGgiOiA3NjgsCgkic3RhZ2VIZWlnaHQiOiA0MzIsCgkidG9vbHNldEludGVyZmFjZUhvc3QiOiAibG9jYWxob3N0IiwKCSJ0b29sc2V0SW50ZXJmYWNlUG9ydCI6IC0xLAoJInByb2plY3ROYW1lIjogIkRhZGlzaCBQT0tJIiwKCSJ1c2VHY2lMb2dnaW5nIjogZmFsc2UsCgkKCSJjb25maWctbW9iaWxlIjogewoJCSJhZFBvc2l0aW9uQm90dG9tIjogdHJ1ZSwKCQkiYXV0b3JvdGF0ZSI6IGZhbHNlLAoJCSJnYW1lU2NhbGUiOiAxLAoJCSJsYW5kc2NhcGUiOiB0cnVlLAoJCSJ0ZXN0QWRzIjogZmFsc2UsCgkJInRvb2xzZXRJbnRlcmZhY2VIb3N0IjogIjE5Mi4xNjguMS4yNDgiLAoKCQkiY29uZmlnLWFuZHJvaWQiOiB7CgkJCSJkaXNhYmxlQmFja0J1dHRvbiI6IHRydWUsCgkJCSJzY2FsZU1vZGUiOiAiRlVMTFNDUkVFTiIsCgkJCSJzY2FsZXMiOiBbIjF4Il0KCQl9LAoJCQoJCSJjb25maWctaW9zIjogewoJCQkic2NhbGVNb2RlIjogIkZVTExTQ1JFRU4iLAoJCQkic2NhbGVzIjogWyIxeCJdCgkJfQoJfSwKCQoJImNvbmZpZy1kZXNrdG9wIjogewoJCSJnYW1lU2NhbGUiOiAyLjAsCgkJInNjYWxlTW9kZSI6ICJTQ0FMRV9UT19GSVRfRlVMTFNDUkVFTiIsCgkJInNjYWxlcyI6IFsiMXgiXSwKCQkic3RhcnRJbkZ1bGxTY3JlZW4iOiB0cnVlCgl9LAoJCgkiY29uZmlnLXdlYiI6IHsKCQkiZ2FtZVNjYWxlIjogMS4wLAoJCSJzdGFydEluRnVsbFNjcmVlbiI6IGZhbHNlLAoJCSJzY2FsZXMiOiBbIjF4Il0sCgoJCSJjb25maWctZmxhc2giOiB7CgkJCSJzY2FsZU1vZGUiOiAiTk9fU0NBTElORyIKCQl9LAoJCQoJCSJjb25maWctaHRtbDUiOiB7CgkJCSJ0b29sc2V0SW50ZXJmYWNlSG9zdCI6ICIxOTIuMTY4LjEuMjQ4IgoJCX0KCX0KfQ' }, { name: 'config_preloadpaths_txt', data: 'YXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0zLTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMy0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTMtMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0zLTMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMy00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTMtNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0zLTYucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMy03LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTMtOC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0zLTkucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMy0xMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0zLTExLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTMtMTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMy0xOC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0zLTE5LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTctMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTEtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMy0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTctMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xOS0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIxLTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjEtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMS0yLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIxLTMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjMtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yNS0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTI3LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjktMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0zMS0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTMxLTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMzMtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0zNS01LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTM5LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMzktMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MS0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQxLTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDEtMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00My0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQ1LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDctMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00OS0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTUxLTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTEtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01My0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTU1LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTUtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01Ny0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTU3LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTktMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01OS0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTYxLTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNjEtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS02My0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTYzLTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNjUtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS02Ny0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTY5LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNzEtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03My0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc1LTQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNzUtNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03OS0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTgxLTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtODMtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS04OS0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTkxLTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtOTMtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS05My0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTk1LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtOTUtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS05NS0yLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTk1LTMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtOTUtNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS05NS01LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTk1LTYucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtOTUtNy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS05NS04LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTk1LTkucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtOTUtMTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtOTctMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS05OS0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTk5LTMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtOTktNy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS05OS04LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTk5LTkucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTAxLTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTAxLTMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTAxLTcucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTAxLTgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTAxLTkucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9mb250LTEwMi5mbnQKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL2ZvbnQtMTAyLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTEwNC0wLnBuZwphc3NldHMvc2Z4L3NvdW5kLTEwNS5vZ2cKYXNzZXRzL3NmeC9zb3VuZC0xMDYub2dnCmFzc2V0cy9zZngvc291bmQtMTA3Lm9nZwphc3NldHMvc2Z4L3NvdW5kLTEwOC5vZ2cKYXNzZXRzL3NmeC9zb3VuZC0xMDkub2dnCmFzc2V0cy9zZngvc291bmQtMTEwLm9nZwphc3NldHMvc2Z4L3NvdW5kLTExMS5vZ2cKYXNzZXRzL3NmeC9zb3VuZC0xMTIub2dnCmFzc2V0cy9zZngvc291bmQtMTEzLm9nZwphc3NldHMvc2Z4L3NvdW5kLTExNC5vZ2cKYXNzZXRzL3NmeC9zb3VuZC0xMTUub2dnCmFzc2V0cy9zZngvc291bmQtMTE2Lm9nZwphc3NldHMvc2Z4L3NvdW5kLTExNy5vZ2cKYXNzZXRzL3NmeC9zb3VuZC0xMTgub2dnCmFzc2V0cy9zZngvc291bmQtMTE5Lm9nZwphc3NldHMvc2Z4L3NvdW5kLTEyMC5vZ2cKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMjItMTYucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTIyLTE3LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTEyMi0xOC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMjItNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMjItNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMjItOC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMjItOS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMjItMTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTIyLTExLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTEyMi0xMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMjItMTUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTI2LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTI2LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTI2LTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTI4LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTMyLTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTMyLTEucG5nCmFzc2V0cy9zZngvc291bmQtMTM0Lm9nZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTEzNy01LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTEzNy02LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTEzNy03LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTEzOS0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE0MS0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE0My0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0UvdGlsZXNldC0xNDQtNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3RpbGVzZXQtMTQ0LTYucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS90aWxlc2V0LTE0NC0xMjYucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS90aWxlc2V0LTE0NC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNTEtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNTYtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNTYtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNTYtMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtNy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtOC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtOS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtMTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTYwLTExLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2MC0xMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtMTMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTYwLTE0LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2MC0xNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtMTYucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTYwLTE3LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2MC0xOC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtMTkucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTYwLTIwLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2MC0yMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtMjIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTYwLTIzLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2MC0yNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtMjUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTYwLTI2LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2MC0yNy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtMjgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTYwLTI5LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2MC0zMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtMzEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTYwLTMyLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2MC0zMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtMzQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTYwLTM1LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2MC0zNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjAtMzcucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTYyLTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9mb250LTE2NS5mbnQKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL2ZvbnQtMTY1LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2Ny0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2Ny0yLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2Ny00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2Ny01LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2Ny02LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2Ny03LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2Ny04LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2Ny05LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2Ny0xMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjctMTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTY3LTEyLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2Ny0xMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjctMTQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTY3LTE1LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2Ny0xNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjctMTcucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTY3LTE4LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2Ny0xOS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjctMjAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTY3LTIyLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2Ny0yMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNjctMjQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTY3LTI1LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE2Ny0yNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL2ZvbnQtMTY4LmZudAphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0UvZm9udC0xNjgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTcwLTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xNzEuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xNzMuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xNzUuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xNzYuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xNzcuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xNzguU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xNzkuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xODAuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xODEuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xODIuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xODMuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xODQuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xODUuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xODYuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xODcuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xODguU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xODkuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xOTAuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xOTEuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xOTIuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTk4LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjAwLTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjAyLTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA0LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA0LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA2LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA2LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA2LTIucG5nCmFzc2V0cy9zZngvc291bmQtMjA3Lm9nZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwOS0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwOS0xLnBuZwphc3NldHMvc2Z4L3NvdW5kLTIxMC5vZ2cKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMTItMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMTItMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMTQtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMTQtMS5wbmcKYXNzZXRzL3NmeC9zb3VuZC0yMTUub2dnCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjE3LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjE3LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjE3LTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjE3LTMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjE3LTQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjE5LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjE5LTEucG5nCmFzc2V0cy9zZngvc291bmQtMjIwLm9nZwphc3NldHMvc2Z4L3NvdW5kLTIyMS5vZ2cKYXNzZXRzL3NmeC9zb3VuZC0yMjIub2dnCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjI0LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjI0LTEucG5nCmFzc2V0cy9zZngvc291bmQtMjI1Lm9nZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIyNy0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIyNy0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIyNy0yLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIyNy00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIyNy01LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIyNy03LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIyNy04LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIyNy05LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0UvZm9udC0yMjguZm50CmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9mb250LTIyOC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL2ZvbnQtMjI5LmZudAphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0UvZm9udC0yMjkucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjMzLTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjMzLTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjMzLTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjM1LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjM1LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjM3LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjM5LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjM5LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQxLTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQxLTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQzLTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQzLTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ1LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ1LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ1LTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ1LTMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ1LTQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ1LTUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ1LTYucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ1LTcucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ1LTgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ3LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ3LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ3LTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ5LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ5LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ5LTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjUxLTAucG5nCmFzc2V0cy9zZngvc291bmQtMjUyLm9nZwphc3NldHMvc2Z4L3NvdW5kLTI1My5vZ2cKYXNzZXRzL3NmeC9zb3VuZC0yNTQub2dnCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjg0LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjkyLTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjkyLTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjk4LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjk4LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMzA2LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMzA4LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMzQyLTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMzQ0LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMzUwLTAucG5nCmFzc2V0cy9zZngvc291bmQtMzUxLm9nZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0UvdGlsZXNldC0zNTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMzU0LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMzU0LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8zNjcuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8zNjguU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8zNjkuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8zNzAuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8zNzEuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8zNzIuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8zNzMuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8zNzQuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8zNzUuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8zNzYuU09VTkRfRVhUCmFzc2V0cy9zZngvc291bmQtMzc3Lm9nZwphc3NldHMvc2Z4L3NvdW5kLTM3OC5vZ2cKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0zODAtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0zODItMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MDItNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MDItNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MDItMTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDAyLTE0LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQwMi0xNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MDQtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MDQtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MDQtMi5wbmcKYXNzZXRzL3NmeC9zb3VuZC00MDUub2dnCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDA3LTcucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDA3LTgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDA3LTkucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDA3LTEwLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQwOS0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQwOS0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQxMS0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQxMS0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQxMS0yLnBuZwphc3NldHMvc2Z4L3NvdW5kLTQxMi5vZ2cKYXNzZXRzL3NmeC9zb3VuZC00MTMub2dnCmFzc2V0cy9zZngvc291bmQtNDE0Lm9nZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQxOC0wLnBuZwphc3NldHMvc2Z4L3NvdW5kLTQyMy5vZ2cKYXNzZXRzL3NmeC9zb3VuZC00MjQub2dnCmFzc2V0cy9zZngvc291bmQtNDI5Lm9nZwphc3NldHMvc2Z4L3NvdW5kLTQzMC5vZ2cKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzItMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzItMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzItMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzItMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzItNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzItNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzItNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzItNy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzItOC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzItOS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzItMTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDMyLTExLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQzMi0xMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzItMTgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDMyLTE5LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQzMi0yMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzItMjEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTYucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTcucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTkucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTEwLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQzNC0xMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzQtMTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTEzLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQzNC0xNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzQtMTUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTE2LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQzNC0xNy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzQtMTgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTE5LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQzNC0yMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzQtMjEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTIyLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQzNC0yMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzQtMjQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTI1LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQzNC0yNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzQtMjcucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTI4LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQzNC0yOS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzQtMzAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTMxLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQzNC0zMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzQtMzMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTM0LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQzNC0zNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00MzQtMzYucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDM0LTM3LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQzNi0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQzNi0yLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQzNi0zLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQzNi00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQzNi01LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQzOC0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQ0MC0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQ0MC0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQ0MC0yLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQ0MC0zLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQ0MC00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0UvZm9udC00NDEuZm50CmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9mb250LTQ0MS5wbmcKYXNzZXRzL3NmeC9zb3VuZC00NDIub2dnCmFzc2V0cy9zZngvc291bmQtNDQ5Lm9nZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQ1My0wLnBuZwphc3NldHMvc2Z4L3NvdW5kLTQ1NC5vZ2cKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NTYtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NTgtMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NTgtNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NTgtNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NTgtNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NjAtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NjAtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NjAtMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NjItMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NjItMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NjItMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NjQtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NjYtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NjYtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NjgtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NjgtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NjgtMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NjgtMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00NjgtNC5wbmcKYXNzZXRzL3NmeC9zb3VuZC00Njkub2dnCmFzc2V0cy9zZngvc291bmQtNDcwLm9nZwphc3NldHMvc2Z4L3NvdW5kLTQ3MS5vZ2cKYXNzZXRzL3NmeC9zb3VuZC00NzIub2dnCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDc0LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDc2LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDc4LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9mb250LTQ3OS5mbnQKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL2ZvbnQtNDc5LnBuZwphc3NldHMvc2Z4L3NvdW5kLTQ4MC5vZ2cKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01MjQtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL2ZvbnQtNTI2LmZudAphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0UvZm9udC01MjYucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTM0LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTM0LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTM0LTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTM0LTMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTM4LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTM4LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTM4LTMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTM4LTYucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTM4LTgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTM4LTEwLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTUzOC0xMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01MzgtMTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTM4LTE5LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTUzOC0yMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01MzgtMjEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTM4LTIyLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTUzOC0yMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01MzgtMjQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTM4LTI1LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTUzOC0yNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01MzgtMjcucG5nCmFzc2V0cy9zZngvc291bmQtNTQ1Lm9nZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTU0Ny0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTU0Ny0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTU1OC0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTU1OC0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTU2MC0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTU2MC0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTU2Mi0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTU2OC0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTU2OC0yLnBuZwphc3NldHMvc2Z4L3NvdW5kLTU3NS5vZ2cKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01NzctMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01NzktMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01NzktMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01NzktMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01NzktNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01ODEtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01ODEtMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01ODEtMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01ODEtNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01ODMtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01ODMtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01ODMtMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01ODMtMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01ODMtNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01ODMtNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01ODUtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01ODUtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01ODUtMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01OTAtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01OTctMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01OTktMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS02MDEtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS02MDMtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS02MDgtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS02MTAtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS02MTItMC5wbmcKYXNzZXRzL3NmeC9zb3VuZC02MTcub2dnCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNjIzLTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNjIzLTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNjIzLTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9mb250LTYyNC5mbnQKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL2ZvbnQtNjI0LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTYyNi0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTYzMC0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTYzMi0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTYzNC02LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTYzNi0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTYzOC0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTY4Ni0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTY4Ni0xLnBuZwphc3NldHMvc2Z4L3NvdW5kLTcyNC5vZ2cKYXNzZXRzL3NmeC9zb3VuZC03MjUub2dnCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNzI3LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNzI3LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNzI3LTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9iYWNrZ3JvdW5kLTcyOC0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc1OS0yLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc2MS0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc2MS0zLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc2MS00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc2MS01LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc2MS02LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc2My0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc2My0zLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc2My00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc2My01LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc2My02LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc2NS0yLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc2NS00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc2Ny0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc2Ny0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc3MS0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc3MS0xLnBuZwo' }, { name: 'config_preloader_bg_txt', data: 'aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXdBQUFBR3dDQUlBQUFDUnRwV0ZBQUNBQUVsRVFWUjRYc1RkWjNjY1I3SXU2dmxaWjBaZQpvaWRCZ2dEaENlKzliZThOUENuTjN1ZmU3M2Z2R1VuMDhONERCT2k5TnlJcE96THpJMDVrUmxaVVZHWjFBOUxNUG5ldGQyRlZGNXNrCkpEUzdubzZJelBwVC9WcWlZVDNadUpHU1NVQ2FOcFBOVzZtbXE1aEU4M1lTMHJLVGFybVdhTDJlaExUZFNFSGFiNmJiYjZZNmJxVWgKbmJmN3UrNG11KytsZXU2bjRXdjN2UVNtNTM2eTYwRzYrMkUvcHVkUkd0UDdHQjZtOE1EemRCRFQ5MlFBSG5xZnBIMVArekgrWndPWQp3UFBCNElzaE02R1h3NkdYUTJiQ3I0WWpyMGNvOEpBUy9jWWxzVGNqc1RkbnpNVGZuazIrTzVONE8wcUJoNURVdCtJOEJSNVMwdCtkCk1kUC92ZU04UEtTa2YzQlAvNDluWEpQNnlUM0puODRrZmh3MUUvdHBSR1kwK3VNSUpQTERjT1NIVVV6NCs1SFF0Nk9VNExzemdiZWoKd1c5RUFxOUgvSytHZlM5SHZDK0dQYytISUgxUFIzc2VEM2M5SEpTQmcrR08rNE50ZC90Yjd3MUFXdTRPTk4vcGI3cWRicnlWYXJpWgpodFRkU0dGcXJ5ZHJib2hVWDA5QUtxN0hJZVhYWXFkM29pVlh3OFZib2FMTklDUi8wNHZKMi9DYzNQRGtydmVkV09zOXZ0cHpiS1VUCmMzUzU0K0JpMi83NWxzOW1tejZkYWZ4a3V2R2o2Zm9QSnF2Zkg2dis0R0xkcDErMkhmbWJMK2UvWWlmK3YxanVmOFZQL25jaTcyL0oKL0wrbktBVmZwd3JQcGEwa0ljVVgwcVdYQm9yT3ArQ2c1R0kvSEpkZVNwZGQ3b2ZBUVNVY1RNYXFOc0wxRDhMMWovMk5ULzJkTDJLZAp6NUxkcjJLOTN5UThiMVBlZDJuZnU1VC8yM1RndS83Zzl3T1JId2VpUHczR2Z4NU8vREtTK0dVSWsveDF1UC9YTTVDQjM4NE8vaW95CjlOdm5Jektqdi8wSDVJek02SzkvUGZPTHl0bGYvcFB5K2EvL20vTEZiLzhQZjhoTy9yOFpvai9aVEthL2krZk1yLy81dXpMNm01MlIKWC8rRE12U2J5TUN2ZiszLzVRdEkrdWZQazc5OG52ajU3QUE4L1BselRQcW5MekNwSHo5UC9lTUxUUEtuenhNL2ZoSC80ZlBZOTJlagozNTJKZmZjRkpmNzlYeW5SYnorWCtTTHk3bk5JK08zWjhOc3ZJUGg2RG41ekZoSjY4N25JTjMrRkJGOS9FWGoxT2NiLzhpekY5K0t2CkdPL3pMeUNlWjU5aitwNmV4ZlErT2RQNytDeWs1OUVaU1BmRDBhNEhJendkOTRiYTd3NjIzVHZUZW5lMDVjNUk4KzFoU05PdElUeG8KdkQwRWFiZzFXSDl6b081R1A2WG1ta3IxVGhwU3RaMmlWRjVObXFtNG1pemZTbUJPYjhZcHBldFJUTWxhcEdnOVVyZ1d4cFNzaHdyWApnZ1ZiNGR4MS80bU5VTzVtT0djdFVIUWoxZmd3M3ZRbzBmbzQyZjQwM2ZFc0JlbDZsb2IwdkJpZ2REL3ZwL1RJOUw0WUVIaytCT2w3Ck1ad2xQYytHZTUrUDhNQ1o3cWREUEhDRzB2MTBnTVYrRHZ4djczazhhcWJyOFdqbm94RXozWStHWkVic1BCekY0SStwOC80d2hYNTIKY0F3L1BneitVdnRkbGJZN1EzVGNjVytrOVRhY0dXbS9Pd3BmVzI0TlllQmt5ODJSNWh2RG1LYnJRNWpHYTRPTjE0WXdEVHVEa1BydApBVXoxbG5zcU53WXExdnZMMTlJUU9NRGowNnVwMHVWVTJVcTZiTFcvZENWZHZKUXNXa3dVTFNlTFYxTDVpNm1UOC9HS3EvME50MGNhCmJ3ODAzT3F2djVFUTc4WTNCaWoxMS9zcERUc0RtUHJ0ZmtqZDFUU21kcWNmVTdPZHhsUmZUY21rcTdaU2xadEpTc1ZHb253OVhyNlcKUEwyYWNFc0tVcmFTTEYxT1FFcVc0c1dMTVVqcE1rYWNzVTRtSUtVTGRrcm00NVNpR2ZjVVRzY29CVk5SRm5nWU96VVpoZVJQUkNCNQo0MkdaS09ia1dBU1NleVdNK2RQZUFZVDZjUVVRcE9zdTBrZWw2MjZjQUVRR0lnQkJDRURnSHRSUEZnQ2hnVEl3Q0U0T21nWXk2WU9KCnZJWmZHaklORlAxbUZHSWFpT3VIREpRRlFLbHZSeUdtZ1g0dmdOSS9qTG9tK2FON1RQckVmeGlCSUlCUVB4eEFvQjhPb09DN0VkQVAKQWdqMDg3c0ExSEszZjFjQW9YNDRnTXEySTFrQWhQb2hBSUYraml5MWN3QjlQTldBQUhydlNsVjJBSjM2TWcwQkFGa0dFdnF4M0NPKwpJb0RnbUFCVWRnVUFORkEyRWE5WWpkYmVDdGMvQ2pZOUMzUThEM2MraTNhL1N2UzhqdmU5U1VvQXBXMEEvVEFFQUlyOVl3Z01KRE9JCkFFci9NcW9NOU1zWk5CQ0VBRFR5NjE5SHJXUUhrS1lXZHNha3p4OEJVS2FZeE1rZVYvMXdBS0dCRUVBUTBnOEJTT2pueDgvQlBaUk0KQU9KQkFLRitPSUJDYjg0UWdGUmVmOEgxUXdEeXZUZ2o0d0FRR1VnREVPckhCQkJlUVFGQW9COE5RQmpVandhZzJ1dnBUQUJ5b2M5Vwpvc0tpRHpkUTJVWk0wdzhCcUdEZEJ0REpqY0R4ZGYveDlTQ2s3R1kvQWFqdFNhcjlhUklBMVBsVUdJaWpKenVBZG91dUh3czY3Z1p5CjFVLzMweEdUUHNnYWt6NGQ4TllrM3FEc2R5b1YrUU15QWNSL2RtWTRnTWhBQUNCd0R3YlFJOXhqR1lqMDgrOEZFT3FIQUZRcUF3QVMKQnNvS29NYWJneEFPb0xwcmFVZ21BQm51U1ZWdEpTR1pBR1M0SjFHMkVvZWdmamlBa0R2L0Z3Q0Urc2tPSURMUW4rcFc0OHhBN2dBUwo1UjhHSUdZZ0VWVUV1cE1pQTNYZFRjcUNrQTRnUkk4SklBb0N5TlZBQ0NBM0Jna0FtUVl5NmNNQjVHWWdBU0RUUUs0QU1xTUJhTzhHCk10eno3d0VRNmdjQkZQMXhtT2xIQVNqMDNiQ0lvczh3eFA5R0dranFSd05RMzdQQjNpY2pyZ0NTK3VsSC9TQ0FHbS8xQTREcUxRTUIKZ0pBK1ZkZmlFQ3IvY0FBVmJnUTRnS2o4b3dIb3dFSXJBZ2dDQVBwd3FnNEI5UDZGV2dKUTduOUhJU2YvRnN2N2V6ei95d1RrMUZkSgpDTkJIR2loQitpbStrSlJCQUtWc0FGMUpueDdyUDMxcHNHd2lYYllRcWR3TzFUOElOejhOdFQwTGRENFBkYjJNOTd4T0FvQThiMU1TClFQMElvUEQzZzJBZ0FCQVpDSXRBQUNBTUdvZ1lCUFNoa0lFZ21qOHlxWVdkTWVtekp3Q1oxbkdOU1p6c2NkVVBBbWhRNmljVGdOTC8KT01zQmxQanhMSXNDa0lpQkhvcytaMlZJUDFhOTU4MFptYzhKUUNaOW1INTJBWkRRenhQbEhsNVI0SmRNQUZEYm5RR2dENFlBcEM1RgpsbjRJUUtBZkFoRHFKeE9Ba0Q0WXJQZHdBR1hSRHdLb1lEV1F2eEZFQU9XcytYSTNneFYzQjF3QkJESHB3d0drREtSYnh6VU85MlFDCkVJdUxmalFBOGJxT3EzNnlBNGdiS0l0K3NBN2tDaUQ1ME5ZUEdhajU1bUFHL1NnQW9YNzJBcUNxelVGdUlBU1E5SVFDVU1seWlnQUUKSVFEVjN4ck9BaURVRHdFSTljTUJSTzRoK2tBcU54T29IMEFQSkF1QVVEOHlRajhhZ0NBSUlIcG9Bb2pyWnk4QWN1cEgwWWYwUXdiSwpuNGk1R3NnR2tFd2NnZ2JLVWdFaUEzRUFkZHhPb29GUVAyUWdCSkJsb0JRWmlBQ2tHYWp2U1JyaWVkcVA4VDRid1BpZUQvTDRYd3lwCnZCeWtCRjROVVlLdmgxMURBSEl6a0lyc2lLbkUzNDVxU2J3N2t6QUF4QXlrQUxSSEF4bnVVVEdKa3oydStvRkkvUWdBV2ZvWnh0cFAKOE5zaEFwRC96WkR2bTBFQWtNaXJZUWdIa05EUDB3RU5RSjBQaGhCQXpYZlNNcXI4d3dHRUJrSUFvWDRxZDJLZ0h3NGdMUDhRZ0VBLwpKb0JRUDRkbCtXZmZYRE1IMFBzVFZiOEhRQWtHSUtHZm92TUpyUDNZQUxvaUlnRTBYRFkrV0RJVksxMEoxOStKdGp3T3R6enhkYnowCmRiNklkYjlLOUg2VEVrVWdicUJ2KzhGQTRuKzFyQU1oZzJRUmFCUmkxb0dHZnZzclJtTVFOc1Y0enY3elB5R21Xa3pUN0QzL0x1aVkKd1VvUEJkRERReTB3Q0FJSUpBUkovZU9zakdoNFdWVWZwWi80RDJkQVB4Um52UWZSWXdmcEkvVWowS01CS1BENkRJUTN2TGgrdk05SApJYTc2NFFBU0YyQjJFZTE0T05MK1lCalNkbjhJdjdiZUd4UUZVZWtlQ2dKSVhJUWtmUWhBa2o0cEdSZjljQUJ4L1JDQUtGVCtNZlZ6CmFpMEVLVnFIcjRHODljQ0pqUURvNTloYTM2bXJ3ZXA3R1FHRWpUQ3pGRVFBRW5rMnVHdElQd1NhN0FEcWV0TGY5V1NRWlJqanFoOE4KUUtTZlBRS0loM3BlSEVEdGR3YzFBQkdEVUQvVStkb0xnRXo5bUFDcTJ1eTNvZ1BJd29RQUVPakhGVURsVzJrRUVFUnJnVkh6aXdCawo2c2NWUUtBZkRVQVkwZjl5QW9qcEp4dUFTcGFpVEQ4T0FHbjYyUlZBbW40SVFGdy9XUUFFeVFpZ3hpMFJBSkJkQkxxV29GZ0dTcUtCCmxJU2tnYXdrY0Nxbzg3Nkl4YUFrR29oTHlEQ1FBSkNyZ2R3bGxBRkFnVmNEa09EclFaN1FOME04NFRmRHJvbThIYUhFM2c1QjR1K0cKWFpQNGRrUkw4cnRSU3VyN014VHpEQ2FSSVNaeFRPaGtpZ2tncHA4aEFwQXdFQU9RN3h0UkJFSUFZUUJBcXZ6emRBRDBRd0JDL2JUZgpHMEFBTmQxT1VmbW40V1lTVzJCYUJRajFnd0FDL1VCS1dma0hndlRSQUpTejBrMEFPaVRMUHdpZ1QyY2FQNXFzTndGMC9ML2p4LzhXCmhwejRld1NTKzJYMDVGZXh2Sy9qa0ZQbmsvbm5FcEJUNStNRkZ4S0ZGNU9RZ2d2eG9rc3BLOG5peTZtU0srblNzZjdTOFZUWlpRR2cKb3ZGNDhWeWsrbHEwOFg2NCtiRzM3Ym1uNDNtY0RPVDVKbTBiNkYxLzZEdFZCeUlHZ1lFUVFCQnRHQWdPSUVPL2ZZNVJnMEgvL0NJagpnMzc3M3hCT0VQUE1IOHZvTC84Qk1jOWp6RnBPOW1TaUQ0YjBReFVnaXo1bmsyS096YWFQZEEvRkFTQ3Q2aE4rZTRZRjZTTml6ZjNZCngwSS9yMFpSUFA2WFgwQjhMejZIZUorZlpjbElIeHBENFZXZmpvZG4yaCtNdHQwZmFiMDNqRjhoTFhlSG11NE1VMXlIZmxqeksxVzkKazZ3QzkxaXBCUGZJVkJqdUtkK01ZelQzVUVnL1dQaEIvZVN0aGVENDVKcGZEZ0FGUUQvSFYvdEtyb2RySHdvQVFiSUFTR1BRN3dWUQpKdTQ0bGVNYVJSOFJ3ejNFbWo4TUlJS09LNENzOHM5Z3g3MFJFMEF5MlFCazZFZlJSd05RM2RYK0RQcFJBRExLUHdsUi9wSDY0UUFxClhFcWNXa29EZ0U1dnB1cHV3b3V0bndERTUzNGNzZlRqR0FEYVN2SCtGMVdBSklOVTFZY0Q2UFJhN1BjQ1NPcEhCMURSZ3U0ZVNQRmMKVEdRMkFka2JmU0lRalQ2VTNJa281Y1I0QkhKOExBejVVKzFLREEwa0U5TUExTGdWSndNMTc4Uk5BSEVEWVNPTXdnRmtHU2hKQnFKZQpHQUtJR1dnWEFHa0c0Z0J5R2tnQVNET1FCcUM5R0NnN2dFd0RjUUJ4OFpobi9vY0F4UFVEZ2V1eERPbEhBQ2owM1RBQ0NQdGZCQ0JoCklGcy9ROWovRXVVZkNTQ2NLK1FBZ2hDQXNQd0RBS3Eva2FwbkEwQm1CUWpMUHh4QUJlditUQUJDL1JDQVVEOElvQThtYXdGQWY3bGMKdVJjQW9YN3l6OFVZZ0JJTVFFSS9Da0RqS2NqcEt3TUFvT0t4Wk5GMHJISXRYbmN6MnZqQTEvVFUwL1kwQ2dicWVoa1hCbnFWdEEzMApOczBOUkNOQmlWOUdOQU1oZ3lpRC8xUUdnZ3hiQURJTjVHb2QxNU8vSzZpZmZ5T0FUUFFNL1BJRkJlczlHQnlDWnZvUkFISVdmczdFCnZoK1ZrYzB2R2FQbjVUQ1F4UjArK0t4bWdGVDU1OVdvMWVvUzlPSDY4VHc3STZQYzQwb2ZyRURnSlpNQVJPNGgvVFRmR2NSaFp6N3kKckFISTZud0ovWEFBT2ZUakJCRHBod0NFSlI4TUFvaTN2VWcvSjFlRGVIQml6WGQ4dzN0MHRSZitmWlhmanRVL0VETkFrSlpIQ1FRUQpCQUZFMFF4RSt1bUdNNDZCWmZlNDZpY0xnRG9mRDhnTTJaRzRjZFVQQnhEWFR4WUE4WitkSmg1TlAzc0hrSnIrQWYzc0FVQmNQeHhBClJKL0tqYlNNYS85TEFRanBnd0g5SUlCeTUySUFvTm9iZ3dRZzhXNXMwc2NKSUs0ZkJKRFpBa01BVWRYSEZVQk8vU2dBb1g2Y0JsSUEKc3ZRVEEvMllBRkw2c1FCRUJzcmMrUkw2MlJWQVNCL1Nqd3VBeUVBTm15SUFJTnRBTzNIRFFBa3lFSDdGWGhnR0RVUUFrZ1p5QVpCbQpvTjZuYVVyZnMzNk01L21BR2UrTFFZanZwUjcvcXlHSTcxVy8vL1VBSnZETklDVDRaZ2lTMlVDRFdpSnZoeUI0RUgwM3JDV1RnVFFBCmtYak1NOWtCWk1wbUw5SDB3d0ZrNlVkMnZtUUFRRGo5Z3dieXZ4a2hBRW45REZMNVJ3TVE2UWNCSkEya3lqL3dyMDdvUjdvSFUzUE4KSGdDQ1lQbUhBSVQ2NFFBNnVkN0hBWVQ2T2J6WWhpMHdhd2xZdzRjVGRRQ2c5OFlyRFFBRklTZitIb0xrZmhrKytWVWs3K3NvdUVjYQpTT2xISmc0QWdtajZLUmxMSW9ES0prUXBxR1M4djJReVdUb1hyYm9hYnJ3ZmFuemliWGtjSmdQMXZHUUdlcE1DQXdXL0ZRQ2lPcERvCmhhbDVvQkVNalFTbGZqdVQvcWZEUUtBZkNKYUM3SUtRRlZmcmlKTkdyVWpGZUxJWjBvK0kwY3pLTk0yRDBWcGRGSnp5b1ZESlJ3MzYKMk4ydXM2QWZTdndmWnlDeG44NVNPSUNpMzUwUjQ4OE1RR2J6Sy9SbVZJYjBNNHJpNGNlaS9PTUVrSk0rQ2tDT2VXZExQNDZyTDd1Qwp0ajBZYmIwLzBuSnZ1Qm5jWTZYSkFwQTU4Y01MUDZRZkUwQktQelR5ek9oREFNTHlEd0VJNDZvZkRCd2ZYL1htckh1T3JuYWYzT3lyCnVadXNlNUJzZUJCekJWREhFMXRDSm9DRWZ2WUdvTi9wSG5mOUVJQWNvR0VBMHZTVEhVQ2FjalFHR1JFQVF2UzAzaDVrc1VkL2JQMUkKQUpuNk1RR0UrakVCWk9uSHNmS0xHOGdWUUFXTGNRUlEyVVpTQTVBNS9neXAzVWxwQUVMOVFNenBIeXMyZ0ZUemF5MVd0aHJOb0o4NApwNCtUUVE0QUZTMUVUUURaK3RrYmdFZy9FQng1TmdGRTlDSDk1RndKUVRJQ3FINGpMZzBVc3cyMEhlTUd5Z2dneTBBNEV0Unh6ellRCkFnZ054QUhFRzJFOVQxS3VBTXJNb0FIVFFDS3Yrc2xBSEVDdWRTQ1pBZE5BWEVKY1B4Rm5UU2g3RWNqTVhnQmtVdVlQSlBiOXNBYWcKMEhlRHJnRENJZWdzQUxLV2xlNE9JTkFQQVFqMGt3VkFWUDR4QVlRRFFBQWdjQThaQ0FFRSt2bDRxajRUZ0pBK0pvRGdBTDZTZmpDVwpnVlR6aS9RREI2Y25FNEpCNHdPbEUrbkNxV2o1ZXFUaFhxamhrYmY1VWFqMVNhVDlXYXp6UmFMN1JSd0ExUGRhOXNLK1NTS0E0UDh3Ck4xRDBIME5STmhtZC9NZHc2dWNSa2QvT2tJRUFRSkRzQU5MVVlqdkdwTThmQXBCSm5Pd3g2V01DeU5iUEwxK0lHV2VMUGhxQVVEOGMKUU5FZnoyQVJTT3BuQkFHRUJ0TGNRd1VoRFVCeWtGOEJpSTRSUU5nQzQyMHYway9mMDFGTlA5cm9DVjFLTlFCeC9TQ0FYRHRmZlBDWgo2eWNMZ0V6NkNQMDRPMStrbitKVnBSOEVFTmRQN2tyZzVIcm8yS3IzMkZvZkFDai9xcmYyZnFMdVhvSUFKTHRnQ2RFRmsvU0JyMlNnCjdBQ1NVenRaTW1nQ0NKVHp1L1RUNlVZZm9aOEhReVo5SU8wUGhqb2ZETWdNMlpFL0x4TkFuRUZZOWNGa0J4QjF2aURnbnFZYkEvQVYKVjRHWkFKSVR4NzhiUUxUeTYzY0JxT2E2bUlBbUFORVFOQUlJNkZPem5ZUmtBcERtbm9xTk9DWVRnRXo2U1AySWRWNnUrYjhESUpOQgpydnBCQU1VaGRhc0pDRElJNTRIcU41SU5teWxaQk1KaElEVVFqUXpDRmxqTHRUZ0dKTlI2UzZYdGRoTFNmaWVGNmJnWGgzVGVUNUIrClZCNGxLTjJQa3hTODNQTEFOVmhlaGxPWXZtY0FvN1RuZVQ4R2o3VUtVT0QxTUlnSDZBTUc4cjVNUXhCRHlDRDBrS01zOUhZNCtHYUEKRW5vN1NBbS9HNkpFdmgybXhMNGQ0U1NDaDVENGQ2UFJid2RqM3czRnZ4L21FV2NNbmV5U0g0Zk5KTmlPUGxsQ0V6K1E0UGNEa05BUApRNWpnZDhPQmI0Zjg3d1lKUGVnZWlQZTFpT2ZsQ0c3ZzBmdGNqQ3ZTMnhhK0pjRTdTOXY5UVZyNkRtbTRuYXkvbGFpL2xXeTRuY0pnCjU0c3ZnT2ZOTDlvQmlQU1R2eUZEYStCWitRZG5nR2dCdkFMUXJOZ0I2Sk94cG8vR2E5NGJLLzFmbDArL2Q2SGhreSs3ai95My84Ui8KaFhMK0hqaitaUkJ5NHF0UTd0ZmhrK2Npa0x6elVVaitoVmoraGNpcGkxRkl3ZVVJcFBCS3RPaXlTdkdWR0tSa0xJNHBtSXdVVDhiSwp4NVBsWTRuVDQ5SHloV0RWVHJqK2ZyVHhucmZsWWFEOVNiVGphYXpydWFnQTlYMlQ2SDBkY3d4RWkvL2hnK0VmaDhJLzJsTkIxbGkwCjJpVUlBUVN4ZTJITzRXaks4RC8vQXlLbXBISHJvSC8rSjhSZVJTOFB6SmpjeVI2K0tzMFpHejNEdi95VndwOHovTXNYRkUwL3JPZjEKVjc2MUR4dDJ4dUlsTC9sWTNTN0xQWkZ2UnlucWpOMzJzcWVldGRxUE5mS3NCbjJNV1I4eDhnenhQQnRoK2hrRjlDQ0EwRDNJSUtBUApUanAzUEJSVHp6ajRyT2FkN3cxVCtVZTZaeEJIVURPVmYycHVwS3V2cDZxdUpTR1ZPd2tNSE52aU1iYjIwUVo5NENHa2VDTUtjY3c3CnI0WkUxb09Rd2cweDhpeUdmbFo5RURnUXphOVZiKzY2SDc2ZVdPa3J1UjZxZlppcWZoREJJV2dMUUNsUkIzb3MwdkVrYmFiemFYL1gKc3dFZU9BT0JYektMT3RuamdNN2UwdkZvVUlWWmh5T0p4MVFSQm1mVmVmRG5pRi9kSW5xYVptaVBBMXBqaGVFUDY2OFBZdXF1RFdDcwpMWFpFcXNYRWNWcWpUOFY2Q2xLK2xpemZTSjFlVDVhdEpTQndnTWVscS9HaVpmZmtMeWNBUUFYTDZlcHJRN1UzRTNVM28zVTNFL0p2ClZ6MHZxdjFnYUxrNzczbGg3WWRWZmV4bzlMRmpyQUxEZFY1Z285S1ZpTFhteTBZUEd3YXl1MkEwQ1lRcG5JOWhDdWFpK1BYVWJDUi8KSmd5QkEzZ0l5Wisya3pjVllZbWVuSXhnY2lmQ21CUGpJZnlLT1Q0V3hPUmNDU2dBb1lGMkJSRDF3bWdNU05BSDR3UVFHWWdBcEJ1SQpBWWdicU9kSnZ4WkxRZzRBa1lId3dQdENsSUlvVkFIaTRkVWcwMEFjUU54QUhFRGNRR1pUREEyRUFOSU1KTTdBVjdmbzdyRVMrMkVJCllob29FM2RjOVlNQUl2MWtBWkQzOVJBQ2lIWXdNd0VFYnoydUFKSUdFZ0g5d0ZlZ1Q4MjFoS29BR1FEaUMrQUpRSG5ydnIwQUNDZWcKUDU0Uk93QVJnUDU4K2ZUNzV4cysrN0lIQUpUejM0Rk1BRUw5WkFLUXBoOEVVTWxrc213aWZYb3NWVFlXS1pzTmxHOEZxMjVGNnU5NApteDhFMng1SElHQ2c3aGZ4bmxleG5sZFJ6NXVreDE0WGxyYmNhVmVEMlBKNFlTQUNFQjhNa2diNkFtSXlpTFJCOU9FUFhjTGJXM3VJCjRSN0tMZ0RpK2lFQThXRm5BaEFaS0F1QXBJSFl4SThCSUJFMjk4TkducFYrK0xpUExQWW8vV2dOTDFmOVlPR0hBQVR1UVFaMWlhS0MKRFNCKzRkUUFaT2xud05TUEd2cVJBRUlEWlFFUUdRaTVZeHBJQTVEU2p3VWdDQWNRQkFDRUJzcFo4WnhjODViZGpOUThTTlk4ak5JTQprQWFnVEF4QzhXZ0FFbWNNNG1TUDZSdGRPWmtENzBML1FuVDlZQXozaUtWOE1qcDltdThNaWxoN08yR0poY0l4cE9uSEZVRGE2QThCCmlORERBUVFwWGhFaDl4UXV4VEI1UzNFRVVOWE9JQUVJL2theithVUJpT3NIWXRJSEswRC8wd0FpL1dnQW9nQjllRElCaVBTakFZZ24KSTRDb0Y0WUFrZ2JDU1NESGlqQWFpSFlZNkZhSzBuWTdqV20vMDk5eEwwbmhLOEk2SHlZaFhZOVNXcm9mcDdWWUVnSWJKVFVEY1FicApaYUVYS1NyOFlKQkJpQjQrSHVRS29DeDFJTXl1QUNJRHFZY0dmZllDSUpOQkpuMDRnRFQ5UURUOUlJQkUyTnlQQ1NEY3d3TUJoRzlZCjlOWkRBR3ErSTlKNEowVUF3bURuaThhZkNVQzgrY1YzQUFMOUlJQ29CV1l2QVZ2dTRqc0FjUUI5UE43dzBYaVZBTkNsaXZmUE53R0EKRHYwdE80Q0VmaEJBcEI4STBvZnJwM1E4QVNtY2pCR0FpcTlFU3FaREpjc2hNRkR0VFYvRDNVREx3MGpybzdBMFVLVHJlYXp6ZWJqMwpWUkxiWWJ3VUJPRkx3OWcyaWZicU1ENGNEVUVBVWV3NmtPUUZwd21lMGQzelB3WWdyaDhDa0tZZkJKQ2JmdlphQVhJRkVEY1FYL05sCjBNZXUvYUIrQ0VCbXQwdlNSK2pIb284cTl2Q3FEd0lJTzEvbVZSTXZrODY1SDZSUHY5aUZ4Ym5XM1Y3dXZyY0trQWtnalVGSUg2MzgKYzJwRnVBZVN2K3FIRUlCT3JIaFBySGtBUU1lVyt5QUZXOEdLTy9IcUJ6RU5RR290R0FOUWRnYnhtTVN4b01QYld4bGFYWHNBVVB2RApBVHVTTXZCR2xDV0dleHdBSXZlNEFzaWlqdzRnUlI4WmpoNHVJYWFmL2l3QVV1VWZKNERzOHMrYTRBNTNUK2xxSEVJQUlnT2hmZ29XCm8xa0FaT3FIQUtUcFJ5di9VUCtMQThpaG4zOEJRRncvSEVDYWZxamt3eGtrcWtGdSt1RUEyb3QrQklCcWxtTVF5MEEwREpSQUFPRWsKRUFkUXkwNUs3UXdrQWRSMlErd1BKQnBoTjVNUTAwQkluL2E3Q1FnM0VBS0lzZ2NHQ1FDUmdYZ3ZETDdpUXl3RktRODlUNEtCVEFEUgpRMjRnbVg1TUZnYTVTb2lYaFdRR01kSHZobmhNK21TUE5idWpZbTNuazdIU284VWVlVWI2ZkQ5bzArZmJFWWpVandLUTFNK1E1NVVJCjA0OXEzdU1iR2IzMWNBQ0owUjhuZ09CZkhRR0lwbjl3QVR5dGZ0ZlhmMGtBMlFOQXZQeVRBVUFmVHRVQmdONGZyM3h2N1BSN0Z5cy8KUE5meTJaZDloLzdtTy9ZMy83RXZmVGxmK1NISHZ3NmNPQmZNUFIrQ25Md1F0c3MvbDhJV2dNS1FvckVZcEhnOERpbVpTRkNLSnhLbApFMmt4Q2kxR2d1TEZrOUhTK1REOGs2NjY1cSs3Rld5NkYyNStFRzU1R0dwN0hBSUR5VkpRRW1laXVZRWdOQlZrajBYalNOQXZJM0ZyCk1obzNDcUw5RXJWbFlsYUR6QUVqaXVHVlhXTlhkSnd4bjJrL1g5TVBSUHMyQm43NUhHUHFoL2I0MFFCa0xmamFIVUM4L0dQTitvaHgKSDlTUGhSNDE2TU5xUDdpN2p6N3JZNGxubU5GblJKdjQwYWVlR1lDMGl5VzJ2UXo5cFBtOHMyUGl4eXIvY0FCQlhQVURLZDZJbG16RwpLRmoxQWZGbytoSDB3VWo5NUszNElLU2Y0OHVlWTJ0OWtDT0xQUUNna3V2aHFudkoydnV4K29jeG1nR3lEZlJJSkpPQjZGZzNrTzZiClhXSVNKM3RJUDIwUCtrM3VtREhjWXdOSUU0LzIwS2tmRzBCY1B4RHNkbW42SVFCWmpTZFgvYVJOQU9uOUx5ZUFnRDRsS3pFVFFLUWYKQk5DSjJTZ0JxUFpHQkFGazZnZG5nTXpPVjZicEh3NGdYVDlyTVJ6NklmM3NFVUNhZnJJQXlMWDhReFVnVFQ5L0hFQm9JQUFRR2FodQpYUVFBeEF3a3BxRmJkdnJGSkpDMU9aQTFESlJBQUprR1F2cFF5RUFkRHhJWVRVSnU5QkVWSUt0QmxzS3dRV21oSHc0Z05CRG9CNHRBCldBZmlqVERYdnBqdlRUK1AvKzJBbHNDN1FaNWRBYVF4aUVTaXhiU0xKUmk3ZThJVC9uR1loNm83Sm4wd2dqNU8vZmpmRFl0SUFGSDUKeC9OcUVBRkUra0VBMGNjNEUwQnE3eDhMUU9MZm13ek5Qa05vOVh2RnRpci9hT1BQcDlaOE9BT0UrdUVBQXYwZ2dQZ1dpR0lCL0xUWQpBZWlEOFZvQTBQdVh5OTYvVVAzUjEyMzcvaTRCOUtXSUs0RHlMa1lnK1pmQ2tGT1hJNmV1aEFyR3dwRGk4U2lsWkNLR0taMk1Dd0JOCkprdEZFU2dwejhUS1ptSmw4N0hUbTRHYTYrR0dPK0hHZThIbUI4SFdSK0gySjlIMkovR3U1d2xwb0ZUdnE3U1lpWVpYRWJ4c3BJRUMKM3czQWp3Q25naUkvRFVkK0dvU280V2kyUml6MXMxZ2p4cXRCSEVPMFZONkkzaXpUV21aR1RQcUltTFRDbVBRWit2a0xpRWtmRGlCRApQd3BBVHZyWUFHTDZVVE5BNW5KM3JQb0V2eG1CYVBvQjhaajB3YVZlYnZUaDdoSDBzZDN6U0JWKytKZ3RwdTNoTUtUMXdWREwvVUZJCjg3MEJqRWtmYXd0UTk5VmVYRDhWMjNFSUFxanNxa3JwVmh4RDR1RUdnbU1VVCtGYUVGT3dHamkxNG9ma0wvdEVwSDVPTG5zaG92QWoKazdQVWQyUzE5K2hxNzhIRnp1T3JmYWR2eFdydkoycnVSZXNmaEFGQWtHWmVCSklBb3BnRklkZXlrRWtjQ3pyOUdhSVRSNE9PRnVFZQppaVFPM29XdzljR2dhMHdTV2RIclBhN3V3Zksyak1NOVRiY0hNS1orbUh1bzYyUzd4M21QTGF2L3RaWEtBaUEwRUFFSURhU1ZmMUEvCmtKT0xNUURRcWFWVTVmWkF6WTA0QUtnV3Z1NllveitvbjZTcG53enVpV0ZjNkxNYWRSMkN6ZzRnTTNJT1dvMUN1K29IQVlRelFEZ0cKQkhHalQxam1kK2hIQUtoNktjcUtRR0pGbUlvVFFMUWt2bms3VGZOQWZJUEU1aHVnbnhTbTlWYWFvbzhFM1UycmdJR2M2WHlRaG1TcQpBUEZCYWFlQjdJS1FZeGhJMGdjWlJPMHcxNkNCdkdJaFQxcGpVQllKWlNvSW9YdkM3d1lnbkVFbWZYYUxBcEJtSUZmOVFJemZqZ3UrCkJpMzNpQ0I5ZkcrSFJNVEdQMkx2SDZ2OEl3RFU5M0tRbFgvVVNnMThJMU52UTNiNVIraUhBRVQ2TVFHRStvR2dmc1FBa0N6L29INDAKQUlGK1RuRDlMSWtCSUZjQXZUOVI4LzU0T1FEb3cvUFZuM3dGQVBJZSt0Si81Q3RQWmdDRklBcEFsbjRnUldNUlZ3RFJnVXlzYkNwKwplam9CS1ZrTlZtNkg2MjZGRys0R0d1LzU1VHhRck8xUnZQTlpVdHdxVlJxbzczVS9HY2hxaDlrR3duQUdzZGtnZTUyOHhpRGtEdDFOCkRPK3JLcy9vWk1FWTd2bjNBQWoxQTlIY0krano4MWtJYjN1UmZyUk5Ebm05eCtyNTBwWS9hc3c1MDFhSFpzTkxyZTFpSzd4NDdZZDYKWG9aN1JCejFIcnkxaGRRUGlBY0IxSEZmckhtRWg2MVdTRDlOZC9zYjc2U053Zy90Z0NVS1B4cUFxclpGdDB1VmZLUitLT1FlalQ1Rgo2eEU4d0ZDOUIrbWo2MmRaMFNkM3lRTTV2cXdDQURxODJuVndxZXZ3Y25mK1ZxRGlUZ0lBVkh0WDN1ajNmcFFBaEFIMHRENFVYMTBOClJBK3BJS1FlNnI3WkpTWnhza2NEa05MUEh3S1FxUjhOUUV3L0RnQ1Jma1RvNW00WjlTTUFwT2tIQVdUcnh3QVE2b2NBeFBXRE1adGYKcmdDQ0Qya0lJR2ZiaS9TVCtGMzZNUUdrOUFQS1dWWkZvRDhHSUVzL0dRR0V4K0Nldk9rUWhPYWdNK2puRHdHSUdVZ0hVTjE2akJsSQpMSW0zYnBIQlpxSmxPd3dBbE1GQStyb3dsWHRKak00Z3Q0NllqRFlyclVwQm1mcGlKb0NvR2tUSHBDSUNrS3VCWENXRURGTGJDYktBCk9ZTGZEbEJRSWFaT2RnMWNMTFZZMTA2ZFBxNEF3cjhYNG45SFVmcnh2aG4wdmhubUFKTDZHUVQ5SUlDczhvOEFFSDJTdy9jZzBnOEgKVVAwdDZaNGJjUUtRNm4vdDJPV2Y4cXUyZmtyWTlqOEFJR3lCVWZtSEFBVDZNUUgweVRUZUE3WDJ2Y21xOXlZQVFPVWZuYXY5OU1zTwpDU0R2a2E5NndVQkh2L1pDanAzejVaejNINzhRZ0p5NEdPVDZZUUFLRlk1SElFVVRVVXp4WkF4VE1oRVZtUXhEU3FjaXdrQ1FpWGpCClFxQnNQVmg5TFZSMzIxZC94OXQwUDlEeUlBb1hqUFluOFk2bkNUQlExL09VWmFBQmlHQ1EwMEFxUHcyRWZ4d2dCckhaSUQycDMwWWcKMUF2VGVtUW1XVEJHb1lpaUwxekhtSCtDQ1NEU0Q2VC8xODk1MHIrY1ZYSFhqMWpXenVsRDNMRjZ2a2lmRVZ6MHJrMDZ5M0VmdS9ObApMdlVTZC9WeXRMMUdYZHRlVHZxb3V5dW9WcGQxZXdRNHhwSVBNZ2ozZWdBRGFRQkMvWWhsajVJK1hELzQrczhFSU5KUCtkVVlEN21ICjZLTzZYUnQyY0hGNy9tb1FndnBCQUNGOThwYThFS1FQQnR5REFRTWRYT25jdjloMmRMVzM2Rm9FQUZSekwxNTNUK3pzZ0FCcVlnYUMKRjdNR0lNNGdzeWFFdjJvU3g0Sk9Pa04wNG1UUHY2c0NsTVU5Qm4xc0FEbm93d0RrMXZiaVM2NWM5R01DeUN6LzRCQTBqZjZnZ1lxWApveEJ6L0prQWRId21rcitZQkFCVlg0OEJnR3F1eHppQW5QcHhBTWpVRDZlUENTRFNEd0pJTTlEZUFjVDBJd0JrNm9mM3Y2Z0NoQWJLCm9COEJvTDNyeHdWQVpLRGFOVFNRRGlCclJaaUlWUk1TZFNBRUVCbUlBd2dObEFsQXVvSGMrbUtTUkk3MVlnU2c3c2NKQWhDZkUrTEsKY1pVUUI1QlFrUVdnZjhWQW9qTGtCSkExQW1LTFJJdEpId3l1SVhLTFRwK1FIUEZ4MVE5RUZDSGd1M1VBYU5qemphb0FzZkpQTmdEaApKellPSUxyOUJTNkRGNTgyWklTQmNBRzhHNERFOU05bXNOaTYvNWZhQVFqMHMrYk5BaURhQTNwWEFCMysrbmNCQ1BRVFJnQ1JnV3dBClNmb1VUd1NLcDRJbGswSEJvSWxvMlZnMGI5WXZpMENCbXB1ZTJsdDlEWGQ5emZjakxRL2lyUTlqYlk5andDQlpCMHBqTHd3WUJBQ0MKdUFLSURNUTNDc0pGOGlhRGlEN2FxSkJKRml0MnJjZ1pmYWRtSythZnNGY0EyZm94QUdSdDhVejFIb2QrZ0RzRUlOU1BiQ0tycFY2bQpmc3ptRitvSHd0cGU5dHlQMXZiYVZUOGlyT3JEQVlTZEx6SVFBa2lzZkdTZHI3MEFDT3M5aUo3VFcxR0twaDk3eHBucGh3Q1V0MkxyClJ3UFFpY1UrRHFCamk3MEVvSDBMcmNmVytrcHZSc1VFOU4wWUFLaitiaEFBQkRFQjVHcWdUUHFCSjV2MCtXTUFja0FuVXhpQVd1NjcKeHk0Uk9RUEtNUUZrb0VkRnZzVVo5TGs5MEhpcm53REVsMzBoZzlqWWplMmUzd1VnTVZMam5QNUJBQlV0UmNnOVdnaEFGVmY3Q1VEeQo3M1VBeU5LUEFoQ1ZmN0xRUitvbit2OExnRnhHZnl3RC9TNEFBWHBjQVhUc3N2OVBWUXN4VFBWaTNORU9Vd0RDUmhndENsUG9jZHdpClE2YnBXa3JrT2k4RjRVZ1FXeUYvSjQ1cHY1dG9rM0V4a0RVYnBESElkYzA4cE91cEk5M1BVajNQMDVEZUZ5a3RmUy9USXErU21ONlgKQ1R6d3ZFNWxpc0NRcXBUWXdla1o3MXZIckNzRWpzVkR1K0xpYUQvaG1pQWVYQ250LzFhc21xYUhFTzBKZUwxa3Z6U0FsMUtLT2lOWAplRG5XZWFtL1YweWlnSUh3U3V4OU00Z3RNTy9yQVloRm53RkJueGNEZUlkblB2M1RKZGQvS2YzY1Q3ZmFPeDhTZ01UZVAycjgyV0lRCmhEZS83TVZmV3lFRUVONy9pd0NFRlNEUUR3RkkwR2V4NC9DQ1dBQi9ZS0YxMzF3ejNnRURkMEg4YUxMdXoxTlZmNzVTK2Y2RjZrL1AKTmU3L3V1UGdsOTJIdi9RZStUSncrTXVlbzEvM0hUdm55VG52aFJ5LzREdHgwWjk3S1hEaWtpLzNzdi9rbFVEZVdEQi9QQVNCQXdpZwp4emFRR0FtS2xFeEVTNFdCb3VKT3FOTnhDQnpnY2RsTW9td3FjSG8rVUw3cUs5LzJWdHowMU56eU5kd0pOOTJKTk4wUHRUeU15RHBRCkROTDVMSTdiSkZyLzIvdnAxY0ovck5RT3cza2dIQW1pZGxqeVY3Rmh0Tm95MFdxTkdUMHlwWkNCMzc3Z01TbURNYWVGTVAwL24zWHYKYXUwR0hTM09xZzhPT01zTnl2OHhHdnVKVCs2UFFzTGZZOG5IcGsvNDNZZ2p0bjdzRzF4UTI4djNjZ1FEeDU2WFp6QjlMMFo3bjUrQgo5RHdicGVBZHhYbTZuZ3lMWlVlT1BXUEVFbmRxbExDTThKdDhZVDBBTG9IV1RYLzFoZTRZSEhibXk5MDVmYmgreWpZamtPS05NS1pvClhkeTQxQjd4WWN2YWFYa1hEODQ3WStjTGNuekJjMkpSMUlIRThiTG4yR0kzNXJQNTdzTXJmWVU3d1lwYjRlcWIvcm83b1laN2tkcmIKd2ZvNzBZYTdNVWpqdlhqVC9VVHpneVNrNVdHS0dHUklLTzBhd3pjcUhZOVNydEV3UkxocHpSUjQ4N0hTY2k5Rk1XczhHTVVncXlBRQp4ODMzK2lGbTFZZVhmK2lXUG5BQUQrR2s1aDZLMnZiTVlWOGNlN2Nib0paOTB6STRCS2J1ZEN0dWNMdVZnbFJzSnNzM0VwalQ2M0ZNCjJacWErS0h5RHdISXJQMUFUaTFFOGppQWR1TFYxeUsxMXhLMU93T0liOUY3M1U3WVpjaXJjYnJKcm5hZlhmNXQ4UEFKYUZzL0ZuRmMKR1dTNVI0dk5JTkpQNFh4a1Z3QXA5OGhHbU9pRnNRbG8way91aE5qdnh3UVE2b2U3QjNQMGtzOEZRR3BoL0pwdElBSVFSQU1RR1VnRAprRFFRSlc1dkVXUVpxRlVHR2VTUUVBTVFOMUNtZllOTUFGa0dTa0pjR0dUcEIwTUF5b1FoaElMSklBS1FGZzRnYmlDRURsb25lMGhDCkdXS2p4NEVoVi8wZ2dONkpPaEFCQ0Eway83dW85aVBwSThPbmY3QUN4QUhFeWo4S1FMVDRpd0FrUG5sY2o1bk5Md1FRR29nUFFZdnkKajZ3QVpRSVF2d09HQWFCYUJxQytJMS81dUg0d0NDRFFEd0lJRFVRTUtyQUJGQzZhaUNnQVRVVUlQUnhBa1BMcFdObHNxSFRKVzdiaApxYnp1cmIzdHI3OGRhTGdka0RQUllWa0VpdUkyaVdpZ1BuaHB5YTJpMlM1QitGTVdxQ1VHMldQUjlwM2tsWUV3bVFBRUZ0RzZVUmlUClBnUWcxNU1vSG41U0djajV4eEtBMkhTekl4cDlsSDUrR0FIOU9KY3VPZ0JFaFI5eWoxTS9Mbk0vcEI4TTBnZkRBZVJLSDZVZko0QncKa1pjOFVHdUZyQ0tCdmhDYUEwaWpqMXJyZmsxTk92TmhaOTd3MHZSREFFTDltQUJDL1pnQVF2MFlBQkpGSUt2ODB3UDZPYnJVdlcraAo1OWhhWDlHMUVBZVErQ3IxUXdBaUEzRUFPUTJrMHljN2dOb2ZKbDNUOWlERndueGowc2NBRURlUVdlTlJsUjRxQlVuOUVJQmMzWVBXCnNVbytLaWFBdUlIVUJ6OTc1dDBkUUlnZUFoRHFod09JOUVQeUFQMUFUUDFnZU5XSDlBTTV1UkJGQUpWdnBRbEFZc01oUG45bWhRTkkKdTl1dVNSLzhmbHdyUUJxQU9JTU05MFNMRnlNeUxoVWdBQkRwWjQ4QXlxQWZHMEJhLzR1M3ZUSUNpQytKNXdCeUZvRmlqdnRqV0duYwpTVUlBUU14QWNFQ3J3NVNCcUE3VWNqc0dRUVk1SkhRL0R0RVlSQkl5Qm9OU25VOFNGTU5BZG5wZjlHUDZYanFLUTFnVzhyd1M1eW53CmtJSUFvdGdBb2svMk10aHA0dEVrUklVaUNrY01QeWtiSmFLcnhaOUExcUZmMHA2dnUwZnVka2hCQUZsVEtjSkFTQit0L0lOM2VOYW0KZjNZRmtEMytiT21uK2xyVUJCRFNCdzFrYndPOUt2U1R1K3BCL1NDQTFQaXpHNEJRUHg5TzFQNWxvdHdDVVBPQnI3c0JRSWUrNmp2OAp0UWYwb3dFSWkwQklIMjRnME0rcGlUQUE2SlNsSHdHZ1NUSDNRd0RpOUZFQW1rbVdUa2VMNXZ6RnkzM2xWejAxTjd4MXQveTF0N3dOCmR3Tk45ME90ajZKaUp0cmFKaEVNMVBNeVFjdmp5VUEwRllUZXRVcEJzaDBtb3pFSTE0amhNakVqZGxYbWR3R0lpd2NCWkQ1WkF4RC8KdXpUeFpIS1B2YStWM01FY1Z5bVNmaURXMmtsYlAyemNSN1c5TFBxTWlMejYzTnJnUjIxbWlHMnYzdWNqTEhiNVIzTVBSZTA2WTIwUQpURHZFNEdKcFdpc2tyNHY2R0N6cEIrTGE2b0tZVlIvZThPTDBLZDBJbHpMNmtINVVrOHVpRCttSDBLUHBSdzArTC9RQ2dFQS9SeGQ2CmppNTBDUUF0OXh4WjdEcTQxSE44dzF0eVBWUjFLd1FBcXIwZEZCV2d1NnI4Z3dBaUEwRmFIc1JsWTlmQklDa2huVDY3QWNnOXJmZVQKTExacGRQZGtBSkFkZ3o0YWdMaCtOQUNaUFM4eldRQWtQdnV4MWljQkNCdWc3UFVnQUdUaHc5SVB5R05UeExYOFF3RFM5TU1CeE1zLwprRndKb0x5RkJBQUkzbnNCUUdJWnluWS92U0JaN1Fmam9oOFRRUGpOY0FBNTlPTUdJRXdHL2RnQWN1ckhCbEFXL1dnQU11aGpBMGpUCkR3Y1ExNDhPSUxNQ1pCb0lBVVFHSWdZaGdCcXZ4ZEZBa2tGMk5BTzFTdjI0R2dnQlJERkxRWnFFT0lBMEE1a015dFlhYzRZYnlHU1EKaUhTUCtHUXZRd2JLNUNGSGxjaGdrUGFRNjBmVEVsV0FPSURFR1RmM0lIMjRmbVNHUkp6NlFmcFkrckYzOWJDbmYvQk55Z0pRNDYwawoxb3I1RGtBUTFBK0U5RVBUUDlUL3doYVlXZ1B2QkJEbzU3ZzFBQVQ2Z1ZEL0MvVkRBSHB2b2x6Y0JleDgvV2ZuMmdCQWg3N3FnUnc1CjF3czVlcjd2MkFVUEp1ZWk5L2dsM3duTFBWdy9DQ0RRVDhHa2lBV2djREZPUFU5SFM2YkV3eEo1WERZVHd6UGxNLzNBb0tMcFVQR0MKdDNUVlU3SHRyYjd1cWJucHFiOGRhTHdydW1CZ0lMWk5vcmhkQm00UnhPdEFFUFpqZFJnSUFZUUc0dTB3SHI2SllpWUFaUXJYRHpjUQpQUUU3YU9adjVIK1JDYUJNN3FIenBCOTBqOGgzWjBMQ1BZN09sOU05R0lzKytnWS82bDRXbUo1bnd5eDI4MHR6ajAwZlhIZHQ2NGZRCmcxZFFQaUVyYWo4MDdNelh1dGRiQU5MMEE2SGxYWnArU2pZakZLM3Q1U2o4MEl5enMvRGpTaC9TRHdJSWwzMGRtZStFSEYzcWhnOFMKQitkYWo2ejA1Ry81VHQ4SUVvRHE3NFpOQUJHREVFQVVacUNVYTB6aVlKeVZIanVaQU5RQ0IyN1IzYk5uQUJGOU5BQVowRkZWSCswTQpiZTNObC91SjF3Qys3N21zKzFNVFlLejBnbFVmTEwyd3Vnc0RrQWtPYmZaWkE1Q21Id1RRTWZEQlFxTE1BcENvQTIzM2E1MnZpcTBZCkFraHpqMzJiT1RmOS9Jc0FZdnI1SXdCeTBjOTB5TlRQaWZHZ2pNTTlybk0vRGdCVnprY2h5a0RXREpESXFvZ2JnK3lGOGJSSElxUmgKT3dFQkFHR2tnZUJybkVwQkdvTmFib3UwM2tsaTJ1Nm1yT2hOTWEwMXBrbW80M0dDcC9NSkFDZ0ZJUU5wR0VMMFlJT01lbVM4TEpSZApRb1Fob28rNnNFa0R1VVlSUkY3MlhCdG5HbkhvSWFsSTQ1RnJYTjNEVERhSSt1bDdQUWdCQUVuNk9QUkROM0JHQUxFeFJxdjhjeS9GCjlLTURpTWFBMEVBRW9OTmJZdWREQWxEaHVyL1FXditGd1NGb29BOEdBWVRsbjBQemF2MlhWdjc1WUx3R0FDUzNRR3o0N0Z6SHdYTzkKQjc3dU9YaXU1OUNGN3NOZkN3YVJmaUNnbjl3cmdSTlh2TGxqUHNqSmNYL2VSSUNTUHhGR0FCVk9oU0VJb0pMcFVDWUFsVTRuWktMRgpzMEV3VU1sS1gvblYzcW9ibnJwYi9vWTdhb05FdVVlaUtBSzFQNGwyUG92TFhwakRRQkEwTVNPc2FvZnhmUzlqUDRuUkdSVnJQRWdqClVmS1hzNVRVcjU5VFRNRmswZ3llU2Ywc3VtbTZjbjQrdy85OFNPTG5NNWhkQWNTclFRUWd1aEV2NmllVWtUN2lxN2lqbjZTUHZFR3YKV3VoTytyRzJjbGJoZDl6TTJQQXlkaHkyNkdQUC9WaFhTclhRWFVUdWM4alJROWM4Q00zNmFOc2JudDZPUThxdXhqQ2xXMUdNcTN2Ywo2WU1EemdaOUNEMGFmVTRzOWtGdzZqbG5TVlI5RGkrb1R4SDc1bHBPclBVV2J2dkxid3I5SUlCcTdvZ0tFTTBBYVF4cXZwL0F0RHhJCjhwajB3WmpFMlVzNGdCU0RNa1IzRHoxZjNKUEhKWnA3bXU2bU1hN3U0VzJ2VEFEaUFpWUFNZjNRMkR1dWdWVWdabFVmVlhleHpaR1IKUGxFWmR3Q1o5TW1mRDBOT3pFY0FRTGtMOGRMTmxOaDQ5bHBZckVHNXFpcFBIRUJvSUpNK2V3R1FycCtWQ0UwOXU5SW5FNEFNL1NnQQpaZEVQQjlESnFXQUcvZGdBSXZwd0FHbjZzUUdrRExRWXNSZUZTUUNaQmtJQU9mY0hzZ0hVc0JPRFdBYkNPS3BCYUNBUkNTQTNBeWtBCmFSTFNWc3VMQmZOeTN5QkFUL3VqT0FZQlJBYXlKQ1J2WEd6RnJTYWt1bU9zVFlZNHdMaExxTysxSTZ5K29tQ2txV2hYSkdsMnlmalEKV1VEQzBPd1JkNCtsSDlud1l2cFJNZHBlVEQ5cHZvaUQ5S01CcU9HbURKYUNuZm9oQUlGK0VFQnE5R2NqVUxEbUs3RG9Rd0NDa0g2Twpzd0VnQkJEZEFSNzBBd0g5dkQ5V2JlMEIzYkR2ZlBlQmN4NHcwTUh6WFljdXRCT0FVRDlZL2lFQWtYN3lKNE1Fb0ZNQ1FDRUVVTkcwCnVPdUZXUGtsdW1BcXdCMFdPUW9OSHBvSkY4MzRSQjFvM1Z1KzdhKytiaHVvNlg0SVo2SnhKQWg3WVYzUDdWNlkyQzBhZis2c0hZWXoKWG56bkp6U1FpalVleE8rbklUQmtHQVVsWkdvbWU4QTZHTzBoaVllQ0lNdlUvTklxUUJUc2VRRjl4RllSa2o2UW9GTS9WUEtocW8rawpqOUFQemZxWWk5c3h6dnVONi9VZXpUMzJobnZzamdwcVpaQWFtTFVYdXB2MG9ZMGU1RTVYYXRhSDcreGN3ZWpEOVFQSlZQSnh0TDBrCmZUaUFYT2xEK2tINldBQVNJODlIbDBUd1g5Q0JoYmFEaSszNW01N1NhLzd5Ni83SzYxNEVVUFh0Y1BYZEdBQUlrd2xBbVNTa3hjU04KUlJ5ZExKaE1BR3FHTnhtMzhNRm4wU25iTTRDSVBpYUFPSDFvOWxrN283dUhYZ25ZOTNldSs1UHV3UzNRK09RTjlyenN1b3ZTaGpIMwp3L1FqQUtUMXY4UUU5RkxFVlQrUW5JWEkwZWtRQXFqOG1nQVF2QU1UZ0xoK01KcDdCSDAyWWlKdSt0azdnSGJUeng4SGtFTS9Gb0RJClFBUWd6VDI4OXVNT29JcTVDRVFaYURGaUc4Z0NFQm5JS2dMRmFHMDhMd1hWWDQxREVFQ1dnZUJyakRwaXNocGtHNmo1bG9vaG9iZzIKRmFRVmhEUUdrWDZ5R0loTGFDOEFjakxJdlR1R2k1dzEvY2lINHZKR1phRk1jVFhRbm1LTVhhczRuMFovTFB2ZUZIMTZYdzMwMHBvdgphK29aNlNNdkhncEFySWp0QXFDR213a0VrRWFmcXAwSWhzby9XUUNVdityRkZoaFZnRUEvT2RZQUVMeDNRMmo3SDE3K1lRQnEybmV1CjUrQjVyeWdDWGVnNGVMRlZGSUV1OWh5NTFIdjBjaC9rMkJWUHpwajMrTGlvL1NDQXVJRkVBRUJUb1lKcHBaK2k2WkJvYndHQXBrT2kKRGpRVGhqaU9aeU9nbjlNQW9DbEJwYUk1ZjlHeXYyakRWN0hkaHdZU005RjNnamdUM2Zvb0tpUGFZVmdONm5vZXc2a2cxK0ZvY1JkVgpjZmNNY1FjeHVvbVlpdHd4aUcrZnFEWlJ0RXBFcGxSY1E4cWhVaENIamxuc3NVdFFMQUF5cmNCRDRiZHo0YmVDUVFDSjNTTGVqVUJRClA4RjNaMEp2aHpYOU9Pa3piTlBueFRCdThLTnQ3Y01CWkUzdTI5elIzS01CeUtJUGEzdXB2b2tEUU9JNmR5dGRlek1Gd2Z2NzRqMWUKNUtDYlkxZER0cStQWGZMaEtkd0lZYlRsWFZyaHgxN2NiaFIrcU9TajZVYzB2eFo2UVQrSEYrQ2ZqNmloeW44K0xhQ2ZuUFdlb3F1ZQpzdXNCMEUvRk5URzRCZ0NxdWhXcXVoT3R1eDJCa0lIc0xwaVZQVExJMmRMUzIxdHVVVTlvdVpmZ3NqSHBvM0kzaWRFa1pOS0hBd2pSCjAzZ25wUUZJSy93UWQ4ekF6MTBMdmd3SVFKWitWTldIQTRpM3ZTeDVaR3MyTWYxRVVUL2NRQ2FBU0Q4SW9NTXpBa0FsVzZuVE85R0sKblpDb0EyMExBTEc1SDJXZzhzMm91MzRzQUduNlFRQ1ora0VBa1lFNGVqTG9Sd0RJVFQ4Q1FLWitUQUFwL1JnQUlnUDlMdjBJQUpYUApobTBETFlSdEE2M1lCbklXZ1FTQW5Qc0QyUUNxMzQ1cUFNbzBGZFIwTTRiUkpFUUEwZ3prYUlmdEFVQ1pHSVRvY1RiRkJIY3lTOGlsCkx3WUJBSkdCbUg1c0FHa0dNczl3Q2ZHSEpCZzg0S1Vkcjl4UkJpNldjTWwwM243YzRTZnVLZzFBU2o5dTVSOXI1WmNBRUcvaDIvcTUKbTJUbEh3VWdQdm9EN3FuY0RtTUlRR1diWXVxWkFJUXRNQTRnTVFDMDZxSHlEd0lJUDd3ZW5CTURRR3I3SDFuK0lRQjljT1gwK3hjcgpQL29hQWVRbkFISDljQU1oZlhnWERQUUQ5TUd2QWtBelNqK1F3cWtnR2tnRFVObHNwSFErS0w1T1JjUytpTlBSNHJsSTRaSzRhSjNlCjZxbmNrWmVXbXo3Qm9EdCtORkRMdzRoTUNHK2EwZmtzQ2dZUzk1Q1gxU0FhanFiWm9NQzdOSVl6U09SSGUrTkVIcnRFSkdOaVJVdnkKSDZNbWdPQWtyeDVCNktIbUh2c3ZNbW84R080ZXg2N29QNHhpK1FjQmhQb0p2TldIbmExeEh3VWczOHNocDM1R00yMXNxQUhJRkk5TwpIMk5IR1J6NnNhNlVjcGRuYTZ0RFlTQW5nT2dPZCtiYUxoeHROZ2Q5TUs3Nk1RRkVPenU3VGpxYkFFTDlRSUEraCthQlBxS0FlbUJCCkFPandja2ZldHE5NDIxdCszUS82cWRqdVFRQlYzZ3hXM283VTNncVRnUnlqMEJrTVpOSkhSVGpHTlhyeHhvcDZRdlBkT09GR3hLU1AKRTBDYWdYQlhEcGRZQUFMOVlOUlAxcUFQNmtmVnMyK3F6ajQ5Tk9uakNpQkVEd0dJbFgvY0FlUmFhMkg2aVlCNFRBQVZMb1pkeXo5NQpjeUZYQUZWY0ZiTkh2UE9GeHhxQWJQMXM2TzZoYjh3VlFDWExZUk5BaG5qc0ZDMkVYUUZVTUJkMkJaRFoveUlBdVE1QmF3RGkrbkVGCjBKR0wzai9CdS9ucHVXajVmS1JpSVlxcEJBTXRSYXVXSTJBZ1RNMXFCRk83RnEzWlNGQnFONU9ZdXExVTNkVUlCZ3hFRElMVVcybTQKRm9jMFhrOWdHcTVIR205RUVVQklIemlBaDFnSGttZlVpSFRidlJpazlXNFVEeUI4UkxydFlReERBS0poSU5lWWZURUxSbW9xU0V2MwpDenM5TDhVbXZ4aTY4Uk9QZHNiWkpyTmh4REZrUWdxYlZ0ckFrRDFDWksxanA2am5zektTRTFWRDZKNmVsLzM0dGZ0Rld1eFdMQlZvCjAxQVZmc1NXOXBJKzZnb2hQcXRaUTRYNGh0SndPNG1iSDJKbzZUdDJ2c2hBZlBORHZ2U2Q3d0VOK3NsYjhVQk9McXN0RUxVSzBJSFoKbGsrbUcyVmtCV2lxNXNQSjZnOG1LdDRmTC8vZ1V1VkhGK28rK2FwbDM5ZmRCNzd1TzNSZUFHai94YmFEbDNvT1hlNDlmS24zeU9VKwp5TkVySGdSUTdwZ0hjM0xjbXpmaGcrUlAraUVGMHdDZ0FBYU9JWVV6b2FMWk1CZ0lvZ3BDTStGaVdmdUI4R04rcG1qVlU3cnBxYnplClYzMnJ0K1oyWDgwdFgrMnRhUDN0bE53bU1TcDJpNWJWSUxsVG9taUgwYjNENU0vZHJnZzZtMkpzMzB0V0VLSTJXVlJzQzQ3M0Z4T0oKL21NRUV2dDVGR0xTQjBPbElMSU9sbm5NV2hIRzZhb3p1SmdyeXgxNW5UdDhXdlBPV1B1UitnbThIWllaOWI4WmtSbkYrTDRaOGIwKwpBL0crR3ZYS1dSOUxQR0xFUjk2N1ZJU1d1R3NqUHUyUCswV0FPS0FmbFJFSXZ4RW1Xa2NWQ1l3aFdhdGFJSUxUUDZvQ0pHdWNXTytSCnNWcGQyeWtJVGZwVHZSTkQrakVYZHZHUWRjZzl1SjhoaEF4RUowOHVlaWhXNGFmbitJTHNlUzEwSFYzc2dPVE1keDJaRjU4ZkRpeTEKNzVNN2lCNWQ3U3JZOFpkdWU4cDJ2QlU3dnNwci9xcnJnZW9id1JxWnVsdml2aTcxQUtEYmtRWXcwSjFvSXpESWlxdUJPSVB3SVR6QgpjSThMZ0ZUVENqOUtaWXlqWTBWQndXU2E3T0ZQSSs3UU1RLzlaTFhRZm1iNDQ3WkhHNjIrcDVaTXEvL0lQVnJwaGQvbXRneWNzUkVyClhZL0t4RXJXb3BqaTFRaW1hQ1Y4YWpsU3NCS2x3TVA4cFhEZVlnaS9RazR1QkhNWGd5Y1dBcERqOC81amM3RkRFMTQ0VTdJWk95MksKa2NMaVp1ZUxndHpoQmlwYmoyb3BYWXZZY1ZTbklpeDZwVXJyMldrcFhJd1dMRVRNbkFMM3lPU0RlMllqZVNBZW1aT0FIaGs4enAwSwpucGdNUU16YWo5UlA0UGhFS0djOGlEazJGc0FjdmVLbkhMbnNneHkrNU1YWUFNTFlBR0lHa25VZ1phRHE5VGhFQTVBd2tCTkFaQ0FOClFMYUJia1FKUUR4V0hjanVoWW5jaldJMEFFRTBBSkdCVFBwa0IxRDNzNFI3R0lDNGdlZzRDNEM0Z2VqanZoWVRRQ3FzS29EQk13NGsKc2ZrZVh2VnhCUkRHQ1NEMTM4NEJaTlYrYkFEaEJZUGVYMUEvZFRmakdBNGdiSDRoZ1BDUzRCaC9adnJaRlVCaUFmeGNhMVlBVlFHQQpQdjI2ZGQvWFhUZ0JqUUFDL1dRQkVPaEhBNUNtSHdTUU1KQlZEU0lBOFpnQUtsenlsYTZMM1JHcmJrZ0QzUklmc3V0dXcxVWtKQ2FqCjcyTWRTS3dSUXdQSm0yYlk5MCsxcTRPTzdZTHNwWCtPYXBBVFFLYUJST1FZdFJrczVOQjBrZmJRTENPeDg2TVlTWjh6bW52TXJjeHAKM2xuazIxR25mb1l0L1l3STkxaEIrbmpFcGo0anRMeUw5TlA3WkFqQ0Y3ZnpFUjhDRUtRTlhyMGlReUxzeHVCWkFNU3VvTGFCOExxSQpuL1dwNStYWTJQQnEwdFJQMldZSXdpZWRNK2xIQXhDM0RnRklvMC91UWgvR0t2eDB1d0JJRGMrMWZqYmZjbkN4N2NSNmp3a2dDQWNRCkdvZ0RTTU1RTHdocEhzSXpobnRzQUZIWlppOEFNc25DN0NKK1FCcUE2RHdIRUx4SG1iOGRQN2xwNHVFaC9YQUF1ZEhIM3VuYnF2clkKQUNMOUVJQlUxOG5TRHdMSTBvK2lEd2NRNkVjREVCd1RnQ2g3QkpCSkgxbitpVkxKaHlwQS8xNEF1ZEVuTENwWUpuM213eUpNUHh4QQpaQ0NnanlOczZUc0hFT2xucndEQ3d2N3B1VEFaeUFhUWJJUnBCa0lBa1lFWWc2S1F1cTBZUkxYRFpPcTJveEROUUlKQk4xU2FiaVlnCnpiZVNWblFEOGRYeVprZXM3VUdDUXJ0c2lVcEdCZ2JabDN4bnpGVmpLaS9TV3NBUWtoRjZUWWhIWTVBWkJpUDlqTld4MGx0bWxwbWMKVHJLNmJ4cU0yUGxNQU9wSEFJbi9MWS9UbG42U05QZGpqLzdJQ3dhOWd4Q0FhbS9FWk5qZVA2d0ZaazcvYVBvaEFJRitJS1NmWTdRRAowRnpyL3BsbTJ2d1FBZlRCUk5YNzQ1WHZqVldJbThCZmFQanNYTnYrYzkxaUh5QUpvQU9YMmptQVFEOUhwWDVrQzB3RjlVTngxYzhmCkFOQ3BlVEVNZEhyVFg3bmpxYnplQ3d3U1JhRGJRVFVTSkJuVWREK0VnMEY0NHpCNTd6QitHM25ieDlRTXBlSDNrSFdMRmYzMktkYmQKVmRsdFZvV0VPSlY0a0RzYXBPUlg0UmhlM2JHNGczTGlWUit4aXcvZnk4Y1ovTWJVdkxPNFA0eUZIb3MrUXhaOWhtVkd2SytITVVnZgpTSi9kOEhMb0I4SjM5SEVNTlVzQUlYMXc1eGowRGMwNFU2dUxBOGdzSk9DMWtKY0VjTVNORGYzRVVEOVc1OHZXRDlLSEEyalg4Zy92CmRta0E0dlN4M1RQZmk3RjZYZ0pBUWo4THdqMFUrTGZ6Mld6ei92bVdJeXVkZVZ1ZXdtMEZJTEY5dVdVZzBFL3R6UkFIRURjUUhXczEKSVJORGlrU2lrK1VhdlhVbDlITW5ZZEpuandBaUE1RjQ5Z0lnZXU4eXhjT2pHbHZNUUc3MDRSTS90bjVNK3ZEcUM5SkhLLytVckVWYwp5ejhJSUI3UUR3Y1E2QWRDK29FY25ZMFNnTXJreTdKc002S1ZmNUErR29EczVsY1cvVEFBT2ZWakF5aDcrUWYxWXdKSTZVY0N5RlUvCkdFUVAxbjQwQURuS1B3eEFXZlRqRGlDTUxBS0ZzeGlvYWkwRzBRd2tHU1FBUkFZaUJpR0F5RUEyZzY3SElKa1loQWFpUnBpNVhSQVoKcVBWK0hPSmlJT2Z5K0N6RDBka0JCRmJBR0JKeUtRdVpJZC84ZmhpNWxvdVNocFBzTHB0R0l2bUhwRWsvNkRZQ2tLWWZHbnkybG05WQpHLzlZWFhiMkRtSURxT1o2bFBSREFLcTRHb0xROUEvcVI0dy91K2xIQXhEbzU2aTEvdXZBYk11K2FUSDlZMDlBaS9KUEZlaEhBT2g4Ci9VZm5HL2VkYjk5L3J2TUE1a0xId2NzZGh5NTNRNDVjNllFY0hldUY1SXoxUVRUM1VMQUlwT2tIampsM1RBeTVBR2cyVWpnZktsbngKbFcxNHlxOTJWMXpyQVFOVjNmYlczZ3pVM3c2aGdRU0Q1T293TkJERzJqTmFHY2dlREdJRFlSQ2dUK0JkUHdZTmhDUlNkeFl6WXRLSAp1SVBpd1pJU0pTejJKN1FyT293N2p2T3U2SEVVZTBUL1N4eG8rc0VieUtCK1RQb0kvYndhSXYxQWNFdEQzTmNuMDRBekRmU0lnaVh1CnlHZnJKMDAxSHJQYnBWVVI2TUlKcVlOcm5wWGFtd2x4WTIyaG4xaTEyTnljYis5SlcvczQ2Rk82RWNSa1d0ek82ZU9ZOVhGemowdmgKeHdtZ25Qa3VpTkRQZkNmUzU3QmFPdER5NlV6amdZVldVZjY1NmluZTlnS0FJQUFnQ0FjUVJpc0NRVEkxeGY0QWdBUjM3aVEwQURWbQpqTzRlTFp3NzlJUFQ5S01CaUw5M1pkSVBwNDhyZ0xoK0NFQm00WWZHNGJVdG9OQTlobjRVZ0RUOWFBRFM5TU1CaFBxQkhKbUpBSUJPCkxvVXlBWWpyeHdUUUx2cXhBR1RvUndGSTA0OEdJTktQQmlCYlAvTmhVejlhNTRzQXBBejArd0ZrNmtjQXlKcnVEREVEaGFTQllxNE0KUWdDNU1TZ0NNUmxVZXpVQ2NXR1FCQkJua0ZrS3NwcGlHWGROaENDQVhBems3SWp0WVRZb1F5d0FhUXh5UGNsaFpHTEkxVWJhUXhiNwpXb2owd1dqRTBSN3lXS0pTQTBDa0gvWE5TLzJ3dS9Ody9UZ0duMDBBT1Eya2wzOFFRT3B6TU43NlZNNCs4NzEvY1B5WjlKTzcxS3VhClg3S01UK1dmejZZYVA1bXArM2k2RmlMNlh4TzFZdjNYbFNxNUJXTER4eGRhQklET3R4ODRKM0x3WW1jV0FPVk9lbHlUUCtVOU5lMHIKbVBGRENtY0RHRGd1bWd0UzZEeEViUDh6R3l5WkMxSHdUTkZzVkV3T0xZZ2Rva3ZXdTh1dWRwWGY2SzI4M1Z0encwOEdVcVVnWENILwpLSTQzVDhYN3AxSWR5TjQyMnJsVUVOempmNXYydlVuQlY3clBMcHpFYlRETm1EMHAxWm1TRTBWaDBUc1R3WTNGK2ZPMTNoWXJPTm5XCkVjdTRHSHEwK3dHck9Bby9vMEFmdVlXNm9JKzhCYTlOSDZVZkNTRFVEOFNOUG1wZmNwZFpaa0FQYmtqajJENVlyR2szcmFNdWx2ZFUKR3U2bUlQVjNraGhBRHdYcEk5MmpVdWxZM29qenpqcDlTdFlERUpNK2hKN2ZSWjlNQnNxWjc1SHBPalluTmp3VWN6L3piVUkvYzYyMApkT0RJVW52ZVJnL29wK1NxQTBBVk96NE5RR2dnamg2ZUxPNFI5TUZHbUZSTzltQWRTT2puZHR4d2o0cjJQa1BKeENEdC9ONEJwREdJCjNJTTlmZnVoN2g1YzVLWEduTTJKSDVNK0JDQnFlekg5S1BkdytoUXVoeURaNlNQNlgvTktQemx6UGdnQTZQQ2tMMjg1REFBcTNaTHoKbDVzUk4vZEVyT3lWUGlXcllSSGRQWkhpNWJCTU52cjhYZ0JwK2tINjhHTmswUEVKdjZ0K0NFQlo5TU1CZE9paTUwKzQyZ1VBaEhFQwp5TVZBbGFzaW1vRWtnMktVMnMwNHBHNHJBVUVBY1FhUmdjekphQWpxQnpGRUUwS3NJS1R2RzlSeUwwRXJLaDFiVUJoVFFic0JTSzhKCllUcGx1cDZsOVRoaHhCamttQmtpQ1pHUXlDSldkQmhsSnBIUWtxdDE0Q1ExdVhpM3E0Y05Qbk82aVN1dVBmVnM2NGN2WHFYbVBkNzQKZ3IrSjRQZ3p6Z0JoN1Vjci81UnZCVTBBa1g2MDVoZm9CNExOTDlBUFRqQmcrUWNBaFBwQkFPSDZMOURQbnk5VmZIQys5ZU1MYmFJRgpKZ0YwOEh6YndZdnRKb0NPalF2OW1BQTZPZVhGZ0g0SVFOeEFQQnhEbVFCVU1oc1R0YUk1ZitHQ3QyaWx0MlNqcDNTbkd3eFVkYzBMCkJxcTdGUVFEOFhhWUdJdCtHTU5iWjhoZW1ES1FWUW9TdFVCZTB2Tzk2YWY0M3c0Z011QWcwdzZaSm4wdzhFc2FnQlNKakxvT3h1cTcKTWV2SVVSNjJtRXRGVlhyZ1c0Slk5UjdVRDRUUlIraEhpWWVsNytXZ0xQd01ZWno3K3VBOTZkUzJuQnA5TUdvc0Z6Zk5Nd0JrWGl3MQo5OVRkVG1DdzVNT3JQb0FlU29VWWJndnhuaGU1aCtoVHZPYUh1Tlo3TlAxa2NROXh4enpEQVFUNmdSeWU2eENSQURvdzE3eC90Z2tBCmRHQ2hOV2UxSTMrekYvUlR0dVV0MnhGQi9XQVhyUHA2b0pveGlEZkNOQWJ4Mm85ck5TZzdnQVIzYnNjMUFEVmtqRTRmRGhwKzNKaGgKMGxsN2p2Rkh1ZWlIR3dnQlpNZE5QOFk2THpic3JCcWordTNlTlBkWStnbTc2Z2NCWk9xSEFBVDYwUUIwZURvTUFNb0hta2dBeVJkbgpKTE4rRklBMC9aZ0FVdm94QUdUcFJ3ZFFkdjF3QUhIOVFIakRTeE1QR1FpUFFULy9Db0M0Zm13QWxjNEVtWUdDWUNBTFFMYUJxcGRqCkJDRE9JTXRBVVlobUlFak5WaGlpR1VnYkRGTHJ3aVNHbW02UWZuWXhFQUhJM1VCWlY0ZVpKRExwd3dIa1lpREpDQW9aQ0JmNDBNV00KaFZlSnVJUjA5MlFIRUsvdVlQQU1jWWZyQi84V1JBOEZ2bHR4eFhVTy9kQ0tkMnR6RGtzLzhCWW1BVVRMdm1qOG1RT0l4cDlSUDY0QQo0czB2QWhEcUJ3R0UramtzVjc4amdENmRiUGg0dWhxaXhwL0hhMlQ1cCtyUGx5by92TkJoQWFnVjlIUG9RanNBNk1ERnprTlhPZytQCmRSMjUwblYwckJ0eWJMd25aMHpreEVRZmhPc25iOXFYSi9XenE0SDJBaUQ0aHlNUC9BWHp2c0lsVDlGYVgvRVdYSHQ2S3JhOWFLRGEKbXdFSWJSU2tKcVBsNmpBc0JlRklrSE1xeVA3NWl2dnlmcFBXR09SbiswTFJycGhxYnRxcUVtbWg5V1ZCNjNZclFWeHJsckdpMCs5NAphUFd6TlBmWXJTNm1IOTd3c3VoamlJZjJvMkkzWXhHYk1qd2JnblErSFlSMFBCbFFNODZQSGVoeEJSQmJPeTNwYzE4RUt6M0VIVHdtCjlOVGVpbE1xYjhRd0ZkZWo1ZGNpbU5NNzRZcWRrS1dmME9tdG9BWWdwQS9waHdCazBvY0FwQlYrWExrRDBIRnBmczMxUUk3TmRjdDAKSHAyVitwbnJPRFRYQ2hINm1Xa0VBQjFlYWN2ZDZDN1k3QzNkOUpSdDlpS0FTRCtpQ3lhRG85QmFFWWhIWXhCMXgvQ1hiQmhKNVdRUAplYWpoVnN4d3orNEEwaDY2QWtoN2d2bm51S0xIYm5peEd4cGlUUHBnTW8zNzhLMHZIVnRBdWRBSFl3T0k5RU1BMHFvK2VJejZPVEZuCjZ3ZHlhQ3BFQUlLL1RzeGZib1F6MEVjSEVFREhGVUMyZnB3QVl2cHhBR2hYL1JDQU5QMXdBSm42NGNFV0dBTEkxQThDeU5TUENTRFUKandOQUdBS1FYQTZtREdRWGdaWmpGU3NSRFVBV2d3U0F5RUFhZ01oQXBCODgxZ0FFRC9HWTljTEUybmkrV2w0ckF0RnlnMzhSUUJtVAp5VUJPQUtHQk9JQTBBem1yUkp4Qmlqc2FtRElCaUE0MEp4bUZKVlgxSVFEaGQ0ajZFVzBYRndEaDFMTmo3UVlDcUZHOE95ajZXTFBQCkt2cnFkd3RBMmd4UWRnQ2RXT3loOGc4Q0NQdGZyZ0FDL1NnQW5lLzQ5T3RXQWFBTExZY3ZkbVFCMFBIeFhnMUFxSjg4NlI3TlFDZ2UKamlGRm4vbVFTQVlBbGM3NElRQ2c0bmwvNFpLdmFOVlR1TkZidU5WVGZsWGNMd3dOSkJua3c0MkNzQlNFQnBMM1QxWHRNTm8yR2w4RApGQTRnT01CanYzV0xGZE5BL3JkcDE5Z2JSMWx5d3BvUWQ0K3FMY25ZTFMycnE4VktPMDc2c1BONHJORkg2bWVRNjBlMHVzQTljaDVmClJPM0dLWUwwUWYwUWdNU1VqMEVmQXBEb3hVajY4SEZhVndDUmZzZzlOVGRqR0UwL1FCOU0rWFpReEFrZ0NOR0g2NmRvVlMxcno1UzkKQUlqRW85RW5aN1lib2dIbzBHdzdBZ2owODlsMEF3QW9aN1VqYjZNSEFGU3kwZU1Lb0VvNDJQRnBBQ0lEYWNQUkpDRTZ6OGVHQklNTQo3dkNBZVBZSUlQcWdwY1hVREFLSXJNUEZBODgzNllQbitaUVBML2xrQXBCSkgxbitpZXVkTDJ2VWh1LzZ6ZmVDY3FPUEFwQlovaWxZCkNoS0FTRDlaQUhSczFvc0FPclVhNVFBeTBLTlN0aDRtQUJGMy9yMEFNdWtqOVJNeTZRUEpueE96UGh4QVp1MEgzV09QQWJrQktPZUsKM3hWQVp2L0xBU0JNeVhUQXFnTUZwSUhVcW5oY0dFOTFvSXFWVU9WcXVHb3RBb0VEUEFiM1dCSVN4eGFEeEZSUTlXYWtaZ3U0STRhQgpsSVMydzNVN0NrUE9ZYUJJL2JWdzR3MDFINDBiQmNtbDhwSG1XMUUrR0VUejBXS05HRnR5eVllQm5EVWhlemlhK21KYWE2eWRwUU9FClpJVURpQWRYOFZocmVSaUR6R2FaQXBNTkk4NGprejdtU1NkMzRLSDY3YkpMSWhaNVllMUhxeTBwOXp4TmRjTUY1bmsvZkEvdGoxUHkKZnM1Sk9NRC9PamlBaDNDU2R2WGdINnFjYngvd0hoRkRCdkh4Wjl3T2puWkRvWUZRdXZVcFRrRGovb2VGOHZidnBKOFRLMzNIbDNzaApPVXM5cUorRDh5MEg1cHF4akkvVFA0SStVelVmVEZYK1phTDhMMk1WNzErcStlQkN3NGZubWo0KzEvekorUmJJdmd1dCt5KzJpZlZmCmx6b09YeGI2RVFBYTc0YUFmZ1NBSm5vaDJTdEFyb1VmRi8wSUFFbmxHQ2xaQ0VPc1FwRy9hTTVYc3VncFdZVFAzNzFsVzMwVjF6eFYKTjN6U1FOWk9pYXdkUm5zRlFlamxSRnkyUkt2NllscnJrOEozUmhBN1JUazNDaWNiOGQweThRQlhtUVcrSFlINDN3M2o1bEp3Z0dlYwpXMnZhZTFENTM0MUNmRy9oQ1NQZU44TVllRFZhMzRBNEZuazkzQWZjRWVpeDc3eUwrNCtyZW85NmNRNTBQdTN2ZUpJbTZOZ2xIK3QrCjR6amxZMDQwOC9ZV1AxYVh5YnY5OWJmVmFETWNOTnhKdzBITmpUaU5PYnZPK2xqalBtR3ErdUI2UnRyU2s4SmYzbXFYODFVdnBIREYKanlsWTlrRk9MWGt4cmcwdlNONUNIOC9KK1Y3TWlZVnV5UEg1TGtqT1hDZmsyR3dINU9oMDU1R3Bqa05UclllbjI0N010QitaYlQwNAoyN0ovdW1uZlZOM0IyY1pqUzIyNWExMm5KSUFLdC9vZzVWcytTTVZWZitWMkFGSzFFOFRVWEF0UWFxOEg2MjZFNm0rR0cyNUY2bTlHClhjTk5nOUhPNjVHYnB0YkR1L3JOQk8yaENnK3Qrd25xMlF1R1RObVlCbko3QnhQaEg5NDRnNmoxU2QxUHF3Y3FsdjdoM3Q5OEEweCsKMnhQZTgzTGRGYk5NR0NoYXRCN0JGSzZGS1FXcktxZFdRcEQ4NVNER3RlY2wzRFB2UFQ3bndmSG5vek9lSTNQZW8zT0JnMU9lZytPKwo0M1Bod3RXWUFKQjhsZUpic2FrZjF3b1FjU2NMZ0p6dXNRRmtGbjQwQUlGN2VFN05CekhnSGt6ZWJKRFhmbmlvNm9NQXd1VEFmK3hFCk1HYzg0QmJWQXVQMEFmRm9EKzBoNktMSkFJUUFSQWJTZGdiU0FNVGpDaUJwSUJ0QU1uWXBDQUJrTjhLdWlSQjZ1SWRvcnlBd2tEVWkKN1FBUVJCWXExSW9EeWFDWU5SYnRBSkE1SEswWmlBTklNNUI3R0lBY0JqS29wQ0s3RzdRSkhtZFFKaHU1R2dnQWhMOEZ2c29yb3BoeAp4aXNsNzNOUjFRY05CL3FCcjhnZEJKRDh6MVFQRVVBNHpHaStsVmp2Ty9CK0VXWDZVYU0vSEVCOFJZeDJlY0JyUTRGejhSZnBSd01RCmx2RUpRQjlNVnI4L1dTRnUvejVXaFFENjZMelN6NmVXZmc1ZUZrdkEvaThBcUdRdTRKcmkrWUNOSkhIc0wxN29LMTdvS1ZyckVoL0IKNFFxMDdhM2M4VlJmOTVHQmtFRnFoYnhrRU1TcUE2a1hGU3NjMmtWQjY1V2d6d2x4RE9IV0NlYnVVQmorcXhhSjdLMDFuWEhveHpLUQpBejJVUG5HZjNRRTZGbmsxaER1UE8vVEQ5eDhYSHcrRWZqUUE2ZTZoSFlmZDlHTzJRdXlMMzUwMEJ4QWV3MFdPNk9OYzVHVlAvRGdiClhrSFNqeVo3RFVDb0h3SVE2b2NEeUtTUHF2M005NW9BeXAzcjBRQ0UrbEVBbW01REFJbk10QnlZYWQ0MzFiaC91djdRWEZQT2Nuc2UKQTFEUlp0L3BUUzhDaUF5RXFkN3hRemlBMEVBbWZURGtucjFHYkJtdkFMU24yUG9SSDdjeVJXT055OCtkaGY5R1p3SGJudlZ4MVkrTQo1aDVGSW40TEZEN3hZMDcvaUFFZ3NTR0MwZzhCcUdBMUpHUHJ4d1FRSDNrbUFPWE1lYkQyUXdBNk1ObDNhTUovWWlGVXRCWUhBTUdMCkUxNmxhangvUGV3YVBnQzBGd0FaN2drWExZVmtzdEVuaTM0SVFFSS9zL2FrTTZjUDE0OEdJTU05Z1dOamZobEgrWWZYZnN3QklGRUIKS3B6d3V4cUlWc1hUd25oTStYS1lkOEdvRjJZZGlNcVFaYUF3cEdvanJCbEltd1FTMllrNEdlUnFJTWRJRUswT3MwYnQ0Q0JtTVNnbQp3L3RpOWw1QjJtcDVpbGlWQXlUYXM0VDRoY29oSVpNK0NrQ09maGxkMjh6ei9GZk5yaGtXaHl3bnFRNFhQbC83RS9EN2NmN25DQU5oCmtENmFmZ2hBNW5zSDZLZjJSZ1QxVTMwdEFsRnpQMUkvL01ZWG1FeWZqUG5TZDlRUDNyNVJOYjhZZ0ZBLzJQeDZmNkxxTDJNVjcxMFIKQVByb1FnT1Zmd0JBbjFrQU9uUkY5Yjg0Z0ZBL0pvQ29CYVl0QVN0eXJ2bXlSMzkyQTFEUm5GODlRWlNDZ2dpZ292bnVVOHZkaGF2ZAp4ZXVpRkNUYllYMVYxN3pWMXoxc0trak1SemZjQ1RmZWpUVGRpK0lpZVQ0WVpQRmE5Y1dJdjhRZ3N6SWs0OWhBZ2UwbTVWNUR3bU91CkhEeHBhWWtEYXdqYzQ3aTFISXZqNU12Qkh1Q09qRTJmNS8zczNuUEtQUml1SDdhYVhVU2I3REhubXJVTG9mM3F0ZlJEOVI0cStYRDMKVUhqVkIrbFR0aG1BYUxVZlYvMXdBQkY5U0QvNWk1NTh3ejBVS3ZsUVFEOFFwQS9YejlHWmRnam81NGlrRHhqbzBIVHp3YWttME05bgprdzJnbnlNTExia3JIVGFBTm5vUlFHUWdKNENDbUpwcm9kcnJZVXJkallnWkFCQiszVHVHT0gzZ2VIY0oyZnJKQnFCNnkwQjBrRWs4CkdKcFp6QTRnUXo4Q1FMVDNBWVFNeFBXakxmaXlCNTgzUkI4S285VitMUDBvOTNEOTVDMEZJTHp6UlQwdjJmWVNBTUsyMStGWkFhREQKTTc3OUU3MUhwd01ud1IvcjhtNjc4aVVxQjlSMDk3RG9RejhhZ0J6bEh3TkFsbjRjQUhMdGVXVUNVUDVjSUJPQXpLRWZRejhPQUZuMApFWEdkK3pFN1h3Y3Y5R0grVkRBV0tCd1BJb1BRUU5RTFl3WVM2OEl3cDVkQ2FDQUtCeEIxeHlTREVFRFI2czBZR01oS3lKb0hpbUZmClRNMEdTUU1CZXRRQ01kdER5a0RXVW5sKys3QW9oRnJMQkNDWnFITTJ5TEZPM2xWQ0NDQ0tLU0U5MWo0dXVvUU1LcW00bG91Y1dERi8KbFJkMUxBK0o2NSsxbGJBazFGUFJ6ekwvbkE0NTZ3UGZLdnZ2c3RHRGFYa1F0L2V6bDVNVDV2dUk5Y1lSNFFDcTJnbXJxV2RMUHdRZwp0UTlLaGsvRzl0YlBTMG8vdEkzYm9ibFcwczluMHcxSW53OG5LOFhlUCtPVmZ4bXIrc3ZsbXZjdjFRa0FuVy84K0VMTEp4ZGJFVUQ3CjNBQjBkRUtWZjQ1UDlrRmN5ejhTUUo2Q0dXL2hyQThpVzFjaThwZ05QdHVsSGF6dXVLUm96b2RGSU95RlNRQjVpK1o3OHhlNkNwWjYKeExxd3RkNlNqVDVSQ3RycEUzZmt2dTdEb0lTQVFXQWdDRzZXaURjUkl3YkoySGVWNXhqaTdWSHlrQmtTait0SjAwT29IM2xHZTVydwpEUmpJbkRuVGdyMHRiRzlCcUE5TDNTNXJ1SWRFYnBWOE10REgyaXZQVWZMaHIxWFhsNjYyckozQ1cxM1U3Y3FrbjlJTmY2YTJGNFZlCjVQa3JIb2hXK0VIOTVCdnVvVmtmc0k2cG54T3ozZGoyY3RXUEFwRFV6LzZKaGs4bjZpQ2duK05MYlFpZy9QWHVndlVlQkZEWmhnY0IKUkhVZ1ROVjJvRW95Q0FERWs0VkJoS0c5cE82NmJTQTRvSWVJSVpjbytpZ0FhVXN1SUNadU12M290VGpwb3dCRXN6NmFleGlJQlhybwpSaWhVN2M2a0g0MCtKZXNoakxQdGhmUUp5amdMUDFJL2tOeEZlNk5udnQ4UEFnajBJK2d6NjRFY25QSHVtK3pObVF2a0xRdG1pZTAzCk53THdLcFd6K1JrclFMelN3N25qcWg4TlFFdy9Ob0N5MDRjWGZpejlDQUNoZmppQVhLZWVzd0NJNjRjQXBCVitzZ0hvMUJVL0dFZ3cKeURKUThaUWZETVFYeHVOWU5ES29iREdJQnFLZ2dTd00yWDJ4cXJVUXBISTlrc0ZBQWtCWUZsSTFJYXdEU1FEUlEyWWczREtSQ2tJeApCSkJZbzJTdHQ2UjJXSXU2eHg1TkNGRmZ6STRtSVRJQktjSHFGaG4wa2NsRUpkMDl6b3FScmlXTE8rWVpNNWFCUk8wSGY0djRLdVo0ClhQNWVPb25mcWxoeExhTFEwM3cvSnVsajdlRnhMeTZIUnUxOU9OemVSQndWSUFRUTN2VmRLLzl3QU9GMWduODRwcVh2WXZCWjZvZDIKTWFFMUxLQ2ZUNjE5bno4YXJ4QmJQK1BpcjR1MW92OTFvZUdUQzAyZlhHeUdmSHFwWmQvbDF2MVgyZzZNdFIrNjBuNTRyQU56Wkx6ego2RVJYemtRMzVQaGtEeVIzcWhkemNyb1BramZqZ2VUUGVrRS9Kb0I0VE90a2lCaC9SZ094THBqMzFGeGZ3YnhIckF0YjZTdGE2eEhMCjQ3YzlwNjk1cXE2SnlXaFpEYklOVkg5YmJKYklCNFBncDZaZWFmWktNZnYxd1B1ZVpxVXdPNGtNQU9ubEhPdU1lakt5eGl6dGFNRy8KblViZnNMY2xnNlZRN0hPbDdFclA0eVNrNVdFSzAvd2d6ZE4wUDRWcHZKZFVNV3M4K0ZxMWxuUnBhN3M0ZXN3ckhCLzBRZkZrQjVBcgpmZmdySFBVRE1lbGpkcmhNOGZDQWZtUTZqODkwUUhLbTJ5SEhwdG93aDZkYUQxdTFIOURQdm5HaG44OG02M01XVzA4c3Q1OWM3Y3hmCjdUcTFwZ0FrNUwzaGNUVlFKVE1RRDY4R2NRblpzdG1iaDdoNDRIanZBTUtHZTZiWVAzZm5RL2F1WlE4NE82UDBRMU9NR29DTWlxQmQKK09IRGp1WnlkOVNQU1ovaXRXQ3gyQkhLcEkrSVNaK1RpMzZJU1I5cndSZm9wdy9wQXdZNk9OdTNmMG9FdEhRS21MSVJwVGRlL0I1SwoxekpGcDArbUZLK0VSRElBS0x0N010TW5rRGZyVi9TWkNVQXl1U2VEZm55R2UzeVlUUFF4bTE4S1FQbVhmV0FnWkJCdmgybnJ3c2hBClpRdWgwNHRobnZLbFNNV3lBbERGU29pR2hCQkFGV3RoTkpDTTFoRlRNVmZJODlZWWI0cFoxU0FhRElyZzZCd0RrRDBTeEdhRFJGTk0KbXcxeURnbUo2V0F0bG9FY2xhRXNNWkhFaytrNUpwVmNvN1hTbEpZczZPQ2ZURSttTTNnQUYxRnJ4aGJSRTJ1NkY3WHBjOC9lbEl3UApIdEo3amZXV0lTcEExdlNQWFFHeTNnNGM1WitTOVl6ZEFWcjVoVnY0Qy9wWWkzZ1B6cmFRZmo2eDluMytjTHpzdzdGSzFNOTdGK3JmClAxLy84Zm1Hejg0M0VvQStzd0IwY0x3RG9nRUk5WFBDMGc4Q2lQVERBZlJIM2FOU3N1aERBRmxGSXdFZ09Ga3c3eTljOEJjdGlyWHgKaGF1aUgxRzgxVnU2M1Z1eDdhMFFVMEZpSlk1ek94YjMrV2huTlVoSnlPeDdFcFNaaFBUYWpJTXlqRHU5Yk1OTWZFS2ZtSzlIU05tTApDaFYwckFLUEZzczlObmQ0ZUxGSERmY285eVFobkR1NGVnc1hjUEVkQ3pOOTBPZEwyUjBMdTl5NlhlQWVYdnRCN3FCMVhQVUQ0YURuCnIyb0tMLy9rTGZkeC9XU2hqOFlkL3ZENFRKZU1RejlISjFzeGh5YWJEazgxQTRBT1REYUNmajRicXdYOTdKOXVSQURsclhTQ2ZqREEKYnRHQlhkY05oS25jQ2tLcXJvYTBtTlVnWkJDbmo2dVE5RmpvSVFEaFF6cldJOXhENGU4L0l0eEFXdlRYZys0ZVZleGgraEVBc3JjeApNMkpOZzlrdGZvejFNRnZiUzlOUHNkZ1BrM3BlUkorQURHdDdTZnB3QURucEkvZjdtZTJWRVFBNk5PYzVNTk83YjdMM3dEUzg1SUlGCjYvTHVLL0lscWdBa2lHUFNSOFNFam11VWZoaUFuT1VmQjRDeXVJZlR4OUtQQUJEcVJ3T1FwcDlkQVVUNjBRQ2swU2NUZ0FLdUJxSmUKbURTUVdCZUdLWjBQdWhySXFnWUpBRmtHQ2tJcVZxTU1RTGFCc0Naa0FZajF3cmJGM1RPSVJNWnNVSVN2RG9OZ2NWVXd5TzZGcVpFZwoxaFNMV29OQmFqYUl4b01vaUFPSXdTQWRPaGlycG1KOVFOK05RYnMrTGRONUhVTlVLN0wwSTVQaXY1ZC9iM2o1eEFGYm9BOEdBS1RvCmN6ZEc5SkhSMmw3MlcwL045VERFbXY0SlYyNkgxS0ozNTcyUTdKMXdNN1FHYU4wN0FranBaN1lkOUNPbU9CbUE4TFpmQUtBUHJsUlkKQUdvUUcwQkxBSDEwU2VnSEFiUXZLNEJBUHdRZ3Jmd2pBZVNCRk01NmkrWjhQQ1p4TUlVTDdpbGU4SXFJNTdBS2tFaElQc0Zmc0FoWAp4QjY0SUJWdWRCZGQ3UzNiN0QyOTFZZUw1TUZBdUNtTGxKQVlrWVk0YmlKMno5RVVvMlh6SGJMTHljdUhGSzF6U2lUaXh3Z2RyWFJrCkpPbjRqUm5FNDNRUHRtVTVldnJibnFRZ290N3pLTTNRSTQ1SlAxamphYmliQU9oazJxazVFOUNSTzVwK3FtOUVzZHVGRnpPNnNBRjYKdEVWZUpCNk5QaVhyUG93SmVoTkFwQitJV2ZoeGRZOVI3N0dEQUVMNmNQMGNtV2lCSEp4b0JBUEo4ays5ME05WTdiNHBNUUFFQU1wZApzZ0ZVdUNvQUJBRUFvWUZvR0lnRGlBY0JSSU5CbW9FeVJYZVBFMEI3b284YmdQaGJrS3VCekpQV00zY0hFTi9FTllOK0ZJRG9MUTZDCkJuTFZ6NjRBY3RKSFJDdjhRSElYZkpCakMzN00wWGtmNXNpY2FIc2RuTzRHQUIyYTZRUDlRUFpQOXdnQXpmbnlWd1dBckplbzk5OEMKSUZzL0ZvQTAvUkNBOWw3NDRRQWkvUkNBVFBxNDZvY0F4T21qQVVqamp0bjhPbkMrRi9LbnZFdCtNaEFDQ0tNQmlBekVBUVFIZUV3QQpLbDhPdWdCb0xZYjZBUWxWcm9jUVFOZ1gwd0JFclRHN0ptVE5SMU03akUwRmhTSDQyVUl4aUMyL2RCcklCVUNhZ1FoQWhvRVVKckpFCnc0MXJkbjJtOW9TTUJuSUJrUGhVVGIrOTFhNzNpQVlLWDJGRUFJTFkyN2t5L1VEYzNrcXc3UldTVWZxcHVCcFVXLzQ0Vjc4VGdESjkKTXVZQXd2S1AyTUxFQWhEcXh3VFFueTlWL3E4TGRYODVYdzhBK3VSQzQ3NExUUUNnank4ci9leTM5SE5vb3ZOL0drQkZpMEhYeURWZgpIRURLUUhJZVNCam8xQUpjRHJ2emxydnoxenNMTnJ0TDFydExOM3JJUUZRTnFycldKMGVrMVVveHVvbFk0NzBnM2tPRDdpclBDMEl1CjNWV3pkc2dxaU1RZzRoRnZxK0Y1UE1QMWc4cko1QjcrMThsald6OFFiSFZSdHd2MUEralJBQVQ2b2IwS1hYZHFkdFdQZUlsYUcvbFEKUUQ4RUlCUVBYZHRBUEVRZkRpQ3Q2Z1B1S1Y3ellzeUdGNzYyWFYva0pvQjJwUTlZeDAwL25ienp4UUYwWUx5QkFQVHBsUm9BMFA3cAoraU1MTFRuekxTY1cyeEJBb0I4Q1VNbWFLZ0s1QXFoaU00QWhBL0hoYUE0Z2swUUlIWk5FR0JSUDdiVW9oQUNFRDEzREFjVGR3Mk8rClI1bG45ZzRnYk9WbjBJOTRaNk9xRCsvMXUrckhiSUVSZ0p4dEw5S1BYd01RNnNjRUVPb0hjbUNxNjlCTUR3Rm8zMVQzSjVNOUIrZjkKcDlaQ2hSdGk2UW5vaHdPb1pEWG9HbzRia3o0bWdFejZTUDBFVGZyc1VUOGNRTG5UOWdZL0duMWNBWFJzekd2U1IrcEhMSGZYQUVUaQowZWl6LzF3UDVFL0hML2JsWHZhZXZPTExHL1BualhraHB5YjhCWk1CVE9HMHYyaUc3bjhrVnJ1VUxRWXhwNWRDRktEUGFaYnlsUWdHCjlGT3hGb1NBZTVBK0ZHMGtTT1JxcUhaYjdCS0VFVXZsbVg3b254RCtLN0pYRFZnYlVkUTc5NmhnMVNBK0lRU0pVcGlLWXZZNlcydEgKSEV3bUdLbGJHYmlZeGpGQ3hLS0xoMFBIUEU4ZjlQVThTZkMwUG81VFdoN0ZNTTBQbzVURys5R21CM0FtRGw4YjdxbzAzb3ZMSzAwYwpVM2M3UmpHYkNIZ2hnVlJkajFSZVUxdmkwcWZuMHF2QmtxMEFwSGpUWDdUaHczOStCV3NleXFuVnZ2eVYzcnpsbnBOTDNibUxYYXIyClkrMTVTSnYzNzU5cHhYdGZXQldnbW84bnFqOGNLLy9nY2kzay9VdDE3MTJzZmY5QzdRY1g2ejY4MlBqUnBTWXMvK0FBRUxiQTFBRFEKWk9laENRQlF4N0hKcnB5cDd1UFRQY2VudW5NbXUzS24rekFuWnp5UXZGa3ZKbi9XYzJyT2E2WndRYlN1ekFCclNoYUNab29XQTY0cAp0Q3BBY0Z5dzJBYzV0ZGg5YXJGTGJKTzQwVnU4M2wyeUlRYUR5cTcybEYvdHJkZ1dPd2FKRWVtYmZrek5yVUR0N1dEZEhiRk1ERmVLCjRXSXhtdUxTWHpiTzF4WFhzNktKSlNTemNhWTEwZFJEcDU4Y0ZtZXh2ZjQwRGNGNmp5cjVZUEJlWFhKQk8yKy9OdDFQeUZkanJQNU8KRkZKM093S1JCeTdiTk51TkxlY3JVMERIT2dPdlVoNXRRMmRLMlhZSUF5OWdlZzNMbDdGamZDMlRleWdGeXg3TXFhVStUUDVpTHdTWApyME55RjN0NFRzNTM1ODUxWVU3TWRsTHdJVGE4ZU5zclo3S05jblN5K2NoRTArSHhSc2lCOFNiSXZpdDFuMXlzL3VSeXpZSEpoaU96CkxaRGMrZmE4eGM1VDRPeWxMa2pCQ3VpbnIzQzF0M1RWZ3lsYjg1NWU5NVZ2K0NFZ252SXRPL0pUalFoOHdxbmVEbXVwMllsQU5LL2cKU1FnK0FkK2k4Yng2anEwTlVUekdZNkVRNTF0NjlnZzJTZG5ZdjkwYVJ0UnN4T0p3RHhWN1hBZDlaT3lGN3NRZHJmbEZSU0FJMytWWgpMTHl5Z2pmQnBmdmdzdHVoT1BRajZTT1NLN3BkUHN6eGVTL2wySUxJMFhrUDVNaGNIM2ErZ0Q0SFo3djNUNE9CK25EeDE2ZFh1ZzVQCjlZcitGN3YxQ3FrTFFyVW9MY1orakNwRllCMHJoY3RCRm51WDZvS2xJT1hVWW9DU3YrQzM0MFFQMDQ4MTlXelJCM044S2tESm1mVHoKSEp2d2FUazY3ajA2N3NjY0dmTkJEbC94WW5qbnk2ejZjQU1wQU9WYzZFVURTUVo1SVBualB0dEFVejVtSUQ4QXFIVEJEc2RRbVl4cApvUExWQUJrSTZjTXg1QUNRMDBBSUlESVEvd2ZEcXo0Y1FBMXl2MUZjZm1uVmdVd0cyUUJ5R01nSklCWWJRRTRENmVVZjY2RyswaXA3CkpjbThkS256Sm4xa1hNWERRL1JwZWhDQklJQWdjRUFBa3RjYlhUKzF0NklROHdKRDF4TFVUL20yWTFEVUZVQmtJTkFQQnhCRTFYNHMKL2RncnY2UitQcDFVL1MrcG44b1BybFJJL2RTQWZ2NFZBRUV5QWNpa1Q4RzhUOXpPd3FBUHhxUlA2V0lJWXRKSEFVZzJ5T1N4cjJEUgphd0dvTzM4VkxrNWRjb1c4TUZEWlZ0L3A3VjR3VVBtT01sRFZEUi9FTnBDNm01aGFNSThNRXN2bXJXb2ZpZHg4WFhFSnVkU0tMQTlwCk5sTEhlNmNQdGw5SlBJK1RMWThTR1BBMy8xeGh0MStseFFsQXFCOHJMdnJoQU9MNlFRQnhwa1B3Uld2cWg3dUh2M294cEo4c0RTOWUKNzlFQWhQcUJJSGVJUWJhSExQMFFnSkE3ZUVBTkwrcDVIWnRRT1RyZVF2bzVOTmF3ZjZ4eC8xajlaNWRyUDcxVUExOFBUaldDZm83Twp0WjZZYXdNQUFYM3dLd0JJVEo2dDlwYXM5RUVJUUdTZzA1c2lwb0ZFRVNpRGdWeERBQ0lZcVFNMWJlTUFrSWoxRyttMzhKZ0c0cFViCkhzTTk3Z0FpQXhudXNXZDlOQUNSZXpRQVlhbmJWVDhFSUxkYjRacTFId1VnTWhBSEVORUg5U09yUGlJSFpyb096SFFmbk80OU9PWFoKTjk3ejJWajMwUms1QU1RQVZPUTBrSHNNK21nQWN1ckhCaERYRHdlUVF6KzdBWWpYZmt3QWFRWkM4YmdDQ1BYREFXU08rNWkxSDlMUAp2cSs3LzNUc2ZBOFk2TVFsajB4djd1VStNQkRXZ1FTRHBuek1RR3pmVzFrTktwMFhIVEVNQW9nenlBSlFDSUtqMER6T1VsREl3U0RqCnZoa1ErcWRDbndsVTJJb0RlL01KWTJkU2JUeklISlMyNmowNmdMQmhwREZJU2tpbmpIWGhjZEJuRDg5M3VNYzhyOFdFRGdZdk14Z1UKRDZKSDBlZGVSRVRSUjN6VTV2cEIrbUQ0UllYY2cwSDkwQTBCVktkZ053RDlIK3J1Zzd1TmExbjAvUGxBTTIvZU93NEt6RGtuaWFLWQpJd0Fpa0dCT3lsWWd4U2hTT1ZETVJBYVlzNUlWTE52bjNQZldmS09wM2RWZHFONjdRY20rZDlKYS84VUZRcFJzMHhEN2g5cTd1MUUvCkJDRFFUOG1oT09rZDlSTS84MHZUVDhZVzZxY3RiYk1aOUpNY2JVZ0t0MmpGQVFUNmtRQUUrdUVBZ29xMlJBaWdNaTJ1bjFNQWhQcjUKZmdDaGZyNFRRRlVuUTJJSWROSUxBS280Z2dOVlorV2JMalFRWGpDNi92TUFmdVEzcld6K2ZhUkYzSzhBNzZTaG55eUdFaEtuelp1VwpPRVVxaWRSWEVjYmh3aW5EWlpPWU8vRnJTdkhMU3BGNHBKY2kzVHljYmltbEozYjhpR0drQkhGTDlLanVJWjFMK3FGVStxQisyTWdICjNUTms5TzJkenFRZkFwQTAvb0V1SFBWQ0ZZYzlHSGNQbi8zRVJ6NDduUkNmOXlCNmhIczJYQmk0aDhxTzJZQStHZUVXMEUvdXBqMS8KdTcxdzExVzg3eW5mNzdodzZMMTQxSVZkT3VtcGV0TUxWYjlKYUNDS3I0TEJlMUdNVCtYNSsxSXByaGw2TE9EQ251RmZrMGhVaVJqRQpCei9JS1JWRFpoaDlBMEI4bllzQXBFNTlwTmtQWGVkTWNvOUtIOUtQY2ZNVHZ1OUgwS2ZpZUFoS05BSGlVeDh4K05udHdYSjJ1eEJBCk9WdDlvSi9jblY3NFlyRUJ5QXlnYnh0SW9ROEhrS0lmSFVDU2ZnaEFzbjZzQUdTeDhkblF6L2NBaUF3RUR3bzNCcXoxd3dBa2pYOXkKemU2aC9sRVU2TUVoRUFJSVFnQmQzQndTYlExVWJnK2lnYXAyQnkvdkRXRVdERHJXa3hoVS8vYUtaQ0I0UUk4bEEzRUdzVzNST29BawpBK2tadSsyNGhBaERFb00wQ2VsN2cyUUpHV3Rla29UNHZoa3VvUTd6Ymh0MnlKSHA0OVpQTzVlL2toK2llSW1leHlUMzRKZ0hrdHlECkFYcndvLzEvWG9NSVFObzdiQk45V3YrOGp0R3hoQU5JTEh1UmZqUUE0VzRKc1UvQ2ZCU3gxQS9TaHdBazdsOXQ2SWZPL0tLOXo2QWYKS0hXakpUbmFsQlJwUEI5cTFoSkRJREgraWRoQlArbFJWMmJVbFJVREFMbHpZcDdjalk2OFRRQ1FxSENubXdDRVF5QWRRSHQ5RmZ2OQoySVdEQWNwU1A2Y0NhSVNpMXp4VWZXSmRsYmI0WlFMUWNYL2xVUjhjcFNxT3ZOcmJkTytsdDkxNGhyeTRmK3F2dllRaGtwQjI3Mjc1CnVrSDh0SGs2ZVo1NzZKVFhXQ0lNU1RDU2tFUmZvR1ZhNGFXWHZVcHcvYVVZSHoyaXYybTF5d0xpMmtzeGpoN3VIaElQUmZNZUxuVksKWGUxQy9kREl4NnlmSVhYTml5OTRxWHQ5aUQ3ZjFBOWY4T0w2d1hrUDZvZm1QZnJJeDZCUFFjd0o1Y1hzRk9nblBkUU1aY2ZhUUQ5RgpPODdpM2ZiU2ZSY0FxT0tna3d4VWVkeU5CcnA4SWd5RURFSURFWU1rRENHRFdwaUJFbUdJeHhIRGw4TlU0dERYZkJOQS9FYzlpZ2NCCmhNT2swdzFrcVo4V0MvZlFKYURrTlMrKzRNWDFneWU2cW10ZUNWYSs2TzV2cHNFUDZnY2kvUkNBdE9zY0RoaG5lOGtBeXQ3eEFvREEKUGFDZnJNMHUrSUx5azZHTDcrSzNtU01BZlNPMjFKVjQyUXVJTTJKazRSNlZQaGNPaHpBemV1S3AraW5iR1lJU0FZaU5mRXdBVXZXVApIeDJBTFBYRGw3MjRmZ1NBQ29NOVJhSGVra2kvVm05cHRLOHMxbCt4S1piRHhKYWd6WDR5MEtXZEFZZ2JpQU5JT2lURUdmVDJDamNRCnhhWkJ0QnltRzhpU1FaWi9RMHdTTXRJWHlKUnJraG9HdW9GSkVxSjNxSktFY0tFQmQxM3dTRG1XUE9MMFNmUkxHRWZQNlRBeUFLUzgKdDFZUE5qanYwZHlESDIzL2NSV2lBMC9idjY2cDlHbjU0NXFXL1BhYUgxVFVDZEFwK29GbzZ3OVZjdGdOQUVMNjBKbGZRSi9UQVlRVApJQTRnMEk4S29NSk5Md0FJQXZwZ0NDQ3VIdzZnaTRmVzQ1Ly9RZ0FoZlRBQWtHWWdmU0hzNGxFM01RaDNyVjc2MElzclltZ2dkUm9VCkh3ajllUlhqMHlCY0dxTk5RdXByejNJcGx0QmppU0dWT0ZMUzY5a0pmMlcwY0cwTGw3ZTA5RW1QdFBEYTh1OGJWUE8vcm1OTmZ3clEKV0w0VUc4VzJudXNOWXJSamlxT0hwRjcvZVVSZDdaTDBZd21nNzZFUEFVaHlEOWVQT3U4cDMrdUN5bmE5RUU1OUtFc0FJWDJnL0dnNwowaWMzYW9QU0l5MXB3YWIwVUZQT2hxMVFBTWhSc3ROZXR1Y3EyeE5ESURRUU1rZzMwSEVQR0FnWmhBWWlCbkVKRVlPYU5RTlpsa2hGCk9BcmluOXJOczUvVHd4L3AwcWNVNXc2ZWlvSFBFSWFrVlBvWVY2N242T0Y5TDMzMDY1eFp1U2NCZllhMGU5L0s5Q2svR29SVStsZ0MKaUF5VXRlM04yZTNPMmU3SjNQREN4NkxEZ1F0dmh5NjhIZUMzMnExNk95eHpSMDJoandRZ1JoOFRnUGltSHc0Z29vK2U3SjRoSXd2OQpjQUNwRzRBTThRd2dnL0N4cFg1RUNuMXl0ZGtQSHdJaGZmUTlRQWlnNG5BZkFnZ0NBSlZ2REpSSCs4VnkyRVlmR2toalVEK2tqWUxFCmloaHVETUliWXRjZWFwZStGZWU4eUFjR2VVV005a2ViR0JUZkg4MDJSL09UNUcrcWJ4ZFVDZEZqdmpTV2dFSHk2aGlkRlNWSmlBQWsKU2NodHBzL2ZUbklQVzhpUXFhUWZZQktnaHgxcFRHK3ljZmFEQU1MMzNLQWY3ZGlwdTRmbzAvejdWUzJMQlFWK1hJR0RDcDhBY2YybworMzdpZTUrUHVqQzhmelhwSjJmWGlmVEoyclZsN3JScGU1L2IwalpiVTJPdHlSR2dqd0FRTG9FbFJ6VDlSQjJnSHdJUTZJY0FKUFN6CktaYkFFRUJBSHl6UitBZjB3d0hFOVFPcGkxbVlwWDVPQlpDdUh6T0FCaStmOUZVZDk0S0JLZzY3d0VCbFI5N3lOOTBWYi9YVGRxby8KaUl2WFFiVWZCK28rRGRaL0hnSUdxZXRpTGVMcVFmcjlOS1NsTVk0aGxlL3E2d3FKNDlhUXhNVWpmUm43UTZUM0NjWUtsK3llK0pJcgpvWWZQZTVyL3ZNbHIrdU9HbnJHSmgwOTZ4SXZRRUUrOW1PN0VpNDhuaVQ2ZmhpRkw5M0R4U0oyeTJpWHBwK0trRCtMdTRTT2ZpbjA5CkZBK2hoK0x1Z1VyaEk3aG4wMDBWYmJnZ2NBOEY3c21KdEdXSFc2SFVVR05hdUNrejBwSzNZU3ZZc2hWdDJVdTJIV1c3enZKZEQxU3gKMTNIeHdJdFZIbmFCZmk0ZGRjTkhaQkJmRHF2WGFuZy9DRFYrR0tLYVB3eGpMYitPU0xWK3ZFSzFmYnFLY1FrUmpNaERmTEZNblJoWgpBa2o2Q1U4akgzeWdYWWRNdnlwSGdveGR6MFNmTDllMEs5ZWJZbWNDSmx6dGt2U0RaN21xQzE1V3kxNkNQaHhBbkQ2WVJKL2kvWDZNCjNDTk5nQUJBV2R2ZDJWdmRXWnRkOEduSnNYWmo2YmU5K0U4aEFIMDdlWVVya1h0QU9jTmFKdmNRZldUM0hBNVZIQXhDbHZvcDN4MGsKK3BqMHN6Mm91b2Z2K0pFQVZCRHI1OHRlcEorOFNMK2xmbmpTS3RnLzh2MWRCWUZ1TUpER29CNEloMEM0SDZnODFzc00xQWNaMHlDKwpPVm93eUxqcVNmd3RNaDhGcVFiU1RoRGoweURyYzhUb1lvbW5iTVNUQUtRYnlMd2k5azBKMGFZRWlVSFNnY1FTUXp6TFh6SWZPVXhKCjdtSEpYNG5GeGNNbVBjcitIcmFmRk9talpkQUhIL0NwRCtubktpMG8wQ0VINllNZjhhRENyNUppdkc4MkxYdEJ0T2FGK2lrOTlFSWwKQjUyZ244STkvYVIzQkJBT2Znejl0QWo5YkxTZ2ZzNEZ4UjZnNUlpNEEwWktWT2lIQWNnSjVjUmN1UnR1S0cvVFU3alZBWWtkMER0eAovVEFBOVdJWER2cWdpNGY5bUtWK1RnUFE4UkJVZXpJc3BkSkhCOURKQU9xbittU1lBV2hZUEg4eWNPa0VEcHpDUUFDZ2txTk9xUEpOCkYyNk94ck9YVVVJYWcvU0JrTHhEU0x1V05DNk5TZmNYNHg3aUpMSjhNZk9YcUdJZGtmSmJUSHQ2S09zWDRiK3ZXMDU2eExDSHhHT0UKTXg1NHZYRUQ2Zm9CMlpqZFV3ZXZTUzBRajZDNXBKK1BRNG5vUTV2VnBOUnR6cXAra0Q2WXV0U0ZJeDl5anlXQTFCMC9xQjlFRDFZWQpjeFlBZXNKMktDL2lnRUEvV2FHV2pFQlR1cjh4SmRpUUhoSHJYM2ticmZteDFxSk5Hd0NvZk50ZXR1T0d3RUFYOWp0QlAvZ1JBV1JwCklBUVFHWWdZMVBRK0htR0llMGd5RUUyR0NFRFNrcGswSC9yKzdkVWNRRHcwVUtMSVBVUWZ2RzZaNGg0VGdDenBRL3BCK3VqWE9iTnkKanpyNDBlZ3plRUhjQk5jMCtCR3puOE1CU0tKUDBWNGZSdUtoY25lNm9jeXR6c3l0THRCUHpuWlA0VUYvNlJ2dHRrSnZldWdmOTE4TApJRU0vTW9BU0RYNVFQeHhBakQ2WWhYNGdMaDYrN01WR1BycUJKQUJ4L1VnQVV0M0Q5WlBsNjRiK2tlZnpnb0VLZ3oxYVhVV2hidDFBCjJuNGdBQkF6a0FDUU1RM1NOd2JSS0VpN2RJcHNJR1NRQ2lCOFRBWkNBRW1ueWljQ2tQb1hCc1ZEYnlCMEQxbHRESklZeEFGay8vZDEKU0RWUW9zT0c1WHRyZkY3NkpUeWNLTWNQUGNVOTE0MmRIUEpYWW54NXk1UngxT0VISHJIVXBaMUVqUUY5Y1BVRW5pZjZtUFVqb01QMwpVc1NuUHRwSE9LS0lqS3VrSUlCbzVZdjBjK0ZOTDEvMlFnQ0Jmb3IzT3hCQXBKL3NIYkgrQlFESzJHN1c5Tk1NK2ttSk5TZUZtMEEvClovd05tbjVhUVQ5L0ZVQ2x1NzNmQXlDVlBwZTA5UytWTXBoS0g2anV6WWo2bFhFQW5ReFVDeUVSZ0lhaG1tUHhmSlZtSUhGeTNGRlgKc1RndHpuUHh4RXNHd294cGtIWWJEZlAySUNHaEwvMU52dzFBaVNURWgwUGNRNWFESW5wTUwyWjY0ZkcvQ0ZxR2VHZzdzNWJwdGFlRgo1cWExTFNua2pnUWdXdEpDQStHclVYOHBXdW1IQUVTaGZpRExwUzd5dXBxNjRDV3RlWEVBNFdudGxxdGQwcnlIR0NTdGVjWDNPeHZvCm9VQS8rUkZIZHJBdEoyUkRCcUYrMG53TnFldjFBS0RNV0d2dXBoMEFsQmR0QVFDVmJXbnR1RXUzWFFnZ0NFZEJRSi9Ld3k0eUVPMEgKZ3Vxc0RDUVk5RTdFR2NReHBCb0lsOHlJUG55eFRBVlFxM0xoNlVRLzIrUEZMMEJ2dWh5clNoOGprMzRFZmJRVTk5QWxvT1FGTDJuTgppd09vK3Yyd3BYNVVBS0YrVkFDaGZpQWErWEQ5Rk83MkluZlVBRUFabTk3TURXL3VUbThSL0FsdkJ5dmU5cGFkZFBGcEU0Y092eWt2ClQ2V1BDaUNtSHhPQUxEZjljUDE4UDRCUVB4S0FpRDRxZ0RBVlFLZ2ZCSkE2L2xHMy9nQjlNdGU3b0g5a3JYZmsrTDI1Z1M0bzM5OVoKRVBDQ2dYQXREQk1ZMnVndDMreURLcmI2TDJ3UFFCZDNCaXVORzBueXV5a1p0eFRRTVhUS05LanUzVldxL3NNVnJPSFhxNDBmcjFGTgpuNjVEelo5dmFGMmpXcjVjeDFwL3U2SFc5dldtbHJ4QUppMk5TU1RpTitFekxnd29Vbjd1MDZGQy91a3ZqWTZrSE5vWnYzeHZCT1Q2ClAyL3pXUTV1MmVHKzRUTWUvb3lzbi85NWpiL2JOcjN6WnZ0Rk1IaW0rZmNSY2V6NTQyckQ3MWNnZUlDUDY3K084TUdQL3A0YkR5Zm0KRTRiang1S1BRNWQrSGJ6NHZ2L0N1ejRNL2tKQzhLYWs3S1M3OUxpclJNdzJ2TVdIblVVSEhZWDdIcnpmdTdUeE9XMVRySHlKclQ4eApzSTQrL2prZmFqNFhiTUlKVUVxNE5UWFNsaGExcGNmc21WRjdWc3dCK3NuZWNPVnN1bk8zUFBuQ1BSMEYyNTBRUGlqZThaYnNkdUhGCjVjcjNSRVFmMC9qblNOOEVqZWpoaVJXcm8wRnhHNitqUWJCTGpTQ09lSktIck9IQmwxSDRqUFJiOUxXd28wRkJIMjAzTkVRN295OGUKOXBZZmVxQUx4NTFWNzdvdXZ3Y0dBWWE4VmU4N2FSUkU0ZEpZNDI5ZzAyRUtDQXVRMVZ3ckZzam9menB4aEpKZUo5TExpVjUxMXVQRwoveVV1MVdOcGJqN3BrYmIxbU55anZlUkVPTzloOFJVdVRoeTFXaEI1UEl1bExtbTFTNTMzY0FuaDBtM1YyLzVMYi9vd2NlVnVJejdSCkpOYUwySVY4VE9kNW1RRWt6WDVJUC9IdFBqRUhCT2lCaWlLaWdsQjdmdENSRjJyUENkaUJRZG1nbjJCamtxODZ5VmVWRXFqT0NqZG0KUjVweW9xMjVzYmFDRFh2aHBxTm95MW04N1FMOTRBUUk2SU1Hd2lyM3ZKZjJ1NkNxZys3TGh6M1ZSNzAxeDMxUTdVbC8zWnNCcVA3dApZTU83SWFqeC9UREVQY1RwVS85eHBCNEE5T21LL2VQVnRuZkRrTzM5bGRhM3crMmZidHMvWEcxNzM5LzgyZHY0MWRQeWUwZjNuNzAzCi9qMTgvYy9oRzcrUFFGZitHTzc3MTVENzMwT04vKzZyK28rZTFxOUQ5VitIcXI4T04vMG10bmkyZk5SMEFxeFJiS1NuYVlhdmF0RmMKeDdJRTYxeW1TWThsZWlUM0pMb3VsQ1NlK0x6bjdRaFc4V1lZS3o4WmdzcU9CNkhTb3dHbzVMQ2ZLanpvSzlqdnhmaWFGMWduWjdzcgpaN2M3Yjc4WFBvSjcwcmM3TTNmRjdDY2oxcG05NVMwK0dxaDRBMzltTHdRL2RUbUFlQnd4NnZLV0ZYVGlYVHdhWXBuRXc2d3p6Q3ZmCkg4TDQ0N0s5d1hoQUg2MVNzZTlucUVUUVo2Qm9zeDhmWVBBcEt3NGd6VDE2SEQyNTRUNHFKOVRMeXc3MlpBVzZvV3d3VUtBM3k5K1QKQ2ZUeGRXZXNkMEhwYTk1L1pLNTJrb0VLQXQwNEJNSTVFRVFBa2d3RUFOSU1ORUNaYnlwcE1RMlNBRlQ3OWdxa0crajlDRGNReFJuVQo5T2txcEJxSVo1WlFmSHhxMmlXZFlESmt2Z3R4M0VDSUh1a2RzNWpFR09JeHpmLy80NFpLSHc0Z3ZqMUM5OUNwQVBwbWZIbkxNb2srCkZLRW5FWUNrN1JUODZNSVBKNkNmeWc4RHBCOEVFT2dIQVVUNmdVQS9CWHRDUDNUSFV3UVFidnJCVUQ5SjRTWUVFS1JQZ0JRQWdYNDQKZ0ZBL1VPR09GMElBb1lFUVFLUWZGVUEwOVZFQkJFbldPVVUvbGdCS3hDQUVFTHFISklRQUtqdHdsK3Vqb0U0SUFLUkpTTjhiaE5FTwpJVEFRRHcya01XZ0VvLy9qaVNTRUdHcjc5eFUrTEtRU3Z1U1VTUTltV3Q1UzV6M2tIaU5wTDdQbGRFZXhqbHlOK2ZXcDBrZlZqK1FlCkdsNnErcmw0M0FOWjY0Y0JTRTdaNDZ4T2ZmaXBYZ1ZSTzQ1OHNJS1FQVDlveXd2WWM0T09yRUNyS05pY0htaEk5dGNrK3k5ekFPVkYKNHdBcTJSSUFzalFRQUFnTmhBQkNBM0VHb1lTQVFYckdXSWlQZ2xyZURUVjlHQUVrZ1lUYVBveTB2aDJDYk85SFd0NE51MCtHMjk0TwpOSDNzZHZ6ZU4vS3ZrWm5mcmkvL2VqdjA3czdCd2IzRC9Yc0hlM2YzOSs1dEg0MkdUdTR0djdrMy8vYnV6UTgzWEYrdjF2MCswdnI1CktsZ0ttRkwvbThWa1NBSVFUMFdQSllDVWVjOXA5RkduUGdtdkMyVTE3NEhJUFZ3L0NDRFVEd2RRc1VrL1BYeTdqOURQZGxmMmpqQVEKZk16YTltYnNlQUZBb0I5dC9OTmRjanhJQUlJZnVUUnFrcEpNODNmMUl3Q1VZTmhqQWhCM2p3U2cwdDBCa2VZZWlydEhBbERoUnArVwpOUGdCK3ZSQnBCOENrRVFmQ1VCQUg0enJSd0FvWTZVRFFnTnBBQklMWWJRV3Boc28xcFBBUVAwU2dBd0RpUnNMa0lINDVtZzZPd3dCCnBEUG8vUWdaeUJKREdvTUVnRGlERUQySlBNUVh5RXdNTXQrcWhnQ0VGMStYR0NRa1pKN3drM3Y0NDBUUG1IN1ZEQ0I0MDZ3enlIelMKbGwyWjhVakhJZlVRQlltamwzSlV3eVQzMEJHUnhJTUd3dUJUU1Q4U2dDVDlJSUJ3L0lPREg1cjk0UGdINlVQakgzSHZSZzFBL0pZWAplTTRYcm53WnN4OFJYZ0VJQVFUNklRQnA0NStFQUNyZTZ5N1c3eUZnRFNDVGZvNEdMUFdqN1FHeVNCWFBkd0pJTlJBTmZrZy8rSXpZCkVIM1FvU1VZcEYwcnFCTUFKTzBONHR1RHBKa1FHS2p4dHhGKzRoaHVtdVlla29hQ2xxbXZKZjZpa3BKZ2JTSU9Relo5U29uVksyVlYKcTFhY3ZXWHRIczA2Y3RYbXZUNm51SWZvSTdrSE4reERYRDlJSCt6Q1VUY21OcTFybFI5NFJjcGVIMzNIejA0blZLcnRic1pLdGp5NAowWWNlNEtZZld1M0tDOXR6UXpZcUo5aVdIV2pORHJabCtsdlNmUTFwL25vSUFBVDZTUTNXSUlCeUl3SkErVEViQUtoNDB3bVZiRGtKClFHZ2dqQUFrR2NoU1FnSkRiMFVOYndjd01GRHpXMUhMbTZHbTQ0SG1FKzNCbXdIeHpEc0JJOXVoeC82MnEvUFh2anNmcml3Zi8zSzgKTmZvbGZQK3JiK3pmcTJQL1dobjk5OUs5UDVmdi9iNTYvL1A2L1hmK3NXUC8yTXIyTDljL1hHLzlPbUwvZGRqeFlSaCs4dFQrZGdVcwp4U2Y5cGhLZ2g5YTJwQlQzNkxjNitVNzMwSUpYb3V0Q0VYMmsxUzZPSHA2bGZnaEFtbjVNTzM0UVFOcVdaeEVZU09obng1c1djV1Z0CmRoYnM5d0dBeWsvRXJSWDFJWkJDSHd6c291SkdUZUZPdkF1SGcxb3FmYjROSUJyODZQclpIU2dSKzUwSFNUOFNnR2p3WStoSEJ4QWIKL0FqOUVJQVNEWDZRUHFTZlRIOFg2VWNHVU5aeVIrYVNCejdtckFrRDVRVzd0Yng4RkZRUzdRWURjUVlaYTJGOVlDRE1QQWNTc2RzcQpXWndnUnNjSllhQjN3eEF5aUZJTWRBV1RHSlFJUUh3NW1TK0hKYngxbitrbWZFeEMydDRnbm9xaDd3U1FjbDZNNkpTUlR4dzN4bHR6CmZCS2ZrVktQU2Z6SVJNYy9pc1JEQm9JSGRiOE5xd2NlUE1Ed1E0dnBRUEpoQUFBazZRZm93d0VFK29FSzl0d0FJQnovY1AzZ3JtZWgKbjZnWS9Kd0xOa0FJSUdNRFVGdy9IRUNvbjd6dHVINElRTWFkdFBVbHNJVHJYMGNERW4wNGdMaGRjQlNraWtmcUZBQlZtdzJVQ0VEbAp4OTJsOEUzYjk0Z09YS1ZIK3IwdGFXOFFKcDBzSnAweVJtZU5TYWZRY3dsSjh5SHBVMHA5TGFtcHJ5dWU5QnFUa2lZOTMwU1A5bEkwCmRmblhRVWhlbVUzZ0hqNzRRZnB3L1ZTYzlFajBVZDBUcDgrQnQyeS8wM0tQc3hqL0tQVGg3dUg2MGFjK1lXY2NQVGp5Q2JSbUJwb3kKZzgxcHZvYVU5ZHJrdFpxVTllcVVRRzFxc0M0dFZDc0FGR3JNQ2Jmb0FJclppemJhb1JJeEI5SU5SSE1nc1JOb3R4UGlCaUlHOFlGUQpYRUp2K3VwT1JQVnYrcUhHRTcyMjQ4R1d3LzZtdzhHbTQ2SEdrNEdtNC82bWs5Nm1rKzY2OSsyOTc3c2VIZzF2UnE1L1dycjE3L25SCmY4MVBmSjJmL0x3OCtXbHA0dFBpT1BUcndzVGJoZkhEaGJHZDEvZjJsbTg4M3J6ZTkyN0U4WEdvOWROZzQrZmhoazlEcmUrSCtSdGQKMDV0ZVRUK1NjdFJuS0NZZTAxM2VKUGVvOU9FN25jVm01MFRYaGJMYTZRenhrUTlQcFE5VUZLZFB0NWErMDFsZi85SW1RTnF1NTA1NApBUHBKM2ZTa1IxMjVPMTFGOE9lYzlKY2RpMXNyNHJYMUs0NEhMRk5Ca3lpRWp2UXBwYmhIRDFlN0pQMlkxcndNL1pUczlFTUlIYVFQCjZjZTg1cVhycHlEV3E4V1h2WkErdlpDNjdJWGk0WkYrUkl3K3BCOEJvSnhsYjdaaG9LdzFMeGdvSjlDVkk1YkRoSUgwVVZDa0N3ekUKR1lRR3F0anFCUU5oWmdicE41ZzhoVUdtQThiYklUUVFaNUN5SWpZQ3FReFMzS012aEttNzZqaUFlQWlnTmlOWlF2KytidnZYTlVveQpVQ0lZcVNYYU01SG9lVnBjd0dNUFBvWW5WZUtjY21UaXh5ZnBFQmdYejIvaTdSYzl4aU9RZXNpeG9BKytnVGJHUDdqc0JlRytuMFFBCjR2ZDdwMHYraUYzUGtjYnpZVUVmQWhEU0J3UDlJSUF5TmxBLzdhQWZEaUJjK2NLS2FQZVBkck5KeTczUHFCOE9JRHpKU3dJUU9vWlAKZ0RoeDFGUU0vVlVBNFRwTDZhRlhiQmpmYzVjY2RJQ0hnRUVYampzVEdZaXZpNkdCb05vdkExamRiNE5RdmJibGd0ZncrekJQZ2hGaApxT25QZUkxL2pGaG0vcU1TUUFkZlhhemFMME5RelJmeDFwK0NUNkhxei9LQXh4STk1bVQ2U09LUkJqK0pBSFFLZmJoNzRpWFk0c1BIClA1dytKVEVQVmh4MVEwVVJWMEZJYlBlQmNvT09iTDh0eTkrQ0MxNFpnU1lveFYrZjdLczd0MXA5YnEwcXlWZWQ1cS9OQ05aRG9COGQKUU9IVy9FaGJRUlFNNUNpSnRaZHVPS0d5VFZmNWxodXEyUFpjMk9tQUVFQm9JTk1vNktDN0d2UmpWQU1BMHFvRkEyblZINGthanZ1aAp4cU4rMjM1LzgvNUE0OEZBNCtFd0dLamhvS2R4djZQbG9NUDFxMmZ5c0c4L2VPMWY4N2YrMS9PN2Y3NmUrRzM1d1pmbHVTOHJEN0RQClM3T2ZGaCs4ZXoxMTlHSmk5OW5ZMXR6dyt1dVIreHZEcmw4RjFscy9ETGE5RXh1TVZQcm9HZFlSTjJBMmtqN2xtZEhEczBDUDZwN3EKOThPWUJYMXdnN3hDSHdTSGhCNCsrT0h1d1FyajlBSDBkSm5vcytYbEFNcmE5cVp0ZFNSRm5WbGI3dno5cnVMalBxamtzSmNNcE5Mbgpld0FrS1VldDRtQUFLOTlQbFBXQ2wwb2ZEaURMcVk5Q256aUFPSDA0Z0w2TFBsb3FmZEpXTzZGLzVLNTBrWUV5VmpveTE3M1ptb0Z3ClF6UXlxQ2pzQlFOeEJobkxZVDFnSUl3WXBCbW9IdzFFRE9LTFltZ2dPcUtJUThYYklVbzFFREtvL3NNd0pERUlTalFId3BWaml6TUwKbExzWjZ6RURxUktTbnNTbE1kVkdxbnM0Z05BMEVuSDRwNFNlUkFzTitLUktIRkpPb2tnL2xIUk13ay9GTVNrKzhva2ZiS28rREtncgpDUHJCdzZ3ZmNnOHlDT21ENjE4RUlLNGZzZThIWnovaEJoVkFaQ0RTRHdUNlFRQ2hmdkozNGx0L0lIeGNzdHYxOXdCRUJrbzA3MUhSCjgvMEFxbVlHU2d3Z1BMMm9HMCthQXdCQjRoWUhoNTZLb3c0d0VNYlBGSk1XeFpCQk5aLzdNVWxDYXVnaGJkVnNCUGNQOGRSRkt5TmQKUEFxdFR1TU9WZk41VUU4VER3LzBJL291OU9BckU1T0hQYWdjMVQyVytxRTl6dVFlb2craXAwS3JmTDhUSzl2cndNcDN2Uml1ZVpGNwp5cmYweWpZOVVPbUdHMFA2Z0hzS3cwNTBUMzdRSVFvNGMzMk9MSjlZOElLQVBxbUJCdERQT2QvbDgvNXErSWdBU2cvVVpZWWFDRUM1Cm9UaUFpcU1PQ0FHRUJrSUdrWUdJUVdnZzdMSm1JSWxCSktHNnczajFCNkxtdmQ2bXZmNjZ2WUdHZzVHR2c2SDZIVy96dHRPNTczNncKUCtBUERuMThkZTFmeis5OFdaeDQ3My93Ni9yczE2VUhueFptc0k4TE14L21aMDVlVHU0L0dkMTVlTWMzTlJDY0huaTYyTjl6TkZULwplYUQ1WFgvcnlWRGR4K3Y4SkJoVHpEcGlJN2FXNmg2S3hJT25yTEsreXoxVXd1dEM4V1V2Qmc2SlBqVDE0ZWpCQ25hN0MzVDM2QkY5Ck1Gd0NRd0JsYkhha2JucVNZNjdjWFUvaElRQ29wK2lvMndEUWdQaDRaTjAzbGZYL1dnb0FBSUFBU1VSQlZFUEV3U3lmVkFGVXR0ZHYKWkJyMjhOVXVTVC9GMjMwUUtFZWlEMXZ0TXVrblA5cWpSV3RlUko4ZVNGcnFJdlJJK3Nud2VURnlEOUZIQjFEQmFqY2FLR3RaYkFaSwpYeFVHeXZSMzVtdnBCZ3AxSmpCUUQ4VkhRUUFnYmlBK0RhSmRRZnhkZGZXYlFVaGlrTFFvaGdBaUF4R0Q1RGNLOGFXeCtBWTZrNEVNCkFFa1NhalZTSldRTkkwWWZkVVNraHJoQnhIRHUwSFNIbzZjbDhTNk43eFJQSXZyZ2dnZ1VGOCtYSWVrZE9SeCtMbjhhd3FvK0RsNzYKZGFEeVE3K2xmaUMrNlFlalhjL2tIcVJQM280emQxc2YvOURHNS9qaUZ3T1F0djVsblA4VmJVdU54Y2MvbVp0Q1B4S0ErUGdISjBCMApDaGhFQUZMMWczdUFKQUFac2RjbjB3eHRYRlAxOHowQUlnTWwzQVFOQUhvajN0V0pTMlpyamtSS2x1Njd5ZzdjWUNDOGlSamVSd3dNClJETWhTVUtYUC9aQzFaLzZNUElRSnhHUG4wcUdJWWtTZ1VaU0ZQdWpySlJqVmZXbkFRaGVZN3A0dE9oVmQ3cDdGUDNvQUxLYzlIeVAKZTJoM2M2S3BqMHFmMGwxUHFkaG5FOWNQWC9hUzZGTVNjeFZIbmFLd0N5b010aGNFSFBsK2U1N1BodVdzMjZITTlkWU1YM082dnpuRgozNURzcXp2dnEvMXAvZUk1MzZYei9pb3drQVNnSEFhZ29xaXRLR0lIQUpYRTJqR2FBd0dBVkFNUmc2cjJ1ekNTRUhtbzlpQmUzYjVlCncyNVgzVzV2emM1QXpkNWcvZDVBNDFhbmJkUFJmZURaV3I5Ni9QcnF4K2UzUHM2UHZWMmZQdlpOLzdvODhjZjgyS2VsNlErTFUrK1gKWnQ0c1RoOHRUTzYrSE45OGVpLzY2UGJpekpXMSszMHY1N3F2UnZxYjNnOVVmeGlvZXpQUzlQNG1Qd25HRkovdUdBQ3FFemR6MVI5TApTZTdCYTNaQWx1NVI2WFA1M1JDVzZMcFEwdUFIUW5CSVozdlJ5RWR5RDVTLzA1VWZwNDlYSzY0ZktHdFR1QWRMMy9DSTlhL3R6b0lECkx3QUk5QU9WSHZVQWZUQ1ZQdGpwM0dHKzZjY1NQVzlGbi83UzNUNkNqalR2TVMxN2FmU1JBRVQ2UWU1dy9SajBpUU9JMDRjRGlOT0gKeCtuREFjVHBvd01vZjZVTERKUzMycDJ6Mm9VQVNsdnJTRi92elBOMWtJRVFRQmdheU5nUDFBMkJmdUFqSHdKZDNPbERBeEdEK0hJWQpBb2pPcnhISEdBMUFQTTRnQTBORHFvRWtEUEdhUG9rYkdrdHpJTkZ2VnlDVlFRUWdTd1B4NS9XWkVNRGx6NnVjUHZpTVNoK01UM1FrCkFIRURjZUpJREVya0huVzZJNGxIQlZERGwwRkxBT0U3Y2p3T3dVRUlRd0JKaHhZNml0RGdoMjk4bHFZK3BKK2NMWEhtRjIzOTBhOTUKaUxlODBBREVka0NmQnFDY1RhY0tJSEFQWkxrSk9oR0F4RFVKalUzUUVvQlFLdmdxcmRGMnFra0FzalNRQ2lCTEExV0xhd0lsT0EzKwpSTHV5bVFZZ0NMNmwrcXJpbmhNTmhPZko0elFJOU1NSFF2enFRVlcvNnFHRUNFTmNRcWI1a0xad1JsdUlxRVNURy9xTjBoOG8rWVpLCjlEeTh3RWpiOUtxRGwxd2k3cWpQWVBUNjVQcUJsNmlsZmdUY0U1elZsWEN2ajVWK0xBR0VDMTRxZmZEazlxS1FFL1NEOU1sWmE4VnkKMTl1eTEreFpxMjBaYXkzcDZ5MXBQdEJQUGVqbjdIclZqMnNYenZndkpRVXVnNEdTL1RVQUlGd0N5ekVBQkJXRVd3dkJRQkU3UkFDUwpERVFBNGdhQ0xqRUQ4ZEE5TmZ2ZFVPMGVhOWRidTlkN2VhZi84dlpBN1U1ZjQwYUhjN045NktqcjNhdnI3MS9lK3Jody85UHF6SWUxCm1ROHJFNThXeC81Y3VQZDE2Y0dYcFJrdzBNbml4TUg4K1BhTGU3RW52NFFmM2xnQ0E0MzNQNS9vdkx2U2JUc2FLUHM0VVBuK2F1dWIKbXpUMWwyTlRIOUxQZHdLSTlLUDFEZnB3L1VBSnJ3dGxCaENCZysvNDRmb2g5eEI5b0R6ZFBYcWNQdkF4YzBPNEIwcUx1Vk9qcnJTdApqcXc5Y1J0cENQUlRmTnlqYlgvdUx6M3FnOG9PcmZ0TCtwRUF4SitYQUtUUlIwVFdrY1JqV3ZZaS9XejFxdU1mRkE5ZjlpTDk1RVc2CnpjdGVwQjh4NlpGbVAraWVSQUJTNmFNREtIZWxLMDhEa0dpdEszZFZMSWRsTFhreS9aNE1uenZUNTg0SmR1Wkh2SVdScnZ4UVoyN0EKVXhEdUxvejBGRVc3aTJNOUpSdTlvczF1cUhTckJ5cmI3b1hLZC9vcWR2dXhDM3NEMU1YOVFhenlJSDdGT1R6MjBJWGo4SmdSUDBHTQpMaGVVY0grMHpDQ2NBK0Y3QmI1ZERsT3VsMFhYVTcvYS9Oc1ZDajV0MFZTRXR5QldJNTBvazV2NExTYk10NXVRaHpxb0dYNHBRbjNSCkFSY2pFdXk2VUZZaVRGdE5FOFcvTE5HcUJDWWRoNmlMNy91Z0MrOTZvWXEzUFZENUd6ZzJ3eEc2aTFkNkxLNW9yRjNUVDl6dWxGL3gKT1d2YmtiRnB5OXl5dzhlMERmMlNQK2VqeldmRGpUOEg2OCtFUkd6ODA1UVMxczUrQi8xczJOTTNIUmxiN1FpZ3JDMW45cllMeTl0Mgo1Kzk0b01MZGpxSzlUb2h2ZjZaVk1BamNBd1pDQ1NGOTRDTmlDTzlOQWVHRkNxSExiMlRFa0dQNG5OS1VnaUg5dDd5RlAyMFFxOUt1CmZJajBxWHJUeDhOYnhJdTd4Si8wNEdTaTlGQmZRQVFEWFhqWFYzclNVWExzS1RsMEZ4KzRjSE0wN2dxaW1aQzBMbGI1WG5UcFEyL1YKcjMzUTVZLzlVaEpFRXFXcUJaKzUvSG5nYjFUMXFWOUtwWXlaTmYyblZQbXVqNUxjSTBXN2ZPSXBTMTBZTWdndlhNNzMrcFFDZXZZNgphQTVVdnRzQmxlMTR5cmFiSzNZYzhMaDB5MXV5MlZXMDZTM2VFbnVBeWpjOEZWRjNlZGhaSG13dkN6aEtnNDZpc0swd2JDdGF0K2Y2CmJabitsclMxeHZUbCtxekZ4cXlWVnRCUCtscGp4bm9UbnUyVkhLdzlHNmo2eVgvaFIxL0ZHZjlGU05QUDVWVGY1WFIvZFlhL0x0TmYKbHhOc3hnQkErYUVXQWFDb0RTTDZRT1dicmdyUUQ3YlpnVjNZNm9RdWJudXh5enZkbGxYdjlzU0RUNDFBUHpXeHpzcWRycXE5bnNzUgpUMDNRUFJMb2o3MjYvdmIxNkx1RnNZK0w0NStYSjM5Ym52bXlOUDNiMHZTWHhhblBTN01mRjJiZXY1b1dpMTh2eGplZWpQcm1iaTNPClhKdWZ2RG96MWZkNDBqdjkzTnU4MTVQenFmZlNtd0hId1RYNkNjOStzQTlyOXluVDMvMUtiNFByZjcxcUdXNzBrWWh6Q25wVSt1Z0EKVWs1ME56WTdEMUNra0pMRFhuVzdEK3FIN1hTV2xyMlFQcDFabXgwOG12MkFmdkR1aC9CbEJmdTkraHU4L1I2bzlLQVhVdEhEMDFtbQpQSStYWVN3OTZEKzlrdjArckhndlh0RnVMOFdmNTc5VXVOMUhGV3oxVXZtYmZWVGVSaStWRyt1QmNxTGRVdG1SSGlncjNDMGx1Y2UwCjNZZW1QdXVkbE9TZTFKVU9UQUFvYmlBTlFEa3JuV0NnMUdWbnhyb3JPOUFCQUlLQVBubkJqb0t3TnovVXBSbW9DdzBrMnVpQ0pBYUIKZ1RDSlFjeEE4WHN3OFRVSTlRMjBqaUdyTGRKYUZ1dGlFTTFMRlFOZHhSUUp4ZlZqTnBCOG4ySDlobndLYUl3aGpla2l5Nno0VU1jOAp5NG5UeDd6M1F0MWVHdDlrcXFhaUIwUHI4TWZTVzNrcFB2akJLai8wUXhLQVVEOFFpSWRDK2tCRnhwM2VrVDc2Rlo4MStzREg5RTBiClhmRHdYS1RwVEtnQkFIUTIzSEJXbXdBQmZlQjVDRTk5SndBQmZUQUFVTzZXMEE5OFJBQVY3SFpJQUVMOWNBQWhkM0FPUk9qaCtpRUEKZ1g3K0JvQVN6b1NzQUFSZGZ0c1BrWDRvQWhBY2hrRS91QW9tMWhuZmVzdmVpTjNRYUNENGlITWcvSWdBUWdOaDRzU3hkOTNFSUFvOQpsRWhGYWlBZXl5ZFZ5bngvbHo3MlVYK1ZPNWI2MFpMMUk0dUhMWGp4dlQ1Y1B4RGRzNFhRVTZxTmZFcTBlUTlOZ0lBK3BkdHVxUGlnCnZYaTN2WGpUV1JicnVMalJmWEhEV3haemwwUWRaUkZIaWJZcFIweGxnbzRLbjcxcXhWYTdaR3Q2NGFoNzJYWnB2clY0b1RsN3FTbHQKcFNsOXRUVmpyUzE5dlNsdHZUNTFYV3g1UHV1di90bC82Y2ZBUmVqbmdBQVFlQ2dwY0JrTWxHWUFLQ3ZZUkFDS0Q0R01uVURJb0RMTgpRSmdFSURKUTFYYVhaU1lNYVYyR0o3ZTdhcmE3S3pjN3E3YThsemU5bFZGUGU4QTd1eks4Tlg4VDlQTis4ZjZucFluUHk5TUFJQkVBCmFHSDYwK0tEWDE4L2VQZHk2dmpGeE03VDBkQ2pPeXNQYnN4UFgzazVjV1Yyb3ZmaGVNZWRGNTdhWFc4K3ZGYVArcG9PK005NUhUM3cKUUx0ajZ4QW1NYWp1d3hYTGFLbExWYzRwNHFsNk95Z2x1U2UrNE1YMGd3QUMvV2dKL2RDT0h3S1FxaDgyK09sRUFHVnVlQ0FDRU01KwowbUxpd3Zmd1BQeVdnZ09oSHdsQTM4TWdpdjBXYStoSUZlLzFHc25FVVN2YzZZbG5wUjhPSUs0ZlNIRlBGeWE1SnpQVWhVa0xYdXJJCmh3Q1V0aVlXdFZUNjZBREtXZlp5QUpHQlVwYmEwMVpjbVQ1M2x0K1R0ZTdPOW5uQVFQbWh6cnlnRndJSmdZR1FRVVV4TDJUSm9FVFQKSUFEUWhUMzR0UC9pUGp5T1g0MVh3NUM0K3B4cGdZd2RlTlNUeGFTL0ZTUWhQakxsREdyOGZJVU14QVB4TkgwWm9aaUI1SHZRNk1tKwowYVBiU2loWkwxM2h2RWZkZnlydExXVmJWbVhpY055b0pWckM0Ty9wK2JGTmNvOUtIMm4yZzNld0l2ZEFoZnZ1UW9NKzRKNnNiUWVHCkFNcllzcWR0dElGK0FEcG53NDBRQUFnNkYybUVVRC93cXhDZStTWHBCOHJaRkFCQy9TQ0FTRDhJSUZVL0VISW52dktsQUlpUGZ4QkEKRnByNUZvQlVBd0dBTEExVS9VNFlTTklQZk1wM3BlQmxKUEdhQWhYdnVzQkE1U2VkWmNjZGFLRFNmUkV1aXZHOVFSaDhaY1ViTHpLSQpwNUpJaFpHYStwVWNNWCsxeWw5N0tVdmxuQW9kVXhmZjltTFN5cXdsZW1qQkM1TGNRNnRkUUI4STNRUG9RZmRBSlR0dVRIeXEwYWRrCnl3V0pzODAzWFNVeFYyblVCZlFCYzVSRTdVWGh0cXpObHZ4WWEwWFkzdWhyZHkrNkJwKzViOHk2YjArNXJrdzVoaWRzWFpPdERZOWEKOGhlYWt0ZWJrM3pOcWV2TnlUNmdULzI1OVpvenZzcy8rYXArREZ6Nk1WUUovYXdaQ0FDRVF5QUFVTHF2VmhnbzBJZ0dRZ0RsaFZ2NQpRcGkrSVZvekVGYSs0UkZES2JPQklKVSthdUFlRUkvZWhsanB1eFRycUFxN3F5S2VHNzcrNlB5Tnc5ZTNQeTZPbzM2K3JHajZFVU9nCm1jK0wweDhXWjkrOTF2WStQeDJMUGJ5N1Budno5ZFNWWnhORHp5WkdIbzcxVEkyN0IxNDVLN2ZjQlljZGxYdmRZbzhFL05XSWI0RVkKNUpHQmVMWHZSNnd6ajMvUU40bmNnL1M1OUdaQXF2SkVYK3FTTnZxSUxPaGpBU0RhOThQMVkxNzIwdlZEQU1LTWxTOG5CSi9DVitidAplY1g1WHhxQXlFQVNnOVFVOTVnQWRLcDR3RFE5ck1UVzBTclk3alpsUWs4UHBVNTkrT3lIM0NNQmlOd2pBVWlkK2tpekgxMC9Hb0FrCitxUXNleUFCb0xpQk5BQmhtV3VlOUJWWDJySXpiZG1SdWViSzhYZGtCeUIzYmtBWUNDUVVONUFHb05NTnhLZEJLS0dLWGZpMGp4akUKQmtJRG1Dd2g3ZmlCaHhPbzV0MnczdnRCcVBiREVJWUx3enpPSUUxQ0Zta0dpdXZIekNCNXlVeFBtZHlvejVpVHQrYlFadVFFbWR6RAprb2xqQ1IxVlBKSjdwUFdJK01ISjdKNVQ2RU5USHdRUXVxZGd6NFhsN0xabjc0Qjc3SmxiTml4anN5MTlveFhIUHdBZGRJOFkvNFJGCkNDQ2MvVWdBd3BVdkREY0FjZjBVR0FBcTNmTkNxbjRxRHZzZ0RpQ2VwWDcrRG9EWWZqWCtmQ0lBblRJQm9uQlBGUVlBRXIwUkJzSTUKVU1tZUV6Y0dTWHVETUhBU0dnZ1pSSEVHL1dlNitNRTZqcHRFbWI0K2dXa1NQYTkyNFUwUEpOSEhFajN4eXpjZnNkM041cFBiaS9mMQpxUThDU05LUEFKQ2hIenpONm5MUWRUSGlCbHNVYnJibnhld0ZVVnRadE8xaTFGNFRick90MjRmbW5aT1AzRThuTzErT2RyNjQwL0hzCmR1ZkVQZWZFTGZ1dFgxcWRreTFGcjVyUCtwcCtEallDZmM3NmE2R2YvWmQvOEZmOTRLLzhJWGpwaDFEVkQrRktmUWdVcU1JaFVFcEEKbkFrdlRvYjNOMGdHd3JVd0NVQmtJQVFRR1lnWWRHbkwrKzAyT3luNGpaV2JuWlZSejhXZ3N6M2dmYkY4NWNQTE94RHFod0NFK3ZtMApNUFYrNGNHYitlbWpGeFBiVDhZQ2M3OHNURjhWOUprWW1vTkd1MEdFdGtWNzZXWTdmR012Ym5zckR2UWYrNHhCQTVpRUlTSlIvRUFnClphWVBLU2ZSdk1lMHdabmY5MDJoano1Tllmb3BQdWhobWJZODYrdGZDYVkrS24weVltNE05Sk1TYVlmU1lpNzRNdFFQQjVERW9FUngKOUpoL3lSbzlpbnYwdmkwZXJmeXRMajBUZXJvcEZUMHFmYkxDWG9xakp5UG9wZFExTDc3Z3hmV1R1dW9SbWQyREpTKzVaUURscjNmcgorWHB5MWpveWxweXBTKzBnb1l4MU1RMFNXNEw4SFpxQk91SUdpblpDaVFCRURGSWtKQUNFQnVKeklJdHRxdm9oeWpoeUdNY1N3cEJFCkl2MGRnSmxFYkgvY2NNT25FVFc2bGJTVTdCNGpaQTNOYjlRUmpoUjltWFN1alRUQ0liZ283dEczbmRiOE5tU2RzcGlWaUQ2WXFoLzkKNE1UUVErNDVoVDZvSHh6OGtINU9BUkRvQjRpRCszNUU0WVl6a2NZem1uNHNBVVQ3ZnJTTnp5TFFUNzZtSDRqMFU3SnJBcENrSDBoeQpENzNHTE9qemRnUWk5RWh6SFE2ZFJLa0FVZzJFQUZJWlpKcFlHTGNUS1Q3c3hPOS94WW1vSEVoMDJGbDIwRkc2NzBFR3FWdWtBVUJrCklCVkE2a3hJZmY1MEtsMTQzMjJaU2lJMS92V0pjSlBvZVk0ZWM5YjA0ZWpCNVMyTW8wZUtscjFvcDNQWmpxZDQyMFg2Z1ZBL1lwOU4Kc0wwMDZpcmNjdVp0T1lwajlzdUJ0dloxUjgrcTg5RlR6N09ISFV1VEhiN1Jyclc3WGZOM3V1YnVkWTJQZWFkSE94N2NjbzNlYU84YQpzMTk0MXBLNjJuUTJVSjhVcUFINlFEOEdvRXRDUDhGTC85VENoVEFDa0hZZkRBR2dOSDg5R1NnN0ZEZFFJZ0NKNlZSTVFFMWlrTkRNCk45dm9vRXEzTzJwaW5SZWk3a3NoMTYzbDNzM1hOeisvdXZmMStkM1BpMU5mbHFhMVpqNHZ6M3hhbXY2NE9QWHI2K20zcjJkT1hrM3QKUForSVBycTc5dURHcThtcm9KOEhFNFBUazRQajQxMjlqNXlYZk9JcWp2Q2RyTmp1aElOeDVVRS92dnVWRENTZEpoeFBwWStXU2grYwo4WEQwOEdIUDZRQ1M5WE1vZHZ5UWZvcjJ1MWtXVzU3NVp1ZHYwZ2R2OXB3YWRTS0EwdUdIM2s0SDZpZHZyd05QOWFDelBiNWZRcEQ1CnQzeERQR2I5ZEorQ0hwaytXbWIwZEZIZmg1NU9pcU1uUGRCSi9RWDZNQUNSZTZqRUFOTEtXK3ZNWHZXa0xUdFRsNTNwYTA2eElxWXQKaCtYNDNXU2dna2dIbEdnSVJBOFVDZlZLUXlBMGtQV3BPaUw5b2ltcWhLeUhROXBraUlaRGJDQmtFUUNvN3RNdzNrZGF1Z3VFdWxpRwpxVlRDT0ltazR1Z3hidHRFQUNMOWtGY2s5MURWWHdhdE0vdEdUZHJHWVVFZlBEaFp1Y2VTUHJqc1JZdGZDS0Q4WFdmZVRqdUUraUVBCjZmcUpOdU91WjVyOW9INVVBSUdUT0lCSVAxQ2VCcUFDYmZhREFHTDY2ZUxMWHFTZkMwZW1GeFYvYkttZi95U0F1SUVTQVFqRUl4a0kKOTBHYlZtMjBTd3pnNVpUZzJ3N2ZmNkFQR2FqaXlGdCsyQW51SVFOQnRDSldldVJCQU5FY1NKMEdjUktwejB0Z2tweWswdWYwVlBybwp6eWZBamVXVFBQdytzT1NscmtUMGtUWTQwN3lIWnpyVml5MTRhVGZiaXVzSHl0MXV6OTEwRkVSdGxXR2J3OTkrWmRFMStkVHplTllUCkhPMzIzZTlldWQvemVyem4yZjJleCtOOWMrUDlzeFA5TXhOZEQrNTZ4My9wR0xycmJKcHR5NTl2VEZxdlBSdTY5SU8vVWl4N0JTNzkKRkt6Nk1WU0ZCdEs2Q01HVHpFQTFFTjRaZ3hzSXR3UWhnTkJBS29BNGd4QkFGemUrSGRMbllzd0R3VytwalhSVVJOMnR3YzVYcjRmZgp2Yno5Y1dIMHQvbFIwZzhFK2hFQVdwZ0JBQjIvZm5Ed2NtcExHLzhzenR4NE9qa0MrcGtZN3grZDZMcys0MjJlZCtZSHhjcWQyQ3kxCjdTbmI3YjJ3MTN0Ull4QVo2SlJPQVJBTmU3aDFLay82TGRlNUlNazl1bjVPOUUzRUp2cmdOTVVZL0FCNkN2ZTZXTHArK0tsZXVRWjYKVlBxUWU0ZythUkVucEk5L050b3p0OTI1dTJJQ0JQcmhBSktTUEhSS3htK3hWRTYzK2d5V0NEcXllemE5bUJrOVh1cDcwR1BRcHdQaQo2TUhTL0IzUWFhdGRadjJrckxnaFNUOUppeTVNM3dTdEFxaGd0YXRvdmFmUTM1dm44MmF1ZWRKV1hLSTFaOGFxTTNQTmxiWHVCQVBoCnp1aThrRHMvN01FNWtEb0tvaVFHQVlBd2lVRjB5d0k2YjFrL2FCMzNZZmg2VlYvSzVIcDgzVmUvRTlzc0pBWnBFakpGQmdJQWtZRjQKNm5vWlJsOUFWREkrbGErbmdoR0FwRnRYU29NY0FvMXlkbkUvbnNhc25sbWpwK3hVTlhHSDdlVEF4eGMvOWwzNHRSZXErTkFEbGIvdgpoc3JlZFZtNmgrZ2o3WFNtSFQ5Y1A3bmJqcHd0b0U5YjVsWXJsYjdSbkJwdFRBN1g4NVd2czlFbTdPZEk0L2xvRTRTekg2R2ZqVGE4CjhRVmUrZkFVL1JUdjZBQVMrdG1MQTRqckJ3RkVtQ1pZeS90K0RQMFFnR2huRHhsSXRZNlJQSi9YMzdrbU1GQ2lDUkNkb2MwQlZManYKZ1c4N2ZQTUpRTkNGNHk0SWI1NEtEQkpiY1hmYnlVQWxoMjQwRURGSTdYUVlXVW9vL294Q21iOGFMdXFkRHFCdnVnZStJUmluRDllUApTaCsreTRldmRsRTArTUdSRDdvSDc3UUYwWlVHeGNsV3NYWWdma20wcmRuZk5yUmttM3JwZXZIWXV6TGR2VHJXdFRBMjhHcDg0Tm5rCndKUHB3U2ZUdzg4bmgxOU5EQytNRDg5TzlNNk45czdjNmJsenU3TnIzRkgxcERGOTVmSVB3UXFjOVB3VXJBVHJDQU5wR0lMK0daSUIKbEJTSUEwZzFVS0YycnBrNDNTd0MvMkppSXpZeXFEUnE3Rkl5ajRKVTdsaWswUWVyQ1h2Z3QxK0l1b2Q4dlpIRm01OWYzdjA0ZisvRAp5djNmbHFaL1c1d1JWMy9HQ2REaWcxK1hIbnhZbkRsOE5iMzk5SDdrNFozVjZadXZKcTgrbWh5ZW1oZ1lHKysvZGIrN2E2NmpaTldSCkVta3VDTFlVUk8wNU8rNkt6Vzd0aU5BREROSkhRY2Y5d0NBMU1wRDBOamorVjh5OGw1bWdJN21IS2dmcm1NTjdiTW51b1dtS29SOEUKVU1HdUZ4S1g1RERXdkN3QlJDZDV4ZmY2YU9naEFLRitVc1B0eVdGSGFzd0Irc25lN1FBQTVlNTZNSlUrcDZlNGg3SlFqbGs4WGJ4RQowT0hsYm5SU0hEMmFlem94anA1VDNFTko3cUVzdGprcitrSDY2TEZsTDZUUCtRVW5aQTJnQWwrUDBNK2F2aGFXRit6TzludlRWOTFKClM0NjBaVWY2U252bVdqc1lLTnZuRWd3S3VpQ2NBMEZvSUdJUWx4QVpTR09Rbm1RZ3ZHeWRldk9tQzBlOWtHUWdDVVA4Rlk4QXNqSVEKUEJpVUdBVFZmaHhTRFFTZnFvdGxtRFF4b3ErWExxTkNJWUNrSitFWmFaQVRsNUJ4Q1R0S3Y2Q0xTcDlUQVVUMG9jVUxaQkNuRDdnSApLbjNyaFlnKzB0UkhuZjBnZ0dqTkMvVUQ5TW5ldEdWdHRHVnN0dkRTWWsyZ24vUEJXbjNsSzFndnBqNnhadWhNdEFsS2lqVkRRQjlkClA1dGk5c051ZktGdGZMWUNFT2dIQWFUZmxja01JTlNQQkNEYTl3UG9zUjcvdkpNdngvQk5BSW45bUlxQkJJUGVpVFBoVlFEaGk1UDAKUStGR0ZqeWM0MVcyVHdjUW5nbFBBSUp3TFF6UEZBTURFWU1zczhTUUdwZVEvb3dDR3M0YXRVUmZtUWhBYXNySUo2NGZMWXU5UHFwKwpMQUhFOWNPMyszRDY0SjIyeE0yMjZFSTdHaThLd3MxTmdiYXJ5NDZuejEyK1dVOWdzbk50b21kcHFuOXArc2JLMUkzbHlldlEwc1MxCitja1JNTkRqcWFISDkzdWZqdlUvdmpzdy9VdlAxVkZuODJ4ajFtTGwveEVxT3hPc3hNU3VaLzhsQ2dIMFkwaW95REJRRFVRQWtneFUKRUdyRHdFREZFWHN4TVVnREVCbUlBSFFoWmgzcFJ6eG1OZnM5V1Z2T2lvanIvc3JBN3ZJZE1mdDVkZThvTVBGMTZRRUVBTUk3WUlpegozNWRGZXk4bU54K1BCaC9jZ3UvRHk0a3JjeE5ERStNRGQ4ZDZyNDk1N1kvZEdYNDd2UDhwOURmblJXMFp1NjdLU0pkeFJPakJPZENsCm96NHdFS1ZLaUJZRXBQamhnTVJqZWV6QVk0ck9IVmJwVVk5SWNnOTVnaTE3SVlCQVB4eEE0QjRNOUpOalBzV2RMM3NoZ0NqVUQ1UVUKYmt2YmFNL2E4ZVRzZFFJTk1RNGc5ZXF2MzVueFc3NHBIcTg1YS8zRXhSUHJNR1dsSHdsQXA3aEhvNDhIa3R3RHBmbzhrTHJnSmE5NQpNUUFsTDd1azhRL3FSd0hRYW5mK1dvOGVXd2dERDFHcFMzWXdrRFlIYXMveXU3SUQ3dXlBTXljSUQ1eTVJWGRlMkZNUTdTeUlkVUQ1ClVVOWV4RjI4MlYyMDBVWEJweVZiUFZEcGpxaHN0NWNIejVUdjlVRVYrLzNZaFlNQkkrdGJHYWd2YUh5NTA4R0d2d1VYQzJTR2gyUVkKbWE4Y0dyK1Mra2RoSStMUmQ2UmZVRTVLM1k1VEk2NG1aOXE3WTFxeDBqWXBYL3JZaDJ0VitLbTZaNWxLOUx3NjVxRmhEM2NQVlBLbQpFNklIeFNjZFVOR3hCeXM4Y2xNRmg2NzhBMmZlZm52dW5xTncxMVVvTG5XbzY0ZFd1ekpqcmVLQmRzSEQ4eHZOWnlJTlAwWHFmNGpVCi94eHAvRW5iOVl6clgrY2lUZWVqUUo4V2Nja2Y0NWJ2ZE45VGlNNzhvcE8vQUVEQ1FOb3RMNHEwdHpqOHpLOExCL0V1SHZaU3drREgKQXhnM0VGOUxqYjlJMkJwV2pYeEJ6dmoxcUV6aHliZmEvak45RjRMaUhnNGcvR2plQk4xVGVkeE45NktxUE5FM3RaUnJ0d2JUVnNHNgp5dCtJc1JCb2dBNzhGMCs2TWJ5TmZQR3VxMmpIQ2VFMGlPOE53dFBFVkFOSkV2b21pWWhCZkRKRXd5RmFQRDBsam16MUdmNjh4VzloCjZDbUQvMlFqc2FwbHVBZUpJNVJqM3V1VGFKR0xvd2V2N3NNWHZQVEhVWHRwckYzY3dYVFRYYmpaTG00K0dtMHVqRFkwQitydnZXeFoKbnJTdFRuZ1c1L29YWjBkV3BxLzVIdnl5OXVBYXREcHpkV1g2Q2p5elBIVVZlelRWKzN4ODhQbm84Tnk5b1lrNzNkZkcybXVmTkp4ZApyMHBldXd6RStUbDA2YnhmR09pL2hTci9HYnljc2w2TGt5RzFsRUMxdGlHNk9qMVFrK0d2eXdyVVl6bkJsdHhRSzRRR29qa1Fud2FWClI5c3JZazY5cUp1NndBQkV5MlR3K0dMRURWVkdQWlViSGRxKzcvYXJxejJSMXpjK3ZyajNlWEhxODlxRFB4YkUrdGZYbFZsdEFqUXIKV256NGNYN3UvWXVabldlVDY0OXZMMHhmWFI0YmZqRStNalkxZUh0aVlPTDJRTjN6cHRLRnBreGZjM0tvSlROaXk0ODRpcU5PY2QzSQpMVS9wTnZ3djZDemY5VmJzZFYyRXY4VUhQWldIdmZ5U29Yd2pSS0w0c1lEbVBRZ2dXa3pBTjlWWW9yMCtkSG9YYlhOVzBVUGpuN3p0CkRoUVBCdTZoaUQ3U2FsZHF4SjRXZFlpMFphL2tzQ01wNURnZnRHZHN0V2R1TzdPMGE1NEJmZWlDWjNUWDUrOEVrQXFkMDdtVGFKMEwKaUtQT2UwNkJqc0dkRHFudlFROHZ3OWNCcGE5N2xGeFEycHFiSlF5VXZPckJrbGJjMlBsbEY4U1h2VWcvZndkQU9XdnV6RFVYQUNoOQp4UTVsckNPRFFEOGRBQ0EwRUFUNndRcGpYaDRhU0RCb1d3OGxSQkdHRkFsWjM4MWJYUnJEMUtPT2ZrQXlKa044T0FSVmE1bXZHYXBkCk90MEFrTVFnNlhuMkJUSjlzTXZHcGVkb05vTUdzdFJQdGJGSm1lUEcwamZxS1RiU2lUWklINjRmb2cvcEI4VWpSZnBCOUlCNHdEMUkKSDlKUHpxNDlmMXZzK01GbHIyeHhtUjhCSUNwMW95VXAxbnd1MHZoenVCNEE5Sk1HSU5yM3d3R2tYL1dIQVFnblFCS0F4QThDTGZwcgovNTBBSXYxSUFMSjRoZnd0QU5INXQ3UUxRWkszK29LRWFQQ0RBQklHTW01RmpnRENaUjA0cU9NRmdSQkFmUGlCK3JtZ2JRa3l0a1c3CmdVR0YyL2FpSFllME9SckNtZEIzam9Vc0dZVFFvVitTaDBNS2Q5UWs2S2o2RWJ1ZHpKOVNsdm81SFVEcWRoLzE5SzdpYlJlR0YvaWgKQlMrYUFBR0FpcU9Pd3BnVEtvamF0VnRQTkpXRUc3cVdtcWFlMnBhbTJwZW5PaGNlRFN6UERZTjdmSE8zZkErdVUrc3pOOWFtcjY5TwpYWU5lVEEvTWp3Ky9HQnQ1T0RvNGZhLzM5cGlyYmE0NVo3SG1uTy95RDZHcUh5T1h6Z1lxei9ndi92ZlFKUUJRMG5xdHRpaG1rYkVoCldoZ0lBRVFHeWc0MGc0R2cvS0J1SUgwVVpEYVFDaUN1SHdnc0lwYTZ0S21QT09mTFVCSDhPYTBCOS9USzBQWnJjZGVMVHd2aXNvZC8KTEluRkx3VFE1OFVIbnhmbW9BL3pzMitlVDIwK3ZyODJkL3YxMUpXWDQwTlA3b3Z4enkvanZiZnU5MTE4M1Z5MDNDd3VDQmxxelFxMQo1WVh0QmRIMndnMFhYa2RiM0V0RUE5Q0YvVzQwRVAxRmxpU1VLT21JUU9KUjlWTngyQU9wdTN4dzhLTzZoeUlBVVFBZ1ZUL1pHNTVzCjgwNW5QdTlKRDl2QlFLSndlMG9JOUdQSEJJQzBrei9RUUhUaGoveXREb2dZbE1oRExKaytLb0FzSnowcWQ3aUI0bE9mQlBwUjNPTXgKc3RhUDVKNDB2eHRMQktDME5hZVdycC9VVlJkT2ZTejFBNm42T2ZlNkhmckxBQ29JZVBOOEhXQ2c5SlgydEdVYkdpalQ1OHdPdUhPQwpucHlnSzg2Z2lCc0FKQVpDTERTUVlOQ1duT1FoUlVMV2Q3WGtyMm1lK3A1QVArcXd2UmNjUTVmTm9ZY0VpWDdWazZCRHowdlZmaHl3CnJNcTQ3aHpmaTBNcWttd2t2a3pqRGxCR211Nm8xdUhjVVJjYVZQZlF5SWZUQitjOVBLSVB1Z2ZFUXlGOW9Pd2RHOUtINjBlYzY3NGgKeGo5cHNaWWtVRTZvL3VkZzNVK2h1aC9ESWxVL0hFQ1Nmc1FTbVBZamdNWS9DQ0N4K01VQVJQb3BFM2YrNnBZQXBOOW15OUJQNVlucAp3ai9XK21FQVVsZTdyRHRWUHdrWnhKYkFDRUJrSU5yWGdnQXFnU085ZG1jTURpQmNDQVA5WU9YRzJXR2dINGcyQnRFSjgzZ2hhYjVECkNDSVZxVEJLeEtDRXp5dWF3U3oxbzhhdG82N0FpcDNnc25zNmpYUUQwU0lYQXNoU1AzeXBDOTFUdE9YRWNPUkRDMTVZWVV5YzRRVWYKOHlNT09GU0RMWW9DTGFXQnh2SkEvZDJuanFkenJxWHBqdGV6M29VbmcydVBSbnl6STJ1UHIvcG5iMENCdVp0YXYvZ2UzRVFHTGMxYwpXWjY0TWo5KzlkSEV5T3o5Z2NreGIvKzB2ZlpKdzduMW12OGVxZjV2MGFvendjcHp2b3ZhYWZEVjV3SjF1Q1ZJN2J4ZlJDZkdpMXRrCmlJc0QxV2Y1bThCQXlDRDQ5MFFHUWZvRkVsVURKWmdBRlcySXhiSUxVVEg0dVJRVGN5QWdrYmliZmNnMnN0N3JXN3J4WnY3ZXA4WHgKTDR0VHZ5OU8vMnQ1RHZRRGZWbWFCUUI5V3B6N3VERDc3dVhNMFpQeDJPdzkzOVRORitQaTFIZjQ3NTBlN2JzKzBkMDUyMVc0MnBLNwozcElSYU1rTXRtWUhCWUR5NEh1cnpkaWtJUkFZQ0tyUVV0L1kwSTJFcGFUakFsbEhwWS9RejBHM2RLNjR0TlRGMFVOWjZjZkQ5WVAwCndhU2R6aHhBYUtEa1VGdFN3QVlsaHgwcGtmaGx6K1JUUURZOUdFcUlVa2xrWkpyMEpCcjhVQ3A2TEtPbHJ1OTJqOTUzdXVjN0FhUzUKaDVLWHZiQ2tKYWVJNlFmcDg3Y0IxQTNsK3p1emZlSUNpUm1yRGlodFZXZFFsdDhGQmlJRzVZU2MrWkVPQ2dHa2o0STJSWVViblJBKwpKZ01sWUZBUEp1MFE0bU5NaXIvMHBjblFKVGpTc0tyZ0NHUlZYRUlmOUNUb3FKZnR4NlF0T0hIUUtKZVZJeEpaZncyempqVHZVYzhyCkp2cW9leTlVOTBoakhyN094U1A2OEpFUGh2VFIyeFRoNGhja1R2WFM3bThLZ1g3T0FuMEN0YUtRTUJERTlZTUFNbDMxeDFqOG90a1AKQWlpdUg5cjlZK2hIQlJEK29KVGVMLzQ5QU1uS1NSelJSOUtQSllid0gwY2NOd3lrRFlIZTlLa0FLamRmRkpFdkEzSDlFSVkwQm9tZAowV0NnZ2kwYlZMaHR4KzFCaFh2dFJmdE92a05JVFFXUXlwMUVObEpOa3loOW92TWQ2S0hOWjJJalZGdzhlaVVISFZvNmVxUXM2TFByCktVNmdId2hIUHBKK0NxS2dIM3QreEFiSDZaeGdXNjZ2cVdDdHNYaXR0bXkxZW5iRytYcW1jM25HKzNLdWUvSHBVUER4U09qaGxmVW4KVjhOenQ2REl3MStnOE56dDBPd3Z3UWUzQWpNM0lmL2t6YVdKNjQ4bnJ6eWFISDQ0Mm4xM3pOa3oxWmEyV3ZjL1FyWC9XNno2eDFCVgprcS95VEtEcXgzQ05lT2VnMEFjNzQ3K0VWMGZVRENST2pBY0RpVnVsQnBvZ3lVQkNiTWJaWWZKYUdBTVFOMURCcGdCUVpjaFZGZkZjCjJ1d1UrdEdXcU9yOHJyblZrYmV2Ym45K01mcHBhZXJyOHN3ZkN6Ti9yTXo5dnF5dmYzMWNtQUVBZlZoNGVQSmlldS9SZUdqbTl2cjQKOVNmM2g4Y25CeWZ1OTQzZjlmWlB1V3RmdUlFK1dGYWdWWHhMUTdiY3FDTm5Rd3lCaWpiZHhWdWVrdTJPMHAzT3NsMHZwRy92Mit2aQpERkl4eEpNT0JNUWR5VDFZMlg2WHhTNGZYRUpTNkVQTFhzYWFseDdvSjJmVExkRW5LK2JHT0hwNDZlRjJLQzFrU3dxMm5nKzB3RWV4CktMWVIxdy9lKzFuc2c5UWlBRmt5U0UxRmowcWZ2TTFPbGpWOXBDMCsyVkVQWnJYSXBhTEhUYW1MWENwNlVuMHV5b28rT1BKcDF4TDAKU1ZseGFwbmNFNmZQa3ZQOFlydEVuN1B6RHV3dkE2alFMd0NrNVRVWTVBUURwYTg1MDlmZ284T1FVRHZ1RGNvSnUzTWpIaWd2MnBFZgo2NFFLTnJ3UTBvZVNBR1Jsb0c2TU13aUNseSs5b0htSlNSVGZZOEdqSytqenV5ZEMwcFZxdi9PeS9SYlJKWFNOL2NqcTVYZjU5WFk1CmRQaWtSNTN4b0h2NHd0YjNUSG9rNnhCMytHTjBEMDE5VlAxa2JiZGxiYlRoN0FmSFAzaHpVM0ZmZHh6OGFQcUJCM2lycjUvRFl1OHoKbi8yZ2ZnaEEwc3FYK1B1djNmT0w5SVBYZlJiWC90RitQQlZyRjhBd25mcHVmcHRJMDNMU0R3S0luZjlscFI5aEduazdzMzdsV1lVKwovdzhEU0N5RXNiaCsrSEtZZG9KWVo4bWV1M0M3dldBTEdPVFFOZ2E1Q25ZZFpDQmtFSllJUUlrd1pBa2c4YnlpR1lMT2Qxb0h1YVBTCmh3UElRQTlQWE1OUXFtalBJN2tIS3pJV3ZEaUF4TTZlVFhGVEMwUVBCZm9SOUltMjVVYmFzb050MlhEQVhtL01YYTdMWDZyS1g3ZzQKTWRYK2FzYTc5S0JuZnE1djZjbFE1UEVWeVAvc2V2VFJiUXdCaEFiU3VoT2N2TFV5ZWYzNTlOVm5VMWVlMyt1ZnZldTlmYzlaUHQrWQo1Sy8vMzZQVlB3Z0FWWjBMWGdZQVFTcDlNTndpRFU2Q3J4VG5oUVZyZ1VFUUFpZ3JxQU9JREpRWDFwZkRKQWFWUjF5WUpDRlFDREFJCkFIUXg0cjZ3MVNrdWRSMXFCd3dOclBlc0w5LzQrbndVK3J3OC9mdnEzQitMRDBBLzJpYm91YytMRHo0dXpJSiszcitlTzNveHMvUG8Kdm4vNjF0TDlhNC9HaGtZbmgrN2M3NzB4MW1HYmMrUXZ0U1dGVzFJQ1lna3N5dy8va20wNUJvQUtZazR3a01RZ2NXODF3MEFTZzFUNgpjQUR4TE4yRGxlNTVMZlZEQUxLYytoZ2pIejNRVC9hR1M2VlBadFFGWlVTY1BIUVBsQkVDL1RoU2cvYVVRR3V5dnlVNUpINFMwZzlBClNUOVE3b1lia3lTVU9JNGI2M0kzT2xqVzlJbUxKK0kyOVYzb2NiRytqWjZVZFNmRjBjTkxXWEZvQ2Zva0w3ZHJXYm1IZXExM2J0NkIKblgxbGgvNHlnSW9DSXBvRFFia0JVWmJmazdIdVNsdTFwNjdZY0NBRUJoS2JvME1pWkJBWWlNS04waGdmQXZIbE1QTU9vUzZNTTBoawp2SnA1OUNxM2dsSDhKb2lFb1l2YTlWY3dmZzlGTGYza0ZQWFN0SDhwRTI0WWdOVG45UXV1c0xrT0d1aVVNWThFSUpVK3FudjRqbVkrCjZVazA5ZUhMWHNJOVJyamFoY3RlT1BVQitzUUhQNForOEZaZld2THNCNk5kejlMc1I5NERxT2tIQVlRL3FpUUFxWXRmZkFMMHR3RVUKdi9TK1FoOFZRSWt3cEtQbmJ5MkJpUnZDYXdZU0MyRkg0blN3VXdERVIwRzBLd2dBSkRDMDY4Q0FRU2doR2dpcEVqcGxNcVNTQ0ZNMQpnNTFpSFI1ZFdTcmg4NFo0aXZjOTVnUjNDbmZkOEJHRHh4QkhEMVlJMW1Fakg2SVBWTERob0pFUEJYVElEYlZtYTZxQUEzYUdyemw5CnJUNWp1U1p6NFdMbTYvTCt1WmJaaDUzTHM3M0xzLzNyajRjamo2L0ZIbDhQUDd1NStlUXV0UEg0VHV6UjdkakR1OUc1TzFodzdsNTQKK2c2dzROWHNqUmN6MStaSGg1L2Y2WjIrMSsxODJGcTQxUFRQY04zL0NGZmpYT2VuOE9WL1JnQkExUW5TNWtDQnFyUEJ5K2UwODhLUQpRUWdnYVE3RWQwYlQ1bWc4UWF3czdJU0lRVlN4QWFBTFVYZnBka2R4MUhuSjMyNFBkejFidWJLemNPZVA1Mk4vUEI4WGR6eGRmd2dHCituMWg5cmRGMGVlRk9YSG5yL25aTi9NUGRwOU94bWJ2TFUzZmVIbi95dXpZOE5qOXdldmpQVjBQM0pkZXRxWDdtNU9DemZBeDA5Y00KQU1vTXRtWkdiTmt4UjM1VUFBampCb0p3Rk1RSFF1bzBpTWZmQ1ovaUhxeGt0MU1lL0JoN2FGVDZLQ09mZUFBZ2NvOUtIMEtQTnZKeAo2QVhzcVg1YnNyOU42TWZmbEJwcVNvVjNnN0hXektnZEU2ZkJhdWtHaXJrd2t0QzM0cml4S0NmbU1XYyttY3VnRDRrbk0rd3laU1VlCkJUMmlOTDlUeTBJOEVucXc1TFYyeUx6TEoxN3lzbDBMNlNOQzlDUXZpcElXMnJIenJ4MFl1WWZvYythbERmckxBQ3IwOTRvaGtLOHIKM3k4cUNIakZLQ2pVbFJQc3pBNTBaUHJjUUI4YUJXV3MyelA4anN4QWUxYlFpUXlpOGlJaTNDaU5CdUxMWVlRaE5oUHlRaEtEUk1hcgpHYU5YZWNsQkYxUjYyQzFGT3lVaGZ1cHMvT0lyUmdhSlRPZml4ay9XTmE2Vi9KMnBsNUpEQTNIMDhGL2x3eDdMUlM1eFp5Z1dSNDg2CjhqbkZQWnc3RUg5TTZPSDB3ZXY2NE1udDhDQXQxcElhYlU0T04rTFVCK2dENGFZZkd2d1FnTVNpbUFZZ1NUK3BCb0FrL1VCNC9pZmQKOUxTQWJ2dGxqSDlLbVg3S3hWM2Y0L0U5QWFRZmlQU0RBRkwxSXdISWZQc2hlZnN6cHRKSEFwQk1INjN2M3dTTkFOSjNBaWtBSXZSdwovZUR6eG9wWUJ6S0lBSlMvWXljSjBVQ0lSeVN5dEpGNmpyMyt2Qmt1bEdvZFNUWjBZUVVzNGZObTl4VHR1WTJFZUFwMlhCRFNCeDdrCmJ6c2w5MEFGQUIwbUhpdy9ac2R3M3FPdGRyVmhvQWRnUk1aNmZjWjZRL3A2VStwNlkrcGFYY3B5ZGVyU3hkVEY4a3N2NjI0OWN3R0EKQWpNRGdZZFhJbyt1eHg3ZDJuaDZlL3ZaNk5iVGU5am00MUZvNDlFOWtKRC84V2hrOWw1bzV2YkNuRERRNHZqVlYvZUdIbzRPL2pKdQpxMzNSL0hPd0hnQ0UxL3NCQU1GanhUMUdZZkVGUDRkRVo0TTFZQ0JrVUpxdkljUGZpSWxSa0Y4djBlYm8wbEE3R2tpcUpPWVNsejBNCk9ZRSs0bEpiRVdlVHp6MFU3Tjk3ZGZ2azliM2ZYby8vYTM3cTYrdnBUMnV6WDlZZS9UNy9nQUQwWVg1R0xINDltOXA4T0JhYy91WEYKMU5XSDQ4TXpveVBqbzBNamt6Mk56NTM1YTIwcGtTYXgrT1VYMjRDeXRIM1FxWkcyTFBHZEY5dUFvUHdOSjFTd0NmL1hRSzRlQ0JsRQpBeUVKUTJyUzRZREVvOUlITTZISDJFQWpWcEhNN3BGR1BvcCtuSncrMHVCSDBrOXEwQzRHUHo1YjBsckwrZFhtOCt0TkNLQzBjQlA4Ck9FMFB0MkZBUXdpK09WQnUxSkVWYWNleW8wNGV3VWhKOG8ycDdLaGJLY0dreDZCUFJzaUo2WjkrcjN2MHZ0TTlGRWVQc2RTRlV4OGQKUUVsTERpTnQ4R05CSDd0V25ENmtuNzhESU9QVExtTXRUQUFJRW5lTUQza2hlSkRsZDRGK1VsZHN5VXV0YWV1MmRKOWdFQmdJR2FUUApoRUxPM0xDTEd3alBuRThzSVFFZzFVQjBDV0FwQkJERkRHUTZZVVNOcTBpRGthbjRWVW1VYzFzd2xUNTY3Rkp5dUY2QXoxanJ4N2pTCmJvVnhBUlVFa09vZXZFbDRtWElPbDBvZmFhbUwwNGN2ZFVsclhrUWYwZys0SjMyam1VTDluQXZVL2V5ditjbFhEUi9SUGRwcWx6NzEKUVFPQmtKS2o0Z2FvQkNEOXFqL3dNZHBDdTU3VjhROUU0NTlFQUtMTEh2NGxBR21YLzdFQWtOalIvSjhBRUw4cG95VjljRXUrMkp2LwozYWZCMHoweElBbEFOUHZoMHlCSlFtQWdETGlEK3NuYnRxR0JFRUI4SU1STGhLR0V6ek80OEw0SFBmelNtdEtuVkFMOXhNVURvWUh3ClUzSVAwUWZLWitLQjhxSTJLRGNpRnJrUVBUZ3ZnVUFNb0lkTVgyUEdhbTNhYWwzS1NuM3lhdjI1MVpxazFlcmsxY3FVbFF1WlMxVUQKTHgxcmN6M1I2Y0h3SEFEb1p1elI3YzBuZDNlZWp1NCtHek1hMzM0eXRnVU1lblRQOTNROE9nY0d1cnZ5OFBicjJadExFOWNXN2w5OQpNbjUxOXBiRDlyZzF5Vi8vM3lQVllxZ1QxQUgwYzZqR01nUVFHZ2dBUkFaS1hhOEhBNlVid2I4NXhxZEIzRUFBSUlvRENENFY5emdMCnRoZkduUEJYcnpUcXNxMTc3Z1NIdnp5OSsrN1Z2WThyay8reCtPRHIvTlNIdFFjZjF4LzlPZi9nNjJ0aElBRFErMWNQRHA5UGJqOGUKRHorNDQ1dTQrWFJ5WkhwaWFQcmU4TlRkb2FHWjNzb0ZsK0RPUmxOZW9LMWd2UlhLOUl0TFlLUkV4WkcrSUdCREFLR0JBRUJvSUtoNAp5NE5KRWtxWVFSekpPdW96WXZ5ekU5OUVUTHRuOUNVa3MzdUlPMnpOeThVQlJQU1JaajhFSU5KUFNzQUdKYTIxbmx0cE9ydmNlRzZsCkFRR1VFbXhJRHRTbkJsc2crRjZsaDFvek5BWmxoMjA1RVh0bTJNRkw1Q0dXU2h5NXJJaUxrZ2M4aG5nUVFLUWZNbEFpL1VqdTBlalQKcm1XdEg4azlVTktxQStMbzRRdGVTVXMyTGRLUEE1ZTZFdWhIZDQra241OWZ0UDBqZDlXTDRUMVF1WHUwdkJCd1I2c1R3c0VQSC85ZwpoY0V1Q0RjRzRjYzhYd2VVdHRvR3BhL1pjQnBrTXBDK1BjaXRCNHlOdE9kRlBWQStZQWhJdE9rcDNPcUFpclk3c2VJZEwxYXkyNFVWCjczdWw4QUNwUG05Z1NONG15UytTWm1Vai9Yd1R2dkdpWE94Rk5XMXVPQ1VWU2FhVXhTeWV5aDJPSHQ0cGkxeldTMTM3N1lVSFRpbDQKTW4vUGdlWHQycUdjN2Jic3JkYXN6UmI0S0I1b3kxNlpXelp4ZnJ1MjJnWHZXWDhLMVAzb3I4WGdzYmpJb1hhdFo3elpPNjE1b1h1UwpJNjBRUCtmTE5PdzEzK3VVVG5ySGpjL3djd3F2KzB3L3kvaWJQRnp4bEs2U29GejVVSjYrSkRyZG5TUEdoQnZqa3VKUzZ2V2w0bGRZCllDY2IwdlVQZFFDWnUzUk11L1hqQzJINmxYNk94U2lvOUxpcitFUWtka01maWR1WTh6VXZrM3UwbTV6VGFpL2Q4RnpjS1A1UTNFR3MKY050Tys2T0xkdlFWTWJXQ0hXZmhyZ3Uwd2RlZUFCektDcFRSa2RzeUZUcVkvTnZOY2VLWXVTT3VQc1dqUlM0T0hTNmVQSUFPY0FmbwpnekVBb1lGQVB6bGhzVmNHM1FOYzBPbXozZ0NscnRWQmFjQ0wxVG9vZGFVMlpia21kYkU2ZGVseXhhdjYrMC9ja1lkRDYwOUgvSSt1CjdEeTh1Zm55enM3VHU3dlA3dTFEVDhmMm40N3ZQaDdiZlhoL1owNW5FQUFvTkhQYlAzMXJkZXJHMHYxckM2Tlhwa1lIeCs1NUc1NjIKL1Jpcy9tZmtrcmc1UnFqcVovL2xjeUhoSWVoTVFGL3dFandLVlo4SlZLTjdlUEJra3I4T1N2YlZwUmpYU01TeWdzMllKWVA0RFRTdwp3azF2QVJnbzZMd2NjeGRzT0lvajlsdHIvY2N2Zi9rNFAvNTVZZkxyOHN6dksyTHJEL1Y1NmZIbmhVY2Y1K2Zldlp3NWZDckdQNEdaClg1WW5yeitjSEo0Y3Z6STZldVhhUkYvejgvYk1VRk55cERuUFo4c08ycUdzZ0EzQ3h6a2hCNVFiRlVrR2dvcTBLekNwREtJamdoVDkKbEpDaWE2aEttZEJqRlMwcTRXUUZySVA2d1RUNnRFUHd3dzB3aDVmMkVmb0pPZE9EN1drQlI2cmZEcVVGUkdMTmE3MzUvS3BBejgrTAp0ZENacFRycTdISTlCRjhBcGZoYVV2MnQ2VUZiUmtpblQxYklEbVdISFJRY05PSFFTUktTaWg5ZUkrNmNzSXZLRERzdHl3cTJXeVlNCkZOUzI5dnJGNXBiTVFIdHEySmtDcWt2QW5SUy9YYXNkUy9ZNXNjdzFjUlhsOURWSDhwbzlhZDErZHQxMmZzMld0R3BMWGJOREthczIKT1cydmp6SHZpWGQrb1RWcHNRMUtYcklsTHpxU0Z1eFlNbng4YlR2L3luN3VwZmg0L3BYajdBdmJtZWR0MU0vUFduOTYyZ0w5K0tRWgorcThFRVArVURKUVRjR2I2SEFBZ1lGRHFTbXZxV2h2T2hIQmRUUE9Ray82dndQOUlDVUFVU29nd1JDOTBmUjVnbGFXQmFJT2tLcUVFCkpJcWZiMkk2QlZmWnprbmlVWitzT09Yc1h3VTNscW5pd1VwUE9yQy9wQjhFRUkramg4cmRzU0dBMEVER05aM0ZtcGUrMXljZzlHTUoKSU5JUDMvU2pBa2hjNnZDdkFJai9MQU1BU2ZvNUJVREcxSWRkRTBIYmdQei9hd0FKM0JqaUlRbnBjeUFHSUh5c1h4THd3STNoVGNRRQpmVFFKNVc2MTVXM2JhRytRcnA5ZEI1bmpkSkhFTzNSWkpnMXlLUG0zbTFPaEl3VSt3L2c2bDZvZkFsRGNRRmI2Z1N6MWs3Nm11NGYwCkE2VXQxWWlXcS9NWDY0YWZ0NjgvSGd3OXVSSitkSFg3MGMyTkY3ZEJQM3ZQUncrZ1ovY1BuazJBZ2ZZZlQrdzkwa2RCRzlvUUtQaEEKR0dobDRzYmkyTlhac2VIN296M3REMjJaYTNVL2l0SE9KVEhnQ1ZZVGdIamFrenA2em9WcUlmb1VBUVFoZ01oQUhFQm9JUGd2RmZmaApZcmZPNEFZU00vaVFzeUlrN2lNR0FLb051MlpXaDkrL3VQdnA5Y1NYUlhIeUY3b0hMd0Q5ZFdudTArS2pqd3NQUDh6UHZuMytZTy9KClJIVHUzdHIwemNYeGEzUGpnOU5qSTNkSGgzc2Y5TlFzdE1OM09DUGFtaE1RNGlFRGNRRGxSTVJDRHpjUU1nZ0JwQnFJM2h0TDRac2wKTlpVK1dDTHVXT29IQWNRRCttUkVIT0tjZG0wcFgveGtDOXZUUXJiMG9BTURBd0Y5VW54dHlldXQ1MWViZ1RoZ0hkU1BCQ0F5RUFSQwpBaWNsclRVaGhxQTBYMHU2dnpVemFLUFFROUpraUlaRGNIakZGTkJZbHhsd1dKWVNhb2ZTZ3UycGdEbWo1Q0I4ZFBKSVBIQ0l4K0J3Cm43YnVRTitJZk8zMGFiSlJraGs5eVN0dDhRenhHQ01mUFFBUWh1NDVEK2g1YlRzM2J6OC8zd2IwT2Z1aXpVam9COUNEY2ZyODhMZ0oKa2dHa0dFZ0F5RERROXdLSVQ0UHlnaDI1QVE4dWlvSDd4QzVwL0Vib0lvWVhoL1o5QjN0cUl6akJvSWhiWjlDR0c4cUx1U0I4TEdFSQpvbGN3N28zRmU0T2Z5aUQ1VkJGRWorV1RXcWFUVGVJZVV2WjQ4cVRuSlJXWlVreGpHVUZIcXVUWWc1Mnl6cVZ1OU1tem9nOXdSNnVWCnl0bHVnYkszbXJNMm05STNtdE5pVFNtUnBpVEFUYkR1VEtEMmpMOE9RdlJnK2owdXRQSFArVkFqbGhSdXdvd2JuYlpCL0pJL1NCL1UKanlXQTZQL3Y5d09JTGhST0FNS2JYWEFBb1VXczlmUC9BUURSV3BnRW9LSmpiNUhZVHlOR2xRUWcvV3VNVThBSVFEd0VVT20rcCt5ZwpvL3l3azdaSTQrYm9uQTFiN3FZOWI4dVJ2eTJtUG5GWVdFRkVsUW9sd1RxZWNjc1VLZFUwa213dytMZkNwT2ZwVnkzUlE1Ris0bW5MClhyVHlCUWZtN0ZDTFNQTUI2UWZvdy9XRDlFbGZOdlN6VkpPK1VwTzhVdDB5My9yOFNXL3M0WlhOdVd1YmoyL0dYdDdlZjNsdi84WFkKMGN2N1J5OG1vTVBuazRkUEp3NmVUTzQ5dWIvN2VHenIwZjJOUjJPZ0JEQ1FiMUlZNk1uWWxhbXh2dUdwOXFxWERUK0hhdjRaRWRENQpVUURJNUJ0SlBQalk5RXlnRHVKRElDamRWMCs3Z3ZqbWFOb1dyWTZDQ3FQdThwQzdMT3pNMmJBRGdMd0I3OXJTOWEvUFIwRS92eTFOCmszN0UvYiswM1Q4QW9GOWZ6NzE3TVl2akgvanZXcHE0L21Kc1pPWmUvOVM5Z2V2amZiWm4zbktmQzc3aE9aRzI3TENPSGg0QkNKTVkKaEtlRzRjNW96aUNWUGtaaTU1QWF2cUZTazZDamh1NmhwU1ZPSDlJUGlBZCttbVZFYkpEWXdSTzBwUVhhTUVhZlJoRFBUd3MxbUNXQQpJUHBWaVVSSkt3MHBhMDJwNjgxUW11R2hqSUQ0Wi9FeVFuWk1wUXhHTXBQSzhOc3Qwd0FYcHc4Y3U4V1N6am9RcDUwSHVERnF3MUxYClJDbXJyWWliODM3SE9aLzkvSnA0REJoSVg3SERSL0ZMeTNaS0RIV01hTFJENmRaNTNTSUM3bWlkZmRWNjlwWHR6RXVCbmpQUHdUb3QKV2pwNmdEc3FmZjc1cUJHS0F5aUJnWFFBYVFiNmF3RENaL0NHcWZtaHpyeHdaMjZvSXp2Z3p2UTU0VHVWc3U0UStXd0dneHdvVU1BcAp6b1J3VVl4U0dZVFJLNWdNaE81UkpZUVlvcE5FSUM0ZTZkUDQ4elNyVDd5bkFiTThzWVVZSklFcG5tSWF5d2c2VXJURUlBMTdhTklqCjdmS2hVN3BBUEh5MUMvVWo1ajI3clZrN0xWRG1kblBHVmxQNlppT1V0dEdRRW1rUU81MkRZcHN6Nk9kbm56N3lJUUFSZlRpQUpQMFEKZ1BoSjc2cCtPSUE0Y01rOXVINnZybitKNngxWTZRY0JSQk1nWEFMakFKTDE4LzgyZ09MNnNRSlFvWGhwQ1FEaHI2cnJYN1FFWm1FZwpZek1RN296R3F5WkN5QWd3RUVnb0VZWW8xU3R4dUtqMFFXZnZPaTFUL3dUOXp6Rzdod05JZlZKa1dFY2QrV0M1WUIyZTVoNU9IeHlRCjBLWVphZkNUc1ZJSDdvRlNsbXN3ZlE2MFh2ZURyN3BvcGZIdUMyL2s0Y2oydyt1eHB6ZkNMMzRSQUhwNUR3QjAvR3BjTTlEVTBUTmgKSUFDUVpxQnhORkJrOW01Z1doaG8vdjcxMmZIQisyT2V6cm0yalBYNm55SzE1d0xpTkhoT0hJazcxazlxQUVJREFZRElRSHdhbEJsbwp6QTQwNGQzajZVSkJuRUZhWXZ3REVrcmZhTHNRYmg5Ykd6eWN2L3Z2WitMS2g0QWVCaUQ5L0M4eC9ubjE4UGo1akQ3K21icjFhdnpxCjA5R2g2YnQ5RS9kNit4OTRxNVk4OEFOY1hPNDU3TWdJdDRGMUxBRWtiS1J0ZGlFRFlUZ0tva1V4M0JqME44cURueTFXcWRhUjB0MWoKTEMyaGUwZy9CQ0Rjc29QQlk0MCtMWUFWY0k5R24vbzRmWmFxUlFrQVJNTWg5VmR4TWtUUmlJaFd6WERoRENQeEtLQ3hUcVVQbHJOcQp6MTZ6Wi9yZ3p4SDZFZnQ2MTJ5WksyMTR3aE1GbXNHU2ZLM24xMXRFYTYxRzJtcVh0dXoxODJwcjBuSnJ4ckl0YzhtV3Z0UUdqK1BpCjBSYTJLT1NPTnQzUnJZT2RlZFYwNW1VTHVBYytRaisvYVAzcGVRdGswRWR3eDBCUHE1YWdEK2tuRHFDY2xVNFZRRXhDY1FEbHIzZUkKRWdBSXd3MUFRSitpVURjYUtOOEFVRUhZQ3lHRGNvS2UrSzRvYlJSRTY2UHd2WWIvV3pxREl1MFVBa2hsRUw1OFZRUHhtWkE1c1Y4UwprekRFUDQwbmJWa3diOTZVVkdTWlNpVlRpbWtTRVVmZVZHRmVZa2cwNmJIYzFKeGppRWRhN2NyUnQvam9PNTIxa1EvU3B4N29BejlWCnhVbGVBYkh5WmR6VHRCRWtkTVl2bmp3WGpFOTlFdEFINy9SdWcvZ2xmNGcrL0laZit2akhQTjRqL1hBQTBUbXVDS0Q0VGVMTTYxOTgKRDVDKzYxbXppT3dlNDJZWEp2UXdES24wK2E4RmtIUzFLa2czelpIWWtrOEEwclpDQ3dCVnZ0RU54SGRBaTJlTWxTODVZMDgwNmdlbgpRUkF1YjNFRElZTlFRb2loUkI3aXFjVDVSaXBsRW9UL0dwYUpmMG56Rmg5Q0Q5ZFBEbkJISzF0YjdlTDBvVlBIYWMyTDlJUFFvWVIrClZtdEZhM1ZRVXFEbWZ3U3F6L3RxUFF1T3hjZjkydyt2Q2dDOXZMWDM0cTRHb0ZGaG9KZVR3a0RQSnFHREorUDdqOEZBRTJpZzJNUFIKME15ZHdOUXZxL2R2UHBzWWVYSzMrOVpFZStWQ1MzS2dQamxZZXdxQXFQUGhPb2daU1B3bGhiK3E4QmNXL2hBMEVHZVFOZzNTRGFReApTT3dIb3ZQazZkeTNnb0RZSDYwQnNhWGQ3MWxjdlByNXhmMy9lRGI1WlVIYzlSM284L3Z5dzY5TGN6cUFRRDhMajkrK21qdDZOcjM1CjhINXc1czdpMUkzbjkwY2VqZzVQM08zL1piekgrY3hURkhKbWJqc0ZnSUwyckpBQWtHUWdEaUF5RUVtSWI0NG1Ca0VxWlRENkFxbGMKK0FsamxXb2RLZDA5eWtvVHBVOWN0R1VwTVpMeHQ2YUJSZGFha2xZYXRJa09wbzk4Z0Q1bmxtdEVDbmNzMGNOaGhBWktSQ0x3RUpJSQpvMG1NVktyZlpwbjZsUmh3SjMxTjdGMUoxVGIzSlB0c3lldHRFSUFHUTk5UTUxWmJXRzFVeG9JWThKeFpianUvMkpiKzJwWTFiMHViCmI2UDFMRW9mOEx3V3hPRWhkMFF2bXZXZXQrTEk1NmVuWXN4RHN4K3pmdURUTm9nKy9lRnhDeVlBZEtxQk9yOGZRSGhaSUdrQ2hPVUYKdlhpNUlQRkFPMWtzTStEQ012eE9RQ1V0R2FiN2JFaE80VlpqZ1JOS05BM0NseTh4aUFZR2ZESmtMbjZpYkNJTUZSa1hFUkhSWmdXegpoQkk5cjZhU3lKUWltOU9oRTk5VVlkNi9uR2pTbzE3RkJ3UHJHR3RlcG8wK2VFV2YxR2h6U2tTY2paa1Vhb0NmcEpCWTh3clVvbjZNCk1VK1R5RW8vVUxJNG1SUDgxSXlsYXVlNmkwQS9HL29aNzNqT0Z3SUkzVVBSaFg5SXJvQmFBaENkMFVvQW9tdCtXT3FIQXloK1ZSNHIKQUgzenJDNlZQdiszQW9nV3VjVDg1cmk3N0tTYkF3aCs5UlFBV1JvSUY4SjRlS2NJV2dYRzg2Znl0dHB6TnV6Wk1abEIzMHoyalZIZQpqcmhubkpvS25XKzZCLzk5cE9RVkxtWHdRL1RKQXZIZ2FoZWpENTA2YnJuZFI3Z0gwYk5hbTd4YW03UmVCNTMzMVNYNTY4VUpXY0hxCkh3STFGYXN0VTgrN3hTclkwNXZSRndDZ093aWc0MWZqb3BlVHh5OG1qcDlQSFl1RnNIRnRMV3hpNTlIOWpiblI4SU83d2VuYnZ2RmYKWGs5Y2V6VTZNRFBXNlg1c0sxaHBQQzhBZFBsY3FQNmNkZ1lsaGM5dy9YQURuZEYvVmZ5ZDVRYXluQU5wRElydkNpSUdRVVdCVnRCUApacVRsVXNCMmU2Vm5kLzdXSHk4bi9udzVaUUJvRGtQOWZGMTg5UDcxb3pjdlovZWZUTVZtUjllbmY1bWZ1UGI0L3BVSG8wTjM3dzBNCnpIYlZMWUZkN0ZsYnp2eW9xeURVbmgxc3l3MjNTd2FTQUtRYVNOMGJCS21Vd2VnTHBPaUtnbEtKeEJNZitURGx4QmVZMkpPNDlwU3QKN1hsTlhXbE5XbXc2dTFCLzVuV2RpSzEyb1g2d254WXZKd0xRS1hFTVNjOGdobWovRUpTMDNHUlo4bnFyWlNtckxaYWQ4YldlWFc5TgpXb012YVAyL3FMc1BzTGl1TTIvZ285NlJCS2k2SnRuTkpvN2pJb2xlaFVDb0k0VG8wNGZlZXdjaHloU20wc3MwZW05cW9JYUtaVm1XCmszaVRiRFp4bWhPbk9KdXNOeTdxdFB1OTU1Nlp5Mlh1Z0dYSFNiNDh6Ly9odVhOQmhNaGk1amZ2ZWM5N1RPMjg3ZWphc3owS3g2Tk4KUk05K3JSRGkxeUx3YXhGQmZKdUZ2azFSa0dNMWduMU5BaGVEME1rb2ROTUx2Vm9FN3MxOFp4M2ZGUmhram90V1NJWFd6V05hM2pLSgpwNG1IWXE3MzBFcyt0STRmazNpd2Zpd01oR01DRUdVZ0pvQm9Cbm9xQUZFR3N2Z1U2TWV2SndrekNBOE5JaytTUjluWEU0OGF5N3RqCnlBb2IwZzh3Q0lWYzNjU21wamU5NDc1M0hHcENGRjFDRnFHdjlXSUFVV0ZLQ0w4QVVQRWZtOHVCOFFRcXBnNEdSbE1uTTB3U3pRdEQKTm90RGg3NWppeDZMU28vRkNCODZmZkJPTGx6dm9UWjU3UjNtZVE5eHZRWTU3b05DdHdHQmF6L2ZwWS9uM011ZEM2MzJnL1hqUE1CMwpHb0F2NHpEMVl3R2dPZjBNQ1VBL0ZJRHdqbmQ2NFdkeEFGSDZlWG9BMFVmK1dGU0FzRTZzNnVmL0V3Q1o5bkROQjlDUks2a0FJSFE0Ci9NVVVlaE0wUFloQmpQWm5mQTNXWWVybjJJVjVmVy80RGNDQnMvQUxOYzhjRnBVaDZ6a2I4NFhDOU0xQ3lySDRuNlorR0J3bWZYQ28KcWcvV0R3YVFqN2tqR05PSDJqUU9zYW9maUx1WlB1QWVGL0lYQWY4dXZENFU3dEVic2FjdndyMlhrMk5JNnEzTFAxTmZQTko4bWdSUQpCUWtneVJWZDFSV3Q0a3FMSEhLMVNYRUZyWVVwd0VEbjYyU2pOWkloTlJxTjJGdFYyaVVyMGNrSzZzWHBwWXE0VUhqNzI4OTJJQUZFCjF3L05RUFAwUXhrSUQ1N0FYd2J2WGp6NlRQSHNRd2RsUUx4NjBMa1orUHhVZElTcWVVb1FuVUVRQUpEbnNIRHZrQ0N1TTY3VmtIZFQKSzc2cmxRTjNjTXZ6MjIwMUVIaDRXMThOQVFOZDA5VmNhbEtmcTVIMXE4cmI1Q1ZOVXRUV0xhL01QaVhPaW10TUR1aU44aHNWQXFrQgpRQWNHNGc3MUl3QlpHSWdKSUxxQjhDQWNQQkp3YmlvZ2V0cVBzUm9tZlhDbzcyQ1pSZDFEcDQ5Rmt3MXU5UEhzRVhwMEM5eTcrRjV0Ck1SN0dLRmVkd0xHRjdkQWM2YUNOY05Lem5RMm0zVjRvWnZwQTloaE9XZ1hRUEMxWmZLbzF3ckV0MHFtZERSK3B3RU9yQmtJeG1PSmkKNU14TE84OXFtRlRDY1lCUEdYbCtMYnlqRGJ5VGRmemdXbjVJblNDNFhoQldLOElKclJIU3cxVkVRemp5S0hhVktGSVdGUzRSUXNMRQpndkR5eUVNcWpsc0wzOEVvY05ZTDNKcDRFQ2N0Yng1NldnUnptZStlZVFDaTZZY3ErVkFHb2x2SG9UN2F3ajA0Y3hXZ3J4eEF6RHRvCk9hdy9sU29GbVpPSTQ5Y2I1NHUzMlBXaFJuVFFENnE4bVp1OElIajdIMzBISUpZUS9SZURMdnFGUEVSTkNsa28rQXVvN0w4d0x4U0cKTEhzNTU2T0hmaDlEaHdralV4aXlXU2pNdmdwVGR3WHU0L2tpK3FFQVJPa0g2T1BSSCtuZUYrSFNKNEE0OS9LZGVuZzRjQTNCMERFdgpmbkZSN1ljRUVKTStGSUNZNVIrdllTRUdFSDNraittUVAzTE55M0w5YTM1ak94TkFGdnBaQkVBV1BVQVlRTWd1L3lJQVFsaTVsTW9FCkVGWHlvVGRCSDcrWVRBR0lzZzY5Q0VRL0lZdXFBRkZGSUhvcEZQZmNBRGg4aDBWVUxQQXhMK1RKdUU4ZkpuU3MrZ2F5MFA4MHZtOVIKOHNIWEIwWmlMQUNFOWJNWGozVm02QWNEeUdMTkM4ZWxJOXkxTTRMU0Q3d0hjQUNnOUtQREszeTcwZHp6VndZalkxdmpPK3Z6emplVQpuRUU5UUJYajJrcFNQMUlNb0t0a3JyV29KcHFWVnhxVVZCRm9XQ05HQnFvNjNTYzlwWk1YTmtneUZKSUVYcE1BRGRQcW53T1EyeUFYClFnR0lRby9iSUJ0Q1BhUkdybU1BVVFieTZtZlREV1FCSUthQmp2U0pYTThJQUVBNUhVbm5kTVYzVzZSdjZSUzMwSmxmaUQ1MzIyc1IKZ0F3MW9KODNkWWhCVjFxcXh4dVVJOVdTWHNWcG82eWtVVktncXN5cHFzZ3FFR2Z3V2hMUVFTSm5CQWVIb3RFR2w4RzRZd1BSWHc1QQoxZ3dVYlRYVWtwbEZMTjFqam9WN0xGYTdMUFJEQVlqU0Q5N1dEbkZ1RURnMzhod2F1UTZOQUNDT280N2piT0M1R0xsVTZ3K21ENWxnCkNCTkE5T1pvS2hSdUtBQlJjZTdnb05EUnd3QVFuVDZ1clZ5SVV5dkhhaXlkWkk2N2pyTy9rWE5Td3hGSk9jbmxuUFF5YmtZNUwwM00Kenk0WFdpU3JUQURKS0l1RnBKVkdwNVNJa29xRUNRWDgrSHhlWEI2WFh4QWFJSTMwYU9MdE5nb2M5SHpYWmg3RVdjZWZoeDR5OUJXdQplZlF4MVh2NEVFby9WS2grWnd3Z0lNNmV1aWc2Z0tqRkw5TVNtRzlia2dXQWNQc3pSUi96SG5oVFA1Qi9kd3JkUUdZSnpVMUV0QWlJCngyb28rbGpFRnlURXlMNmVXRk9CcmhzdFhucjFSbE5OMDNNekVvWmljUzh0SHFOSC95V2hZd2kvUC9BL0Uwc1JCNjRocHZlampCTDkKL2d2eEVQK3hCQWkreGcvblZmak4zY1FRSmxDb0hMcEFIczE5RG4yRWgzNWpNZnZHWSthNlBzMW13c0R5R1l1R3o4TFhRSHd2b0dzZgp5S1ZZLy9Gb0t2dkhvcWpnb1hhNG04ZVhiT0x4SWNmMitKOFZRdmFmZ1NjZ0Vma21ETDFnN0JzeWpSOEVuYmlCVjNwNUxqMWNIS2NlCnpyekNqem53TlZUYyt0QWtleHpYZmxQY0JnUVF2TXNkUWgxdWFoRzZWdWxybDhBZCtzNHZxcVBMYnp6ZGZ5ejl3Qmc2a2VmSUdIcmwKRGh4UERpSmZ6Z1BRMGQvb0dPZUFpOWtCbDNNQ0x1VkNxTU8vSUJRc2tIaG9vVzk5RDUvSXhxTU84Y3hEMmtPVGg5ZzNDaUQ0R2ptSgpaaU5LUlhDTnY0WU9LYmhBMzU5eEdnWU9ya1hoVVBxaC8vQ20rWTNtb1k2bXhoMXlVQ2ZRQitsa0xPWFlwWFJxWUJYY3BGdUh1UVJtCndTQ0w0S0VQMWhpVWdQOTlVZ3p5R1JUc0hlRERSd2o4UTZKUWd1SGlmeGJ0cUlkL2FmaWZISDVvK3JkbnZra1BQa3VPSGd3amk1c1cKZ1Q5bEVkL2hLSng5UXlJY24wRWhHZlJ6d2cvczNjK0RlUFZ4SVo2OUhIS3lzeW5lblpGVWZOckpmdWRPdG1kbnBIc25vQ2ZjdFRzQwp0UldibDVib1FXWFJBYTdUUUlSSDkwbW5ua0N2L3JDODFzVGh1dUt4eHNvTERXVVhtekdBcWlaMDhtdDZ4VFc5aWdTUVlxSlpEZ2E2CjJxUWc5NFhKTHRUS3p0ZElCelZsZmZMVEhkTFRCc21wQm5GdWlTd3hxSVgvMGlqWnlqUEE5UmdFeWtSQzNBZlliZ1BoTG4yaFBuMWgKYnQwaGFNVG9xTUJobU9kSTN2Zm9EWUZmWjZ0eEdFR04xYzVEU0V0b1lIUlBoRTh2MjdzcjNMdUQ3OWN0Mk44anhCL0paUytoWnovdgpjQThYL21aQ2VoUHFqTVYzYXNXM1c2cXVkeWwrYkZTODAxbDl0eDBGcjMrUkFLcTVwUVVBMVYrcDBZd294RHJGcVJwNVlaMjRzS2FpClVGNVJFTjhVRmRhT1RucmZpeFpWVVFmMFFmUW1GcDM4QmNHNHdkYloxeStDV0FDSUtTR0xSVEVtWlppaDhBVHhISTN6R0lsMUg0N3gKSk9NMUZPTTlITHQzWks3RkIyL2d3bk02UElZRXZuM29wL0xxRjdyM0MxRE51OTgwMFlQY01ZNzJQWG0yUjducGhhN05BdWQ2dm1NTgp6N1dhNndvZmEvZ3V0WHluT3A1VEE5dXBKY0pGaDFiQm5BeWhFT3dlc3BiRGRqRFNLa05QRjNxbGh4NTZRWWdlM0h6TkRKTStpd01JCnhjQStWTStKa25DeVR2R1FjaXFqY3l0aWNzV3hrSnpLT0VodVJWeGVaWHkrT0FtU1hSYVhXNTZZWFo2UVhocWZmQ28yc1NRdXRqZ20KcWlCYWxDOWtueFllVWdzZHRZSmRCcjU3TTkrekNWMHZYZ0ZpMW9GY0drWE9EVUtMT05VTG5CdWluT3BGRm5Hc0UrS1BwdFJHNFRqVQppQmFwQU5GclAzUDVld01JSHliUE5KQkZzL3BjMHhiQ0VLbnlnZWk5Z3pGNG9vejM4THkzQy9US0VINS9RREVJMFllOE5yMGZwVEVJClgvdWVpL1U3SHdmb2dZOXdqUi82b1o2RytXME41bTVpT29ib3dab0J5c3hWWmVCNkRIM0tzbG1IUkE4Nnh4c2ZXVUR1MGpMOUtmalUKQlpIMWpLSW1IcXF1Zy9XekQxM3o5NDBLSUQ0amZMVElOV0NhTk9yYXg0R2d0N005a2M3ZEhJaFRGeHZDcEk5TEh3OWlWVDhMQVlqYQo1MFVQbnBDeEVJQ1kyNzRnaDg4bUJwK0xEVG1mRUh3aE1YZzhKV2c4OWNRWU9nWXU0SHphVWZLVVhMZ09Ia3NQSFU4TEgwdU5HRXVHClVJRDRHd0ZFcndiUjgwVUJ0RGg5RmdLUWhYNllBRUpBR1VzNU92OW9GeVpyNktHdmZERkRtL3N3YnlTRXhUWjRhaE1XVmFUQm5vWmcKYXZpT0NQWU44M0hnR3YyekhFRTNGNHJQc0hBT01VOEJJQXYzd0IvSHNYRFAzZ0dCT1h5NmZvQStPTjdkcUIzWXF5dlNJbWlMZXdlYQplZWplRVFINmNla0tkKzZKb01vd1Znd0VBQnFNZE84SmR1MDk0VFlRR3RjZTIxcWZlN0d1Z2c0ZzBNOE5vK3E2UVRtaFUxN1hLc0ZBCjExcFVBQ0J6VHpTYUQ0UWFvcFVWWFZXbmRkSlRUZUlDU1ZVcXJ5a2Fma1B4U0MwWGRJWU1tcWlPUzBIa0R4UHBQc1FqMi9VRWJqMXMKSUF2NlA5N0h4MHZQVEFBZFFzZU84dHk3VWZrS3pXRWY1cU54dzkyUnFFYmJ4M1VuL3lyZ0w4U25sN3UzanczWlA4QTUwTTlMN1V6cAoxWisralJhL1ZHKzFxYjVua0grL3ZlWjdiZWpzZHdRZ3NnSUUrbm1qUlhPeHNXWmNyUnlVVnpUTFM2cXJDbW9yQ3pRVmVaTEtQS0UrCittUW53c3JlRWVTVncvMHgvZ09tVXgwb3lqd05nQlppRUIwMzlGalZ6ejcwNmpCdjN4WlYwY0hQWFY3a1hGYjB4K0huSWJjRXdqTWIKZFI5NGhLWVdkUW4zdGZPOTlBSVBMYytqaWVkV3ozT3RNNkhIclZaZ0JVRE5iRE9Ba0lFY1cwUE1tNy8reFFEa2F1UWNxRWNWb016VApmQXBBZVpJNE1nbjVZcFFDU1dLUk9CbVNXNUdRVjVHVVU1R1ljVG9ocFRRdTZWUjhRbkZzZENFWVNNUXBGUjVTb3U3bVBTU0FQQm9GClRybzUvZnlUQVVTckE2VmdBOUVaZExBNzlSOERJS2FCOFBnbWFrZWZhWTJNN0dZblNVU09XK2lQSWlQMEpuY2g0bE5VcUlOVW1MOGUKZEJqNXdydGJlRTQvRTJNMSsrRVovMndzWE9DdndRL0owQm9hY0U4eG84dkJoQ3A4bHRiNUtKOXp5Q1ZvQjlaWk5JVFgvN3dJUXArKwpnKzhjSGhVZU9pTThlQWJlTktOaFBQQVI0ai9DcDNwM0xFTDFNcE9OelBpUUNpNEVWOGh4a2R5MGd4MmZXZEVWRG5IcWprQWg2WU5ECmxZSWc5S3FQVmYxUWdiZEhFSThCMDRSRGFzd1BuVDQ0ZFAxZ0FPRjZEMTc4b3UvZE8zSXVDUURrZno0ZGN2QmMrcUVMNllmSE1vNk8KWlFaY3pEeCtLU3ZvWXM2Sml6bEJsM0pQWE1rTHZKSi8vSExlMGN1NVJ5L25XOVVQSFVEejlXTnlqL21nVS9yWkY1YjBXUnhBRkhvVwpCeEJUUHhZQW1qdTdnenJYR3AvdlNLNXRVWlBLVWFmT1dBcmtLUUhFRkk5RjhFSVkxUkpFeFdKekFBN0FpTnFtamlXRUFZUXJROWdjCitKcUNFVVlTUFhqcGlsbkxNVmQwck1maW0rQnZUbVlPUGQ3OWZDcnpkbmpSRnJ6UVRHY3llTVF6RmR6bTdOb1o0ZHdKdnlEb2FCZXkKek1Oc3dUSDNHdmR6SFljNEh2M2hZQ0NuZ2JDQWJvR3NPV084cmhRQU5ONWs2Z0VDQU4xc1ZVT1FoSFFxeUhXdEdneDBtU3dDWVFDZApxNVdPcXNWOXFrcWpzbHd2SzZtVFpXZlZKZ1Fib3pCb2NOQkptZjNvUFl3M1diaEY3dW5sN0NONUI1OTFIWXh5R1lyQ1pWMDZnMHgvCnRnZWVGZEhMUC93K2V2WUpQRkFUTk5vQzV0UWI1dDRYc1crQXUzK0F0NzgzMHJjcmJGOVhHRnc0OVFRRnRFZG90R2x2R21TM09sVFgKZGJLN3pmSjNPcXNCUU8rMEl2MVFBTHFwMVZ4dlZwMnRVNXhWU3JxbHBZMnlFbzIwc0xveVgxNlpXeXJMQ2U2SVB0cUxmdXYzRGNjYwpHRVFBMm85K2pEbkJVTGg1R2dCUitWd0FXWVI2TGFEVzJuQUhoYTk1ZVFzOVRRMmdTZy9hdTk3SDJ3di9ZTWd1TVpkaHZ1dVFFTDdBCnZ5ZjJjR3YwNFNiaDRXck9RWG1rcHlyU1RSWGhxb2lFdUNqWmJpcSt1MXJnb1JHNklBRHhhUURpT2pkRnVyYVlXcUVCUU01R2F2YzcKbTR3bGNSWVBrejZMaDBtZkx3Y2d0MVl1ZlBScjV2TGwzTXd5UVhhNU1LY3lKcTh5dGtBU0R5bVVKaFhKa2t1a0tNV1NGRWhoWlZLUgpPQ1cvTWptbklwazBVRUppU1Z4Y1lXeHNRUXl2V0hSRXhuZHJFVG9hQkc0dGZFQ2tzMzUrNC9NL0hVQVFPb0FvQS8wakFXUmhJSXM1ClRoWlRDaWdEZWZiaHdKTWcrcWVNUXcxbW9NS0VrUTk2TG9iM2wxRllRampVSFV3ZmZJZmhKRnBQQTFpRTBlV0FjMmhFZEhDRVhBc2cKQ3pOd2dVNGhHRVdEQjdGdi9FYjVFQk4wemlJSm1lYnhrQi9oYTBBL2RBQlIrN1p3ZFFlMzhuajBSN3Iwd252V01LZnVVSWZ1a0QxZAp3YnQ3UWlCN2VrUDM5SVNiRTdHNzI2UWZWUDdwaWFURTQ5ek5XVWcvVnNVRFllckhLbjJvbzc0b2NjNWIveUlCUkczWncvbzVTcDdSClE5dXdqZVlYSDcrWUdIZ3BBWEp5TEQ1NFBDSG9ZdEtKaTBtQmw1TFFxVmhYMGs1Y3kxZ2NRQmI2d1FDaXp2bWlBMmplc2hkdE9Xd1IKQUZHOVJGUXNBTVNrejBJQW1rY2ZCb0JNcTJCaktRZlBvMDRnU2tWZlNEd1dvYU9IamlGcU9ZemFIR0RlTldrcUMyRUdVYzNMZEFsUgpnWWRXOVlOQ0srcmdXczdlSWRSNndxUVBEdjNiMHJGbFFSOTREY09aMjk0MTN6MTRFenNWM09NTWNla0lCL3BBSERyRDRIMkNReS9hClYrVThaR3ErWVJySXRZK3pad2pWWTd6UjJCN1VzcE5tVEJ5cEx6cmZWRVkxUVYvVFY0RitiaG5WTjNTS20zbzE1SVpPQXdhNjBxd2sKaTBBbzU2b2xaeldTZnJYWXFEeXRseFMxbEdlTFpTbkpOZkZPZzVHT0F4Rk9neHpYSVo3N2lNQmpHQTFoUjRjS3d3dnpDTi85RE45OQpsT004aUhiTHV3L3l2VVppcWFWdHVwd2d6bWVqSFFaUUtSY1U1ZFlWNlFWL1k2TlJIa01DK0xiby8wNXZ1RnQzbUVkdmhHZGZ1T2RBCkJIak9lU1F5c1MxNnFDYnJibDNaVFlQMGhsSHhBNlBtQjkyTjMydXJCZ0RoM2UrM2pUVnZHbXB2dEtpdk5xcEdhNnFHNVpVZDR0SjYKV2JGYVVxQ3N5QzRYcDJlcjBvLzBSbVB4d0hPcy8wRDB3WDcwRUwwUm1nOGFySi9QRFZOQ2xHdytOL2laSHcrZXBxWW40enFRSjFpSwpuSWtBNlBFQ0hmYnlrUkhKSnpTZkhzRytkdjUrSGU5Z0hmdW9nbk84TXZKNFNmaXhnbEIzV2FSSEZkdGR6blpUOGtBL0xtb2h4Rm1OCkFPUlNUVmFBYW9UT05Ud3drSE05MTdXUjY2U05kQ1lOQkFDYWJ5Qkw0aXdlSm5FV0Q1TStYdzVBN2tiMHAvWnF1V3dsTjYxQ2tGTWgKeWhYSDVvdmppcVVKRUV5ZlVsbktLV255S1VrcXBFU2NVaUpPQlFQbFZhUmtseWVsbHlZbWxjUWxGRUxpQllYQ3dFcUJWMk9VaTBFSQpBSEpyNHFGOTcvOTBBRmt3eUFKQVZEL1FWd1VnLzc0a3Exa1lRR2pOZFlFZ0VwbFh4MHdHb2tad2VsbE15V1RBeVBUck1ZUm10QU9ECm1NSG93UmlhZXdqdmFjZzc1bGkraGJXSXY3bEYxT2VjS1h2UFJ2bWNpZkk2eDk5N0ZzWDdERy92R1o3UFdiN3ZHUlR2OHlLZmMyZ2sKRDRZTzFUK0J1VU50MnZJY1lBTjZJTTVkSVE3dFFhOGFBcjZyTy9xSy90aXJyY2RmYXd0OHZmM0VhMTBuWCs4T2ZyMDdkRmNQMnF5NwpweThTQit2SHBaZU5RZ1BRUXU2Qkp3VWNmRW9mbFlYMFF6L2dZdDZvUTNQdGgxNyt3ZlRCSHcrZm5UdnpDNTMyUEJvVGVDN2grUG5FCjQrT28zZWZRZUtiL1dJYnZXSHJBeFp6amwxQUZLT2h5ZHRDbHRKTVhVNE12cFlWY1NiV3FuMURyOU1GTStXSUFzbkFQSmFHdkNrRDAKWlM5S1A0RmpwdTVtekIyMEhleFNLZ0Rvd0xsRXZHaUZEZlNsOVhOOFlRRGhndERSODRuMHc3YmdJenkwR3J5QmkrcE54alViQzdYUQpzMEE1WjhGUTRzR3JXbFRncFFzSDNydmplQU42R0NXZnVVb1BnejQ0dURJSyt0blRhVHJaRi9VVUQzSGRCMHpCbmNWVTBESEFKSUQyCjlrUTZEVVM4TWh3WjBSbHRhTWsrMzFJK3JxMjhxRE1CNkEyajRnMkQ2cVlPUG1vZ04vWFZZS0NyWkJIb1VxUHlZb01DblJTbVFqT0IKMnBSbDdWV2w3UlVGOVpYWnBWWHBudWVFQUIxdzJLNnVVUGlSNEFkemFvK0F2Tm9WL2xwZnhHc0RFYThOaGdCVzRIbGoveURmdHpNQwpBNGhwb0wzZEVUNzluTDJqSW8reklxZFJ3ZXVEN0ZkNkkxK0I5MEs2Y09jMnRuc0hHays4eHhqcTBCWHAwTWZkM2NkeGJBK1ZHOUx2CjZpVHZhcVYzZExJNzdlcTN1MnErWjBUclgzZU5wdDN2dDQxMWJ4aHFKcHJVOFBNUDEwZ0dxc3FONGxOMWtoSUFrTHdpcTBpV21sQ1QKN0llT2VTZWZSWWRNRTRiZ0RqejhvdlJoNW1rQXhIenJhMTRsaVBJWWlITHZGMEZjKzRVUWVJckRiNXZSZCs1QjYxdytiUUlmQSs5SQpiZVFSUmRnUmNVakFxZUFUUldFbjg4T0M4eUpPNWtTNktua1FGelhmbVhTUGswYm9VSTJDQVFUNlFRQ3FGb0NCWEdyUkdwbGpDeHNiCnlOa1lZVExRUHhWQUN3VzNTRFBqYWVBNnRYUGRqYnpRYWw2S1dKaGJHUVg2S1pMRW41SW1ra2t1a1NTZGxpUkR5aVJwa05QaTFOUGkKTkdTZ3lyVGM4dVRNMHFUVWt2amtvdmpFb3FTWS9PaVRwL20rdFdqSW9ic1diWU5ISjFxMHpNVzFXVENYSmhFVmwwWWhMVjhSZ0tnbQphQXNBV2VpSEtnTDlJd0ZFTjVERm5YM2trV3dvNUlGaXByMWpwbm5lQ0RwMEFGbGhFQzJtRWlpNWNJYld6c2hCNXFaWjVvaEg4TlFzCndzMlZ1TDNBMUdxQVgrRG5VUW0zSTFqNkNRZWVkenpQaUx6SnJrL1QwejM1Wm5mZk1OOXZDQVdldi96SkhCeEFPZFREUDl6TlA5YkIKQzJqbkhtN24rSFZ4ZlBwNStPaDEvQ3lNeGhMMndQTTFQQ2VHUW5hM0I3MW1QUDZ5OXNoTHpZZGUwaDcrcnVFWTZHZFAxeHg5NlBxaApBR1FLMlFPRTQ5N0RvMEtoaCtrZWZGSXhEdjZMb3YvVlFlajZvWTg2cE91SERxQkQ1OUdwSnRURWVnQVE2QWNTZUM0djhGd081UGk1CnpLRHo2U2N2cElXTXBVSkN6eWFIbjArTkdNdU1ITThKSGNzSnZwQVRkQ0h2NUpocENleHpBVVJqaWlXQXpBOHRGNzl3RmdjUS9admoKNjgvVmp3V0FyQ3grTVFDRTZ6MUh4bE1QbmpkMTZtQUQwZWxqZ1JpbWVDd0RYMk5PQUJqSUhQcmtTVnlUdzhFWVlnYnZuOGZkZGJqQgpEczhUTXJja014ZXFlTlI2MlR3UERmQ3RCbjRMY1BiMmNlZkY3SjQ1K3ZSd3ZjQTluVndjenc0T1BXNWRwcmgyc3VtQjN3c0FFS0pHClY3aFRMK3IrQVFDNURNNEJ5TUpBYU9RZ1dSRHk2bUY3OUhFQVFBZDYrUldHbEhQTlpXTTZEQ0R4aEU1MjB5Qy9aVkM4b1pmVEFUUkIKRm9FdU42bkFRT1AxOGpFMVdnWHJxYTdvVVpSM2xCWFduOG9xTDBzN1hzOWx0eVVtanhhVzNsQnAzdFViZmo3UTlmNjU3dCtjYi9udgpydEpiR3VGSS9ySGVSTTh1L3V0dHdidjdncjB2enMyYndBYkNBUUQ1OTBiNmp3amgvOUhMN1NFdXZhS2pReWt4NTB2TGI5ZnJmelRRCjlmTnpmYjhlYi8zNWFQVzduY1hYYWtVRHhZSGFoR0JqUWtOOS9vMzZpcnNHNVgrMmF0NXBVOTlzVjMzZlVQMk9BUUhvYlFQYUFuYkwKV0h0TnA0R2ZmNnhCUGxndFJxT014S1UxVWdCUWthdzhNMGVlSkd5TTl4MHcvWGVINERFRStBNFRORGcrZmNMRlkvSDFUT0pZaFA2TwoxeHYxTWlQMGdING9DZUdYQUpjQmROKzdTK0JuRkJ4bzVCN1ZSQjZUaFIrdkREMXhPdlJrU1ZoSVFVaHdia2hvVG1oSWJzVEpQUGFKCkFoNklCK0tvRmppbytMdlYvRDBhbm1PTkFGNWNuV3U0Q0QwSVFGRXVHcEZMdFlCY0VlT2hIV0ZnSUYyRXM5NVVCTUpkUVV6aUxCNG0KY1hCY0ZnaVRPSXVIU1I4Y0x3UFhvWjNyMU1vTnJPTWxTZWNBVkNZRjl5U0NlMHJGU1dYaVpFaTVKSzFDbWc0Znl5cUJRV21uSkJtRgpGYW5acDVQVFN4TFNpaE5UaTlNUzhtSWpUNG44TlNKMGFxa09BY2hGTC9obkFnaUhzUkNXeERRUXlqOFdRSlI0OXZjblFLZzdGSURRCnRkbEErSXczeWtCV1EyMWx0SUFSL1VVZEx3Ymo0Q2RyNnJrYm5yTHhRK29MdkFiNHRQQzhCd1ZXNHpZS0gva0h1M2tCclp3UUhTY1UKb3VlR0dMaHNIWityNWZOMEFyNVdJTkFLUkMwQ1VSTWZwWllYVjhPUFYzT2psWkhocXJERDlXSGVSclJXaFNlOVVxMDhlN3BDZDNlRwpRQnc2ZzNlMW5YalZFUEFkM1JFSUFHaFhSeEJhLzRLdk1hOTgwVTR0UlUvMFZEQjljQkdJU1IrckFKcjcrNkdoWnhFQXpRMTZwczBtCm9QU0RBVVEvcy9EWXVXU2NrSE5KUVlDaGM4bEh6NlVmR3M4NWNMbklmNkwwd0kxeStIam8ycWtqRThYSEwrY0ZqV1dHWEVobmo2WHgKeDlFU0dGTS9GZ0NhWDZmQjlaNDh5a0RtaDViMCtSSUFRdXR1bjZjZkpvQ3NHNGpjN280M2FtRURIYjJZZGdoTkIwQWRPZmltVmZvOApyWUVXQUJCMS9BajlGRGJ5djVHcDVFTS9oUlFkUk1xWUpVRXhDRXVJMGFkTXJXSE5kUTZobUtGakVVbzgzcjJjZWFHanA1dmoyY1hHCm9hQ3pVS3dDQ0M4UVk5emdKU2M2Z09nTWdpOEF3N24wY1R6SUEwY2RoOUNHODRUMjZOR21rZ3ZhQ2d5Z3F6ckpEWDBWQU9oTi9Wd0YKQ0FJQXV0cWl1dEtzSmcya3VsUWpINnVXOWFzcjJpVWxuZVVsZlRXSy9sN2REejk0OS9lZi9lWWU4ZkVUNHVFVThYaWFtSndsSm1kbQpuOHdTOXlhSis1OFNuLzNxeVo5NjM3OG1IQzkxN0k3NDd2QkppOEVURklEY3owWTVkck45Mm9WeFkyVWR2emozczBlL2VVRGNueWEvCjRZUEplNTg4K091RHFVL2grejhtSG44MC9mSHZIL3p4OG52WEppNzNYTldwSnhvcTN6R3EzdTFBdFo5M091cnU2alVBb0x2RzJ0dkcKR2xUKzBWWmZiRkplcUsvcVU1ZkJqOTFVVVZ3dEtWR0pDeVVWNlJuS2hFaHRMTnBhVDA2ZXhDVjJlQ1pFZ3lqNytFejZQQ1dBTENURQpGSTlWOTNqQlV4WVp2RGlBeHN2MWlQWjFpL3c2VVVlelh4dmZUOC8zYStiNFZvZjdWNFVlTGc4SkxBa05MUXdOS3dnL1djZ09MV0NICjUwWkNRbkxaSi9MWnh3clpSNG81cEg1NERpb3V4RkhGZFZMelhLcDVidFY4Q2tDdTFRaEE1S0tZQUQ2Rk5zWWpBNUVBMHFQdFlFZy8KZXROUkdFOGZKbjMrTVFEYXErZnU2ZUR1YWVNRzFQTVNTQUFWbWdFRUtaZWs0RlJLVWlzbDZUamxZakxTTERCUWZsbHFWbWxTWmtseQpXa2w2U240aXIxaDBVQ1YwMTRLQjRLUEFTY3Y3cHdGb1gyc2loTGtaSGdDRURUUzMvK3NmQWlCS09ZdUV2alJtS2dpWkRVUTcySGJlCjJBWTZnS2o1RFhRRFVhL3hjN0xwRjZLSGZUeUx4Z0o4UFE4RXFEblJsUGtlbWd1OGVUM1V5UTF1aVJScHdwT3F3bEpsNGVueXlIUWwKTzEvS0s1RHhpMldDVTFYQzB6TGhhWW5nZENXL3RJSlhLaFdWUzZJcUtvUkZaZHlFOHZCUVpiaWZsdTNXelhmc1EwTkhJSmcxNEJzYwowTTlyeHVQZjFSMTlTWHY0MnkySFh0WWZmYVU5Y0ZkM01BZ0p0VEowaDhIem96bHN5Rno1aCt3Qm9sYTdtUFJaUkQrTEE4ajZJVi96ClpqTE5BUWhYZlV3dnQyYjlIRDJiZEhBczF2OXE5cjUzMUc3dkRiejY0VHRmLyt2dnR0eS9aL05neXViaDVPWlAvbS9ISDMvK2J6KzcKL05wZHJkZk55b0FKMEFaYUFtTUNLR3pCOHMrQ0FJcFlZQnY4RndVUWt6dFlQSXNEaU5rR2hBR0UyNThoR0VDSHgxTElkaHlUZ2VnQQpZaTVtTGM2andQR1VRRE9EVExXZjg0a1FDL2ZBZnlaOHBoSmVGOE9oUzRnK1dnSVAzTEtLSWRxV2RkUGlGN1dxaFhlcVd4WjRGbkpQCkw4YzA0SGkrZTZnVkxxWjRUTzZoeGFXVFRRVy9KWEJFbTcvUUZuUWdEcllPSG96T2pNc2cxM2RRNE5ySGNldGhIK2dWb0R2OUVXRWQKM09HR292TXRwekdBcm1qRkFLQTNqY3EzakNyY0E0UUJkSTBzQWwxdDBZQ0JMdFRKTDlkVVhTUUhDWFpWbmI3VVV2KzcvN3hMSVBRUQpIMzMyeWEwN2IwdGx5dUFUNFo3T1BxNjd2RHgyZWZzZlBYaXF1UFR0eTNjbVB3SU1FVDk1L0g3RkR4b085cG5icGVmWGdlRE9LeURPCnJtajE5MXMvblA0akFkRDU2Sy9qbytNeG9nUW5OOCtYdi92cU43LzVyVjJ2N1Q1MkpLQ2twT1Q2elJ1ZjNMOEgvOU16eEtkL2ZlOTcKUCs0MzNEVEl2OSttK1Vscjdac2RHZ1FnWktEYXQxcnJBVUR3dzQ4M0tzN1Z5N3RVcGEyVlJmVmxoV3B4TVFCSVhKNldxbzRMTThidQo3K2J0NytGakFIbVN5M00rZlh5L2JoNlRNb3NEYUcrdkFNSzhid0VkcTZIMEE4SHU4ZTBTQW5yMjZkamVEYUZlMVVFZTZzQ2pKUUhICmlnTUNpZ0tQRjV3NFVSQWNYQkFXV2hBQk9WSEFDeXJnaGVSeFF2TTRKL1BZQVFYc2c2YzRCOHQ0b0I5bkRSL2lvdWE3cWJudUtxNkgKZ2dPWkQ2Qm9CQ0ExMzFVandKT0JBRUM0Q0lTMmc0RisvblVBNUtQanZ0N0JlYjJEZTdpQkd5K2JBMUM1QlBTVFZDRk5yWlNsaWFVbwpXRDlpYVVhbEpLTUNJc3N1bFdZV2xLZGxuMDdPTGsxTkw4NU1MVWdTRk1jY1ZLQ3FqN3RCQkFCeWJPSCswd0JFTFg1WkZvRzZrcGtCCi9kQXpuMEdtbVlmMFFZaUxBSWpaL3J4NG1PakJ3U1R5NlkzZDI0UE9hVU96R1JDRExKdW1xWGoxMHpPdkVHbzlBOUZVNkY5UFI4QzgKREVXaEFSSURRdHdXTS9jUTNwWU5pZ0xhQkFrcWZuNGxMMDhxeXF1S0twWkVGeXVpU3hVeFpZcllTbVdjV0JGWG9ZZzlMWThwcllvKwpKWXNwcjRvL0pZdk5sVWJsU0VTSjRzZ1R0ZUh1dldnSCs1NkJ5TjM5OERTTktrQ3Y5SVc5MWhQcTNCNjZweU5rZDN2d2E4WVRMMnVQCnZkUjg1THU2Z05kYmd4dzZ6YTAvNWlJUWRYU1g2UWdMV3IremU0L0FvMWNJeHNJWFZPQWhCTjU4b3ltSWczdzNrRTF2MUlFZWtmOGcKMTJjNC9BQzhMeDhXdVk3RXVZM0U3UjhVSGV2bkhPc0xQOVFYZkxSWGVHZ3c5Rmo3eWFORE1lNFhVcnhINHdJSDR3K09KaDRiU2RvLwpHdWQ5THNidmZOeVJNL0FRbmUxODRIeDgwR2o4a1pIVW82TUZRV2VLVG81a0hCMU85QnZQMlBkbStZdC8rTVdMSC8vcG1ja0g5c1NzCkRVRnNKSWpOQkdFL1BXMDdTZGc5SWpZK25GNzlZR2I1cDQvV2Z2RDduZCs3OWExTC9jTHpHWnd4WktBVE4vSURyNWVldUZJV05wSFAKdVpFY2RqVXpmQ0liN1hLL21oazVrUkZ4SXlmNFJsNkFlYW1MVGlKNnZXZWgrOHpQV3RES1ZQNGhLMC9VQnJSUWNBK1pFSnJTS1AzZwpXUFkrbTNOa0xBVnlkSndjZlhReERTNXcwS3pJQzhuNFBsNGF3OHFoVjNTZUtoZFNyUVl2UkdLTTRtQ2JVcTFhdEVVeGJDTlRLUWhWCmcyakhzL3VqRVZ5bTFjKzVyWmRvUytDOCtUM1VjZ2src0FMUExhUjM5dUFYUWh6dkhqNFZMM0llSFE0K0R4SlA1cVZmUTZnemtoWXEKQXBtMlE1SUx4UERyNXRISHhXTWpQUHU1ZUFjV0ZYd0hnd01qZzlwMUJTL3pFbjNxbGViU1czVVZGM1RpSysybysrZVdRZkdXVG5HNwpWZlZXbS9xR1Z2NkdYbmxUcTdyUm9uelRVSHU5V1RWbXFCbXBsVnlvbHdLQXJnOTJ6OXo3akpnaGZ2bmVCL2tGV1MrLy9oSnJKWXUxCmxMVnFLV3ZEaXFWclZpeGZzV3JsY3JpeGVpVnIrZkxkdTV4NldudUlKOU5UeEtQZTM3emhQQkFEZnhXKy9RTFBBZmJCODFIZTdjRUgKUmtXN0JpSTkreUo3ZjMxdUNyN3BEREhVTytMKzNWMXJXYXdsTE5hYTVVczJMRnRxdTJyRmhxV3NsVXZRbmRWcmJMNzk4bTU1aGVKUApIMzRFL0hydzZTYy9PRDk2UjF2elg2M3FuN1RMYmh2cnlON242amRiVVNuclNqTmF2RHVqa1hUS3hXMnlVMDNTZkpVa1YxbWVXeUZPCmo2MlBQZEExRDYvMFNoNzl6U1Q5SFNZMXFkSWlWSThYZmRtVTNBMW5HdlpvZXYrSnZpMkN6bDZ5eklQTzVPcU8ya3ZHdTB2azNSbTEKMXlqYVc4ZjJrNFg1bDRYNGw0YnVMdzQrV0JoeXJDRDBjR0V3NUNoY0Y0VWVMd283WVU1SVlVUlFFWVFkVkJBWm5CZHhJcDk5dUlUagpWODRGMWxpUFJzUU1ZQWg1cUVhSTk0VTVOYk1kZFJGN0RDRzc5VUZPeHBQT3hoQXlwczVvZkdvWWt6am1XTFl0TDk2OHpDUU9qbnNiCnoycmNqTmJqMGNvREJ1MXA0OEoxY0MwL1Z5S3FySWdyazhTWFZTWlVTSklxSmFsQUg2azBUU0pKbFVveXFJaWxtY0NnY25IbXFZcTAKd2xNcCtjVkpXWVdKNlNWSkNZVnhuT0xvdytvWVIzMzBIZ1BmcTRucjFoeGxQVTBpS3E2TndyazBpSEJjNm9VUTV6cUJPU0lxVHJWQwpXcUtvT05hSXFKZ0F4RndGOCt0TWdpeHVvTDhGUU16YWo2a0N4S0FQRHJNT1JDOEkwWHVpUVQ4UXZDTEd6TjhDSUxxQnFNWVhpMUQ3CndDM2lOWUFPUWovVUpSUlY4M1BGdkVLSnFGQVdYU0tMcGZRalVjWkxWUW53RWE3aFRxa2lybEllWHlhTEs1VEY1RXVpVXNYc0VIWFkKM2paVWxvZW5zOWRKQURsMmhiM2Fpd0RrMUJFSyt0blZkaElBQlBRQkFBR0Q0Tm9FSU5vcTJPY0NDSE9IRGlCOEU1NVYwZlVBMlNyZQpoOTVVZVF4RnU0eWdJOXM4QnhLOEJ1UDkrcVBnK2M2ck4vcjE4YUovZjZ2dTVidUdsKzdXN3I0azl1eEpPVUNldWUwL21ySjNMTmJ2CmZOcStDOG43eDlCT29xTm5BRDFKaDgra0hUeVg2WHMySGcwOHZKQ09YaXpQeFhtK0pYM2xEOWUrOXVRdkx6Nzg2TVdwZXp1SmFYdUMKMkRSTDJNNkFmbWEzVGs1dGVVeHNmekM3NDk3TTVnZkVtZ2ZFaXI4K1dQdmIzMjc2NzNkM1hodmZmYlVtOEhJZS8xSnU1Tlg4azljeQpRNjZsYzY3bWhWN05DNzlXZ0hJMUgxQmlLdTNjTEdSU1ppSGlQRDJBOERWOThwQlZBRkhvb2RkK21QUUpIRXVEWU83UTlZTkpCQUE2CmlBOUtRNTlGQzJTbWVzOFhESWJPUW1FQ2lLa2ZIRHFBNkFiNjBnQmlHT2p2RGlESFRsT0hIT2dIN3p3blgxOC9IMEQwRkJ1VHo3ZWMKdWxWZk9hWVZYelVxZ1R0dkdCVnZHcFdJUVcxcTFBMnRCL3BVWDI5V2dINGdsMnFsRTlycW9SclpqMjVjSkI1L1JoQlRjcVhDMXQ1dQoxVExXaXFVczJ3MXJ0bTVjczNrbHkzN3RFbnVicFJ2WHM3YlpyZDY1YXRubTFVdFdyMWtDYWdtT2p2emZ4NThTajJiRy8zVHpjRWY4CnJuNit5M21SYzE4NG12dlZ6ZzdvUzN6blYrOCtKdTUvL09ndkNaa3B5MWF1Vzc1MDFWYTc5WFpiV1Bicmw5aHRYbTVqdTJ5OURXdmIKNWhVN05xN1l0SnExQ1hDMG5QWHZMM3l0bzBsSHpFNC9lZkRSajYrZXVhTlZ2YXVWdm1Xb2VidTE3aTJqNXBZQlZiT3VOS3ZQMTFZTgpLcVh0c2dxRHRMaE9rcXNRNThqTGMwNkwwNkxxWTN5N09RczVocWtmRENEcVB6UzFwZ2toSDFML3JibWV2WE1oLzZDcHpFUCtxMENuCmtLS0RTRHVGbmgwQ2p6YUJtNEhyb2tQRGVCeWJJcDBhSTV4cXdsMGtRVjRsZ1Q2RngzMExBL2NYQkIwcU9IbThJR1FSQUowc1pBT0EKZ3MwQU9uS0s2MXVCMnArdEJ2ZEVXelVRQU1peHhnUWdKMTJFb3o0TURPUnNDS1lBNUV6V2VNaEowSmFIWTlBcVFKYjArWElBY210ZApJQXo2NElDTk1JQmNXOUZSR0ZsU1VYbDU3R25wSElDa0pJQlFKQm15T1FObGdvRUFRS2NyMG90S1V3dEtraWtBOFlxamp5aWpYWFFJClFKN04vMzhBaUc0Z0RDQ21nUll1QXMwQmlHNGdobnUrWWdETlh3SkRXUnhBNWticHVYYnB6OGw4QU5GaVNSODZnSERoWjA0L1ExSHcKaStvK2dyWThSRFlLTW1TOGtrcFJhVlZzbVNLaFRCRmZxVWlRcXBLcVZNbEtWUXA4bEttVDRXR2xPa21xU0t5c1NqZ3RKK3RBbFFLQgpQUEp3STVwS2dnSGsybzBHdFlGdkFFQ29FNGdFME91dFFhL29qd09BSUs4YUF2ZDBoT3lDVDVrQmhKZkF2Z1NBVU1oeEE2QWN2d0VCClBLdTZEZ25kUnBQY1JqTGN4ckxCUTRkYVE0OTFKKzBicjNuMTNZc3YvT1VuenhCL2VPN3gvWjJQL3VlNUQzL3lIMWZyRGcxSEgrMFgKK1o3TjlCNFRlcDlOOGorYmN2aHM4bUh5MVJFTlB6eWZkdUJDMW9HTEtRZk9SZnVkRlhoY3o5M3ppLzV2UHZ3dGlHY2xRV3dqSG04agpwcmNTaFAwTVlUZE5iSnNtdGs4VE95YW5OMDdPYm4wd3ZmUGU5TFo3aE0wall2a2pnblZ2bHZYUlE5YlBmclBpOW8rL01UYThmN3ljCk81RWt1cDdCdVphUFZwb21DaU91RjBiZUtJR0VYeXNLdjFvSUtoS1NFbG9FT2d2ZHQvZ1VoUjU2RnRNUGd6N01waCs2ZmlESHgwMmgKVGdMQnkxS0hMaVRqMmRsZ0lGTkQ5UG5FWXhlU21NUlpQRXowMFBWRHJVaFNCckp3RHkxei9VRHpHUlJQbmNkRW5VdEFEdk8xUEt5VQpIZ3NEa2ErT2N3Q2lHK2lyQWhEb0J3UElwWmROQVlpcEg1cUJMTmUrNFJyK1lHSjdmTCsrK0kxR3RBdHNRb2ZxUFRmYWxOZmFVUi8wCm5YYWtCOGh0WTgyTkZpWG81dzFkOWUxYTZRV041TTdZeU5Tais3UEVUSHhLM05JVnJKVnJXT3MzTGQyOGR1bk9WV3QyTGx1elpmbGEKKzNYcmJUYXNYcmRoNldaUTBRcldpN2FydHExaGJWakhZaTFqT2J1NC9mTDkzeFBFdzBzZjN0N2ZuL0w2c05CaExNWmxJSm83V0hEMQpqN2VKYWVLOUQzNTc0TGpmU2hiTGJ0TzZ0ZmJyVjYxaFBiOGEvaWVXYmx5MVl1dVNsVnVYcmRxNFl2bmFWU3pRbGYwNmxxM05zdldyCmxxeFp2aVFsSVI0ME5qMzUxNTljTzNPN1dYTkhyMzZudGVhdXNmcTJWbjFUcTduY3BCN1J5UHNVVXFQNHRLNnl1S1l5VzE2Wkt5blAKTFpGa2NCcWozWHZaZE1kZ3lsajFFTzJtNVg5WmN4QnJUTGhCUnlUeElKNWRYTzh1RVZnSGM4ZXpUZURSeW5lSFYyc2p6NldaN1F6aQphV0E3MWtjNjFJVHZxWTdZclFuZnBRNXpWa1M0bGdkN0Z3VDY1Z1g2RlJ6M0x3ZzhuSC9pZU1GSlNqOEJoWE1BQ2lvRUFMSG5BSlRMCkRpeGdIenpOOVJIejhMNTNaakNBbUFZQ0FEbFhpNXlyQlU1MVBJZEdCREprSUxRY0ZvcEN0a1dURzhSTUJzTFh6RERwc3ppQW1JdFoKT0pidStUd0E0Yzg2b1QvTE85YklUNmtTbGxiT0FXaE9QOUkwMEUrVk5CTkhKczFDUlNCeFZsbGx4cW15OU1KVEtkbEZTU1NBNGtWRgpNWUZWc1I3Tk1jNTYwVDhTUUhUOW1BQkU2Y2NxZ0N3TVpBRWdtb0htQVlneUVNTTlYekdBNkgzUXZ2M3hFSjhCRkNaOWNHaE5RcVkrCm9jVmo0UjQ4UXBTY0htRkpId3BBMUZad1QzTHhDOS9aT3lCd0c0bnlISTQ2M2lxS1YvT0xKVkVWVlhHVjZtVFFqMFNacUZBbXE1UXAKYWxVcVJLVk9WV2hTSmRWSmNGTmVsU1JScElobFNhZkZNU2tTVHBncXdxMHJZbmQvQkFBSUxqdzZVQThRQUFpVUEvckJBQUwzZktmbApLRjRGUXpmTkFFSjdla2tBNGQzdlR3TWc4MUFsRkhqbzB4dmpDMytIL1NMUEliNzNpQkRld1IvcVR3eG81L3IzQ2x5dUZuem52YUhuClAvbmpGakRLTFBIc0RMRnRodGhDRUd0blo5Zi8vTzNYUm5NREIrT1BuVWsvTkJwemVDanEyRkRpOFlHVXc4UEp2dWRpOTQzSEhMZ1kKYzJ3c1BtU0lDeS9oSHU4MGZQZFAvL25zN013bWd0ZzRROWcvbWJhWm5kbzRNNE1LUDFQRXRpa0VvSzFUcy9hVGs2dG5aMnllVE5zLwptTEsvUDJ2emtGajFpRmg2ajJCOVRMRCtOTVA2NmYrdzNuaDM2NlV4aDh2YVk5ZFBSMTdQNVU3a2gwOWtSMDVrY2E1blJkN01DN2xlCkZISzFJT0pLRHY5eUJsTXpDeWxub2ZzTEFjakNRQllBb2lwQXpIWWZwbjR3Z0RCOUtBQmhBeDBaVDBXSUpHZEk0b0U5R0VEMFJ1YW4KQ3NNOUZ2cWhBd2hDQjlDaE02aUZpd0xRQWdiNk1nQ2lNOGdxZ0toWHlxOEtRQTRkRVFBZ3NnRUlyWCtSc2xrOFNEeVVnYndIVVVjZwovTUhnN3FnV1EvNk5sc3FKRnNrMXJmU21RVDdScnB6b1VxSk9vRGIxN1ZiTm0wWTFXa2d5Vk4vUzF3Q0FidFZXdmpQVVJjeE9UUkdFCk1FcTBuTVhhdG1uMUZwdmxxemV4TnE1ZGJtKzMzZGJKWTFOOHRFMVpybjF4empleU0zZWNQTEhTYmZmcXpUYmJXS3dYTjYvZGJMT0sKdFpUMTNHdXZ2UCtyWDg4U2oyOS85SU85aHVqdmRQSk9uaW02KytuUFpvbkpHei83MFhkZTJ3MWY5TUxtVGJacldXdldzVmJ0M0xwNQp0OE96SE1Gem1Wazd5azgvVjFteExUcld4dFZqd3d0Zlc3Wm16VGZXcnJEYnNwYTFsclZ1eFFwMXBaZ2dKaDkrOXVlM1IvcHY2WlJ2CjZWUjM5Um9BMEkwbXpjVjY5WUNxcXJOS3BoV2ZicTRzcXE3TWxZbHp4Ulc1QmRMMHNLWVl4ejQybG9xMXpQV3RVNjNyNUUyNmN1YmkKQ2NSQlI1RUxQTnI1RUdxeHhyV0ZBMEhjYWVRNDE3T2Q2aUtkNmppT3RXd1FqNk1Hd3NaeFVuTndQSlg4dlJXUmZrWEJod3BPSGlnOApBVGxjY1B4NHdRblFqMFg1Qi9RekI2Q0N5Sk41YkFEUThVS09mN25BVzJycEhpYUFMQXprV2gzalhCME5BSEtzNFRuVzhSeWJPR0FnClo3UXhIZ0FVN21LWXB4eEhobnYrNlFDQ1ArSnVSUG9CQXgxbzVrVXBCZm1TbUJKSkhBQklMRVlBa3NuU0lWWFNkRXdmdVN3TFVpWEoKUWdhU1pGZFVacGFXWjVTY1Rzc3RCQUFsSnhjbXhCVEZCb3RqZkJxaVhYUWlqeGFCcFh2K1BnQ3kwQThDRUYwL2RBTXRCS0NGR09UZgpuUVJoTW9qaG5zOEIwRUpoMHNlaUFvVDFRd0hJdHovT2FyNG9nS2pRejhiRFI4WllEUmdJdHdEamF4ejBxUUdCKzBnVUdHaC9UeFMzClVaaFhGVlVwaTVPcFVxU0tSTGtpU2FsSXJsR20xcXJTYWpYcGtHcE51cUltcFZxUm9wR25LQlJwY25tcVRKcFFLQkhGVkhIM3Q2TGEKejU0KzlCRUE1TkFkOW5wdjJPdmRjeFVnM0FiMDdhYkQ4QkVldnQ2SmlrQ2dINmRlc3ZhRHU1NFhCaEE5cG9sSzVKS2Y1MENFRnlvMQpKM2dPeEhrTkMvMEdPWWQ3MkFHZGZMK3U2TjEzR3AvNytLYzJ4Q05ReTFiSUpHSDdpTEI3UUR6NytPSGFXV0w1WHg5c0htazYycDhlClBKeHdhQ1E1NEF3M1lEVCt5R2pXb2JQWkI4K25ITG9nT242T0h6VEtDN3lRNnZhRDNtOTgvQkd3eVE2K3llTkhPeDQvZW1IV3RPeGwKTjRtK0xlZ0hMc0E5YXg4LzNqZzV1L0hoOUtZSGt4c2VQRm4zY0hMMWc1blZueEtyLzQ5WSttZGkrUWQvV2ZIam43SGUvTW1TeTkvZgpkdkdjK3lVbDl4cHdKSXM5a2NLZGlJKzRuaHA4TXlmb1JsSDRqVUl1YW5tMkJNMUMwR0hlb2RObmNRTlo2c2ZjQTdTNGdlZ0FvcmFqCjB3TVNBZ0NoWTlSSUFPRXh6YWIyNXk4WU9uUVdDaDFBSmdhZFNUdzhpcnE0SUhBTndTM1M5QUI5Y0JZQWtDa1djNEdaTTRMcFRiSk0KQmxGckgvVFhUczh1UHYwYTR0SEp3MWtFUUdnZWVpL2JqYXp1NEsyZEVPWjZqU21EQXJTNmJhTFNYQkhJdDUrdk1tWmUwMVplMDBxdQp0NUFBNmxCYzcxTGRhbFZDM21xdmViTlZjMU92dnQxVysyWnIzWlZHK1RWRDlmMC8vV2FLbU0zS0sxekRXdmJzMnJYUGJGaS9ZZFVxCisvWGJYandSK0Z5TnpLNi9iWHZmNExQdEE5dmFlemIyOUQ3Zk0vUjhhK3N6VmVWcjNWMXNXQ3Qzcmx5OWFjTnFHeGJyUDc3enlvZnYKLzJxR3VIZnpMKzhrOXBWTi9PKzdqNG1wbjMzL2g2OTk0em5XRXRZbStMWkxWNjlidFhyakFhK3Rwd3UvWmV5eTYrdTM2eDFlM2RHNwp1bjlrMC9ESTh4M3QvMUZXdWVWNHlKbzFxMWF1WHJGOSs5WU5hMWF2V3JLa3I2dWRJS2IrOHVIdjMrNXN1S2xWdmFYVDNHNnB2dGFnCk9sK3I2SkZMMjZ1a0xiS3laa214UnBLSEFaUXZUUTlwanRuZEYrblp4YlVhajA0T1BlNGRiSWhiZTZRNzRJYU14V25remdhT2t4Nk4KMG5IU0lqb0FJRkFkcFlFTjFuR29pWFNxUmpGeFJ4WHBxR0k3VlhPZE5WVEl4U2tWRCtJdVlYdWVDdlhMRHpxWWl4YS9EaFlGSFNrTQpEQ3dNc2lqL1lQMmdGRVNTNFlCK0lBRkZQTjhLZ1lkY3hLU1BHVUJSVkZ3MDBiVEVvSjVvc2dnRUJuS3U1enMzOGx5YStNNWF2QzhNCkdZaGlFRGt2MFpJK09FemlMQjRtZmI0Y2dKemIwQ2dnZHlNQ0VCcUhxT0ZuU2FNQlFCVVZKZ0NSOUVFQjl5aWxwc2lsMlJDWk5LZFMKbkZWZWtYVzZMQ08vT0RXekpDVzFLREV4UHk2eUxIcC9UWlM3VnVUZXpIZHZqckthcndwQVRQcmd1VTFQQmFDbk14QUNFTk5BRFBkOAp4UUF5TWNpc0h3eWdmWU1KVFBwWWlmbGdlVHdWOUF1RlNSODZnSmdQQVEzdzBYTVlyYW1kYUkxSzFVUlhWTVVwNU1rUVZWVnl0U0sxClZwRldyOHBBMFdSQ3FtdlNHcFJwamZKMGpUcFRxVXpYVktWVlN1TXpKY0tncG5DZmRyUUx6TGtud3FNTGJZYmYxUk1HeEVIdFBpU0EKcUZXdzc3UWNmZFVRdUxzelpJOFpRSFBidnA0YVFPYUdwMmp2Z1hEUFFaSDdVTExYWUNLYVFOL0g4K3FQOFJ6T2ZPYlhiK3k0OTN0UQppeTFTeThQbkgzNzY3T3drUE53Mk0vbk5KNTg5T3oxdDk0UlljL2tOajk2aUU4T2lmV2ZUL0Mrd2ZTL0U3anVmY2VoOHpwRXp5VWVICll3K1BwaHc2bC9mU2IrOTgvZE0vYnlYYm5MZE1QM3grK3RPZHhQVG1XVlJQMmpKTmJBRUFUYUVpMEdad3orVE1ocW1aWnorYjJmN1oKck4ybnN4dnVUNjU1OUdqVm80Y3JIMHl1K0hSMnhmOTh1dUtEVDVlKzkzdldmNzdIZXVPblM4ZCt0UDM4bWU5Y1ZBWmVxNGk0bnMrLwpuc3krRmg5OEkrUEV6YUtRbTRYa25pOUwxbndoQUZIUXNYajR1UUQ2M0NVd3VuNGd6Tm9NYmxJR0FCMjZrR3llb0oxd1pNdzh6NURjCncvVUZ3dUFPaFI0bWdMQjFxRkFHZ2xpbEQrVFFTUHpCNFRpY0EwT3hPUDZETVZUMm94UEN5VFZXSEdzQVltNEwranNCeUxXUGczcVoKYVFDeU9HRURoeHBvUkEyZXBqN2xNc3lyTUtSZTBWWmMxMGx2YU5FY29LdXRWVzkwS3Q0d0t1RDZUa2N0R0FnQTlJWkJneVlpTmlsKwpjZmNtUVV5T1hycTRZZDM2RFN6V3Y5bmFzcGF2M3ZEU3JtY3JxcitwNjk3Wk1iUlczMldqNjkydTYzdXhxZnZGYXVQbWxxSE54cUdWCmZkMmJCNHpiWTZQc051ell3VnErWmZQS05hd2xMNzM2N1RzL2VtdDYrck9Ibi8xNWxuaDgrZXFsRjNZOEE5L1Rmc095N1p2WHJObHMKdnkyQy8xeFB6K3J1cnUzR3JxME5iZHUwUFZ2MGZUdWFlbmJXdEwvWTBQcGlWK2ZXYnYyMzh6TFd2UGpOemN0dGJEYXVaYTFqZmYyNQpIWC80eFM4L2UvendGOWZQWDI5cnZLR3R1YVd0dlZ5ck9GdGQxU212TU1ncUdtU25HNlNuQUVCVjRnSnBSWDZCSkRPNEtYcFhid1QxCkY0N2ozc0hGY1d0bHU3ZHhjT0FhNG1xTWhDRGwwT0tvaThSeDBMSlJtaVBCUFhzYU9BNjFYTWRhcmtNTjNuVmxDcHBBT0QvVVJpMFMKUUFLSVIwV1lkMG13WCs2SlEza25EeFlHSHlnS1BsU0U2TU5jL0lJRUZ3Q0FPQkJjL2duTzVSNHI0dTJUQ0YxVVVRdUZEcUQ1QmdJQQo0U0lRTWhCS25jQ2xRZURVRWc0R0lyZUdSV0lKNGZsQTJFTld3aURPNHJIMHplZUdRUjhjeHpZT0FNalR3SE1FUHhtNFFiVzhWSGwwCnNUU3VzaklSQUNTVElBREpaUmtRY0k5S2xxMldaaXVSZ1JDQXFpUTVVbFFFeWk0cnp5d29TY3M2bFpwUm5KcVNIODh2aVRtc2l2WnEKam5adDVqSHA4M2NGRU5iUFBBRGh6ZkFMQWVncERHUUNrSVdCR083NWlnR0U1d1A5L1FDRVR3bkdCd1UvRFlBV2l0ZUlDSjdXNGRuYwpmVGpHdnpjNnVqSG10RHhPSlV0U3kxT3dmaG9VNmMzS3pHWjFWcU1HcGFFMlE2dE0weW96YTlWWktsVld0VEpMTGs4dGtFYUxOT0dICmRlaUFSZ0NOYXpjQzBPNXVOQXZSc1N1TUFoQmVCWU9BaEhaMW9KM3c2RWlqbmprQXVmVjhBUUNaRnY3Z2ZlMVFuTWRnZ2w5L3pNRSsKb2VkUTRpczNsZDk2Nyt6bUo4VFdXV0lyOGNSMjV2R215U243SjdNN0hqOTY5c0gvYlo2OXYvM3g1RE5QSnJkUEUrdCsvTWNYKzZXSAp6d29PQUlET1J1MDdGKzk3THVYWTJhVGo4Qkk0bXUzMFpzc3I3MTFiTjBOc0k0am5pTm50TXc5dHB4N1l6ODdZRThUbW1abnRaTmV6CjNkUU14SDZhc0oyY3RYK0Nxa0hiUDV2YThpbGgreW14OFROaTNmMnBsUThlTDdrL3liby9zK3JEUjZ3UC9zVDYrUWVzSDM2NC9PMzMKVjEyL3MyenNDbXYwVFlmekRVZXVLbmczQ25rVHFhRVRtY0UzQ3NLdUYwUmV5V0t5NXVrQlJJY08vUTVHRDNYTjFFK0l0WkUvaStnSApMWUhOMzVORk1RaU5BaHBMT1h3aG1ad21FQWNBQ2hoTFJxdGdYelFNK3REUlEzOW9vUjhMQTlIUlF5LzhmRkVBTGE0ZmF3YjZhZ0NFCjFyKzZPWGd6bDNsNUMzWC96Qi9lT0U4LzlGQUdjaGpsRmV1VHhuV25yeGxrWUtDYk90bUVYbnFuVFVGVmdHNjNWZDl1cThYbmd2MXcKc0pWNDlQampUejc3NXNzdjI2eGE4dno2cGF3bHJQV2VYbzYxMmxXZGZiWTl3M2I2bmkwdEhWdDA3UnUwK3ZWdHhnMGRiVnUxcmR2cgpXci9lUExUQzBMbG1xUE9ackxUbE5wdldybHYyNHZvTlMxZXcxbTIxdVhqK0RQSDRTWU5Ddm9URldydHU1YW9kNjJ5WExyT3gyL1o4ClFiYnRRTy9LQnVOeituN2JadjIydGc3N1pzT09sdFlkK25ZN2ZTdmMyZEtnZTdHNWZXdDM5NjVLK2Rxdi9ZZk5wblViTnk5ZnptS2QKRERoQ0VNU2pQL3o2emFHdVM5cmFHOXJhOFpvcXRQOUxVYWFUbnFxV25xNldGS3ZFK1FweFFWVjVmckU0TTd3eGJuY1BtakZOajFzNwpCd2RlUlBFcksxeEFYUFFjaUxNT0tjZFJ4NkdDM2JPbkJRekVjZEx5SEZ1NGprMDhwM3ErVXkwRWpWcDJxVVdqbG5IUUFSUm0ramhWCmM4MUZJTXBBcUVMakpRbjNPUlhzbng5MEtCL3QvOXBmSEhLZ0tPeElZVGpvaHdMUXlhSndySjk1QU1ybUFJQ09GUE84cFVJbmRUU1QKUGxZQk5HY2dkUnpFdFRvV3JwMDBVVTRhOG9ldkVUbzJoenUxUktEZ0dZa21BNFZhdXVlZkRhQTliUnd2QTNldkRpNjREa2JPMFFaZQpvanlxU0JJTEFKSlVJZ0NaOVpNQitzRUFVa2tRZ0pSbUFJa3JzaXZMczRwUFpXU2RTczhzU2N2SVN4QVZSaCtyaWtKbllqUnhtZlQ1Cit3R0kwczhjZ0tocFFCU0FmRHNTbVFheVlORGZBcUFEL2NsV3c2UVBEb1lPTS80RGlSQk1IN3dRaGdIa054QnZOVjhhUUpZR01oLzEKd014ZTJrSVk5ZEJqVkhTZ0w4cXZUK1EraXM0aTVyYkVGTXRqTmVMRUdtVWExaytUSXFORmxZV2l5VzZxem02dXp6Q29Nd3lxN0RwTgp0bEtUWGFQS1ZpclNUa25qaytYaGdjM2hibDJtSWhBZUJlVFVFZXJVSFk1M2dXRUd2YXc5QmdCQ2JVQU1BTGwyZnlrQTlTUDllSUYrCnVubEh1dm11NXd2Ly9SZmpPNGxQZGt6T2Juczh1ZjN4NDJlZVRML3doSGhtQ25VcmJ5Qm1OeEdUR3lhUmpZQXlObitkWEQycVBuQk8KRkRTY0dEU1VlbVFrNWVpWitPQlJVZEJRdE5jVnlUZC85dzdRNXhuaXlaYlpLWnZwMlUwemFCMXR4eXl4ZlhwbTI5VDBscGtaMittcAp6VE5UdHJQVHlFQ1BacmJjbTkxNWoxZzcrV1R0UTJMRFo4VEdqNGtOZnlYV2ZEek4rblNhOVFuQit2TUQxdnVmTFAvcEgxZisrSmVzCi8vdzU2ODMzV0pmK2E4bm85N1oyNkIzUDFJVk5WQXF1NWJJbmNzS3ZGN092Ri9FdWYvVUFvcHArRmdGUXNMV1N6MEwwd2ZyQkg1bDkKT1FmT0pXSUFrYU9WWXZFUzJKRnpDWmErK2J3d2w3Zm9ZUUtJV3ZPaUF3Z3BoMEdmcndSQVRQMzh2UUhrTVdoYXpGb2NRSGdqRXIwVQpoRCs3K3d5dlFKY3dwaTI5WnF3Q0F3R0FycmRJdm05VTNHNVgzK2xFZThodkdkWHZkRGRkMXlwdjZxdi9kR3VjbUNUNiswYkFQWFpyCldNL1lzRmgySzc5ZW1MdWxlOEJXcDl0dU1ObzNOMjAzYXJlMUc3Zm85VHUxYmM4MnRPM1VxM2NZbW5lMjlEeGZNL0I4YzkvelBhM1AKcEFydFZxMnpYYzE2MW1iZG11Vkw3Si9ibVZ0YWJHOWpzM25OeW5VMks1NWpzVlk5OCt3THVZWFB0M2R2MUJ2QlBYWXRocTNHcnEwNgpvMzJMZm9leGRZdFdCOWR3WjcyMlkzMXJQNnUxOTluQndlOFVaRzJ3V2ZQaUtwYjlwdVZyTjYvNTBUcy9JcVlmdmpOK1preGJONkd0CkdhdVducWtXZHlwS1d5VDVLc2twZFdXaHNqSlBYcGt2TDhzdnFjeU1iSWh6NnVGUVMxb1dxMXF1Qmo0OUxucWVzNDRMY2RLak9CdDQKT0hCdGtoRFFwNFhyME1SemFPQTcxdkVkYXdUTzFTSTBqWkFzQlRuWEFIYzRXRHk0MThlbGx1OWN3ME1oRGVTa1J1dGZ6aXFCZThWSgo3K0pBdjl6QWcvbEIvb1hCdmtXaGZvWGhCd3Npc0g2c0F1aEVQaHNENkdRT0J3RGtLUlU1bE13YWpRQUFnQUJKUkVGVVZzY3c2WVBqCnBCSXhEWVFZQlByUnhBT0FJT1FkVTVPUVkxTWtOaEN1QXpucHdweDBJUkFLUXhaaEVtZnhXUHJHSEZjak90MmRHU1o5Y0hhM3p3Rm8KVnh2bllBTTNUb2tBSks1QUFNTGxIOUNQSllERVdRcEpGZ0JJSnM2V1ZPWUFnRXBLczdOTE13QkFXWGtKTWZuUng2dWl2QkdBL3FGTApZUE1BdEEvMFk0NVBheUlWZU9nTERDTGoxNUdDczc4emxWa0hNa3ZJT29Eb29XK1AzOStieUZUT29nQkNtVmYrNlk5RFlkU0VUSldoCkFldGhrc2dVOG5CZ1p1aEltZ2NteHJremk4ZDNPQVoxUTVPVEF6MkgwUnlkeE1hb2FuRk1yVEt6WHA3UlVKWFJvRURGbnZycW5CWk4KYnFzcVQ2ZkowVmJuTktreTYxVVpEZXJNaHVxc1duV0dXcDZTVlJVbDFBajg5ZXhkZmVGNytzSzhPc1BjMjBPKzJ4MkN6OFRBblVDNwpqTWRmMHg5N1JYdms1ZVpEUUtJOUhTSEFJOVBRWjNMc29STTVJZGU5bTR0RE5ZcDY5Z2hkZXdWdWZYUGRQM2dybkZldjZPQVFHZ0d3CnR6L2F2NCs3ZnlqNzY3Lzh3VXFDK05ya1o5dW1acTNtaFVmZ21BYzdaaDl0STZiV1B5WldYUHZodHpxU3dzYVMzQzlHSGJpUUVUQ2EKSERDYzRIbXI0Ym0vL042R0lKNmRudDArUFFYWk5qT3pmWFlXMExObEJ1UkUyTTNNNHZMUGxrbGl5K05aKzBleld4NFFrSzMzaVMzMwpwemZkbTE1M2oxaUY4OG5zOG84bWwvL1BnNlcvK1pqMXE3OHMrZW1IUzM3NDJ5VjNmNzcwNW4reExuK1BkZUhPOHI3cmExcDdYQzdVCkNtOW44NjdFaEYwckRyeDhpbnNqbTBrY0puU1k2S0ZmMDdsRHY0TkRvUWNEQ09oejhtSUdKUGhpTnM3SjhTeEkwRmdtem9ueHpNQ3gKREp6akY5SnhBczdQVllEb2hSbVFCeldsOE5DWmhQMURNWWZQSnFMR29ITkpSODhsVUpsbkhkQ010UVNjUzZiQy9Dd3pSK0YvMnB3agpnQ0Z6TUlPWU9UQ1M0RDhjajdOL0tBNEhmci84QitOdzlnL0VRa3duZGMrUGIxODBGWisrS0dyRUN6MCtQYUs5M1VJYzd5NEJqbGNuCkFoQ21EeU9vRFFYM25XRDZ1SFJFT3JlVGV3dDYyTmcwWnRCWU9VMlp5djRlNGI1ZU5CNEM3WXNjUUROQzRTYUl6WG1FazkyWlBLWTcKL1haTDFZUk9kdG1JamdPN3JhdTYzYTU0eTZoQ0hkQWRtanNHeFYydDZtcGIwKy8vOEN0aVp1b0UrK1JhRm12bnR0V2JXVXVYZXgvZQozTisxczZWNXE3YlZhcmEwR0hHMjZkcnNtdlRiOWUxd3dUb3QzcloyNmRvTlMyMDNyRmxsczRxMW5HVzdjYlhkU3RiWFdTeldqbjk3CkthL282KzBkYTQxZHR0cUI3UTFkMjdTdG05cDBXMXJhck1hdXVtZUxzZjM1OXM0bG9TZTNzRmd2cmwreWRBbXJxbEkyT3p2N3dVL2UKdmRDb25HaFVuVlhMK2xWVlJtbXB2cXFvV3BxcnJzeFhWaFFxSzRvMXB3c2tGWm5DbWdSWHRET0w2OXJCZDBiNkVYcnBCUkNIZHQ0cgpQWHczb3dDQzZUT25IeTBISFppbFk5TkQ5djFFb2hHQ3FQV0g3Q0JHQU9MaFpTL1hHanhxMlRKN1VEVkk0SzdpdXlsNVNEL2tUYmoyCkt3cjJMVHk1dndEbFFFSHc0WUtRSTRXaFI0dkNBb3FDSVlHRm9Yajk2MlJSUkVnaFNsQmhlRWdoT3lRZk5VRUhGSEVPVkFpOTVOSE8KNm1obnBRZ3lyL1pqdWhOdE5laVBXSXVES3NPcE90bTVRZWphRXVtaUQzVXhoSkdWTUw0anVVY01ueUZ2YmdCQ084VmNER3htWEJudQpvY0lrRGxJTzJkRnNOVXo2NEhqb3VXNEdMbnpFcTJEd1E0Ylc4b3NrMFdKeGdsU1NLSmVrcUtScEttbUdXcFlKK2xGS3M5UVNNbUpnCkVHQW9CejdLSzdPcktySkt5ckpPRmFjVUZDZWxGeVVtRnlZSlMrSU9LUVc3VzlsZXpkR2VUVkhNekFPUUdUMFF0OFlvU2o4dTlWRVEKTEI3bnVtZ3E5SzN2TGpWNC9kRXlKZ0RSNmJNSWdGQVlkU0N6Z1Q1SFAxOEpnT2dIWW1BQU1XdENwakRvOCtVQXRGRG9KOGsvVFFCQQphRE04V1JtQ0MvOWVVVnhUbEVLR0FBVDBhYTdLYkpSbk5xaXpHelE1T2swZUFFaGZuUXRCMVNCVkpnWlFuVHFqV3BGYVZCV2JvQllkCjFyTFJNT2lCY0krdU1QZk84TmQ3dytnQTJ0MGErTG9oQUFQb0ZmMXh1QW1mblFOUUx4dTl4MTBBUUtBZmV2c3pOUTdBSGQ2SUR5YjQKOVBQOCt6Ty8rNk5MbXgvOTcvT1BIOWxQRTB6NjREenptTENmZkdUNzVOTXR4SlQ5RExIeHYzLzNqYjZLb0tIWW8yTlpCMGZZUjRlaQozZThZWHZ6NDE4L1BQUDc2azZtTlUwZy9xT1F6ZzRJQkJQcEJRZnFac1g4eWkwSUN5UDcrTEdUei9hbU45NmJYM0pzRi9heTRSNno4CmVHYnBYeDR2L2ZEZWtsLy9IK3ZuLzhQNnllOVk3LzVxNloyZkxibjVROWJGZDFobmJ5MGJ1cmJDT1BEdHZwcUlpUUxCOWNUSW02ZE8KWGozRnZwYkp0TTdUQUFnYnlDcUE2UHJCNVIrcTZqTXZOUDNRQVVUcGh3SVE2QWNEaUY3K29Tb3h4eTZrNEExWkFDRC80Vmo0aUVjMgowd0UwejBBTXl1QXNSQjg2ZEt5R3JwOGoxdlNEcXo2VWZyNG9nT2o2Z1REcGc2cytsSDRvQUNIOWRETGRReFdCVEwyM0FDQ2dEd1lRCkJBRGsyY3Q1ZWdEaFloVytwa3BUdm4waWp6NU9jVWZhUlgwWkFPZzZhZ0NTWXdDOTJTWi91MDN6Vmx2MTdjN3F1NjJxSHhocmJ2ZTMKUFh6MDhiMy8vZk5McjcyOGpzV3l0MW02WmUybVoxT3pOM2QzN2pRYW1QUmhBc2kyVVFjZnY5WTlBQjl0c25oYmxtM2N2R3JscGszTApONjFrUGJ0cXBjMzZEVXQyYnZ0YWNkRzM5UzEyN2EzcmdVcmEzbWZyT3A5cE5ObzJOVFBwZzdPdFpkQzJXZjlDUjY5Tld1cm1WU3VlCld3T2FZZ1VHQmhBRThkZmYvdnF5dm42aVNRMEE2cEZMREpKVHpaVUYxZEw4YWhKQWlzcGlUWGxoVlVWT2dpWnh2eUhLcFpQcjNzNzMKYk9ON0dma2VyWHhYTkUrUDU0ejJjQ0g5ZkM2QTV2VFRFa0UyUG5NQlFFNjFjd0JpMGdldmVWa0JrSnJ2THVlQ2ZpRCtoY0dRZzRVaApHRUFRQktEQ1VDc0FLb2lrQVlqblB3Y2dFRS9VUE9JdzdzejdyQ3JXYXB4VWljNmFPTlFQMUJqcHFnMXowWVZEblBXUkdFRElRR1JMCmtEbWhaS3RRSk5OQXpndUVFcEtsZ1F6V2cxY2ttYUVEeUlrRVVIQXRQMDhhQlFDQ0FJQ1VrbFMxeEFRZ1ZBRXlBd2owZ3dHa0lBRjAKNnJRSlFCbkZTUUNncU9LNHd3cUJnNUhEcEk5SG93anlWUUdJU1I5eUlUS0t4YVFQQlNEckJySzJGb1lCWkZVOHpEdC9PNEJNQnZxWApBaEFFYllZbnEwRnc0ZGNuRXJTSVNoVlJOWW9Nb0U5TFZhWldudFdreW03UjVCclVlUjJxL0xiYS9OWWFWQWRxVm1kQm1xcXpnVUUxCnlyUXFlVktPSXZwa0V4cTk3ekRJZHVzTmQrMUVCNTB5QWZTcTd1aDNXdzUvcCtVb25vam8xSTJtKzJNQW9VMHVDd0NJdnZVZDB3ZHYKZ3ZNY1NIQWZFUjdvalhlNDJiUGh3U01iZ25qbTBZTnRUeFlHMFBUc2pobkNubmk4bFVEemV6Yjk2U1A3MGZZVHZmRW5CbE9DUnVQZAp2MWU3ODlNUE5xT1ZMK0taNllmMjA3T1lQbVlBb2I0ZmMrM0hwQis3eDdOMkQyZnNIaEsyRDJadDd4TTJEMmJXM1p0WmRXOFc5TFBzCjA1bGxIMDJ5UHJ6SCt1RGpKYi80TSt0bkg3SisrQnZXM1o4dnVmM2ZTeWZlWlYxNGkzWG1qU1ZEbDFpR005dGE2Z011bEF0dlpFVGUKS0FpNVhzeSttbTJWTzh3N1RBQlppTWVxZmpDQUlCZzlwdHFQR1VCTS9kQUJSQy8va0ptbkh6cUFxQzNvZU5VSkxsQk5hRDZBNWlURQpJTTRYRmM4aStyRUFFTFhtUlM1N3hlTllpSWQrelFTUWhYNllBS0tXdmF5WGYrWURhSDQzTHRwMlJBRUlHd2ppMGNOR0IzSFFGcnlRCmJBWVhQTFFjZnBmUm5yVSt0TUFOQWZwZ0RCM3A0TW82c3E3b0syKzN5RzRZRlRmYWxHL281YmZRc2ZDeXUrM1ZkOXByYnJXcjN6WXEKMzlHcDMrZ3hFTVRqWC96MHZ6ZHN0Tm00ZHJuZFN0YldGNy8remVhR1RkcFd1eFk5a3o0NHVPUURIM2NZVUJQUDVnWXRQSVRyWjNxNgpiVE5TN0pmYlBMZVN0WFBUY3Z1Vkt6ZmJmMk5UWmZITzdnN2JqdFkxelMwYmdVMU43ZHRxamM5b08rMWFERXo2NE5qcmVqZlh0K3hzCjdkc2hWMnpjc21YbjZ1VWJscTk0OGQrZi8vVGVaL2YvL01kTHVycnhHdG1Rb3JKTFZxbVhsUUtBYXNSNTFhajhVeWdURnlNR1ZlUm0KSzFJakd4TDJkS05kNi91TUFDQ2VTenZQc1lQbmJ1VHUwM0taaTE4WVFOUTFqVVRrTWFMa3ppK25ldFA2RjFvQ0l3MWtWVDhJUU5WbwpnY2xkS1hSVkNweFVhTDNNVFNYMHFPTHZLd2phWDRBQUJQbzVWSVRvZ3d4VUVJSjdnTXdBQ3FjREtMU0FIVUtlZzNHTUJKQ25JdHBwCk1RREZXZzJUUG5OUlI2T3Q4clY4NTNxMmExTUVNTWhORjBvdWgxRUp3eUZYd1JDQXJCcG84VHdsZ0VBNVZzTUUwSWw2ZmxxVnFGd2MKVHdGSUk4MEVBS0hGTDFtMlJrb2FTSnl0a1pnQXBCVG55Q3V5U3N1eVNrdFNDNHNBUU1tcGhhblJSUW5INUVLUXJsWDkwQUZFWC9heQpXUCt5Q2lDNmZwZ0F3dnI1bXdCa1lTQ3IrbUVDaUxyL1JRSGtQNUFNK2RjRkVIWVBBQWl1dllmUkRwZHdveWlqUnFSUnBEZFVaZWlxCnN2VHliSjB5UjZ2T2JkWGtkNmtMT21vTDJ1c0tzSUcwNm14dGRVNmpKcXRPaWI2NFRCWW5xT2J0Ylk4RUFEbjNSYnAybzFOT01ZRHcKZ1JoNzJrNVFxMkRmYmpyNGl2NFkzQ1FCWktvQUxRSWd0T01kbDMvTXg4VHU2NGVmTnViSVVJSkxmNWpUWmMzemYveWZ0YlBFT3RUbwpRN3h3ZjBFQTJUMTV1T01Kc1lXWTJrWVFXNmFlMkR4K3RPTGl4TDdPOUtQRDhkN2Y3M3JoNFovV2tMTU50eitac2lObWRzd1Njd0NhCkpqQ0E3S1lJaUZrL003YVBaalkvbUlWc3VrOXN2a2VzZTRBT3dWaDVmM2JwdmRrbEgwOHQrZk1qMXU4K1liMy9seVUvL1FQcnZ6NWcKL2VDWFM5NzY2WktiUDF4MitaMGxaOTlrRFYxakRaeGxHY2JYMWhqOHo4ajVOM0pDSnpMRHJoVnhKOUE4YU13ZENqUk05RmgxRHhVbQplaWozVUswL2RBQmhBekgxYytKQ0JtUUIvYVRSdTNBc0FJVDNXK0Y1UFA3RGFPVGdJZ0JpSXNacUtOQXdQMlh4QlRpSFIrSnhyT3BuCmNRQloxWStGZS9iMVJ1RlkxUThGSUF2OTBBRkUxdy9xQVdxUFJKdXVTUUE1dDBkQVFEL3d1K0RaeTZFQWhBMjBPSURjQjFISng3OWIKZUxBWHRTNTU5UXZoanNlUUtNb1lyZTBvdXFHWDNXcVczV3hWb3Voa2J4cmtOL1FTWEFFQ0FOMXRWZDFwVmx4dGE1cVpmWGp0NnNUcQo1U3MyckY5bHU0eTFaZGRyMjN1TjIzUmR0dnAySm4yb0NoQzRCNElaQkJlMmpUcTdKdjFPL1prdGd6MTJDWUp0NnpldFdiSFU3dmwvCnN5L01mYkcvMzBiZnRVa0xYNGJrWks4MWJ0SWE3TnE2TmpEY1F3VSt0YjNadUVYZjk2ek91UG5mdjdsMTVVcTd0ZXRzZHF6NzlmdS8KSlo0OHVObXRQMThqR3lZSFFHc2xwYzJTd2hweFFVMUZvYXF5U0NvdGtVdUtWQlVGRlpLc2RGV2FlN3ZBdlpYdjBRcjY0VGgwY1J3NwpPUUNndlZvT3MveGpBU0JNSDZ3ZmxDWU9ibjlHWnptaEJpQVVzdC9aaW40Z0RpU0FBRDNPS29HaldvQXg1Q1hoK2VYUEFjaTAva1ZtCkRrQ0Y0V1lBc1NIQkpJRHdRV0FBSUw5S2tic2kya0VUNjZ5TWdjd2pEdVBPZkFERld3MzZyRExlV1JIbnBJeHoxc1M0MWdsY205aHUKTFJHNDlFVTNrTGtOeUFTZ3Y5RkFEUGQ4RG9EQVBZQWVkS0V6TmEwZmJlREZLWVZsRWdRZ21SbEF5RUJTMUFCVUkwSEJBTUlHQWdBcAowRWF3N0xKVGFZVkZDZG5GS1drRnFmR0ZpU2VrVVc3Tjh5cEFsSDRvQUZuMC9WRDZ3WDAvVEFCWjZNY0NRSlIrRUlEMkdoTWdWdlZqCjNVQUxBR2loOWErRjd2K05BSm9qRHBNKy8xOENDTVFEQVBJWlFzTk84TDZ3Z0U2UnFFbW9VS1RWeXhHQVd1VTVCbFd1WHBYYnBrWUEKNnF3cDZLb3RCQVlacTNPTjVISVlTS2hKaFFwRkNrbENzb0ovUkkrT2hVY253M2VqQTk0dEFFUVZnYjREQU5JZWdZZE9IYUV1WGVHZwpKYmNlTnNxaUFLTE9pUFV4QStob2I3akhVTGI5KzIvYlR4SmI3MDJ2ZmZJUStMTHowY0lBbW42NDVURmhPLzFrNnl5eG5YaXlpU0JZCjE5LzlSbXVKMTQvYW4vbnN0eHRJL1d4Nzh1aVpTZUxaS1dMajdHUDdhZFR2RFBTQmJKMmFSVTAvazBnL1FCK3NId3dnME0vR2U3TWIKN3MrdWVUaTc2Z0d4N0Q2eDlKTnAxa2RQV0gvOGpQWCsvN0orL3NjbC8vVTcxZzkvelhyN3ZhVzNmckowNHQxbDQyOHZHNzNKR3BoZwo5WjFoNlM4dTF4ajNuVkh4cnVlR1hza0luU2lNdkRwdkVqUUd6ZUw2b1lvOTFFUE1uYkFyZVRpaGwzUHBBZXZRZTU4eGc0TEcwNjNxCkIyS05QcWxrck9nSDl3QlJBSUxzSDRvQkE2RkZzYlB4VnNPa3pPS3krZHhROU1GaHVNZlU3MnhWUHhheHFoK0tQamcrUGFqZEI0ZTUKN0RXUFBoMDhaanphdVRpdWJSSFlRQmhBNU9JWHg2TUhuVGJ2MDQ5T3BLSkZaREdMaUI1ME9FeXZZSCtQY0g4L0duenFNaWh3N3hjQQptTW9ONllNZEZTQ2VtNmdDcEVLNzM3WFNXMFlaQU9ndG8rcDJxd1lBOUc1WDdmY04xUlB0elFUeGVHaG9ZUDJ5bGVzM3JMSmZ3WHJXCjNXMVR2MkZiYzdldHZwTkpIeHh3RCs3K3dldGZPd3dkK000ejlmMklUVU9HTFNseG03WjkyNzQ0WjN1dndiNUZ2NjI1WjJkTHovWkcKOUdkdFc5czJ0YmJCTjdkdGFHZlNCMmVUdG5Xbm9kMVcxL05pVzdmOXk2L1lyVmh1dTNiMUd2dmxiMy8vQjhUTTQxc0RiV2Mwa2tHbAp0RlZhMFZCZTFDd3JVb2tMQVVEcXlpS1pyRmd1SzY0R0RJR0JwTGtCelhHK09xRnpHL2YxamtpSERyWnpHOXUxbGV0aTVHTDZmQzZBClRQb2hBWVFPa2FnWGtKdS9SQkNUZTJqREJ1bERDQzBBQkhjODVJSzlsVnpjL2VPZmp4cUFEdVVISHlrSUFmMGNLd296QWFnZ3pBUWcKVWo4bUFPVnpTUUJ4anhUemZTdEZic3JZUFFzRENDanpoZUttU0hLV0p6dFZwVGpLVTV3VXllUnlHTHplODAwQVFwTVNxZnp6QWVTcQo1d0NBNEtHemdYT3dpY2ZUQ0FCQUZaSjVBTkpJVWZtblZwcUREQ1JHK3NGQmg4U0pjeXJMY3lwSzBvcUtFd0ZBNllVWkNRWEpvZUtZCnZRMjhoUURrM2lDa0JSNkszT3FGRUh5QnZGZ25jS3VMZ3JqV2lseHFoQzQxVVJiQi8xbytCMEFXQm5wS0FORU50RkFUdE5XYlh3SkEKRmt0Zy80b0E4aDVHbThMZ3dzZmNCeDFxRUVvVUtkWHlkR0FOQmFCV1RYNm51cUNiQkJBd3FLMDZyMVdUMjFxRHVvSzA2bXlkSXJ0ZQprbHhZSlFwdDRIaDJScnIwb2xVdE9vQWdEdTFCOUNJUUJDN2dwbk5uR0RwQUF4a0lQZDFiQnhCSkh4d2ZNNEFnZXp2Q3Z2WE8yZlgzCjc5dE1FZHMvbWRyMitQN1dtUWYyanhjRTBBNWlldnNNQWRreE0vMy9xTHNQNkxiS0JPSDcxM1o2TDQ0VEVoamF0SDFuR0NETmNVOGwKRFVnajdrV1dlKytXMVZ6Vml5Vlp4ZXJObGxzY083MzNUbWRnZ0JsZ1lOaWhRNHA3WE8vM1BQZksxNHF1YkpqWi9kN2Q5NXovOGJtVwpUY2l5eWVqbnAvcU9EaTBBQVByb0g0L2RPUEhrYUxjZkNsWDAyTkRZeXNFeG9KOVZJMlBMc0Zrd0lyL2hDZjBzR1JpQjlPa2ZBZnBaCjBEY0s2QU9hMTQxaWsxK2pQbDJqVUQvZjlpRmYzRVArK3EzWGgvLzBldmZ2eUp1ZndGTVFMNy9yZmZaMUgyejFqMWZMT1ovbW80anUKK0RTRmZzdHhPQUlVZGJFNDhoSXIvRnpoWk53aDY4ZDFnSWNNSURmM2dNTFBsb0p3OUxnQ0NPZ0g1akx0UmVobjM0bko5SlBudWlmcgprZTFYMk1DUEs0Q0FzTUVEbVQ3T1NJTEIrMWNCNU9ZZU9QYlRrYjVyVXYyazdXelBBTzA0bEk2M3ZTME5iekw5dUxuSGpUNXUrbkZiCjkvT3orZ0VSK2lIV0FHSERQeFRuYloydDhBSnpBa0RRUUsyZWcvc2JXcE8yWVErQmg2bWhyWWw3SE1tVXBreWJyZUs4VFhUSEpMMXEKbEFBQVhUZExyaG1GMXl6QzYxYlJUYk1VQU9pYXJmYXRCc1U3VnVXbEJqMEEwSkZqaCtkNSs4eGZOSFBwTE85bi9EZXNiTE10MGpVcwpNVFNRNlVNQUNLQUhuLzhDclREWjhTVkJqK3ViL05UbVpXMHRxK28wdmlybDQxcjlRck54bWRIaXAyc0FMYWszTHphWWw1cXhkZE1xCjg3UDFUV1Q2T0RQYUFac1dtWnFldGRoVy9QNzNTMmI2TEp3emMrN2k2VGZlZUFNZEhicmtNSGRJT2MwaWpwbFhYVmRGcitleHhIeFcKWFExTHlZSDZFWW5LbGJ4eU5ZY3Q1N0Z6YXZPaVZWbGJqRlIvYXh6UVR4QjJuY0lhU3lKWlAzZ0Jwc1FOUnZEMm4rRGM5RDRlcGgrNAo5WDE5SGY1bWhxSEhCVUN1K2dHQjk3WkFXVW9RdGkxcnZRenV6QW9USlczbVVMWXpEd0w2QUFEdExIdU5BTkFlWmlTZUUwQ01tQWtBCjBlTWdnR2dKcmdCYXJVakQrUklnelNBaTQrYlJNajBXSUowQTBEcEpwcjhzRGZ3ZkNEZjVZOHVlTmhoaUFveXhBY1lZSWxjQXVSb28KME9TNXlReEVjbyt6RUJPYzV5SVhCditmQlk4cUFBQUtnZHYwNHJicTRnOHFLVldDakJwQnBvQ1hnd09vamwra0VKYUNWRUlhTkJBUAo1aHdFNHRGcXVhWDhHaHEzSWc4QXFMUThyNWhabE12SWorS2tiNjJqZU5RUEdVQzRmdHdBQk9nenJoOTNBSTNyWndKQXJ2cUJBTnBvCnpuQXprS3QrUEJqb1VRQzVHQ2dMNU1vZ2N2OWRBTUszdm05dnp3UzV1K2QvTVlBMmRhWnU2UUQvRXcrWFRBWjNRZ2E5MGtDdGtlUkkKSmZsNmNiRlpBZ0Zra01FMVFEWUZCRkN6a2dscVVOQ0JnZXgxY0VtUVJVSFQxNVlaaEFWQ1FRYTFMbjZiTlNha09TNndOYzROUU9zYgpYZ1Bjd1FlQlhqUy9naHNJZU1pLzhXQ0FJOG81RGpRSmdQREM4SjAxR0lDZ2dWcVNuenNsOFAzbVU5OCtkRjR2Q2x6eXhPREFnckVlCnY4a0J0R0p3R0ZEbThWSGdtNGVMUjlERncralMzZ2RQRHd6TVJ0R25odEduaGdhWGphSXJCOUZsdzhPTDBNSEhSN0QxenRpZUwxL3MKMkVPZ0gzemIxOUorYk95bmYyUlJMOVRQdk42eHVUMG9hSHJYeUxRSG8xNTNoNUR2QnBBdnU1QlBmdkQ2NEQrOTMvc2M2dWYyUjhpVgpQeVBuM3ZRNmVjdTc4NHAzNjNtazZkUk02eEZFZldpK1RyUGpIQy9oU2tIc3hkTElTK3p3QzBXNFpuNFdRSzc2SVFBMG9SOFNnSEQ5CkVBQWl3cWZBWEFIa3FoODNBQkg2d1FIazZoNGk0c2hCL0FFSEVQalV6VDI3ajZiamtTbUQ5MThFRUs0ZkFrQ3U5Q0VBUk5ZUEdVQy8KWk9DSHJCODNBRTFOSHp6bi9pOWJOR3hjUDJHdGlRU0E4SDRXUUhEclB2YUFYMzBEOUZOa3oxWGE2YWR0UWdDZE40eXlHeGJaVmF2cwpoa2x5eXlTK1lvVUFnczgyeFZXcjlJNUYrcFpaY2NHbUhScnV1WGI3eW9KcFBuTVgrQ3lZZy96cU4zOTR4bXBhYkcxWmJtb2kwd2R2ClNiMFJoQS84NEJOaE9JQ1dxdlNySEMwclJPcTVEc2RTbStNSm8yT0p3UVphYmpJdk5WbDhMWFkvaTJPNTNnNlF0RnhqQVY5MWR3K1IKMXI1SWIxeGliWHlxVnVhMzhyRmxjNzNuenBteGF0WGlMNzc2RmgwYU9HUFRIVldLbTRSY0k3OWFXYzJzNDlENXduSUFJRTBOV3lZbwpCd0NxNDFmVmM2dlV2Qm94bjBrWEZ5WFVwZTNVVTRJdCtOaFBZb0NCNnVZZU1vQnc5NnpUeGVHNUFRZzdYTWZ6MkE4ZVFFOGdkbG9QCkFOQmFHZHl1RlNxa2JxMUtBUFJ4SGY0QnZjcUlBTGtBQ0I3OTdBUVFJNTRBMEg0NkJOQVdIdmcxcHdhUU8zRitwdG9NZnltYy8xcGYKbXdwK24ydmxDV3NVY1d2cjR0WnFvdFpwSTEwTkJNK01oc2RHZXpZUW1UNGVBVVFZaUV5Zm53VVFRQThBMEVZRE5ocGtpUWNQZXpXVQpTajY4RTU3UGR3SklLU2dHN2dHcEJSTUFHamRRR1RDUWlGTUtBTVF1endZQUttRVU1ZEh6WTJ2U1g1SWxldFNQRzRBSS9Vd0dJT3hvCkpZLzZjUUxJVFQ5T0FCRUdjZ1dRcTRSY0FUVDUrVUFRUUZNejZMOENvRzJ0V1NCWEFPMDRESE5paUJTWlB2OGVnSWdkSzI1aEYxbi8KQzBIM1lBRGFpaTJURE9yRTlvSTFVYXNrMldKeG5sWXlBU0NqSEFPUW5ONVM1d1NRWFE0QkJBSUFxbGZRVGVJU3VUQTdVNTZ3MHh5egpzVGsrcUMxK2JYTXNBQkJoSUFKQUFEMXJySHYrWk5qMVI5MHVnQ0h3T2c0ZzBHUUFJc2FCQ0FEaGJ6OStIOTlZK2VQWDgzdlJKZmRRCjM2R2hPV2dQY01rS2VEK1hPMzN3Vmc2T0xSNSt1T29oK3VUSUFEelNjQUJkUG5nWHpudzlIUFliUmg4ZlJNR1hGbzROTGtVZnJoZ1oKaFR3aUFRam9CN1NrYndRRUFJUVAvOHp0R1FYNm1kMHo1bk4veVB2ZU1QTERBUEpWTC9MNVBlVERiNzNlKzRmUFc1OGhyMytNWFA4QQp1ZlEyY3VhMjE3RnJYdTBYdlpyT0lnMG5mTFR0aUtwcFdVUDlLMWM1c1Jlem84OERBRlZFWGNWbXJ5NlVSais2K2V0bkFZUWJhRElBCkVmcUJqWS85T0dlK3hwY0J1Uy85d2ZTREE4alQ4RTh1bVQ1NCtOZ1BmdTRPdmdZSUFHaEhaN3BIL2Z3U0FMa1ppRHpTUTQ3UXp5NVAKOU5tQm5mZmpFVUF2dGFiK0VnQk5UWjhwaG4vSTduSHF4emErQVg0Y1FDSE5DVUEvWkFCaE9UZDJlZXlsdHVTdExmQWJRdUZGWnNrSgpqZ3lGbFhiQnhydGhrNzZobDd4cGtOMjBLYTdaNUxkTjB0dG1DUURRVmJQZ3VsRjhwMEY1bzBHTzd3SzcxS0FIQVByN1AvLzJ4TkxGCjh4WjV6NTJIK0MxZXNVb3NtVzl2OHRQQkF3ODlCdWlEVDM3aDlDRkdnSjdVMnhlWnJYT3NsbWZxYmF0VWxzZDBqYXQwTGZNc3JTdE4KMmlWNjdSS2oyVmRuOVZOWlZ4bWFBSSttVzB6dTdobHZoY2ErekdiM2EyeGFYczcyWFRodjJWeXZtYk44bnZ2OU0zZTcrL3J2L1hoSQpKZWxVQ08zY0twT2dSczJyVUhJWkhCRUVrSzZLcmVDWFM4WHdYRVF0andNeWMyb1VYRHBObEJ1cFNnd3p4NiszVWdLTlNadlV5V1Q2CmtBRkU2QWNDQ0Z2K2pNMS93WGN5L0hUQlFFLzBnY00vY05vTEFnZ0VIbkFBYlJSQUFMMVVkZ0FIMEc1czdBZk9mekVpWHFHSGV3QVEKSXg1V05nNmdzb1RkNHdCNnNTNEQ1MHVBTkl2SVhUYnVaWGxPbG9LTlVTV3NWY0Q3eTFZcklrQXYxRVdzVmtXc1VVY1NCb0tuQk9tagpZTTR6bzkxekhTVnlHekVpRzJnS01BVWI0enptQ2lBNEdtU0JpNEZlcmsrQTE0RmhBSklJM0FHazRqdjFvK1RURkFJYUFTQitaWDRGCkJxQlNaa2todlRDaEttTm5iU0taUHFUaG4vOFNnTWowQVlFL0cwNEF1Um1JUEIxR0dBZ0FDTTl0Q3N3VlFKTkp5QlZBWk9MZzRWZWYKNHMrdVJ5UHVBT0x4RkprK1B3TWcvUFFnVWkrMVozcU9SQis4c0U1c0xYT0g4eVlqOEFBK0JTL2lwN2ZoRnh2aDRkK3dHVHNSMGEyTgpoNUppTEtrQ1NaWkpXS0NYMHl5eU1wQkpRV3VXMEpvVkRBQWdQSWVDM2lndncydXBwV2tWSlhYU2ZLRWdNMFdaSE9pSWU3NHRhcU05CklzQVJ2YUV4eXI4aFlyMDlmSjN0NEZycmEvaEtJTmVKc0JkTis4QlhvWDZhWTRLYTRvTmNBQlE4dmxBVWJvTnZqQWxyVGR2VkZCZlcKa2hyU25MS3RLZUlQRitVekhnek83b0k3endGSGx2V04rZzJNTG5zNHRteG9kUGtRQ250RVB5TWd3QnFQTFI4ZEp2SWJHU0VpOW55TgpuL2N6Q3JlN2Q0OHU2VWV4ZFQvb2dtNTBEcHo1UXIxN1VhUVhuZmJEb004My9WNy9nTnUrdkQ3OHAvZDduM3UvOVluM0czL3p1dmFCCjE0VjNrUk92STUzWGthT1hrZlp6aVAyb2QvMWhwUDdpdkhwandDRit6Slh5Nkd1MDF5NFZSMTBxaXo5ZmpQdG1DdVVRWDNLRmp1dHkKSHh3NlB6c0NOREgyZytVKzhITTgzNjA5eC9Md1hqMmFDeUxyeEltUHpxeWRIWm5PSmNiWVdUdFE1NGRTZDNWbUFCNjljaXdiSGxIWQpDV2UrOEgvVzlkb0sxMTd1eko2czNSMVpIdHQxT0pNY1B0WGxOdUZGb01mMVU2Z2ZsN2ExcElDMk5pZmp1VDV2YVVvaUNzWE9OaVJXCi9HeHFUTnpZUUFtekp3UTBKQVU3a2tJYTRLM2dHeDNnbWVMdmlQZHZqZ3V5QVFZQkVzRkxOSU50Y0F0U2lEVWgxRWJaYUlrSk0wZUgKV3FKRDdiRWJIVUE4MUMxdDJBYXU5dWpRMXFqZ2p2Q2dEc3BHZThaK1IrS3U5b04vYW83YzFwUzRwUzFtZTJmeTVzYTA3ZmFNVncrbApiRzFKQ0d0SkNXa29DR3ZldjZzcEtzcVV5YktWV0MwMUY3WHlkM1hTbTlaYTEyNVk0RFdvMTgyU3E0YmFhd2JSNjJieG16Yng2dzIxCmw2MjE1eHZxaDc3N2ZHUmthSE5veUN3ZjVObTVjeGZPbUxrNFB0elhZVitnYTE5b3NmcHFqYjVHNHlLRDlqR2RmcVhadnRCa1cySm8KSUxiQi94dmhzMlo0VDJndFMvV20rUmJMUEtOcGtWcS9RbWRlYmpJdTFOZXZVQnZBdjJWSjI2SDVxY2tyWnMzOTlXeHZaQlp5TUQ1dApHQjM5NFpOUFR0UksyN21WVGJYVmFpRmMrS3ppMWNoNEZUSk91WXpMVW5CWUttNjVtbDllejRQcGVKWEs2aktkV0ZSVHpTNldsTWJKClNyY28wdnhOMjU4M1VsKzBVRlpiWXRlYVk5ZVo0amRBOThTRHQzbncvdnFpTnVOUHVvT2gxbGRlc2lhdFVjU0ZXcE0yMU1XdXFVdDkKVVpIMG9pSnhqU3B4WFIwMGpiODBOVUNXSFN5aStrdW84UGhCYVZLWU5HV1RORFZZaWsxNzFjWmpwL0trK2NzeTFzbmdDRTBvTjJVVAprNHFQQU8yaU93R0VELytBRHJDaVFhL2hqYzkvNFRlaGh0TmlJMHZqRDlBcHU2clROZ3F6QXlTNTY2VTVBWko4OE9CTW1rMjBRWnkzClFad0RrMlQ1U3pPeDBaMVVFSGl2eFlJTGtnQjMxc3Zqc0dMWEtEeTNUaG0vVGhVTFdxK084YStQRHRCRkIrcWpnK0JvVU5URWFCQU0KSHg5eWhsRUpCcDREc1NVNy8ycmtzWitwUzVGVGVkdzBSWFdXbUpzRDNTTm5pMnVaWEU1aExVUVBYYzFuMVBNWkdoNjlqbGNHMXdEeApJWUJxcW9xWjdEdzZNNWZHekNsZzV5VlZaa2RXWjRkb0UwQ2hPa3FvbGhwU0R6eVVpS01ub0Q0bFVKTVNyRW9PcmtzS1VzTGpEZGRxCmtsN1VKZ1hXVVVIZ0ZSRCs3RndUTmdtQVhPOWxjejJnMGgxQVpBTzVqd005Q2lEQ1FOc2FNMEZURzhodEJHaUtDQUJOMktndDAzTWsKK2t3Tm9Fa2owMmRLQUczckhML05FVHZCRmw5OENsNTBwWTlya3dIb2dDMmxRcGF1RmVYcmEwdHRFcnExdHN3c0wzVklTbHRrY0FTbwpWY2tDQVF3UkJuTEl5blIxcFNwcGdWU1FsU1ZQRG11SWd4ZnV3QVhPRUVBYkd1R3AwRTREWVFBaXpnU0NLNEdNZXdHTThKVkFiZ0FLCkdUOHdON0NOR3VhSUFmUjVxWm15dVNVTm5xdmJSbjMyVHR2TXJxRTUzU01ZZ0tCT3hnR0U2ZWZmQXBDcmZ2eUdKM2E4dzFYUC9aaCsKZXNlVzlvemlxNTduZGNOUkg2Q2ZhZDFqWGwxanlQMFI3Ni83NExhdnozNkNtOTcvL0ErdnR6NUY3bndNOTcxZi9nQTUrWVpQNS9WcApuVmVRUTZlUnhrNXZhL3QwUXh1aWJuM01xdHQya2g5M2xSbDF1UWdBS1BveVBmNTh5ZFFBY3MxdHBJY01JTmVCSCtLY1ExZjlrQUUwCk1mQXpwWDRJQUpFSFpvQitDQURocCt4c3cwN3YzTm1SamgvV0RQZGtnV2ZNUUJpWVBFZjJ6V1NSMFVPbWo1dCtYRWQ5SGhuK2VWUS8KcnVoeERhZlBaZ2NWNUtvZldBTUZiNU1OUGdjMnhQdmJZemMweEFUYUlrUE1FVnVzMFlIWVdjOXd4N3N0Qm5BSG9HZVRLWHFMT1dhOQpOZExmRnVWdmp3NW9qSVYvRVpvVDhMWTJaT3h1eXRuU1FnMXlSTWUxVVU5K1ZuWDdxOUpESCthOTNFN2QxSmF5dGlYT3Z6TTg5RWpNCnh0YlV6UzBaUUdPSko2aWlOOU1PMzg2L2VMVHFmSDNWTFp2aVNvUDZwRTNvQmlEQ1FKY05rRUczemFMWExjSTdkdWwxdStLaVRmM04KZXpjSFIwZlVhcVVQZ2l6eVJwYk5udTMxbTkvOFVhT1piM01zTnpiTU41aFdHVzJyTEEyelRJYWw5WVpmYTJ3THRXWXlhMzU1cmdCYQpvTll1MU9oWEdHMVBHUnZCbHdDRGxoZ3RxelRtNVVZSFlyZjgzbXhkK3FlQWhkT24rUzN3bVlZZ3gwK2NHVVdIM3J0MDRiQkkwTTZ2CnNncFlLZ0ZMeG1NcnVkVUFRRUJDQUVCMVhEWmNBTVF2MXdncXRQd0tqYkFHdkFzQ0JxbHJLcFFpSm9kYnBMQ1hkTHlYcDdpU1R6V0UKaDRuMkJlb1MxeldrUG1lTis2TTU2Z1ZMM05PRy9kdnRzY3JMcVI5L1VmYnh0N1U1YmNsL1ZFVThvMHRhcTh4YXAwajNsNlVFeTVLMgpTQkozQ0JOZUZWQU9pSktTWkxucGlvSWNlV0dSdUlndUxxSEphT215d2toeDVqcEpJb0JSb0RScHZaUUt6QkVvVFF6anhXOWxSeFB6ClgyUUFPZlhqQ1VEaHBmSDdHWlFkTldsaG9peWdIQWlnQ2ZRUWcwQ1FXUmg2bk81Wlh3dUN3d3h3RkVxZXVGYWVNRjRjTnQ0REk5TUgKRDg2Q0tXTkE2MVRSNnpWUi92V1JHN1JSQVRwNGNkaGsrdkVJSUxkdklDTFRCNDg4OWpOMVZEbVZ3MDBGQUJKeHNoVzhRcVdFSVpUUQpBSUE0VmZtaW1pSUZsNFliU01rdGd3Y2xDT2ppbWxKT1pURzdQSi9CeUFVR0ttVG5KVmRrUjFkbGg2cmpROVVVbDZnaHFzUVF1TU1MCmJuUVBWbEZEbE5UZ3VzUWdKVGJrQS9vNUFEMDYvelU1Z01KTTZTQTNBMDIySnRvVlFHNEd3Z0ZFTnRCa2cwQms5SkFCOUVoayt2eVAKQW1qWG9kUWQyUG45K0pBUGVBQ2ZnaGNudTkxNkM3WVQzaTN3RStkT0I3VkFuU1lUNXhyRXhZM0NNcnNFamdQaEFHcFRNTnRVYkJCaApJQWMySGFaWDBuU3lVaVUvcDFpYXN0T1VzQjViMSt3UlFIaXJMWHVmTjJJcmdmU3Z2bWphQjc0RURRVGVHQjRGRU54TDNKSVUySnE4CnVSa0FLR1ZUYytxV2x0Uk5qcmkxUitsTC8vcm5XZDNEYzN0R2NRRDU5c0pCb1A4S2dOejBBd2QrSGozdkIveGJGdmZBN2U0TGUxQjgKeWZPMHZqRjh6NWYzajROdzAvc1g5MXoxQXplOVgvc3pjdmtkcjNQdklrZHVURysvTkxQdExOSjRCTEcwZVpsYXZiVk5jN1YxTHg1VwpoRi9teDE4cGlieVlGM0dwSk9vU0krWUNmVEw5dUw1Q2JHaUh6NCtPOUxpNWg2QVBzY3Vkb0EraG4vMm44a0VFZlFqOUVPaHhwOCtSCkhCQjVQTWJKRG1MNEJ3TVFwRGtHb0IySDB5QnJqbVRDUlRuZ0dUTVEvdEZ6Sk9pUUk2UEhJMzNJK25FRmtOdkF6OVQ2SVFaK2NQMkEKaUFtdlIvVFRtQmhrajlucW9PeTJVZlpZS0hzdDhic3NzVnN0MFpzYVlDRzJ5R0JyUktBMVBNQVdIbWlQQ0dpSUJNSHJscXhSSVkxeApHd0gwbXhPQmVQQXByYzF0ZVRzYUN6WTJwUVFmanNrNkZkTTl5RWNIaXRHZmlxOThVMUZ3TEQ3TUVmdENLeldnUGV2bHhuU3FKVXA1CkxmWEhiNnBIQmdVamZWWDNQcE5mdHZHdkd1UTM5YUszeklySkFIUWVIZ1l0dTJrUjNUSUpiOXNrZHhvVVY2ekt0enNkSXlqNnhaZi8KV1BYNDh2bnpwNitZUDNzdU11TzNFVEhQdEZobW1HMitLc3V2dEExejY3UUxkTWJIYlUzTDZyUy9xbmMzemIrVUs0RG1XeXlQNmEyUApLdzErU25qcXRLL0pzVVRiNEt0MXpOU2FubXh2ZXV4QXhQS1ppMzBYejVrNURkbTYrb1dlQno4TzlYV2RhckFBQUhXSXVVWWVVOGxuCjFna3FGSnh5d0NBUU1KQ2N4MWJ4eTlXQ2lucGhKVWdyRmVva0xEMlBiZWZWTkhEWjFzcWlkNDZ6ME1IS29YNzY1OTh5dEtjb1VaSjkKdTJSSld6VzV3Y3BVOEhOL1JOT0J4dmZ6SHZhVW85MEY2RkM1L0ZUQ1M1TG9UYktVZzN4cUZDOGxVWkNWTGNxbmlRc3JKY1VpV1psTQp5WkNLV1dwWmxVVmE0eEJVdDRyNGRvV1FLNi9JRUJac2tHUUZTVE9DcE5pUnpUSnFTRzNTRmo1bGV3VUVFSzRmNS80dlREOTc2UkVUCitobmZBTytNRVk4RGFDK1RzcDJURWlyTzJGQ2J0VjRLMSs1Z1RaemxnNGVMQjF2TkE4U1R1RVlCMS9TQVhxekRpM1dtak1ZajArZVIKNnFMWDFFV3VWVWF0VTBldVU0ZXYxMFE0THc2YldCdmtXVCtFY3NqMCtlOEZVS3ljVXNGTGtkWmtBZ0RKT1BseVlhbEFYTXJsd0gxZQpWZVU1d3VwQzRCNDFCaUFRZUpEVjBQaFZKWlhsQlV4bUhxaVlsWmZPem80cno4SkhmVnptdjVMeFBWK0FQdmljRjl6dHBVd0VCZ3FWClV6YktLSzRBY2pWUW9DSVo1TG8rYkR3UCtwa0FFR0dneVJoRUdHaUxQUk5FTmhBQklEY0R1UUdJTUJBWlBmOXZBV2c3TnZDenRRTXUKNjRFcmV6b2dodUNMNC9SeGJRb0FiV3lqVUUxcFhGbTJTVkRVekM5ckVqUHMwckxHV2pvT29NT3E4blpOeFNGMU9XNmdwanFHVFVrMwpxdWtXT1YwdktLd1VwVWRvS2NFTjhHSlVBQ0RNUU80QUlnYUJvSUgwcno1djJMUGF2Qjk4ZFRJQUJiUWtiMjFKMk5pVUhOU2N0YlVWCk1DaitOK2ZWMDc4ZG1OMEQxOThzN0JsYjNEdjZYd1NRcTM1dytyanF4M1c3KzZMdXNRWFkyQS9RajFmZktOSU45M3g1Zjkzbi9XVTMKUE80WjZPZDllT1FQY2h2cXgrdkNtOGpaTzhpeEcwam5sZWt0cDMwYWpudFpqeU9tSTRpdUJWSGFmdS9nYmo4cmlMdFdHWHN4Ti9wQwpYdVFsd0NCbTVIbUdSLzI0QW9qUXo5UUFJaDdjYnJkd0gvakI5RU1BYUlvaEg0SSt1SDQ4UWdSU3cyVjdPZjRuRStoblMxc0tYSGJUCk1YNEQxMzhIZ01qdThhaWZ5ZHpqcWg5Z25TbjA0enJoNWFvZm9Cd1lBYUJ4L1d4cFRBUVZtZk9ycktVeUU3MWVXNmF0TDVQcWlpb04KK1hSTGZyRWhPMWVma2FwTmlkVlM5K3NTZGhyaU51cWpnL1NSNnl3Ui9yWW84TGNnc0NVaG9CVzI0UkFGRkhBNE10UkdnU05HUjJJUwpqKzcvcWE4Y2ZaQ08zaTlCKzJuLytMWkVkU2s3M1ZhYVVsOG9iVXY3OE9QaWtmc1Y2QStGNkwwOHREZnYrMDhxTGpWS3orc1ZWNHljCnR4dlV3RHFlQVdTVzNHaVFYN09JYjVnQmdHcGZ0eXR1V1pWWFRZcnZQdi83Q0RyS0VYSVJiMlRoUEo5blpzOWI2THZpMmRMc1ZZZmIKVjJyZ2d1V1Zlc2NUT3NjQ28zbU8wZkNNemtSbXpTL3ZFUUFaVEUvb2JDdlZ4b1Y2MHpKejQrTXF1Ni9TUHJleC9lbVd4djlJelppLwplTW5zR2NqQ2hUTm5Jc2lSSmdjNk52aVBEOTV1VlVnUGk0VnRZcDZCejZyak1aVENTbmtOdTViUGx2SlljQkFJdkNnbzF3Z3JOYUx5CmVtRzVXU0xTaXhnR01jc281bWk1RlFadTJaMVRwZWhZeVdoWDFuQjNSdmRQaGUrK3hkVHFTNG9xTW9wbHlkVXRDWi8vdmJLL240WDIKRmZSL2w5amJUek1jU2FIemMwU2kzRHBKdGtaU29KY3l6SkpLaTdqYUtxeXhDcXRzb21vN3Y3eEpYTjBpNWdJQW1VVTEwdHJLUEVucApBVUdtdjdnZ1NKSWRKRTNEVDJFT2xtUnM0U1MveElyRk4zKzVEdi9zWTBTNkFnZzcveERTQng3L0E2TEhBLzBjcE1YdllWS3dRNERTCjRFYXQydFJIVjVOUWlYRHVZRDBDblJjbXlWMDhIZ0RrTkJCTUZiR3VQaHJrcjR2ZG9JOExNTVNUOVVPR2tjZkk5UG4zQUhSUUVjOFEKcEVpNFdTSmVEZ0NRVEZqRUZ4Znp1UG5zNmx4MmVYWlZaYTZFVzZMazB6VTh1cnFHQnFxcm9na3JTcXJZQmVXc2ZEWXpyNHlabjhYSwpUbVJsQmFtZGMxNFRlOTJ4bmUyYlpZbGhDa2dmN1BwYmVMOWJvRHdoU0FZUHdNVFJRMFErRnNGMWRieEgvVUFBaFJyVFFGTXd5TjFBCkdJQThHY2d6Z0NaakVCazllTnVhTThrR2dwK1M2Zk0vQ2lBNDI5V1p0clV6YmZNUjJGYnNVL2pLb3d1QThJQ0tKZ05RVUVmaWE0MHAKVEJVRWtFTlE1aEF6bXFVc1J5MnJ0ZFlKb0E1MUJhaE54WVpyb2hVTXF3ckVzdGN4TGFJU2tUQXJ1UzV4bXpWbTNlUUFXbXZaQjFwagozcnZhdE9jRlBleEZ3OTdWeG4wQmpiR0J4RHBvQnlVWVgxclJUQTBFYjBJdEZQQTJFOXlTdmFVbE9hZ3RmZG10WThnOWRGWTNYSDBNCkFkU0RMdTJCQm9JcmRZWlF2MEdZSzRESTZISE4wOERQaUhQZzUxSDlBUHJNRzEvMzQ5T0xRdjNjZjRoODErdjl4WDJmVDM3eSt2Q2YKUUQvZWI4UDdMcnl2L2RuNzRsdmVaMjRoSjY0am5SZGdqcU9RUHFaVFNIMEhvckl2c0RTK2RMcnE0T1dLMkVzbE1XZXpZaTRXUmwwcQpDejhQK0VJbjB3ZTNEZzRnVi8zZ0FNS3Q0NllmZ0I2M1Q4bEhQRSsyNklkTUgxZjN1QTc4ZURUSEk0ZnJqQS8vQUFBQmpoTUFJdHpqCnVsclpQWkpzUEVZZTdQSG9Iako5WFBXRDUvcnBaUHA1aEQ1WWJ2clpQRjZ6dHFiVEpEeGhFcC9RQ1U3cGhDZTFndU5hUHVpTVFYeEMKTDJ6WDgrejZHcDJ4cXRiQTV1cnBsZHJTVEgxNmxpRWp3NXlaWXM1SU1LZkZXRktqekNtUmxwUURqUWRUN0duSnR2Um9LelhiSFBYMQpUOXpSM3FMdTdyTFI3MVBSbmlLMFQveTNPNHlQcnRCR3Z1YWo5OWxvWDBWL2I4NXdkd0g2a1BuWjVhSWJSdmtkbS9GYW8rQzhWWXpmCitnNjZZYXZGd3orOWJKVmNzOVVDQUYwM2l3R0E3dGprYnpTb3Joa2s3eDA3TWpUUVBUejY4T1U5TzVBWnlPSVp5R056NTA1ZjRmZDAKU3Y2empkWkZkZ0NnaHVXbXBwbHEzUXF6YlpsQlQyYk5MODhWUUl2VitpVWFBenhYMnR5NFVBT2ZIemZaVnhsdGZ2RXhjMmN2ZUdMQgp6R21MRWNRTEtjNG9HQmxGKy91NlRqY1ltOFg4VmhIWHhxc3dDQ3NVSENiZ2pyeUdLUkZBQUVuNVRCeEFTaUViQUFoazVITzB3bEtkCmxLMFUxU2lGZktXQTA5cVFkNytuYk9DSHF0RXVHdnFnQUwzUEdmaDczUnZIODIrZFNYall4VWE3QkdoLzBmMmYwZ2J1RmovOFNlUXcKNVdsNTFVMFNwbGxZYWhVekhLSUtoNmpLSWFxeEM2c3Q0a3FBb1RaaG1VVkVVMGlMcXlVRitlTHNHR0hLVm5IQyt0cjRkWklNZURSegpiYUovYlpLL05ETllrTG1wTW5FYkhVNStUUnovZytrSHowVS9FRUJPL1RCaUk4c29PSUJlWmlkczRWTURhcFBYeVpQWHlvZ0xOU25qCnhlUGg4MWFyVmM1ZVZFZDVDTHcrSHB6cW1qcnNGeVJ5cmdyU3hBWm80d1AxY1ZneGJnVVpZbjgyTW9ud3lNU1p1ajJxK0JKaHFvZ0gKcndPVGNYSmwvRUtCcUZBZ3lLL2hsNVpYNWJQWU9aeXF3bHFnSHo1THcyR29xOG9VbGFWdUFJSVhZakN6dG9uaVlVTEtlTlN0Z2tUUQpUbTdDTmtGQ21DZ2hRSWI5ZDFiQ1E4QkJnZklrdkNCRk1vajRsRXlmOGR6cEEvOWcxQ1k1QWVUS29Da01CTE5sa0EyRU1XZ0NRTC9FClFHVDZUQVlnNTZkayt2eVBBbWhUSjNZaGZMdHpoZ3VDNW5BS2VKR1k4eUxvUTh5SUVWK2FtQmRyQXdDaTdHeWxGdFpuNllTRkRjS3kKUmlrYkFLaEp4Z1lBT2lTZkFGQzdFazZFQVFNMUtGa05LblpqWGJsTlFwTUxjd3JrcWE4YTQvMmJZOGdBd2s4REF2UWhBQVRvZ3hzSQp0TjRXdFFFNy9BMEFLS2d4QVJUcW9BQUFCVGZEelY5YkhaVFFsc3pOelVrdkhxYk4rUE03eUYxMFp0Zkk3SzdSQmQyamk3cmgwaHk0ClJtZGd6QmZURDJ4b2RGdy84QmIzS1pwRVA0OGNkWWlmOUFPYTJ3WDFNNjE3ekhuYTRYZTlYdis0Ny8yM0g3Mys4aTFjOWZ6MlozRGQKRHpiMkEvVGpmZXlxZHllMjZybmxKR0k5akJpT0l0b2ppTnk2UUtkNjhhUTUra3A1ekJWRzVMbUN5RFA1Z0VIUkFFRFlCYVVlOVVPOAo3Z1lnRURIZTR5YWV5YWJBUEc3MWNwdjJJby82ZUpyd3lnYnRiTS9DMjNFb0U4LzFYRUhuQVExdDhNYlF5UUQwOG1IUGthMURqdXdlCnNuNG1jdzk1eUljODdVV2U4SExWRDRFZXZEQjd3aWFYT09vU2hiSGNaS3BwTm5DUEdzV25qTktUQnNrSlBieXo4NUpXZGxFcnU2U1QKWDlETHorbGxaM1cxSitzbHB6UlZKelZWeHpTVkhacnlsbnEybzU1bDB6SXRXcWJhVk5wZzRkaE5sVVlOeTZvdStmWmpJVHJBN083TwpIeDNJUVFjWWczZUwwQWQ1YUZjUnJwLzczVG5EL1dWamZheXhud1RYR25NdmFTUjNUSm8zTEpMYlJzazFDNHhna0t1SG5LK2J4YmRzCnRiZXMwamNkZFhmc3N2Tks4Vjl1WFJ3ZDZodm9lYkJwWnlneURWazBZOXJLNmZNV3pGaTJMREZ1YWFONnZoMTR4ZnFZc1hHWndleW4KTjVKWjg4dHpCZEJLbldXdXp1Q3JiMWdwTnk5UjZsYTFPNTdWeUh6M0hKdzllKzd5ZVhNV3owWjhwaU1KaWZGOS9VTWpROE9Yamg5dApGdFIweXNVdFlxNlpXMjRVVmdNQXlYbnczR2N4bnluaU1TUThCakNRWEFCVXhBSUdBbW1GMVhvcFF5ZXRVQXVxemJXMU9wN0lJTXIvCi9nc1IybDNWLzJOSjc3M2lnZjZ5d1Q3R2FBOEQ3U3BEZnlvYStKcmUzMTNTM1p1SDlsWC84QjdYeWk4dzgyVVdMc2NrRkZzRmdnWSsKcDRGWDJjQm4yWVJzczVobEZMRTB3bEtPS0Q5Ym5CVXRTZHNsVGdvUlVkYlVVbGVyVTlmSnNqZkkwd1BrcWY2MTJSdHFTNEpGaFpzNQpsRzNzVitId0R3WWdmT3M3cnAvOWpNaHgrc0FJL1dBQVNvd3NqWCt0TEg1M2VjSkdBUVc4bGE1VlVPRTZuanA0M2RqYXVuaVhKcnd5CkFTQWlkLzNFNGJsemh4UmNEYTBjLzhYSFAxMnZqZ01HMmxBZkY2Q0xEZERCSmRMWUttbDNBRTJCSVRKOS9qMEE3VklsRkloVCtmd3MKb1NCYndjMlQ4Zk9Ga2dLUklJOHJvRlZVRnpEWTJSWHNYR0ZOaVpMUDFIQ1pBRUIxbGFXQzh1SUtkajZEQmFmQUFJRHltRG1wek96bwpDb3F6Y2lvb2lwMFl4VTZLWkZIM3NTaDcySlNkbFpRdDNNUlFJVFZJZ2wxQUswOEJ0QTJRVVVFVDlNRStKUWUrRStaSlB4QkFJWVpVCmtKdUJ5S3VDWEFIazBVQnVBUHBaQTVIcFF3REl6VUQvU3dHRTBXZFhhOHFycmFrZzhBQStCUytTaDMrSVBBSW9wQU9lTlpLcFRWTUoKOGsxaW1sWEthcEdVTjB2TGNRQjFLSjBBZ25OaG1JR2E2OWdPSmJ1aHJ0eFN5MUNMQ3hteTlIQjlRbUJURE1namdIRDk0QUJhYmR4SApHR2kxNmVBNmEyUmdJendTMmhWQVlVMEpJYzFwV3hyajRBS2dKdXB2and1UXYzMk5mRGN5L2Y3UXJBY2o4N3ZndEJRT0lIZ3oxOE14CnYzOERRTU5qT0lBSS9XQUxuMUhpcG92NTJFay9jN0RoSCs5ZTFLdHJ6UHRIYk9ickM2Z2Y1SU92a0hlLzlIcnpiMTYzUGtLdXZvZWMKZjhQcjlFMnZvMWU4Mmk4aWJXZW5PYzU2VzQ1NDZkdVEralpFMmJCSXEzbnhzR0R2MWFyNEs3VG9TODRUQytFQjBCZG9FZWVMUUI3MQpNMWx3VDdzTGdGekZRelN4K2dmVGo5dkFEM25GenkrZ0Q0NFBFbjNhTW1DdVYwbU1ELzlBd3JZbTRiTmc4QXdlYkFwc0Z6WVhScWJQCkx3RVFHVDFrK25nRWtKdDczQUQwQy9YajVoNDhnajRiYmZHYnJQSDd0UEZKeGd5NlBrK3FLclJyV0IwNnpqRWRGM1RVSWo1aGtaeXkKU00rWXBlZE0wZ3RHNlVValhJa016eWMwaUVHWERlS0xSdGdGRSt5aVRucmVVSHRaTDNoZHE3eWpWWDEwcVhxc2x6bmFrelBXbGR0egp0MmhnZ05uVGw5L2ZsUWRlN0x1YlA5U2YyOWNEQUZUNTAvdjhtNmFhTnd5S213WVorSld2MjJWWHpXSVF3U0Q4QWQ2SGloMEpmZE5hCmU5VW91bVdUM2JSS1gyOVV2TzZRM1RLSlQ5ZEx2djdyKytqSTRMZi8vTWNMNi80MGJZYlhxbGtMVnM2YTVqMWo1bU9KOGMvYXpJL3AKclg2R3hrVUd1SFdMekpwZm5pdUFsdXQwUzNTbUpTcmJDbzNqS1l2aldWV3QzNEhkMDJaTVh6bGo1cklsODcwUVpHTll5TDNlYmhRZAovZXoycldZeC82aUVjMElwYVpad0xXS09UbENwNUxGbFhDWkl5R2NBQUFtNWRBbXZUTXFuQXdNcCtFeTREMGhjcmF0bDZjVGxla0c1ClhWSmw0ZkowVlNYdlhPU1BkbVdnQTZYQU92ZnY1ZmYyZ2Yrd0pmMFBTb2Z1bFkvMVZQVGNLK3U5bjRQMmxMOTdrYTNnbHVoRklqdVgKYitXS2JIeUJuVjlwNFRPTkFqYjRaU1VDTG9mTHAvQjVyL0dydHdrcUF2bnM5ZnpLZGZ5cXRXTHVhaG4vUmFGb25ZaTdWc2had3hPdAo1U21DZU1MTk5Ya3ZWWVR2ZGdFUW9SOVhBRVV3SmdBVVNZK05waVZHbHNCVEVIZFd4SVVLS2Y3d210WDROWXE0MVVvS1Z2eDRjWGl1CmRobC9FZnNHVlpSVFJhNHZ1c2pHclRYNE9taW5lQkpjcFlVYmlOZ2d0a0ViZzYyUGRocklWVC8vRndDMFRST2ZMVXF1NFdWZ0FNcFIKOEhNQmdNVENmRDYzdElaVHpDN1BaYkt5cXlyeUpSeWFrc3RRVnBmSkswcDQ1VVVzZGw0WkN5NkN4Z0dVd2N4SllTYURVbGtwcWF3MApVQW96TlptUmtreFBqU2xMaml4TENxZFI5OUVUZHpNVHQxZFF0MVFuYmVRbCswc3B1R3pJNHZHZ24wY0JST2huQWtDRWdTYWJDM01ECkVHRWdsMEdnRExLQjNCamtDaUFjT3BORkFHakNScTBaSGlQVFoyb0E0Y2Nua25OM3o4OEJhSE43OHU3MnRQRDJyUGoyWEJCNEFKK0MKRjExWFFMdTZaeklBaGJYSGhSMmlwT2hUNWNJY3ZialVMR00xaTlrRWdBN1hzVHRWVUQ4NGdFQnRDblp6WFFVRWtKeXBrUlJWU0ROaQpkWlNRUmllQUFod3U2NkF4QUsyelFnUEI0Ui9qcS9qa0YyNmc1L1g3MTVqRE45amhpWWc0Z1BBcHNJMU5jWUZONlZzYjQ3YTNKRzEwCkpENTFXb1g4L1lIM1Z3K20zUjJlZVg5NEhFRHdTdlovRTBEaitwblk4elVPb0NVdXd6KzRmbVoxd1IzdnlQMFJyKzhIdkwvc2hqTmYKZi9rVzZBZDUrd3Z2MnhQbi9TREhyaUtITHlLdFo1RG0wN1BOcDZacjI2ZHJtaEc1elZ1bS9YMnpDdWduN21waTlMbjg2UFBGVVpkWQpVUmZaa2VjWjBlZExveThVUlY0c21CcEFybDl5M21neFB0TGpCaUMzSVo5L2RlYkxiZHFMdlBMR3MzN0dBZVE4Um5rY1FKdGFrcmEwClVPSENmT3dNbmgxQVFoaUR3QVA0VStveE1tNm1pT3llcWZYakNpRGlVMWY5RUFBaUQveTRBZ2k0SjlRVzd3b2dYRDhiTFhIZ0QzeG8KWS9SV2MrUmVWVVMyaWlyUzVOcFZ0RTQxNjZpMityaWVjOExBUFdua25UTHh6NWdFNXl5aUN6YkplWnY4bkZWMjNpcTdZSkZkc2NpdgptZVhYakxJcmV1bDFVOTE1aC94U2crQU5uZXFHUm5lMnRiU251eHp0eVVIdmNrYTc2Q085WmFNUEtzZCtZcUgzQ3NjZUZBMTNNMGZ2Cmw2QURWZTlmWnA0eUNNN1p4T2Vzd3JNRytXVzcvSXBKNUdvZ290dEc4VFVkLzdaVkJveDF3MVo3MDE1N3UwSDZ1a042eHlHOG9oRjEKR2pWZmZ2b3BPalQ2MDNkZlAvSDdaNlo1VDUvdmgveHF4alJmTDkrbll6Sld0clRPTXRrZTA5cUFoTWlzK2VXNUFtaXBRZmQwdlcxcApuVzFlUS9zcW8yM2hycjNUWjg1WU9jOXI4ZEpaTXhCazdYUHIvdkxaRjhNbyt1SDF5eDM4NnBQU212TktjYWVVWStOVldDUmNaVFVECkFFZ0JiOENBQUJMdzZBQkFRaDROQUVqR1o4Z0VaZGpSTDJ5RmdLYmxzNDFpcHBhWGI1WlVHMFNWTFpiaTRZZTAvbnQ1dzNjTDBidGwKWXovUUIzNmc5WGNWOWZUbFB1aEo3N3RQUTd1S3hyNWhuR29xRVlvWTlhb2FxNEJsRkRKTklycE9XcUtRbEhLa3JFSXhQNjVHOGdxcgo5Z1dPK1RtKzVmYzh5Kzlyck05Vk5heXRibm14c3ZrL1dJMS9yR2g5cnNMeEhOditSMGJMYzh4RGE5bm1FSGJGVmtZU3JwOWZBaUNnCkh3SkErK254T3lyalFrUndrZ3VvQmVoa01nQ3RxOE5TRUY3QnY0MHlNWTBGV2VQOEVwWTdmUWdBalJ0b0FrQnJGSVNFNEZEVCtBYXgKNkNrQU5GbGsrdUNScVRSMW0rdmpNMFZKVmJ4MEFUOXJIRUI1WWxFdW4xTUNERlJWWGNoZ1o3T1oyZnlxSWxrTlRWNU5Bd0RpVmhReApXTGtsekJ3YU02ZUVtWmZQeWdVQVNtSW53MWlwNDZWUm1hbWdKRVltbFphZVdKUVNXMENOS0V6Y1YwelpUYVBzWUNRQ0FMa1ppT3loCkNmMU1BYUJnZlNwZWlDRU5GR3BNQjRXWk1pWWRDcG9VUUs3VFlUOS9RT0syWnZkZWFzbkJjaDhUY2txSVJCOW41RE9nc1dFaE1uZGMKWDNFbEVYNE9FTEdRd2kweWZmQUNqeVpFdDZiem1sbU56WkpERnFGZFcxRnRMcUUwNS9nZlN3dzlUTm5WUm4ybExSbTgzMkRMbktuZwp6V2xUSjFUUjlrT1FSR0dkS2NHZGNBSFFTM0NUT2ZpZXhGZGFxS1gxbVEyODBsWSsyeXBqTjljeTJpWHNUbG5sRVdYVk1YWE5FWFYxCmg3SVM2T2RRSGF0ZHdXcXBZemVvMkxZNnBsVlNMQk5tSkduaTF6c2lOelJIK3pkaGh4dzJSQWJhSS94dDRldXQ4RFFnZjlNQjBIcnoKZ1hXbS9XdU4rM0FBZ2Y2bzIvVzhZYzhheTRFTmRqZ09CTThCYXFTQ2dscFNOanRTTmpWRmIyNmlyR3RMOVQxNzB1ZmpyNmYvNHh2awpIam9kUThuOCs4Tkx1a2Q4ZTRhWDlnekQwM29HNFVKbTM1R1JwYU9nb2FWamc3N29ROURLWVJRRVBJUmZicnAwZEd6SkdBeS82Z3RTCmFSQmRNVERtTnpEcUN4dnpCYWpxUW4zdm8wdnVvd3U3ME5uZEdIMTZ4N3gvNmtHK3Y0Zjg1L2RlbjM3bC9mRVgwLy84MmZRM1AvSzUKL1FGeTdUM2swcDk5VHIvamZmU1dWOGRscE8yOFQrT1o2ZFpUM3ZwbVJOdUVTSzJ6NjdSL09DVGFlYkUwOWtKaHl0bHk0cTR1dDF3WAo5TGdXZGE3RUpmQXBMUktnWjN5cXkyM1V4MjNSRDRFZTBJRVRCWGo3aitmajdUdVdCenRhQU5wN0pCKzBwek9QYUhkSERoNCs1MFZNCmUrMCs1R3hYV3liZXp0YU1uZkN2d0RncHNGTUU0YkdCcmZERzBNMU5xZURQTmdUUTRlVHRoNUoydENkREE3Vm43SjQwZHhLTkI3KzYKNjFDNld4N0ZBOXJSa2s2MHZUbHRzbDRDdnoyc3JjMnBXNXBTOERZN2tsM2IxSmlFdDdHQlN1UTY4SU1YWm8wRGJUYkhoVnBpQTZ3eApBZWJvamNhWVBmb0VpaTQ1UzVldWwrVTFLa3M2Tkt3ajJzb09mZFZSRS9lMFVYaGVMenh1RTUreGlNK1p4T2NzdFdkc3NyTjIrV1ZMCkhkRFBWYVBxc29sejFjSzVaZE9lMFlndTJ2SWVmbFdEOXRKR3VrbzhOdFNUMi90VDFlWFd5ak02MVJrei81aXArb0pkZmQ3SUI3NjUKYkJSZU1BbWh0NnppS3hiSmRiUGtsbEVDbnNIRDJ4YjVEWjBRZk05MXUreVdwZlpkaStJOWcvUjlzK0tLU254U0svL0hSMitqNk5BYgpiN3l4Y3RsajNyT1FXYjR6bnBnNWV5NHkvYW1jTkQ5Ny9USzliWldxMVU5djlOVWFsOVliL09wTnk3Vm1vS0lWOVZaNDFaZW13UmVrCmJWeXFzK1A1Nld3cnREYnc0QXV6d25NT2RXYndqL2pWRzVkcERJOHI3TXQwTFl0dDdiK3hOYXpZL2ZLeTZUTld6UFpHbGs4RCtsbTMKL3NXL2Z2NFhGTzM5OFBhRk5nbm5na1o2dHBaN1RDRnBsZkFhUkRXQU1pb2VzNVpUVnN1amk2cExxbXZLcXpqTUdpNU54QzJVVmVmVgoxV1RYOG5QQUc2RktuRjFmbFFsK1ZLdFNGUE1WcFRZeDI4Um5jU1dNSDc5TUg3aGJQTnhWQnRmNjNDc0JENFAzUzhIejNSNzZqL2V5ClJvWUtCdTl4amhscDhoSkJmVTB0K01mTi9IU3RzTGhHd3N5U1ZCM2dHWUtaMTM3SGZzT1BlL3kzckp1L1lkNEEvWnB4L1ZuNnRXZksKcmo1TnUvSlU2ZVZmMDI0K1UzcjVhZHExSjh2ZWVMTGt6aDlveDBQcC9CMWwxTjFNQUtDRHJ6QUJnT0FOOFB1WUVRZVlrYUFJdUFBbwpDZ0RvSUNNcW5JNWRnRXFQajJRa1JOTGpvMHZqSXNyaWRwZkhCWW5pWHF4TEFKcUJ0ODAvTXZrMWtRdUozQ0lHaEI2SlRKK3BXMStYCjRERi9WY0lHTlNWQWt4QllIeCtveFc2VjEwWUhhQ09EZERIanhVMmtUVmhyaWw1bmp2RTN4WUkyR0xIMGNmNDZkOThRQmV2alBhZU4KaWxNa1Z2T3k2cXJ5Wkp4OGthaFFLaTVVaVBKNXd0d2FmajZiVTBpcktDeGhGckJZK1lMS0lnV25tRk5UVUZtUncyQm1sVEt5U3VBdQpzSUo4UmtGT1dYNHFNejJWbFpiR1RrMHJUd2Fsc3BOU21NbkpqS1Nrc3BURXN1VDRrcVRZRW1wVWNWSkVNZlcxb3FRRGhkUkFYb0svCmlMS3VscnBlU2cyU0pJYUtFOEZIdU5aSENrK0VjaXVnMXQwOUV3QUswcVdBM0FDRUdXaVNvYUJIQWZTekJwcHNGbXd5QUxtT0FEMFMKbVQ1WThGcDRqd3o2RndGRXpDTzRSNklQM3RhTzVOaVdURjREcmRYQ09XN2h0MW01Smx1bDBzUmdOdVFsT2RKM3RGSURPNUtDajhEagpmL0Fmd2VIc0dDQlJhL0pMYlhDbURGNk0yZzZmTng1SzJkSUdBVlNveXpUelMxb0ViTHVzdkxXV0NRRFVVVnRCQUtoVFZZV1BBQUVBCnRTckxDUURWQ1RQVGxKUmdleFRRRDd6dnZURnl3N2grOE9NUWNmMFFBTUwxQTBlQWpLOEFBTUZkOFphREFRMHgyRHBvYWtoRFltQXoKK0NrOFphTWphbE1URlFCbzZlbFR5SWZmSWw5OGkvd3dOQjI0cEF1ZDkyQjBVYy9JMG5FQXJlcEJIK3RESHhzRXJNSENqbmgrWWdEMQpHKzNEOHgwYkQrMEhMUjRkWFR3MHRtVEllYy9YNHY2UmhmMGpDd1pBWS9QN1IrZjFqY3pwSFozVk56cXRid1RwQlEzNWZOWHYvV1VQCjh1azk1T1B2dlQ3NENubjdjd1FiKy9HNjlnRnkvQTdTZnNXbi9iSjM2MW5FY2R6YmNnUWU5d3owSTdMUGttai93eUhjZnE3aTRHVTIKWE94OHBvQk1uNmtCRkhtMjJDVklIenlQN25FYiszRWQ5ZkdzbjJONXJ2UjV0U09YeUtOK1FHN3VBZUhJOEFDZ1p1eXlkRWNLK0ZNTgpEMkp1bndDUVI4cU1Cdzl4OEpUN2QrNXNTOXRKY2c4eDNqT1pmZ2p4NEcwRHZ6MHNRajhFZ0FqM3VBRW96SjRJY2dNUXJoL1FGZ3Q4CkRyYkZCZHBpZzAzUm0vVFJ1OVRSZTFReGUzVHhhZXBrdmlMYktpdnBrREdPcUNxTzFWY2YwOVdjMUhQUDZMZ1h0SUlMQnRGWnMvaU0KV1hyUlZIdEZMejF2RVo0eGlNL3F0Y2ZxbE5kYkJWKzl6MEo3eXdmdUZwRHBNeDZ6NThmYzY4Y3lUOVRMVG1wVkovUTF4K3NyemhrcQpqaGc1eC9XY1UzcnVXVDN2a2dGaTZDSVcwTStsZXQ1dG8rU09HUTcvWEcrVVhiVkxielRLWGo5YWY3Mmg5cVpKY1U0bFBxRlYvZTJOCm0rakk4THUzYnYvMmlWOHQ5ZkphN0R0Ny9vSVpQc2kwcDFOU2w3YzQ1bWthVm1sTW9NY0FmZlFXUDZObGlkRzhRRytZcTlNdk01aXgKUlVMbVpUclRjcDFoaGRiWnluclRDank5RVM0aE1zRERGVUdyVk0wTEcxdVdhcFZQeGNZdFdMZ1UvRXVXelorekJQRUozdUQvOVQvKwpqbzRNL2VYQ3VRNlI2RlN0NUlKQmRVUXQ2bFFJMjZSY203QkNYVU5YMUpUVkNjcGxmSmFVeTVCWFZ3ZzQ5SEorY1prZ2h5WklMeEdtCkZrcFNjbXRUMklKVUhwOEdyd2NYcGVocTg5WFZ6THFLL0daZDVvTnZjb0I0Z0h1QWZrQkREMmpnVTlnOUx2aFBPdkJUOXNnRHhqOC8KWkI5eDVJbTVPU0orZGE2SW1jR3JmWTFwRHkwOStqemowdS9vTjM5RHYvejdpcE51OUNFaUFlaG9LSU83bzR3QzlFTUFhSjhMZ0REOQpRQUJOVElFQkFJSEtLRGlBWHE2SUR4SW0vTzhGa0pLQ0cyaURPajVBRXhkUUg0TWJ5QVZBanpBb1VEK3hab2lZTEFPZ0lkUEhtYXVmClhBclVSY1VvS0pXOFRFVjFYbTFOSGdFZ2dTQ2J5eStvcU1FQkJJODlyQ3JQRTFSQi9UQloyVFJHUmlrakc3eGV3aTRzWk1FYndkS1oKNmVuTXRBeFdhZ1k3R1pUT1NrcGpKSU1BZ0tpMDVJVFNaSGNBY2VQOUJRbnJKSWtBUUlGaVNyQ0lnZ01Jbm9vcDhjQWdNbjNnQVZGUwpxaE5BWkFNUkFISTNrRFVkNUdZZ2p3enlDQ0RDUUI3MVF3Q0liQ0QzcFQvajRRRHlZS0JINTd4Y3hUTkpKUHBNQ2FEdFRhbTdIU21wCnRveGFYVUZUZlZtN3NiclRVSE84cnVxSXBrS3VwNlhhczdjZmdzTTh3WjNVelIzVWx6cVNDQUNCd01ObWJMWFFTNGRTY0FEdGJFM00KTkthQkgzR2FCT3hHV1htYmpIVkl6Q0lBZEZSVEF3QTBNUXVtcW5Db3krMUtsbDFTb2hibFp0Y2xiakU3QVVUY2h1RThEQm9BeVBJYQpBU0RYTlVDQVBnQkEyTWxBKy8xdFVVR05DY0JBK0Z6WXBzYmtNRWZNcHFiazlhM3BTMDZlUU43N0d2bjBCK1Nidm1sM1IyWTlHSnZ6CndMa1pIZ2ZRbklmREN3WkhmUWZSRlEvaDNWNlBQWFJ1akY4eURGdUtYZW9PVkxSOEFGMkJ0V2dJWFR5SUxuNklMaDFBbC9TakMvdlEKK1gzb3ZINTBUdS93ek42aDZiMkRvR2s5UXo0UEh2cmM3ZmYrb1hmYVp6M2VmN3ZuOWVFUHlKKy9odnA1L1cvSWpRK1FxKzk0blg0TApPWHpGcCszQ2pOWXpTRU1uWW14RDZsdDg2aG9RaVhtR3BQNlB0dHI5NTZ0akx4VkVuaTA4Y0lHKzU3TDdYVjFFeEpTV1d4Rm5pb2pDClR4Y1RrZDB6aFg3MmVhVFAwVnlRcTN0ZU9aeUQ5M0s3MHozazljNXU3aUZnNGJxa2hyZzRBdTRWYjB6ZTJncm52SUIrY0FEdGJrOGoKYSthWEF3aDNEN2tkQUQwdVRUYllRNGdIYnl2NDdXRzVqZjE0cEEraEh3SkFic00vTUhOOHFEaysyQklmWkkwUE1zZkJld0Mwa2Y2YQo4T2UxNFVIS2lEM1M2QlJKUWxsdG1rU2VZNjByT2F4bWdyK25KelZWNXpVMTU3WGMwd2JlU1NQdnJGNXd2cDUvcVZIZHFhazhiYTE2CjYweE4zL2Q4ZEtpdzkxNHlPc2dodWNjWjJsMkREdWIzZlU5Ly81SVkvSnFkY3RaUk9mdUV1ckpaVjk2dXJUaW1xVHlscVRxanJUbHQKNEI2MzhJN1krZWQwZ290RzhWV3I5SXBKZEVuSHUyNFdYN1dKTHRsRmwweWlOeHZWcjF1VTc3Ylp2M2p6V3ZlOXI4ZlFoOFBvb05uUwpzTVRiWi9GY1pKbmZ0RlV6ZkJiTzlQMWRNV1BSMGRiWlp2c2NzMzJleWI3SVlGMnFONi9RV1I3WFdYNmxzeTR4TlBnYTRGMFd2anI0Ck90dzJiemJQdEpybm1hd3dnMjIrSHRTd1NPOVlyQU0xenpZMS84NWtlaVloY3M2eStRdG5JZlBtenBnMWExYUlmMUJYWHkrS2p2YmYKKyttdmw2K2RFTXR1MU90UDFkYWVVTXRiSlJ3N3Z4d0FTTTlqYXdRVmRWdzJsMVVrckdhb3F4ZzhUa21lS0N1K05qbThMbUdmS242UApKbjYzSnU2Z2twSWd5Y29ScERHRThXeCtNcGViYzZ5cHNQZkxhbno0QndjUWNBOE9JUEN4NS90OGRLRHM0ZjM4bnZzRjNROEwvOWxWCmV2Z0N2YVNTdGJiaTFMcUtLeSt3Yi82V2NlMnA4aHUvcXJyeGE5YXQ1Mmp2L1pweDgxbjZEUUNkcDBxdjRvSG5aOHF1LzVwMkd3UFEKbFNmTDdqeFpldXVQdENOaGRNNXVlaHdPb0ZmaEZCZ0UwSDRXMUE4QklFdy94QlFZQkZBRUxTRzZOQUVIRUhpWGZWR1JDQXprTHlNVwpRWk56SjlGL2IyVDZQSkl5M2w4VkJ3eTBRUjBMREFRaUFjaFpxRFltcEQ0YUZJd1ZvbzBKMXNlR0dPTEFSNCtSNllNWG9JdUtyS093CkJabTFWYmtRUUlJQ2lhaEFMc3FYQ0hJRWd2d3FUZ0c5b2dCQUIzQ0h6c2htc3pJWnpDeWdueEo2WmdrOXE1aVZWOFF1TEdBV3VnSW8Kc3p6RmFTQm1DZ0JRS2owVkFJaFNnZzBDRlNjREE0VVhRZ0FGVjhkdDRNV3ZGVk9BZ1FJa0VFQ0IwZ2tBa1Eza1VUOFFRSUhhWkJBTwpJTUpBR0lNbVdSS0VBWWd3a0J1RHlCTHl1QmdJTlBVSUVObEFaUHE0QWNqZFFQOC9BMmhIUzFaSVo4YW16bFNLSTFXb3oybldNOENQCmxjZnFlY2ZxT2UzYVNwMmV3YlFVUkRlbWJXMUxER2xQQ0QxTUNUa3ljWFhHeE1JZ09CcVVDcjVuV3l1RllrbXRsUlk0aE93bVdVV0gKak9rR29DUHFhbUlsMENGMWVaT21BdTRGcTZYclJRVWw4cFE5dXRoQTdCUkVIRUJyR3NQWDJBK3V0azBBaU5BUENMZ0hadDczbkJFQwo2SG5EM3RYbUEvQk1GR3hCZEVoakRBQlFxQ00yekpHMHZqbGx5WkZPNUsxL0luLzdFZm15YTlvUGd3QkFzN3JnZmFqd2tKNmVvV1c5Ckk4c0dIL3FPRGkxRmh4ZWhvNHZRa1NVanczNURvNDg5SEYwNWhvSldqSTM1alkzNWpvMHVHUnNCTFJ3YlhqbzQ2UHR3Y0ZuL1E3LysKaDc1OWcwdDdIeTdzSFpqZk4rRFhoUzdGZG43TmZvRE91RHM2L2J2QmFmODU0UE41TC9MWmQ4akgvMFRlL3p2eXhsKzlidjU1K3VXMwpwcDI1TmUzRVZlVHdWYS8yaTBBLzNvM0hFZXN4Uk5lSktCeUkwRGhIcFB5ZG5mZnErU3JLWldic3FkeW8weGtSbDR2M1g2MGcwMmRxCkFFV2VMY2JvVTRqbDFFL0VKRU0rSHVtRHIvZ2gzRVBRQityblNJNmJmZ0I5OEFqM3VLMzRJZWpqcWg5b2krYms3UzdyYVp6NmNTU0cKTlNSdGJRYjZTUUg2ZWFtTnVyTXRDV2lHekJlWFVpYkovVHZkeEROQm41WVUyTThOK2JqcUIwU2U4M0tkOEhMVlQ2aU5BcSt3R0tlUApxMzVDTGJGQVB5R211QkJqYkpnaE5nUXVaWWp4MTBldDAwY0d5U1BXMTc2MldycDNUZDMrRUhYa0FWVnNnWUlxa0dmVUt3cHNkU1dICmxNd09UWG1IdHJKVFYzMWNXM01LempWTGpoaXl2M2kvRk8zakRIVVZEblZualBVWERQeFVTcVlQM3VnOTJzaTlESFM0Y0tpbi9LUGIKeFdlMEJjMzhza05hNGVGYWVxZU1jVXpHUEM1bm5hd3JCOWc2YWVDY3R2QXZOTWpPTmNyT21vVVg5ZnpYRFpLM2pMVzNqZUliTnVtYgpWdjA3emRhNzc3MkJEbldOb2YwRDZPREpDeWZERHg1NDNNL1BkOTdzeDJZZ1MzMm5JYjdJd3JuejV2aithaVV6SCtobnJzVTIyMktlClpUWk9NMm1ubVRYVExlb1pkdlZpazJxRlFmMk1SdjNIT3RVNnVYcURUTE5CcmdJOW9kYzhybE92MEtsOWRackZ1bm80WEdRQUdYMGMKMnBtUisrWXVuejluTnJKOCtkeVZDeFlzbmo3enVULzlCNytxNXNNUFB4aEJSMGVHQi9xKy9lYjljK2ZPVzh4V0h0Y3VxYktKS3gwSwpnWTVYSWE5aTFBa3F4QnlXaU1mbVZ1Y1ZDTExDWmRUTjliSEI4SmlaYUhnVHB6SG1CZlBCWUUzNGRtMzhObFhjQWVtQnBuT0ZEKzV5Cmh2cnpnWFh3Q1AzZ0QraURnckY3eGVnOUJ0cFYydDlGSFJwTnY5OWJmdWROUmdEdjJETmxWNTlrdmY2YnFodlBzSzgvVTNucjZmS3IKVHhkZkFkeHgxUThPSUJBT29LZktJSUNlTHIzMUoxcjdSbnJseS9Sb2ovTmZCK0VhSUtDZnFFaG1ERlpjRkNQdUVRRFJFaVlBcEVqOApYd2dnWWgvK3VybzRna0Z3Umd4T2h6bG54RndMMGNRUytvR1RaYzVOWk9RUkkvZWhJN2ZBMzdMWDZoTEtoQm5pR2dnZ01TOWZMTXdICkFKTHljNFQ4L0JwdVByc3FuOGJPSzJaa1krakpoRE5mOU16aXNzd2llbFlSTTdjUW53S2o1MlV3MGpNWWFabXMxQ3gyQ2lpVGxaekIKVEVuSEFKUlNscEpZbWtJQUtLSW9HUmdvdERJMmtCdS9WZ2dIZ1RhSUV3SkVDWUJCL3JYdytHK1BCdktvbndrQTRRWjZkQnhvRWdOWgowa0MvbkVHVHJZbmUydVNNSkNIUEFDSlBmcmxPZ1pFQmhNMXF1U3ZINDR0VEE0aDhQU3JlcG82Y3NPUFpnU2ZTTm5kUVV4dlNGTHI4CkppMjcyVlRkYktnNW91Y2VyNjkyMUxNRStzSjBXK2ErbHVTWDJoSkQyNU5DRGllRmRpUURCdUdYdzI5dGhTdFZNUUJSdGh5S1A5aVEKVXFQSXQ0a1lMVkpXaDVSQkJoQytGNnhOeFFJUExacktSbVdGUThhd2lPRTY2RGhsUXJBOU1xZ0JMbjllMnhDK3VzR3BuN1ZBTnVhRAo2MDJ2clRFZFdHM2MvNkpoMy9NUVFEQ29IOVBlUDhGeG9MMHZHUGRoQm9vSWNzU0VPS0kzT1ZLQWhNQTdhR0FqMWErOURibjlHZkxoCjk4am5QODc0cm4vbS9kSHBYZWlzWGhRZWl0Zzk3TnN6OUhqMzBLcmU0Y2NHUmxZTWppNGRIbDAwTnJZQVJSZWl6c3ROOGZ0TjhTWFAKZm5pOTZQSWUxSzhiWGRHRkxnUG9lWUF1ZmdBWC9XQXJmbENrQjBVZW9NamRVZVNiUWVTTEFlU1QzamtmZmpQenZmLzBlZk5UNzFzZgplZU9uSFo2K2paeTRoclJmOERsMEJtNTMxeCtHNS8ybzJoR0JmcVpRczhiQzNYVzZQUEpLUWVTNXZNalRKYkhuYVpFWGlzUFAwOG5FCndTT3Y1c0hEQVRSdW9Ba0FlUlFQMlQzRVNtYzM5eEJOQmlEeUtoKzNzUjh5Z1BDSVJjVDRTVGxoZHVxV3BwU1g0S0FqRlFRQUJEU3oKcTlWZE03OHdNbmNlUVk5TFU3akhJNENjNDBBTlNhRE5kcXBibTJ5SjhJNExLNFZvRS9ob1NjQUxNOGNUQVJ1Qmp4djFzWnUxTVpzMQowV0hxeUNCbCtJYTYxNEIrMWtrUHJKY2ZXSzhKWDZ1TFdGLy8yaWJsZ1ozeTE0cTRjVlhDWkprb1d5UE5OOGlMTFVxNlE4bHNsVE9PCjZVdC8rbFE0OUFEZ3BtaXNxM3pveHpLMGk0WjJ1N3VIYUxpckZMMWZPbncvWTJ3MER4MnUrT3JkNHVNTjZRSkpta2FhcTVMbEtlVjUKS2tXK1hsSG9VSlFlcTJOZVVGYWNVRmZCU1RHOTZKWkYvcnFwN3J5Q2U4a28vL2o4NFcvKy9sZTB2d3NkRy9yd2s3OFVsWmV0Q3dwWQpNR3ZlZk1SNzdrS3ZtVE9SRlV2bnovWkNGc3llTVhPV2o5K3NXUnVXcnRyREZFU3lSRm1zMm5LNlhGR29hTWlTZDZUV25xVFd2cDNBCitVc001L053enZjSGFycjJjbnIzY252MzF2VHU1L3p6SVBmVFNNNTdNZHdyVk43UmRKNHRUMVJmTEpMVEpOVUhpOWMvL3J0NVBzanMKT2NqY09kUG56WjI5ZU1IcytYT1IrWWpYU3I5bFcxN2VMdGJLSHFKRG8ralE5ejk4OWRhN2R6cE1haldIcGFwaDZnUlZTbDY1bE1QawpWSmZXMU5CVEpXbmhpcVF3WGV4cVM4d0w5dWkxOXBnTjVsaC9ZL1NhaG9qQU51b2ZOSy91YlE2M3Y1OTNyNjhHZlVqcjcwa0gvNFVmCjNpc2F2RjhNSGtEZ0FXK2dwNnpuTHJQbko4YkQrMlg5ZDh1NnYyVVBkZlBIQm1wT2ZhamZwemo4QlBQcTAxWG5mMTEyNWxuYWxhZloKVjU1bVhIaXk1SXFyZXdnUFBVTzcvVlRwNWFmcFY1K2szd2F2L0ttc2RUT2Q5UXJkcVIvbjhBOERBb2pRRHc2Z0tBYklDYURvTWdBZwp5amlBS01FaXFoTkF0WWt1SndBOUVzbERQd09qQ2JqOHN2QlRjTWpoWnhHdGxjUDExOWkzd1VteERhckVRSFVzS0VnVEY2U0p3Y1BSCmc0OFBBUnZocTZmeG0xYlg2MXpYRFAwaUFJR2ZNZllxNHd0RjZVSU9CaUJ1bmtTUUp4UERFU0FoUDdlR20xZFJuVWV2ekMwcHp5bGsKWk9XWFpSVFFZUENCbmwzQXlpMkF1OER5QUlEUzZXa0FRRm5zdE96eVZCQm1vRlJvSUhwYUtpMGxxU1FGR3dSS3dReVVFbG1VdkxrOApOcGdUdjE2WXNFWkNXU2VPQndhQ3k2TC9EUUFGMUNlQjNNYUJNQVo1MkJzUEdZUUJ5SlZCaElISURNSWtsT0Z4Z3hnQklKS0VQR3dICis0VUFjaldRUit0NGZQSGZBMURnNFhUd2MvbU81cFRRdG9RZExZa1o1bFNoTmsrbm83WHBhMENIZEZYdDJvcm1lbmE5b1l4dEswaDMKWk85cmdMZGViR3lqaGh5aWJqeVV0S1VONm1kemN5S2NHbXVsaExYSHZkeE1aYWp5ek1LeU5oR3pVMEozWFFUdE9nTFVxb1lBYWxOWApPbFNWemZMeUJtbVpVSktUSVUvYWFJME1zY0VGUUFCQXp1RWZiT1pyclhsQ1B3QTZSTThaTWYyWTkyTUcyb05mRXdiOEZOd1lCUUFVCjZFZ0lhNlNHTnNTdGJMWWdWOTVIM3Z2UzYyL2Z6UGlxYS9yZFlaK3VzV205OEhSbUFLQmwzVVBMK3VCazFzSkJkTTRJT210a2RPYncKOEt5aDRibkRJOTdvRU1nSEhRYk5RRWRBTTlGUjBGelE2QmhvenNnbytQNFp3eU0rb3lQSTZQQzBrWkZwZzBQZWZZTStEL3FuZjk4OQovY3Y3MHovNVlkcEgzeUlmZkk2OC9RbHkreVB3Mi9BNi81NzN5YmVtZGR6eGJydUpOSi8yYmp5SzZKb1FWU3NpYjBNNG1sa0M0Zit4Cnl2ZWZMSTY2eUE2L1VIVGdYQWJjdlhXbU92d1VQZXBjRnBrK1V3UElaZjVyQWtBZ04vUVE3cGxzZTVjYmZWN3R6SGIyNk15WG0zN0kKNkhIVHo0UXdtcEtJOE0xVCtJYXBVRnZpWmdjKzVVcmQzcElJUHU1cVRkblo0aTZZZnpVQ091QlB2bXZibTVMeHBuQ1BSLzNnOUhIVgpENDRlSW9JK1lVQThqN29uMUJTSEYyS0VvL1NodXRpdytwaE42dWpOeXFnd2VYaXc5RUNnZU45ejhyMXJaZnNEbE9IQld2Zy84V3ZyClgxdGZ0eTlBdGplaDhtQk9UU3liUTYzaHBQQjU2U0pobGx5WXArRG1uRzlQRyszbWpUM01IdTFQUS92ekg5N0xIT3NxZ01NOEpQcmcKOVQxZ29OMnMwYnRGRCs2VkRQYlEwWWY1bjM2ZFZXalljOUNTZk1DV3N0K2VjdENhUWpHbUZ1a3krWm84bGJyb3VLb0MzZ2F2bDE3VgpTRS9wYXkrMFc3NzQrQTEwdEhzUUhmM0xSeC9tWm1ZdFgrcUxJTWljZVhPbis4eFk2YnRpMW1KazNteGs3cnlaajg5ZHVuZlZjNVhyCmRwN2RTVVgzMHNlMmxhUGJLOUdkMWVqdUtuUlhCYnF6SE4zQmdMM01RbmV6MEYzZ0l4TTArZ3B6Y0MremZ4OTk2QldtczVmWlF5OVgKWUZXQlJuWlg5VVp3UG55bHlMaHVmL2l6cTVjc1hlQTlINWszSFprK1o5cU1SYk9RNlFneUUxbnZ2OXFvVlkrTkRnNE85L2ZmLy83YQoyUk42aVZCV3pSSlgwMFU4QmsvQXFPQ1Z2cUpPMnF5bnJNWDBzOW9lRGZRVFpJQXJTelpxWS82a1N3clJ2M2Jrb3pSMGhJYjIwZ2EvCnlVZmhrRTh4QVNDY1B2aEQ3NzNDb2E2eXdlN2N3ZTdrMGQ2U3dSOHJCKy9TZW42TVJ0SDhMSjNHdC9qUzQ5WFhmc3U0OG16eDlhZEwKTGoxYmVQWEpFc0NkNjAvVGJqeFRkaE1QUElOWG5xSGR3UUgwRFAwVzBOTHp0T1l0VE1ZZStqNWNQM3N4QUxsT2ZrVXlvMEdZZnB3QQppcUVuZ0RBQVVWd0FCQzlreFFDRUg0Ukl6cDFFLzcyUjZZT0gzekpHL3JZQUpTVkFtUUFLVk1YRG9JZWlBWVA4TmJId0pDR3RjNmxRCm9DNHFxRDRjaFBPSUhKaytlR3Yxa2J0VmNUbmlOQjRQQTFCTnJwaWZLeEhuQ1lVNWZINU9OU2U3b2pxSFdabE5LODh0WW1ibmwyWGwKbEtTRHNta1p1ZlNzZkVZZUhBRmk1WU15eTlLeW1lazVyTFJjZG1wZU9meVl6VXpOWXFSazBkUFR5bEtUUzFOeEFNV1ZwTVFVUVFDOQp4STRMcTRuM0YxRUFnTmFLNDRHQjFrc1MxZ01EdVFESTFVQWU5VE1CSUxLQkpqc2ZLTXljQ25JejBKUkRRUkJBWkFOdGNVejBLSU1lCkFSQmhvRzB0Nlo2YnhFRGpTNXNmMGMvRTNlOHVyNC9Qa2JuVFoyb0FiVG1jOGtwcitpdU85QzB0cWFFZDhCeWdORnRhalNtblFjMW8KMUxFZGVyZ0M0SWltNG5COXBWM0xWdW5vTkVOV2lqa05NQWlPK2h4S3d2ZkFiMjZsaHJZbmJXMUpDRDRjdDdVdHNiQSsyeUNndFFybwpIVUxhWVdrNUFOQlJWZlZ4RFljQVVMdVMzYUppQWdBZDBsUUJBTFVvS2xxa0xMbWtvRkNTc3RVY0dXYUpDTExCRGZBQVFFQXpRRDhiCmpBZUFma0M0ZnZEQkh2aGczdjlINDE3dzhRWExnZWZOKy81a0FxL3ZYVzNldjhaeUlNQVdIdHFZNHQ4STNrVEJ1MUgwcit4cTVPd3QKNVBXUHZUNzhjdnFYZDMxK0hFUzY0Tms4cytBczJNankzaEh2L2w3djRiNFo2TU9GNlBCVDZKRC93TU05ZHgvR2ZUOVUvbFVQNTh1ZQoyczk2akIvMkhIcW45L1NkM3F2WGUyOWY2WDNuL1Bmdm5mdiszYlBmdlhQbSt6ZFBmL2ZHbWU5dW5mMzI1dG52ajEzdWJiM2NwYjE2CnQrYkdEMW12ZjMzZ3JTL0MzdjFrOWJ0L25mUCt1N1BlZVh2R25UZDhydC94T1g4VE9YNFZPWFFlYVRxTm1EcThkTTNUbEEySTJJcFUKcVdieHVNOVoySHZQTUNNdTVHTVRXMlh3ek1PemhVQS9yNTB1amJpUVRTWU9IbmsxRDk3NDVCZnM0S2tpSXZKNEQ5NWs1L3FRNmZOSwpSeGFJUUEvdW5pbm9RMTVQODRnd0dxbGJIYzYyakc4YUQ3TW5oRmdwUUJYYlcwQ0pvSjJ0MUowdHlSQXJKTlA4a3NnalBXN3VJWnFhCk82N2ljYzBqZlFqOTRQUng5cWg3OElJTk1VSHFTRkN3SmdwOERLd0xENVM5dGtHNmY0TmszenJGM2dEbGdVRE5RZi82aUxYMTRRR3EKaUsyeWlGZEZFWW1WRVhrMThXeE9TbVZsY2tWMVNnVTNvNHFiV1ZXVlp0ZkZQN2dyUjFIdXc0ZWxLTXBFUjhzR3VrclFBUUdaUG5pOQpnMlVqUDlMUWJzYllZRTEvRndzZExQNFc1VlRlTEZuYkZyLzJNR1ZkUitMNmRrcElDK1VsUitLQmh1VFloalR3TTlLaCt2SnphdTVWCm0rYmRtMmU3SC80MGhnNzk4L05QaXdyekgvZnptNFVneStmUG16ZHIrdng1TTMwWHpwMkRJSDZMNSs1KzlnL2FvUERQRDFiMTd1ZWcKcnduUUNPN2RBL1Q3QjVuZzQwLzd5MzdhUzd1N3IremVmdnI5QTR3SHJ6Rjc5dFU0MjFQZHQ2Y0sxUDhxYkdoMzllREwxUTlmcVI3WQpVOTIvdDdvWHEyZGZkZjgrOEk5VTloM2dvbnY1NkQ3K0Y5dHpsYUg3TnY3aC96dzdlODRDQkZtNFlQYXN1ZE5tVGZOYU1tdm14clZyClR4ODZqSTZPb1dPalgvLzkwemFiVVZCRnErRVUxMGhvaFpWcEd3MlVRRlBjZWt2c2VndWMvTUptSWVNM0dPTzM2Tk9lVnlha244cjYKZWxDQTNzdEM3NWFnZzhMQnJ3dHg3dUREUDdpRWhydEt3VWYweHlMMCszejBYakhhVTR6Mmx6NThVSUFPbDQ2TkZuenhVelZGMzdHYwovdDdLMHJlZnlYNzNWM2x2cktLZCtSM2prcHQrQ0FNOVcvWTZYQTFOdjRJQjZQS0xaWTFibWFWN0dLOFF3ejg0Z1BEaEh4eEFVUzRBCmlxRTdBUlJlbWhCVkFobjBTbVhpT0lEQW15aUY1SjcvWVFDNWZNOGp2eDkvT1JXN0RUUnhReDFrVUlBeURtZlFCbVYwZ0NvbVVCa1YKcklyY3FJcmFvb3JhcG80RWtla3pOWUJXR3lKM3FtSXp4S2sxM0J4cGRTNElCeEJma3NzUlpsVnlNdGhWbWF5S2JEbzd0NGllazErVwprMW1TQnNvcXljeWhaZWN5Y2dGOUN0alFRQVNBZ0g1d0FJRm5IRUFadE5TVTBsUnNFQ2dWR3dSS0JRYmF4WTdmVkpPd1FRZ0J0RVlDCkFRU1RKTGdCaURDUVIvMUFBRzJBTjg0L0FpQzh5YzRId2dGRUdJZ01JRGNERVFCeU05RG14Z3hYQTdsZ0tJTnNJQmlaUGxoYlBSa0kKUm9MTzFBQnlucVJDamtRZnZMMnQ4SkNWVGUzcEc5dlNnenN6QTQ4azcyeE5TRzFNbEtzS3JQV013L1VWUjdFWnE4T3F5czY2eWhPeQpDcDJ1cE1xWVI3V2x2OXdNbC83Z3k0QTJ0amtCRkhBNGR0T2h4RHh0dGs1UTJzSXZPeXdvQVFBNklxK2FERUR0bXFvbWRWVnJYV1ZyCkxWc3RMcVNKVTE4eVJXNDJSUVJabkx2ZjRlU1g2VUNBWWIvYjVCZXVIemp3ZzRVOTczdkJzaC9vNTBYem5oZE1yNEovTU5DZUJBQzAKdVlHeXpSYit0RVdCbkxpTVhIOFhlZi92MDcvNDBmdUhoOGlETWE5ZWRHWWZ1cWgzOUxIK3NiMzMvai9xN2dPcXpldCsvRC9aTytsSQowelpONm5obUp6WjdHanl3OFdCdnRDV1EwTjU3aXoyRVdBS3g5N0xCSTdGangzRTg0cEhSakRaTm1xUkptN1JwcGdkN2FqeS9lL1VJCldVaUEwLzc3LzU3djk1ejM0Y2lDZ0lIV3ZQamNlNTlubHYydnVkYVA1dDg1Ty92ajRjbjUvdXUyN3UvbnU3OWRhUHArb2ZFN0c4ajgKcmEzdUczdnR2eHcxLzBKTVh5T21mOEtxL29GVWZZMFkvMm10K3NlODhaOHpwbjlhSy81c0wvc1FLZmtJS2Y0SUtma1lLZm5FWHZxWAorYktQdjZuNjg4ZlZIN3hhOTY2NTZUS3IvV3hzMThtTm5ZZC8zajU0cCtYd3JhYXUyMHBiL0RSMXQ2bkxuMnd1U3oycElwNGhwcjJ1ClREN0JTVC9Hd3h4VDVCeVRaSjltWlozbEpKNFUrdEpuZFFDbEhlZWx2OEpmVEpoMlhKRG1QTlB1NVI3MzdNZjNhczdvUlgyVzFRL0kKZmF6ZGx6N0w2c2ZMUFc1UEFBQzVEYlJqVVQvd2VqbnRCRGVBNGp3QTVFdVpmemQweGMyWFBydjZLS0NWOU9NNzZmSE5kK3JqQmFDdApQdm9COUVHTE1lZHNiUUMvMm1ZSE4yUUcxS1g1MTZZR21sTGd5bGR0WXFRNU5hWWhNN0krTTd3MlBhWW1jNjh4SjZVa202SEJ5UFRrCm9zTDhZZ1BkVU1UUVZiRDFGVHh0R2FkUVI2dXJ4WTZNNUIwN3lubHBoUDcrdTlLL2ZNVCsvRE9XTDMzUVJ1ME1aRnFIakFsR3IrUEgKcm5LLytVSjQrRDF4Y25kK1hBOXhieDk1M3dBY3d1MEV2L01Na3NELzJiY041L0lzVkdPajRJMGp6YU5mdk85d1RNd2djd01EQTg4OApzdGJ2RnI4SEg3enpGNys4NzhHZjMzblBmWDczKy9tRlAvS0liR2ZjdHp2VnN6alRYRVlKRXE5RkVuWGorK1NUU1ZxQUdFaVovWHJRCjNQN0MrZmdpYTN6cHd2NlMrWDNGMC9HYXFRUU5lSnZ4WkpCNklsazlsYXlaU2RMTUpLclJacE5VTTRuS21VVEZkSUo4Smw0Mmthb2MKUzlET0pKY0JLbG1URlBZRUtaSmVhazB4bmt2bkdvSjJCLy95MS9mY2VjdGRQNy83dGdmdXVQMmUyL3o4L0JJU1V5OWN1QVFNdERBeApldWJVWVVPeFdLaWxDWXJva2Mzb2Zhbmc5eUs2Q1lRTmJ5VUVkNUpmYktGRmRoTjNObXlydjBoOC94L2lmL3dnK1A1SDd2U2t6RFloCkJlSUJMd0dBWnE3eUFYM0FZL0J5ZklwMlpWVHk0VitMVGx5cVBmUldTOTJKa29LRDFZck9uaVJWeCs4NWwzNnRmUHRaNVJGLy92bU4KaXZkK3JUcjNPK243WHZSeDV3VFFHeEJBaW91TEFCSW55VzhBeUd2OUswZUZRUUdVSmMvSmtXRlJBR0VWeEJzQTBwS2pLcUIrbkFEeQpkYy8vRWdDUmcydWR0K2x3M3E4RDVMNWJtWWVCSUlQQ3FqRVIxZGxSMVZuYnFyTmpxelAzMW1USDEyWW4xcTBJb01XOVJONXRhYzNhClhZK2xHYW1HWWdpZ1NqMjd2SmhkVWNFdE5ISU1aUXh0UWI1S1IxTnE2RElWR3dKSXdtSkttV2dzR1FRUVY4bEZZOHBvYkVVK1Y1WFAKMDlCQVhEV1Zvd1RQVUFHQWdJMm9VcG9iUURnaEJOQStGWDY3QVFJbzBFanlCRkJ3eFpKVk1IZSs5SUhmeEVxU1g0aVo1QTVneUQwRQpDbXZPQllXMzVFVzBVa0dSYlRTMHFBNnF1NjJkTkxUb3JuemZZcnJwb0cwOStWNEIraXlybjhVaEVOMHJid245dEwxQm5zUlppVUZMCjg2SFBxdTA4dUh5TURscHhHN2UzU1g3VXJBWUdPdHlnRzdUb2V5MjZJelhxL2xwRmZaMUkxY2dodDlIQVA0Nmh3NlROUnduN0Jza3gKdzhTUUk4VFlnMlJ1RTYyMWxEdGNJdTAxcW9lTnlrTW05YUVhdUEzSWVRUk10NWdHdkUvUWNJTjJxRjdiVmF0c05JcXFTdGpZV3Z6Vwo1c3huZTlPMzlHYUV0YVdCZ2pyU0E5clN0N1NtTGR2emJhbGJPakpBNE1IVDdVblBkYVFBQnNHajhtMllMZTI0MEI1Q2RBOG1wb2Y4ClpLZjRqdjVPdjNNZitYM3dxZDluZjcvLzIyK2V2WFlWKysyWTVhT3hEMTY3UGpGOHhkNTZ4ZGJ5bzdYNUI1QzkrVWRIeXhVUWVHRHIKdkdidHVBcXl0VisxdGwwQm9XK0p2ckd0K1R1NzVWdFl3emYyeHEvdDVuL2E2cjhFV2V2K2JxdjltNjM2YzZ2cHJ6YmpaeUI3NldlTwpvbzhkdWc4UnpSL3RxbmZuNVpjbkpHZXZDbDVyMXgyVHlkcDNDdlFicFV4L0N6L3hWV1htYVZiMnF3VGlVVW5XQ1duQ2FYSFNhM0QxCkt2c1ZYdXFyM1AydmN6RXZTOU5PU0pKUDhsTlBjRk5QY0ZKT2N0Sk9jc0ZyUGFjN25xSGljYnZITTkrRFhiNTduRmZhNitOZThGcnAKdWo2ZUFQS2MvWGdaeU1zV0tDRFEvY0pidTRoUm5ZU0lkdkR0STZKZWllMkhOUEVsQzVwcmxyUDBZN21MYzdhN24rcVY5eURLalo0ZQpDaWdXeXN3VitnemFqbTZ5Vjc3ekhsZnRycUxiQ0doYlcvR2diUzM0bUdZYytQbTYxUUoveXFJUDRIbVcyc3pJbW95d21uU0FucUNhCmxJRGFsSUM2VkZCMGM3cC9ZMnBrT3lXcUhoZFJrN0xOa3J5L0xJbWl3c29MU0VvRFVWZVdvekxnUzBxMFJZWGNzbkp5b1lHcE1sQWwKY2p5WG41M1B5NklJczRqaURLSTRqU1JLZSswTnlvSk5pb3puTzZZNGMyTUZ5UFVDKzR6QThqNEhjNEJPT01UT0dXWWw5ZWZ0N2lSdQpkZTRrQlZhTEhLTHVIS0RGZEpKMkR0SEF0MkJQTnpGdWtCZzZoTm5aemhqODRNajh4SS9JZ3YzekR6L09TRW05M2Mvdi9udHVmZlQrCmV4NjY5L1k3NzcvMW5udHZqWHJrZHgwUjZhTVpCaVM1YURaUnQyd3pRQzMvbFpKMHk0YnNMMFJTeTYrbkYzUkVaRVkrL05nZGQ5OXkKeTRPM3cxdGozT0gzaTEvL1hDd1VUWTFPT2hEN3UzOTlyMmlnTXFrUXQ3NDdQV3lBR05XVUE3NDdnRDRCVFRtaDdZU1FGa3hFQnltMApHUmRremdvQTM1cWFqT2hHM040T2FuSS9PNmVYbHR5YklqNUsvMmFtMERwR21mOU9qbHhUSTFlNGpsblNXeDhaZnNkKzlXN2hheHNGCkp4L05PL2s0L2NRdithOCt4anU1aG5jZUh1eVN2TGxKL3ZwVHNoTlA4QzZ0VVoxNGh2ZldFNnEzZnk4NnUxRjI1bkgxUjcrVC9PbHAKeFV0d1Y1RGk4a2JaeGZXS3MydlViejRsZnlkUzFob25wOFFwazVKazZjbnlqQ1g2VWVWa3FUR2VHNEJ5bEhoMC9JT1JrM0FpdUFTVwpvaURINnZQQ3kvTUNUZkJtNzZGVkpDQU1WOTc2OFNYUklrcVd6NXM0YUo0M1dQVU12S3ZscThsYnR0QVZDcStoQnRTVC9PdHcwY2JzCjlNSXNtaTZicThOeUNvbTBDZ3pPbUIxZmt3Vitad2kxWklIQUx4VlI1dXhRdUpFSUU5V0EzZW9NUEhDcUtDZTRHYi9Wak1kVVVYVEYKREZNQnU2eUFXVkxFTXBYd2lvc1pCY1YwVFdHK3ZJQWgxdE9GV2pvUDRFYWVMNVRtOHlUNUhBbVRKV0d6NVZ5dW5DZFFjUGx5Rmt2QgpaaW1ZWEEyVHAyVndWSGtjRlFVd0NEeGdLUFBSYlVDNUVpcEpjc05BcVJKeXJBNEs1c1Vhb244VkxyUUNCSmZBVnM1YlA2NEpFTnlIClZVY0lyaWVpQUVKSFFjQkFvVTBVTHdPQndPUElkcGl2Z1ZhU1VFdzNEZlRUR2JTakx4OTBVd2JkRkVBK3ZybHAzc1JadlIwSDhwWXQKc1o4c2JhVzNOb2dHTE1xaEpnaWdZWXV1cTBVL1lGYjMxNnQ2NmhTV09uRnhBNS9UeXN6cXlkODNRSTBhd29jTTQ3Y2N4bThmSXJJcwplVTJsbklQRmtyNEsxVkNsNG1DVmFxUmFNMUtyQlEzWHVWTWZjcm9LQlZCUG5jcFNKVGFWY29pMWhHM05PUy8wcFB2M3BJZTJ3c1d2CndQWTBmeC8zdUh1bURidWxKVHVvT1Myb0pkRy9JOEcvS3dXOGZYQnpXbGh6cG45Yit1YmU1S0RlWFpIZCs3ZTBVUjdyTUQ1NjdGek8KeGI4WG5Qbit6RXRqNDcxVFNPTTQwbkIxdnVPSDBjR3I5cTdyOW81clFEbmdKUWpwdUE1cnZ3WUFoQm9Jdk1yWFFBQkFxSUVjamQ5QwpBRGtOWkRkL0JReGtyL3U3dlFZYXlGNzFWeEJTOFlXajdGT2s2QzlJd1VlSTRVOE83YnV6NnN0VGlnc0k3eExDdmpESFBQVVJhK0JnClFWdFJWeDMraUM3eFZYbjBCZDdlMTNsQU9SbkgrU2tuK0trblJUbXZpRWt2aTFOT1NqTmZrV1NjRUNXOHlnY013cjdFenpvbTNQT2EKMkpjK1hnQzZxWDdjN2xsK3U4OXkrdkZhOXZKZCtmSVVqMWR1L2FBRGxaMU8vYmdCZ2VvbnNnTWYzcGF6dlllSVRtdDI5cEhSOFF6YQpzZ2J5L1VCbzN1N3B5ME5iYWRMekh3UElhK3F6ckg1QWJ2MjRBL3FCaTE4MUdlRzFHYUhWYWNIVktRQkFnWFdwZ2ZWcFFRMnBVYzcvClNVZTBZS1BBV3pha3hkWWtaeFJsY3ZSNU9vTklXOEF3bE9ZYWloaDZBNitvbUdZb0pKU1c4Z3BMMmVvQ21reVRLMUxsY2xWa21nS0wKbDJma0tGSk54L0h6ODJya2FqNWNySm5SMjM5Z2ZUc3F3L1RrYksxT2lER254VFNrYjIxTWoyN0tqbTdCUnJmandYZGtkdys4RE1HTwpRZmoxRCt2RWJEdkUyTjVKSnZYejN2dnl6VWxrZkFhWk05WldQZnp3dzM2MytQM3lOeisvKzhIYi9lN3p1LzFldngxcjFvOXN4MDlrCkZ5MWtsVXlrNktaVDlONWUrVzgzbmJoOGs1bkZWL2VycGhQMVNIYmx0NG1xOXFEVUhiK0JZeXFndEx2dXZzM3Y5bHQzeHU3KzdJOS8KaHJ1MnIzOVdmS1lsdEprUVdKOFoyVTRLYWNOR2RCREE5eTdVa2gzY2lndHZKNGExRWVCRjlocHpRbW96ZzZyU0FpdFRBaXFTL1l2aQpueXZQaUM1TmZ1Y3JqWDJTQjFmRXBoV1RQOUlkODR5Kzh6VlBDTTc4WEh4dW5lRFZKOWhuMTRsZWYwUndGaEJudmZUY2V2SDU5WkkzCk5zcmdxdFpheGVuMW1qOXQwcjcyRytrZk5oU2VXNnQ4OVFubCtiV2lpMDlLenp5cGV2Y0o1VVVVUUUrb0xqMGxmeXRLMWd3QXRGZmgKQWhDcUh6ZUFzbFVRUU9qNkY5RFBUd0VRT2w5eFZVM3l5a2M1cStSTm45VUI1UE9mTCtZRzJkS1czclgrUm1IVmVVRzFGUERUUDZZUwprMUdRUTlOaXVEbzgyMERpRmVHWnhUaEtLVGFuRXBOVWc5bHR4c1EwWkVjMFFnYUZOV2FId28xMHpsdVBOVHIzVTVzeEtJQ3lxOGlhCkVrYlZJb0NxaXJsRnBVeERpVGVBK0FvNlg1YlBsZWF6SkV5bUZBS0lvK0R4RkZ5ZWtzMlVzNWh5QmdBUVh3TUJ4Rlhud2ptUWNrVUEKcFluSnU3WGs0SXIvendEYVlzTDRWMlBoK2JwRkE2RU1DckdRZ1lFOEdZUStRQUhreVNBdkEzbEpDQVdRT3k4QXVmTUNrTHZWR1FRbAo1RU9mLzc4QnRITW9EMTV4em9jK2FKRUhDZGhPU29HRjNkWW9IV3hTSFdqU0RscTB2Ulo0Y1AxQVBhVE13V3BsZDdXc3JsWllZT2JLCkd0a3BuZVQ0SHZMdUFXSktOMFZjbjk5U3doMHFFbmRYS1BzclpJTkdCYndnVURXOC9RWGF3VnE0Q25iakZ2Rm1YVys5dXNVa3JTdmoKTVdweTR5eVlMVjNwVzdyVGdsdFRnbHFTblZ0L1VuM3BnN2EyYS8rTDdZbVJyU21nemExSlQ3Y21CN1ZrYjI4bGhMVEM1OWYzSkQzVwpteGd3Z00vdE12UlpqbjNaOGkxaStSRnB2Z0prZzNTTklUMWo5dTVSTklmSFkvQTh5QUVlQXhVNVF4bUVHZ2dOTlpDOTVYc0FJRWVUCjAwQ1dmNEdBZ1J3TmdFRmZPZXEvaE5VQ0JuMkJWSCtCVkgyQkdEOUh5ajlEU2o5QlNqOUdTaiswRjMwd1ozaDNYbjNacG5rTFVmNEIKNFY5QVdLZG5lUzkvS3VtN3BPMXFhU2lROStuVFhsSHZQaVZOZmtXRU95ckVIZU5sbnVRbm5oTHRQUzFLT2lVQTlBR2xuQkFuSHhkagpqa2c5SnowL1plcmpxUjh2K3JqMWMyT244MkhXdjBzZnozSExEVzMwNXJyLzZLa0sxQkRiblhwd3J4TkZ0T1BDMjV3WEErd21vSnVqCmQvYVFZbnVYR01pWFFlNlA1WlhYMzhUZEV2UjRySEN0QkNCZitvQy9ObWliODJDWE8vY0pyMjJ0cm1KYThHalJnRDdOT0JSQTZDVk0KNERsZWROTVBYTjZDNDUrUW10VGdXbWZtOU9ER3RCQkxlbGhMU2xSVFZuaFRaa1JyWnJRNUxhazBrMTVBRkNvcENpbTFxSmlxMFpBcgp5bVdscGF5eWlseWRubVF3TUF6RlRFVWhYVlJBbGVob1VsVWVXMFhBNnJNU2l0T3pCN1BIWjh1UXE0ejVxNHJaQ1FHQzhBNS9LQXFyCnpkM1pnWTJGMTZIRzdPakE3KzRobzk4ZytDWHFKTWIyRW1QN1NkdjdpVHVPc0Y1c3dwRDcxUjlmKzhSdW4venl5MC9pOThUZDduZkwKZlEvY2Y5djlkOTMzODd0dXY4VXY2RGVQV2lKVHYwOVdXWk1OczRtNk9hQ1QvZXFwNUJVblBiNHpvZjhzWC9xZ3plMVdUeVVaUnBQMQoxK01VOXYwR0JHZjZORTFwQ1V6YTlPRDlkOXp1ZCtmUDc3dnp6cnQvL1l0SHVudTdFTWM4WXB2cGZPL0k3Z2I2WmdzdXVEa25xaFdlCi93cHV4VVMzQVEvQm5VQ2dzQlo4UkJNT3JwdVljOExyc3NNYmFNOWJXRnVxc28zSDhxd0x5cG5ydEtseDNkU2thSDVleSt6c1h5TTQKOTVqc3d1L0ZwemVJTDY3VnZQYTQ4UEphNlJzYjVXYzNTZDk2RWpMbzdTZmtiNi9Wblh4QzlNbnZSVWVmNEwveG1QaFBqeXZQZzFjOQpLNzBBaExSSjlmWmExYVZOOGtzYmxPZldxaTgvSTc4WUxXdllxeUR2azZlZzR4OVVQeWlBNE82ZnhmVXZGRUJZeFEwQTRTV2VBS0lGCm1xakJWYmx3U2FVcTE1V0pzaGdKNUZhUnQwVjh5YkpxdnZSWnpKc3lOOG1VdDJ5aFZiU2dhdkNBc0tzTWw2M0gwalVFam9iRU5sRDQKQnFKUVR4VHJ3RXM4dXhoUHFzQ2ttYkwzMVdidE1HZHViY3lFdng2M1pQbTNaQWRhY3NEM2NXdGRUckFGRjJuR1paakl5bEtHcVpCVApYc2dxTG1SV0ZMRUxTeGo2NG54VkVRQlF2Z2VBYUR4NVBsdVd6NVF5R1ZJMlE4RmxLK0FwTUs0YlFDcUdRTXQwTG9IbDh0VVFRQ3dQCkFMbFd3WVM1V0VGZXBvZ2NweVdIVnBBMlY3c0FGRnhKQ0tvaUJvR1h5K1ZMSHhlQVhqUm1iNjdLQVF3S3FNRzVSMEV3QzluTFFHZ1IKYmE2OEdMUVNocUs3cUNBdkJya2w1TVVnWnpTUUY0TldrNURQcmlEWDNxQWgycjhaWkkxdm51anh6SmMrYU51SGlERUh5UGh1V3AyWgpkN0JHMW1OUnREY3BoK3BBR3RCZ3JicS9SdFZyVW5RYlplMlZrcllLWVdrdHU2Q09wV2lreXl6MHNocFdSekd2cDFqVWJGVDBWa2o3CmpmS0JLc1dnU1FrYXFsWUJBSUgzY0tBZVRvRFFEcHAxL2ZXYWRwT3NvVndnck1wTE1tTUQyak8yZEtZQi9RUzJwUGkzcGE4Q29NZ08KZURIb1RTM3h6N1NuKzNmbitIZG1QdE9SdEs1ei82TjljWUh0ZUhLRHRzM2MrMm5ITy9OOS8wQjZSNUhlQmR2QnNmbkJhek85VjJkNwpyMXI3eHBEZVNhUjNDdW1lWE9nZFJiUDJqTnA2eDBEZ2dSV2dCK2pIdzBEb2xBZ2RCUUVEMlZ0L0FBWUNBSUk1QWVSdG9OcS9MeHJvCmJ3N2o1L2JLdnpvcVBuV1VmZUlvLzloZThtZGI4WWVJOW0ySDRySlZjbWxPZkdsV2N0a3FBZ3g2SGFHZVdzZ2YrcEhiOTVhNnBhbTIKa2oyZ1RYcEZ0UE4xZHV6Wi9PUlhlSmlqUE94UlR2SUp6cTdUbk4ydkNjQ3JNbzZLZk9tRDVpVWVyd1V2MzNuUFNudDlmRGM3by9yeApYZkJ5RFg2VzZzZk5DUGRqTC9xZ2hvaEI5OGM0aTJwekFTaW1Ddy8zQnZXUTBNQ1BaNUN2aEZBTWVaTEZNMC8wZUQ2L3JIN2NBUExOCmx6NW9idkY0SFc1M3U4ZE5IeEE4NStVYy93RDNvUFFCaGNIajd1bk8wdHo2Q1cxTUIrZ0piOGtLQVFCcXlOamFsQkhlbWhwVG5Vb28KSUNnMGVRcDVUbTgzL2RqTHZNb3lZcUdHVjFwQ0x5M1BLNnNRNm9zWUdnTk5hTWpqNlBQNG1seXhuTWhVWVROS3NuYldad2MzWmJ6NQp1UUtaazloKzREdkdPZGNSUlc0L0lhcU51NzBQN3I3YTNnUDN6RG0venZBemplMGk3eGpKQXpEYTEwdU02c1pIZCtVcVQ5ZC83UmlkCmM5amFlOW9lZnZTUk8vMzhucmpuNXc4K2NKL2Z6KzVjZjgrOWxTOXVuOXV2c1dVVUw2UVZ6aWNick9sRkV5bTYwZjFLSzl6QzdFMmYKL3hrQVRhYnFSK05WTTBrNjhMY0NMOGYyS3NDVDRDLzJ4d1NlZUZQWW12c2V1UE9oKzIrRnU3VDlNSmpzRHovNTh4eGlQZkczeTNuRApCbjlUUm1RM01iUWQzbDBocW9NYzJrNEliZ1Vxd29ZMFljT2JjUkV0K0tnV0FpaTBuaG5ZaWdQL1VzV2JVajY3cWtObTJiTmZTUnl6CmdzOS9xQW5Vdi9vbzcvVU4wZ3RyRk9jM3lkOThYSE44ZytUZGRYSjRmZWZuRkI4OEpZRVAxbWorK0h2NTJXZEVad20xUGNMK05uL1IKaDc4RjNCRmNlbEgxemhNcWVQM0RkZXFMQUVBYlZlZlhhaTQrcHp5M1RWNGJMOGZISzFLQmZ0TGttWXZYZlVhUHZyc0FsS1BFZ29CKwpVQUJoWlNBZkFGWGxCMWRSUXlvcDRPVnlCdklZQzNrWnlJYzRxK2ZqbnY4eWdFSk05QkFqTmFxQ3NxK0lnTk1SR0dvU1IwTmg2M0taCmhqeWVqaUxXa0JScW9rSkxrQmp3N01JY2FuRm1sakU5eVpTeHN6NHp6SklWYU1rS2FrUUJCSStTUmRSalU2cEpzaks2c1loVFVRQUIKVkZySU5KVFF0TVUwZVNGVmJLQ0s5RFNCSmwrZ2hBRGl5UE5aOG56QUhicWNBd0RFVlBJNHFrVUFTZWtvZ1BqYWZMNDZ6dzBncGp3ZgpBT2pHUG1oaExvNmZseU1nNzFPVHc4cEovaVppb05FRm9BRFRmd1FnTk1BZ2RCU0VNaWk0a1FSQ0RlUUpvUEJXQ21oMUJubGlDQVdRClo2c3ZpcUVBOHV3bUV2S2h6MzhYUU43dWNWNXNGNzNqMHJMRkRWQkNoMG03QnlueUprWkhOYis3VHRMUklCMnNsL2ZXSzN2cTFkMTEKcXE1YVpWZU5vcnRhMFZNbDc2MlNEMVJJK2lwRXJWWEMybHBlWXhXL3UwVFFYU3B0cUpKM1YwcDdqREx3Qm4wbUJhaS9XZ253ZExCVwpjOURzMmdQa0JsQ0hTV1lwRTJqS3FabTE0QmV2ak0wZHFWQS9yZkJlcC80dEdZQkJ5L1prRXlhZ0JRdlhTcnB5bnUxTWViSXRNYUFqCmJVYzN2cVN0K25UUEs1TjlYeUo5czBqL3duanYxR1QzT05JMVBkczlhUjJZZGh5WUF5MzBUODMyallQbUJpYm4reWJtZXNkQjF0NEoKdElXZThma3UxMHpJeTBCdUJnRUEyVnErWHpUUU4walRONjdOUU02MU1FZmRQK3gxS0lEK0JnRmsrc0ptL014YSthbTE0aE5iMlY5cwpKUjliaXoreUY3enIwTDJES045QkZHL2JKWmNjL0hNSTV4ekNQT05ndklIa3Y0WlFqaUtVM2g5WURhOGFTdFdkdXRUanFqMG5oWW12CjhKT1BjeE5mWVNlZVlDVWZaeWU5d280L3dmV2E5SGlOZkx4MitTeExIODk1enhMNmpEQmd5MjMzZ1FINkRPYWpvZnRzdkhiYkxHT08KNWVpem93UHF4MzB5SE9nbjBua1p3SWpXYkhpRGlHNGlhSHNYWVZjM3lSMHFJYTk4NmVPYkoyaFdldDUzMHVPTEh0K1JqL3Z2Nzg3TApQVGRhWFBOeURYN3FNd0Y5UW1yU1F1cGNCWnRUUXhyU3dpd1pFYzFaa1MyWklTMnBrZldaTzVweW9ob1RFNHdaREJWWnI4QjNOdVdOCmpjcG5wclVYenNxS05iUWlIYU9nbUdrb0VxZ01WRTBoUTFSSVkrdnp3TThEcmh4UDFtVHRxOGdFbGdvd1p4V01ZR2JuRmNnb0g1bVYKZGY2QkdGR0wyOTFGaXU0bHgvUlJ0anN2NUxnVGZqV2dML2YwNVlZY0lHenJ4dTN2cGlTMFVaditkR0FDbWJGYXJUZ3MyZTkydjE4OAorQUNrejROMzNYbkhMZG0vZStiREZPRmN1ZzZKVmRtVDllTnAydXZ4OHBtOUNsdUMxZ29nc2svaFM1Ly9icjcwUWZzbVJUV1pwTFh2CjE4M3VVVjNmcnh4TjA4MmtHaGIycU9lU3RRaXU4czAwY2ZpdkhyL3RuanZ1ZmZDQlcyKy83YTVISDI3djZFTHMxaXVPSzlnaDVmT04KMmNBNjRSYnM4ODNab2ExRVVFZ0xJYXlGQ0FwdklvUTI0a0xxTVJGbWNreERlcEFsYmtzNW8rSzRDVmt3SWxmeUVGdCswK242UjdnWApIaGVmM1NCNVk2M3MwZ2JGcGQ4b2oyMlMvR0c5NHZXMXNqZWZsci8vcFBEOFJ0MnJqeXJmV2N1K1JHN3EvTmUxNm5HSG91U2xvWTBBClROTHpUNm5mZTBKOWJxUDgvSHJOcFNjVmJ6MnBCQTh1dnFBNnZWMXVUSkRqRXVXcFFEK2VGLzVCQVpTandzQ0FmaFlCNU5RUEFTTWwKQWdCaHBDUVhnTXJvQUVCQlJscElaWjRUUU82V2tWRHdqUTNJcStkTG5QOG1kRUpYQ0FBb3ZKSzZyWVNjWkNDUU5BU21ob3dDaUt2Tgo0Mmx5K1JxeVVFTVVhUWxpTFU2c3hZbzAyWnlDTEdwUmRuWkYxcjZxckcyMVdaSDFJRGdCUWcrVXhac0k0bko2WlRHbnNwQmRWTUFBCmFZcHlGWVZrcVlFczFPWHl0VUF6ZVFJbFZTQ25jUlYwdG9MT1VzRHhqeHRBUEJXSExXY0RBSEdVZEpHT0pkVFNVUUNCLzRTdG9uc2UKQkNPTFhBREM4c2tKS25Ka0tTbGdLWUFDallSbEM2b2tMZHNOQUxrTkZGQ0RnOWRvTWhOQVFRMUU3emxRQ3hua3hhQlZKTFMxTXc5dApXUVl0SnlFcTJ1b011aUdoQWRxeTdSaWsvcHU1Wk9QVjh2b1pvUGpTQjIzbklIbnJJREZtZ0pqUm5hdTBNSnBOM0o1YVVWdVRwTkVpCmE3SEllOHlLZ1RvbHFLZE8xVmFuc05UTE82dGszWlhpZHFPd3dTU3dtQVNkNWNLdWNsbFRsYUtyVXRwdGxJRlFKd0VERFRqdkFqYnMKUEZxUEFtaTRRUS8zUVp2a3plWENpaElHd1VRSWIwcmYwZ2JQZlBtM3B3SUFCYlRDRFQzTHRxVWQ0OStXK1d4NzB2cjJoT2ZhY05nMgo3WUdPSTk5MmY0ejBUQ0I5TTlhZThkbWVzZG1CNnpORDErWVBqYytOakUwZHRNMGN0TThQMnhZTzJxd0g1cTJETXd1RFU5YWhhZXZBCjFFTC9KSnF0RDRZYXlBMGdUd081bDhQZ0JNZzVCSEl1aEgwRHNqVkNBOWthL3VuY0VQMFBlKzFYcUlFUWFLQXYwRzNSMXNyUHJPV2YKMmtzL3NSZi94VmJ3eC9tQ0QrYTFBRUJ2SVlJTENQY01Jamt6TG52TndUNXRBekZmUVdndklaUVJHNlYvak5yOUxhT3pzYWFJMzZOTApQcWJjLzRvbzhSZ3Y4VGdyNVJnejh5alRkOUxqUlo5bEY3azg2ZU1XanhkOVhEY1pYV0hCeTRzK2J2ZnM2YVBHOWVhaDdlN0pSZHZWClRRSEZkc0hSd3M1T0VnaTRCN1M5bllDKzlEd2I1YnorU2s1a1MzWjBPeGJRWjFzbmZrY0hQcmFMQ05yWlNVQWZnRHhKNUF4K0NOODgKY2VOSm5HV2Y5SUxPNnVoeExYVzE0ZEZpV25GTFdsenRjdTkwZHUvNGlXeklSdWtEUXNjL0FFQkI5VENnbjlER2RMZCtRR0hOcVZzYgpjVHNhTVh0cWtpbEdna0JLTXVxei8vSyswckZBc1ZzWjE3NDNOTlZRaXZYc2lrcVZwb0N0SzJNcEN2S0Zoanp3azRDbEpWRTEyS3lDCnJCMVY2WUZONmVBREpadjNuL2diRDBHcXZ4b3ZJZlZodDNZd2RyY25SWGVUUWR1ZGE0SndNeFA0YWp2UkdkVkxpTzdMaldzZ0gvL3IKYTFaazZydnZ2MDVOVGIzTDc3Wjdmbm5mL1hmZmNkZmR0LzNpZ1h2MG9YdnNtVVhJSHUxVXNtWXNYVHU1UnphN1R6bWRwcHRNVWkvcwpWVnJqTlpPcDNsNzVyK2RMSHpRazNyQVFwNXJhcTV4SzFrMW1GRXdtNjJiak5lQ1pxOG5LMlQwS0pMSHdDcmFFdkNIZzdudHVCd3o2CnpXMTNQM3pIdlFhVmF0NHgrNVh0Vzg1d2lYOGRMcWlOdUsyRGdyb25vaGtXMlVLQ05SRWpMSEREWWt3Rk1hcUJ1cW5NdEUxOStQeDcKYlFnaSszNWFtMWphOUd2VzVYV2FOemZJenErWFhONmd1TEJHY2U0cDZlVk55dFByMVgvWUpIdDNrK0RjTThXdi9scjBScmpvOVZmKwpYSTFNNVNPenhQZitMZ29YblhsY2VlRUo5VHNiVkJlZTBaNEQ3bmxLK2ZaVHFvc2JkQmRlVUovY0tTOUpWbUNUWk9udVphOHNlTnN2CjErbDNvQitzRWdQMTR3UVFiZ21BOE9CbHFwS0NBaWpBU0ErcXBJZFUwRUtNK2M2b3JxcHkwVzVneU5rTmkvaVM1VC9LbHpJM3FZcTIKYkVFbWVrUUZkWGNSTVZPSHo5TVFJZmUxdWVCLzluSmxua1NaeTFHUkdWb2lYVTlnR2ZCY0haNnJ3VWxWV0lFYXc5RGxFQXF6VTh1eQo0b3laTVRWdzNUbThEaE5TbTczSGhPT1cwK0FCK0VKMmNTR3pzSkNoTEtMSUNrZ2lBNG12STdrQkpBUUdVako0U2lhOCtLR0M1MTRDCkF3RGlLRGdNU1Q1SG51OEdrRkJGQTNGVkRKYUNqaDRFQXdZQ0FDSUo4L0FDS3A1SFRsU1NvMHBKUVZVUVFNR1Z1S0JLZ25NYTVFMmYKbXdBSW9NZXpMU2FNcTFvcytCOXhRRDBlR01nOUNvSU1jZ0xJYlNBM2d6ejNCaTNkSWVRQ2tKZUVQSmZLVS83VUFBQ0FBRWxFUVZURApsa3JJQmFDZktxRis2dko1KythbWVkUEhDMEEzNklQbVF4KzA2QVBrSFFNa0FLQ29RYml0UjJYSk45ZXhtOHk4aGdaUnMxbmNWU2ZwCnI1V0R1bXZsYlhXeXBucHBBM2hnbExSWGlocXJSUTBtWVVlNXVMTkMxbXhVdEZkS09veFNFQ29oT0N0eUF1aWdHUm9JQmRBaHMvNmcKV2RkVG8yeXRGSnRMMkxRcTBsWkxGbHpoYWttR0x6dXlWZ0hRczkwSkw3UWw3elpUZEEzbGx6dE96d3g4and6YUZ2cVE4U0c3ZGNnTwpsN2NHeG0xRG83TUhyOXFIeHgwRDEyMUhyUE1IWitmN3AyeDlVOGpRTEhKd0hqa3c1eGlZdGcyNkRJVHFCMlFITDNzbnJEMDNBQVJYCnhKWUN5TnJtbWdCNUFzalRRSTY2ZjZCeklLUWFBZ2hrTlgxdU0vN1ZYdjZwbytRVHBPUVRSOFZuU09ISGlQSTlSUG5Xbk9yaXBPcmMKZ3VyQ3ZQQTB3bmtWeGpxSjBGOUY4azRncEJNSTRUaUNQNFpnMnI5aE5CMG9xZUwwRnFZZVVXWWNFV1ljNFNVZTQvak9lRzdxbm1XWAp1cFpNZmR6NkdhYjcwc2U5MTJmWmtZOGJQVjd1OGRJUFFBOGFTZ2YwL2cvb2dmQUl1RXN4R3dWUVRBZThUVG9Ba0lzK0hRVHd3SjBiClE4NXVmSlFsSDlHSE9Ddk5kYnlzNC9LTjgvSDJwVXRkU3lZOVM5MEROeEdqTFVjZnowMC9RQ1NlQUVLM1BNTk5QMDc5UkRSbm9BQ0sKc3FSR05wRjMxT0V6SzlNRXhSU0ZQTGVualRJM29VTm02TmFwZk1lYzV1UkwrWVdhL01JaXFVeWZxeXpPRjJ0emVXb1NTMEdrYXZCWQpBeWErTENPeU5qV3dLVFdtSVR1NEppR3JOYkhwTFFaM21CQnN6Tm5lVGQ3Vm5iMmpLMjk3SnptMkoyOVhMeFU4czZPWGhGNlBZRWM3CktiNkZmdlNyYzFaazd2dC8vblByMWtpL1cvd2V2ditlUng2NjU4NzdiOTM4aTErYzJFbENNb3FuZDh2Z01mWDlTbVNmOW5xeTZzZDAKOVV5U3hyWlhOWjJnR2sxUlgwOVljUUkwSGEvNTcrUkRIelRiZnZWOFBKejNXSk4xZ0dJQVBaUHhTZ0F5SkZaalRTMEV6OXQyeWhCQwpSV1ZFd3RvSDdyLzdybHQvZHV1dHQ5eDlpMGdoUVd6MnYxMzdpdmxTZVZBakhxNVVOaEZCNFkzd0RwMmhaaXdJUEFZQUF0OUtBSWdvClM4MEcvZkFhOXRuZFJhMmxyNXRFM2VaMS9GZWVGSjlibzd1MFR2SEcwK0szMXl2T1A2MzhBQjc3VWx4Y3I3dTBYdmJXcy9JTG16U3YKUHlhOHdHbzZORGt0bTdzcVFiNFYybWZaeXU2WDE2aytYS2U3L0t6eWpRM0tjeHUwbDU1V3ZmTzArdEltN2ZuTjZ1T3h5cUlVUlZhcQpMQU1BQ0hXUDY4cUhpK01mbkFxTFUrRkFlQ1VCQUFnbkp3SUE0U1JFZ2hReXlBa2dXbmdaSThESUFBQUtMa2YxNDI2UlFVYVBhWkNYCmdYd284NS9sN1p1YjVrTWZGNENxYVZ2TGMvY1ZFREVhUEYxRDRHbkpYR2RpRFVXb0puTTBKQ2VBU0V3ZGlha2hnbmdLRWw5TzRzbngKTENXV3BNMU9LYzdZVVprZVdwMGFYcE1UV0pNVmE4S3l5cWtBUU1ZaURnQlFVUkZUWGtRU0Z4QUZlaUlFa0k0aTBGQkY2bnd4U01VUwpxZGdDRlorcjVITVVQSFFUTkY4Rno4TXpuUUFTYXBrQVFFSjFIbmg3QUNDZW1zbFJNcHhEb0h6bkVJZ0dBRVFVVUVsY2NvcUNIRjBDCkFSVGtBU0Q0eDJYem9jOFNBTjF3andrRC9nZ0hRdFU1bTJzZ2d6d05CQm5VVFBJMTBLb015Z1g5ZEFiRmRPZUJWbWVRSjREQTcxN0wKTjdCOFB1NzVEd0VFYjdpOVhGRUg0WFVPd2N1Z0lYemtJQzZubTJJdzU3ZFdNanVydVowMWdyWmFRV3VkcUsxVzBsa3Q2VEZLK2lzawp6U1o1YjdtOHIxemFaaFExbVVUUVBlWFNwa281TUkwVFJyQXU1M0lZdWdvMlpGWURBS0Y3Z0E0M0dPQUZnV3BVd0VsTkpWeW1pUkxUCmxBM29BeS8yMDVhMnVUMXpsU1d3WFkxWVhXZlpPd09YcGdldk8zcHR0dTU1Ujg4WTB2czkwblVWMEdlcWYzejY0TUxza0gxK3dHWS8KWUpzZm5MYjNYd0VlV2hnWm53WC83QXhQemd4T3pnOEE3a3loQUhLdmY5bWNXWHZHQVlBV3VxRit2QUFFejhiREUyRVFRTEJGQU4wNApGUTh5L3hPcGh3RURJVldmSTZiUEhhYlBBWUNzbFo4NUFRVG84eW1pL1FnQXlGNzRaOFR3dmwxK0NSRytnVWplUkhqbkhmeHo4NEt6Ck00TFhyWnhUQ1Awa1FqMW1weDJkeVQreVFEbUc0SWFSbkk0cmxKcVRxa0psc3lMdHNHRG5TYjRYZEpadFdmb3NzOXJscTUrRCtjdnIKWnhGQVh2cUJlVXhmUE5IanpqMzc4ZFRQMW1aTVZGTU9vQThvdkNrN3pBSUVrTFcxRFlNQ0NBUzVBL1RURHFkQnFJZDhXdkpSYm55NApGZERqT2RIeEZjK1NHWS96R2Q5RkxuUmt0YngrRmdIa3BSOTA4UXQxanpzWGdNd3B3WTFwb1UwWjRTMnUyUTh3RUNqYWtoYldTTjVXCmd5ZVZaWXBWT0lPT2Z1cUV3RDR2UXE3STdLTWlaRUgyeFNkS1l5blRVQ0RVbHNIOUNwSUNHdmdCQVA2NUJ3REtMTWJHVm1WR21OTkQKV2xLakxWbit6WmlJV2x4RTZmYVFCbnhZTTN0blozcDBWKzZ1THVxT2RrcHNKMlZuZHk3OHNuUVR0dmNRdDNaZ1k5dHpSLzUyWWg2WgorZGUzM3dTRmhmdjUrZjNxRi9jOStPQ3RmbmY1eFQzNitEdXBYR3RPd1VTOGRDWlRCd0EwbjZqN0xnUFNCOW1ybnR1ckhFOVNUU1NyClorTlZDM3VWM2w3NWJ6ZVZzSHlqKytYZ0x6YVpvaGxOVUZ5UGwwOGtxaWFUMU9NSnltc3BtbXRKNmg4U1pEUHBXbVMzSEVrclBMWS8KYitNalAvZjdtZDlEOTkxOXQ5OHRaZVZWODRqOVg3UC9ZZzJwbjJ4S2kyekVSMWtJVzV1SUlQREFlVThHV0dnZExiQTUvNm1TcGsySwprNytUdlhhLzRQUXZCYTg4Umo3L0c5RW5BWXBUdjFhY1dhdTV1Rm55L2diWm1SZmxuMjVTbkhwYStzNGE5YW4xaWpmOTlSY2ZGNTdaCkpIdW44VXdQTWsyNE9xbWZ2OEpEcGtrakh4cCt5M2w3cmU1VWtQclNSdVg3QUVEUEtGMEEycUo1YVpleUFBQW9UWnJoWHZaeVhmbHcKWlFEaFZ3UVFBd0FvR0RDb2t1WlJIbHFRa2VKcklNZ2dIOHI4aHkyT21uNXFIamp6TEtnNmIyczVKY0dBeDZ0eEREVUFFSkduSjNGMQpSRm9SaVY0QTZRTU14RlZUZUdvS1gwbmhLY2g1eWx5R25NeVhFUGxpTEYyUms2bEwyMW1XRWx5VkRBQVVVSjI1M1lSaGxPZWhBQ29wClloVVUzd0NRUUU4VzZITkZ1bnlKbGlIVk1tUXF0a1RGRVMvZUF4VTlCaTlVd250aUFBQ3haVFFBSUxIR0JTQVFYOFBpcXBnb2dKeFgKQTZJNWgwQTBNZ2NDS0thWUZHeThBYUROMVQ3dXVTbUF0aGl4eS9aaU5jN2Q1aHI4bGxxQ2Z4MHhvSjdrT1JCeWJ3d0NqME9hU2FBdwpnS0cyWE05VzJoenRpNkdsSlBJd1VHOHVLS2FYNm01Ykg4MmpQSysyOTFPWGJjY0FEZVJMb3RWaGRHUGtzN1J0L2VTVjJqcEFEajlBCkRoc2lSZmVUOW5XUnM5dnp5RzIweGtwV1N4V25yWXJiYnVTM0dZWE5KcUdsUm15cGsvUWI1ZDFHV1l0SjJsZ3RhVENKTFpXaXRsSmgKWjRtd3lTaHVCUUNxa25hWVpOMVZrdDVxMlVDTjRtQ3RDajBDQmlkQUZ2MGhTd0hjQmxTajZxbVNXOG9wU21OZVloM1p2eFgvWEdmNgpscGFrRUV0cVdDdDJTMnRHY0V0bVdGdG1XSHZPbHRhc0Z4dXhxWTJjNHZiUzhlWWZwanF2ei9mQm5UMEwvVk56ZlpNTEE5UFd3Wm01CkF6QTQ3RGs0YXowQXN4MmNBeTBNejdtZldSaWFBVzhKVjhFR25QcHhCb2RBL2VQV3ZqRTBkRGUwZXdqa29aOGZsdXBuOFlKQWxuL0IKR3I5MlRvRGdQbWg0SHQ1MUpQNExoK2tMZXhXNkZSb2F5RmIyaWIza1kxdnhoL2FDUDlwMTc5cFVid01EMlNVWGJPTHppT0NjZzMvVwp6bjNOem5yVndUcGhweDhIQUxKUmp5Q2tnM2JLUVN0eEdNazZpS1QyVHVGYlRzdHFqRlZsMjA2eGs0NHlVby9ROXg2anh4OWpKaC9oCjdEL0MyL0VTYi9mTCtmdU81cWNleWs4ZnBpVU4wL2NjNXV3OUpFZ2NFcS9rSHQrTlBxaDRWdG5yQTdpRHJuUEIrVXFQOHo2Z2ZaU2QKUFhCQktxNlRzcWVEdkx1RHZLdVRzcU9Mc3IyYmd0Sm5aenRwUnh0eFJ3dGhld3RwV3pNeDJ1TGFLSVB1ai9FRUVNb0lGQmJBU2U2SgpFZW9ucjFaNi9xYTUzKzJOMm9nZzl4a3VyenkzTmkrN3g5bGRkQ01HemIzc0ZRYmNVNThaV2UvYytHek9BQVdaMDBHQmpXa0JsclRRCnVxeWdwdXlnaHNTZEhVbmh6VHVDTy9hRnQyZnRhQ0ErMzVPOW93bWJVMEFTYWlRcXRheW9pUERsWDFYSUROTXhLck9OODIxVDBzbnIKcFIwdFdJVVNxelR3eERvdVM1RWgwM1BZZkFwTFMwZ3hwdnZYSlBvM0pPMXNTSWkwWklPQU1vRTEwUzhzdW5JSHJCUFhSWXRyeUFYaQpDZXpOaWgwaTdtckZoWFdSVDc5M3dZcFlQL251YjRFQkw5N2w1L2ViWC8zc1ozZmZjY2VkZnZwZnZmaDV1bXcrcTNBK1hqMmJyQjFOClZNNmw2R2IzS1dlVE5PN2NGeTBFVFNmQWFkRC9mTDR6cDlXWHpDSWVlZnpSVzI2LzViNWIvUjY0cGM1Y2pWaXQzMTMvanRCVytIeGoKWm1nakxxbzVMNmd4TjZLUkd0ZVlIMW1IMzl5Y3M2VzI1Tm1TMWsycTQrc2xiMnlRbmQ4Z1A3MWUrdm9Ud3JPYnhCZWYwcnk1Vm4zbQphY1BGOWRLWG41YS84clRxM0ZPNmMrdFY1OWJwUjU1U25YcXE1T3d2Sk8vRzY0Ny83ZXNDNnpScGRKemgrRjZPak9LL3ZLWkpMaDM0CmpmakROYVh2ckZXLzg0eit4S1BhNDA4YnpnUXBMMFJvQnVPVW9uUXhMbE9kbFNuUHlGSmtZaFE1empVdkRGNkp4U3NCZW5BRUZRZ1AKQWdDQ0JuSk9nQUI5Y0tKY25KaVFJcWRHRk1nMmwrdUNLNFhoNVpTd2NrSm9KVE9rZ2g1VWtSdFVTWGFpaHhwWXhRaW9aQVhEWGRKbwp5MjBTOHNsMzE4N3FlM2Q4WnptdWZOL1NHZHpzYktLSFZya0tNN3FLTU5KaWk4aVpHZ0pWVFlUbnYzUmtFRTlINFd2SUlKNFd4bmZ1CkIrSm9LQ3dWS1Y5RkFRQmlTd2xNTVk0TXZpQnFVa3h4Ym1BbGRYTUZNYnljRmxHY2h5bGpWUlJ4elhxNnNZUmRXc3d0THFJVkZlWVgKRk5DMEJwcGFUMVhxYVhJOUhhVFJjbFVhbmtMREJRd0M3b0ZuNEJWOG5zcnBJUm1icTJBSU5XeXhuaTNRNVBQVmNEOFFUOGxBdHczZApHQUlKNFNvWWtjZkxFakoyYTNQaExjQ3FpUkZHUWxnbCtjVnFDdEJZUUhVMnlOK1U0MStGOGEvQytWY1JZRWJTamRCbm5LMElvQmRNCk4wSU5oRElvb0I1dUQvSmFGME1CRk5wQ0JnRHlNdEN5RzROOGw4YThkZ2lCWDYzUVVSQ3Nod0x6QUpDbmdXS2dqV0MrRWxyZVF6NzAKdVZuZTlGa2RRRHY3WEFhS0hDQnQ3WU83QWZaM2t0TTZjZ1gxWkZWZFhtVXRxNm1hMjI0U2dJQ0JHcXVGelZVaVM1WFFYQzJzcnhiVwptUVQxUm41VEJiKzVsT2NCSU1rcUFCcHUwQS9XcW50TmlxWUtYVzJSZ0ZXU0UyN1ovMHh2Y25CblJtQno5cnIyck1CR2ZFQjcxalB0Cis5WjA3Z3JwSmVvN3EvL1lkbmw2OERyUXoyelB1Qld1WVVISHpQZFBBZERZaHFCNzNMbjFBM0xyWjFrQXVaYkFGZ0hrMXM5L0JpQ2IKOHlROENpQWIzQUFFOVdNei90WG0xSThiUUk0aWJ3RFpQUURrWUo4Q0FISXdYbkhrdndRTWhGQ0diZFNSU2RxaGFjcXdBenVBWURwbgpjQTAvRW12ZUVKZXBMUHFVRVVIbWNIN2FvZHc5eCtuN2puSlREd2h6RHJEM0gyRnNQODdZK1JJOTduRCtua09NK0JGMnlnRzJyMzUrCnlsNGYzKzArc1lzTFhuSGR1YnU3S083Z21hd2VNdHlVMDBuZTFVNEN4YmJCb3J2Sk1aMms2QTU0ZFJ5bkpJZ3hUWVN0alM0MFJGbmcKUFE2QmU5eTVSeWx1QTNreXlMTlZYclY5WlJndCswNWdQMEU4bnVqeDFRKzhZSS9GcFIrVVBuRFRqemtMelhYeXk1d0JEN3FER2pJQQpnSUlzNlVITkdlRmQyTERtOURCVEVuaHZrZjM1ejhPM3gwWlZwaWVYWkRBMDJYSUZ4cURKNm1yUG5oMDFJTk1zWkZKb0hXZGFKN2pXCnFmSlRMN09MOUJpeGxDQ1FFdmt5UHB0THh2R3dzUVpTUUEwTy91WmdUdG5hUUZrSlFEdUdhSkhWNlltOXpJZ1dURXhYVGtRZjNQeGIKOExvWlFheWZqWDRkRlJsNnQ1L2ZvNzk0NkphNy9XNjcreGJHV3Y4dnMxVXorSktadllxRnZjcUZWUDFvZ2dLdWVTVm8vN2NCeUhkVwp0UHJFNk84WnFsMVBQdWQzbDkrOUQ5ME53TmZWMW53VldmajgreStUMnhtaE5Sai9oaHg0TGNvR2ZGZ05QdHpNQ0xVSWdINmUwbzlzCmtKMWJMMzV6byt6aUpzVTVFSkRRMCtyTGE4WHZyWk5mWGlPL3RFYjc2bE9GZjFvaitQNEorZXUvRTM3eXFQaVBqd3ZlL1RYdm5VZFkKSC9EYXVpZW1CZmJyOHRrSmdlMWJxZU1xK2Rwc3NXSnc4RG5wYTArSVRqMGplZi9YNGs4MnE5NTZYUHpCdzdxL1BxczRHeWRUWkJicwozTS9PQXZySmtmOVVBR0ZsSkp5RWlCVVRFeVhDVUZYTnN3VXRXNHJMUWtyRkllV3M0SElxbkFPVjA0UEs2Y0VWY0N6a2pCNWtwSG1VCjUyNnBoMjV1SSs5QnpzMG1PaXNGS09hNVdoZGE2U3FxSW5kM0lUbEhTNlNyU2VqaUZ3QVFlSGtEUUJxNGVSbThaS3ZKTEJVWkJSQkwKZ21lS0NBUXBJVWxEamk2bUJsYmtCMVNRQUlEQ1MyaVpwY3pTQWpZQVVGVXBwN3lVWDFuS3JpaGhsWll3aTR0WkJVVnNmUkZMWDhUUgpGckoxZXI1V0wxUnIrWEkxVjZ6a0NwVThRQitCU3VnSklPQWVGRUJDTGRNTklKWUhnTWdDdUFxV0pTYkY2VEJoUnJnSkthSXFKOHlJCmZiR0dHRkJGRHFpaUxKWUhNOUpBUVZYNFpWc1JRSnVyWUM4YU1TRDA4UllURG9TdWkzbHREMEtYeHREVk1jOTFzWlUyU3J1WHhwWmQKSFhOR0FRRUd3WnpiREtONzh0eDVTaWdhMnNobElLOThNUVRyei8yMzhxWFA2Z0JDNzB1QTNwUTdxcGV3dFFmZWwyQjdEM0YzZTA1RwpLNTVueVMycHA5ZFhzMXVxT0JZajIyeGkxOVJ3YTAwY1VFMFZ1OWJJcmpPeTY2czREVWFPcFZMUVloUzJWNGtCZ0hwTVVsOEFIV2wwCkFXaW9Uak5Rb3hvb3JTb3JGUklyVW5lWTl3UjBwRDdYbWUzZmxyMnRMZWVaM3NUbldsT0Ntb21zMXVJM08wN045UDdMM2orTGRDRUwKUUR6T2tRL3FHR2dhSjNmYytsa1lkdEVIYlZuOW9BQzZzZjE1VVQrZzVmWGpCSkQ3Q0pqN2V0RHdjb2hPL2JpdkNvM3F4MUVMQWVRZQovNkFBZ3ZvcHZRRWdoL1pkdS9vZGgrS3lRM3JSSVhrREVaNzNBaEJDZnhrQ2lEYUM1QjFDeUlkdHBCRWJZUmpCRGlJWm5VaEtxeTJqCmZTckxmRWhSbk5PbjJIMlVtem5NVEJ1aHh4Mmo3M21KblRyTVNoK0MxKzhCdmtrZHlrODRSSXM1VGwxbW16UGFBUWJhWHVmVVo5bkIKaitlQ0YzcUFQTFlYN3ZXSjY2VHM3YVRzNjZEc2JTZnY3U1R0N2lUdTZvUWJsbEZxN0d5SG9WY0ZqR3JET3lOR056djE0N3dlSzZxZgppSWJza0lZTVVHZ2pQS29LZms2amVSbkljOG5Kc3h1Q1dab3ZpWlozejFJQStZcG5KZmY0MGdmOWROeURIOGdkNSt6SERTQjQ4cXZlCnFSOG5nSUIrZ3BzeWdocVNYekR2QncrMnQxQzJOZEVEVFdtSkxVbmE0N2lPTjNJUHZFNjVlSkh6cDNkNEgvK0o4K1huYkdSZTcvaUIKNFhBQ2FHR0Nqc3hxdnZsQy9mb0o5cEhEckpkZVpnK05DSVpHS09aaGJHNWZlb2g1VDJoemNtaERUbkFkMVF0QWJnT0Z0bUgyOWxLZApJc1RFZHVGRDIzRzRRZlZWMitqbzlSOFRjMUw4YnZGNzdPNTc3cnYvVHI5Ny9CSi92ZTZMTFBWY1pvRTFVV3ZmcmJEdmd6dHNKbE0wCmN5bTZ1YjAzSmtDZSt2ay9CS0M1SlAxWDZhcUVwemZmY2J2ZlEvZmZkZGZEOTc1NjZqamlzSjcrOHZ4K2MvNldocHl0N2ZnZ1UzSlkKRXpPMG9YQnpVZVVtMVhGNFZrdjhodzNpOXpmS0xqK3BPdnVrOHZ5VHlvdVBhVWFlMGw1K1FmL2VCdFhGTldwNFI0dXRta3NZVXgrLwpyVjNXYzZEc1dGZkpDVlBGaWJvTEgycnRNNExKSDBxbVJ1VUxQeXF0UDFKdDg1eFAvbGw0OUhKRi85blNBK2RxaktmNkdrZTZWSU9OCmUydEdRcVhOS1ZybVBsRUtScDhEOU9NR2tGTS9MZ0NSVkRpU0V1K01TRlFRQ000bE1MeVVoSlZqTUpLOGVGRlJnT1RBUnNXcHB6VUQKV3dwTWdXV0ZRV1Uwb0ovZ01tWndHVGNJVk02RUVvTHJZdTZXckk3NTB1Ui9xbVgwQTlwV2xydS9nSUxUa0pnYU9QZ0JPUm1VSzlCUwpRTUE5YUZ3MWhhMm1NSlVrcXRvSklER1JKb1k3eE9HTlFVcW80Rk1PcUtDRWxlYUhGTlBTaXVrRkJuYTlnUVVBVkZVbXJDN25nVXhsCi9LcHlma1daQUpDb3RFUlFVc3d2TGhRWEZJcjBCcEZLdzVjcGVXSWxYNndTQ2RVaW9VTEFrN0Y1TXJwSXpSSnJtTTROUUhUd2dBYzMKVFRNNFNnWUtJSnFZbWl1aUFRTVJCYm5aSXRJK0RTNjhFaE5ZZ3dVTUNxN0VPWmZBeUlzdFhRSXp3ald5cGEyNkJJYWl4N2NYVERlMgpCNkVNUXMrTEJWc0lJVTFFa0Z0Q3kyNFM4bUFRQmY1T3NNZ2dIdzlCQUxucWdyLytidTNPZGVlSklRQWczM3d4NUNaUlRCOWNhUEROCmx6NkxlUk5uOVlCN3Rqc0J0SzJYQlBRVDJZT1A2Q1dFOXhFQ0I3S2plM0pTMm5IVVJxS3NsbEpVVFRXYThtdE05Rm9UcTdhS1dWL0IKcUMram04c1o1a3BtZlJVTENLbXhrdGRpRkxSWGlUcXJvWDc2YXVTRHRVb0FvTVAxV3BnVFFFY3RoU09OaG9ObTNXQ3R1cmxjVVY4bAo0bGFUb2hyU25tdlBDdTNJQ1c5TjNkSWM5M3hUZkdhMzlPVzJsNURHSDVCT0JPbEc1cnVteHcrTTJZWm1RU2hsM0V0ZEFEMmVMUXNnCjEzOENndnFaOWp6ODVaNzllSTUvMENOZzdrdENvL3J4SFA4QS9iaXZCKzNhQWIxNFBXaVFTejhlNjE5UVAwc0JoS2k4QWVUZ25VWTQKcnlIc2t3anpCQUNRSS84bEsrc1FRajJFRUE4aitDTjI0dUU1OHZBQ2NkQ082ME15MjZleTI1Q2tscXRaRFMzNjh0UWh4ZmJqakYzSAo4TmtINmNrampMaERyTGhoVnVJUUszV0lFVDlDalR1U3Q4d3VIN1JGOS9qU3gzZWpqL3ZvT0x4d2p2TXgzUFRUQ2RlODlyY1M5clFSCll0dWhQS0xiblFScHhlOW9JU1RVRXVKcWNUdnFzYzZwRHo3S2dvdDBYcUlldU1kMXN4NXpGZ0JCVUgwYU1GQjRFL3hSamVabUVQb3oKMjJzeWROTzhmYk5jUy82VG0zSEhVenkrN2tHRG54UzYyWGxSUHlGbVYrQnhhRjBHQUpEenpCY0VVSWdsUGJRcFkwY2pKclFKWHZvOAp0QlVMM2dEWG4vbmVqNnI1VWZxOFZXU2RrU0RUQ21SR2h0aWtNNU1jKzVRWXVTNnpqc3VzRTN6YkpNTSt5VWJtNUROakV2dThhc0VxCnQ4OXJySE5TNnl6LzYyczgxYUhFRUZOS1dHdGVXRzBTQ2lDdklSQm9WenNwcEJzZjBaRWQyNDRGUCtQVE92bGZ6SDgzT2o2V25wRU0KOUhQdmZYYzgrdEFEOTk1emU5TGFwNy9QTVl5bTZhYmlaTGI5YWlTbGNDRkJjMzJmREFCb0lWVVBubGxXUC8rSEFEU1Jva1AyNnErbgphdmV1ZmRydlo3ZUJ6LzJKUng1KzZkQkJLMko5NmF2TE1mV1VGMnZTb2p1WkwxU0t0cFMzUHFzNnVrNEdiOWkrWHZvQklNNEd4WVVOCnlqTWJWZWMzS2k4L3BycThTWFhwS2ZGN201U25uMVora0dFK2MvbUhvb2tya21tcmVIcGE2SmdWems0eWJaUDV5S2pROFlOa2JJd3gKTThxMGpTdW52eGZQZms5REpsakloQmlaa2pyR09jZ3NaMjVDQXI3RlA0N3JEZjJHUkxrMFJaU2FyY3h5NmljTDZBZW5jQUdJcU1DQgpWZ0lRUm9ISmtkRDJDc3RlRkwrOFJuSjVnL3pVczVyQjV3czdBMHVFUVdYODRBcE9jSVZ6UzFCNWZtZ1pQYXljQWYrNGpJSGNwOFo4Cjh5WExmNWJ2ZTE2U216N2h6bUtMeUtrR01sbEw0V2dvZkJlQW9IaUVPbUNnUEhodXl6bis0YXB6V1NveVEwSE1VNUhwTWhKRFFzeVYKRURPVnBOMkczTWdTNkwvQWNscG9TWDV3Q1MyaG1LNHRZTlVXUUFCVmw0dHF5bm0xRmZ6YWNpRUkvTkZVS3E0c0VWYVdpTXBMWkNWRgprb0pDaVVZblZLZ0ZFcFV6dFZpa0ZQTGxIQUFnb1lycEJwQkl6WENlR21Od0ZRdzJQQXRHejVmUVVBQVJCQnlNZ0JHdnlJc29Jd2RXCmswS014R0RuSHFDQVNpeGFvQkVYV0lWeDV3WlFZQVV4c0lJRUs2ZUFWZ09RYStUamJhQWJPNmI5cTdIb3NYbllvb1M4TndrdDNUSHQKd1NBSUlNK1dHbWdKZ0VCUlhSUjNuaGlLQXErRlBGb21YeGhCRy9uUVovVjhpZU9HenJLRkRSQWpCK0R1SC9TKzNNQkFVVTRBaFE1aQp3L3N4Vzd0ejR0cHlNcHV3K1dhOHBKYWtxYUZVVk9RWksvS3F5Nm4xNVRSelJUN01TSzh6MGhzck9TMUdYb2RKM0ZVajdhK0ZoK2VICjZsVERkVkEvUjh3Nm1CTkFSeHJoRU9oQXZiYXpUdGhheXRXVlVGTXRwQzI5bWMrMEpRVllNcUxicWZYTkIvN1c5Z0hTZDlVMk1MZlEKUFQvVk56YzVOSVgwVDhJUnpoQU1EbldXdW1jMUFDM1ZEMXhCVzlTUGMvdnpEZjE0SG9EM3ZDTVlxaC8zbGFCZCt2RzRDQkE4QTc5NApFU0RZb241YzYxOU8vZGhLL3VJbytnZ3AraEF4dUFDRXlDOGprb3VJZURrQU1ZNEJBTm5vaDYzNWgrZW9oMmZ6RHMyVER3TUR3VDNSCjJJTklUanVTMXJHUTNtMU43VUlTTEgrbWxlbHJwQWxEck9qak5ManlOVXpmZVlnVmU1aTlmNWlkTk1oTUdHVHNQMGhIMjNjZ0gyM3YKRU0yWnQzdlFWanpXM3VtOFhON2kxcCtZSHVjTlFidmd2dVBZRGxKc0czRjNDM0ZQQXo2aERwZHN3cVpWNFVrRitNeEN6UDZTN0IzVgpPVnNic0JHTGx3RkVBUVF2VkYrZmlSNEZEMjNNQkFDS2FNeHkvOEIyTThndG9YL0xRRGZOODMydUFoMWY4Zmk2QncyNng3bkxCNFNPCnRhRHR6T21CNExPcnl3aXFnL3BCYzA2OElJQ2k2N0xDbXRNRFcxSUNtektEYWhKSUI1SS9tNVFoOHpUN2RUNHlKa1BHMVBQWHhIT1QKNHFseDNzeTRFSmxXV2NkVUMyTml4eFIvN2lyVlBzWUdWRUxtbVRQamhQbFJDWEtOalV5eGtGbGR3MG53NzN2MlpqTnVSK3QrejYrbgo1MWR5dXdVVDBZbU43TUdDdjBOY1ErN2IzLzdSUGo5bmJtNjczYy92cnZ2ditOWFA3dmU3elM5NXpWTlhNWVh6aVhEU001ZWlBNnlaClQ0Rm4zY2VUMVFCQWsvc1Y5dmovVGZSWnRhbVZpbGRlMjZkQTloZDluYTZPL1AwVGZ2ZmVjb3VmMzdvMWozNzY4VmRYRnFZckwvVDYKbHhNMzEwbURLNXVlVmIyOFR2NzJPdG41OWZLTEd4UnZvdnB4OXNaRzVWdFBGbHplcER6Mm5Pcjhwb0xUand2ZXpUQ2Qrc2VrR3BuSgpHQnZselY2aE9NYUU4Nk1xeHpVNmNwVmorNWRzYnB5N2NJMEV2bzlUMXd5VFA0cm5ScWt6UDlDbXJvdkdKbm5nMnozNXJSQlp5QmxkCjRMRWJ5NklGRXF4bUgxV2FDL1FEUXZWRFVIbTR4d2RBMEVCU1VvNE1ueTJtN2hFVlBpOFplVXgyNlhIWjJVMktrMDlwai9zWEdRTksKaTRJclpNRkdackNSRWx5UkN3QVVXc3FGQUhLM25JUzg4cFhLWXI3RVdRMDZudE1kejBLTURGQm9wYXZ3Q2xmN0RlUXNQU1hmT2V3Ugo2SFA1ZWlwUEI4U1RKOVJSRndGRUJYOTBBVWhPQmdCaXlFaDBNWUVvSXlhcnlkdUxxR0dsek5CU05xQlBTQkV6cUpTMXQ1aWhLR1RWCkZMRWhnRXFGOWVWOGM3a0lWRjhwcmF1UTFaWkxxMHNrSUdPSkZCcW9VR3pRQ2RWcXZsekpreWtGVXJWUXJCSUpGRndBSUNBZTRCN24KRG1qNEFIZ0lQVG5Qa2RPWlVnZ2dtamdmR0FnQUNNZGpKTXJ6SWt0ejRlbDNTSndjLzJxTTd3RjQxekY0RXliSTVGUVIvQ01wc0pJYwpXSmtiVUpHM0lvQkF6ZzFFTjNJOTczRmV6TE9BR2lBaGJHQXRMcWdPSDF4UENERVRReHRJWVkza2xXWkNFVzFrejN3WVJBWjVBaWl5Cmsrek9FME5SMEViZStXTG9Cb2w2eWN2bVM1L0Z2SW1ERnQxTFhMYVFBVUpFUHpHeXovbEg5TDdjUFFUbnEvRHdYOGtlVEZnUFpsdFgKenY0MlRKWUZTNnJIOG8wNGlaR2dyQ0laVExtbEptcGxKUlZncUxhY2FqR3lXMDNjemhwUlQ1MThzRjQ1WkZZZk5Pc09tZlZIRy9SQQpQK0FsekFrZzhPUkl2VzZvUnQ1YXl0TVY1V1hVWkc1dWlkL1NuQ1ZzclR3N2VCRnB0eUVEOXZuZTJjbnUwYXNqay9QRFUwamYrUHpBCjZQemdOQWdBQ0YzdGdudWNSK2JtaHBkZ3lIUHc0emt4c25rQWFPbmhyeHY2OGIwVmhodEE5c1ZMSUxvV3Z4cStjU3llZm5kZkJkRnoKL0xONEpXZ1hnSUIrN01VUVFJN0NQem4wSHpnMGYzQW8zMFprbDF3QWN1NEI4Z0lRUW44WnlUMkM1QjJhbzQ0czVCNUNDQ01JZGdUQgpEQ09ZQTBobVA1TGRnMlMwSWVsTmpveDZKS1htU2xibEdXWVpwazhRZjVBYmU0aTFaNWdaUDh6YU84S09POERlUDhCeXU4ZE5uejJEClZOQytnWHpRM240YUduQVBtcmQ3Rm85M09UYzR3ME5WZ0Q0ZzhBQzRKNjZkRk5OTzN0bEtUclJRc3Vzb0ZHTWVzeXlQVjVRckxNd1YKS0lrVUpTWkZsNzI3QXIzK0dCeU5vQUJDeFFCbHNHaUNNRXRXZUVNbUNON0V4L21UMjJzZzVDdWhKWWo1ajNLOTU1dHhaM1gzb0lGUApEVjNoUXZXRDBpZWdMdFcvTmlXd05nMVdsN3A0NFo5MDlNcUhJWmIwTGVaRWdMK3RqWVNReHB5Z21wM2ExekJmejFjaU16TDdoTUF4CktiUlBpUjB6Y3V1MGNuWmNPajBxdG83TFpxL3drUWtaTWk1REpsVDI2M0prV20wYmt5M01LSkZyVkdTU2QrSmo0ZDc2eklBYVFuUnIKWG5CdHN0ZFgwdjAxQkUvdWFzWkdkdUVDR2pHdGJ4NUVITlpQL3Z6Um83OWZjKzg5dC8vMm9RZnV2TXN2OHJlUC96MVZnY1FiZ0JLUQp2UkE5WTRuSzBRUUZlRG1UcnA5TzBVN3NrOC9ILzkvUXo3U3ZleGFiU0lTdkhVM1JJdnYwbit3VGJQbnRiMjk3NFBiYi9QeGlkeVROCno4NTlNdnBsYWtQUkM2VTF6NmdQYjVKZGZGejYzbHJaYSt2a1o5WXJYbmZPZnM2Q05xa3ZibEs5K2FUc3owK0szbjlHZGVuMytrc1AKSzg4OUxUOVVmTEQ1eXBRZVVCWDVqck53dFdCaVFUYzJ3WmkrS3B5K0tsMjRJcHY3a1QxelRUWXpwZ0VZc282UnJUL216MTJWVEY0VAp6MTZYSXBPY2I2NndGWWU2UWtYOWUzV0NaTmtlb2pnQkMvU2p6RVlCQk5HejZCNnlFa2VHTC9Ga0JaRWtKNURrSlBDVG5pQWxZYVRFCkhISHVIckhtQmRuQVkvS3pvTFd5MTljcXpqeXZPL0JDWWNmbWtxcUFja1ZRQlMrNEhPZ0hnSUFiVXM2Q1ZUQVdvNitlTDFrVzRmTHYKNVNiT0tybjFBMHJWa2ZCYU1rc0Q1ejFRUEhvcUVBOWZUVnNFRVB5akMwRE84MSs1U2hKZFNnUUF3c25KKzNTNVVjWDVRRCtoSmZ5UQpZbnBJRVR1Z2pMT3JtQ2t1WUZRWHM0MGw3THBTNEI2eDJTZ3hHMlVOVmZMR1NrVkRoZHhjQmpPVnlvQ0J5b3FsaFFheFJpTlFxUGdLCnBWQ3VFa3BWWXBHQ0o1QXhCSEs2V01XUWFPZ1NOUk04QUFBQ3dVc0hLUmdzR1lNaHlRY0FvZ0lBaWZJSWZGS0tqQkJaUWdRQThrY0IKWk1vSkJBaXB4Z1dZc0FFbXZETWl5TjlJV3R3UFJBOHdNdndyMlA3bGZQOXlnWCs1YURVQWVSbkk5VXoxRFFPNXAwSE9VUkRHblZ0QwpzRWFZMXdJWktMelYxUW9TSXFGQkNYVVNRUkVkSkRSUENUa2pldWFMSVc4UzlaQ1d6WmRFaTNrVEJ3MndacVdpZWwxRjl1REJ2NHhSCjNmaXRYZmdZOE5mcklvUjE0MEo3Y01CQWtWMlliZTFaMjFzeTl6Um14emZtcERSZ2NQVTRaZzFSVlpWYlhrbXJxYUJicXBodDFienUKT2xGZmcveEFnL3BnbzNhazBYQzR3ZkJ5bzhHbG53YjlTNDBRUU9CSkFLQ1djdG5CS2xXVmtaTlJpY21vWjdlMTkzemY4MWVrYjM2eQpjOHphUFlYMHp5RURWbVJnOXNyUTJKV1JNV1RFNmo3dGhkTEhuVnMvbnJ1ZVVRRDU2c2ZlRHdIa2VmUjltWXNmTHIwWktxb2Z6L0dQCnd3a2dWRCsyZW5qNUgzVDhBL1FEYytvSEJaQ2p6SFVWUkZqaG4rSDZseE5BaU1JYlFPZ2VvS1VBT29ia0hrWElJd2h4Qk1FZFJIQUgKN0lTaEtkS0FIZE0vaCt1YXcwSUFJWWtOU0ZyRFhHb2pFdGYwRDF4UlJZbHE3NkJ3N3dGRytnQnQ5eUhhamtPTTVEN0cwcW1QU3orZwpaZW5qMW8vWHlYWVFzQTRRRHpydmlZUFhqQ0dsV2toWmplU2Myanh5TloxalpDcktXUG9pVm1FQlIyZGdhZlZNcVRLWHFzQW5hN05pCks3SWo2M1BReGFCSTUvSVF1aW9VVXB1T3NnQjFRNWc1dzh0QW5xMkNvZVZaNDlPS2IvQ1QzZU9wSDAvNm9MbTIrRGpwZytwbmMxMEsKeUw4MjFSTkF6bEpDNmxLMjFDZUhOV1Z2YmNpSk1lTkRtd25QMTZWRWwrMHRQTUMvZGtVeE95T2RuNkhOVDFDczE1bTI2NktGTWVuQwpoTmcreFY4WTVUckd4TWlvQkxrdW0vdEJOSGRGdGpDcUhKdk1uM1NvZXQ0aGJxdU5mUjU4RGR2QnY2RkpPOXJ6UEwrTW5sKzltQTdjCnRzYXM2Q1lzNVlEdXU3bnJ5THc5TmpiMkZqKy9CMzUyenk5dTgxdDM3NzBYazNuSURxVTlvM0EyV1R1elh3bGV6cWZxWjVMZzRBY0UKMERDZm9vT3YrcitnbjJrZjk3Z2JUMUJPeFN2aFo1UmU0Tml2TzcwajkxZjMzL1h6QisveDg3dkRvSlhaa0puaER6NStRZHoxcU9Ucwo0NHEzMWlzdnJGT2VCYTFYbmR1Z1ByOVJmZEhkT3ZXRlo1VHZiSksvdGxIMzl2cXl0eDhSbmQ2VWY0WXo4TklQazNKa0x0LzJuV2gwCmpEY3huamMxcXBpYTRjOVBVT2RHZVhQWGxkTlh4VE5YNmRidmVjZ1BCdVFidmVNZnlya3grdWdvWFQvUStvejByTCs0TTBYQnhldmkKczJTcEtJQnU2TWNKSU9BZWlncEVBQUVBT1Eza0FoQmVSb0FBRXFtZmx3NytUbjcrTWRtRk5iTFR2MWU4dmtseDdrbmxxODlxUjE0dwp0QVlVVndhWHFrTEtCTUJBTGdCNU0yaEZDZmt5QmMyWE9Ldm4reDY4OHRSUFJEa2pVMFBLMVZBQWNVUWFGNEFFT25qRENnZ2dqUk5ECkxnQlJBWUNZQ2dvS29Id3hDU09INjE5aHBmVGdNbTVZc1NDc2hCMVN4TjFTem9rcHl1Y1pHRlhGWEFDZytoS1JVejhTb0I5blNuT2wKc3FGY0FhcDJHcWl5V0ZaU0lEWG9SR3ExVUttRUJwS3BKV0lsM3cwZ3FaWWgxYkRBQTVHYUJZZEFDbThBRWNWa0FLQTBTZDdXUXNhTApsZHd0RmZ5QVVxZHBqQnhZSlc5TGhXQkx1V1J6bVhSenFlekZFdmtMeGFVdkZKYy9YMmg4dnFENk9VUGRjL3FHNTNTVzUzVE5Ld0pvCmN5VUc1R2JRRFJKNUFNaERQeTRBYlRIbG9OMlFVQU1PRFdXUVcwSnVBUGtheUJrUkRUS29nd0J5QThqTFFCSHdWUVF2QnEzaUlWLzYKM0N4djM2emV6azdDOWk3NElMd0hIOXFGQllWM3dWOFFJNkhoQ0JHZCtQQk92Sk5CbUlDZTdNMDlXYy8zWkQvWG1ibWxPVDNTbko1UwprOE0wa1FxcjZIVlZuQ1lUcTcyRzIxTXY3bTlVSEd6VURGdDBoeXdGZ0R2SExBV29nVjVxTkhnQzZIQ3RvYzBvS2k5ak4xV1h2ZHQ1CmZuN3dHdEkxWjIyWm1oc2N0UTJOemczOE9IYmdoNG5ERTQ0Ukc5S1B6UFFoWG9NZkVIeHdhTjZ0SDg5RDd5QmZBQUg5d09zQWVRRG8KeHE3bjVRRGt2ZzNxNmdDeTEzN2xDeUQzK2hjNi9yRVZmV3czb0VmQTNyZXI0ZDB3SUlERUYxQUEyWGxuZkFHMFFIOWxJZjlsRy9VUQpramVDVUE0ZzVDR0VNR0RIOVZseHpRNU11eU9yY3c3VFBZUHRkbVMySWFrV2E3b1ppV3VZU3l4L2hTdkZ0ZWNIblNEdFBFcE9ITXlOCkhYYTV4MHMvY1FONXkrb0g1SHRkSC9UU1B1Z0pMMUJjS3pHaGlaaHRKcEZxU05ScWNrRXB2NnhFVUZNb05CdUV0VHBCcVo2ck5yREEKcjFZU0hTMVhUVWcwWk1jWUFSZHlndXZoSlhDMkx0SW51Q1lOQkcrQnZpZ0Q5eEtTbDRGOGY1QzdON1VzbTdkdlZzNzEzbTRtbnBYbwo0NmtmK0VrNVp6L3V3UStxSHhSQTBFQWVBQXF1VFhhV0NqNVdjRlZhaERrcndKSVcxcHE5dnlTVHdzK3FObVo4L2xraHNtQndUSEdRCk1SNmM5NHdMN0ZOTTZ6Z1RtZVE1eHJtT1VRNHl3VVVtblJ1aTUza0wwK3E2VjZrQnVwVE5SbUp3UTJaQVkySkVTM0pZM1I3ZnJ4djYKV2NjMDU0RC84OGJXNHk1OC9ZZHBCREdVVk54NTZ5MFBQWFRIZ3cvZTZYZXZYK3ZPSEVlOEhra3VHTnNsdmhZdkg4L1F6ZXhWZ09iMgpLcEZFblhXZmFucVBIT2dIM3Y3aWZ4bUFnR2FXRFY0T2NibG00MVhqKytSQWVETng4dXNKcWtsc1NWTklFdmdLM1BmUWd3Lzh6TzhQCmI1OGF0U0U1Tlg5NlJQbmVyOVNYbjFRZDM2QzZ2RUYxRVVnSVBOaW9lbnVqK3MwTnFndkFRNC9xTDJ6VXZmbTA5STBYbFcrdmw3MzYKWk9INWpjcUx2Mk1ld3hpUGZERW1kVXhyNXE1ckhkY3BjOWY0WStQOHVTdnltZXYwK2V1SzZXdjg2UW4yMkRYVitLaG1kSXc2WnlYLwo3V29CcHFIM1Y3d0w2eFJ2YkM4dzU4alN5SUtFVENYZkMwQmt0Y3M5S3dHSUlNZGlSYmw3aEFYUGl3OC9KbjNyTWVsbEFLREg1U2ZYClN0NWVMMzV6ayt5TjUxUW50dWg3ZzR1TndXWGlrQXBhY0JuYnVUTjZzWEk2MmxJTTNSeEd2b3RscStmemJyM2ZmMWk1cS9BeVdJNmEKUUlXM3ZNZ1ZxeUdBQk1BOU9ycEluUS8wQXdMMGNRS0k1Z3VnYkRscGw0RUtxQmZrQkZCa0NTKzBtTGVsakxlMWlNYlc1eHRMSUlETQpwZUk2STVyVWJGU0E2aXRnNWpKbFRha2NHS2lxV0Y1UkpQOS8xTjBIZkZQbjJUZCtBMkVUUWdaNTJvU3c5L0tVTjJZUDd6MjBQZVZ0CmJlbG83K21oYVZteURXWmtrc1dlWWE4a1Q5STJiWkxPdEUzYUpDU0FNUmp2Y2Y3M2ZZNHNoRzFJOHo3dCt6Ny85dmZSNTNBc2pPMkEKL1BWMVgvZDE2MVFDcFl3bmxYSWtVcDVJTGhSSU9hTUFoQldCSGdLbzJoOUF2TEo4WmtVMmw3MVJLUTQwYW9OMDVsQk5RNWpHdWw3VAp0RjdqWHFmeXJGUHRYcXZZdDBaMllJM3N0ZFdTMTFlSjMxOGxQcnhTZEhnbGNueUY0UFFLL3JubHZBdkx1WmNDZ3Vxb3ZnVFgwM3p4CjZjYy91SVJHTFkyQllMVW15dmdCRE1JQ2ExTTJFc0ZPRG5kUUlwelVjRGRNaEljR0FuNWl3eWVtNDBQVDRaRXhyWFNRMkZaNHJHTjAKR3pWaUx6V2lyUkFrY205Qk5CYXZlOXJvNEk3dkpuWi9KUHZ5OGZnekNDNmw3YzhmTnh2MjBtUDMwY0ZGOUlIOHlBTjBQRkg3NlJ2MwpVamZzcGNidG8yM1lUNHM5UUFPc2lYcVZGbm1BdW5VUCtPR1B2R0VmT1dZL0NERjJQM0hEQVZJc0NMamVCd3M4SURGN0tYaWkyOGpnClRVQkM0QWRLOE9sRTdzNGx0R2FIdHBMQ2RoZUh0QkNEVzRpaEhsS1lteExzZ1VzYlJmVjBwNm5TWmEzWmJXVzlaaE1jYkJRZjlDZ08KTnF2ZTk2aUJmbzY0Vk8rNkpRZmR5aU5OMWpOTzI1bEd6VkczK0oxV3lRR0w0SjFhL1VmV1ErMXRmMGRmN3h2ZTM5TzdEN2puZHQvcgpEL0RBdmU3WW1wYzNqK24xNlh1N0c4L0FRVzhHc1R3eTd3ZHZlY2J6YU5PUEZ6M3c1SzliZzN0K0JQRnQrOEl6N1BrQnk4ajZGNzd2CkhkdjZEakxnK091Z0hTNSs0VnZmZlExQUE5N05YMTlpdmMrZkQycnc3aCtvbnlIeGgwUElEVlJ3ZFpoM2VZaDdDV1ZkR0dhZVI1blkKRWxqVkdRQ2c0WW9UUStYSGh4bnZENVVBL2J3M1hQenVjT0hidy9td0FqUkllM09ZOGhwS2ZuV1l0QThsN2h2SzJ3MEFOSlRUTXB6ZApQSlRWaENZNTBLMzFmODNSSzQyeUxXK3hONzFYRW4rUUNxeVQrRnBKOXQ2eXhOZndVK2RLdHg0c1NqOVFnTGM1KzlhOGZKdmJZL0ZSCkNIdnlrM2ZueDhNSmhGUjRmdmdleW9ZRGNLSlBSbU5oVVVNUnQ3WlNhV1lhYW5uR1drRjlMYS9CeUduUXM2MDZ0a1hMTXFxclZJb3kKcVp6QkJLL0lDbnFDa1JocHpRcDJaWVc2c2lPZDJiRzJIRUpqSHA0d1p5NUlxQ01IVDVnOUMvYktPTElCbFNJYWN5TmRlU0JSVGNUWQpSbmlTNkFadzRjN2Q0TWtEMzhpajNTQVVjQWRQbkp2a0g5OEV3ZzNZeml4ZllqempaeXgwL0xrekRub3dwWUhQQmNSN21CZDJvR213Ck05MlhJRWVhTCt1ZG1ZRU84TllzRUh3NUxBSS9DUlYrMWxCRnNmYk1HR2RXbkNPUFpLSktGY1VpSGcxOFBULy9uYWkvbjlmN2dObC8Kbjl0L1Y5clhJZXkveXg3dUxoM29LRUp2ODlBNzhzRTdndjVCMVIrLzR4VWRMSXR1eUNRMFpHMXVKb1UzWnNQanpkM2tMZTcwU0hkZQpsSWNJUmVnbWJmU1E4VWVBb2JqbTNKV05XZWJUSG5Tby81UGZmemJucGVlZWUyckN6R2NuQlV3TlVLeU02Y3RRb3BsYVFCK2duUDRFCnFJVGVwSitYc2JXV2YyLytYZDU2c0F2cHlWSzFwNGc3a3NXQVFmY3o1RitScE1xNWdRSFRBeVpQZkRxOUlCL3RmL0RaVnorOEluMW4KQ2YrL0Z5S1hseWl2ekJlZld5aTlzRmg4YWJuODJrckY5U1hDQ3lza1Y1WkpmYmswRXJoQTlsL1ZKM2E1OWwvK214cHQxNkRmeTdydQpsL2EyeS9ydXlCNjA4d2J1OGdkdWx0Mi96ZnJ4Z2Fxam8yYjRBZXVMdjhnMkdqOWRqaHhialp4WnJmNG9YR0VsSVRTS2dFcVRwQmFJClNWZ28ySm9YRE82ZUVwajhZZ205U0ZLQUF3anZBUUlBb2dtTEV3V0s5Y0tETDR1dXZDeTh1a0I0ZnI3b3drTEpwWVdTeTR0RVY1YUEKajE5NmNwWHFqWFY2OTNwVEE5d2tiK0o2R1lSdEU0c3cxMFNiMlpoQ0t2REtVSGd0SHRna05NWXIza1RXVlk2YnNjOThjbUpxV1lBNwpVZkRzam9xd2VtYTRtYlZSVjc1THg2Z1EwNnRsY05JUFYxVUtvMlRnNFNpS3VNcGlmQ0VNTUtoR1dsSU5BQ1FxWklnTG1OekNVbDVSCm1xd3NCbXQvampCVWdJU1pxaUlON0VnRFo0T212RUJYYWRRekd6WFZUaFBYWFl1QWVPb2t2cmhySlUyd0NDUnROTW1zZW5HdEJqRW8KQldvNVh5SGx5OFJjc1V3QUFNUVdWVEhGVlJ4WkZhSmlJWXBxZ2FSVUlLc0dCdUpJeXBnU2VKQnFKVkphemk5bmNNdEwyT3dDUGlWTAp3SWdUdEt3UWZqQmZkbktwNU5CYXdja1ZvdVBqWmlWeWROejg1d0Zrb2NDUlJCYlNDSU9nZ1VEQ1hONFFtaWorR0lweVF3OWhSK2pCClBhVWc0VzFVd2w0SytHWFVianBJOUo1OHlJaVJ4RHdhdkZ3RUVyMlhGdk5vQUhHOHloa3ZtOXFvdUhWQVl2ZFJmWGFKYllQQmI4TDcKKzJFZ1piQkU3aWRGN0NlQng2aTl4T2cyWWt4YkxxUVMvazdhd01lREFXNDNOYXFWRXQ1Q0pIaW9ZVTAwOEVob3pndHg1d0QwaEhnSwpRajE1SVNNQUNtb21SVFRsVVMwMGMyMTVvNlY2ajRYemhsMzRicVBrSGJmaW5XYjFFUThzLzRDY2NOVWVhZFFkYWhJZGFWWWY4OWlQCk9NM3YyYmdYRzVxL2FEN1YvdW9mZS9mZjZXMjkxN01IbmxIYTkxYTdUeitqQU9RLzdNZC9uYXYzWUJkSS8xdmV3Tk8rOFBqUCt4a0IKMEtnakwvd0JoT3NIQkQvMkM5Qm5vUGw3Yk4vN3pZZGIzN0hlWjB3L1grTUFnb04vN0g2VEQwY0FoSlYvdmh3MmZvbnE0ZlRuSWMxdgpVSlYzQXp3QUVPb0hJS0FmdkFFSWJvT3ZQQTNuQVBrQkNPaG5xT2lkb1FLb241OEFVSVpyTUwyeE05T0J4dGYxSkNnOVl2NjJONnMyCkh5elorV1pKL0p1TXVQY1lDYStYSkI4b1RuaTFPSDFmY2VSNzhOVDBSenFkUitiNmJIa05EdldKYjRQSFVHemVUNC9iVDlteWg3eWoKbFp6b29tVTU4NHR0REVGRGxiNk9CZHhqTVF1c0prR0RrV1Uxc20xNkR0QlBuWlpwMHRhb1ZPV0l0S2ljRDE2K0tZbmEzQmdMMUE4SQpMQUxac3A4QUlEdytCdUVTaW5GaXc1VGg2bGgyVEJQY0x6WUtRS01ZTks1K1FMRGZOVTc4b2ZNNDlQaVhmSHhMWGI2S0RsN0hlaHlBCmdINEM0WEpZWnFnakN3UjhnbmoxQzN5TzhOcWVHZUhJaUhKa2I3Zm1GUm5wS2dYRGFDaVhjQmtlVzlxdGY0cUhPc1d3MmJtTE05aFoKMFg5SFBQU0FQOWpKR3U3Zzl0K3FRUHQ0RDNyVWpXMDd3dFhiUWt3WkVVN3lKazl1bkRzUEh1VHBvY1U0MHdDQXdOY0tmSnlBYTNnRgpDRDk0SkxnNU4yMXY5ZTg3L29RT0QrUlJ5QUVUQXA2Wk5uSHl6SUF0djVqM2FRNFB6ZEIyYnhQZ2gxM0FzYzRwbzMzemt4bExsbjl2CnhxSE1tS3JQdjVLdWVORzlGRWxIR255ZjREUHRUaEIzVW5TL1NXWUdQdlBjeEVuVDVyNzRpNDl2bk85Q1VlV0piNTZ2T2JZWXViWkEKZkdtK0NKN1p2bGg4ZVJGeUFVZlBVdVFpZmdIN2dXU1g4ZUFHV2lYOVpHNzVoUno1KzE5OXpScnNyZ0x1R1c3bm9UK1UzcjFiRGpDRQovbGlEL3NEcC9sWXkyTVg0dHF1bXlybG5EZkxCVXVuWlFQbWx0Wm9QWTFWV2twQk01Rk5vc2t3Y1FDUDBlYmp5aFFNSXhBY2dXQUZDCkNta0lsU29vZ2dCQzNzSUJORjl3N2hYay9BTHhSZkFwUUFDSkxpK1huRjhwTzdaSytmWmE5V3NFWFFQQm9DT1lSQVJ6TmI0N0xNcFUKRTJYa1JKbFllQ0xNSURVakMyU1BCZEMvS3hpQUtpTE5EQytBVE14TnV2SkViWEdWRkE1NjVnRDBQQW9nbnZ3aGdOZ3lDS0FxY1JFTwpvQ3B1QVlOWGtpd3JqZFpYQU9GRjZxc2lERlVFb3hkQU1kcHltcTRDQU1pcGZRUkF6ZlZTa0ZFQXNoa2tkVnFSVVNVRUFGSksrSElKCjd5Y0JoSjhrandPb2RBUkEyWHpHUm43VEt1UU1EcUExd3RIdStYOFBJR3dhSXhrMzBBaURpSUJCb1hadndoeGtncE9DSjd5Ukd1R2kKZ0FBUEVacHBZYTFVa0lnV2FtUXpOYm9aUGthMTRBenl3Z2drYWc4c0VlR0p3aEtOTFRQNWJnS0ZBSXY0TWtwRnZ1Qyt3ZW1Eb3djUAp2b3lGcjJUaHdXRVU5U3BXRGRwUGhldForeWhSZThreGU4Z2JXa2tBWVVBODBhMTA4TkZHZUxCUHBJa0NFdXpJQzdKUmdtMUZvWTZpClVCYzl0SWtZMmtRR0hnckRSdXlIdWlrWWdDaEFRdWwyaXJDaDJObFFBd0IwMEk2ODU1UWRjaXNQTld1T0F2bzBhYzQwVzA0NU5DY2MKc21QTmluZmFGQWZkeWxOMjI4ZTJWMjgxL25aZy8zY29ZRXJiL2E3V2pwNzluZjF2UHVoNnN4Mm5qemUrOHM4SWdFYnBCOFJIbjBmMAo4eGJjN2o1S1AxalR6NzJIOUJuUkR6N3ZaMXo5K0EvK2VWaitnZnI1ZWdDZit6d3krdG5YK3p5eS91VXQvd0FBRFdzL2d3QlNmb3EzClB3OGhOK0FHZVA0VnFCLzJSYWlma2ZJUFBnY0k2QWN0Tys1WC9ua0lvT0hIQTZnMzI0V21lOUJFTjVya0dJbzNvMXZrRjR2NFdTM3MKcUhkS3Q3MVZtdmg2MGM2MzhuZThUa3ZhUjl2MWF0SFcxeG4rbmM3ZWtZWjdZWnR6d3Q2aW5XMXd6U3R1SHl3MHdrTVNQT1NVUm5LSgptYzZxSzFiVVY5WFhjNXZxQkI2enNNa2dkT2tGTmgzVGFlUTREYndHRGRPc3JUSG9hbVNxQ2k1U3dPQ1FhQ0pTcWpwM1l4MmtURWhUCmRwZ1RWajRlQjZCUVc3WXZZZlljWHlJZHBBaDdMbFpyeWNEYWg3RzVRVTFFdkdGb25KNmhSd3M1dm9XdHNjVEJnNWVheHNhM2o5MC8KNEJQQkc1eDlqVDYrQkRzZnhyZitCZUlEa0hjdGJBUkF3VTdzd3A0WjFKZ1phYzlLcnlWeU5BVkdaYm5KVktwWE1BL3VMVUs3SE9nRAoyVUI3QVhxL2VxaWpackJEME52QjYrc1FvdDNTd1k2eXdlNktybjd0Z1hkekNmckVEYzBsc1MxRmtiWlU0SjV3TnptOG1iYkJBeXRWCmdEdjRpSUdZRmpMd0VBakJuYnVtaWJ6dnc3ZFF0UHZnTzIvTm5ENWo2dFRKYzU2ZCtjTDBTWWUyMFFab0puU250R2NuMHBlcDZva1gKRDZjbzdtSDl6ajhybzVxai85UExaR05sOHk5bU1FMEpQanNBb001a3lYQ1NmR0NIcUNkUjBrL1N0MjBrUFR0NTZ0U0FnQzJwMis4UApEbjExRTEybk83cUljMm1CNEFySUl1VGFZdkhWQmZ6emkwVVhWeWx2TEJGZkd0RVBIaCtBTHExUlgzdU9keTY3NGZUMy9kWDkzZXk3ClB3ajdnWUYrRktLM3VlM3RaWGQrRlBiYzQ5LzlYanh3bTluVHcyMTg4OVZGbk1QTDFOZldxejljcTdxMFJkMUFFUkR6QkJTS05OY0gKb0JIOWpBWlFzUitBOHBGQ3VoQUNLSm12Q0VMZW5JZGNlbGw0R1FQUWhmbWlDeGlBNEY0MmFDRHg1UlhpaXlzbEY5WXIzdzlVN3czVwoxNGFhUmVHMVVEbFlzekFueXNqRmdrdW9Kc3BVRldXdUFIbWtaK2gvRVBnT3gwdTBtUmxsTEk4MGxjRnBqYldzS0VQMVRrMTV1aG9PCitJSDd2M0FBamVnSGhLOG81aXVnZnVCQ21MU1lLY0VBaEJTWGlnb3FlVVdGdk9JRWVXbWtvUUs2QndNUWpKNUZNTENqdFpVVWJibGUKWCtQVU1COEhJQml6REJqSWJwUTJhTVVtTmFKWENGVlNnVUxLQndCQ0pCeU91Qm9ZaUljQlNDeXZGa3JMY0FCeHBlV3dDQ1F1cjBiSwpBSURLZUJVQVFJVThXZzZmc1lWdlg0c2NXeUE5dVZoNmVEVnlZaXg5L2g4REtIU01nVEFHRVlPdGVTQWhOaUtJRDBNd2pWNE1ZVzFECjhQQzhPQnQ1V3gwcDFrSFo0S1RDQW40VEpjYURlUWk4SHJXUW8xckprYnRoSW5hVENYdkk0VzBVd2w2WTJGWVlyQUJEQVFiNnlSQU8KVUNMMlV5TDJrcVBiTU1xTUJQenk0WjFXRXNpbVZqTEk1aGJxWmc5bGt4djJBY0NQQWZ4WnpiRCtIK0dpZ1FESndVL0JUZzIxZWJ1agpzT0hjaGNHVzZoQWJNNnl4SXF3cG45QkVBaStnWVUyNVlTTUFDbXlocm1zbWJuZVNpMnlGamdhNEIvNXRtL2l3WFhiSXBUamkwWnhvCjFwMTI2ODU0akNkY2ltTnU1ZEhkK2tNdHloT042cythM3IrNysxdDA5ejEwZDhmQW5yczllKy8ydkhxLzc4MEhJTDF2M25zY2dIb1AKUHJ6dUg1bHRDSUwveHY2UlBIN2xDK3JIQnlEZmFWKytlVC80eXBmLzFKOEJ6M2NnK0ltbnZ0b1BQdmJ3Q2ZwQllmc3pMUC9nK2tIeAoyVDlZN3pOZS9obEVvSDZHZWJEN0IyVmRnUFRCeXo4Ky9XQnpnT0FVeEJFQTRldGZVRCtQQnhDYTdock85S0FaSGpTMUNVMndvMXZNClBkdFZYMmJLcXV1cTB0ckt0cnhWdVBFZGF2SUJTc3BlMm9ZM2l6TmFTMzJOUGo3NjdNVE9za2hvcHUvY0RVOERCUURhMUVKTGFLUVMKTGJUaVdyckdXR0V5VmR0cjJjMG0vbTRqdjlVZzhPajVUVVorbzVibE1uQWNlbTY5am1YVU1KWHFLa1RHWUFyenkzaTBJaUVsVjBHSwpOK1ZHMmJKREdtRUlqbHgvL1R4aUlEOEErUkppQlVySUkxakJSUVk4NUFIRWtRYVBFUjBwd1BqMlhrWENFd3pnUUVYOEFyLzJ6OWh5CkRwNnh5dkZaWjFUdzBsUklZeGFJUDNkdzhUd09RRUdZZm53QUNyVjVFd1RlcHpXVFlNdFk3OHlJdFdmbkc4aEtKYU5CWGFWUk0rcDAKNVo5OXpFSDc1RU4zcTlETzRtRllQSkNoWGFWRFhUVzk3ZHlCdTN5MGc5bmJYdGJWTGZ6OEw5Vng5cHlvNWhMd3p6UEtucmJWa3dHKwpGQ0V1RWdCaWxDTjdZd3NGRGxqYVRRMzM1SUZFTkJQQng1YnpscXo5d1hjOWQyNnRKWVJNbmZUVTlOa3pwazJkbUw4OHBJOWk2TjBsCkd0d2hHa2hYZHFmSkJ4S2xnQVVBQ21PSjgrU01wYzkvRGtCaldmT3ZweTlSZWpkZTJKNGliazlFK2xQa1E0bXlCOXY0UGNuU1czazYKeHRySW1RRUJBVk1DOXV6MkRIZWpybC9kWGNBOEJuZkNDeitjejcyeUdCZ0l1YkpRQUl0QUFFQkx4VmVXU2J3QVdpRy90a0orQldmUQpBdW5sSmVKenJpdnVvZDd5Z2UrWVhmZExlKzZ6dWpyRTZFMTVaMGRsNXkzbVVEdm0ycHRNUU52ZmZLVUowaHhmb3Y5NGxlcWoxZkl6Ck81UjFGR0Zlbm9oQ0V1SHJYeVRnbm1JWkhROE9vRklKQ0FSUWlSVHVlQ29VRjJJR2dnQ2k4WXRTQlBJZzBldnpSQmRlRmw1OGhmL0IKUE9GNVlLQ0Z5TVZGSWhnQW9DV2k2OHVRRDVjS1Bsd3B1N2hLZm55dCtyVkF2VFhVcUFvM2lTSk1tSHY4NkJQdGw3R1UrVC9MV1BxTQpoQVgzcTV2SzRhS2JpYmxCVjUya0tpRmlKN1JqZlQvKzlIa1luaHlXZjFoU1JvMjR1RnBVZ2dHb3FKeFhSQmN3ZGluS01QclVST3ByCnd2VllIVWdMQVJTcHJjalRsR3AwMVJpQStLTUFoQmxJQ2dEa3FaVURBMkdyWU5KYXRjaWdSUEFpa0ZRbUZFbTVQSEdORjBBS0pnQVEKSWlsRHBCQkFQTWxEQUZVSUtqQUFNWXU1K1VSZXlRNWViWkR3M1NYU0UwdWt4MWFKanEwVWp4L3dwbkh6SHdkUW1KV09YL2dZaEsrRgpqV3FYeGp1bVFZS2RaTUNnY0N0TWhJMGFWMGVKMTVBeXBIbEpHbUtTanBSa0lDZUFtRWk3ektSZGRlU2Q5ZVJ0bHR3dFdEYlpjdVBzCnVSdnN1VEdPWEhoY0luak5hb0xsL1NnUFRFVHpUeVJzTjNpRVAvSnViaVJ1ZHhCMzJZaUpkaEpJa2cwbTJVcEt4ZE5BVEsrSFNUWGwKcEJweWt2UloyOHhaVWJiY0VQQzl4MEVFMzEzd3p5TFVSaDNwRGFmaDQ1UmcwY3RTRVZRdkNhclhoTmdrWVUyVjRSNWloQ2N0M0VVRQpBQUw2SVRUUmdnR0FXdUVpUXFhVFpxdG43YkVLM3JaS0R0bGtoNXlLb3g3MXlSYmRtV2JkeVViUjhXYmQ0ZDI2dzAzU1M4NkdQemQ5CmNMLzFINUFnZTlwNzJ1NTA3YnZkL2ZxZEIyL2M2WHk5dmVmMSswTUhlLzBCOUVnUDBCajY0QTNPZlcvQVUwNUI4SkxQcUNuUE1GalQKaisrc1UwQWZYRDhqaFIvZmhxOFIvV0NGSDF3L0Q0ODd4VWIrUEtJZmJOODd2dmpsMi9lT0JlcG5FRHY1YTFqM1czenIrNURTdS9nRgo5RE1rZUtnZjJQMkQ2UWV0UHVVYkF3MzA0d01RV3VRRkVQcFRBT29nTmFFcGJxQ2Z2b3dtTkxFSjNXVkh0OVdpQlAwLzQ5bDZXVTMwClc2VnhieFZzZjRNV3Y1K1c0eW1LZm9PQjl6amo5Tm5lNW0xdzNyNDdmNWVidXIyWnZybUZ0cVdKa21paFVJMVVucTVFcmF0d210a3UKTXcvb3A4WEViemJ5M0FadW80a0xYemowSEdBZ3E0WlZwMmZwdFV5SnJJeVBGSEdSWXJhNHBGcFNXQ3lqWnVqek50WEQ4Zy80S3dmMQpBd3cwWG53bEgzLzlnR0FRendscVNGdmZrTExla2hSb1RWNXZTd20wcHdmYklZWkFRcDNwWVkwWklBUlhKZ3cyZ01lWGNGY09IcnhKCmVXeEdQZDh2NEUwNTRNTWVsVkgwOGNXL0doUml6L0RGUngvL1FBRFpzd2xXN01LUnNiTSt0MGFiYjFhVTJ6V3NXb1BFVVYvZThhTVkKN2E1QzcxWVAzeXNaNm1BTmRTSm9aL1hnQXliYXgrdTdVNHJlcVVBZkNOQnUvcTFicGVsN2FlRDFKOFNWSCt2SzJkNlNGZTNLaHF2egpUZGhNYWhjeDNKVUxYaXNDSGZDVXZaZ1dDZ0Rjd2MvUG80UDllNXViQXlZRlBQdk1uQW5USml5WlB1dGFXdlZRbXJ3dkhobElsOTlMCkU3Y25DL3RTSlBndmU1UEZQeXRqbWZLZnkxalcvT3ZwM2lVQzcrRmVPanpCSGc1NEJEZXhyV0VEU1pwUGN6Z0w1anc5ZWVxVTRPVkwKSDNTMjMreEJZd3luRm5LdkxCVjl0RWg0ZGFIZ3loSVJlTHd3bjNkdW9mQThOaC9vTW1RUVZnckNEUVR5c3ZaY3VQamFKMzgxb3Uxcwo5QmEzdjZOaXFKMDljSnVKZG5BSDd0V2c5MHJSdnpON2JySjd1eXI2SHlEZjN5OUw4cHhjcUxteFZQbmZnYXF6dTJTMVpFRXVTVVlsCkk1UkNvQjhKdVZoQ0s1SFNHYko4WCt0UG1UUy9ESjU0VllBRHFFZ0VBVlFnS3FJTDZSQkFRbG13K0xWWHhCZm1DUy9PNTMvd0N2L0MKQXVHbEJjSUxDMFhuRm9rL0FGa01KQ1FFZ1N0NlN5WG5WOHBQcjFXK0Y2aHBDOVZaQ1FiSUlJQVB2REVJamdzeWxRT1VSQm1xb3d4TQpXQjhhTHhpVnhzbllaejQ1RUVDRzZnZ0R0bWhsWUcvUlZHY3BTd29WK1Z4VjZWajlBUGNJNVBnRmd5c3I0VWdBZ0JnQVFGVkljVGxTClVzWXZKaU9NcmFvS1hEL1JPZ2dnK0toaEV2VGNjRzFGbHBxaDFGWTdkU3p3T3VZeEM1dHJrWlphU1d1ZEZFOUxMVXh6dlF3WXlHV1cKK2xiQk5BcUJTc2J6QnhCWFdva0RTQ1F0QndBU1NpQ0FNQU5Wd0dsQWZCeEExU1djQWlxWGtjRFRoZ3BmWHlZQkFEb3gxajBQQVNRKwpNbTcrYndESVp5QnZzSVpvbjRRZTdaS21CRG5nRThJYjhGQTJtTWpKMGp3U040ZkN6YVh3ODZnQ0lrVkFwQ0pFTWtJa2lXQnlaVm5aCjhxeE1lV2FhSWpOSm1aR296TmlsaGdFV0FZbXdFd2wySXFCSmlOTWIvNStWL1JOaHo0MjE1RzZ2elUzUzUyU3JjOG1xUEpxS0NGS3MKekFNcFVSRVpTbUtKSWc5R25sc3N5NkVyY21peXJEeEpacElxTzlhY0EwdFpWakxCUWg3NU5HbjRKNDZsQUlSZ0t3eXVSOVliYldzTQplOWJWTmdZN3BBUTNuZENjQkFHRTlRWkZ1R2hoSHZvNjhLcnFJZTVzb3RUVnNacXR3b05BUHlNQU90R3FPOTJzTysweEgybVdRLzAwCk9yOXV2TnJYZkJ2ZGZiOW45N2NQOXYvWTlkcVBEOTY0aGVWT3p4c2Q4SHpUMTd3SFZ2Z0FOQ3IrYjhYM2R2VzlkdCtYaC9XZVYrR1UKWjU5K0FIMThKNzM3TDN2aDlCazc4TkJYKzRIQldwNUg2Y2ZYK0R4S1A2ajVqejc5RE9Fclg5amt3eUc0K0hYRGUvNFhiUDNCWnY5QQovWndicmo3bDA4OFFwcCtoMHNQRGpNTzRmbUFLSGdJSXBUNFdRR2k2dXl2SDFadmhSSk1hMFZRb0lYU0hiV0JyUFJvcDY0OURkck01ClcvZFhSTDlWQXFjNTc0ZVZIamk5RUFzOHVhS1ZEcksxaFFheXpVM2Q3Q0lEbXU4MDU1STBaSzZ5dUZaVGd4Vjd1RzRUQmlDekFEd0MKRERsTmNHcXEyOGkyYTJycXROVm1IVk9qcmhHSnk0UUlReXlwRkNzcXhmQnM1RUthbXJMRG5CdHV5M295Z0FqNDMzeGJIZ2gyUUtBMwo0Qzlxc0RVbjBBSUJ0S1loY1kwbGZxMGxhUjNHSUV4Q3FTQjR0ODFJQzQ1WEpIaXB4cGN4dnZIR3Q1NDFKbys0QisvZ0FSbExueEVBCmVaOEE4b2gxeHJ1SkdTZzd4QTZTR1dQSnlqT1JSTnJpQm5VVkFKQlJKZG5ieE9ydmxBOTJWS0IzQmYzdFpZTzluUHYzcTc3NVV2bmIKVHlxNkg4alFZYzdnM2FMQkg2dUdPN2hvTDVkMXJEVEtsaFhlVWdRd0YyTlBqbXJNZ2hzeVlJOFVDWTZhYk13QkFBcHB6TjdRUW8ydwpaWUgvc2o5MDN1cTlmejlvN1pwSmt5Zk9uak56eHNRQS92cll2angxVnlMU255WjdrQ29HQUxxWEl1cE1RdnBUcFlCQlk0bno1UFFrClM4Y04zRy8xNzBqWHYwTS9JTDFKMHA0MGVVZXkrSDZHL0hZU0FoZ0VMc0RqY0x4eWdLU2hCUkplbUFBWHd0NDYvRHJhaityUC8vNmwKNnROTEJKZFhpSzh2NGdFM0FQRmNXOEMvdUZCd0NUQUNHTWpMSU1sbFh5bG9ydXB5aHZuZG0zZXIwZHZNN2p1OGU5OEMrcFNoZDVnWApQNnM5ZXNOKzY0RVE3V2VCKzNkdlYvYmZSSWJ1VVV2Zk9MUkFkbTY1OWxlaHVuTTdwWFZrZmg1WlRpMFN3MkZhWXdGVUF2WGpCVkNwCkJBNzlLeFlYQVFNVklrWDVBanBkVUp3bWxJZUtYMTBnT1Q5UGVCNEgwSHpCUlFDZ0JjTHpDMFZuRjRwUHc0QUwwZGxGNHZPTHNUclcKU3VubHRmSlQ2MVZ2QmVtYVEvVFdNSU9DWUJBUmpEeGNRcEFtQm1hVWdUMldMQ053R1UyZkp3TUk0OVI0TVhMd0o4QmQ2d2IyRGxVbApXVkZVS2FmeFZLVThiUEVMUEFxVU1EaUFoSXBTZ2J3VUFraGFDbjdvWWlKUVAxVkNScm1ndUpUUHlCV1ZiVlpYRUl3QVFLd29MVE5NCno0elIxVVNvYTBMMW5EQnRaWnFxV0s2cGN1bzRkdk00QUdxdGt3RUFnVWRQblJRQXlHR1ExT3ZFSnFWUUo0Y0Frc2tSaVpUSGx6QTUKQ09CT3BWQmVJL0VERU53UEw0RkRvdG1paWlwQlpRV3ZFZ0tJWFpUUEtVN2hTaU1FYmN2RkFFQ25sa21QckpJY0h6ZXJKVWZIelg4YwpRQ1B6aUdoNEJRaS9DYUF6Nm1saFZpcWVVQnNGMENjQ2UyYXduUjVWUjR0WGtITjRKRHFiREpMUG9ZQVVjTWtnK1J3U0REK0hKc2doCkM3SnpCVmxaU0ZZYWtwbUNaQ1NKTWdqMUpKQ3dCbS9qRWRCSmtBMEdYM1FiTjFIMXhHMUdZcnFLU0piQm54SXF4TlFxQ2ExR1FnVmgKU21rMU1waHFLYlZDUWk0WGs4cVVsRElwc1VDVW02N01pVE1Udyt6VUVBY3QwdXI5T3ZqckI5QUhKTXhTRldRMnI5YTh1MHh4YnFYMgo2SHFySTZ5cGt1QkpCd0NDM1U1TnRDZ0hOZHhORDJ5aGhyUVFOemFSOVhVc3QwMzRsa04rMks3RUFYUjh0KzU0aS9iVUhzc3B0K1pECnAvdTdwbC8xTjk4YmJMN1QyL3B0Vjl2Tm5qZmFlMTY3Mi8xcWU4K0JkbUNYd1RlaFpyb1AzUFB0QWdQcGZlTmh4dFdQUDRCODlNRjMKdWZlLytyRHc0MS83OGRMSFR6LzlyVDhPdHZ3NHZuNHdBUG4wODdEcjJZN1JaMlRzSWJic0JhZitnT0Q2R2RCOU5xajV6YUQ2MThPcQpUNGV3eGE5aDhmVkI1T29nLy9JZ0Qrb0hMbjVoNVIrdmZpQ0E0TzUzV1A1aEFBQzlqeFkvQkJDS0FRalR6eHVQQlZDR0I4MW9ITWh3CjlHVTZCdE1kdzZuT3dVUmI3eTRydXNHRVJtcFFndlFnZzd1cnBYcnJ2cExFM2ZRZGJXVGducTI3NlRBdHRDM04zdVhSTFc1NG9GV2sKTlN0V241NnN6SzVRNUd2VjFZMDZ2c2NnY3BzRUFFQWVNNys1VmdEU1ZNc0hBTEtaV1kxNnBsWEhyTlZWNjdWTWxiSktKcTFRU0t2MQpTbzVDelZiSksyWFMwaklsTGRtWUYybk5BV29QZHo0SlFMaCtSZ1BJU2c2MjVnVlpNOWRaVXdGOTFsb1QxdG9TMTlsVDhLeDNwT0lKCmRLYmhDV3BNOTArd0t3UFBLQS85Qy9FdTI0SGdlN2p3K0ZkNkhzMzRBQXF6UDd6dmUxT1FJelBDbXJmZW1RMHVkdFJtTTNRVXBhNjAKWHNjQ0FES3BlQWZiMkwxM0JiMjNHV2luSEIyUWQ5eFJmL3dwVHlYUEZrdFNUNXdXM0c3WG9FT3lvZnU4dm5ZT09zRFhuczJQTUc0bApOT2VITmVWR09sS2lYYm1SYmpLZ0QxNVVqblFUQVlEQVk1eWJIR0ZNS1RraUhoZ1llUC9va1NrQkFTL09ualY1eHFUQWFUTS9TcWtjClNKRjBwMHU3VXlYM2R2S0FlM3JTcFBlU2hQMlppdTU0WVUrUzZHZGxMRm4rdmVuNmQrZ0g1RjZpNkg2UytNNE9YbmVxN0VHS3RDZGQKMFprbUF4NGEzQ2tkekZDOHM0MDZQMkRxbEJrelkyT2orN3NHdnJ6N0lFaHpZeUgzNUVySnBhVUljTStGNWRJYmdFR0xSZGZoRVJrWQpnTHdNQXBpUVhGNG12ZkpMOGJmc1BRZTZ1K2c5UDViZDZSVDFkN1BiMnpuSC9saTNUdjMyYXZrN3V0UDJyLzRoSE96a0ROeGlEMzJuClJMdFppc092TFpZY1g2Ny9UYUQyN0U1cEF3bWg1RW56U2tVRnhWSUtEQVlnM0VBTVdRRkkrUWlBeXFSRndFQitBQ3JJNXhlbkk3SXcKNmFzTHBWajNEd0FRNzlKOHdYa1FXQVFDSHorNEtUNDNYM3gydnZnMG5HOGs5aGF4VmtndXJaS2RYYTA0dmtaMUtGalRFcUp4aHVoTQpVRUpHUWJpUmpmVU9Bd0F4eDQydmFYcFV4ajdUKzN6SXFmRUNBUVNmQVA3RUdEMG5RVldWTHkva3lpazRnSEQ5Q0ZWbElMQUlKQU1BCktnTUE0c3NZSEFtRExTNEZBS29STWlvRkplV0NraElCSTB0U0hxZXRJaGhZMFRwV3RJWUZBQlNycllsUXNRQ0FRblNWS2NvaWlhYlMKUGdaQXUrdGxPSUR3d0xVd3M4eUp0d0ZCQVBFMFVwNWNoa2hsZktHWXlSVlZBd0NKWkJCQUVta0YwQStXQ253b29nOUFERzVWS1p0Ugp4QzVPNXdpakJjMHJ4Y2NXUzg4c2tRRUFIUjAzWStuemZ3bEFqejd6b1lIR3htc2dHeVVDcS8wRU9haHJYUG5CdG9JdFdscWFpSndyCnpBZkpRL0pKV01oQ0dnaEpRS1VKWVVHSUpNekxRWExUUlRuSm91d0VjZFl1Y1ZaRVBZQVVEQUgvTUt5QVUxUVF2TTQwTnF1YnFFRU8KeW9ZNlNxS09RbFRSaXVUMGNoazhLSzVLVVZDbEtxeFdGMVZwaXlzMFJXV2FRb1lxdjBoRkw5ZlF5dVFrQUtBMGVXNnNtWVM5YzNxRQpoUTcrT0ppSDU4MzZ6bU5EZ28yZUZRcnd6K04zeTVRMzF0Vy9GdGFFaExjUWZRQ0tkbENqbS9LREFZQ2E0UzRiZFcyTnk0cTg2WkFmCmNxZ09OeXFQdG1pT3RXb0JnOTdady83UWMrQ1c2NCtvK3c3YWNxdTc5YnZPdlRkN1h2K2g1OEM5M24zM0IvZDJvdnQ2MEgxZEEvdnYKOTcvZU9mUjJ6Mk1CNUhlLzN5KzlyOTRENlQvZ2phL1haOXlWcjdFQUd0SFBqL2pLRnc2Z0liY1hRQU91ZitMNndRR0VuL2tGOUROZworN1AvMUI4QUlOVHNCZENRNFhmKytobFdmRElvK3hnLy9oMEhrRi81Qjl2M2pnRm9xTksvL0lOdGdNY0FoSzEvdmUxWC9ua3NnTHJJCm5zRWNGNXJ1UUZOcy9SblcrMW1XZ1NRTHVzWFd2Y1BXSDFmYkhhUHVqQkdkb1hKeUhLVmhiOUszdHhHM3RNSkR1M3lkWVJ1YlNKdGMKeEkzWWdPYlEydFFZVlhLV1BJZXZaalFZZUU0allqVUpXK3BFNEFYQ0ExOHBvSUhBWTVPUjdUU3liTHBxaTdHbXpzalVxS3NWOGdxbApyTXFnNHRaclJCb1ZSNjlncWlWbE5RcDZ1ajR2cGdFdWI4RXl6MWo2WUJsWFB6QTJDckIrb0MxcnZTMXR2UTJnSjJtOUl4bUxsejVQCkFKQlBQeUNCalpualpveDdmZ2FBL0N0R1k1V0RCKzhjOG44cjNoSVViY2xiNjh3T2RHU21HSFBZYXBwR1gxNnJaMW5VYkpPNjdPMzkKNVdndkQrMHRRKy94MnIvbnZQbGFvWUNienhZVmxqSExLdGdGdGJiMFAvMlJpZllwQnJwNUEvMVYrMzVkdmJGMlV6ajRKK2tteGJyaApvU0tBWExHdXZBaDdkb3lISE80aGdvOC8zSmtUYTh2WllNNXcvZVgxQVJUZGtwTHdkRURBODVPZW12cjBwT0psNi90STZwNGtRWHM4CkQzempIMHdRRCs0UURxYks3cVdJZ0lFRzBtUmppZlBrakNYTHZ6ZGpLZk1BbTJmNGM5T2VJb2FuZkNSSmVoTWtYVHVSdm1SWjUwNWgKYjVKMEtGRjJOMGw0bDZTT2UybHB3TFNwY3lZOWZlSGo2MFBEZlRsdjNGd3NPTEVNT2JOYWZuV0o4TUpTOFRXZ2lzV2lENWVJcmdJRApZY3RKTUl0RkYzRUR2U2k4S205em85MXd6YXVqVzlyZXliRWV0TDJFSEY4dU9qdGJldnBsM2ltaWV2L3BYK3M3Kzlob1p3MTZ2OHgrClp1OXEyVkVBb0pXSzQ5dWxWcHEwTUZ1VVdTYWdQZzVBRlNEd3pQTnhBRlFnS01FQXRIK2g5T3dyQ0ZZQmdnQTZod0hvMGdMQnRmbkkKOWZtaXl3dkVseFpJemkrUlhGNGl2b0FGbzVzRUcyOHQremhRY1NSWStSWmtrSzQyekNDRHBTQWpPOXcwMmpIL3h4bnRuakVBaWpCeApZM1djUkdWVnNieElPQjZBaElwU2Z3QnhKUXlXaUlFRHFCb0hFTDhzUTFJZXE2MEtOVENqZFd3TVFLeFlMU3RDeWNRQmxLd29IQUdRCmNCU0FNQU41MDFMckJaQkZKekdya0NjRENCRS9CQkM0RHdCVUxhenlBYWlZVlp6RkZjUUttMWFKY0FBZEhrdWZud0JRU0MxMTNQZ08KRlJzVi93UEdIamxzYk14QjgzakdRdWNSN294SkJEeHduaEpvaDArSXNOSENyZFROZWxLYUtKZkVwWkY1ZEJxUFR1Zm4wL20wZkFHZApobER4a0JFU0VRRUF5c1lxUU5rcHd1eGtRVTZNSVNleURud0RJSUdYKzdDR3ZIQUwzSG9XQ0w4bGtNWk5oQVdlN1JwbXAyNDJrWWx5ClNvV1lEdlJUcWk1aXl3czVpaUtlcW9TdkxoYW9pdmpLUXA2Q3pwWFR3UGVoS2dXOVNFN05rWk1UTktUTlptcVVoUlp1b1lkWWFhRTIKK0JqY1VCQlVWeFJjendocEtBMnpscTR6N1Ztck9iMUc4ZUVhNVpWMXl1dUJta3ZCRFE0NENxZ3BGeHNFUU1kR1psTUlidGhmR2RsQwpvdGtZcm5ycE8zV3lOOTNDSXkzU1V5N3p5UmJMNFJiTnQ3VVg3cnArMDlQNmRlL3VIL3YydFBmdDdlamJkeGRXZ0E1MDRNRUY0eXZrCitOcVpSMmVreFdkVWQzTWZ0dFRWLytwZFBQN3U4YUduMzRjZTdIUjNQTDVKUCtPNlo3RHhud1BPZjRCZ0c3NytEakpvKzl2RFpTK00KUG43NkFmVDVQV3I2L2JEeHk1SEZyMStOOVAxY3grbUQ4aThQOHk1NTljUDZBSjk4T0ZSMUd0Qm5zT0w0VVBueHdiSmpRRDlESllkQQpob3ZlSHlwNkI5di85ZllRZmFRREd1cm5EWlM4SDJTWTFEWkUzRE5NM0FNTU5KamJBaktjN1I3T2JFTFRYVENwZ0VGMk5NbUtKbGpRCm5RWjBvNkZyczNrNHdvZ0dxVTVSK0drMlJzZyt5cGFXM0oxTnBJUkdTcHlIdHFXUnZ0Vk9Ebk5teDlablJOZW1FL1FwTytWWkxGbFIKdlpwbE13bWNKdjV1UGEvVmhPdzJpMXByUlMxbXhHM2dOK2w1TGdPdnljZ0hBSElZZVdZTld5TmpRdnJvQlJZdHg2Sm1ndWgwMVdwMQpoVUpXWEM2bjdqRG1oZHR5b3B4RWJGY1hjVlQ4YitKcndRUnJMcDVRZTE0d3BoKzQ3QVgwWTAvQ2FqOXBZUTFwb2E3TTlZMXc4U3ZLCmtSMXB6UXExWlFjNTg0SmRjT3lRTHlGTjJYaUNBV1ZnZ3pBTXVBWUpjbWFCQk5vekFCRkN3VTE4VkU4VGJQTUhGK3Rja0RqUmpzeE4Kd0JQV2pGQkx5dHJHdERWN012MWg5TWdhMlVoMzgrajQwY2MvQkd0bW9DTTcxcEpib0tQTFZReVR0cVpCejI1VWMydmwvSU1IcW4vNApVWHZucnZyTXFXcExiWm1RV3lvVmNSQVZBN3lxTXZtVjFBb2lIVWxwT1ZINmw3dlMrME5jMlZYMUpsdEtoQ010dG9VYzA1UzNxWlVjCjVzNEkyWk1SWlUwS2I2VnViS0FCL1FTMVpRUTZVNUtiYSs1MGQvNzU5NTgvUFczeU0zTm1QRFAxcVJjbUJ2eHFWK1Zna3F3M1JYWXYKbWRXZExuMlFwT2hPVVhRbThIdFNvQVo2RXpVOVNZaC9lcE5GSXhsWjgwb1M5U1krVEVlOG9pdEYzWk1LYkNGNmtDRHNTa1FlSk1rNgpFK1h0bVlxN3dGV0pjUC81UUNKMHhrQ2lHRHdmM1NWSGQwb0g0dUZHZEZ3ekFDVTlpWTlkZWdOdjdVcUVqejNKVXFBV3VKS0Z2Yyt4CktucHkrcE5rZllsU2ZNeWpqMVlBUmo4a0NUdlNwR2lTK2xCSWJzRDBnSWxQVFNndExVVlI5T1R2dmw3S09ydFE5dkVLd1RWc0k5V1IKMWRMckw0bXZZOWZRUUtQeUF2UHJJdmVlYjlyVjdaMzh2UmNiRXN6dkxXS2VYc285QlY1Umx5ZytucS80NUNYaDFUWEN0NnQyTjEvNgpzdlorajZEMHRXT3JaR2RmMW55OFhuY2tXVzdKRXpFS3BKbmx3cXd5R1lVaElaV0lpYVZTY29XQ1ZxbWtnMGR3czFKUkJGSWhMeXlYCkZaWks4aGxpT2tOY1VDTEt6eGVTNklMQ0xLRW9WckpucWV6Q2Y4bCsvVXZSdFVXOEUvT0VGL0c4Z2x3Q0FRRENzMUIwRG1zTU91OC8KNmhyUGN0bkZsZkt6YXhXSEE5WDdZVytRVVJsdUVrWnFoWkU2UGpaU21RMERMdlE4a09CYVprd3RKMXBidWFHV0hXR29BaGRiOU13dApxcXBJUFJ3OGlLWEdEenF3djJmY1JPakxJK0Y3RnNib2VGczE1Wm5LQXZDRHZWQmFJbEtVaUpVTWliSWNqMWhSaHNoS2hWSUdvaXpICkRGVE9rNVlDQU5VSWk0RitxdmpGVEhZUkdTbmVvaXdsYUdzSVdxQWZUb3lhRTZsaFJ1aVkwU3BtbEpwTlVOZnNWRmJYYUZoV0k5OWoKWWtIOTFJbUFlL1kweUhFQTdhNlhZMUUyMXluY1pnVUFrRTBycVZVSlRRcUJYc2FUeXpsU09WY2k1M09RR3Jhd1VpaGppbVJWWWxrRgpNSkJJV29sSVlDbElJSzdraWlwWmdySnFmbG1KZ0ZIQktTcXJLU2F6K0Z0NDlZR2kxNWRMamkyWG5GMHBPN0ZDZW55NTlQZ3krTXRqCmNQRkxmSHl0NU1SWUV1SDUvd0dBTnVwSnFaSzhQQjRFRUpYL0VFQ3dQMzhNZ0RLRTJhbENZS0RjV0gxMjFBaUFRaXg1QkFzeDFFcDgKQW9EQ0c4Z0FRTUYyU3B5Wm5LbWlnQjhPcW1XRmxkNnBVTVhnWjNkRVU0SkhxQ3dTS1BMWnlnS1dxcUJNbVUrUmsxTlY1RzBtQ0tCZwpPeFg4S1hDOXoxSVkzRUNIWTdJdFJhSDEzTEJhOVRyakcydlY1OVlvYnF4VlhGcW52QnFvdmhwYzF4Ym1Zc0s5WURCd3F6dytFZ21mCkRFbHpsTmZiT1FjdDRtTk8zZUZHeFJ0TmdtUE45YisxSDd6bitxeTc5VS85YmQvMjdyN2QwM3E3dHczU3BIZi9yY2NCeU5mVVBEcVAKTG5YNTZqMCsrdUQ2d1JlOHh0VlAvNTViSU9QcXg3ZmQzYnZzTmFJZkdFdy9RL2EvUHpydkIyNzRHam53Ni9mREdIMkdERjhNR1g0SAo5YVA3OWFBYTFuNThBSUw3M25tWFFMQ0RMODRCQUhuMVUzWFNweCs4L0FQMGd4WWY4bTcrOGdMSTEvNk1sMys4QUJyMkF4QldCSG9NCmdMYVl1bmVhK3plWkJtSk5QYkVxTkVKd1BhczZ0N1o0NlJ2a0xTN1M1a2JpVmlkY0tBbHR5dDFTbXhWaXpZaXNTNDgwcEtXbzhzQVAKV0hZMXA5RW9kSmtFZXd4OEg0Q2FUVUovQU5uMUxKdWVZMUt6dFBJYW81b0hBR1RWY2EwYUZnQ1FYbHV0VlZkcVpDVUEzMGtHWW9RVgo3djhhQloxUkVzSnYraHRvRklBQ3Nkb1BBTkI2VzhwS1IvSXlkL0tLcHVTMXJwUkFWL29xWjlwU1Z4cTRHSldncGd5UXdNYk1JRmVXCmYvQUtFS0U1TDlTZDQ5TVN1QWFQUVkyWjRhNWNRSnpBeHF6MTRKZWUzT0NtbkNCSFpxQWx6YWNmLzNvUGdJNXZqdEdvaktXUE43Yk0KRUh2MjF2cThVbDJCUmxWV3EyTUNBRGswWEt0V1lGUlNuUFZFdTVtc2srUXJrV3FGdEJwUVVtNm80Z2dMd0N0N2diQXdoWnVSS050RgpzU1NVZVhZbHVYT2pMVW5BUFRITnBFaDdkcHlMR05XWUZiVTdONjQ1Tjd5WnNzR1ZIK01ocjNlbmhEVm1TTTgwZGcvMjY1U3lLUk1EClpzNlpQbVZDQUhGNTRNMGNHWnFzdUpPRW9PbEtORVdGcG1uUVZBV2FMa0ZUQldpNkdFMFNvcGtha09FTXRTOUQ2U3FRdm5RMXlHQ0cKWmloVEM0Sm02cnhKMTZJcENqUkpqcWJJNGZ2TVVQV25TZ0dEdXJZTGV1TEZnQjJBTEoxSnlMMGs0ZDBVNUY2YStGWWl1QkRmVDRVVApEaUZFRXNSUVA0QTFZMnBMZU80bmlmRlJ6bkFUZXdMU2laM09BWDd2Mks2akorZnV5THNDai9jVFJTQUFRRjFZSC9TZE5NbGdndnozClNmekFsMThKbURKeDFhb1YzMzMzM2Q4NkJ4UHFQbG9ndUxKUzlPRnkrWWRMSkdkV0l1Zm1pK0dPTUt3Q2RIbFU1a2svWE1vNXNGM2QKRml0c1cxeHg1Tm1LcTNNRk41Ym9ycTRXWDFpaFBMWENjSEtSK3VROHdmRTEvQk1iSmUvdmxPeU5VTzVib2Zsa3NmRjM2K1J2SjRwTQo2WndDcWlpelRFSmxJRFNRVWhHOVRKd1BVaTRwd0M4WUNFeUprRjRpTENnVzVCZnlhQVVjZWo2YlZzd2hGbkR5czduOE9HSGpVdkhKCnVhSWJjL21YWG1HZm5Ncys0OHVMbkxPK3pPUEJ2QUw3aEQ3QXFrVG5GZ2pQZzd3a3Znb3lUM3p4RmNuWlJkS2ppK1Z2TEZVMEwxVTUKZ3RXaVlJMHdXTXNMMGxZSGFhdUN0QlY0MXV0cmdwV1ZvZktLTUUxTmlKRVpWc2VOcU9XRzY1aCtBR0w1VjNyRzBzY0hvQWc5TzFJdgppTlZ4dHFuTGM1V0ZBSGtpZWVuakFBVDBBOEtYbGZrcVFEaUFhamhGUkZIeFpsVTVBRkM0aGczMDgyOEJVSjBhOFFFSUhvdnhMd09JCklhZ3M0NVl3MkVVVUZqT2Vvdy9uNzFrbFByeEVkdG9mUU12K1p3Q2lqUnZzUE5WeE1wWSsvME1BaFdNQUFuZmlES1JFMlpNQVJFUEkKWklSSVJISjhBRW9WNUc3VTVzYVlTZUg0R1IwV0VteFB0cElEcmRoaGFlTUZBQWpvSjhnQkYrQVNkWlI4QlRZb1UxNHNCRDhwWWhGcAp5cVE2R0ltMlZLUXU0V21LUVRpcTRsSUZuYVNneHVzcGtRM1VRSWNYUU1FTkJYQ0RtNDBZWmkwUHFUV0Y2bDlmcHp1NlZnWHBzMDUxCmJwM3ljcUQ2d3hEOWtkQUdTM2hUSWNHVlA2SWZlb1M3TU1KZEJKTG15RGZZbU85WUZNZnMrdmVjc25mY2lvK2IzK3kyZmRIYitqZWcKSCtBUG9KOXhBZVF6MENNTUdwTlJTMTE5K3p2NjhlRDZHWEdQYjhhUC80SVg1cDVIbXAzOUovMzROLzBNdWJ6NkdZVDArUWJMUS8xNApkN3czL0FuRWU5Z0ZOdThINi92NWZGam5yZjBBL1F3cDRjb1gzdmdNOUFON243a1hmZnJCeXo4aksxOFFRS1AxNHgzLzR4MEFEZlF6ClJJWDY4UUVJeFFBRTlBT1Q4eVFBRGUrbzY5bGhSamVaaHVNTUEzRnFORWc2SE03L0lKdVRVbDhZMlVRTmNlZEdPak0zV3RJMjE2WEQKZ2NMMW1XRjFhUnROV1RRdFhhMnFjbWw0YmdNc0RyZVpoVGlBV3N5SVA0QkE3QVp1ZzU1clVqS05LbmFkam04MUNPdzZubFBId2NjQwptVlJWQm1rWlgxNlFyU1BIV21CVC8rTUE1RThmLzR3TG9QV085R2hYWnFBMU1kQ1Z1cTRwTmNpVkhPSktXZWRJQ1BTa2hqcEhKNnd4CkRjVC8yajhFWjFxb1BRVUVYSVEzcG9QSE1FY3FlQXkwWndTNXN0ZDZjdGE0YzljMTVvUTVpTEUyMHVZRzBzaEMyQ1A2ZVFLQUhoZkEKcVhCTGRvcUp5TlVXbTFRVjRNdFZiMkRiOUR4UGc3UmV6VEtJcWd4aW5sRXFOYXVrUmoxYnF5dUNHMzFGQlN4WlVZV09rYVV2MkdpawpodFhTQWkzMDhMckVXRmRPYkNzbDNKa1Q3U0J1ZHBFM05PWnQ5SkFqVy9JaVhhUndULzZHRmlyNHhNR2RVLys0MFQ4OEZCRVNPSGxLCndPUm5wODZZRVBEMk52cEF0Z1lBNkt0RVZ0S2lsZkVMbDZhdVdMbHJ3YkswbGNFSmk5ZWxyZ2hKWGhsRVc3WWVoTDQ4c0dCbGNPR3EKa09JMVlTVnJDU0RzbFZFZ25GWFIzSkZ3VmtieFZrUXBBbU9GNjZLRmdSdTBFVHQzeDJWZDJsSDBYUW9QelZPaDhRbzBYdm9nWG5BbgpnUS9vMDUwdTZVOFc5Ky9nMzArSE8rUjdFNEE1cE1QeDBvRkVXTkVCckJsTEh6eUFVSU1wQ3BDK1JQaTc4TWZ1WGFLN3FaS2ZsZnNaCjhudnBNdkNuMzB1RDZJRzd3TEQwSllsdnA0cTc0aVU5SklNOGRGZkE5QWtCRXdMMkhkamZoNktLbzM5YXdqcS9USEo5aWZ6R0N0bjEKRmNqSkplSWJlQVhJRjE4RmFKWHd3a3VzMDc4UVhKd3J2UGlTNVBJclVCS1hYcEpjWElGOHRGSnlZYVg4OUhMbEI0c1ZWK2ZMUC82bAovT3FMOHJOTGtQZVhHZis0VUg0OVhOaEdsRGRRQkpVRlltcUpCTzVtcWhTWDFzZ3FtUEpLbHFJS2hLT3E0YXFaUWkwWDBmRkVPcUZZCmoyQVJpM1FpUkl1dzlYeVdRVmhtMU9UV2U3WlpqOFJZenNmV25kdGlPaDVqdWpGdU50ZC81Sjh0RFIvalNiQmZUYkJkUzdUZVNMUisKQkI2VGJaZVQ3UjhrMjArVDNSNnl4MDEwVy9QYzVseTNOdGV0em5VclFjaWVCbUpqTGFXeEx0MmlqdFh6b1lkcU9TRm1UcVNPN1EwRQpFRlkwZWpLQWRKVUFRQkU2ZnF5R25hQXVwNmdLcTVYRmlMSU02TWNISUtBZlNDSTVaaUR2RXRoREFPRkxZQldjb2p3Ulk1T3FrcUJsClJtaDVNV29lRHFCd0RRQVFPMHJGSmFoWk94UlYxV3EyeGNCekc1ay9GMERLbndPZ0drRjVPYSttbEY5V3lDdW1zQ3N5YXNSYldNNGcKNU9CU0JZRE9jUnhBZU1BMUFOQWE4Zkd4OVBsZkRTQVFBS0J3MkJOTmpUV1I0NVhFWEI2TnlQY0NxSUFIQVpRdnBOTHhJR1FxQmlCWQpCQkxtWkFoekFJQzJxSEppalVSWTE4RzJtQUVKNFh2dng5SUhENkVlYnNnUGRNS25iVFpUc2pVMElHV0JwRmlrS2dkL1hSQVZRNkl0ClYrZ3FsZm9LaGE1Y3Bpa1ZhWXRGV29aUVhjeVdGeGJMNkdscVNuUWRaYTJEQXMrZWJhRGkrZ214RjRjMktFSU5CMExVNTlacExxNVgKM1FEMFdhYyt1MDUxSVZqNTN5R2FxNkhHOXlPY3d2REdhb0tyQUFBSXEvMFVSSHFLSWp6NVc5MjVKZ3YvdlFiTm0wN1JZWmZtVS9mQgpPNTdQVWVjL2VqemY5cmIrMElmclovZWR2bjEzKy9iZDZkbjNveitBL0EzMGhJeWpIeGd2ZmZ5clByNTlYaU5WSDlqcmc3ZjdBUGY0CjArZGg0UWMvNE1MMXpVQWpQdWZRdSt3Rjg2aCtodXIvQ1BPb2ZpQjl0TEQxQjNZOUsrRzJyMEdwVnovRGdzdEQvRXR3NVd1c2ZpcFAKK0dvL3c0ekR1SDd3MWg5WSszbDAvdUVRK1ZVVVpqOUszUGNRUURtdGp3VlFzZzBBcUF0MkF0V2lHdzNvSmgwYW8rbUtVN2JIS2RCZwo2YVgwaWxSVDBjb1dVcmc5ZlhOOWNwSXVaWk1wSThRQ0c0QVN6SG5WZWthZGx0MmlGZXpXSTVBK2RWajV4NFNNQlJBUVQ1MkdZMWF4CndLTmRMM0FhQkkwNlBvaEZ5d0h2b1Y1WmJRWXZDcktTQWcxdFd4MEphR1lzZDhiZUdSZEFjTnVYSDRDQ3JQR2h6bVNDSnpQRWxSWnMKVHc1eHBJUTRra0tiVXZ6N2ZtRHZjMU1tSGw5TGtPK083Nzd2QXU4bHdwOFRaOCtKc1dSR05xU0hXeUZ1Z2gwNTY1M1phK0F1c0VjSwpPWGlMRHo3VytXY2wwSkc1c1M2SHFxZUFmNXNONmlxcmh0V2daMXVNL0ZwTkRmZ3lOcWdGZHIwWWZHME5tZ3FOcGx3aUw2cVJsSE1WCjVVeHBmcEVvTzBlVnRjc0NoeFd0Yk15SzloQ0Jmc0thY2tOZE9URWU2Z1lYWlVNak9jNUZDWFpseFRhU2cxdW9jTnExSXlmN0FQUGIKL3U5djN2enhseS9NbWZIMGxJQlpFOWZObmZ0ZGluQm9sMlE0U2ZxYmhNcFpNNmRPbXhZd2RYb0ErSDQvZGZxMENaT25CVHcxZWVMVQpDVkFBZUdaTWZDUlRKbUNaT0dIcUpKQ0pJNWt5WVhMQVUxTURwczBBbWZ6VTlNVlRaMmZOVzZVSTJmTFZMdGF0VE9rZ1VUdWNxZXlMClI3cDM4TG9UaFgxcGNEMExpTWZuR0pna1NXL0s0M3VQRXVFQ1dYZUNHUDdHWkdsL21nSTh1VE1lQWIvOFdibWZKTzVJUU5wM0NjQWoKdUg2UUFpY2kza3NVOWU0UTNFbUh4YUhCRk5YMTdaWFB6SjR4Y1dKQVNsb3lPdFI3NXMvdG9md0xTeVRYNW9rdnIxSCtCbnl2V2lXNQpzVlI4elQ4K0NhM2tYVjZHdGRvc1JDNnNGSDZ3Z25kcUdYSm1nZVQ4UXVFSFMwVm5sZ3BQTHhOZVhDRyt2bGg4ZWI3cytCTDlvV1dhClN5OHBQbzAwWGpFZisvVEtuNzc1OVYvLytPVS9mdnZiYjM3LzUyLy84cGZ2dnZycSs3Lys3WWUvZjMzcm0zL2MrZWUzZDcvN3J1UDcKbS9kLytLSHp4MXRkdCsvMDNHM3Y3YmpiZDYrajd3RklYOTlBYjI5M0Q3Z2VIUHh1Q1AxMkVMM1ZpOTd2UmgvMERmclMyVHZnUzFkZgovN2pwN092cDdPdnI3QjI4MzRmZTc0VzUxdy9UMFlQZTdVSGJlNGJiZS92YmUzdnU5dlYyOVBlQmZOdlhld3RGdng4YStPTHViZFBKCmQ2TlUxYUc2bWxnekwxTEg5UmxvQkVBd1krbmpqYjRtWE1jQlpObW9acVVwR1VYS1F2QkRPNkl1bDZoS1FRQjk4T0FBQXNFYmdIalMKMGxFQVluQ0tzMFNsY2VwcWdwYU5Bd2k0eHdlZ2FEVVBBMUJObFlxRkFZajlrd0JxTk1uc09xay9nT1J5bmxURzV3bHJPRWlWV000Uword0VJQk8rR0JnQmlDOHNCZ0NxNHJHSkJSYjZ3aE1vdUlWY3dVeXNNRWJ5OUt4VGVIcUFWMHFQTFpURGdZaFhXNnpPV1B2OUxBVVN3ClFQMkFBQWtCQUlHTHlEcnlEZzBKQnhCbEJFQ0ZmQWdna0FLRWhnT0loT1RrQ2IwQXloRG1iWmRuYnpRUUl6QUFoV0I3N0hFQWpkcDcKN3d1Z0VuZ01jbENDN2JBSWxLU25saWpoV2lrT1pCQ3B1a3lwclZUcnExVzZDb1dtVEtZdGtXaExwR3FHU0ZGVUxhVVQ1WlJOUnRKNgpHem0wdmh5MmU5dXpRMjMwMEFacHFIbFBxUFowc09wNm9QcERBS0QxcWl0QjZnK0NWQmVEVlIrSHFEOEsxVnlNc0ZqRGJRcUNzd3dECkVBVWVBOUpNaldnbTd2QVVLT3VacjFuRTd6bVVIenIzM1hKOTF0LzBQZXI4cHJ2cFprL3pqNzB0bUg3MnRPTUE2dDc3QXp3QlkvK2QKdmdQdG83Ty9ZOXlNdTg0MXVBKzh3NUh1WnY4R1owZ2ZiNjlQZit2RGtnOU9IOStNSDEvVkJ4WitIbzU0eGtvK09IMUFNUG9NV0xCbApMNHcrdzdWL0dLNzlFaTU3ZVUvNyt0MUk3ZWMzc1BVSDBBZDJQZDhZRWwrSHRSOCs3UHVCclQrc0QwYjA0K3Q2UHU2Lzd4MC8rQUxYCkQ0cnBaNlQ4OC9wSTdXZEVQeGlBMEx3OVdBYzBCTkJ3ZHZQakFEUVViMFczMXFGYmpQMWIxRU54bXY1WWRWZU05a0drdGplTTkwRjYKZGJLQnZ0eVRGV05KMzFDZnRxRStnMkROamphbEVZMFVtYjdTcWVYaEFOb0QzRk1ueEFFRTlPTXhDZ0NBUUlCK0d2VmNlRlN5aGxldgpZdHQxdkNhRGR6eTBDMXNJczJtNUZqVzdWbG1sbEpkV3E0dlNqT1JveXpqY0dYdm5jUUFDK29HQnpjNFpTejJKcTkycHE2MHBxODJKCnE4M0phK3VTMXpla3JLMVBXRldmT2lxckc5SkFWdGFsZ1BqdStONjZvalo1alNVZEJIL3JPbHNtQ0x5b1R3NXNTQW0xWitEREZjT3cKcnVjSWNESFM5T09qRHdnODJYNE1jVWJ5Y0txMWZ3Q2tFbXVKMVJxNlhsMXUxZFlBQU1IRDFJejhlbjJWM2N5dlV6RmhUVWhmb1ZlWAo2SFVzaFpKVkEzNzZsMVhXQ0F1ckJOUlNHWkdzeTB5cVQ5enEzQlZwejhaUFk0MXVKa2Mwa3dpTmVWRk41T2hHU3BnN2IyTVRPV2czCkphSXBMODZTTFR4bUhrUjdqeDg5TVdQeWhKbXpwZ1JNRFNnTGlrSFROTU03a09FVTJhY0pGWE5ueko0elpmTGNXVlBuenA3eTdJeW4KWHBnejliblpFNTk3Sm1EdXJNbDRYcGo1Rko3blowd0NlZTZaS1NEUFkzbHU5dVRuWnozMTNNeEp6ODZBVyt1Zm5qMTl6cXpwTDg2ZQo5ZHpNeWRPbUJFeWNIREJ4UmdCNFF2eUNKZTd3NUwvc1pNSlZ0alIxZjZyMFZoSy9KMDBPdE5HZWlMUW5pK0JDV0pvY3NBWXdhTFI3ClJuSXZSUUtQc0VnVzMwbENRUEJ5RHR6RWppMWovZXNaU0lRbllFQjFZVDFBblVsaW9KOTJ1RlRIdTU4S2VkUzNUWFF2V1JFemIvSHMKR2ROZitPWGMyOTkrZFhNQWpkZGNXU1M1OFlybzhoclZyNWFMVDZ3WlV3SHkxWUZla2x4WUpMKzZnSDl4aWVEcWN1SDFwY0lyaThXWAo0TVlyN3RWRm9pdUx4T2VYU0MrdWxOOVlMcnEyUW5CcHZmVDZVdVdGNS9uSCtJZS92SXVpZlNqYTA5Y0x5TlU5Mk4vUmRlLzJ2VHZmCjNmcitIemYvK2ZWMzMvejkyNisvK3VhdmYvNzdYLzd3cHkrKy9NTVh2LzM4czA5Ly9jbUhIOSs0Y3UzcXhjdVhMbHk2ZVBLRGk2ZlAKbmpsNTV1aXhNNGZlUDMzb3ZWT0hqaDU3NytTUmQ0NGNPM3I0NkJGZkRoMDU3TTFqL3ZmdSsrKzgrLzU3Yjc5LzZPMUR4OTQrZE9JdApQRWRPSGp4Kzh1Q0pFMitmUFA3T3FSUHZuVGwxK055NW8rY3ZIcjk0OWZyRmkxZXVYUVlmeGpDS1h2akRiN2VvYXNJMDFkRWFKZ1lnCmI3Q0dJU3lHa2JMUTJPaFpHSUE0VzFWVnVZcVNTcXlmVmFTcHdBSGsrKzcya3dBcTVKV2xTU28ycUprQVFGRWF3UVlWQkZENG93RGEKTHErdVZESWJkRDhOSUUrdGNoU0FWQW91QUpCTUxnQUE0Z205QUpMS0tnR0F3TVZZQUZXeldTV0NLanBTUW1jWEZGU1U1NWFKdDdJZApRWkxYY091TUF0QVQ4Z1FBNVkrYnNIcjZ1QmxMbi84SmdFS3NYZ0FGMmltRWV2SldQVG1iVDh0N0ZFQ0ZBaStBQ2hBS0hTRlJrVndBCm9HeGhUcVlBSkcrWE5HZXpsaGhWajA4amhIOGMrRU9ESDg3cEdSMkNCVTd4QVU0Q0FBSVMybUttVU5YNWJIbXhSRkVHSWxXV3k5V1YKS2sybFdsc0ZBaTZVR29aY3g1Qm9TNlhLRXA2c3NGQkcyYWtsaGRlVENIVVZvWlo4dUFHK2dSZGE2d25SblF6UlhBM1NYQXZTZkFRTQpGS3krR3F5K2hPVnFxUHBhcU9aeXVIay9vY0ZNY05UQUpUQTRHcEdDRFdiTTNkRlV4YXpMMzJ2aGYyelo5MlBEcHc5Y2YzL1EvRS9VCitYMS95KzIrVnBqZTNiZjc5dHpwM1hzYnF3RGR4Z0hrbjM4RlFLUDBBOUlQcklQRnI4MFpML25jeE9Pano4UFpobjcwR1d5RS9jNHcKaitwbndQclhRUXNNb004by9ReVp2eGcyZndIcDg2aCt2Q3RmMGh1NGZ1REVaOEhJbmkvMkJVQ2Z3Wm96WS9VekREZTlRLzM0anozRQo2UU9DMHQvQUFZU1ZmL2JqbTc5Zzh2YjRBSVRwQng2RytnaUFRQUNBRXEzRDhRMFFRSnNOUTV1MGFLd2FqVkFQUjJvZXhHcnZSMG5SCk5meERXZVViNjJncm1vbEJjR1VuTTlLYXVkMllXYWJQcjlVeG0vUUNqMTQ0TG9Cd0ErRUFhdEJMNnRRQ3F4YnFCOXh2TnVCdkZkb04KZkVBb2k1WmoxRERWeW5LUm9vU3VvVzgxam0rZGNXL2lDYkhsK2dNb3lKbUNBMmhWYS9vS3c4NGREanIvaU1sOHVhMzJXcHZ1c2tkNwp4VjEvcGMyWGhxdDdmWG5zbmN0N2JOZjIyYS92ZDl3NDRQcjRkUkJ3UjN2S1dYcFltZHBXRldiSkFUQmFZMHNMY21SRU9MSmk0QkJxCk9DQVJId3lORTRkZ3pTUmdWYUp4RTI3TEdUZkFUSGttaWtSZFpGWlgxdXRxZ0g3Z2JoUUQzMkpnMmMxQ2k0YmZvRVhxdEVLZGdxMVcKc2lYU0dyYWlqQ2t0cTBiS1dJSXlIbEphTGM0dmx1WFExQm5iYTdPM203TzIxV2R2eGc0TUlianpZbHBvNE9zWjIweUxjZVNHdzU3bwp2STExZVcvODZuMFU3VWU0d2trQkFjL01tanhqY3NDK2pUbG9rbm80U1lxbXlqOUxxSmc5YytLc2FaTi84Y0xjWjJmT25Eb3hZT29rCldQU1pGakJ4NnNRcDQyYjZwS2w0Wmt5WThqQUJrNSthTXVtcFNRRXpBZ0xtVEp3d2QrclVGNlkvUFdmbXN6Tm5QVHRqNXVSSkdJYm0Kelo2WnRYak43cWowYjVMNWFLNFpUWlNqOGRMK1hXSlkrOEVzZ2k5RmphV1BOenNSQUplaFpQbEFzcnduVWZJZ1FRU0NkMGIvckhUdgpFUGJFaTJIbEtVa0szc085a1RyUXZTUkJiekxrRlBoVDBCU3RQSGo3dEFEd1ZaaDArc1M3dlNoS3RWeGRJTGkyU0hwdHRmejZFdVRzCldzbjE1ZEliSU1zazEzMUZJSEFOc2tCeGRybnM4bElCM0Y3K2l2VDhLOUlQRmdqT0xXTmRXbzU4c2xqMDRVdkkrZjhTbjMxWmZ1RmwKNmNYNW9ndHdkSkRpd2p6eG9iMi8rbTVvc0xmSjdkaTFJejRwTGk0bUptcjkrclVyVnk1ZnZIamgvUG56NXMxNzZlV1hmL21MWDd3NApkKzd6YzE5ODl2a1hubm4yMldkbXo1NzE5Tk16WjQzODc4V3BNLzVyNmpUd2xYOXV5cFNucDA2Zk9RWDhWNTAxWS9Lc3lWT24rUExVCmxNbmpadExrcDN5Wk5qbGcraFJ2cGsyRG1Rb2VwMCtZT1hueXpDbVRRR1pOZmVycHFWTm5UNXMxWi9xenowNS9ZUTdBN2pOVEZ5MWYKK01YdlB2L2ttNzl0TXZDRFRQd1FEZUNPQUF0c2xQYXZCajBoNFZwZWxJYXpVMVZKa3pOWWlrS2h1bGlvSFEwZ3pFRGpBTWpYQkUzbApseVZKS3FOVlRJS0c2dzhnNEo1b0ZUZGFMU0NvT2R0a1ZaVktkcjJXMjJUNGlSNGdBQ0NYV1E0QVZLOFI0UUJTeTdsS09BMUl3RWVZCi9nQUN3UUdFRHdSNkNDQk9GVU5RbFM4c3plY1VGbFFXa2NzNUNUWDZXRjdqR2pHczkvZ0E5Sk1HK2w4S29GQWJOYklCWHErM3c3YnIKVFlieEFRUlNKSHdJSUt3SWxKc3R5QVVBU2hCbGIxTVRvK3VnZnNBNy9Fa0FoY0dhRXlYU0FzK3ZDTEtSbyt2STJUcDZsYkpZSWkrSAorbEZXS0ZRQVFOVmFiUlVlbmJaTW9XVkk5QXlacGxRc0x5bVgwakxVbEUwbU12eHFXQmpoRFVoWXJUMVVmd2pUejQwZzdkVmc3ZlVRCnpiV1JYQTNWbkEvVm5nM1ZuaVlZRHhMcUxUaUFDRTBrMkFia3lZOXNwb1kzMDZycmlrNWFMRGR0VjRjczMvWTIzZXhvL2hwdC9nNFEKcEcvM3pmNDlQL1Mxd2ZTMDNlcmQyOTY3cjJNc2dMd01naVdpOFhMQTZ4N2dwM0dyUHY2TlByNWVuMUZWbjBjRy9EeWtEK3o0OFI1dApNWEs0S1Y3MXdlZ0Q5VFA0cUg0Z2dMQ1daM3pQMTZENjF3T3FUd1lWL3cweUlMaytpRzM3R3ZLdGZHSEhuV0pkenlkaC9QV0RBY2hmClB5alc5NFBpQU1ySDlJTUJDTmVQUDRDQWZrRFE3SWNBR3NxQStobE9hL1FIVUc5aUxickZoTWJCSGlBMFZvdkdhSVppVkdpRXNqdFMKK1NCY09oREllNTFZdWFtK0FIYm4yRExEN2VsWnhqeEVYOUtvNVFERU5CcUZyU1p4bTFuVVhDdkFBWVRyeHdjZ3A0NVRyNWVDNzlOTwpneERZcU5YQUEya3hDc0h2ZFdLbG9BWTlWNk5qYWxSVmFsbHBwVHcvUmZOWUFJMnRBK0ZOMEk4REVMZ1RiNk9mK1BNSFBXaFh6MkQzCkFEclFpL2Izb0wwRGFNK29ES0s5V1BySFpnRHRHMGI3aCtGMTd4QjJqVCtDOUExMi9kRHo0OVYvZmxwL1pWL2VQaDdCUWx4Wm43N2MKbWhhS0hXaUtKOVFHNmZOL0JxQVlhM2FSa2E1VE1lcFVsV1o5dFUzUGNlbTRrSXg2b1VVUFc2bXNCc1NrRXFoa2JKVVNIcS9HUitDawovMHBaYVlVSXZNUVg4VVFsUEdrSllGQ2hnVUpSWmVkcU11TDF5UnZxVTJMZHhCZ1hPY0thdDhGT2pyQmxSYm56Z3B1eXQ5dnl2N3o5CisrNmUreHVqTmt5ZUhQRDhqTW1MWnovOSthNXFORUh5SUZVOGxDYjcvYzZLbWM5Tm5ERnIrdE96bnAwNE1XQkQzTHd0MjU3ZkVQTmMKWE5TODJOaWxNVEZMb3FNWFIwVXRpb3hjR0I0K24wQjRCU1FvL0NXUTRJaVhRNk5laVloWkdCMjNaTVBtNVhGYlZpVEVMdDYxWVZGTQorQytXTEpuNjlKeUF5Vk1tVEF5WU9USGdoUmVuVFh0aDFvelp6OHlZTm1QeWxFa0IvelY1Y3RTTDgvSldoVjdlVXZTSEZFNW5uaHJOCjBnN0hTK0ZSckx1UW5qVDVhUGVNWkJEYnZRWDBBM3V4TTlWOUdjcmVkRVZmcGdwTlZmNnMzTTlXM3N0U2RHWXFPalBrbldreTJGaU4KZFVQL2tDNGMzaVhxU2hCMnBjcjZVcFVmYkdVOE0yRkN3SlFBanBEVmo2TDgvZjg5bnc4M2lxK1ZmYkJFZEgyMUZBSUkxNCt2L0lNYgphS25vekFyQmxWWDhUMWNoWDh6bmZiUUl1YkdZZDNFMTkvSlN5ZUZGNG1QemtOTXZpeTdNazExOVJYNWxudXpTUFBtRkJmekxyNGlQCkgvcnlGanJZVlZwZUhCRHdGUGh6QVJtblQzdHEydFJKVTZkTUJJOHpaMHg1ZXRhMDJVOVBoNWs1eFpzWlUwSG16SnIrTFBpUDkvU3MKcDJkUHd6SWR3R2ptTTdObnpKa3o1Ym5ubm5ydStXZG5UeDAzenowelk5eUEzd3N6WnhiSTdEa3pzVHdOOHV5YzJYT2VtVG5ubVJuUAp6SjRPZ24wd000SEJ3UFdFMlpObnpYM3VENy83MDdVLy9TMUV3bHRoa0VhWWRDTUFndkd2Qm8xMXowaTRZVG9Jb0FSVlZZbUNJVkFVCklxcGl2aGJURHdZZ3Z5SVFETjRENUE4Z29COFFrcUFpVVZLTkFZZ1B1Qk9uRkFBQUVkUTFvd0JVb1dCQkFPazUvd3FBSEhyWktBREoKNVFLQkVBSklJbU5KWmRWUEFGQU5yNktjWDFuRXE4am5NQXBxaWlsVlZSbFZrdmdxNDJyUjRkV1NJNnVrUjFiSWo0SXNseDFaSVQyeQpYUExZN2ZIL2V3RVVVUStmQmdBRUhqZVpLRm1DOFFGVWpOQ0xoSlI4NFdnQUpTSFoyLzBBQk40aGVEOUJEYVN4SDRrM05xaWYyQVpxCmhJMGFhQ2NUNmtrcEJscVpwbGltcUpBcks0RitsUEJjSVMrQWRMcHFvN1pVcVNzVkcwdGxlaUNra2hwWmZxNkt1c05BQ2JOa2hkZFgKUk5UV0VveHZBdUxnNVo5QTdiVlFQSm9QNGNxWCtpcWdUNmorQ0VpWTRTMUNmUU5zQThLM2c3a0t3cHVLSXoxRml3L3NWRFNJL21RLwoxZXYrdzZEajIwSEgzUWVlbTcxNy90THQvcWE3K1I5OWUvN1oxL1k5RHFDZXRqczllKytPcGM5UEFBaHpEMGp2WG0vSnh4dXN5OGRmClAvNjlQditpZm53QThvMTRIbG4yK2pPZ0Q2NmZ3VHBzNVF2WGorbHpRQjljUHdNaitobVFmOXd2K3dqcXh3ZWdrVTN2YU0zWmgvb1oKR2ZrekFxRDNmYWRlK1BTRFl2cnhBb2p5MmpEMXdDUGxueEVBb1RtUEFWQ2Ewd2Vndm5nVHVzMkViakQxYlRhMWI5ZkRJbENrN1A0bQpjVStVcG9jZzd3cEJib2V4MnNpTUtDdDFoU2R6VzEweTFVZ0dmMDlhdER5UEVYSFVJcTIxa3IyMVloeEFRRGErOVMrUVJqMFhBS2hPCkJ3ZWt1a3lRUjBBLzhKZ3dFNExoQ1hIcGhmVkduc0lBUndRWnBHVWNhVUdXaWpUS040OHprRzhiL0ZnQVlUTitNbGRaVWlxT3FOdlIKem4vODdTOTFVcjFlck5XckRHcWxScXQrSkRxTkZvOUJwL2VQWHFzRGdmYzFXcGxJalBENElyNUFpb2pBTC9mdDNuUDI1S2svLy9YYgpqbnRkNkRENC84Q1B2VDljK1BxNjlxd3oxMTBkV0o4YTFKQVdiRWtQc1dZQTk0VGJzaUxzY0FuTWYwWE1QMlBwZzJlak5hZmNVRkNyCktnTUFNaGlxclVhdVc4ZHJWSE10ZXRYL1I5eDd3RFYxN28vL1lXZXoxTzdXRGxkVjloU3R0dTZGRTltYlFIWWdlKzhCSVdIanJ1M3QKdXQydDNVdXRxM1pidFh0YkI0cnNtWkJ4L3M5ekRrUUU3SzMzZDcrdnY2OTMwME1NSVlUSWVlY3pZVUdWdWR4dW9abDFaVnAxaFVKZApLbFhseThWTXJnU3VGaW5WWkpkS3RqSkYyM2pTWEk0a2p5M1BwSXUzVnFpMzd0QnZYR1hkbUZhL0piNTIwK0xHbk1YV0hha3RtWSswClpNeHYyWksrbDlHSGRKMi84T2Z0RVRPSXBJQ0lRTC9rTys0QzB1QktWN2FuaTkyYmxEODlXaEVSVGdralJaQ0NRdTYrSFhmNkc0SEwKcXhnWTRnME55SVlIdVJNWUd1QUFQUDA4ZHgvWDJ3dEIrbmhJZnlVeXlFZUdCSWhUaERqZ3RvZWVpOHcvempMZmVTbGJ6SWw3WkJHSgpTTVFIQmZvSCsvdFJDSGh3WGlaVDhDR0V3RUJDQUlHQVM1dytRL0Z3MnJHbHhjQkNZQlBaZXZYd1NzblFldW1VL0xWRmVtWTU0MlJ5Ci92SGt2Sk5waGNmVENvK21GUUErZk9UV0FKOTdJaVgvMCtTQzd4NnB1THhXMkxjSnpsZnNYeXY5YTZzSVdTVVpYaWZ0MkNEdFRWZjkKdFVFMksySWFMZ0MzZE4wS3R4ZXhmL0RMQTVKUEgxWjlGcTE5YjdieXpCekZpZnNseDJhS2o5NHJQSEtQNERBR05pSDZRZlhwZTZSSAo3bGU4TzFmOTRVelJldzhwVDl3TmpFZDk2SDdGWnc5S1A1c3QrWFNPK09SRGdzTVBpRDk2UUhIa1B1V1JCeVJuN2xVY2Z1R3JOc1RqCllBcTRPUCtnMnlna1VtUmdCSlVFaUF3bEE4QkJPSVVJZ05kUThSZ1JGTUlZUkFBNW5BaGtKVFFNM0lBNGd4SThneG93allvTEQ4V2gKMWpJVlFHaHVKRHdjQnBiQ0l5Z1I0ZVNJQ0NJZ01vd3dMUlRlWVNRd29yQ0lNUEFubkJ3V1RnaUxDUEV4TFl5Q0IvOUZ6UGoxelBsVAozMTVjb2pWSFY5c1M5YlpGWnRraWkyUk1nRVRBYjVLTk1NTTF5WHQ4aURBQldxOWpscXZMWktvU3ViWk1hQ2dmTDBCamRkRFhCUWdyCmdrWmJ3RXFCL2JDRXBaa2l4bG9sQjNaN1FRR1MzRVNBdVAvWEFpU1VzOGNFcUp3cFpKUUoyRVZWRlFXVlpUa2N4ZzZtYUN0ZDZ4T2cKdWFwL0trQ0ZVeEpyTFpoOEpTcEF4VGRoWWxYUTN4UUdKZFhmdUJ4akhBc2I0U2N1c2hXazFCWEdOc0crS3BnT3MrZHRVQlZteUFvTApCRVZsL09JU1VYR2hCTllBbFFselNzVkY0NEpBY0NKaXBqZ1RrQzdkdmthVHVhd2FEdmlKaFVFZE9KOFEzTS9vb01KSkxHeUJHVGNnClRNbG8xZ3djcjdRV2JERVVDTFZNcFpvQk5FaGhZS2tON0dvOXU5ckEwZGF3elNhR3djelFHaGxxZllWU1h5NDBsSlhxQ3JlcnMxSnMKL0ppRytnVzJOMkI2UzNzMDN2aFJ2T2xRa3Y3alJZYjNGaG5mWG1SNk9kWDhaR3AxYTBxTk5hWFdrR0pUcFRVb0V1M0M1RHIyb25wNgpZbE5wMHA2aTVQMDU4L2R0V2xrdi9xajFEYVR1dHhIYlgxMjdMaUc3TGlKTkY3eDcycHlQdDJPZ2M0Q3VBZEFnVU1mTjhGbk9CRWFlCmJQZUJCWk5HZVh3MDFRVkRUZnRHcFdkOHpnc3dzbnZNZThhS25TZFhPdnU4QnczNUFPOFpiWFIzMS83a1JqZDgrU3Arc0NWZmlPV00KMTNnYTBYL3QxWHpwVlgrR0tEL0ZPdDRSOFhGczVBL2M5b1ZXUFdQTDNySE1GN2J1MUpmNVFtZ0hiK2g0SDZ0NmhxVS9hTjJQSi9jWgpEenIyRU9ESmZoS0ExVDU3TTMyMXo3RDZ4MmMveU5ZV1pITXpCTllBMVNNYjZwQTFkY2hLRy9JWWJBUkRIakVoUzR5dXhYcG5tZzVKCjFDSXg2dlkwOVZDeXFqOVJVRjFlRnQyU3Rid3hzNnFXM21Lb2V0b2dQbUFVUFdFUzcyb1F0N2FJbjZxdTJtZVZZK3l0a2UydWxtTGwKUG9CR2s2VFJJTjVkTFh1OFZyVy9SZzYwYVE4NlZXeW5TUVJvTVFvYmpZSmFRNlZCQjM1SFZJamtwUnZNMjlNYU1tSmJnZnJzV0dUUApUS21IUy9SU1lVMGJiR3hNaElNWXN1RHVpMFk0b1NlNmVSdTI4Z0lWSUVoTXc1Yll4cTJBdVEwcnBRY2JYQWp5d2F1dkIrSndPSDlZCnZSdnNCLzRmQlBEREJRS3dZNHhBWE9DVUJPRUNwdVRPTUdwSzFNTGkzUHo5dS9iOSt2TnZYZ1J4STU0aDErRDc1eityZm45UDFpN20KRXR1MjZOcDFzMnRYTDJqYUhMOHZMN2xoeCtMV1hMaTN0UjdPZTR4dnlFNnN6NGI3QVZ1em8yQXovSTdrZXVoSmNmdXlvMXEySmRWdApaZWdLUlVaYWpZWGJxT2MxS2JsN0xUS2J1cXBHSjZ3MmxOdHJ1TFVXcnNYRXRWWUxOR3EyVnMyVEsxZzhKVXlCY1JVVkhIazVBQnhnCjEvQmxXUndGM0hpVGE4emFiTTFhVlorMXREa3JyVFZyeWE3c1pidnowdXAyckxUbkMxODB0eU1EcjN6d3VsOEFMcFFZZ2d2QnFlY3MKQXZiVHYwR0NyRmNNYlpDZFc4MEVwemZ3SnA1SUpOOGVFZmpEZDJYSXNORGJXd1czVnZWVjNoS2UvbEc4QTFYUWg0YUZHRjkvd2EweApMVjZTRWhaR0FEb1JHT0FYVEtRRWgxQnhoR2xrSEI0WFFneTRnMEJZSG42bkxXYmxtZlZzWjQ0QjJhTHhwcXNjYXlUT2xTSmtyZHk3ClRqNjRSdFN6WHVUWnJsbDI3d0ljRlVjSzlpZVRBOG1oZ1dGQmtmZ1FNc3owVEFuQm40VDNBeEJEL0ltRVFBbzVoRVFNQmdTVC9jRXoKUVFyQXBUencwRkM2eHJGTzBaOHU3ZDBnQkpjZEs2dmM2K1R0NjhSd3d0QkdkY1pkYzhDWHUvOXUvUG51bm5mL1FPYXlYcHNsTzMyWAo2Q3RnUW5Oa3g5YlhuYVEvKzYzMW8vTjdqNTl2UHZ5Nzh2VWZzM2QrdFZoMzdIYnh4M2RLajZINzJEK2VwVG9KVjhkTERqMG8vdWgrCkdSd1lQVXR5ZEk0WWNQeEI4YkdaMG1QM1NrL01sSDBZSVQzKzcyODZ3RXVhVmluMncrRWlLQ0hUdzRpNGdIdURDVGp3Q2cvQWtYRGcKVlIzc2o3N0V3UU1uVElrL2JocDRWWk53UkR3T1I4WVR5S1M3cGswUERRLzFENTgrTFpSS0JoNURKZU9tM2U1SElkNUZ3ZnNUd0w4Ygp2eENBbjMrSWZ3QWVnQnZEejQ4d0pjRitJZUFmR25oQS9vSGhRYmdaOEo4WmVCcEQ1NFpUQ1pSUWF1VDBzSysvK2VMVFh5L05rbit3ClFQVlJsT2J3UXNOelVmcG5vZ3hQUnNPWmlxMXducERKbG1pMnBoaTFLU1pOaWttUllwYWlWVUZ3T0JEY09HWXVUekJVTGxVTDhwUVYKNEMwVFhQV2xZMGwwNVVvdHpHeU1oWDhZbVBvQXBGb1dOZ1JJTURZSm1pMHFZUW1MZHdpNHk5WHNSQk16eGNCZG9wV2s2bFR4Um5XYwpVWjJrVThYcHpQRWEyMEwxbm9XcUExazZpOVhNMlZuTEFiK3lKZ3ZRZ1RyTmZoc0VDQkJzQkxPbzYvVlFnQ3dxb1ZrajBhdEZLcFZJCkp1ZUxwUnlaZ3F0U2M5VlFnRGdLSlNwQUNqZ1VVU3hsQ3FVTXZyaUNLMlN5QlBSeWZqbU5UeStwWXVaem1Ma01kc0hJN2ZzQUFJQUEKU1VSQlZDNmR1NEs3TTBuMHIxbXExMmFxMzVvamYzMis5T1Y1OHRjZVZMODlXLzNVUTVxWFo2bmZtNlA4YUo3OC9YbnlOK1lvWHB5dApldkdXQmVqbW9GT0NKam5RelV4b3N2cGdSTU5jVlVHeUhRcFFTaDJNQXkydWhSR2dkQ1VVb0h4K1lURy9xRVJVZ25XQmxZcHlKd3RRCkZ1cEFRSURXcVZFQnNvOFhvSUxKNm9NQlRBdElUeW82UHhwTG1TMnpGV3cwRlZTQzE0ZUtydFd3VkhxV0JnaVFsbFZqNE9pcjJUVW0KcHRuTTFKdVlXZ05kWTZCTERUUzZyamhiazdQRTFKeFErMEowemVFRS9jY3B1cmNTTE0vRzF6eVpaSDVpa2JVeDFWcVhXbHVUYWpPbQoySlFwZG5GS25TQ2xucmVrV3BEUUxJcHI0QzYyVmFUdHFVamNYYnlvTGlkbFovR3pMYzljYmo2RjJIOGZiampmcy9lU2M4K0Y0ZFkvCk94Ky83TmgvRlhhQmpSTWd6SUZ1eGczUm5TYzZmSi9pZXFJZFkrVEExUnY0eC9iajJua1JUampFdXIzR0tuNG1GRHRqWTM0dys4SFUKWjdUYkMyMzQ4dmlXZkJtaC9ZeE9POVI4NWxGOWluVzh1NlhYN2NkYmRjakRHOXYwem5uUFp6KytmUmRJMmV0dzN6dHFQNmdBalpiKwp1QXVlZHhlT0ZqNzdTbjl1dEo4cEJHaTArZ2NUb1BRbTc4WkdhRCtBMWZaUkFWcGFQVjZBQnBab1J4STBQU25xemtYSy9rVFJaNnZvCnlzcWk5WTJGS2l1N3ljVGZaeGJ0cm9GUm4zL0JYd3JpZmJWQ0lEZVkvUUNBNWZnY2FMSUFvUU9qSmJ2TVlrQ3JTZFJrRXRwTmZJdWUKcTlJd3BFcGF1amtqclNFemFtY21jQ0E0R1FpZGQ1VUVMekgxeVlxcHoxaFl2M1ZCdzJaSTArYTR1bzN4OWVtSmpac1QwTW5MMkl6bQoySmJ0Y3hwWGk5OXM3RU84enovMVZJQS9qaHdHaXlFaVNBRmtxcDhQU3FqL2RhaTRXNEpFREFMUzVPY0hMZW51dTJaczNMQ21wYm54CjY2Ky83aDF3RGlNSThJbUR2eCtWdm0wcitMZHMxZTZLT2FvTmMrczJ6cS9mbE5BQ0xTZXBjZnZpWFhBQlJYVDk1clM2TE9CREthMTUKcVUwNUNZMVpDeHN6NG1xMnJxM041ZWxMVk5WTVd6V3Z5VkM1MnlTdVYvRWF6UEtQM25ueDBxL25PeSsyZGJaZHZmVEhIMTN0YlIxWApMMTY2K01lVkszOWU3dmp6MHJVL0FCZmJmd2RneCtES0srMXRsNisxWGJyVzlsZG4yeDlkYmIvMnRQM2MyL1pqWDl2RjdtdS9kMTYrCk1ORCtWLy9WYTQ1ZWNGclZxZzNCdUNBb1FFUy9odmcxbnMzcXZ2Vmk3enJaOEViNXQydFlFVENYZ1NjUVNENEI4dlJVdW1DQWgzZEwKalBSd25OMXNBRGdBbjQ0Qmp4ME1CSkU2QnJXZm5tQm9GV21ybHQxOS81M3dKRTBGWi9yZ1lIQnVEc0FIQmdZSGhBWUZ6eUtHcnB3NQpaMWZLNXNNcnk2NXNsWXhzVjdxMnF2bzNxdnJXYWgzcnJjZ0c5Ylk3b2dQSndPU0NnMGk0NERDNDA0TktEWVNqSGFjaUxBeFBwUVpEClFna1VLcDVNQ1NGUjhHUXFnUlFlRWtvT291QURrMlkrTUxoSk03eFczcmRSQWdUbzJnWWhzbDQxc0U3U3RrN2tXQ01iM202UXpsbUUKSStEQ2c0Sk9uVHIzV3c4aTNuZUt1ZWVVNHFWenozeDE5Vmlic3c5QndPdkI2WFFPOW5RTUQzUjd2TWdnZ2x4MklDOS9PU2g2L0pzTgpscU94eW85djQ3MTdoK2p3UTdwUEh0SWVmMGo5MFgyeTkrNFJmd0NYVk1nK3ZsdHk2RzdwaC9jcVA1cWplUDkyOGVFWHY3cUFJQ01jCnZpZ2tFQmRPeG9jRUI2WXR2a2VsalZiTEV1V0N4U0p4bkVnYUs1UThMT1FsUzhTSlV5S1Fwb2pGVVVyeElyVThiZDI2aHdJQ0FzQTMKSGg1R3dsT0E5Z1ZGVWtuVHc2a1IwMElJSVJHYk5zOVZTWmVKQkl1RVk0aUVhVUxSR09PdUg0OWNzQVRjckZJVVg4VlBGVlU5cWxTawo3Y2lhUXlDR1lnSVVIa245OHV2UHhndlFmTTJoaFpvUEYycmVqZGErSGFON1BVNzNjcnp1K1hqZHY1UDBlNUlNdTVJTXJVbkd4bVJqClhiTFJtbXl5Skp0TVNXWlZ2RUgvaUVhUnIyUUtWQ1Z3M0xPT0lkTkIrNWxTZ05BeUlBWVdBZUpqdThCRUpVeEJVYmFnY29WS25HalUKSk9uTWk5UzFTWnE2T0UxanZMbzFYdmxFdE9xWldPVnpEeXRlbjY5NFBVdmRhalZLZDlhSS82TUE3YXFCRVNBZ1FGYXRwRm90TXFuRgpRSURVYWpFUUlKR0VMWlZ6cGhRZ2lZeUZDUkJQeFBJSlVIRWxBd2hRSHBNRkJHZ2R5NWJHM3pOUDhkSURLblFPa1B6Z1hNWEJoOVJ2ClBxaDhaNDdxOVllVkw4OVJ2ZnFBNm8wSGxBY1h5RjlNbEQ3OVB4UWdYNXZZaE96WVRSM29abUM3dzRDc0FPOVpiY3BiWjh4YnA4L2QKck1qUGtCVGtDUXFMQkVYRnd1SWljVEVzQUxxNUFHMldacXhYWlQ1cWhnSVUzNGdLVUIyOHo4bGZEZ05iWkpGcWc4ZlJqZkREUmZiQwpsVFZGRlJxYVdGMmhVOE1VbUY3SHRtcFlWajNIVk0yeG1WaFdNOHRrWWhtTnNMRldaWUNOT1VXYS9OWGF4OU1zTHlUVXZKNXNlaUhWCnZEUFJab3l2VTZYV3FsTHFPV093SVExTWpEUWJPN1ZGbEZUTGpxK2pQZEpTQ3Z2SVdsalcrcWFSaG0rUStoK1Irai82ZHA3djIvZVgKWS9kZmczc3VkanpaamdtUXo0SEdhOUNVVFBDZTY5ZmY2RDNPeDJGcEVXUmYydzNxTStZOUU5UUhTM2hoazUwbnhINWNEYjhEeGlZYwozbUEvTHV1UDdocTAySG04L2ZpV2ZHbS9kS3MveFVxZTBVV254OXhvenhjc2VVWWJ2dHhjT08xd2JOWFhqZlpEUTllZCtnUm9yUEFaCm5YazRXdmZqc3g5TWdMREpoMWpwenpqN1FaTmZQZ0hhY29NQWVkZmJieVpBM1k5cSsxTlVBMG5xcTR2Vlhja3lWMVRWNmRVc2xZUmwKcithM1d0RVNueHJ4emdiNWs3WHlaeXl5QTNZRmtCdUFUNEQyVEJBZ3MvUnhxeEpLVWpXY0ZRU0RRTlV3RWJZYnJRUnFNQWxxOUR5ZApscVZVMC9QMDJTdnNXWEV0bVhFdE1OdUZMbnZQU3JKbnhkWmxBR0xzMjZQcnQ4WTBiSWxwMkJ6ZHRBVVFoeTQ2SFdNcklLcDVDeUM2CmRwM2lyZVpPcjZPMXBRbThKUTBGditORGdpUHc0TkRmSHdlTUtDREFMM0E4ZnJmNEI3d2J4b2VRUThFZktqRTRHQWFSZ2dOdzRPMzMKZ3cvTW9kRXFEbjk4YU1EVlA0dzR1cENCTXgyL3ZQclZJZmFMaWpVTkJUR1d6UXNidHozY3NuVis0NmJZeGkzSmpkc1NiUm54YUM0dgoxWjZkMWxLUTFGeXd1RHA3cTdsUW9pL1RHUmwyRTR3QTdhOVYxR2tGN3g1ODF1dnQ2N2pTOXVXbnAzNDRkL2E3TTk5OCtjV3ByNy82CjdQVFhud1BPZkhrVzhNMFhaM3hnMTN4eDl2TXZ6MEMrUHZQNTZXOCsvK2IwNTJkUnZqL3o5VmVmbi96eXExTmZuLzc4M05sdlRodysKdG5uNVJ1QjE0RlJJcEFTL3RxSUEyYUlGQWpTeVZqS3lVWUVKRUlVY2NsMkFoZ1NZQUhsNmJnMmY4ZmpBZkFqcGs0Sy9IZW1sZTRkWgpDS0pBbkpidnY2bDhadi9hYlJzVGI3OHRBQmVBQzZMNEIxT0NDY1RBTUVKQVJJaWZYekFPUE5TRXlEdUZjOUkrWGxZNnVGbUJiRlo2CjE0dVFqYktDR1ZHaElVSFRLYmNEdGNHSCtVVUVoeEVEU0VRODRXYmdnOEg1SGs4aUVNRjNGeEpDd09QaEFTV1NFRTROb1JLQ291KzYKdTJjakhBbmRzMTdVdjFIVXZsNkFyRlcwcitZUGJkUDJMaGU2ZDVpZmo5dEt3Z2NFNG5ETkxUWW5ndlFpVUhHQVVBNE1kUHo1ODlldgpISHhkTEpZdVMzdDA0ZXlvbUhteDY5WnNOTlZVSHoxMTNJdU1EQ0h1ZGhmeTRTOTlvdWRPTDlFZHZsLzQ4UjJpeisvUWZIYTMrdFJNCjFmRUhsUi9QVXNLQnkvY3FQcjVEZm1TdTlOMDdSUisrL3VWNXhEM0k1WEpEL0hIaEZMSi9RSWhXbVlpNFZJaFQ3ZTNYZ0FPM1M0a2cKS21TNDJ1T1FUNG5UcTNLN3hjNEJ0Y2R0YnQyek1TQUlCL3Z5S0tTd1NHSjRlRWc0bVJBTzNpYkE1NEw2N0F0NUhxVGE3UkFBWE9EUwpLUVNNakl6aWNvaW14Tk9yY3c4Wm5VNk53NkYyRFdrUnhQekdtNlV3OTBVbEFRRUNIdlRaRjUrYyt1WGliTVdIQzlXSG9qUWZMMUIvCmp2SnBsUHBVdFBwNHRQcG9yQVp3SkY3N1hyejJuWGp0Vy9HNmd3bTZWeEowTHlYb253ZkVteDZQMCs5N1ZGdFRwT0dKdENVU1hibFUKejFUcW1CTUVDT0FUSUtrS3BzQkd5NENrcGFNQ0pKSXVWOVhFNlo2STFiNFFyMzQrUnZYdmFNWExpWktEMGZJUEg1WWZXU2cvUEVmKwo4WHo1b1N6Vlhxc0JManE4bVFBOWJ0ZE9LVUJHbFFnSWtFWWprU3NFUUlBa01qWVFJSTJhUGFVQUNTVDBTakdiTFdSTUVLQThCbThyClhiV0NWeDhqZVhxVzhnMGdQZWg0NkRkbXE5NjRYL1h4UE1XYlFIcG1LVjYrVi9YbUxOVnJxYkw5RzhYVi8zc0JtdVJBZnhjSG1nelEKam9TR3dwaEdLQ3ZBZnJacDhqS1Z1Um1xM0F4Wi9nNUpYcTZ3QUFhQmhEQUxocFVCWVFKVUpNbWRJRUJiSlJrYmxWbVBtWEpTVVFHSwphNEIzL2pjQ0JMNG9FQ0RzQmtDQVlwb0trK29MbDlnSzg3VWxmSFU1RUNDRG5tUFFzV3ZVekZvdHU5ck1xVE5DQVRLYjJVQ0FUQVltCitPVXIxTkVxTklXYmRhcEhxL1hKTmt1eVZadGlFeVhVc3hQcldXbTEzT1I2QnFTT2hRb1EwQ0FlcEs0cW9aVzV4TVpKdFhGVEd4bngKallWem1rc3FXdXdYNms0aTF0ODlkYi8xdC80eHNQZlB3ZDEvRExmK09iS3J6Yk8vMDdIM0N1UkdCL29iZkRVOUFGLzZET0NMOUl3UAorUUJHZ09pTWNhUDNYSER0L0d1VTF2T2pvTjR6WG4xZ24xZmRiNENwQWovQWZuNkFZMzVndmZOM0U3cTkwQldubjJJbHoraThuK01lCjBWRnMwZWxrKzhFS255ZkVmbURSVCtrcjNpSlk5NFBaRDdyejZ6bFAvdlhZankvODR4dDc2Qk1nQkJVZ3ovWTkzbTNqK3IrdTU3OGEKb2Yyc3MzdFgyYndyYXBGSGF5WUlrSE94dW5zeEVDQmxiN0w2U3BwaU1FYlNseUQ4YXAzd2FZVmdMNHowU1BhWlJVME5zbDMxeW1mTQp5dWVzbWxHNXFiNHVRSmdETlp1a3paTUVhRyt0ZERSUWhBcFFrMGxvTTFZWjlSeXRoc2xURm13MTVTeXlaeWJWUTREOVlBSVUxN0E5CnRuNWJiUDBXU01ObVFGempscmpHVGZQMmJKbTdjOVBEemVrTDZ0Tmo3ZW1KOXMyTDdWdVgxbVdzMFcrdU83aG5FQmxwcnJjRjRIQmgKMUhEd2JuN2V6RkFtSTU3RlRHQ3pFZ0hnQUFNY001a0p0OFRxMWJQdXVCMU5wQUc3SXBFanFSR1JvV0ZVSWppUndyQVFPZEJ2Y1V4TQpuZDc0eDNmZkl4NEVBYWM3cE8vWGdWOTNuM28yNzJsSldsUGhRdXUyK0xxTXBIcTRjeU8yTlRPaGFVZUtmWHR5UTFaU2M4N3krb0tzCjJoS3ptV3MxOFpvc1ZjMUdYcU91cWtZaitQN2JUNzJJSTJQYjlwQ2dZSERTRGd1bEVBa2hzTUlVTFhvTkpRZGhoRkdDQWRjL0pJU0YKRWlIZ0hFZkJhbFpIaWFTR1RvTVJEd3FCUUEyWk5qMlVHT0lQSkRHY0VESTlqUHpGWmg2eVNUMndYank4VHVMWnFEeTNtb2tKRUpBRApJRUEvZms4REF1VHU1djBYQXVUcHIzVDM4UURnYzMwSFFJUGNWNnU4SFpWSUQ4L2R3eHpxS0hmMXM1RVJFU3dZUW1RL2YwL2YwN3gyCjY1cFo5MFNRUTNBNElMSFRpQVF5TlNBb05CQUdpTWc0WUNycjc1eTVKM2JOMlZXTXpuSmoxbjB4SkJ3dU5DZ3NjaHA1N3NOQnMrNEkKbVA4Z2VjNU02cFRNdm9jNjU5N1EyZmVGenAwWk9lZStpTmt6QWRObTNrbWxodU9wcEVBeUlYRHVqQm1kNitGQ2pPNTF3b0YwY2Q5Rwp5WlhsWExnYWRwVmtjTFVVU2RkL3ZKeEdKQVg1aHdRVWw1Y2MrL1NUZjcvMFltVmw1YWExRzZNZmVuaG0rTzE0ZjNJQVhKaUJJeEZ3CmhCRDQyZ0QySFI0NjdkSGx5M2J0YnJwMjVROEVjUXdqeUUrRHlONVAvMlErZFh5TzVQRDlva1AzaW83ZEsvc1VjSS9rNUV6cHNkbnkKNC9lS1BwZ2hQbmJ3OUZYRTYrRHhxb0FBZ1ZjZERoY2k0Y1FnSTJwdmQ2V3puVFBTeCtwdHB3MTAwSVl2QzRjN21WUFMzYzRjN21ZTwpYR1VoWHRuVHoyMEM0aFl4TFpJQ0RJaUNEdzBObWg1QkNxZE9KMVBDQS8xRFhueHR5NUNyZE9BcUI2Ti9qTDUybEN2c0tlbS9WTkp6CnFhTHpjbG5QVlZyMzFXS25nLzM2bTNuZ0RVWmtLQ3lFcG9TU1AvbjA1S2xmTHM5UkhzSUVhTDcyT0dDQjVqaWNwanZLMFJqTjBSanQKS1pTVE1icmpzWERNeXVGWTNVY1F3NkZZL2NHVm11WlNUYVZZVnd5WEdlaVphdTExQVVJZENJSXR3Y0FxZ1RBSGdsa3dXUmxIVkFRRQpLRXVzZlZTNU4xcjczbnpOeWZuYW8zTjFIeTVRSFk2VG5IeFlkV1MyNnRnQzFaRTVpcU1QS3o3SVVyZldHdmw3YW5oL0kwQ0FDUUpVCm94SC9Sd0dDRG9RS2tFakdCQUpVSmVGZ0FsUldWVkZjVlFFRUtKL0Z6bWR4Y3lvcU43SzFpNFY3SHBhLzlvRHlQUURjaWFGOGJhWUsKSHN5VnZqbEgrdTVjK1J0SjhpZTJ5TFhsc25KY3JEWHZKdHlhQUNYVUZ2aEl0Qlg2dUxGUTJyY1p0R2h5bWd3akRSVWdvQ0JKZFZDQQpzbFI1QmRKY1FMWWtOMHVjbHkwYURRS1ZDb3RMZ1FCaHdINzRHd1FJa0NIT1RBY0NaTWhPclVWM3RUYkNNdTFrZTlGazlmRUJ2bUpLCkhmU2UyQ1pvWU1DWndEVmJERVVzVFpsV3d3TG5HNU1XQ3BCTnc3WUNBZEl6clVCOTBBaVFDWjJ1SnRXVmM5WEZtWnF5bGVieVpEc1QKcFR5K3ZqeWhqcmtZQ0pDOTBnZndIaC9ScmVXcE5lV0xHcm1MRzlnUE50TzJObXUrTmI3cnF2OWx5UDVYVDlPZmZidi9kT3orYzZqbAp0OEdXODNBT1VHdmJxQUR0dlRLOGIxU0RKa3ZQZUs2SGRoNEh0Mi96TVY1NnhvTjVENUNlR3dwOVlOUm5DdThaYVVLbkdqYjk1bXE4CjN1Y0Z2QWVxRDFybURNQVNYbGpnQjFNZnhBenRCekdkOVJyUFlQdE5nZjBneXRHMEYxQWZSQUl6WDJqc0IxMXpjZU84SHk4VEFLY2QKanBYK29GWFBOL1o4WWVxRDVJOW12ckNxNTlIQzUzRkRuOUhNRjJTYy9lenhiTjA1V2dBRXk1L0hKZ0RCTWRCMjcxcmJ6UVFJU1ZFQgpBZXBQVVkwa2FEcFRWQmRURlIzeGt2NW95WW1jeXFlMXlsMTFxZ01XQ1Z4OFlWYytaUUdvSDdkQSt4bDFJTXVvQU1GQ2FWU0FkcGtrCisyc1VCNnBobEFqYkYrWVRJQ3dSQnZ2aGRWeTlscVZRbE9ibzg1ZlVaQ1hhTWhQc21RdnF0czJ2M3haZHR6MnFhV3RVNDVhRkRadWoKNnpkSDFXMktya3ZIV05nRVpTaWxic3RqdGRzMzFXVG0xdVRTcklWc2E1bEFYL3I4cTA4aW5wRW1xd1djTmNPSTFEQkN3SXFsOHhDUAovQWJjTWd5UFIzSkxqSGo0UC8xQVA3QjN5NmExODhBOUIrTDg4Y0VFNENYVGlQZ1pST0wwWUJJVkZ4eUM4eWNHaHl4NWJMSEtvdjdtCjdHbTN4NEVnSTA1azhQVEZjdzBmL2F2b0dVMkNKVGUrZXVNQ3k3cll4cTJwZTNJV3RHNmIwNUMrM0paUllzbzFLQmsySGFmUnhOdFYKTGFqVFZlNnMwdzBPZHJaM1g1czdaeFk0Z3dJWG9WS0RLUlEvQ2drWEVveUxqTUNSU0FFQVdQVXlCbmJOOUJBY1lGb0lMcHdBbmdRYwpsWWdEbndLNExSZzNBNCtMd0lQektJNUl3aEZJT0R3cGtCaEtDTU1IUHhBUjhlZFdxWHVEQWdqUXdFWXBzbEYxWmlVZENCQ1pGQXdFCjZJN0lJRXlBWEYwd2xqUFJiLzRCN202T3E0c05MbjJBRDVHaFNsY1hhN2lENit6aU83dUZJejFDWncvUDBjTnk5YkpnVE1qTFJ4REYKano5VjFkaldKaSsrTzRRY0ZPd1hndmNQcGhJSm9SR2tZR29BRG0zR3ZpMk11UFgyMlE5SDNqVXRIRS93eCszWS90RFZ5NnJlcThyego1M2x0RjIvQ2VWNzdSVDY0dlBRWDcrTDV5c3NYK0JmT1Y1Nzlwamg4R2dtV0J4R0RIcGdXZVcwOWJLUUhBalMwVWR5MVFkU3hXZHEzClh0SzFXdVJhTGtFeWFxb1Qxd0tEcEpBanlHUnFSRVFFcklEeEEwOXBVQWcrSURnNE1CeVBRMnVOZ1crU3BvV1NiNHVnVGdzTEFUK0YKSUg5WXVIUFAzWGZ1MkxIOTJYOC9jL1ZxRzRLNHdDdmtpMHRJM2R1L3JySEFlcUM3cEo4QVpvcVB6Sk1ldWtkeE1sUjA2dGt2cjNsYwpianBIRU96dkYwRU54ZmtGeWJqTFBFUEdvZmJLb1N0YzhJd05kUENHT3RtdWE4ckJkdUdVOUxkSlhCMlNnUXM4enhELzFWZXppSVRBCjhMRGJ5V1J5V09nMDhKcVpGaEVNanFtaDRmZ2c2bHR2RlF3TjB2b3ZDL3ZhUnVrZFI5OWxNVWJ2SmRGNEhOY1k0S3QwWHViM3RvdTYKMjVnOWZheFgzeXdrVWlLZ0FNRllFL0hFSjhjLytmblNYTlZoWUQ4QXVFaGdIRkg2dzRBWUhiaisxRUw5eVNnZDRIaVUvbGlNRHZBeApJRnIzVllMMm96WHFuUlVhbmtRSEE2VkFnTUFiSnhVYUJKb2dRQUQ1MkVob2dGaEJnMWt3U1FsYldMaERyRnV1T0JDalByeEE4OVZzCjNhY1BHSS9PMGgyTFZuejJzUGJEMmRvajh6UWZ6VklkbXF0OGI0ZW0xV29VN3FtcHZKa0FIYWpUalJlZ0JvTzhWZ2RIQWYxREFRSUEKQVlKWk1Da2JMc1RnbDVYeGFWQ0F1SFFnUUFWc1huRTVySVpleGJQSGk1NmRwWGhucHVxREI1VnZ6Wk8vOXBEOHpZZmtiODlXdkxWUQo5dElTNmQ2dEVtMkZsQzZVNWY0UEJlZ0dFbTNGR0JNeVl0Y2RhSndraldjUjJsQVdnd3JROHVxOExkcThmSGxlcVNTdlFKS1RBeDBJCkxzUW93a3FoQlhBbnhzMEVLRk9jdVVtUnRVS2ZtMmIxQ1ZBUktrQlRrMlNISk5jVkF4SWFpdVByaTlDWnpvV3JMSVZsdWxLVmhtblEKc1FFV0RZd0FBUUd5RzVnMUpxYkJ6TktibUdZakN6aVFTa2V2VXBjVUtDclc2U3RTYXVoSk5rYVNuUmxiejB5b1kwRUJxZ093VVZobwo4b3VPa2R4VWtWeFBlNlN1NHFGbStoS2I1RVBEaTBqMWR3TzJYL29iTHdMcGNiYis3a0R0cDM5ZjIrRGV0djdXUDRiM3RBRW1PdEROCm1hdzRqcjJYQWI0azEvaVFEd1JWSHdCVzRuTTkyOVY2ZnFUbFR3RG1QVkI5c0pEUHVCWjNUSDFjdHA4QVh0amlmb1A2QUZ6b2dndUkKOFF5aWgxT2VNZnZ4cUQ3M2ppNzVPdTRWMzFEeUROUm5zdjBnUUlBbXpmc1p0UjgwOElNVS90dG5QejcxOGRuUCtNSm5KR08vci9NTAoyTTkxQVlMMmd6YkFqNFovNm9IOWVOYlVBZ0h5TExkT0ZpQlhxcVovc2JwL2tXb2tVZVZJVUxZbkt5NG15NjdFU3kra3NOOHRsK3l0CjBSeXdxNTZ0bGo5WG8zaWlSdEZTTFFVQzVITWdJRUErQndJQzFLUVg3VEtLRDFSREFRS01iY3dZcXhheVNJQUFOUmo0VmozUHJHR3IKTkl3Q1EvRmpsaHpnUUl1dFdRbTEyK1BzMjJHZXlMNDV3Ylk1MmJZbHhiWWx6YloxaVMxamFWM21NbnZtdHVxY3JKcThrdXBDWGsyWgpxcHBaYlliUzBHcXNiTlJWdmZ2aU00akxZVFZwZ0FCUmc0aEJmcmdWeTJjaGd6eWtuK1B0WTN2QW1iV1BqUUdPM1gzc1d3TGV5U0FUClFmZ2pJK0xQdnl3Mm1aWXVXM0l2bGVnWGdNUGhBLzNJd2NSSThyVGJJbTRuZ3pmK2ZyQkNGWnhVMWl4ZjNXU3hYL3IrRjhUdGNTT3UKSHNUNVJmc3Z1MDg4U1h0S21tckppS3JkT204bkRBanRxTXRYNkFwdDJzcldha21McVhLbmhWOW5xSHJ4bWQzZ0JIbnMrTW1nSUJ3UgpPRTBFaVVJSURpZVJwb2RHaGhIQ2lBRkVDcG1JUm9OSW9WUXlBRHNHVjFLQUoyRTFMbFFZR1FLRWsxRUl3ZE9wK0RzakthRjRHUGdCCjUrWUlNblVhTlNJMEtERDI5cnQ2Tml1ZHF5VkFnUG8yeTVEMU53alFuZE9DZi9xaDNDZEFrNnQ4L2g1TWR6REFzYytIaGpxcW5OMEMKVjEvVlNCL0gwY053OWpKSCtsak9YdlpRZitWQUQydTRuek15d0hZTThCQ1BackJmL3VVWG1UV0NGV3VXM1lHbndPY1dIMEs1alRJOQpra0loRXYxRENJRjRQSjVFZ2orSW90d0hFYmNjR2FnWWNUSzhBOXdwOGZUemtHRUJ1UFFPVkxyN0s3MkRmRUQ3K1lLNzc1bE9JUVpRCktmajdaMHk3dWtFMm1LN3NXUzhhM0NDNnNrSGcyS0xxWGxIVnRVV0piRFYrdllZelozb2t1Tmx0WlB6dEZOSU1NakdVQ0R1ZXdJOGcKSkNRb05CUThKS0lmZkN5QmNDUzJQeEdIQ3drSUlCRkpZUkdoUk5palRnZ20rZ1dTL0FoejdwckRMdUsrLy9LaGdjR2VFUVM1NGtMZQordkdLOElYUEhyVzg5NkRzblJtQzl4K1FmUlF1T3ZyQ041MWVCS0ZYeWYxeGZ1RVVjcUIvZ0pDWFBPSlVBRk1jdU1iczY2TDNkYk1ICnVzcUdyM0w3cjkyRU50NUllNVhqQ3M4enpIbjMzVUlxa1VRaDNUNHRNandpZkFiNCtVWkVCRk5EaWFIZzlSRkFmT3RneVVpZm9MK0QKNmFQM1JucXVNVEM2MitrK09pL1J1NjhJT3k0TCt6dmtneDJpd1NIaDg2L25CaEx4RVZRSytDY0FYcEhIVHg0REFqUlBmUVRZRHhidgpnU0VmM1RGZ09SQ2dPeWpSaHFNK1lnMUhycVA5S2xuei9pWjFFMGZObG1rTFlBcE14OVpxNlVDQUFHTmRZRXlmQUNrMGRKOERTWlRsCklubFpsYXlNS3k0dWtBZzNLT3hMVkM4bEtvRURIWDNJZUhpMjRYQzArdWdDN2VHNW1tUHoxUi9QVnAyWXF6aXlRN1hmYWxEc3JwYmQKVElDd0NOQmVtMjYzVlhPckFpUlRjQ1lJVUlXQVJoT1VBd0VxNERFSzJGQ0FTdWpsZVl5cXpXemo0cXA5ODZTdnoxUzlCd1JvcnV6VgplZEkzRjhoZWlWYys4WmpTdWtNbUtKZlFoSklTbWJUcy8wcUFmQTQwUVlDdU85QWs5Y0ZJOHVXazdQbXB0YmxZRUlnbXlTOFI1K2FKCmMzZEk4ckpGaFlYOHdyS3FJbFNBaWlZTFVMWTBHd2hRdGpocml6eG5wUzUzVVEycy9nRk84ODhGS0tXdUdCeGpqL2FSbW9JQ1E0bEMKelFEdnRvRUFtYlhNR3Qyb0FGbk1UTDJacFlQVjBHeUxpYTNXTThTYU1wcThZcU1lQm5XUzdWQjlZaHBZOGZYTXhiVXNMQVdHU2s4NQpwSkdHVXJxMG5wMjhxd0k4Z09nR2p0MjAzNnM2N1duNFk5ait3MUE5OEl6Zm5DMC85emYvTXRCNjJibXJmWERQeGQ2OXZ6dDNRd0h5CmFkQi9kS0FKM3VOamd2YzRkMS9DOEhuUCtCWHU2QkxUM3dIZ0lZMk1oWHhHUWRVSHN4OU1mVnpXSDExamxjNCsrd0hxNDBaQjV6c0QKOVRrOWx2YjYzS1dBbVM5MHd4ZWM5SU1WL1FEN3dlcWRSMWVjWHQveERnTS9NUGwxczloUHdRdEl3YWo5SUw1VlgyT3hIMS80eDFmMQpETzFuTzFyOU0yby91OGVGZjhZRUNOc0NoZ3FRWjJVdEVDRHZzbW80QjJpY0FEa1dhVEVCR2twV0RpUXJlcE1VMTVJVTUxTmtYUXNyCno2MnFlcjFLZnNDbWZySlcrbXkxOUVDdEhKeXFNUUhDSEFnVElNeUJkcHBsbUFBOWJvSDI0eE9nMFlwcGNCc3pEQUkxR2dWMmZXV04Kam10UmM5amFzaDM2Z2h4alViR3BPTTlja0dYSkI1ZTU1bHhBdmptdnhGSkFzNVF3cTh1NE5lV1Z0WFN0a1dFd2NXb3NsZlVXZm90Rgp1TnNrM21jVTc5ZUxXcFNWNzd6d3RNZnJVT3FsQWY2NFNFcDRTQUR1MGNkbUlrTmlwQittYndDZW5rcHZieFdzWmVuaWVyc3Jid21rCnI5VGJXK2J0WTdyNytlQ0xJQzVUWjRmMDNKa2lwV25GSXl0RDhWUWNPT3NSZ21FcExvd0prVUpJSWZnZ1AvK0FnSUM3Nzc1NzgrYk4KVCt6YjMvYjdlY1NGT0JCWEZ6Sjg5Syt2YXQ3ZHUyMFhOODJRa2FmT3Rtb3JiRnArazBuWVlPVGF0SFNiam5mcXlGdUl4NjNYbVFOdwpnZE9wNEdRZmp2Y1BKdmtIQWJjaitmbkRZaENjUCtCNmx3NXU5QnFjWHhEQTczcXpHeVFJRndSdkN5NXgvakNlaEE4a0JlREE0d3dMCkRxUUUrQytkT1dza1hRMEVhSENkdUdlVEZGbXJQTGVLRVVrbCtnVG81eDhyTUFGeTkvRW1CM2orSHVCQWt6OEVEdVRvWmdQMUdlbWwKTzN0bzdoNDY3Si92RVhtNkpNZzFGakpRaFhUUlBaM2xubDdHY0JjTjZCRXlYSWtnYkVkMzVVOG4yYzM2OU1XSmQ4R0dQUnd1UEJDRwp2S2FGaGM2Z2dtY2xlRWZHUEdSUTQrMWd1M3I0STkyOEtRRmZHandHSjNnQmdGZEZiOVZJTHg4Wmt2UmVZY3lhZlMrWjRFOE5KZHczClBmTHllc25BUmdVVW9IWEM3blFKc0I5dnVxcG5yZVRISGRLMWR6NFFRUEdQd0FmZlFhVGNSZ3dQQ3c0bEJWQ0pBU1R3WU1DUDVvN0kKa1BrUGhPOUluMU5yWFBiQ3MrblAvV3VUU3JKa1NkTGRaSDgvZjM4eWhSZytuUndhSGhJRVBwMGNBbHNWY1g2QkMySmkxUnJaRCtkTwpJZDV1SitMNWFSRFovMVZYeGJQZnBxbGV1WWYzMHZNbmZ2SWlJeFY4cWI4LzFGWWdWaHpHdzI2MzFORlRNZFRKSE94aTluZHhoN3BMCmg5dnBBNTJzcWJuR2RvSW5wSVBuZFRJKy9LaVFqQThoaG9TRlJ3U0doNUhEd29MRHcwTkN3Nm1VU0FJaEtQRERkMmpJb0t6L2FtWGYKRlY3dk9McXVjQUhnb0tlTmk5RjltWVBSZFluZGZiV3E4MHBsUnh1aiszSkY3MlhteUxENDVkZno4TVFRb0d1aFlVRGJ5Y2RPSEQvMQo4NVdITldpcVMzYzhWbk1LQTJhN3RDZGpkWjlBOUNldUc0LythTndZOGJxajhkb1RpN1VIZDZoc2ZEVmRxUzBVR3hnU0EwK25ZMkFDCnBCeDFvQnNFQ0hNZ0xBamtjeUNPcERCUFhybFJZVjBwZlRwVi9zWjg3ZnZ6ZFIvRXE5K0wxa0FmQW5JMlYzbHN2dkx3RHRYZWFxTU0KL0g3N0p3TFVZbEZqQXZSUGlxQjlBaVNXbzNYUVl3SlVMcXdvNGZzRWlGUE1ZaFl4dUpsMDVYSnVZNVQ0K1FjVWJ6NmdQQWdFS0ViNgo0bUxaN25TWkpsL0dySkFWYzJURkFtbVpTRnB4eXdJMCtjclJ2N0lXVG5ZZ3dLU1NvREVObXFRK0dQSDFNUGFUYU0rUHE4dFBxTXQ5CnhKcTNYWnRQUXh1KzhpVjVRSUN5aFBtWUFCWHpDd3VFVTZUQU1BSEtGZVZzbGVXczBPYWdBbFFFQkNpcHZ2anZCUWhjWXZhenlGNmMKYWl0S1F2TjNxYmFDSEVNeE1HSWdRSG9kMjZSbFZ1dWg3dGhNckdvTFMxL04xbGxZUmd2Yll1SG9EQ3lwcnB5cHp0NWl6bHBjbTV0VQpYNXJRd0lodVpNYlgweGZiS253aG53a3NOZE9UZHRQdTJaZkhNaWwvc2g1M05GNTBtMzRhYVBsMjJQNmpwL21Yb1YyL2RPLytZNmlsCkRhbTc0cTcvYzNEdmI0NWRsMzBPaEFuUTN6TXh3RFBtT2hPcW02Y00vUGpzeDkxeUFWT2Z2N0VmVElDd1NtZXMySGw4N0Flekg1ZnAKbkZzUDFPZHJDTHJqQXRpUFczYlNOVGJuMENVNDRxbzZqQlg5d0c0djF2dFFmVkQ3Y1RIZWNtTXJUakd3Mk0ra2VUOUFmVWFCQWpTYQorUnBkZGpFVy9nSDI4emNDTkRiN1o2SUFBZnRCYmk1QTdrVzYza2UwQTZtcXZoVFo1VWRrMTlJVVF3bUs3aVI1ZTV6MDJnTGVseG1DCkp5eUsraWJKTHJ2d2dGMzJMNHZZSjBBQW53QUJnQUExNjI0UUlDQk1RSUQyMXlwZzJ6eHFTM0F1b2xGWVo2aXk2bm10TXE1U1VjRlQKbFlKZld4WWR5NkpqR0hUMGFqUS9hek55Nmd5Y2VnT25XYy9kcGEvYW8rZnZOUWoyR2tSN0RDTGdQYnZnb2pGSnMwWFNZQkhYV1VRTgp5cXFEcnp3emhBeHhGR3lnQVpIVUNFSVFidW55ZXhHbkFCbmt1WHBaSXoxTWR4L2IwODhCeDg1dWhyZm5ackNtcGxQbTZSU0FBMDlmCm1idXYwTlZmQnI0VTRoQWdpTHFuWFg3cVZKVlNzMmIyUERMUUlQQTJQZEFmbkdSSWVFSkFLSlZBd0FmNndYTWRic2J0MDlkdFdMdjcKOGFmL090OEdpMmJkSTFkSDJqLzY4NU05QjNjMVdpWFZTcTVOdzkxcEZUYWFPTTNWNGt1L25rTmNybldyMDRIT2dQZm53WDY0UjVmTwplT2Fac3RjTzVqLzc0cXAvdi9Mb3l5OXZtSkozbmt0Lys5L3BiejZmL3NZTDZhKzltUDdxUytrdnY1VCswc3ZwcjcyODh0VVgxNzd5Ci9QWlhYNkN4NlNsa0VpNDBOSUJNd1FNQldqVjdQckpSZ3dsUTF5WUpza2J4TGRvR0R3U0lRQ0RkTlQza2w1L28vNDhDaEdXK3NHdXcKQ0pDbm0rL3FyQVJBdWV5cTlGeGplZHFaU0NmYjI4MGY2ZUFOZDdEZC9aWE9YdlpJRDB5V09Uc3JnTk00ZXRsT0Z4TkJSTDNkMGlNZgpsbkhacVFzV1VuRUJ1TnNDOFRPQ1EzQkIrQzNaczJFRXFML01jYTE0dUljOUpkQzYrampEM1V6dlVKV2psOVBmUVhjTlZJTEx1ZlB1CkIvNUtJZ2ZmRXhsK1lZMndiNzBNQ05EQVdzSFFXbkhQUnFsN2xRVFpvT2ZlSDRzajRjZ1VPSktIUUlEOWdFU0svMFB6SXRkc21pMVIKTG43dWhhMWZmOE82MGxFMTZCQjVQVHpFeFVBUVBvSm96bDhRZlhBa2wxbTY2dDY3ZzhDanhaR0QvTUNuaDFMQ3cwaVJaSDkvUHdKdwpKMkpvNU5JVmExcjM3TDF3L2kvRTdRRS8rc1BYRU40YmY1ejg0VHppN3Erb0ZBVUhCMFpTOFVDYU9PWFJpRnMzY0pYbGJKYzRPb0d2CmlJYzd1TzZyVlVQWGVGTXljSTAvZUxYS2NaWHZjVEErT2xRVVRpYUVVVU5EUThGM2dac2VHUXluQUpDcDVJaGdDakhnNDQ5S1hiM2MKd2ZaUnhwY0I5VjVsOTEvbEF2cXVjQUM5Yld5TW5zdXMzalp4eDJWMmYyZnBVSHRSLzhWU1Q3LzB0WmRLeUNGVVRJRElWTXA0QVFLaQpFNmM1Q1lqVkhnZkVBUi9TSDhkV0M0QmpIMEI2TUJLMUo1TDBIeTNUdkppdE5vdlZGUnB0a2NUQUFnS2sxMFA3bVZLQVlGNE1GU0RNCmdZQUFpUlUwNEVCUzhTYUdQQ2RQenQ4cXJsc3UrWGVDOHAxbzlidEppcmRpdGU5SGFUK0sxbnd3VC9YaGZOWGJPelNOMVdaZXE1WDUKSHdVSWJzT28xdmdFNkdadDhNQitKZ3VRU01aRUJhaWNMaXd2RjlKS0JmVENTaVltUUlVY0RoQ2czQXJKV3JZdFR2VFVRNHFEbUFBbApLSGF0a3hsb0lpWmZWQVJiMitRTWpyeThTbDZJaTdibkFxSnNPVDRXMW1ZRGdBQk5DUkNkS1JsZkEzU3plcUR4akUrVEFaTHNKUmhMCnJIbkFPV0F3QnEzWFNhN0wzV2phUVpOdks1SG5GTXV5Q3lUWnVhS3NIR0YyampBM1Y1Q2ZMeWdvRkdRQkNrVForZUxzUEdnL1dWbVMKekIzU3pHekpsblRwNXNkME94YlpjdU1iOHhiVVowZkJLYzlGMFkwRmNiQzd2aWpOVnJyWVdwSnNoUThENkJGTWV6VVV4elFXUkRYawpSOWNYeHRsTEVtdkxVMnJvOGZhS3RXWWFYVXZYcVZsV0RjZXFZWUczM2JXR3lqb2pDd0EwcUJZMUlaT0pvVE5XYVBRMGtZcFdxaXhjClpTeU1hU3lMYXFYRHFkRDIwdGdtR3ZpV1kzZFZSTldYSk50b2FZM3MyQ1pHWENzanRvVytwRFY3Zm5QSnNqcjFhZDNiaU81Y1IrM1gKdmJhemc2Mi9EVGYvQ25BMC93RVlidjBUNE5oNUFUQzArNktQNFQyWHhuRTlNalFlWDJnSDROaDFjVHpPWFJjeDZRRUh3SGhHV2krZwpqQmI2VEVoNCtRUUllTTlJd3krUXVwOEJjS25GRFpPZDRVb3ZMeXgyL2g2TCtrRHBNWnpGV3IxUSt4bXRkL1lxVG5uaGVxL2pRSDI4CjRtT0k0QWpDUDR3Vi9TRGM5N0djRndDb0Q0VCtCbVkvM3ZMWE1QWDUrM2svYU94bjNLcXY3SDk1czU3MFpENHhWdklNaTM1RzJiNGIKTUZyNHZMVUY0TjNTREVBMk4zczNZYzFmMEg3ZytKOVZhUC9Yc2hySVVpaEFuaVZtOTJLVEs4MElHRjZzRzByVDlpOVM5NldxZWhlcAplbEtWSGNueWEwbXlpNHRrRitMRVhRc0VoNHJsVHpib25yWkxHNno4cHl4SzRERytHcUE5WmdrR3VMTEZyR2pRQ2xwMC9NZXJKUWRxCjRONk1BN1hLL1dNRjBUQUxoczROYWpiRExKaGRYMm5XY1hSS2hsYk9OR21xN0FZZ1JoSWdUOEJ5bWcxaWNOeHFRb3VLVUZvdDhwM1YKaW9ZYUtEMUFvZmFicGZ0TWtsWWp1Qk11TUtkdE5WbVB2N3dMaUFXRFVZZ0xDQ1JPSXdVRzRKWS9OaHR4OEwxOWJIYzNHNDB4Y0FCSQpEOC9iUGZFOC9WL2o3UzFEQm1tSW00VjRSSjFYQklmZUx1SXo0dUptK1FNQkNnN3lBK3BEQ3NGSGhvS1BLTVRBWUR3Y1VFU0ttSEZiClpsN1dXKys4MmRmWDQvRTZFYmpreWZuNVp5Y2UzMk5ITjhEejl6V2EzTVA5bDl2K2lyZ3RQQWlQbzFKSXdUakM3bjBKQ0NKRm5FckUKb1ViY2JNUXR2VVY0aUZPRnVNUUl3djNxeXl3eUxoQ085NlVHNE1nQlJRL0VRZ0dDZzQvRlBXdUZnNXNWMzY4Q0FnVGV2ZU9KUkRJUQpvQjkvS0FXNkFQTlpmUk8vL1Z0aWZCblFyZUxxNHdHY1BUQjBCTndJY1lxUllTSDQ4TkM3SzZNZmlnakVCWVFFa3JJelpvODRxcHk5ClRGZnY5YWF6S2NGcXNjRmRnWHNZNmVVT2RUTGpaOTBkVEFCU1NJbWdFQytzcVhSdGtMU25DL3BXQy92V1dvYzJWQ0RaU21QTWFod0IKdnE3dXcvdjc0MmJjTngyblZhejQ0aFM3L1FyUE15SUNQMzNFeWZVT0FWR3JkSFp4SFowYzRIQUFjT3p1cmZMMkExRm0vdmw3NmY2ZAo2OVk4TmhQSVpYQmdTQ0FlVG1BS293TDh3aWlCUWY0d2QzclBYWGN6eWpsSFB2ek02Um9DSXVSR0Mrb0ZnaXJ3d29rTXU4TVBSeTByCml2RjRvZlNNZEhJR3JqRjdPK2xBY2NDSFE1M2N3UTdPWlBxdmNRZXU4SWV2c3AyRHZFOCtLd2tqazhpa3NMQlFVbWdZRVJoWUJDVWMKSEZERGllQlZldnhvanF0UGdJbk9aSHFoQm8zU2M0WHRvKzh5dTdlZDNuK0oyZHZHdlhxdEZIRklYam1RUzZCUXc4THdaQklCVHlWKwpmdUtUSXo5ZmlsWWVpOUljVGtTRFFEN1F4VXFqUkJsT1JCdU94K21QeE9zUHhldGdIQ2pLOE1rQ3c2ZlIrayszYUhaVnFSaHlUYUZFClI1ZEM5YUdyOVF5bGhxblNzbnlBRHdFS05XTThjaFVjQVNOVFZrZ1Y1V0lwU3lSaFZFbkwyWkp5cHBoZUxtYVhpdm1sSWxHbXpMQloKcWsrWEd6WXA5UmtLSlZPbjBGZkw2MkRUaGdTOGJYdmNwandBSEFqRHBvYllWZnR0cW4yMTZ0MVcxYzVxVFpOSldhZVRXVFV5SUVBNgpsVkNyRWl1VlFvbUVJNU54TkNxdVZzTlJLeUhBZ2VRS3RBeEl3UlRMR1lCS0tZTW5ZVEpGRmVYQ2l1S3E4Z0llTFpkWG5zMmxsWEs0ClpVeG1RUVU3bmFGOGhOZVFJdHo1cU5TK1FhYWhTMHFZa2xLV3RJd3JMK2NwS3ZnS2VwVzhnaStyR0JXZ3lSbzBLU0EweW1UMUdST2cKaWJHZnZ5ZlJPbllBMDJUWFdXUkRNMVoyWUVVbDBFSnNoZXVNQmFXU3ZESlpUckUwdDFBTVJRY1RJSWdnUDFlUW5Tdk16QkZtQWpISwpGa1A3QVE0RUFMZmNJc3Rjb2M1NnpGaXdwcnAwYlUzNWl1clNSV2JnWHNYeHRxTFl1c0w0eHNLNGhvSjRlMDZDTlR1NU5qc0phSms5ClB3bE52Y0VZbGEwa3lWYVJaR1BFMmNwWFcyZzBIVjJsWWRhb1lSczhFQ0Nic2FyZXhCNHZRT2hNSUxyV1VDNVdsOU9VUmVzTVJmRU4KcFZHdDVRbjFaWmdBSlRYU2tsc3FFdTJsS2ZXMGhPYUs2S2F5cE9hS3hZMFZVYnZ5WXBvWXJlWTk3ZVpQbkpiVHJ1cHpBODAvRDlmLwo2bWlDQWpUYzlEc1FJR2ZMZFFHYUtESFgvYVp0U255aEhTZHFQRk9DaFh3d0FicUovVUFCd3FJKzQrMEg0TEw5NkVLTG5WMjFZOU45CjBCWjNGNm8rbVAyZ3c1M1JxSS8yYXhqMVVaMmFzT0FDN2ZZNk5MYmRmZFIrMENuUGI2R1pyemV4ek5mNHdNLzRlVCtZK3JqSDV2MWMKdDU5eHUwNTk5dU1USUt6dXh5ZEF5RllvUU9QdFo2ejdIUldnMWZiL1RvQ3VKa211SnNuUEo0aC9XeVk0S0pBMnRDaWVxcFk4YVlhQgpuQ2tGYUtjSkNsQ3p0bXEvUll3SjBPTldCU1pBV052OGFMT1lXWVR0Um9XbDBDcW1Xc0hVYVNxdEZtbFRqWHlYUmJyTEtHcTBnbU5wCll6VzRwYmpWSk41cEZPODJnUzhCUDNlM0NlYThkdXVxNm5SY3BZbEpONWZrbVF1V21qYlZ2OUlNQktpc0xBZm5GeGdhUVFLMnNXcloKRFFMaytUOFFJSGVuZktTanl0SEZkUGFWZVlhQkJrbWR3K3FPcTlLdnpwUTg5ZFM2bk13SDdyMHRLQmlIdy92aFEwbkVVSElRT2N5ZgpTUEVQQUdkc05EdjJ5SkkwblZiOTlaZW5ZU2UxcStmd3U4K2FWZXhEYjc2SXVKMVBQbmtnQU84ZkZoRkNEQTY1YjNya21UT0ZpRWM4CjBzdjM5UEhkUGVYZ3pIMUxPSHJaM2lFSjFBZ0g0OXBWYnV4RGQ1R0RnOGxBZ0lqKzJYZlA5NlpyaHRaS0JqZkFNcUNoVFlydlZ6QW0KQ0JBeXpQLy9WNERnNkNEZkRDSGdzZ05WQUZpVTdkQnZXUlZEQ0lMOWVka1pzeEN2eEQzQUF6K095ZEx6OXdLVU91dGVIQldPcGI2ZApURDYza2R1MXBuSm92YWh2bzdSN1BRZlphSHN0S2Z2T0FGTDQ3ZUdSRkJ4NFhUMDBPK3liTDZzRys4MGVqMkpvc0dLd2p6Yll4Ump1CjRqZzZZWElOMkE4bVFPQVNmRGpTelFOV05IQkY2ZXBUZVJ6eXdYN3ArUXZpdDkraGMxbVB4Q3lJeFB0RkJ1Q0NDUGlBYVROSTA2WlQKZ3ZCd2RpZWVpb3VLU3pTWWEzLzYrUTh2QWdSSUJOd29NakxFeng4SEJNanRFZmtFcUsrTGdRblFaUFVadU1ZR2pCZWdUNzhvQzZlUQoveThFcVBjeUZLQXI3U1dlQWNIVExWdjhnMFBndkNVS2lSeEIvZnJUejRFQVJTbU96dGNjaWRNZSswOENkQlRZejVnQW5WaGcrQ1JlCmYySzd1a1VJVkVaVEtOVXpaRER3UTRlTXN4K2ZBRTF3SUo4QW9UQWt5bktoa3NaWGx2RVVOSTZjenBaem1ISWVTOEV0bDNOcENnaGIKemxLb09mWEd5ajJXcWxzVklJdFdxbGVMZkFJa2xiS0I5MmpVOEhKcUFaTFJlUkk2VXdUWDFCZFhsZVh6U25PNHBkbWNra0ltdTRoUgpEc2hrOFRkVTZkYUx6VHRrcWlKNUZXWS9iQmtORXlCZ1B4aTRXSHRlakMxM01wUFZaMHlBOHFja29iYjRsZ0FDTk9wQXFQZkUyWXRqCjZ5REFmb0NkZ0lQNDJ0SVlXMm1jdld5Vm9TUlBXa0tUNXBWSjgwb2x3SUZ5Y2tVNVdjTGNURUZPaGlCN216QVRKV09IYUVlbU9ETkwKa3BXRFVpTE0yeTdMV2FQSVdhOHVMREt3dUZZQnZZYWJZeWhlYlNsYlZsMENYR2RoWSs3OHB0eUY5ZkE3V2xSZGtGeERTN0dXTGJLVwpBbEtzSlltMVpRbTJjcmphM1ZhK3dsSldwQ3VYYXhnV0RUWUhpSWNKRUxDZjhRSmtOTkoxeGdxSmxzWlFGVzh5RkNiVmwwYTEwS0FBCjFaWEZOWlhGdDFTa05aUXZzcGNtTnRHaVdrcWltNHRUV21pUE5wVGV2N09rektwcDEzM2dxVG5iWHZNTll2Mnh2L2tYVDgzUHc0Mi8KUUFkQ0JXak1nZjZDN0x5QU1jR0VITHN1VDhrRTF4bTFxREdnOGFEcTQycTVNTkw4RitSRzljR0cra0RHNWJ4UTcwSExmUUMxUHdDdwpoSmN2MVFVWU1aN0YxQWRkN1BVMVhPeWwraHd3SWo4SmNFbFB1Q1RIM2FqNnVQblgwMTV1N250d3lPRm9vL3VibVBwY3ozejVZajlqCjRSL2ZsbFBmdkI5VWZXNndueHZuL1Z6ditSb3JmTVppUDJqZk95cEFvN0dmc2ZDUGR6MGEvc0hHLzJBQ3RMUjZnZ0NOTERJQUFScGMKcEJrdlFKMHBDaWhBaWZ5T1ZNWHZpMlFEYzZ2T2JxaHF0aXFldEN1Zk5JaXdoTmYxQ3VoeEF0U29nUUswMXlURWdrQlFnR29VNk9WMQpBY0thNFJzTS9GcERwVkhEVWltWktqWGJZaFkyMVNwMlYwdDNHb1N0MWFKZDFYRER4aDZ6YUo5WmRNQW9PcUFYQW5ZYitDMjZ5bG90CmVQOUhZeG1LTTZ0emw5c3lrK3EyTDdDc014NXNjbnFRb3Z6dE9EUzhRUUFDdEhRV01neE9reXlmQUhuKzF3TGs2aEVDSTBFR2VaNkIKQ21kL3NXdXcxRHZNOEF3eEVZY1FRZFNJVS9mZFdWWkQvZEsxcTJmTWdCc1VJTVFnUWdSbEd2QWhJaEcyTXZuNTRRajQ0S1ZMSHJuMAoxeS90RjcrM2FQZy9mZk1GNHZFVUZ4YmgvSERoVk9oUFc5YytqQ0FxOXhCM3VKUHA3cUdQWEdOaU52RFBHZTdrZS9wNWNDQmhmd1d3CmhLSWQ4Y0hvR3RSQVFzRDYyeDUwYk5FTXJSSU5yWmNNcjVPTWJGSit0NXlPQ1JDSlJMbHpXdkFQMzVjZ0RnRVFJRmZ2YUJycnYyQ3kKMDl3U0k1M2doemo2MWJHU2FnK2FYM003Rkd1V1BvQ0dUL3p6c3VZaWlOVFZ6M1Ywc1NaTGp3L3dKSXcrSjEwc1RJREFRZHE4KzNBaAp1SEFTYk4zNlpEMnpiN1BFdlVIZS9TaC9lQlBqOTNYbWxkTWV4aEZ3WVdRUzFkK2ZNZ1Azd1FjbEhtZVYxOFVlNnN2dDY4b2U3S1lOCmRZSm5XT2pvbEdDQkg4eCtmQ1lFQUw3aTZtSU5kWmIxWHl0eDluRzhUc1hJb0xiN3FtTGZreHN5TXU0THA0QlhRUWpzOWdzTEowYUUKNE1QOEFrbUJ3SVR1dk84T3FWeVNsNWVIMXJ6andZdW50RERhSjBDREhheWJDUkJtUDZnQXNRZXZDb0FBalF4VmZ2NVZlV1FvbFVLQgpzNnorVndMVWM1blRkYlVDYUZCUFd5VVFJRmRmMWI2YXRUZy9meUJBb1ZReVpVYjR1YTlPSC83cDRtUUJHbTgvZ0doNENRVW9UbjhFCkFBUUkrQkM0TWszN2JyYkdKbFNYSzdSRlVqMVRybWNCKzFIcXJ3dVFUMzBtTUVHRDRLNE1EVTJxTGhHcGl3RkNWWWxBUlFQSWxQbGkKUmI1RVdTQlZGU3JrQlJabGVhdUJ0OC9JaDZzTWEyWC9YSUNxZFRLRFJxeFRTOFlMa0ZyRnVya0F3VTBkVEZGWmhiQzB0S3Fvc0xJbwpuMWVZeHkzSzUzQ0syZVUwVGxFSmoxWWc0aFJMSzFreXBsaGFBdFFIQUdlK285d2dRRk1TVjVzN0paT1ZDR095NHZ3OVNTaFkrQ2R1Cm5BREYxUmRGTmNDRGVGdFJqTDBJSEN5ekZHWXFDb0VBMGFBQTVaV0ljL05GdVZtaWJHQS9Xd1ZaRzRVWmdNMmlIVnRGR2R0UkI4cVIKd0Z4WUlUOHZRNXk1UWI1am95YXZ3TUlRMml2Vk5wYldYRVEzVmVTWlN6WmFDaDZ4NW9HdkhtdW54OVpXeFZzbGdLUmFjYXFOdjhqSwpTYkxTRTZ5MDJGcGFqQTJ5ckxvMHgwQVRhdWttbUFWajJYUzhXbU9WM1F3RnFCWWRod2pBc21EQWdSUTZHbGRkdWwxZmtGWlhFdE5jCmx0aFFCa3dJQ0ZCTU15M05Ua3VwTDRscEtZcHR5bzl2S1l6ZlZaclFWUFNJalg5WS9TOUUvNlhUZk01cC9uYlkva09YN1R1djlUY2cKUUNpL2pYTWdWSUJRSm5qTTN6RFNlbjRDd0tWOGpGNkpTbyt6MlJmc2dUZ2JvZmVNMVA4R2dLTjlVTy94cWM5SUxTejA4ZFg2dUtwSApDMzFjcG5NZUl3cWE4eG9OL0tEbFBtN2xaMjdsS1V4OVJzVEhYTUtQZlJVL2JuVE1EN0NmY2Z0TlI5WEhoYXFQdS94MXozWDFlUW1DCnp2c1piei9ZdkIvTWZueDd2b0Q2WUp2ZU1mVzV3WDVROWJsdVAxdDJ3dkFQcGo2by9kd1EvZ0hxczZJV01zbCtNQUVhU3ROT0ZxQ08KWlBtRjVLcHJLYksyRkVYN0F1SFYrTXIzeTZVTjlZb25UY0x4ZFQrWS9ldzJpUUV0QmhrUW9DWk41UjZqNEhHekdEb1FiSVpYUEdsVgpBZ2VDNFNKMGJEUW1RT2hhREs1RkM5NHFNWUVER2JROHVFYmVLTnFyclhwY1d3bllwNnZjYTZqYVphcHFNZkFhZE94YURhd1FrdWpMCnlveUZteXhaajliQ2hSS0pEZHZpRzdjOVpGOXZlSC9YQ0lMazUyenhRd1VvQklkNzdORlJBUnJwQWVkTGNCN0ZRa0U4VDlkL2Z5S2YKZ0tPN3hObERBMThDbkZEZFhWWHVMZ0hTTFVLQis3RGNmV3pYUUNYaU5UZ2MxazgvWnpTMUxsNjViTVk5MC8zQll5UDQ0Y2doZnRQRApxVlFLZ1VBQTV6Ly9zNmMvSCt5OTNGcG43TDNhTnR3N0dMVmdZVUNBSDVYb1IvTEQ3YXBQUnhDaHM1c0JnMWk5WlVpM2VISy8xWCtnClcrbnVLWGZEY3o4TGNiR2FyV3Z4Y0xzQ0lRUWZrQlo1Vjg4MnRXT1ZlR2l0MkxGRzdONmcrSFlGUFlKQ0JBSkVKbFB2aUF6Njd0c2kKeENuMC9qOEkwR1NodVdVNjJRRHdnd1B5Q2c2QUFvSkxwTGZTTVNoOExQVjJmQkFzLzg3ZThhQnp1SEt3Z3dHMFk3TDNUQkFnY0RCZQpnQktpWmdLTG1oNGFHa3dKL3Z5eGN1OFdkZTlxSWJKS05aUmhLWjRialNQNDQ4T0NwcE9tQWJlMnQ2eEdFQW40cG9ZNkdQMVhhZEFwCmUvbU9MajVRekNGd09aWDlERjFqRFYxbEFHVUJOeDd1WkF4ZW93MTMwWnc5RlFBRTBmZjJTOCtjb3pjMHJIcjBrWHZJZUZqQUhod0UKZDNoUlFzbitnUUVrRW9GQURBd0t4RkZJMUJBL0NpWkFROWM0bUFEMWR6T0JBSUVQcDdRZm53QU5YV0VCQWZyeWREbDR2ZjF2QmFpMwpqZHQxbGRIZnh1bTlVdFhlUWZNTWlGcjBqL241QjRlSHc2Mm9sQm1SMzUwNSs5SDNGeFlxank3UWZoeXJHVTJCVGJBZktFQ0cwWG9nClh3VjBIRm9idEZMM1hLRmFKOWFVS2ZTbE1nTkxxV09wdFhTbGpxbldzU2NMRUx3R3F3MGFxNFlHWUJPRHBGcTZURjJCT2hCY0tJWWgKVjVWSWxhVmllU0d3SDdtcVNLa3NNV29ZZFNaaHMwV0dDZEIxKzBFRjZBazdiSWFkVW9Dd0NOQUVBZnJiQ0ZBWlQxcktrcFF5Uk1YbApnc0l5QWF3Skxxb3FLT0h6S2dRVkxHRWhVMXpBQURlUTA0VFNZb1U0bTZlb3dOUm5BcmNzUURkbllsbjBXSEYwMFpTTUx3QWFud0tMCnJ5c0YwcE5nTDB5cHpZK3J5NDF1eUZsc3pkbWl5eTJSNVpkSkljQ0JDc1Y1dWFLY0RFSG1GdUdPOWNJZFFJQTJDVFBBOFRZaDNBSUcKQkNnZjlzeG5aNHEyYlpadFdhM0xXbGxUc3IyMlRHUXBialFVR0MxTWxibWkwbGhjWkNqZGJHSXRzOGppTFpZRjVycm8ydXFZV21PcwpUUlZmSzRxcjVjVFdWcUFDVkJwbHA2WFZsR3cxbEhLMTVUb05zMVk5S2tDMUpnN0Fhb1FkWVlCcU04ZGlZcHVOTExXK1FxZ3V6ZE1WCkxiVVZ4VFdWSkRTV0pUZVVnSU9vUmxwcVhWbDhjK21DNXJ4a2UxNXlhL0dDUFNWUkRZV042c1loOWVGaDQrayt3MW5FL0VPUDdkc0IKNjNmUWUrcC9IbXI0R1I0MC91WVlkYUR6QUt3ZWFEeU9uZWRSSnFyUGVBRWFMejBZMEtoUW9QMk1HUS9LYUlIelNNTm9zR2R5cXNzWAo4b0hlVTMwTzRGdms3a1ZuRzQ3djgwTFZCeDN1TEVlSEhJcVB1MFhIM01LUGZadE54eFpjK096bkxTejJnMDc2ZVIyb0Q2VHNGWUNuCjlHV2dQcjRkRitpd0h6VHc0OXZ6bFhkOXh6c1crQmxiOHo1cVAyT3pua2VuSFY0ZmVJaTJmV0hxNDBtSDZ1UFowT0JCd3ovZXRYWFkKN0IvdmNpc0FzNThKNForL0VhQS8wMFJYVXFTZFNiSmZVNlZYb3dTL0xSTThMcGZ1c1NrbTJ3OFFsNTBHWVpOV0RBU29SVjI1Ujg4SApBblRBQXZ2Rk1BRjZvZ1lHZ1RBSDJvVTJ3d01IQWdKVW8rY1pOV3lOaktHUjBpMEtWcjJhMjZ6bXRLclo5V3BtalpxdTAxV0lEVFMyCnNhVFVVSkN2eTkxcXpWOVhrN09rTmpPK2J0dkN4bTB4VFJub2l2WHRjK3MyV2o3WTQwYVEzTXgwSUVDaFZJSy9IKzZSbGJNUng2Z0EKb1hVaFVJQ3c4L0hrOCtKL2g3T1hDVStpM1ZYZUhqSFNLL0YyQ2QyZFhNODFsaGVjWWp0WnNOMnNYK0FackhUMDBVY0dhWWlYTWVJVwpuam5OTXFvZlc1SVNFVUhFa1FLb2taVGJpSVRBaUxESUx6Ny81T0w1SC8rMWZ5Zmk4Wno1OHB0d0NoVW9TQVFwNks3d29KL09DVHpECk5FODNFK2xsdTN1TFBWM3dCSHhyZENuYzNhVWVOQklHSHNtSkk4WFVRRndrSEFFYzlIRDR0UE9iSlNQclpNQitIS3RGbnZXS2M2c1kKY0k4bUtRUUkwSXd3LzNObkM0QUFlZUJZNTRuZi9uOEJOZ242VnNHOHh3MnJwTG5ZTVpBaHBJYzMxTTlQalFrTkRvQUNsSjh6QjgwUwpjajE5L01uM01CN3NrV0FDNU9yamdZT29CZmRRaUg3VFNPUUFZc0NYajVRamErVTlheVdlak9ybWhYa2hKQnh1QnU3dXNBaWdyZVdzCng1eE8zVWgzb2J0RE1IeTUwdGt1Y25lS2g2OVZBZTNBMnJLY1hkenhXYkRyZEltR3UvbEQzWnloTGdZQXZiTFMwU0VFVCtsd0YyZWsKdjhycmt2YjJpazZlTEZXSWx5WkYzUllVZ01NSEJvVVQ3dzcyQjg1Q3VQTXVDcGtNVjZaaEtiQmJFcUNoZGo3UUwrY2c1NnR2S21aRQpoS0lDUkxpWkFHRmx6cE81cVFCZDRYVzJNK0FOVUFIeTlvdnNza1dCQWZqd0NETDhNejNpK3pQZnZmZnRuMUhLRTNDNmp3YldRVThnCnpuQVNnTnFQRHhnSGdya3cvYUV0bWwxMGpVeXVLVllheXVRR0xsQ2NmeWhBbUFOaEI2Z0FzZVFhRkJWZG9hSXIxWFMxdWx3TlpFakoKa2lpaEc4blZOSUJlejdSYWhQVndac2VvQUQxUkI2TSsvMUdBc0NMbzhTbXcwUm9nRlFzdGhXYktGUXlaa2lGVjBNV0tDZ0FRSUFCWApVc0tTRkRQRlJReEpFVU5jVWlFdXBrczViQm1kSXl2bUtvclp5aEtPQW5xU1FGd01CTWpuUUJ3WnpRY08yK0hsd3plUU1ONmVNeVdUCnZNZkh4SDN5bzF2bEoxVUxqZFlNWWNhREZnTUJrbEZTYW9xU2EyQjJiRkYxd2VMcW5NVGFuT2lHM05UYS9QWGdkN2U4b0VoYVVDb3AKS0JNWGxJaHpDMFRabWNJZEdURDhrN2xKa0lrSkVGQ2lMRkYydGpnclQ1eWRyY2pKRVczZEx0Mit3bGdTVzh0THJLbktNVmJxalR4cgpkWld0R2lnTFMyZGdWZXI1T1FiVmNuMU5ncllob2JvNnJzWVFiVlZFMllUUk5rNnNuUjVuTDB1d2xVWFhsYWRZU3phYVNoaDZta2JOCnNLcVl0Vm91SmtEQWZtcE1FTXlCTUFIU21vQW1seFpyaTVaYml4SWFnUUNWSkRXVnhqVVh4VFNXTFdvc2o5MWRHdFdVbHdhZTRaYXkKMkpieWJUVzh5K0tERHVNWGc3cXpEdU1QZzdYZkQxclBldXRnNnpzUUlOU0JmdlU1MEhEVG42Z0R3V2lRajNGTzg5ZVVZTkVkTE1BegpIaWhWVGI5alVSOU1mYkJnejJpSnoxaVZqOU4rUTZvTFV4L2dQUkR6dDJpWk05emk3bHRxZ2FrUHRCLzFGNk1EZmhTanF5M2NVbGp2CkRITmVhTnJMdDljZFlYOEF3SHJkSjlpUHQvdzFUSDFjcFM4RCs0SGxQbU1WUDZqNjNHQS9Qdldaa1BiQ2VyNThPUytmL2ZnR0htSTkKWDk1TkxUNzdBYmlCK3FEMjQxa0R3eitZQUdIamZ5YmJqek5WZnpNQnVweW11cElpYTB1Vy9McFkra2Vpc0MyYWQycTdZSjlGUGRsKwpXdlV3ODFXbjVEZXErSzJhcXQyNnF2MG1FWENnL1dicEV6Vktud0Q1RW1FN3plSVdJeFFnUUxXR3E1UFRGZUpTaWJoRXJDd0JiL2k0CnV1SUtYVUdCTm5lYlBtdWRLWE5aOVk1RjFveEVXOGE4cHN3RmpabFIySkpSdUZNaUk3NHhJN1p4Ky96YURlYTNXejFlSkdmSFJ2QTIKblV3SjhROFlGYUNSdnVzQ2hJYUMvcWNDMUZmbTZtTTR1MWtPbU9QZ3VycFk3aDQ2MHM5d2RGZTZCM2l1L3JLaDdteG5kdzR5VUlIMApWcnF1OFVlR0N0ME9QdUxWOXZRcTlmb1VVaENzckEwTEpWTEpvZWZPZm4zaHdpOXZISHdaOFNKTjlzWUFXUGRLSUFUaW91WVFIVU9LCjRhNVNZRC9BWUZ4OUZjT2RzQ0xubG5CM0NaRSt1cnNMbXBscmtOWGV6cDk3ZjBpSW54K1ZHSEliaGZUNWFvWXJYVG0wVmp5OFN1aGQKSnorN2h1a1RvRWdLN3B2VHVmOHJBWnJzSXY4UThDMjR1dGkrUkJoMkNhN3N2TXFPbVVQRUIrR0NBb0lMYytkN1hNTEJUdnBRQjJQeQpQWXdIZXlSQVdUQUJjblN6NCtmZDQwZkJoWVhndzhpa0k2a0Z5Q1pOYjVieHlkVE1PL3lKQkxJZjZUYllkZi9Zb2huZFhYTHdLY2lBCjBOVmQ0YmpHZ0wxc1BhaHM5Y0tCeStBT1I3cHZLQVB5UllONmU0cDZ1OHY3T2xuOW5jQ1dSTUJhQmpwNFVIMnVNRDJkNVk1cmhZUFgKYU01dW9Ma2F6NGlzcDR2MjdOTlpPemJQbkhrYkhzNE5DZ3FCaTJsSkFYNyt1UEtTT0k5WERJekgyUUg4NXY4ajdqN2dvNnJTLy9FUApwUGNFUmZlLys5MmZycDJTM3VoTnBGbG82Vk9TeWZUZWV5L3BDYjBKQXZhMnE2d2lpQUlLQ09vcTd0cDEzYWE3S3BDZW1VeWZ5ZjJmCmM4L2tac2dFWEYyLzMzM3Q1NVhYVFV3dUtTejNuZWM4NXp6OGVBREY2Z2ZFMWNlYkJDRDhGTVJyVm9EaTZmTkRBSkwxWCtHT3dMM3gKc2l0OXpQQ0l3aUVwU1ppZUFnQ1VrWkdSZWZNTlgzMzI1K01mL3gwQ3lIRWVidjZhU2o5NHpwVTR6aGM1WWNCMW1mMU1oZjFVcGYxawpnNlZOYkpFWUxVMUdPeHNBeUd3VldIRUFYV3NKak5EUHBCaXNmSU5WYUxDSWpYaE1abmdDR2JDVTFjUTNHVG5BUXdZTDIyQm0yRzJzCkxXMmlYZTFpZk9OcUZFRElRRUEvMXdmUTFFM1Exd0NRVE05Q0JnSytFZWxpb3VmaVhUNHNFRGpxMk1BWGcrZ0VhTUZMcW9zQ1NLaGoKQ2JSTWtCOE5vT0pycEtTN2ZzcVVkcEduVE5INDV2bUtqc2FLTnRyOEZ0cUNGdG9pSnd5NFdPcWdMTFBUS3R1YWlybzVGUjJDVlRaSgpyWjVDMWxHQmdRQ0FXQ3B5azdLZW9xcXJVOVZ1VXRadlZzSzFNS0NmY1FEQjhnL0ZRQ2FyYTZzMXRKVldkVkhibHRrdGU1ZmFkOWZiCmQrbGFOTFlPWlVlSHBLc05IbU9vY3NnWlZrT3R5YnE2UmJ1a1JWSGVMaXpxNGhac1pSZHQ1WlQyY01xNzJPQzZ2THQ1YlZzejA4RUUKUDNJQW9HNkx1Tk1oUmZScGR3cEFrSUhRcS9ZV3J0SENaRnZvcTl0cDVkdWI0SUQzSGZUeW5mU3k3YXlGMjVtbGUrbkZ1MmdMdHRIbgo3R2F0N3BZK2FlM0dOQmNHN1IrTVdUNFB0L3g1b1BzVGI5ZEhZMXMrOTI3OTBydmx6eUMrclg5RkJvSmUyZjQxTUpBUFNnaG1rb1N1CmxjRE92OFhHdndPMlY4TnMrMHRnKzE5UmlOYm13TlpvdlNlV1BzR3VMMEdpWFQ2bzBRZjFPRWZibkQ4S096NkVnZk84NEJiM01RdE0KMlBnT01kVXJwSUZUdlVMajlBR0pTTjlBRzkyaGZnU3ZZUUswMit0b2lFZDAvTURkWGlDQVBvUit3azNSWm1mOGxPZG5ZNDQ2ak9vSApwdTZxSVYvUjB3NG41bnhCL1NENlFQMXMya1hzZUFjQW1sVDdpYXpiRWx2K2lhem9BQUNLTC84QS9SQUFBdnBCQUFKQkFCb29zL2JOCk0zNDNYL0h0UE9VLzVtdStMWlQvWTVIc0dGYy9wWDYybXlXZFdqRUJvRU5PRlRCUUxJQU80ODFBNkV3Z0JLQ3RUdkVXaHdTZzNHN2kKS3d6TVpnTjFzN1grQVdmdENtZk44cGFheFMzVjgxcXJTanFxaWpxcjhyZlc1RytybmJXamZ1N1d1dUl0OVJVOWRmTjc0TmhVSUNIZwpvYm1kRHpoZTNoSENzTHE2aHhDQVVxYmpTMkE0Z1BBamhrVUlRSEN0NnVjRGtHK29LZXhtUjBaNStDcVlLREFpQkE5QzhEZ01lM2orCkVaWi9pQjF4aStCYTJKQWtCTlF5cUlvTUdqeDlFcitQam1HaVE0OHR5RXlHTy9aVDAwamdhWEh4ZzNlLytlZFhYM3o1TVFCUXphYk4KNElsN1l5NDgrcVYyOHgyUk1UbDRyRUw5REFwRGJyRm5XQnovVUw5K3dKZU1tc0hoOThHbENFYmtOWnZ2QW45RWRsWmFTbnJDa1hrMQo0WTFtNy8wYS94bzFkci9oajJ0Z0JTZ2pQUmtBS0MrRDlNSEZ1cDhGUVBHZjFiK2ZTUjhleEZ1aEkyN3BsVy9GYzI1TlQwdUM4K1FwCmRmY0FBSUdmTmVwMnVsYjhnd0owRVF1Z2ludCtSVW9ud1pNa3N6Sk9MMnowVjl0ZldrbWZuWE5UUWdicEZ4a3pNNU5Jdi9nZjB1ZWYKcUxFQTE5UEg5ZllxZzI2V1o0QU5CRE1LWGgxZ0JrZTR2Z0VlUE5WNlhEOElRTVIxd0NYMkRQTGMvWnhSNExNaGdYZElOTm92Y3ZjSwpYTjgyUWpjUHlQMERFbUNna1Y0YTdDZ2E0bU5oUXpobysveFQ2YmJ1Qnl0TGY1bWFtSFR6VGYrUFJFcmlNc3NRZ1B4OTZDeEUyQVBrCjZSVk9xWjlZQVBsSGhmOGJBQnE2SXJ0eW1ZY0ExTnZQQVFBeXNtY25Ua3ZOemNzQWYxRGUvL3ppNzMvOXh5c2YvbjJPNFZ3OGdHTDAKYzZFVUF1Z2NCQkI4OVR3QVVLWDkxSHo3YXl5TFVXSGhtV3cwdlFNQVNJb0FaSEJFeXo5VE1NakttVElHQ3hNU0I0NEc1K3ZNY051OAozc3JXVzVrMkUxTnZaS3JOSFBDbktFMWNjSC93TDlMZU51a2tBTUg4RUlCK1ZBVUliZVBDVFFNWkJBSklCR05nd01DM2MrVTZIb2hNCng1Y2FCSUErS0FoQWdENThEUU9FaE9vMzhRWXE3YW1mTXZIMEdRZFEzZFRwbkRvRlhiU0NEbXB4TzdXc2pUclBTVjFncHl5MlVaWlkKUVJvVzJ4cFdXS2ozbXB2bU83aUZIZEx5RnYyOUprdVZnVktub3pUQ0E0R29BRUROeWdhYUNocW9SdGtBVXEyQUxVRTF5cnB4QUpFcApPbXFEa3J4WndWNnRiYTB3UHozTC9PcHN3OUVTNHdzc3UwbldyalYzU1ZvN1dlMGQ5TFpXanNVdTBwcWw5VTdlZzA3bWt0YW1raTVxCi90YW1ncTNOeFYyczBvNG9nTzVybzlQdERPRGNEaU1QQUtqRENRR0U5SU1BUk1RQmJtaGg4UzFOYTl0d0FPMmtJd0NWYjJNdTZta3UKMzlsWXRydHAzbTcySGJzNXREWmRyK0Zwci9FZGovNTl6UHBWMlA3RmNNZkhvMXMvOG5YK0VldjRqQUFRRENvQ2JmOGFCcS9jRVBXYgpId3l4ZlIwZXF6Z3VIaEFBSUJTaTVITWQvUkM5UGhQNndYZDR3ZGovRk5QcC9FSEUvRUhZZEJFRUxYamhIVDlRUDBIRm0wSDVHMEg1CnFaRHNqYkRrTkF5YTdTVjRiWXgvSE9NZEIvUUpjbDhLY1dEQ2JFaWYyTnBQR0YvNUdxLzlSSWViRXZvaERucWUwRThVUUZIOWdBRDYKb0V6VWZxSXR6MFQ1WnhlcS9jUUNLTEltT3Z3TGxYL1E4VDlUQWdqb1ozUStMUDhRQUJyRWkwRERjNjFEbGFaTEMrVGZWa3F1ek5kOQpWNjcrYTZYczA5Vnl0UGtMOWYwZ0FBSDliRFdLMnRYQ2JVYlpIcXY4Z0UyT0FIU3dWZnRvcCtsUlhEOElRQ0FBUUh2eDA0QjJ0RXEzCjJpWGc3NlRkSWhSYjJSdHQ1SG5PelhQYTF4ZTBiaTVxcnk3cHJDM3JxaXZ0ckMzRkx5bzY2NVowVWhaMWtDczc2c0NyNFArZXhWdmcKK0xDeUxYWDVQUS9aWHQ0UndEQXlkUk1wSVRrbkV5NWNyRnAwT3dFZ2VBRE1PSURpbjgwL09mNStlWGhFRlJ4U2VQb0Y0RG5xZC9IaAphdGNvSDU3T01xS0l1TlQrQVJuOGZYMVlBdUFDYTFGOVFzeXJIaDJnaDBLYVo1K2dwNUFTczFOdXpzNGxwYVdsZmZqUisvN0FTRERrCkdSb1l2T3UyMjdOU0UzUFRTYW1KQ2UxdDZ6Rk1qTGtOb1FFK0FGQmdSTzV4UnhkeGZrUkcyUDQrYmdSZUM5MERxaEFtc3R2V0prK2YKbHBPZFRrb21IWnk3SnJqQjVIdEFHMXluQlFCNmJ6V0hBRkJPR3VuaSs3V1lYd0VJOVY4RUVNQUsyclFGWHZvRzRiYzZDQ0RybHZaKwpLNy9uMXhtcENTbEowOVBvMUFJTTAvbUhlZEFpY1hjZ2dnRGtoeTNKRXdBcW1mT3JuTXlFckJuWnBEVFNCL2VKdmw0clg1dnphMUw2CnRCbTVpVmtKMlRsSjJjODlUd3VIMVhDcjE2QWdOS1FDZ25IM1Nid0RhbSsvRlA3dEd1RjZldm4rZnVXVVBVRHdMYjJpUUI4KzkyTVEKV2djZjFNWHhEYkVEZy9yQWtIcm9lNDY3bCtjZmxvMzI0eWYzOUN2Y2w0VUJUNU5yZERPRzJRODgwcENhVEVwTnl5SWxwdkJZNVdPWQpCZ0VJZkFnQWtMdFhCZ0FVVHg4UUFLeVJYaTRCb0l0L1lzNmNrUVZka252TlhXRHg5TGsrZ0FZdlN4R0FoaS9KK3dkNVkyNk5ubmtQCitGbUF2emZaMmRrMzNYckx2Nzc1RmdCb2x1NU12djJ0RXR1MXlqOFh5cHhuUzUxdkZUdmZCaWwxWGloM25KM25PTFhRZm9KcjBhZ3QKVElzVkFJaUxBR1N6OFFDQW9ndGVWd01JZGoxYjJFZzhhTE1ZQVNDZGhheXpVTFZHdXNiRTBCaFpLak5EWmFhckxVMGFRNVBFd09DYgorR3l6bEd1VXFTenFqaGI5cmxaNGR1dVBBbENiVlJ2ZkJBMTdnSzRKSUg2TWdkZ0VnT1JHT2dTUWxxM1E4RlJxcmtyTlZtbFpLajFiCnFvR1Q3U2NCaUt0cEpzVlA0NHBtQy9sSHBieG42b0QvRkY5R0t1bXVMK3FzTGVpdUsraHVLRzJ0VzJTcVhxMnVla0JSczE1Uis2Qm0KNHdZWlpiMll0bDVXdDBySlc2RGVWcWg5NFI3OUs4dDBQUnUwSXFheWxpOG5NNVIwc3JhaFhsdEhVZEpxbFhVMWlscVEyaGo5Z05CMApkUlJWYmJXeWVZMjJ0ZFR3d3AyRzgzZnEzNXVyUDcvQWZLVFd1c2ZrVUcxdFkvUjBNSndkUEh1cnFOVXBBaTVXVzFsTVcvTUdKMjFKCkd3VXdhTzdXcG50MjBHL2ZTUWJmallkYUc3bVdab09KMVdMaHRObzVMUzI4ZGpzZlpsdy9iZU94dFFndERyN1l6S2kyMFpadWFTeloKQTd1ZVM3ZlJDM1l4bDJ6bkZPeHVLbnlZbkwrN2J0NHV3WG5OWTVqb1hZL3BIWS9sRDE3SEh6MnRINCsyZnpMYS9xbS80M04veDVmKwpMWDlHd1JrRWw4Tmc4SzFoVSticVBwNkpvUDhLUHpCT1BMSG9JY1JEbkdTSWp5K05IdVVNRW1xOWFtYzdXdTBpVGpVY3M4Qk81NGpwCnZZZytlckRobUFhUDZxMHg1VlVUM2VFV2R4UTQwZjBWT05lQ2R4UWZhd29Ydk5BeFB4UDl6c3dYOEdOK2ZrdlVmc0tOc05rWmhOanQKRmR2eGd6ZjlSTmU4WWdzL3NQWkRUUGpDZDN2Qk1lOG9hT3Y3K09MWCtOU0xMZEdkWDZ0Nll2VVRXZG9XV2VJTUwzYUFFQWRBZy9qbQpXeENBaUNVd29COEVvQ3Z6OWZnU21CYmtlenpmVldpK0xWZWZaa2gyZHhoMmQ1djJPRlI3elBKRE9tbTdpV2N4TWJkcHBMdE5pbjAyCkVIaDBJUURRNFhiOTRUWkFIeVBJUWRnS0RmTkloK0hoTnQyK1Z1MDJwM0s3VGQ1dGtiVGE0R3hVdnBhMjByUnBkazhWK1A5WGNVZHQKVVhzTkNMZ29hYTh0QmVqcHJDL3Zvc0Iwd3dvUW5wcktMZlVnYzUwYk80L3RqWXhoTkFxZGxFREt6RXhQbmtaYXNlSld6Q2NMdThEVApqaHNZNG9Ibk4xRUh1bDRHK0poYkdoZ1NnRi9XL2FOaW4xdmt3YnVJd0Z2aU0vbGpmeWl3T0FRa01jVER4cVFIRDI2ZUJtc3dxZGxwClNWbnBDUi85NmVOUUVCdkRzR092dnBLVVFzcktTc2hLemZsbER1bWZYMHVBcU1hRzFhSEI1dkJRYzNCUTZjZFBDUHh4R2VRR2h6WCsKWVU1Z2dJRU5xOE1lM3NXTHRPd1UwZzJreE1UYzVMV3o3OEVlTkdIcjlKNzcxS01QR2o1Wkk3a2hJelVyTXpVck96VXpJZm44R1NvVwpGa1ZjY21DTHliZjlvUXg2NGNuTFdMODRkSms3MWkvRStrVGhTK0F6Z1k0Qm1JT25ObC9tUm5yNVkwTmlBSkhSNFdodDVsb0JONFFuCkR1RGZkdkF6eGJ6U3I3K1czbnB6ZG5wYVlpSXBtVWtEQUpJQmE4TEdyTGlQUlNIS1AvQWFEK3FETGlpOEpTMkRsSjZjZEdOU091UCsKKzB0dnVTazNDZndJY2pKeU14TklKSVBxWG16TUZoaHQ4UFp6ZlgwcThFY0FoUDFnQUxCaUlyeFdBSjBuWmJTUFB3cTBPaWdiQkYragpYM2g0Ni9Ma0JOS04yZG1rNldrcVdVa3dvSGYzY29DQnZFTndDV3prQ3ROM1dSR3ZINVNSZnI3bmlzUjNtUmNlRlgzd0orWk5jQjk4ClpsWjJjZzR3VUhZYUFGQnVYbHBXYmxwR1N2S0Y4M1hnUnpCeVJUaGxYTDBpZERGOFdSQ2JRZGdITFJ5OHdydDhoZTc2WGpqV0s1RTEKVmlZa0plYms1S1NrSnN3dG1EVThjdVhBZTVkdlViOVdZVDlUWUw0QTI0Q3M1K0JwaC9ielY4VUpwMkVVMlUrVjJ0NHNzcjgveC9IQgpmT3Z4OVpZOUNoTlRaV0hyYkR5VFhXQUdzY0pKcU9BZkNvdE5nSUxlWXJMd1VPd0dsY1hDTWRvWU9odGZDNStKVkpXRnFqQUtCQllHCnc4SnRNRXMzbWcwUG1oMFBtam8yR0xvMzZMclc2QjVlb1QrNFFuOTR2dTZwU3NPempaWXRQUzN5aHp2azREZTBBNTM2NkM0d3RQOEwKRHpBUUdnaS9yOU95dDhNTUFJVG1vY0lLa0VsanQraE5SbzFHSXdFR01oc2xGcE1ZblFSOTFYR0llQ3UwQnUrR1ZocGdGSG91d0JEaApJWFRBRDN5akRsNG90UnlGaHEzVU1XUWFubGpINHhvYW1ZWkdsb2JIVmJLRnFvYi9Hb0JLT3V1S3V1c0JnTXBhNnhhYmF3Q0FnSDQyCkt1cldhNm8zeUdnYkpOVDFzcG8xU3NaaWRXZVI5dmxadXVNTGRJODhvRFUwcXByWWNocGQyZFNnQWRhcHBjaXA5WW82SWczS2VyS3EKZ1lJUHphQnFHaWlxNmxwbDB4cXRzOXp3NGozR0MvY1l6K2ViVHBRNm5uekEzaTJ4UzlxY2pLMnRySzQyT01qQzNzSnRhUkdZblh4cApDN3U1aFZuVlNyKy9qWDVmUjlPS0RucEZOM1ZsQjdYVzBTUzBNQUNBSEJhMnc4NTJPQUNEZUcwT1BnZ3lFQUVnd0NrQUlLbVpXV3VqCkx1OXBMTmxGQndBcTI5RTBienVqYkJlemNtZFQ4Uzd5WGZ1bzZsYkQxNm9YeGlUdkVBRHl0bjdvYmZ2RTIvYXByLzB6WUNCZno1Y2cKOFFZaUhETXBVZTVzKzl1a3hOSUh2dHZXcjRnZzk2Q2dTZzlNeHhkd1pqdk0rTjZ1dHM5Q2JSL0g2Z2N0ZUNINmhNeXczb00yZWFGagpuY1A0UHErSThod0lXdk9LU044WTMrZjFPbXAyeG8vNW1kQVB4b01uSEJJQWl0SW51dkkxVWZzQkFFTDZHUWZRVmJ1OXhsdWU4WTZmCjJ1aFJoK1BMWG5EQzEwUy9Nd0lRUHVrOVZqL0V0aThJb05YUjJrOEVYL3hDK2drdmFTVUFGQndIRUtHZkh3V2c5eDhTUHFIVEF3RHQKZDZnT0dpUzdEY0pXQTY5TnlkcWhrKzh4S3ljQjZORjJxSjhwQWJTOVJiWExydHhpazdYWnhUYXJRR3lncnpQWEZuUlZJZnBFQWRSVwpBd0EwYmlBeVpGQTNTRzFzQUlBNlh0a0RBRVJ2WkFJQVpXVmxSQUhrbHdNQUFmMzhtd0FLdThTK0FmaWV5RGZnVmJSM0RQM1huK3dlCklyRUFPbkJnSXdKUVRucHlibWJheGZjK0FQd0pSY0lxdFl3MG5aU1JtcEE4TGJYNmdkdGRMdTJZWDRpTmFNSkRyTWdJQndBb01GN04KK3ZlRHVRWCtRUVVRVEdSVUVPcVRZWDcrUUwrMm9tUm1Ua0pLUWxaUy9zd2I0TUNIMVhBYmZQZ0J3NS91NDkyWW1RWjNnV1dscEU5TApQSHU2QVFzSnd5UHdqTUg0Ty85UVJLRi9zWUI3TUovUzU1UDUzUEQwSGE5YlBEek1IeDJCVytRaWJpa1FFaHBkRG84c2lpTkxiSUp4CkFQcmlDODZ2WnFRaEFMRWFDekZNaWc5VnZXWUZhRW9BZ1FkL2Fka2RDUUFadVRrM1oyVGRRQ0w5S2oxaFJucEtabFlPME0rbURiZjIKOXpwR2g3bmdMME5nVUE3WHZFYm84ZHlKejM4RW9GNU9zRjh5TXNqRGZNTEh0cXhJU1NUTnlNNGlrWkwwNm9wd1dPL3A1OEZscjBGWQpBWEwxc3Y2TEFCcTRKQmorWGpCNFJkRGJ4M0JmRXZuK3hlZlhGU1VtSitYbTVnSUFGWmNXdUVjSDkxejQxMjI2VXhCQXRuZWlaejNICjBDZDZBTFRqWElIOURBSlFvZTI5T2JiM0ZsaGYybWplcmpTejFGYk90UUNFWG8wMWtORU1Yb0pydnM3TVZab1pBbk16MHlocDFEc2UKMUQreFZ2Zk1jdTJMaTNYSEZ1aGZyVEFjTHpjY0FRL1dDc1BMeGNaanBjYWpjd3pINTVwZXFiZnM2R3lSNys2UUFBQTkwbVVnMnA5LwpNb0RRRmpBVXRCRU1CUUVJR1FoWUo5WkF5RDBFZ09DMWhpM1R3bTN6UWgySHAyRnpOVXcyUGtTTHBtTDhsd0ZVMUUwdWI2dGZhcXBaCnE2NEdBTnFrck4ra0pHK1NOVzZRMXErWGIxcW5wQzFUMjBzMVQ4L1d2MWFpZStsZXpkWWFsYVJKMGRTa29KS0JmbFIxTkJsK0VPSjQKS01vR0VLb0s3cE9uYW1nQVFQVXF5djBhNjN6RGtUbm04M09zcnhZNW5pcnMyTFdreFZKcjR5bXN6VzBPN3BaV3ZCbW9qZGtPSjFydwpUYTA4ZFF0WDRtVHg3RXkyclpsaGJhNTJOcEVkZEhBdE16ZnJ6U3lMaFdXMU1tMDJWb3VOQ3dJWUJBQ0U2Tk9PN3dVREFMSTVCT0N2CkhkbEt1N2VUVnI2enNYZ25CTkRTTGJTNWV4c1g3V291M0VHcDNNVjlSN0VySW52ZHJYamJhM3pIQndCay84RFQ4aWRQNjhmQVFBQkEKZ2ZiUGZWMWYrTHUvQkptU1FmRUpiUGxyYlB3OWYwR0ovbGNpNCtJQkFUZEg2QWwwZmdIY2d4SnEveHdHYi9FSlJ0ZTVQZ282UDR5bAp6MVhuK3NCSlh1OEc5ZStFZGRFdDdtSFZ1WkFTRHJWQUIveUVKYWRENHRkRG90Y2l3dGZDZ3F2MGc1cWRNYzd2UWE0NjRqbjJsR2VjClBySDZDVk9lQkxsK3kvTWsvWUJNNkFkdStJTDBJUUlCaEM5N0VmcUpyT21KM05kRjZDZThmRncvaTZNQUNzVUFLRlkvSUtnREd1bW4KZi80MUFmU1BlY0xUZFBXZVZ0M0RUc1VocmFETHlHdlY4YlpMQlh0TTZuMVc5Y04yWUNEWUJuVEFxVHpVcG9zSEVNaitkajBBME01VwplTWpoVnJ1ODNTRjEySVFxRTZ2YVFpNXJyUWJvUVNtS3VZWU02cWhCeTJGNGFvak1iZDNVZW5SWEdNTzRiTUVrQUVYY29uOGZRUEFVCm1XRTRsUlBxWjFBUTZlZUhlcmxZZFBVSHZ2RS8wVTl3SEVEaFlUNkd5ZmJ0ZTJqNnRDaUFzdEpTMzMzN0hRekR2TjdSc3ZMOHBFUlMKWGxaMklvbDBZTmNEb2JBeU1NcUtES21DL1p3eGx4QUM2TWRYZ01aY1hQOGduQ2FCK1JUK1hzbVloenVHV1Rtc3VVa2tVbnBtMnN5TQp0SStYY3lOcnRhN1ZNbXlOK29NVkRBU2dqTXprVk5MMFV5ZXFzYURncHdFSXU4ei85dFZsM3g5ZDR2Nm94dmN0RXg3Q05Db0QraGx4CkMxMHU0UWorQ1BjTzRhdUg0THY5UTcxTndSZ0FnUjhvQU5ERjl4dG5aaWFscFVJQWNlZ0FRQkwva05nM3hJMy9XSlJyQWFpczVQYU0KVkZKV1d2TE1ySXliVWxOdVRFdkp5MHBQVHB1ZWYwZlNYNzdVaE1OOHp3QVRidG9hbG80TzBQeHVSangzNHZPZkFNalR4L1gxaTBjRwpCZGd3Ny9HMlphbEo0TzlESmdDUTFiUWdFdEdCbThObHJ3RXU3S3J1WS85WUFHWG5wUHpzQU9yclk0MWVGby84bFVWZlB5c3BPVFVuCkx4c0FhTUdpU3EvUDFmWGFWM2NhendJQUZkcmZuVlQ0Z2RNd3JPZGdUY2grTmgvUzUzU0o5UTNncEFMYmhXV1c1MnRON1dvelcyUGgKNk8zOFdBQk5vazhzZ0RTMlJvTlpZREtJdFVZVzM5aE1OaW9lMEc5ZnFYdWkwSGltU0grMlFIK2hRUC8yWE1QYnMwd1hicmVjK1kzbApOTGk0MC9UT1hhWnp2ekcvZGFmbDlHYmJ2clpXNWM1TzBZRk9QUUlRV3Z3aTlQTVRBRFNsZ1RUalJhQllBeEhvaWIwRzlNRVBzT2J3CjlVMDhMWU92RkFoa0RLYXl2bHJOV0t2Vy9kY0FCSDROaFF6cUlsZTJRZ0N0VTFkdlZOUlZxUnFxNVRRQW9JMnkrbzJLVFE4cTYxZXEKTlJXYXcvbmFrM04wYjgzWFB2bWd5bEt2WUZPQmNwUzFGRVY5bzVRS0dFU0VpcDhUVGRNMGdGRFZkSnE2aHFLdVg2ODFMakk4VTJnOQpVZWg4cnJSOWEyR0hwYXhOc2JTRlVldG9sam5nWU1qT05tNUhHNzNkeVdseGN0RmhoaFk3eDJpRm0vcDBKcWJVekpSYldDb0xVMmRoCkdTeE1rNVVGQWcxa1lkdXRIQWRna0FOT2cyOGIzd3ZtYUJNNm5VTHd6blJ6NDZvMmF1VjJXdWt1MkFPMGFCc2xmdys1WkUvVG5PMTAKZWFzcEtIZ09rNzQ1b24zWFp6anZOYi9yczczdmMvN0oyL3F4ciswVGZ4c0VFQ3dDZFgwUkRWNE5JaVEwWlpCdjR0OCs4UTVYb3lmWQo5UVZJb1BQeklKNUFCNzZ4Qys3dGdrdGRpRDVCNThlUVB1TmRQa1NqRHp6TkdhLzNoQXh2aDdRd1FjMWI0L1RCVC9mQkQvZ0pTaytqCndnL1FUMWh3UElRUHRZakF3VjdSRXc3aFZxL3h3Zy9HQXU3NUhVaUVBWS81SVRaOHdXVXZmTU5YdFBhRDczVVBrOGYzdWwvVjhqeXgKOGhWejJBK2Fid29uZkJFYnZvaURudUZaei9pUlA2anBCeDc1ZzUvNk0xSDd3UUZFNkNlOHFBVUE2RHI2aVMzL0FQMU1BdENsZVRyQwpRUDJGaWkvV3FRNXBOVHNjMGwwNnRsWGYzS0VSN05XcTl0djArKzNhL1E1NFV2TmVLOW9NcjUwRW9FTmRKZ1NnaDl0MHUxcDFlNXphCmJRNEZBRkNyVFd3MmNSdk50Q1cyNmxMQW5kWnFJa1hqS1c3ZlhOeGVqWmJEWWt0QmMxbzJPbjYvSFFCSUpsRUNBT1ZrWjZaTkk2MWMKSGdWUWNCZzh1ZEdFQlBnUXZRNkQ4RE9kUmY1Uk1YZ0pEMDdFSDdwaGp4VDg5bzgvZEtNQXVzNGRmaUF1ZkIvVGlBQjhwcnQyclFNQQpnbnVTQVlBeXN2LzR3ZnNBUUgvNTZ4YzVlWWx3Z0VibURUbHBwSTh1TWtOQi91aFFFM1JQUDM5c0JCWWhZQWRNL0oydm0vQVFBenk4CmZlQXpkMG5DZzdLZ2l4RUpLUThldkpjRVBvR005S1NVeENjck5tT2JUTU9yQk5oYXplZXJPRVFGQ0FEb3RXT2JzSkFRRG5uNENRRHEKRXc2OXZOUjdxQ3owNUlMK0o4dUhqeTBmKzV5Q0RZaGczSXJRaUhoMGdBY0NKMzhOd2ROOTRza1NtK0FrQVBsa2I1MnJ5MHROU0U5TApTaUlsOHhqRkdDYkdBZlFEOTBIeGpmY1NnZTlKUmVsdEdhbHdUOXlOT1JrM3o4aTVNVHMzUFoyVWtVTTZmWlF5NWpjR1hHeDQ5bUMvCnhEZEVpM2c1cmw1NGROQVA1ajhCVUtDZjV4MEFBQkpoM3pFT0d4ZWtKVThEZjZWSjA1SmFIWXRDSVJYNEF1RzRyZ0VlOE0xb1A4dDMKV1JaUG4zZ0FYZndqWTJZdTNKeitNd0tvSHo4REdsYUFlcG1lSzdLQkx4bDFxMjVMU3M0QUFFcE1ubmJmNnBWZXY4ZjAydy91Tko4RApzaWx5dkZQaU9JOUNiSG92c3AwREtiV2RMYkNmQXdZcXRwM0JoNlNlV1cxNWxHNDJ3ZzNxRm56Zis5VUF3dmR3VFFFZ2hhTlJaK1liCkFDQjBqWTA2NFZydGpubUdsd3ROcHd1c3Z5ODJQMTltZkhLZThiRks0eE5scG1lTHpFZm1tRjh1Tkx3NjIvQjZ2dkhWdTAydnp6RzkKV212ZDA5NmkzTjBobXdTZzJQd0VBSmtNRXdBaURnU0NDMkU0Z0VCVXVpaUFpQXNFSUtRZmlaWWwwTEk1T2pvSVQwWG55eHFwY3NZYQpwYWxDdmY5L0hVRFFRTjBOazFMYWRSV0FsaGtoZ0RZcDZ3R0E2bVMwS2htNVNsNjNXYjU1bzd4NnJWS3dRTE9uUVB2YW5mcjNTN1JIClY2bDdxcFZDaXJLaFVWSFhKRytnSzhoMFZjT1VJV3ZvalpwYXFycHVvMWF4MUxpdnpQNTBjZHV1c2s1VGVadTBwSU5YM01GWTFONjgKb1pVdGJBSGlZWFcxMEZ1Y2JEeGNwNE5qdDdOdE5wYlpCcmpEc0pzNFZqUEhaSUVrUWtFR3drdEJiTHM5Q2lCaU03eXpYUVRlWXJGdwpPSmJHQjFvb0M3ZkNJaEFBVU9udWhyS2Q1THYzTmMzZkpucFR2Z3NUSDNkTFQvbTBmL0RxMy9JYUwzaXQ3L2tjRjVHQkFxMmZCTnMrCjg4Rm1vTTlRZkYyZlI5UHpSYnhzWW4wenFjQkRCSlY1WWlzOXlEM0VudmFyTjNiQmt3ekREa2dmaEo2UTdTSjBEMTcxd2VrejN1Q00KbDN4aTZZTlhmVTZCRUd0ZTQvdmJyenJaR2QvcUZWM3d3cXMra0Q3b2hFUGltSi94RFYrQVBzOUU2VU4rRXRFbjJ1K005SFAxYmkrcwo1bUdRc2Vyb2VLL1l2ZTZ4MjkzUm1JdUpydWQxVzlDZXIzajlvUExQUk9NenJoOFFOUHVDYVAwaHlqL1I5dWNGVXdNSUdRZ0NxTVJ3CnFWSjFwRm0relNwdE4zSE0ydVl0YXVFZWgvRVJoL0dBUXdkSGx0cmxBRUQ0Wm5qTmxBQTZnSytDN1VFQXNxc0FnTm90WXFkSndEZlIKN3pmVlZyVFVsTFpVb3dBQUZiZFVGYUswYml4cXF5cHVxeXRwSjVkMndINmdpbTV5UlUvRHJOYU41aGQ2QUlBTU9qTnBlaFJBOXkyRApQVUFFZ0lpbjhuWDRFaHFBQUhLUENrZGRzQTRFM3VKMUNZZmNVVHo5WEFBYWN3bXhNZW5XcmZmRkF1amlCN0FDZFBqUkE5T21rN0lCClB4S1NGMVRrK2QyS3NRREhOOHlNdU5UZ21RMGROaVRCZTRyajduemRZRzRlUFBzWWZEa0QvTWl3Tk9SaWhRUGlUejlyeXJzeExUY2oKbFpTU3dMbTFKRVMydWUvalkydVZuOTBMQVpTZGxaYVZuUW9BZFB6bDlWaEVEQUQwRTNxQXhvWkZJOGRYQlBZVVlYdkx3ZytYK2crVwpqVHhSMGZ0c3BmL3NnOWluTk94N1BqWWlneEFaRVhuN2VhSCs2L1VBNGVjN3c0TUVZd0gweHFuYW5LU0V6SXlVUkZJU24xbUVZY0EwCnNDczUvc1BqRXd1Z2hmUHVUSjVHQXQrS0cvUFNVNUtucDZZa3BhV1JiQzNyTU13NjhqMDNQS3oyOTBvd3Q4aDFoUktFRTBNMThkeUoKejM4SUlNK0FlSFJJZ3YyWmVsQldscEU4UFRzN2MvcTA1QzNkeS8wQjJUaUFCQWhBM2t2U2VQcGNCMEE1dWFrL0k0RGNWNlFBUUpjdgpNNzI5eWl1ZjBqY3MvblZpWW1aT0hod012S21tMmhmd2l3NitkYnZoWEtIcFpJSGo3ZGhSR0xHblFwZGJ6eGJZM2dJR3dzOC9QRjloCk83bkJ1bGRrVWFDemZLTDZnY2RBRXdBQ0Z3SWlhTm5MYU9ZcGJIdzRBRlZINDJ2cG16V09SZHBYNXByZnU4dng5aExEczh0MSs5ZG8KT2g1VTZ6ZW9OUnZVbGdmVjNldFVlKy9UYkZtdTJibFNzMk9KN3NBaS9XTU1VeWY0WmV6aGR1M1BCU0FMRGlCa0lNU2dxSUgwZkJCawpJTVFnUUovWUlBQ2hBNk5CdVBvbXRvN04wall6TmJVMEpYV0QzTHhBL3RqZHFxUC9OUUJWZE5hRGw2VUFRTTY2RmNhYUIxVFZtNVgxCnRTcHlnNFJTSXlkdmtqZFV5K3FxcExVUEtwaUxOVjFGMnFPM20vNVFxRHV4WEwxbmswcEdWVkFZY2lwVFFXT295QXdOUEI0Nk5zMXEKTWdoRlMyOVdOelNxNnpkcmVDdE10b3FXenBJT2ExbW5wS3lkWGRMQnp1OW1nc3hyWjJ4b2JSWTZtNjFPaHEyVkMySnZHUzhDT2RrbQpKMHZ2WURvc2JKdUZEYXhEQUlnd2tObkd0anJBKzBNQUlmMTB0WWtCZ05xZEFxZUZKemJUTjlncFMzcW9sVHViZ0lFSzlwQXJ0MVB6CmR6TzU3U1kvNjdtdzVQUWwyVWtBQ0svMm5NOXdIbDhGZTkvcitDTXdrTC9sNDJETEo3QVUxUDZwRHc4d2tMY1RCaGdvbGpXeG1kSTkKOE8yNGUyRGFQMGVKTG5MaDdnbTI0ZWlaV08xQzYxd1RJeXlDVnVpZWtCbDN6M2lYejdoNzRQYXUyUDN0d0QydzAxbDZha3g2S2l3KwpFUktOSCtzY2M3b1AydWVGZHJtSG83MCsrTW5PTVZXZldQcE1ISEtJNzNXUDFEK0tFcnZzRlozckhpMzg3QU5CNDcyUWZnajZUTG5iCkN3MjdRQnUrWU5memF0ajFQRkg3R2UvK2dZdGZpMXZIRnJYRTZvYzQreWRhL2xrSUFUU0VBd2pwcDNmQkJJRGd5M0VBZ1h4YllSb28KVkwzM2dPd1JwZEp1RWJab09idDAwbDN0VVFBZGNLb0JnRkFSQ0dEb1VLdCtFb0JBQUlEMnQrdjN0dWoyMkRVQVFCME9SWmRGMG0wVQpnWCsvNm8yVVNtY05DTUVnQUtBQzUyYVFmT2ZHZkVkVnZyMnV3RUVwZEZKTDJtaGxuZFNLYnVyZExSdTB6M1dFTU14aGEwVUFTaWVSClZpNjlCZk5Jd2k3aHZ3OGdiQWlPelhLNUJkNVJORGREUE9hVnVUMFRwYVByZk95L0ZaY0FOdi9pQU9yc1hFYjBBR1dtWjd4MzhTd0EKVUZNVExUR0psSmVlbDBJaTZiVGxHS2FBTytxSEJTR1hESC93UTRyaEc5bmk3bnpkWUM2QnA0L2pjOE92RHR3aFBNd05lNFdEZy96Ygo3NWlSa1V4S3lFNHZ2K2wvK21wMXZudjVnVFh5ejVaeEVZQ3ljOUlBZ0k0ZWVRQWJnd090ZmdLQWdOaGNiNjcxUFZvUk9GVHVlYlRjCi8yaEYrSkZ5N1BDODRRUEZnOC9PZDU5L0NCdUFtN0M4UStDcHp4MGIrY0h0NndJQ1FPQmJnZm5scjc5YWs1MllsSjJWa1VoS0VITEcKQVJUM3NmSHg0MGFaQU5EQzIxT21rM0xUMDdNeVUyYmVsSmN3blZTMTZiWklhSzkzZ0lsNU5FUGZjb040OGNuWEovUDFLUUtEMG5qdQp4T2MvQVpEdkN0TTFJUEtPS01ZK3FObkhuSk9SbkpDWm5UR2RsTEJ2NzJxZlgrd2Q1TUNaN1lQQzRUNkJaNER0dlN5T3B3L0tNTndHCkwvVmY0UU1BdmY5Qjg0MDVjSGY2encrZ3kwSUlvQ3ZxZjE2azNGZHlZMUpTRGp3L2FocUp5ZVVFZ21IbXJsTy8wWjB0TUw0KzEzWXUKMzN3R3BjQnlGcVJ3ZkRnR0FsRCtlRmxvZ2UxWWpYV0wyc3hHbFI0Z0hxdGRpQUFFRFFSTFFWY0Y2Y2RnNHFwTWNyV0JKZFZSYUZySgphdDJoVXNPRk9iWS96bXA5YTZYbXhUV3FRK3ZsTGJVeU1VWFczQ1NqMDZXOFJvbXdUaUd1VVVnb2NrbU5RcmRSM1M0ekdIZmJaZUFYCnM1OXJDUXdBQ0JrSUFRZ2tGa0RRUURvSUlHZ2dIUmVFOEJBQklIanFqNWJKMGRQWUdoWmR6V3JRMEI5UUt4Y3A5cytWdjNxYjZ1Ui8KRFVDVkhYZ1JxTE9CQUZDMW9yNU9TYVpJNnV2a3Rac1Y1R29wdFZaU3YwSFJ1RlRqTE5FZHVkMXlwdER3MmpMMUl4dFZDcHF5a2EyZwpzMVhOTEcwRFMwdGg2NmhFNE1nd0RSbUVvbTBFREtLckdxcTFUU3VzZ29wMmVVbVhwTFNkTTdlcnNhaVRDUXhVMk1VdTZHUXM3S0J2CmJtbmlPcG8xclJ4ZEs5Zll3clU2OGJudVRyYlJ3ZFRaR2VBbGlNSE8wRnVaK0ZrSXpLaUJiR3l6bllNQWhOYS9nSDY2V3lHQU9oeUMKTmd2c0lLdTJVWmQyVVNwaER4Q3NBeFh0YUZ6ZEkvaTlkanZHT3Vybm54cFFuUEtwVG5vMFoyRVJ5UHkyMS9xZTEvNEJNSkRmOFZIQQpDZGZDVUdJWmhGZUR4dGZGcms2ZzgvTkpRZTlQdUNmWTlobVJVT3Rud2RhUFFBSXRId2FkTUFISG4wQ2dlMndmNFNVZnVOUVZNbDhNCm12NEFBN3Q4Sm1aNEVmUUp4eXg0d1pMUCtFU0xNZEdKc09BNEt2eUUrZU9yWGR6ZkEvZmdKenUvQ0JPakgxajFvVDhMRW1sNkJnVE4KdFpoWTg1cWtuOXJEa2JxREViamI2eXI5NEd0ZVUrc25Ga0RZUXhCQThmcUJoWjlWY05vWDJ2WVZYdDZPZ3ZRVFh0UUM5Qk5aNkF3cwp0TVhxWjNRaERLR2YyUElQME0rVUFFSUcrdWQ4NDVVUzFiOFdLRjZteXR2VTRoNmQrR0d6QW80cEhRZlFmdkNMRkY0RWV0aXVQTmlpCkl3Q0U5RU1BNk9FV0l3U1FVOTNWb3VxeHlMY2F3VDhaUEthcGFSNE9JTUpBQUVCRk9JRG0yamZPdG02K3gxUnpqN0ZobG9reTEwb3IKYXFHVXRFRUFxWjlwQXdEcWFPc0dBTXJMeWt3REFGcnkvMUQ1SnpERUk1YkF3T1B6T29qQndETnBrQWYwZzNsazJMOVlZMTgxWXIxQQpEd2dmOEhFTzh1OHNwVjB6TGtGd1FBQUFOQmFSdExZdUluYUJnZC92UC83MEhiZkxsNTlmQ095V2s1U1ZrVUI2NVhnMUZvQlBhOThnClZBTGNOVDNNQ3J2aFp2akp0LzJoakEwSTRBUUd0OEEzeW9Nbk4vYnpnaTZSWjVTN2FONHQwNmFUTW5OemJwaVIrNmY3Mk5ocW1mc2gKOVYvdWt4TVZvR1FTNmNodjEyQVJXSG42Q1FBQ0h6SjQ2bDdQbzZYK3g4dEhuaXIzUEZFZU9GUWFQRmlLSFp6WCswalJsUk1yc0g1eAp3Q1gydXNXZWZsNTRZREpUSnBFRkFRaWZkU3BFQURwK3RDWnpHZ1JRQW1tNmlGc01BQlFZbHYxWUFJWGQwdm1MYmtsTklQMWl4azNwCmFZbTVNN0pTa2tpdkh4VmhZMHIvSUJlOEcwQncwTTF4OWJKQ1E2cUlTKzNyKzEvdkFRSUFjZytLUGNOeTc1djNiNnU2TlhYNjlQU2MKaklScGlVOCtzZEVmRUFIMGVLNUl2SU9Tb1Y0K1BJN29paVNlUHRjQkVFRFB6d1dnZ1VzQzEyVUplTm5ieXdVQSt2ek1obmwzcEtXbQozcGh6WXhiNHY2RmFid2hqV1BQMms3Zm96K2FiWHA5dE9UUGI5Q2FST2VZemN5MW5RZkt0NThvdFovS3Q1eEdBU3V4bkYxbGZvcGpiClRHWWFvUjhRV1BpNUdrQVdHM2lqRUZ3Zy9laU5ISzFPcHRJeStCcFdqYVoxaWZGSWtmVUN2S2Z0alVyVFM0djB6NjFRSDdoZjJWa3QKMTFPazRrWUppeTVwb2toWk5DbVRJNll3SkN5cVhLSFZpM1k1ZUxzN3RUOVhFelFDVUx5QkREbytTTHlCNGdFRTlBUEMxdExZcXFaRwpCZjhodVhtK2F2L2Q2cGR1VXgrL1Ezbmt2d2FnaW5iWWhWRGEwVERQVWJkQ0QrZDVJUUJSSmRYMWlwck5Da3F0cExsTzFMQkpUbDZ1CnRaVG9uNy9UK2xxaDRkaFM5Y0ZOYWpWZFNXY3JtamxxQmt0Zno5VlNlVG9hRWZBcVIwTUJvZWlvREEydFdVbXAxamJjYTZOVWR0QkwKT3BuRnJhdzd0emNWZGpWWHRuTktPOWh6dXhpRjNZM0wyNXVxSEhTUm5TRzNzN1IyanNrQldXTUJGM2FtMGNaUXRqQ1VnRWYyWnAyVgpyamN6Q0FOZEUwQWRBZ0NnVGd0UGJXSFcyc2pMT3luemNRQXQyZFo4OXg0NnZVMyt2ZkJ3aEg4aXlEN2xWNTRaVVI3M3FzK2dWVENQCjVROGVHelNRei80aE1KQy9aUW9ENFF5QzdVRlRKYnBlTnJGd2h0Ni83VFAvSlBxMGZBcmlkLzRKQktESGIvOGpTTkQyeDREMUE1RHgKcXMrNGZnenZCdlR2Z0FENkJEVnY0YjArRS9vSks5OEE5TUhiZlU2aVRtZFU5UUVBUWgwL1NEK281SU1XdkFqOTRLTXR4cXMrSURoOQprSDRtQURTaG55Y1FnTWJxSG8zVkR3SlFySDZJR1JleEsxOFI0SjZKOHM5T291a25tclZid3F1djBrOWtSVWRvV1J0SWNHbHJlRW4wCnlCK2duekErOG9JSTBnL0tsQUFDK2tFQVFnSDB1VHhmVHdEbzIwcmRhS0h5M0RwcHAxQzRVNjg0NU5ROGFsVWNzQnNRZ0E0NGxRU0EKSG5IQ3N4QW5BZWdSdkEzb1FKdDVqMTBIQU5UVHB0bGlWZXd3U3B3bWdkRE1CQUJDQm9vRlVMNWowMnpyeG50TW0rL1VWZCt1cnJ0RApRNzdIU0o1cnBSUTRHdTV5cmxjKzFRSUExTjIxRFFFSVZvQ1cvTC9RaUFCMVFNY0NLUDQ1VFFRYkZIb0d1RDYzQ0lpaDc2MjFmMysrCmJPaU4xZjRQYTlCRE4rS1dnSVR3UFdMQi94aEFEc2Q4QWtDcGFRbWZmUGJPWjUvK09RMU8wU1psVGsrLys1Yk1mMTFTWXg1dWNFZ1IKSEZiQjlUZzNKekRTSEhaemZiMndJUEdqRXVrVEFRdDZYQnpYVUhOd2hCbm81Mk9qU2l3c1lUZXVTSVpiN2pOSTZRbXZGRy9BMW1uNgpOMmcrWHlhZGlXYUJaYVVBQVAzMm1aVllXQVRQT1A0SlBVQWVpZmVOMWRqakM3QW5GNGNmcXhoOXZHejB5ZkxoSjhzaUJ5dDdEeGIzCm5WcUZEVXRkUTN5M0c0NlN1SDRQMEJRQUNpaU8vbjV6T2lrQi9MUUJnQ1Q4VWd6akFRRDVCcSs1bTR3NGptZ1NnQll1dVNVdGtUUWoKWTBaT2RucEdWbXBLSXVuQ2FUNFdxdk1OY1YxOWJNOFFaM1NRR1hUeHZBUE0wY3ZOWThPVHJUTmwvaE1BaGZxWXJpR3hlMEEyZFBUZQp0alV6NGZDNG5Jemt4SlFYZmxjZkRJdThneHpBR3QrUWRQQUtEd0RJMzN2TkpiRC9iUUFOWFJHTlhCSURBQTBBWVY5V1h6eSt1dUNYCnBQUzBteEdBN0sxdEFFQ01IYWR1MGI4RkFEVEwvT1lzNHh1eElSaFVabjZ6d1B6V1hCdWNtRkZzTzdQWStnTFZZck9aNm14V0FjaVUKQUVMNklRQUU5S016c1BWYW9WTEY0Q3FsR3pUNzVwdGZ6WGVjS3JTZktEZStmbGZyYTNOc3I1Y1lUeTdXSEYramVINkRkRytOcEtWZQpwSzJYOHFsaUprOVl6eEhUbW1ROHZZNjF3OUc4clZ2eGMyMkR0OFlZaUFDUVVTOEFJUXdFQUlRTUJBQUVYaVZXeE5BUlFVTDh4R2VXCmhzNVdraHNsNHRXaS9iUGxwMzZwZWYzWHV0L2RxWDZNVk41RC9aR1o3SnNmekFSOThMNUwzRDExWmUwMTVSMjE1VzIxaSswMWE3VTEKRytXMXRiSzZPam5jM040b285T2tUVFZ5Y3JXc29WWlc5WUNTdDBTOWQ2N2g5RnpER3d0MFQxYXBWVXdGaGFOZzhkVkNxWlllUFFEYgowQ3d3MFBuNkpnQTlwb2Jjckc3Z0tScWFOQTBVSGJsZVEzMUkzN2pBU1MvcVpKZDJjb3E2bXZFMGdSUjMwNHU3bTFCV3RWRTJ0dERvCmppYVp2Vmx2YXpiWTZWcG5rOUxaQ0tKeU5HcnRqVG9yVFc5cE5GaWJUUFptazVQaGRIQkEyaHpjZGlldm80WGZoUTlHQmRuaUVMWGIKK2ZZV3ZyNkZ3N1kwcm5jMkxOeEt6dDlETHR6YlVMU1RjMGF3QzJPODNDOCtodkZlQzRsUHVaU25SOVZuVUJISXA0L3VDUE5iTGdLTworQnd3Z1pZUEE2MGZCZHMrQlFFTWdzRkJNMFhRZjhXRDNoK2Zydm9KZ0JTUmdCTUdWcGdjSDRYc0g4SHVacnpZZythVm9nU05iOE5jClZlK0JnWHZhRldkQmlPMWQwVjRmdk5FbmRyVUxuZTRUNGI4RUV1YkJxZzllK0lHbis0QUVXRWZDekNOanpiL0Rta0NlRHpVKzdhVS8KTWNwNEVtdDhLa0o3TE5UOFZLZ0pGbnN3OGhNUjZoTWUyb1I3RUgwSTkyRFZqOERnOU1HcUppYWJqbTNlSGRtMEs3d1IzOStPZ3U5eQpoL1VlL0pnZm1KamRYa0E4YU13N1FaL3c4blpBSDJ3SkRGcjV3bHQvV29LTG5DQ0JoVGFRMkFwUWJQdHpiQWMwVVFHQ0JzSVRMZi9NCmgrbXJWSDZ4UlBQUFN0TndpZllwaG15TFhibW5WZjJvUVhHZ1JidlhDVGQyN1czUjdIR285bG9VQnl6S1ExWTFYQVhEVHdONnROTVUKdXh4Mm9NMjRyMVcveDZuZDZWQnZ0U2s3emRJV284aXU0MVAxdEh0dERZVnR0VVd0MVpCQjlxcFM0L295emYxemxEV3pGZFd6NUZYMwp5RGFEekpGWEZTaHFpaFcxNWVMN3hkdTBJU3kwWi90dW9JcmN2SXlNSkZMeExYbmVQOU14djhRenlnME5pckZCY2NERjlMdVpnVUh4CitLTFk1SGo2ZWRpSUVIT3h2U1BOM284ZTlEMHlHM3VrWXVqQXZQREJZdCt4bFo0ekR3MSsxUmh5eWNMRGZKZVA1Zk0yeGQvaCt2RVAKODBKRFBEZ3VBOU1aOUF1bWsxSnpjN0t5MGtoNTJXbGZmUFpsOXpZYktXRjZWazVpS2ltNW1mb3I4RDd4ZC9oUGdoOVhEVVhvSCtTRwpYVUxNTDMvMnhQMTVKRkpHUmtKYUJxbG1kbVhrQVMyMlJ2dkphbjVPUm1wdVZuSk9abElTaWZUd3d4c2ptQlIyTDhFdW5NbjNSQ0c2Cm80aWd0NFNDeHAydGxlU0ZNNTlXei83bWNESDJ1eFhZQy9OOUIvUEhIcHM5ZXVoMjErdkxNYmR1eUNVRERvajA4NE53cU1oa3NrUzkKTWdJcmMrTWQwSHpna2xId1BSeFRQWHF3SVdrNktXZEdXc0swWkFHM0dCdURneW44UTJ6MHAwK1pJTDZZaFc2RkxJWDVGQXVYM1paQgptcFozUTFKZVFrTGlqV2s1MmFRL2IxK05YZUlOK3lXQW0xZ3YxSXdQK2xnY3ZBeis2TW5XaVVjUGNRMjNyUGZ6d0ZjM09zQWRISUluClFZZjdlRmd2UHpUQUh4Mk9GZEpWNmUrSFk4V3dyNXI3SHk5ZldINUxaaktjQ3BlUU1PM3M2MnZHUEVib3BEN3U2Qlc0Rjh4MWhRdFgKeE9JVWhUSjBxZGszSVBNTU1JTWUxcWNmOFcrK2dRUzhrM0pEV25adUVuQlBhbVpPYXNyTVpGSjZSaUxwN1RkNHdSR3A2d3AveXNTVAphQnhHNHQ1TDdLSExDdkFKajMzUFBmUFVvbC9lTkRNM1BYTm1MZ0JRMHI3SG53aGg0YnE5NTI3WG5yakQ4bTRCUk04WklyTk5aNG5NCk1wMHVNTDZkYno1emwvWE5jdU1idGFZZGNpdkhhR1lUNS8zZ21SQ1B6U3BFc1ZvRUpyUFFZQVNTNEdwMUhJMktLMU93R3pTVytlWm4KWjl2UEZ0bk9sTmhPd2FVMzIra0M2eW1RUWd0TWtSbW0ySFJ5dVhidi9Zbzk2K1d0RzJSV3F0UnNNb2gzdEROM2RjcUlDaENjZ3hHagpuME5iSUlEMmQxc2U3cklDQU8xcU5XMXo2SHVzV21JWXF0bXMxbXFsQUVBbWc4Um1rbGx4QXhFTU1odUVLT0FUQmpFWitVWUREd1I4CjhobzlSNlZuQXdrQkJpbTBUS20rV2F4bjhuVk10b2JKVUROb2ltYWFoRlBGMXk3bjc1c2pPWDZMNnR4djFLL2VvM3J1WndOUWZKbG4KVXNxN29nQUMraW1IcVFXcGJLMWRiSzFHQUlMNlVUUUFBQUg5MEdTMFdnVUZBZWdoSldlcGVuZSs0VFVJSVAzVG16VWFwb0lXQ3lEdwpkUUlBSVFOeGRIQnVQREFRQWFBR05RRWdabkVYQWhEVXp5UUFGV3h0bU45RFh0MU9yV3Voc1cwMHNZVXFNWU1mS0Zsa0o4dHNGS1dWCm9yWFFET1pHazVWT0FJalFUMmRyVkQ4Z1BXMlNkcWVneGNFMzI5aGlVMU9kbFh4dkQ2VjBOK1dlM2VTcURzbW4vUDFqN0tNRDRtTmgKM3FzKzBRbTM0dlNvOGswSUlPMjVLSUJNNy9xdDd3V3NIOENXSVBzSGlFRSs1NTk4em85UUVHdmlnMnBGQkhxUWRTQjNBS0ZhUGtUMQpIaGk4M2dNQy9vaWc5WU9BNVdMSWZCRzErSVR4K1BYbkE3cnpmaTBzOWdUVTUvQ3g3V2RCSnVrbktNVVh2Q1FuaWFvUFd2QkNtOXRoCnN6UHY5eUZ1bEQ1RXlRY0VhejRTYVh3ZUFvanhBbXowYVhvZW96OFhJVDhab0Q2SlVaL0dxTTlobEtjRDlZZUREWThDQTJHMWp4UDYKR2FzL2hBQ0VqelU5RUtzZkFrRFlwaWlBQ1AxRWQ3ay9oS09IQ0w3Ymk1anpGYXNmQktDeFplM1krSW5QQ0VCSVB3aEFVellBSWYxTQp1UVEySllBdXoxZitiYUhtMndyVDVYTE5xYzJ5YnJNQ3VPZVFTYm5mcnQ1blY0RUEvZXdHS3JJcTl0cVVCeHlhZ3kwNjFBazBDVUQ3Cld3MElRTHVjR2dDZ2JxdTgxU1IyR29RTUEzMmx0YUd3cFFaa3ZyMTZ2bm5UUXUzNjVZcUhsb2xxUUpZS3E1Y0lxa0NXQ2F0WGlHdFgKaXV2bWlSL2d0c3ZDV09qcHg1OEFBTXJKVGM5Skk4MzVWZmJBaHcyWVYrcjE4TUpERW14QTVCOWhBQUNGWVIveDVFYzRpdCtuQmM4Vgo5NkRRRjFUNXY2SU5ITWdQN0NrWWZXSWVkcWpjOVhqeDhQNVp2VS9OOVoxY2puMVloNDNJUXNQeStEdGNQM0FiUElESUVBZkQxQnAxCnhUUlNTazUyWm1ZcUtTYzk4Yk5QUHE4amJ3Sy9ONmRuSktXU1NFZWVyOEhDbXZnNy9MUVFaVEIwRFFBRXg4SjdKSi85blhmSFRSbnAKYVlsWkdhU3ltYi91WFNmRzF1ay9YTUhOelV3akFMUjM3L3FmRENBTUV6b01KUW1rcEl5VXhJSmJTTkkxTjU5cHkvY2ZYeE41ckd6cwptUXJ2aWVWWUg4L3Y0bys1aFA0clhEOHNyVTJtVHl5QXhoSERBd0R5alBDd01mWDJuZ2NUcDVIQU0zMGFLVkVFSzBCSzJDRSt3bzEzCnovVUJ0UHkrMlJra1VsYk90QnVUazVMek11NzRkZnJmdDgrL2Nub2x1TnZZRUp4cjZ4bUVwZ24wOGdLQUpxNXI3Z0pEOUpua0lUaWcKL2p1V0QxeTdSTU1EWFBjUVBOVjZwSmNOejNIdTUwOFpsd3VlSk82OXVQblArMHJ1dkRVelBUa2xMeTA1TlNYaDNiUHJJNk1HSUJ0dgpQdzhIa05qZEM0dEErTm1KVXlRNHloKzV6QnY4cmpuaVZYNzhudWJtckdrSnBOeVVsTHpNeE9rMzM1RCs2MTlsRmhYK2VzM0tPYnptCmduOThyZ3NNeStMcGd6S3A4Qk1UWWY4Vjd1QWxlVjhmTDN5SmUremhlVGZrWk9kbFpOMlFrNW1ZbXZiTWtaZEdmSjROMjk2NHkzRHkKZHZPRlF0T2Ixd0xRUGVNQXV0dnlScVhoUkoxcHE5TEtOVms0Uk8wbkZrQWdCSURNRmhFQklGZzdVVEhFU242dHByWFM5T0ljK3dVRQpJTFRCUHBvWUFJR1U2NDh1VWIrMFhQWGtjdFVqbXhSNzFBYkw5bGJwN3ZhSkpiQi9IMEJPMDA4SEVLQ2JXc2NHQUFMNlVXazVFRUE2CnBsRFBBQUJpcVpuTlNtYWpqRVVUY1d0NXFwWDg3WVdTSTdjcFQ5K21ldlV1MVF2L1J3QWk5QU4zM3VJQXFtZ0hBS29EdjVzdXNkU3UKVTFkWHlldnFaZlVOQ21xRGtnQlFRNDJjWENlcldxOWdMVmR1TFRRY3l6ZWNYcUIvZHFOR3oxTFN1UkJBZkltT0R2UUR4NTRaR1NCQwpZek1zQXVHZFFGd1ZtYTRsQXdCUjFOVDFldG9pQndJUWEwcjlnTnl4aXpKck82VzBwMkZ4UjhQYVZzcG1CN25PVHFIWXlUUkhYYk90CmptOXRrRmxvT2l2ZGFHT1lIU3lMazAwY2dRaUNKc05IMHlHRnh3STUrRTRyUjJOb2JqUlQxblJTNXUyZ3pOcEYyNm8xRDNHZWl2Q08KRFF1UGVRVEhQYUpYUFFoQXFqTSt6VG1mN2kydjdvTGZBQTBVc0x3SFc0SmdMc0lnQ2FHbHNXc0VSOUs0Y21LaE03N0loZEFENHJkYwpCUEdaM2dzWVFkNUZpMXpSZW8vMnZFOXpOcUE1NjFlZkNhak8rSlZ2am8rd2lDNTFFWnZiNFlLWCtQV2c2TFdnRVBiNndPQUxYdU56ClRGK091b2Y5WW9nRngxbUFCSnQvQ3pMSythMlg4VndJb0lmNkRGYi9ERVlHNG5rZWEzZ1dZNzBZSVQ4VHJubDhyT0dKY09QVFk3UW4KTVdDZ0RmdUoyaytzZmlManU5eXYwcy80SVlmQVBaRU5PMENJNmU3aEI2TUxYZ1I5MEVIUGs1YTlVTk1QbkhleHJCM1JKNjc4NDVqVQpBQlMvLytzNkFJcXVmK0VBK25haCtsL3p0ZDlWR3IrZXAvNXltV1NQUXJiVG9kNXZnY2Yvd0dVdkN3eTQyRzJWN0xSTGQ3WElIM0ZxCnJ3V2doMXRnS3pRQTBIYUh1c2VtYUxkSWdZRkVSdFphQzduSVVWM3NySmx2clZtcTI3eEt2bkdUWlBNbVFmVkdmbFZzd0Z0QWxvb2YKWXRrRUFFQ3ZIVHVlbEpDWW5aV1dsMDY2SlMvNW03TWJjQUJ4d2tOdzY3Vi9pT2wzc2E4RElNOG8wei9NQ2ZvbGJwOWsrTk42OStQegpzWU9WZ2NlTFE0OFUrUjRyd3g2ZFAzYXdZbmhYL3REajh5TGZzQ011WmZ3ZHJoOENRR05oaFV4YVJBRG9waGxwbjN6MDZlTEZTNVBoCldJZmtYK1FtZlBPMTBPZStKamgrYkJDQWtJRVFnTUJGMkNVY0MrblgzdnVicE1UcHVaa1plUWtKNzl4SHhlN1hmWG92bndCUUlvbTAKWThjNkJDRDhVSURKZHg2Ly85UUFDbUhDanA1bFNXbVpDWmtaeWFrazhQeTlQUzlweVQyL2VveDUrL3RiVi9XZGFjQThTbmQvMDVpTApINEZOVG5Bei9OU0pBNUFQQUFqVHROcnZoUlBOOHRJQmdDU2lNZ3lUNHl0bHhIdE9rU2tCdEd6bG5MVHBBRURUYjg1TW41NlNYbm5YCmphN0Q1YjFQRkhyL1dJME5TNzF1TVZCTGFFVHN4Y3M1OGU2NVRwQ0JRdjJpUUs4QUc1WUZSNlFlbDJSMFZPb1pGT0tUVTZWVHhqOGsKeHZwbGcyZlh2ZFZUbXBzRDF5aHZ6RXk3NGNic1R5N1doVWUxbzMxY3dDa0VJTGhrMXMrS3B3OUsvMldHdXcrZWpSUnlDLy95Q1Z2RwptV1hWcjl1enIvYms4WVkvZnNqNjhtK3N2aEdWeTJ2d2VOVitEN2YvMG9QeDlMaytnQWEvNXcvMmNRZStsMTI1d29sYzVqM1JWcGFXCmtwcVhsUWxYRW5PeVQ1MS8rNThEUTh0YVg1MWxmdk1PNC9tQ2F3Tm9sdm1OQW5qUzc3blo1bE9MalVjYVRXMWFLeGNPSzhVQk5HNmcKeVFBQytnRXhtZ1I2UTNRSlNhR204OVNTRGRydGxhWVQrYlozaW16blNteXY1OXRQRWdBcXNzSVVXMDRqQU0yeVhpZzB2RjFzT2xtaQpmMldsOW5teHVXZHJ1MnB2bStiSEFxamQ4bThCaURBUTJoV1Bsc01NT3JnS0J1bWo0NnExZktVVzduNEhBQkpvbVZ3Tms2bGkwUlVzCnVralF4QmMwY0dWcitLM2xrc2Z1VXI1eW0vcjRuWnFqL3hjQWl0Y1BwRTlIZlhsYmJhV2plcW1oK2dFVlhQOXFrRlBJRUVEMWpkSW0KaXB3S2gzekpLUUJBR3hYTks1WHRwZm9YQzR5bktnMi8yNkF4c3hUTlBDVWJBRWlzYndaZkoyNmdLSUJnRVVoUEF3YkNBVVNoYWFrMApOVzJqanJiSTJRaHJQOTJNS2ZUVFF3TXAzTnBZdUkxYXZCV21iQXU1c29leXVKdXl0SWU2cXJOK1hYdDlsYk9oMFVZUjJtbGFCd1BvCngrbmtJdnJBMXA5eCtuUTdZVG82SlBCUVJEdS94Y0xSbVpqTlZ0cnFEbkxaOW9ZbDIvaC80SGRqak4vNWVNZmNnbU1qNGxjZ2dHU24KZ0lHOHlqZUFnYnhxV0FjQ0J2THAzd1l1QVF5Q3dWZkVvRnB3eWdTQWRjWTFNeWxBU05FTDJ3Y2d5RG93dHZkaExPLzV6WDhBQVhjRwpBY3p5Njk2T1Juc0JOZmNFWWIzbkxFQVBTZ0IzVDBCMkdvZ25JRG1GQm5naDk0Unc5NkNFK01kUXV3K2FZenFHNzI5SGhSOUFIelRNCks0UVA4MExCR3AvRjZNOWpWTGpKQzJ2K1hianBPUi8xYVFBanJQNzVDT1ZaUCswWjJCQk5lU3BVZlRCSVBoUm9laXkyNVJucGg1aHUKZ2RNbk90bzllcjR6bm9sbHIvSGhwbUdjUG5DeUtaN29YbmMwNU92cWxTL1k4b3h5dFg1dytzREVOZ0JOcXYyZzh3K3ZXditLQXhBSQpBdEEzaTdUZzVhVjVocjh2MEZ3cGw3OU1sYlphNWR0TWtsMFc4VzZ6ZUs5SnZNOElBeTZRZ2FKRm9QYm9UQXdDUUkrMG0xQVI2cUtjCmtnQUFnQUJKUkVGVWFIZUxkb2RUczhXdTdMTEkyc3dTalpHNzBVd3R0VmVYT09vV21ldFdxS29lRkcrbUNXcXJ4TlVnMWFKb3dQVW0KUE92RVZSeXpNSXdGTDV3L2w1S2NtSkdlbkpjK2ZXWXE2Yk5YMW9MSG0yK1VGUm9VQUFBRmhqazRnRVJvTVNnK21Mc3gyTnZvNjZPSApQUnpzYjlUaHg4dXhRL25ody8rRFBiWjg2R0JsOEdCNStPbEt6eE9sL1U5WGVMNWhlajNxK0R0Y1B3QkFrUkU0TVQ0U2tnc0Zjd2dBCjVXVk5QLzd5MFZ0dnVUc2xkWHJ5dEtSVlMzN3A5ZlBnbHJHNE82REVFd1FsL2oydi8vNVlSR0t6ckVnZ2tXN01tams5aWJTemNnVjIKditiTGV3VjVXZWtFZ0hwNjdpTUFGSDlubENuMUErTEIxRjNkcTVKSjAyZW1wZjB5YzFwdVVscFNNbWxhVmxvcWlmVHJYSkpCbnUvMwptcnd1dm4rSUhSN2t3R2xaY1Y1QjhROUhzUUoranJBeGVZanJkL0VCZ0p5Vys4Qm5tSldiTm8wMEhRSm9EQkxLTjhDSnZ3T1JLUUcwCjlON1p5ZE5KT1huSk4yZGxKaVJrVk42V0YvN3R2TUQrZ3Y2bks4TmZNMGE5RXRjZ2IyeElIQmdXQVFrQkJxRkRGT05EdUllNFJnQnkKQjlWWHZtbnUvYlJoOUsvTi9YOXIrdGRYNU41LzBJZi9TaC84cW5ISytEOXR3RDZpdTE5Zi9iU21PRG1SbEptZGtaT1NkUE12Y3YvMgpPVDNvVXJsN09iNEJucWNYR0Vqa0hSQzYrNjVaQVJydUZYc0hsQ09YV2E3ZWVzelBIKzJYWXBnNUdPRkdYT2JRcUh4a3VIbHdtRDR3CndIRVB5ZnEvNVhqNlJmSDArVUVBRGZYeityNFRYY0VYQ25jcXl4SVRrM056TW9EWWJwZzU0NU8vL1AzemJ3Zkt6Y2ZtV3M3ZWJiNHcKOTNvQWVyUEFkQzRmNXZVVnhzZFlab1BSeXJIWWVBU0FjQU5OeEdvUklQMmc4by9Xd0VlMUU1bTZzVm1qWGFzN1hHRjZzOEQ2QndDZwpZdnZyUmJZVHhiWTNVQkNBaU56dGZIT3U3ZndzK3h2MzJFNHVOTDNFZFd6cDdwTHNheGYvTkFEWlRScXJDUUpJcHhhWjlWY0JhSktCCkVJQ0laaUFDUUVvdFQ2YmxvczFmZkEyTHJXUTF5MWxOVWphZEw2SHpoRlN1ZUQzWHVGaTBNMS8rM0oycVYyNVhuL2pmQjFBY2ZjcmEKWWV0UFJYdGRaV3Z0UEZ2TmNoMGNnbEVuYlNETEtCUWxqYXdnNHdBaVF3REphQTJ5NnMwSzJpcWxyVkwzWEpIeDlYTERrUWUxTnBhQwpLVkN3QlJxZXlOQXMwVEtBZ1FDQVFNQ3I4TFJISFExV2dOVFVabng2ZktPYVVxV2xMSGJRQ2pzYkM2RjQ2SlAwVTdLbEVXUitaMk5sClQxUHBWbHJoZGxyQkRoaHdBVkswazFLNmpieTRxMzVkRzVuU1FoVTdtaTBPTHI3c2hlOTdCKzVwaGIzUFBTMWlCQ0EwRnI3TndXK3gKY2JVMmRwTzljV1ZIUThuMmVrR2JZYmpwQUVaN2NaUnpkSlIvYkVoNnpDdDgxU2M1Q1F6a2xaLzJLZDd3S2M4Z0J2bTBGNEJMZkliegpnQ2tRSzBBdGx2Y0NlTmtHWVdqSytLM3ZvZUR2SE9VTzJzT0YwSU42bVpGNHhnTVh1ZkIxTHJpVkhTV29QQjFRbkFyS1R3VmtKNk90CnplUG9RU0hRRStTL0RCTGl2UUtDNXBoR3h1ZVl3bVpuMXU5UVlLY3pBOUFIZGpvRDdtQ1VKOEtVeHdQVUovMzBwd09OVHdVYkhzY2EKbm9MOVFIVlBZYlRuQXZWUGhHb2Z4YW9QWXpVSFE1VERRdzM3a1g0UWZjTGo5TUdibmRFUnoxY1ZmaVpPZGg0ZmJSRTcxejI2eTUxdwp6L2hCenlqRXRDL1U5WXdTcXgvdlFqdWVpZmJuS2ZVenNNQkk2QWR3QjEzSEF1alNBcGgvTG9JU0F1L3pyNFc2SytYS3oxZktyRHFKClNjK3hHOWxPSTZmRHlOdGk0TzgwQ3ZlWkphZ2F0Tit1aGtVZ0hFQ29DSVFBZExqRGpBeUVpa0JiYlJCQUhTYUpUYzl2TURYT3Q5VlgKT0JzV1djbkxOYlVQU21xb2dvWU5zcXBOMHFwcVNWV051S3BXREYrQzYwMlN6UnVFMVh5RHdCc2EvZURpZXhucHFabXBTVG5weWRsSgpwRDg4Y3kvbVYzdEhHZUZCSGdBUWZGU1BjTU1EUXFDUUtZTU5pVEMzUHREUEQ3dlpXQy8vbTZlWGVIKzMzUDI3dVlFbjd4NTY2cDdJCm9hTElvL1BHSGxzd2NMQmc5TysxL2pBdi9nN1hEd0xRbUlzL0ZsYndlYk9tazFJQmdMTFNTSGZkTXJPcnJUVXJQUTg4UEZLbVRUUHIKeWpFTVBFRlo4WGRBQ1EvRFNsSjg0dCtUZUgvaW80aTN3SWtjZnRickoybkpKTktNOUp0SkdhU0cyKzhLcmpkOHNad0RBQVQwQXd3RQplTkhldm93QVVQeWRvM2ZEQjRZUUFVd0JnVlBWd3BMOTJ3R0FTSG01R1htNUpGakd5Q0xsWnBKU2MzOU5tcFpTVlh0ck1HZ051WVZ3CnJvV2JGeG1VSVpwTUVSeEFjQ2JKQUQ4NHlBWHZEd0VVVWRtTUVFQVoyU2tKMHhJbG9wSklXQmpCNTdoTi92RHhYQXRBSzlma3cxNmkKbktRYjBqUFMwN0x2dVRubCswUHp4aDR1SHQ1YjJQL21HazgvTHpnaWhvdDBRMEt2QzY3VHhkUG4rZ0R5Zk05ei9hSDYrMGRLWFh0SwpmUWZtOWUwckdUNDBiL0NSaXNFRDVWUG04dU1sZzQ4dWREKzN5TER4TndDTDJlQzdsNWJ5bXp0di92YnY3TUNJRXA3Ky9HOENDTzZUCmx3SFp1Szh3Um52WjdzdEM4TFVNWDJud1g1RjdMdkU5QTF5UTBRSGUwR1htd1BkMDd5QXJuajdYQjlEdzl3SUFvSUZ2UlgwRFhLeGYKWUdzcVRVaUVvK0RUTWxKdnVmVlgzdzBNdi9QVmxUbTYxK1phM3BwamZlc2UwNFIrNGdCMEZ1Nk5ONTR2TWI1MnYybVgwQ3kxV3JrVwptOEJ1RXhJaGxyMkkyZzhzLzFqRWVwTVFBVWloNFlvMGpYVmF4d3JqaTZXbTgwWFdDMmk4Um9udGRRSkFrdzNrZUJXOG5Hcy9mYmY5CjVIekxVYlpqZTNlblltL01LSXlmQUNDOUpnb2doMGxtTTB2aUFRU0NOc05QQWhCZSt3SDY0VXEwSEtHR3pWVXhtYmgrR3NVY09sL0cKNEFxYnVJSWFybktWb0xWQ2VtaVc4c1gvT3dCTjBrODB6dG9GNXVxVm1wb05zcHA2U1FOVlNpSExhUlE1RlFJSWpuYUhBS0pJYTZ2bApsTFZLL1VMOUUwWEdFMldHbHg3UXRER0FmcTRHa0ZqZmpBQWsxTlBSWGpBQUlMb2VBb2l1b2xScktFc2RsTUpPV241UFkreXlGNkVmCmtOSnVTc2tXV1A0cEF1alpUZ01YOE5VZXlxeGRsRG03S0lVN0tQTjd5UGUzVXhndFRRWW5wOHNoN0dxUmdIUzNTa0Y2V2liUzZZUmwKb1hhbndPSGc2ZXdjcHIzcC90YUdKVnZJejJoNlFyVEhNT29STi9Pb20vL3lpUGhsSUFtUDZEV3Y1S1JQR2pXUVZ3R1h3NkNCTk9kZwpWNUR1TFZTazhlbFIzdlhxM2tHeWlVKzBZbVRDcllQWGVKQjRBcnBvVHcvQkhSQy82aXhLQU0xcHg3ZXk0NlBhNCtpRG93ZWZZaEZkCjZvTDY0YjJNaHJkUEJHNXV4L2UzNDQwKytEaUw2TEhPYUtzWG9BOUtrUEcwai9iWUdQMXBqUG5NS08zZ2Q3VTdQOTdZZG1hVjdxT2EKbm1IbVkxamprM0M2UmMwaHJQWVFSbmw4ck9vQVRwK3I5Qk9wMmdzU3UreEZ0UHZBNENjY1RveTJHQWNRb3MvRWdJdDdPOGZ3WExYcwpOYTZmMEVMbjFjdGVoSDdzeExhdjJLM3ZzZm9oeWorSU83RVlpZ1hRZDR0TXNCTm9vZjc3Ullidks3VURsY29lbm9CcGJHWVlLV3d6ClRXUnFVcGtaTmd0M20wMjgzeW83WkpZOWJGTk5DYUJIT3kzQVFLZ1ZlbmNMUEJFUkFhaFRLMlNZbXBmYXlKVU95a0liWlpHeFlhV3kKQVk0Wmx0VnNrdGJVaW1vYWhEVlVQa3k5b0Jxa2hsUE5salA3aHE5ODhlVW5OOTZRbDVXV21wdVJtcFUwL2VUZStaaGY2eDJsaHdjNQpBRUFSQktEQmF3TENOOElLdUtSdzhGTkErUFVuRE1vU2ttN0RiY2UyYnV4L3BtVDQ1WVhZTS9Pdy9ZWFl3eVhCM1hQQ245ZUdQSENvCnhZOEtXZ0lEQU1MR1ZGek8zUUJBMlZrWk9SbWtYOTZRVVZHY241eVVrSk9SRHJqdzZyR0hNRXdRR21ESDMrRW5oM0FQY1EwQjVHVjkKOHpYL043K2FscEdZT1QySE5Idm1qQ3ViVEYrdDRDSUE1V1duQUY0NG5Zc0lBTVhmTnBwckFTZ29mbXovT3RKMFVzcU5wTVJzVW1aRwp5azJaR1ROVDgyYWt3ek9tYVRXL3dQeXFzVUVHWExSeWMveTlvbml5eEdLRkFCQmN4UnZtWVNHRldyb0VmSWFaMldrSjA2YkxKQ1hoCmtDRHNnb2NKeGQrQnVNK1VBRnI5d056RWhHazM1Q1RtcHNCZFlET3pTQzlaRm1DL1hUbjJTT1UzaHdzOW56VmdYalZnc1JlWFVQdzYKMTNVU3JRQjVaZGlBZE9DVmUvdDJGNHc5TWo5eWNMNy84UHpSUTVXZWE4UjlvTkMzYjBIbzJXV2JTbS9LU0VwSnpVckpTa2o4OVc5bQpmUDgxR3g4YXovTDBzYng5QWh3MGNCcEdQSDFRUElQQ29VdmNrY3M4ZDY4QWFNbjF2ZEQ5SFI5OEliNWVydnQ3Tm5qTHlIY2k5Mlg1CjhIY1NUNThVdkdjOGZhNFBvSkZMd29GZTF1QjM0b0VodnY4N3BuQmRZV0pTV3M2TXRLUzAxTExTQXJjLy9OSjdYOStsZTNPTytkeGMKeTlrN2pkZXNBTjF0Zml2Zi9HYUI4ZTBLNDRsTjVnNlZoZU8wd2dhZ1dBRFpiYUpKQUFMNk1aaEZjTEtFbnFmVThnQ0FlR3JtUnYyVworZWJYU2l6d09Pa0N4NmtpK3h0bDFqZEt4b01BUkt5SWxWcFBWQmpQRmxuT3pyYWNXV1I4bldQYjE5ME8veTM2c1FEcU1HdGJqRk1ECmFFb0Q2UTB3UmoyTVFTZlU2Z1Q0NGhkUEFneUg2NGVuWm9GLzBCaFNObDNFYXhRTGFBSlpNMS9FNEFxb0hPbDZ2bVdKZUUraDdMZDMKcWY1UEFGUXhEcUJZL1pTMTFwWGJheGFZcWxhcXFqZEw2c2hpQUNCcWc0d0tHQVJQRjFEVVZxdnJhMlJOQUVCMTh2cjdGWW9sK3NQRgp4dU9seHFQMzZ6b1lDcTVRemdRQUVocmhFaGlJek1DUUdwbGlJeW9DTmVJR29nRUEwYlZ3SjN5dGxnd0IxRVhKNzZGT3FSOWduWUt0CkRjVmJ5U1ZiWUdLUEF5aloybFMwbzdGd1oyUHBWc3J5VGdxNXBWRmpaM2JZK0lSK3RyVEtpR3hya1cxeGlHQWZkQ3M4RDlwczVVck0KZElxVlV0M2UrQS9XUGgvOVdWL1RFUy9yRlFnZy9wR0k0TGhIY01JclB1R1RuUFRMVG9NQUJubmtFd3dhejF0ZXpYbFVGZ3JvL3dCWApyNllLUEUzUmNCN3VKdE5GTXdrOUFadzdJSDdsbWFBQzl2Y0FjbzJ2YzBIeElQUUVwQ2RBUWhKNGpDRUlNY0tDdUVENmdlY1pjbytBCkFQcUFCRmhIaUFVdmZJZ3BMUGxFZzdzbjFBZ25Xb1NvejJCVmoyS2NGMGVaajcreVRNYS9hY0ZjVW00MmFUcjRKL2dPVWpibjFpVkgKVjBoSG1nNWdqS2REc0xubkVGWjFPRlkva2FxSENmMFF3MDFqbTUzSDFtOGoxcnhpZDdtalp1ZEpKeHpHdGp5alphOEovU3lNdGp5RApFUHJ4TExDTmdzVHRleWYwRXdzZ2dqc1RhMkhqYnh3SGtBVzQ1MThMMWY5Y0RCZkNCc28wTDFUeFZ6dW85em9iVmpuSjYremt6VFlxCjE4YTAySVE3cmZLRFJnVUFFRndGYTR1MkFZRVFGYUJETWF0Z3NBM0lJdTgwUzNkb3hBSVQ1ejRiZFo2RFVtbWpsSU1MTTJXWm9YR3QKc3Y0QmVmMW1TWDJkb0k3Q2d5SHo2dXI1ZFZSdUhZMWQvOC9MZjc5MCtaKzMvcy8vbDVXU2twdWVucGFROEh6TFhNeWo5YnZwa1dFMgoxaThKdzI0UzduVWU1SDVYazkvRjlibWFJMzcyOEJWYitleDA4UHQzWGpKcDNXMnBxdHJiVDdaV2ZQZDRKZmJDQXQvaDR2Q1hYSCsvCk5mNE8xdzhBRUdCSEJEYndxdGlzT3hHQThyS201NlltcFNlUmJweVJuSm1TY2ZldDJaZXUwTU51UHVhNkp0UitiUEN0WjlBOTRDTDIKT3V4bUE4WlZiN2dya1RRdExaZVVrWkgyOW5MaDE2djRBRURaR1lremNsTEIzMjJiYlQ3UkJCMS81MmppQUFTbE1zQVBCWVhQUGtsTwpKQ1hsNWQyUW16MzlodXlNN0N4U0tnQmZGaW1GUktwK01Cc0xLTEVoM3VpQXdEWFVoQTNMWUdsbnFpQ3N3TnYydzg4L2lHOEVpL2drCmpmV3o0QW5PTTdLbWtVZ3FSVVVrRFBlMzQ1bE1uK3NEYU5VRHN4T25wZDZjazVpVEN2NUhTa2tuTVZiZU9mcmJsZGlqQy92MnpCMSsKZFNWMmlSOXhTK0hFMW43WTFCd1BIWUk3OGZvQjd6OHd4QVV5ODN4Uzk5MHpGU09QbEl3ZG11Yy9VT1k1VkQ1NnNQVC9KKzQrNE5zcQo3LzN4SDB1eXJPMlZBSVZTVmtnZ0ljTXJlNUdFTUFMWjhaWXMyOXBic3EyOVBlUHNrRDFKZ0lTd3loNGhneENnN1czL3QrUGUyOTdlCjNyWlF5UEtRNWFGaERaL2Y5em5IVm9SbGgxRnUvM2w5WG5vZHkvYUp2SFRlZXA3djgzM0dUT2o1Z3RqeFpUZU9GMDY5bThYbFpMT3kKV2JrWnpQdnV6N255ZDNHNFZ4dm9sdlRmcUExMXFRQkF4SEozV1NwOXlQUjN5TkY4bVU5TnJLNlhEWFNJZXE5Vmg3c2tBejM4Z0U5SQpGZy8xMzFDRGZnWTZEYjRycWxUNmZDdUF1cTdYK3E4aEFIWCtUMmxKd1JSS09pc3JsNVdXa2I1K3pWT0RRL2loZDMvM2dPVVRJQTVhCjRlWDQ1SllBUW5YUTgrMGZsTGhjVmxkVml4TUFwQjRGb0lTQkhFNFY2Q2NCb0FhTEF2UmpNRXBsUnZuVHRvT0Zyay9RZmhyZXN6TWEKejg3d2ZseEViTVJCaGh6NFNhcUpQcHZ2dURUVGRRSCs5OFhXOXhUdXZkdGJUUWVhdjNjTkVBbWdKb2ZKWTBjQXNoclZic3ROQUNVTQpsQW9nMEU4eWdGUW1LZHIyeXlTUjFvbkZlbkdORmdDa3JGYXJLelVhdUJYSlZUVVNiYkhVOXBoeVo0SHUxTVAxNy81b0FDTGFPbytSCmhINVFidXFudUtDNXBOQ3phWjU5dzBvQ1FKWHE4a3B0SlFFZ2ZnSkFKWVpxQWtBbFQ5Y1psbGlQQUlEeUhlODlaZGt5RENDQW5yMUcKRC9xeGlnMTJrWTRJc1JaTUNBWktBRWhjendjQUxmWGVBa0Jvc0tkZ1owWFJEdmhDeXRHWHM2TXlmMmZsekYyQzZYdXFGclZWemQxZQpYYmhiV0xDTHYzaHJaWEdMb001YjIrYVdwd0lJOUFQWjBhVFozcWJiM0twcGJWUTBPbVVtUzdYS0psQTAxdUpseC8zaU05MjFid3lLCjN1MlZ2K21YdmhhWHZ6c0NvQS9EdW5NaDNUbGlPZ3dCS0ZUL01abVJFdWxQQjYyL2lEbitiY2oxbTRSdlJnWFZENWsvQ1pndW9UVmwKTi9GMHM1eDV1S0o1SkNTNVVIUm5CN1VvcUtKWjgvN05qRXgxa1pOY1JJMHpLbk1tYTMyRzlTTkZ5OW9KL1NBQWtmb2gzUk90UnBYTwpKSDFRK0tjamxhY2dlTTByZjZuWUo3OXZKUnVld0drMGpKT08wVEFhMmxJU3JoU1Urekhtem1tYnVzdjI0aFVuOGJJVC9hVkhnRDVrCmtzZCtrcmQyLzRaK1JnQ1UwRS95YXEvRW5GZWl5U0grNk9pWkwxSS9pV1ZmeWNNL1NEOGpBQnJWK1RBWlFNbkRQd0NkOFFEMDFTTFgKOVNMVDN4YlUvMjJKcFdPTzdkcGN5NjlYcUFyYksyWnRMWnU1cFRTL3JXUlJVK2tHcjhEZ2xXMXhhUS9hOUFmY3hGcXdGQUNCZm82MgpEcThGSXdHMDNWMjN4YVhmWjlicEhQSW5QWUo1bm9wQ2I4V3Nac0dzSnVGc2ozQ3hoYi9DeUY5bDRLL1RWRzVTVlJZclVlQ2dWbDVSCktsai8xNi8rUEJEb21mTEF2Unc2UFpQSmhJdjZNY3Q5ZUw5eE1DQWM2aFhqblJxNEpJZjlVcngzWEFEaG5VYTgwNHo3SlBHZVVqelkKL09qaVhDb040MlpUR0JRTy9LQzVMR3pldytuTi9IdmZjVHpROGVkTmtZZ2c5UXkzRG1xbDQ1T2haZkR4ZWxIdEEybFlCcGZEeXMyawpaVE16Sm1ZRGh1QS9TVi8vVkVFVUY4VjY2L0F1SkpVZkpZUGRVdklBRFo5MFMwa0R4UkQ0MExhc0xlNm5xUmlXbFl0aDZmUVREMjM0Cnh4T29DRG9CSUpkcnpnOEdFQjR0UC90bU1RdnRNcEdSeFV5YndNakpaakFuWkdXenVSU01uck8rN0VFODdncmQwQXo0RGFHQUtONGgKVGFWUEFrRGtDUUZBTVI4Q1VOQW5CYm85dmpRSEhtRjJMaThOTmM2ZWkrTm9ZL2xvcnlhVlByY0cwQk9ycDFJeDlrUTJsczNLWVUzQQowaklwZDdHb2w5dnV4VTh1aUIrZGMrTjRmdmV2MTRKZ29qNVY2TG8wNUw4NTFaVUtJRExKK29IMCtXU1F1Ri9kOGZtcXIwN01DcDZZClBYQWt2LzlFVWUrSi9ESFRlWExtd0hOTC8zMzcvV3dPbHNISnlzaGgzWmJCdWZjZTdsZC9yUVlBd2RmZWQ3MEdBTlIzVFltR2RqcGwKQkhUR0NGb3QzeVdGRC9CZGxmZDNhZ0pkNnQ2cml2NXIrcTZycXA0Yld0OVZlSnhxMzlYcXZvN2FycXVDL3U1eHA4QjZybzBkQUZEbgp0WnErR3pvQTBKZS9XLzNrQS9jQ2dIZ1RHRmg2dXJTbU1vcmpiUzllZnNENmkwZnNseDV4WEpqc3Vqd2VnQ1k3UHAzbStnZ0F0TUQrClhvWEw1blJYdERuRkFKM0dieGdJQVlnTXFSOXkvc3RrVXlVQUpHNVFQbWs3bHVmK2JKYm5jcjczL1JtTkg4N3dmbExrK0t6UWZTSFAKUmRRK0p3Rm91dWY4Rk8vN0NGN3VENmE3MzFsaWYwWHBiZC9ScGpyVW92NFhBOGhrVmlRQXBDQ0dmd0JBYVBoSEl3VUExYWkxRlZwMQpsVm90VnFoRlVsMkZ4THBLdm0yTzl1VFUrcmV4d2kyQ01UTjdLMnFRbjVwVStwQWh4M3VLdHR3c2VaNU5oT3ozTTd1dFpGNXJ5YnptCmtybE54Yk1iTnhVMmJwelZXbDdvTGx0a0xINUNWN3hSVjE2TzluWG5sOVdWQzdYbFZmcUtLbUl1ck55QXRzWFlaS2lFTExXMkZkbmYKbUcyN3NNcTBwNlpPcmpEV0tDMHloVjBDK2tFQXNra2dhQkRJV3FPMlZDdE5WYWp6bzFrZ01sY0pUZnd5VThVcVIvbThWdjYwSFh5eQo1RGx2V3lXRXBNL3dxRTl5VThjZGxZbk0zc2tIK29DSENuZnlpM1lKbG13VnlMemlQWFlkQWxDVEZzU3p1MFZIWmxlclptY0xLZ2xxCmFkTnRhZEszZXBTZUpybkpKcXAweWY5RDJCcW9PaFVVbmc3VW5BbUtYZ3RLWGc5STN3ekkzd3JJM2hsUW9CVmhJVFZpRUJvSzBwMGIKSkZ6U28zOER0M3pXci80RTEvMFNOLzdpbXVITTgrc3NKeDh6L0VIekhHNytESy83VFcvRHI0SjFsK04xRnlMR1M1RTZwSndFZEpJegphRUREUENqNjgyUWlPcUt1bVJ6bVNZUVk3MEZEUHFwM0lGSGwyNlIxU082UXpRekp3WjZZNUExa0hXSzhKMm5JaHl4ekhpNzBnY1Q1CkwvcHFUK0dWcjhaS1h1Z1R2NHdMWDhiTFQrTDhGMzh2M2ZJRTl6NTR6c1hRNVJWakl3UmhHRFdOaFZIZ1RXb2FKU010WFQ1cEtTNCsKaWEvWlA3VCtFRTVzN1g2ejRtZjljTWgxWHNOTHZZaHluMFNQbjV1alBvOFB1MmRvZVR1K2pBakJuZVRnaTFyd2tYcm5VY3Zkdy9PSAo2NTJUT3o0UGQvMUowVS9uZ21INkpMaVRQTzJWVEI4eVhYT3NWeGFnM0pobi9kTXk2OVU1NWkvbkdCM1MrdnVmclZnR2Z4cGJ5d3BiCnkrWTE4VmMzaTVzZGlnTmVCZW9UN2E0LzFHUTYxbVlqM0dPRG5OamlQTHJGZGFUZGVhak5mckRWdHIvVml0YUNlZXAzdUF5dEhyM1gKcHBRMVZDKzNWeFEwVnhWNWhYTmQxWE9hUkVYdW10bXVtZ1dPbWlXVzZzZU0xVThhaEt0MXdqVmE0VWFGNEVsbHhSLysvdC80WUd6Twp0T2wwREp2STVMTFNhTHNFRCtJRG9taWZPTnJiZ05vb2R5aUcvR3BTQUdNR2gydG5SKzFRcnpUaVYrTkRHbUhaVENvcU1hRm1aN0ZCClB6bE1UaVlUUzhmb1BCcjFQMzlmaVlka294MHdrdFF6azRGcmVid1g0UU9QYTJvRmhZZ2RQQXJnSUlmSnlzekNlRHdlRFdNZTNGK0EKUncyUm5ob2tpWlF6a0Juc2xVVjhFdEFNN2xNSC9iTGVnQUt0Y1J2UW9GS25IaVdPV2ovTDQxMnlPTm9XbEdnQ21YS0drZk9vOEQ3MQpiLyt3aHBXUnc4NkFMeFZiT1dYU24xYm9ibU5uOEZoTU5pK2RTc1ZzcHJuNFVGM1VYeHZwSFBmeEpBY2VWU0o0d1BENTVkVmNPcHI4Cnl1R3hzNW4wYkI2V3hXWHdNdE15c1BTS0RRL2lNVFR0TlF3bW55ajVjNytSTGlrODFNRXVWTWdGQmdxQzIvcVYrSmRWQzJiY3hhSEQKOTQyVGhxVTdMUE1CYzZqbmpYKzBlNUpEYnFhUk9JYmc0Zm8xYTJlZ253V0huWWxLbEpoY0ppT2JsL0hBUFQvMXZURFBkM29KZm1SVwo1OUc4OE4rRlEwRnhYd2VhM1lQUEd1aEFoVGdSWW5zeU9BNTJ5U0RBcjBTQzhEaEhFcm9PUHhTTjcxcFp4Ri8vNTNlZTducmhrZGlSCkIvRDlLL29PNTRWUHpBbWRtTjkxTU05L3ZMRG5SSDcvU3dYZEo2ZEY5MHpBMzVtN1YvVHc3ZkFMa1puT3llV3dXWXdwOTZWMWZDa00KOTJpQzNhajlUOTgxYWY5MUdURVJKaHU0SVI4enlSaENuM0l6TjNIVGUxMytyZkZmazQyWi91dUc3cStxdXE2SmUvc01uYWRYM25VWApsYzFtM3dZL1kwcjZsdWFHRUk1TG52dkRmYmF6MDV5ZkZMaytuMm83aDhwOTdCOC9aTHRJSnNFZ1VBaHFGT1Q2ZUszamtOWnVzRG1yCm5SNkoxNnRvOHFvYlBhcEd0eHJpZGFtSWFEeE9kWXRMN1hZcHpXNmwwYUcwV05RV2s3TGVLTmVZUkJYR3pjc2NaMlkwWHA3UitHbSsKOTJLZTk5SU1MMW9KUDE0TjBNT2VTek9kNzhQSDNPLzZaSUh6VEVOajA5NFc3ZDdOZFlmYXJZZTMySTV1Y3h6YjdqeTY3V1pJQUIzWgo2anJjN2o3UTd0cmI2dHpkWk52aHRyUzdMSzFPMUF2UjR6VFp6SHB6ZzhwdDF3T0FXcHo2SnJ2V1kwUG9RUUFpdGtlMTJwUk9tOEpoCmxkdXNNcUlBQ0EzL05KZ1VkUTB5cFZFbWI1Qks2cVUxQnFsUUt4TnFGYlZhTlVTaUZGY3JWWHlGcmtxbXJwS29Oa2x0aTlVSHB4bmUKR2hkQVJWdlFSb21wR1QzRDljMmtBb2pzOXdNQW10dGFDZ0JhNEMxZTVONjAyRlZTNUMyZGF5OVpXTGZ4Y1czSkJoMGErNm5RVjVicgp5cEIrdmdtZ1lnSkFqMXFiWnlNQW5Vc0FTR1dScVd4akEwaGxGa290eUVBaXRDRUd2M3dFUUkvc0pQWHp2UUZVUUJ5UUFCSjdSYzg2CnhnSlFpMjRuVVJtOXVWVzNGUURrVlRVMUtScGNFb05WKzdlcXJRQWdGQVNnVjBnQUJXVnZnWUg2Rlc4TkF5akpRQkRjZkw2ejVnM2MKL0c4aHgrY3ZiR3JLbzkrWGc3R3lNWFkrZHRmUFZ6ZmhqbDhITlIvamxzOEhUUmY3Njg3SGpaOGx4SVBxcVpOQ2pQR2dFNUlaMUtLRQpOUitOR3V5NXVhcEwrZllvL1pDN2Q2WHFCeTN2RXIweXBuNWl3dE1Sd1lzQndZdlJpaGZ4eXBjSHEwNzNiemlNVjUrNUlqaTRac0pECkV6R2dEb2JSMEExY2FORy85RFIwV1V4UGc5ZnZESXd5QmNzNlBLc1NGendmSWFhOWdEN2tXdmViQXo4YjlwSnIzUlAxenFQYS9DUksKbmxHYm54VmJVSTB6b1ovRWVBL2EzM1FFUUFuOUpBTW9vWi9VRmUrZ24rOE9vTVF4ZW5QQnpaQjEwQkQ0bUw4c1JjdmpyOHcySFNwdgptTG10WXY3bThzSXRwVVZ0NVhPYStVODAxNXBjMGdNdStYNFhBdERCUmlNNUNFUVdBd0dBanJYZkJORHdXakJ2dzA0M1dnemZaRk1wClRiVXI3WlZGWHNGc2ozQzJxN3F3c1pZRTBEd25NdEJDYXpVdzZGRno5YU1tNGFyNm1rVTYvZ2UvL1F3UEQ2NWN1alE5blFvWE0vakoKdU5mZEZldXNHdlRYRHFJVnlKS2hMaFVRNXhaQVFTdTl1OFJ4dnlUc1UrSzQxcUNhRDlkRlRpWXRrOGZNNGlJQTVYQXdYZ2FQUzZWYwp2clFlajR3N0lwSjZaakxKQUtyaEZ5UUFkQnVQdytXaEdhaHNOdmZ6eStWNFNCUHJGZUg5NnRRemtJbjB5cUk5MGxDM0ZMV3U3cEVHCkI1VHh2MVVIdjZvaC8ydHdEMGdJaFhnd2d5bWZua2pJcjhRSFZOZHUxTXg4NU80c1Jqckd3YVpQeUR5L3NPWW5QRlltbXdVQW9sQXcKVTEwaEFBZ2VUN1JyM01lVG5GRUErc1duYTNnWkdKdEYvMmNBRk8yV0RRT29DODJDSVFBRnRFTmZDSW9ldWgwQWxKbkpCUUM1YkF0SQpBTjJpQ0hvOEFLMWJQd3YrZkhONDNDeGUyb1FzTHZ6eU1Pa1lPNFBtMlBBVC9QWEhJc2Z5ZXZkTjcvcHdaWDkzSFh4dXFBT05TQVU2CnBZUjR3RGV5TURHU1JKeHRiQUIxZGduNy9iWEJmbDFmbHlIMFovNlh4eWZoWitZT25seUFueXFNbjV5SnYxaUF2emdIZjJVUi92S2kKNktsNXNkUHpoOTVmOC9XYlQralhQOENBSnhrdW5aV1p5MDdQblQ0cHQvdnJXZ0JRb0VzSmlBSDMvUDhPSVA5VmRjK1ZhdDhOcWI5TAo4OVhKRlQrOWk4N2hzSEo1N0RRbTUvUUx6L2JFOExWYlA3N1BlbTZHNTNLKy9mSTArL2xiQUdpeTgvTTh4NGNiSEh2MURxM2RKZm91CkFMS0NnZXhxQUpESnBLd3p5VFZHYWJGeDIxTEh5OU85bnlRQjZKTmtBSDJqQW5vRVFOTTlGLytQQU5SbzAzanR3L0U0aC9lSGQ2Q1YKOEFTQUxBcXJXVTRBQ0FIT1lKUXBHcVN5ZW9tNFRsS3RsNUFBcXRHb0FFQmlwYlJhcFFFQUNhWHFhb21pUkdwYXB0cWRyenZ6NHdNbwpzZXlMQkJEUjd3ZTEvQ2tpUm9DV3VJc2Z0NVU4YlM1WllpdFozTEJwaVc0REFHaXRycUxNZ0twL0JPcFNRaitWSklES2tnQzAzT3llClkzdDFqdTBzQUVoWXIxUTBpRzROSUhrS2dPYTM4cWZ2K0tjQVZMaGJzSEM3b0xwSnROMnBiVy9TQUlCMk5PbDJOeHNTQUlLMHRLalEKL1Y1OVM1T3l0VkZSMzZRNG9EUDcrWHRBQThNQXFuMFpBQlNTL2h3TU5DQkQ0MEJCeGR0aDVmdEIxVWcwWjRGQmNkVkhhS2V0aGdzdgpySFp4YU5rWWg0VlI0ZW1WQjNDWVJMbnpZLzRlM1BUcGdQVGRvUGxpci81Y1dQL3h6U210a1lTSWFUVUNWUitHTlNoZ3JFSFZTTlR2Cm9TamZKVE04MjVVbzhTRnFuRlBvUTh4empmVDFBZjFFYWw4bUY3ZmZwSS9ncFZqVktjZ2cvd1c4OHNWKzFON3dETDdwUkt6aVJMajIKZWV1TWpUUkNQK2taZEFxTmlnN1NLQmdGdVllYUJ2YWhBSWc0cUNTSWtrZS84Ni9QdEVYS2prVFg3b3V2SDluZ2d0alVBczE1cmQrVAphUE9UbVBNaWUvd2s5RVAyK01GSFZya245Sk1BMEhEZHp3aDlrcWU5SUtQMGt3QlFnajZqSnIrK0w0QytYR0w3Y3BFVlFreUhJUTlkCm4ydTUvSVJwcFZlWTExNk9lb1J1cmlob0V5eHFycXBxcXRsakUrOXoxMEVTQUVwTWhBR0FqbTUySHQ3c0lBMUV0b1RlNWFuZjZ0UnYKdG1ucXpkSzF0cXI1YmdTZ1FrOTFmaVBTRHhtUVVITG1XMnNLTEZYUGZmcmVVRHhhV3JJSm8yQm94SWFPYVZaT0hQeXlJdDRuRHZhbwpZMzVKdEF2TjQ0UjdKS21YYlRMdzNuaVBMTllqSmdDazI3NzV5WFFNNC9Mb1BDNGpONU9hazhHRzYzY3VMNGVaaHIxOGFqa2VIWGNxCkxmWE1aRzRDS0thdUtwOUZ3OUxnMmcwQXltVXplUndzZzU0Mlk4ckVYcDhqM0FNVVFCWFFxV2NnQXc4U0V2UUJnSlJCUDJyckhQcDgKVGYrdjFzWUcxT1NjVVdUa1lhRGJibG5xR2NnRSsxUjRuenc2cUJQeUo3TXhCcFhIeUVuSGR1Yy84OU5zTnRwT2hJdVlyMVBOeE9NTgpBS0M0Ny9zREtLajc5YS9XWnpIVFdNeDBBRkFPS3dNYytZTUFwRUNiZ1hRcjhDNTVwRXVLdWlEMnE0Ti9LcDErYnhZQUtBdllndEU4ClRnQ1FMdWdUcDZMbld3RzBlczEwd0NpUHhXU2hsZ1NzaWRsWm1aeDBGcDE2UnpiN3NtZjYwSm1pd1lQVHVvN002LzRES29JZTdFQTkKcVVQRXBoeHdpM2FaSlk1dk1RSTAwQy90N3hJR2VremROMVI0djlCLytlbDNiRFBlYlpyN2xqMy9UTjNEcjVnZWViRnU2aUhaQS90RQpEMjRwKzFuTHBydnIxajRrV3YzVDZmZGwwMmdjM2gxY2JnNlBSV1BNeTU4SWpnbjUxR1J4RC9MTmRSbXhGbXkwZS81bEFQSmRWZlJkCkZ3T0FmUCtRL2VuZ3NwL2V5ZVlBYzdtc2RGYlc1VXZ2ZkQyQVA5WjA5Z0cwejljbnM2eVhacUM5d0lnMVh5a0dtdTY4K0pEajQ5bjIKTjhvYzI0d3VqY01qY1hua2paNXhBZFRzVkxsZGFxdFREUUFDUUFDQWRFYUYwcVJjYTlxendQSHpSenlmRUZ0cVhJRGJaQUNOMGc5awptdnRTbmdNQjZBSFhKNHNjUHo2QVBEWjFBa0NKK1M4MEhXWUZBS0gxWDFhejBtUlJOcGdVaGdhRnRrRXVyNWRJNjZRaWd6Z0pRSVNCClZISUFrRUNGRnNQWFNoVVYwcnBWaXRaRjZzTS9Nb0FTK2trRzBPeTI0UXJvT1UzRmo3cEtWNXRLeXZRbHp6U1VQNmt2WHFGRkkwQnIKZEVnNWxkcUtLbFc1UUY5UmFhamcxd25RakJqcUE0VGVCVmxwc3MrM3ZqVEg5a0V5Z05SV0JDQlNQM1YyS1FBSXJRVWJBUkRxQ20wYQpCdERUem9vZkRLRENuVGNCTkg4N245OWMyK3JXdERlaVlaNWhBRFVibm0zVmt3QnFiVlh2Yk5UdGJrUVMydHlvTkRkcExvZzk4ZktqCkFjSHpRV0lXREFHSW1BVWJrTHlCSnNLSXVUQXdVRWp4SHVxT3FIeVBZTkNIWWZsSDhZYUx2NnM5TkJYTEFSL0FwWWpCWUdHVWRIaUcKeGFpMHA3UHo0c1lQOExvTGZib1BCZzBYZzlvTGlURWV3Tk0zUW80dGpkQUhwRFU0bkdINmhCWHZST1RESVJlMGsvVDVwbnRRSWlMQwpQVVJMdzBTaFQwejR6VEpud1l1UU9COXVuOGY1cDRMVmFDOTNmTjBSWFBycTJhZXNFNEEzRENwR3B3S0M0TUpBcFZLQlFSZ052WW5CCkpSZGVRbVpRbVhDQVBFUzMzN1VpV25FWTlKTzhyZWxOOTR5TS9ReFgvQkFOZnREV0ZvazJQeXUya1BwSm52YTY2WjdGeENaZkl5dmUKRTFYUG8vcjlqTnJ1ZEV6OWRNOUgrYjRBK21xSi9jb2kyOWNMRVlEZ1RUaStzc0FLYjBvTm9obnRGZWpWUWx0RlhydWdxSVgvZUp1Zwp6Vkt6eTZWLzFtMDQ0RzA0MG1KNXJtMUVQMXVHQVlSV3dwT3pZTTJXdlkwbU5BaGsxMjl6Nkt3MkpkOVNzOXdtbU8ydXl2ZFU1M21yCkUvUXBKRkxncmMxdlJNbHoxRTYxOG5lZmZ4WEg0eXFsSE0xT0FvQVlXUG44M01nZksvQUJXYkJIT2RRcmpuUXJZNTN5UWYrNFUyRG8KRXRzTFlpQkdnT0thVXkrc284TjFrWWM2NGt6azBRQkFhQnlJeDRVN2QyK2JoMGRHdStlN0FBanR4RTRBcUxKa09nbWdiQTRqazBISgp6V0xDTmJpOGVBb2U5NGE3cStBeUR3WktQUU9aSVo4VUFCVG9nVnVpanFkSE5mRG0wc0JiajhZRG1yQmZEakNLOUJHOWYzeXlJYjl5CnFIdjBweWNTQ29BcXF1SEJIRDR3aDRHbHMzSnpXSFNzZG5MUkNJRG84S3N0cTMyWUJGQ3MrL3RQZ1FVMXYvdjNUUk80VkNhRE9nd2cKRHRyMzQvc0NLTktGbG4yaEUzYkp3WE1EZnFLZTV0L1dUTDZEemNzZ1I0QW9qZTRmRHFCMTYyZGxVTkZQbHMwRUJtWEFRVFl2SXhzWgpPdXVwR1JrOXp4ZEVuNXZXOSt3Yy8yc3JRamMwOEJQc3Z5RUc5NFNKUWlKd3owQ0haR1JBYUd3QVJhNnJRditvalhicUE3M0tnRi9RCjgxZDE4YU01R2ZDcnhXQ2dqVTdwVkM0VGZhc1o2WndNYWphU0dFYkpaR0pJeFp3SjJYY3cyQnc2L01vOXVmSnVjZzFhZjRjVUV1aUUKaHlFWjZKQ2lwTkRuWHdNZy8zVWxuTUVQQVBwenplZmJGdDkrTzVlYnlVSnRTRy83NlIvLytKdmZYUWt1OFp5ZjVQa1U2Rk5ndi9TSQorK05wVGxRUVBRcEF5RURPQzQvWVAxcHFPMTF0YnpTN2xVNnYzTldvYW5hcnhnTlFrMHZsY0dvc0RvM1pxa0pyeUUxeXJVa2xONklkCjRHYzczZ2JXekhSZkJOL004RnhHZzArZWM2UGNRL2FEaHNCSHpySy9OOE4xZ1FTUXNha1pBTFNuemZCakFRamMwK1RVUVJvZGFDTE0KYlZXaFd3UWdGUUVnc3Z4WldXOVNnWDQwOVRKNW5VeGlrTlRxSkVJeVdoa0JJRVd0V2dVQUVpclYxWEpsclZRbWtPbzJ5cDFQS3JiYwpBa0JqcDNCcjVaZ2hTNTZUQVpTb2ZVWUFhaTBwYUNtZDNWeTYyRld5eGxqQzE1WlYxQXMyNml1ZTBaU3QwcFN1MXBadjB2SEx0WldWCjZ2SUtmWG01b1J6ME13cEFUeGlOQzZ3dnpyTzkvNVJwVDNXOVJ0RWdWcHRsR2l0UkFVM29KeFZBeENDUVVHUVU4RTJWcXgzL0ZJREkKZzd6ZC9ObmJLMHRhYXJ3ZTlRaUFrSDRRZ0ZycVNBQnRhZFU4MjZRSEFMVzFvbDFSMjl4MS84dHZ4NHRQQW9DUWdWQVowRXVCMnBjRAo0dGNHaGczMDg2RHNMVEpJUXZKM1FVSmdvTGp1WXEvaDNVMDVCUWcvRENyODlYSnBHWFNNQm4vekdKdVNnekhPci9QaURXY2pxZy9pCm1ndGgvWVVFZE1na3hwUElrWjZJYW5pd0p6SFNFeWE2K0l6MDhrbGEweTU5SFpVMlM0aVJIdkZyQ2ZRa1dqbC9zOEQ1Rk9rZWtqN2cKbmxqbEMwUk80aFVuUTVYUHdmRmc1UWw4MDlGZzVhSEtuODdCMG1ob3ZJY1lCQUw5QUhOQU94UUtoUUUzR0dKUU9qa2pCa0pLcDAzQwpPTmRXdCtMRnhPVFhtajJ4TmJzUzljNnhaN1luMXJvblYveWdVWi9IdDhVZnU3blFIVi9XanVoRDdHdEJKcm5GYy9LYUwzTGdKMm5OCmwrc2JXMzBscmZsS1hmWUYrYjRBdXJIUWZvUDRZTFFNZnFIdEgwdnRYeTZ4OWM2MjdhcFN6RzZwS21vdG05OEtBS3JNYjY2WTIxNXUKdEZadGRXbkJRSHU5cUJUNldJdVZOQkFBNkxrUkFFRVMrNEx0OFJyM09PdTJPOUhUaDhJaVdXMFd6bk1pQUVHS1hDSXlzMTJpT1c0eAptWGt1Y2FGWE5zVlUyZnJHU1FCUWs5TUpGczNpTUNrMGJPWE16TkF2aS9HZ0FtMGQxU2RHT3h0MEs2TURhUDVvekVTSUVScFVYdU5YCnhTUEtjMmMzc05Jd0hwdWV4YVZQNEdia01qaHcvZWF3VVhjY3IzTU9XSXZRekJoSlBUT1pRV0lqTUJKQXBSc2VUaytqOEFBRUhFWTIKbDRaMkQ4Q3daM2M4aGtlTStJQW8wcW1JOUVwU3owQUdBQVRuUVE3b1FRMmQ4V3VTd1BOelFpZm5JSDcxb1QzWUIvdFJ6eUh3RnQ2TAo2b0ZTejBBRzhEVFlKY1REeXYvOGo0MjVERG9uSjRmTnBSVGRkdGVkV1NBVk5wdkxnRjkxWWNVRGVOeUVwc0M2VVEvcmNUSU9nQUxLCi8vNWp4WjBUR0FBZ2NFOHVtNEVBeEdWOVh3QkZVZlU2K3JrTWRVbUFwOFJQVS9mMXA2dnV5MlZsTXNnYUlFcXpGd0NrQ1JFYmdhVzYKNTlZQTJyQXhuMDdCSm1abjVXUlJVUXNBTmxvRUJ3ZHdNWWUvNjVOMUQwUmV5US90end2c25SSDY5ZHFRL3laNlNBT1IraUZtd2NZRwpVTHhESDd1bWlNTm4rUlg5ZmpVKzZIcm5IUVdWeDJKbXByT3k2Qm1aRkZaT09qdVh6czVsc0hQWXJHeFdEb2VUblVsTXlXVnlNN093ClRQZ2dqTDFoZmNGUXdCRHNCclZJU0FBQmZZWU5sRUtmZncyQTBPVFhWUVZxdFBoN3dkdWVoVG5abVp4TUJvdE5mMmg2UWFmdjJ2dC8KdURiVCtONzluczltdWk4VkVodCtBWUFneVFBYU5wRHpZcDc5dlNldGg1VTJzOE1sZFRZcFhGNTFxMXQ5YXdCWjdYcXpWVzAxeXh0TQpjclZKS3pFYUYxbFA1em5lbityNmVLYnJ3aXduMmdVTWt1ZithQmJ5RUFyY241d0VnTzUzWGdJQW1SdWI5N2ZxOXJYK2FBQ0NORGtOCkxlNTZDQng0N1RxM1ZlTTJnNFEwTG9zYURmK1lsQTBtbGQ2a1ZEY29GUFZ5bVVFdTFrdHJ0S2o5RCtwL3FKUFhnSUVRZzFUVmFqVVkKcUVhaEVzbVVRcW0yWEdyYUlIWDlYd0ZvWk1PdlVqaVkwMUl5cDZtMHNLVTB2N2xrdnFma0tWTnBxYTVVV0ZkVm9lTnYxRmF1MGFDcwoxMVpzMGxlVTZzcmhYV1g2TXFBUHFaOEVnRlkxNkJlWm41dHZleGNBSkd6UUtJMFNOV3A1TkM2QUZPYlJBRnJRd3AreC9aOEZVTUdPCnlnMnQxVmF2RWdDMHBWRUhBTnJWVkVjQ2FIY3JHTWl3czFrUHQ5dWFOZHRhVkszTnF1TW1rNzkwVjN6VDg4Rkt3a0JWcDBMVkJJQUkKQS9XTDBWQVFPUjEyY3pSSS9tNVkrWDYwN3FOWG43RHlNQnJHeEtnVUxKT2FRYUduQXhkdWgzdm9HSlBKMUQyNHNsLzFPcTcrYUZCeApGbzBZS2Q5UERpaUtUUElrVjJLWUJ6SW9mNU5NY2krZnlFaUpEN2lIcEErSkhzSTlyMFNyaCtrenZMQ3I2bFJFOEdLVWZ4cEZNRXlmCmFNWHpzUW8wNFJVdk9SNFNuTURMVDRaTGorSFZMMXg2ekRTQldQYkZ4Q2daNENBS2xVWjhPV1RoTS9BdUhTMEZTMk9oZ21oaVBDaWQKQ2xZNlBiTVMzM2dRWDdjUDlJTUF0R1kzQUNpK2VrZjA2VzJ4VlR1RzE3cVRBejlFWitmRVVxL1lTRzlEbENVSVFBbjNwTkluYWRwcgp1TmxQb3QvUGVOTmUzWE50RUpJK1B3eEF2Z1dPamdYb1BGY1dvZEVneUJkTDdUMXpiUjg5bzN2Q1ZaUFhXanF2RGY2SUtndWFLdUF2CnFOSmQyV1pYYlhQckFFQ0h2TWJqVFpianJUYlF6MUVDUUdRdlJESmtSOFM5amFablhXZ1dyTW11TlpvVlpjYWFSZmFxUXRDUEd3Rm8KTnBHNVR0RjhwM2loQTJXUlF6ekhKWC9FSkhTY09nQUFPckp2SDd5YXptVm1zRElvUlZPNC9SK3V4b1B5UUo4VTk5ZUVlMVJEbllyQgpBWEhLOWZ2bWhSeGdnWVplZXRYeHNQejN2eSs1blV1RFYrVlpBQlEyWXdLTG5jT2pzdG5VRENxdFFUY1h4M1dwOVBsV0FNRXRDYUJOCmF5ZlRLVlFBVUE2WE9TRXJuWjJld2FSaW4zL0tSMDJvZytMd0RWV3NmOXp6eEh6b050QXJCOXpnZmVyWS8xUUdqaGFFRHhjTWZNSEgKZTFHN0kyU2c3d0FnVkV2a0UwWDdwTDM5b3Z6cG1SUWFsY05MdTRQTGhxOGFFTURoc1NsWVd0bkd1L0dZS2Vxdi9VRUFrbjN4dDlyNwpmOHBqWkZDeXVJd0pIT1lQQTFBYzlTOUFIeERycUluMWlGRU5VTWowMVNlcmY1Ykp5R2JST0J4Z0t0YldzaEIxai95aEFDS0xvTE16CktTQlJ0SmtESngwZUo1ZWJSczFnekozQnZ2N3ljdnowdk9DKy9QN25KL2Y5WFJMdjE4S25rN1hQNUxJeXNoSm9QQUQ1ZTZXaEhrVmYKVjAxM2w5cC9UUmYxMVF3TldwUzY2VURlTERiako3bTVXU3pPYlZrNXVWd3V2Sm5EWmQzR3packlvK1Z5TStGM0k0dUhUY3pNVGNmbwpRbEVlSHFvUGRNbkpFYUNCNUVHZ0ZQcjhhd0RVZGIzVzk3VWNQWVpmVmh6VjVzR1BsNTNGcE5IVDVpMWFHY1ZqTDF6Kys0T0c5KzcxCmZBN0N5TGVmZjhSekNYVkVKQWFCa2dHRTR2aTQwUGJtUnV1dWVydlc3YWx4ZUpVdXI3NXRmQUI1WEFxSFUyZXhHbEFGdEZsU2I1SW8KamJwYW8zMjI3YTNwem90VFhaL01kSHdFbWVaR0RSanpuV2RIdVFjeXcza2U4b2pyRXNBTGxXQTdMaTF4dm14cGF2bHhBZVN4YWNFOQpyWjZHOWliemxrWnpxNnZlYTlVNmpVb1NRRGFUeW1SU28rRWZrd3IwSTY5VFNQVXlBa0NFZnVEQUlLc2xEYVJSb2FqVUFLQnF1UW9BCnhKZldnWUgrVHdCVVFMaUhCRkRlNXBMWnphWHpHMHVMbWtwbU5oY1hla3VYMlVyWDFwZFc2L2dDTGI5Y0t5aldDTlpyK1d1MDVXdjAKWldzTlpadTB4Y1c2RXBJK2tCSWQyaENqcEk3L2RMMXFzZmtvQUdpVmVTOEpJSzFKcHJlSUV2TmZFTDFEalBiRXNOWWtBQ1F6M1FUUQp3bGJCRHdBUUJBQTBlM3ZsbkIzOFdjL3k4M1pVckc0VEdwdVVtNzAzQWZSc1N3TUpJTWllUnYyMlZuMTdpM3BuazZxcFZmVysyaG9wCk9SQXFQa1VDS0ZqMUFya1dEQUEwSUhvVkVoZ3hVRWlDQUJTVXZSVld2RE9vZk45Zi84YTZuRHhrQVE0OHNWRFlOQTZXUnNHNGRBWUEKaUVVRkpTeGgzdGRiOTFaYzllR0E2b01CNmR2a3hGWlk4ZDZvUkJSdmpZWU9ZWjFCYVZLSXBleGtTUG9NMWc2N1p4Q2hKNUV6RVNGSgpuNWNRZllqRUtrL2RwRTg1MGsrMC9MbEU0cFVubzhXSEl6WEg5Wk5Xa0lNL29CejRodzRSYzVCekFFQVlHZ21pMGpGS09vMlNUaytqCm9uZGc2ZW5wNjdJZmpxOUI1VDVKRzN2dGlEMnpQUTU1YWlTSnNaOGsvU1I2RzVMNndVZlFjM09EQzFJLzg1RjdSdWtudWQvUEtQMzAKekhlUTlCbWxIMERQOXdWUTEwSUhvQWZPQTdkL1hXYS9zZEQrajhXb0V1aXZTMDE4c3p5dnJXSnVhK25jbHNyNTN2TEMxcklWemVWZQptM3lMU3dzQU91SXhIdldpUWFCa0FDVU1kTGpWZnJCNWVCQm9zeHNCQ0o0bWFodkV5NnhWczEzVjgxSDFENkpQY3VhNTBBalFiS3Q0CmxrMmtPckE1aHNmZmVlY3RDaFhMemtETm9DZmR6ZW80OHhqZUx3ME1TUENlbW9CUEFRQUs5ZFdtWEwrVEwrUm83Z210d0FwS3Ixem4KVDczM05nN2FLb3VheTJibU1sazV2SFM0S0thblVXb3FaZzdoYURaa3pLU2NkampKQU5xd2VoSUFpTXRHQU1ybXB0RXgyclJKMmRldQpLV045Z0JoQjlMbzIwaXRLUGNQTlU2RnRQUlI0cHd6M3Ezdi9mVzNvU0VIb1VQNk4zenlOZDZGVllLZ01xRTg1aUhvT2tWTmdveitkCkRFQXE3b2VydUNRU1V5aVVNK0dYR2g1UEppZGpJanVOeDJJQ2dLaHB0QTNQL0FTUEdna0FqZnQxalFlZ29YN0p0YXV5aCs2ZmtKR0IKQnRMK0dRQVJJMEFBSUNFQUNOVUFCY3gvT2Z2NFQ3bG9tM1EybXdsL2tWdmJsd0tBZ2oyMXQyaUVPQjZBeXNybkVxT0diUEFvMmdlTgp3d1lBWmJJWm1XeEtkaGFIenFUc1VNN3NlWEZoOVBoYzM3TVA5WDYwT3VFZXNnQ0lyQVFpanNjR1VMZXZwcis3dHJkRDR2ZlZEWFJvCjhLNHFmRUQ4djMrcG5QcndCR29hTmpHSHkyV3lzbG5aSUo2Sldkd0pXUmxaekt4c0RqTUhVTVFCaDhKM0REMk4xdHVtNCtHNlFMZXMKdjFQUzF5RW1wK0hnRmh5V1NwOS9EWUE2YjlUNHJxaUNONlRkWjljMGx0OVBwMlR4SnJEZzZiMnlTaGJGOFcxdi9QdUREZWZ1Yi96bApJNDV6QUtEcDNrOUdBV2lLOVFJRURpWTdQcGxuKzNtRmRhdk5JV3QwVjlrYWxVNjNvZDJwdVFXQTdIWUFVTDNackxLWVJmVW1rY0pvCnFESTY4eHdmZ1g0ZWRsNmFaZjlnbHYzc1E2NVA0YzFVQUpINklRRTB5L2J1alA4ekFMbnRPcTlkQndacTh4cTNOVnUzTlZvMnV4cWEKYlhxUFdlczBJUUFaamFvNm8xcGpWQ3JxbGRJNnVWUXZGMm1IQVFUNklRQ0UzcXdsWnNFZ05XZ2lURjhsTi9DbGVqRFF1QUFxYk9lUAptWUl0RmVOa2JBRE4ybHlHQU9RcEtmSVdUMjhxbWRGVXNzQlI4cVM1VktDcUFBRHh0VlZsT3VFR0RRTFFLbjNwcXJxeWpacE5BQ0J3CkQ2a2Y0cUN5ek1CZlhhZGNhajY4MFBvMkFTRGRyUUdFVnNKYjBDellqdzZnbVRzcm50NHNyRzlTSUFCNTBSVFlLQUR0OCtnMnQrcWEKbTVYUE5pcThiYXBmU20zUjBzTjl4V2VDL09kQy9BU0FYaHFvT1VNQ0tDaDZMZGxBSXdCNjl4ZWxXeWFDQXBnVU1BS0Z5dUNrWmJMUQpDQXFHMGVrWUUvWE9lUUJqLzJMTjFxaitRby8yUS9pVVZQcUU1TzlDd3JJM0lLbldDVXRHSW5vOWtZam9kYURQS1AxRWhHZUl2SlNxCm53aWZuUEFhclo5NDJYT3hxcE94dFljR0JjL2haU2R1bEQ0N0Zjc2xwcnBRcVE5R3AyQVphSnlIZ1ZGWWFXZ3hQTG9uallyY1EwZGYKWWpxNkI3MzNEaW9uOU5UVzZPcWRhUEpyM1o3aHNaK250dzBCZzU3Y0JnSDlrTU0vNUtidWtFU25IMUkvS0VrQVNvVFVUeXFBaHZWRApBR2pVOEU4UHVkTjdDb0JJOUl3SG9BNjRmeVJvMm1za0hZc2M0QjQ0NFJkTDdYOVpqZzVBUmY5WWFPMmRhMU1hRkxNMm96S2crYzJWCmk3MFZjMXJLWnJlWHVpMVNlRHBEVTJEdWhxTWVOQWlFRnNOdmRTWUFSQnFJQk5EK1JyUTVmS3RiQndEeW1qV3llc2x5UzlWY1YvVWkKUjgwOHg3QjdaaE1UWVlWdVViNEhaYjVEV2VDVWJtcHVDT0pEbi8vdWwzUjJPcGRCNDJTazNaWkwrK0xRZk54WEV4Z1FBWUJDZmhYZQpwUXIyandzTG9qd0lCVFh4QzByN1ErSUZNeDVrVWVDaVNKM0E1bVNqalI1cHZDeTQybExXUERWcE1Fck9aNDJSMURNUG56OEpRT3VlCnZqOEJJQTREWTlQWTYxWVZSU0wxOFlHeUlWODUzbFVmN3FsSlBRT1pTSzhzM0NOQkFMb2h4WHRVblo4OUFRQUtIczcvNHZ3Uy9JWWMKSjViNkE0QUFEU05GMEtQUFFHYW9TeEx2UVV1WmNGeC80cVhTREFxR2xybHhHWEFWNHpJWnhBZ1FkYzJUdHc5RkdnQkFNZCs0a0JvZgpRT0xPRHRVamsrOEFBSEZaNlFBZ29ONFBBRkMwRzNVK2pQYUk0MTBBb05wK1ZQeGsrTjNQRjk4RlNtQmxzRmdNZUNHeVk5c3lIRmNFCmZEVS9BRUFiTnhYQW4rMkVyTXpzVEFvOFBBQkhOaThESkhRN2w4Tmgwem1NOUh1enNWKzFUOGRQRmZxT1BkbXpiOGJYLzFNTStJajEKYWNpNU1ISTVHSkd4QVJUcFZrYzZxcVBkT3JRNUZ4RHRhMUgwdWk0NnBILzJvSnJCd2RnY0xDZWJtOFBOem1SekptU3pzbmhwbVpsVQorQmJ4dURtOHJFd09XamQzQnp5OU5MVXZBd0Nodmo1ZFVnQlEzM1VSL0w4QUlHU2dGUHI4YXdEVTNTbnlYOU1Gcmt1dXZMcGM5OFNFCk5JeVRjd2NQbmlTMzdqZ1FHSXJyOTc2TDlpMXYrdlVNNTBkRnJvOG5JM0JjaGlUS2dKSUJ0TkQydXREYTZuSkltajBDcTFmaDhCaTIKakE4Zzl3aUFyQ2FOMVlRQUpETVpxaHE4cUpqYTlYa0NRRk9jbDZjNlA4MXpmRGltZmxJQlpHMXUvWEVCMU9pcWN4UFRYczBPdzVaRwo4ODRXKzQ1bTIzYVBlUVJBbW1FQU5haGw5UXF4UVRZS1FMVjFjcEZlTmd5Z2tVb2dnYktPcjZnVHlBd0NpUjRBSkJ3enFXTS9JMGtxCmlHNnZTRTNCNXZLaU52U3lsY3pzNWsyRkxadnltMHZ5bXNyelBPVkZydkw1enJMNWpvMmJESUp5WFlWUVhWYWxGcFJvYTlab2E1N1MKVlR5bFdROE1XcTB2VzQxR2c4clg2U3MzNnZtYmRQeGl2V0JEbmVSUjA0NUZsbGRXbS9iWE5OU3BHbXAwSm5HOVNXV3dpdXRHQUZUbgpRQjBSU1FESmlENUFpU213TlhZMEJUWnpLNzlncTZCd1cxVnlyMmRTUEtudUtTS1hnTzJvbkx0VGtMY2I2UWNNQkJKNnZMMUs2NUcyCnVIVmJtZ3c3bStvUmdCcnI5cmJVSVFPaHZvaDFlNW8xMjlvVWphMmFnemJid1BydGc1c085VlErRjZnNE1jQWZuZ1hyRjU0YXFENDkKUUl3RCtjU3ZoS3BlNnBPL0ZxNTVPU1o2clVmMldsVDBKcTc1cURiL3NSdzBYRUxGNlBCcW1aYVJsbzdXU2RIU2FUUWFscEhCeHFnVQpHdmJzY2dsdXVJaFhudzNJMzBoTWFVRkk5SXprOVVIcDYySEphMlFHUnhJV281R2VVZU05Q0QwMXhDUVhNZGhEaWljaU9BMFpPUmgyClQ0Ui9NbFpKaEpqd0l1a0Q3a0gwS1QwT3dUY2VDRmNjd3pjY3d5dU9uM2xNU2N4dHBhV0JiY2I1Qnp3YWZWY2FHaVA2Y0o0S1gzOHcKOHN5TytOcmQrTW9ka1ZYYm8wL3Z3RmNTNjlzVElZcWRoM3NiRWtNK284cDlJRU1MbStQRXFNK29nWi93ZkRlNTRoMVYvTXdqeERQUAprVWlpN21kVXlUT1pVWU5BWXlaNTFJY3M5eUZ6YllrRGNuV3hIZkkxa2E4VzJTQmQ4Nnl2YkRKTTNWcjdxS05pWGtzNVpGWkwyUUpQCkpkOVdCVTllQjEyRy9XN0QvaGJqYzIzMms2M080MjN1aEg3SWpvaEhXbXlIbWl3SEc4MTdQZVoyajZITnJtbzNxK3FOc3RYVzJqa08KOFZ5SFlxNVRRbWFlU3dwSnZEbkhKYzEzUzFZMjY3NElkZmQwWFB2WmhGdzJBMjFBbnB2Qi9OM202WU0zQkVNRG1nR2ZDUGZMdzMyVgo4WTV4cDNKaVBpWGVwdzMxQ09CYUZlOFREY1dVZ29wSllOb3Nkc1lFRG90SG8wemc4YmhjYWtZYWRjWGNld1A5aW5pdmZMQWJUYWlSCmxVUGs4UzBTSWRaU3dTVjhLRksvK3JGSmFBWUVMdUhBdFV6VVQzejM5cUp3ZnpYZXA4Yjk0cWl2aGh5T0dqTzlBM0s4WXlQdWs0YjkKMGtGZk5mN3V2Sk9LbWE4NzgrT25DZ2I4U3JSYzNDZU9Ea2lDZmxGZ1FEYlVxVXc5QTVrZ1dBMCt2YnNlRDhyLzlsZnBuYmRoTERxYQpsV054MkxrY1dpNHJIYXkzNm9sNzRpRWw4WkRHUFU4eWdKS0Q5NnA4bllwcEQxUG82V3d1MElkSno2YXpjaGpabVl3c2VEbFJ1ZmJlCm9ZZ0JNQWZmdDVqZkhPelVwdEtIVEw5UEYrb1J3dmNFa0JUeXFRRi9lRmo2NGY3RjZWUUdqMGVCNzJFNlJ0MjUvZEU0ampicWluVlYKcDU0aEViSUxWSVJZS3hmcUpsb0poQTBsWlhud1VpYUxpNHE5Y25pWk9mRDR3R3E4ZENhTGs1dE55ODFscDJHM3JaakJ2UEphL3NEUgpSOElIRi9RZG4rUHpWYUl0VnE0cDR0Y2JCanVVL3A1cStMR0dpRlh4bzBLT0VxWGVEK25xRVMwc3ZDY05RMzBXZU9rcytKNW5abVprCmNMbTVXUms1VE01dDNDeWdHRHNMUTZYRmFiU1R4eDdIZ3dZU1BjU0FFNm9CZ2xzMEVVWk1pcVdtdTBmVzFTWHB1aUhxN1piNU8rVTkKMXlYQlRtWGZGZkhBRlRSbzVMOG1nWHY4TjhTK0RuSG45ZHJ1Ym1udjlmRXlob0Y2cmtvN3I4bDlYZUtCLzZydWVLNW84WXlmcFRPeQpjeWF5NkducGI3N3h5dUFRdm16YjUzZGFQd2RlVEhkL09zdDJMbytZQzV2cHZqVGRjMm1hOCtPSDdVZy9VK3dYcDlndVRiSis5b1J0Cm45cXBjcmhydlc1bHMxUFQ3RmE1VzVCNFNQMFEwVUlBUUJDWFUyVnlxaXhXaGRtc3E3Tm9UU2ErMHFSK3huSmttdXRpY3FZNkx6enMKT0k5aXZ6Qm1IclJmaGt5em5iM0grdkV5eCtuR1J0dnUxb1k5bTAwSE4xdkFRRWUyMnNGQXlRQTZzaFhlZEI5R3ZSQTlKSUIyQVlDOApWZ0JRbTh2YzZEUzdIVWE3eFFBc2MxZzBSQTJRR3NXbWFiU29JWnZ0ZFRzYnJmdmFYTHZkN25hYjJXWFVtaHJraG5xcHBsNm1xcGNxCjYyUnlyVktzbGRacXhkVjZFVVNvRTlmcXBDTDk4RnF3NFVvZ3BWb28xd2lrS0ZoQmU5V1lTWEhQZHdVUTZDY0JvQ0lBVU1zR0FGQUIKS2dBcUF3QVZ1TXJtT01ybU9VbzNHSVJsdWtyVTlsQmRXYXFwWHFzVnJ0YVdQNjNaOEl5dUZJS213M1FWQ1FCQkFFRExUZHNXV1UrdgpOdTBsQWFRMTN3cEE1Q3F3WkFBdGF1YlAyaWI0d1FDQ0FJRGd6cFZicXRRZUNRQ292VkVQQU5yWmFCZ1RRSzJ0MmhObUp3bWczc3BqCkFLQkVHUkFFQUVSV1EvdEZCSUNrYU53bFd2c3E2aEF0ZmJPLzVyVTV1ZmV4MGJ3UURVUG1vWk1Bb2pBWWNJd3hHR2lwRkFWcm1sT0cKYTgvaE5SOE15RjlMVEc5OVkyNUwra2FDUHFSK3dEMWt4dFJQQkJYNmpLR2ZrU1QwZzhxY280Q2VjZlFUTHptT2x4NE9saDNCTngwZgpxampXUG5NOXF0Mkdyd0NqalRiT3lML3hBUFRDREFHK2JtL282ZTJEcTNjQ2dLSlBiVWRidXljREtHazdkOVRkSjBVL3c1TmZJL3BKCkFDZzgzMHRrV0Q4a2dNYlV6ejhEb09SUm4ydUxrcElDSURJZEMyM25uNmtyYkJNdGRGZk1hYTZBdjZDQ3BySzVqWlZsZG9IRHBVRDYKY1JzT05CdVB0OW9TQUhxdTNVV09BNUVHT3R4c0JRUHQ4MW9BUUpzZDZzMFdWWU5KdnQ0aVdtQ3JuV3VUSXdhTm9PZW1mb2c3WnpwcQo1MXRFLzM3OXI5RmdmK0hVaDFrWkZCYVR4cU9sZit5WVBQQmxDVDZnQ3ZyRWVJOHMxTXVQancrQ3dVNVpyRWVGQU9Rak92SEUxZWI2Ck9SUUtMWnZEbU1obFo5RnBPUndPQUloQm9TMHB1RHNVMEpEdWlZNEFpRHkrUlJJQWlnL1dQYjM4L2dTQU9OeDBGZ1Y3L2VVMWVGd3oKNUZkSE9xclE0cXorY1I5bm9GOFY3eExpWFhLME1jS1hsZUhUK2JybFA2bGJNeEUvTlNkd3JTYm1sK0hkdFlOKzhhQmZHZ0lxK2NZRgpIK29EMUYrTGQ2bml2ZEpBd0xKeStaMFpGSHAySmlVWlFFK3R2RGNlSWswMjd1TkpwYzl3T2lUOWZtMUJIanNkV01XaDVHYlNjcmxwCldSd3NoOGRtWW1tVkd5ZmpROFpCZjIyZ2d3OW9pL1lMVTcxQ0p0Um5pUFRWeHYyaWFJOFlBQVJmRng1V3ZMdDdNWTJTa1FEUTdwM0wKZnl3QWtjTS9BQ0FlbDNISFJFNDZEY3ZPek1uRnNMMlMreU52TFF3Y3pPOCtPSy9qL0JQQXg0RU9DZTdYK2Jza2dWNzRZb2ZiQXFVQwphTXc3SVpHUTRlZXZWMlJ5TW5nY2JtNE9sc1BOeU9SUTBkN3ZIR28yZzUzTFFoMkoySmxZSmp3aVd2cWJyNi9EQS9vRWdNajFYN2NHClVOOTErRWhaOElZMGNGM1NmeFZsc0VzVnVpNGY3RkNIYnlnQ1Y2VVFlRE44UTlaL1ZkUjNwVGJGUGQ4Q29PN3JpbTZmeFAvcnNyL3YKelo5MmZ6YWRtWVBvbGpQaFY3Lzg5SW8vbU8vODRDZW1TOU9zNTZhNUw4OTBuSi91K0dTRzYyTUlzUnhzR0VDVGJTZ1AyUzQ5Ylg5Vwo1MUs1M1NJQ1FHZ0ptS3NKamZva0E0alVUektBVENZdEFLakJWQ1UzcWxlWmo4TnBwem91VGtYYnpzTTV6MCt4bm9OTXRudzBYaWFaClA3N1BmUEVoOC90M215OHNzNy9RNURILzZBQnFzbXZSU0xZVkFhak5adGptTnNHbkhHaHEzT1YxdE5qcmJDWlZYWU9NQUJDcUFSSnIKNURWcXNVQlRXNld0cWRMRHJhaEdLeEhyeGdCUWxVeUxBRlM0dVdyTXBMaG5kRkpteDI3cWh3UlFFWkhDVmdRZ2VCTUJ5RnVXN3l3dApjRlRPZGxTdGFaQVYxMVVMZE9WVm1ySXlEWCtqVnJCZVc3Rk9Xd0lNZ3F6UlZRQ0FOdWdxTjJvclNRQnQwdGV1TUxVdnNiNnd4dmhzCkFrQjFGdVV0QUpRb2doWVkveWtBemRzaEtOaUZBQVFTZ2p0WGJLbFNOQTREYUVkalhUS0FVQy9FWmowQzBHYlZ0bWJER3daUFlQMHUKQktEeW93UGxhQkNJTk5BQTBST0lORkN2NkV5bytveGZmQWIwQXhicGxieU1xOTcrN2JwZFdRQWZNQTZkRGdaaTBoakUxQkFGeTZCVApxZWtZZzVWT3JDTlhUMTR4cEhvZkFCU1F2ZnBOOU55YzRRcUpYdzJOb0NmaEhuS2VhOHhDbjlFRFB5TmJXQ1RtdkNBa2ZZYVRtUE1pCjZJTlNmQXdDQU9yYmRBQXZnZmNlRlV5WWlkbzkwMm1VTlBwbzQ0ejhHdzlBTGZjOEZWKzlDd0FVWEFYb1FkTmVFSHo1OEhidUNmMUEKeUZYdXlmb1pOZWVWUE8wMW9oKzB1M3RDUDhuRFAyUHFKeGxBeWZyNXdRQWlEWlFNb0t1TGJYOWMwZkNVVTVyZlZGbllESDlIYURmVApPYzJDZFhaQmcxTysyNlUvNEtuYjM5UndyTVY2b3NWeGRMT2IxRS9DUU9RZ0VCaG9iNk5sbTZkdWkxT3p4YWF4bXVWbEZ0RlNxMmllClZUTEhMcDNya0kwSzNEbmJKc2x6aVl1TXdyTi8vRGM4SG50aUtkb2prOGVtTXpIcUtlWGRmWDljaC9jVDIyY0NnSG9FYUNIWTZPdjMKU0xwbDZETGZCeGQ3VmRSWGc4ZFUrL2V1QWdUQUpXb0NoNVhEb0dlejJRaEExSXg4MUxBSDdldE9vaWRHbEU1L0x3QTl1ZlFlY3JVYQpBSWpIUlgyWUw1MnZ4Q01xQUZDOFd4VDFpVzZ4Q2d6dEh1clQ0SjNLMklBNS9GK2JBdkQ2KzhITXhRK3o4T1B6Zy8rOUVSK1FobnNrCmtTNjBXQ3pjQncvc0ZsTis2cUcrR2hBRHNBREhiVTdIZkhqSmtzbW1zTG1jSERZMWw1bEJwV0NQTDc4N0ZsVGh2UkkwTFpoeWhwR2sKMEljY0FZTHZlZGk0WlA2ZDZkaHRIR1pXSmlzcms4bk95V1F4MkdpdFpObjZ5ZEdJSnVTdndZTzZvVjVOZjhlYVZLK1FDZlhvQm50cgo0bjRKQVNBbGZHZndrUEsxOW5uVU5Eb2FXT0xDVXdwMXorN0hmaFFBWlhONUNRQ2hvaVZlR3RyRE5ZZVpnYVhuVCtUKzl0RGk2T21DCnZnTnorL2JQRDMrTkd2d00rcXF2OTZEK2hORWI2dThJSUZJL0tGM3lHRzRROEtmRGkwVnVKakFMN1lZN01ZZWR4YVhCYjFvQ1FGd3UKTnl1RDhzbkhGVU1EdWxRQW9iVmc0eVJ3VlJ6dVJFWEsvbXNpM3hXUi81cWtyMVBlZlYzU1M4eDg5VjJUOW9LS2lJYUtBOWZFL1Y5Lwpid0Q1cjhnN2U2VGRGOWYrZG5QaGhJbnBMTzV0bWZTMGV5ZFA3dXk0K3F1L2QwOHh2bm0zNVpPcHRuTVBPeS9OY0Z4OHhIRVI3WGo2ClRRQTlhRDBQbVdsNWI1MTlSNTFMNmZHSUd6MnFGcGNhalFBMUplanpEUUI1bkdxWFEyTnhxTXdXcWNta0JnRFZtNnZGRFlZVnBoY1MKTTJ1VExlY2ZOSitiWlByb0FlTlp5UDBOSDQyWmUrdlAvcXpoN0lNTjc5elo4TkZTNjhsR3QrblpsaDhUUU0wT0hZUUVrTmVzYWJSbwpXK3lHemE2R2d5M3VBNjJ1blkzV1Jwdk9iRlRvNjVWS2cxS2lWUWkxc2lxdG1LK3Q1UnRxQVVBZ29XcU51Rll6dkJqK1J3TlFpbjRRCmdGTDFnMTYvdHF3dmJDbUdwL0w4eHRKWm51SThaM21CcTdiSXJYckNXTCsyWGxHdXIrSnJ5eXExRlNVNmZyRzJzaGpvUXl3S1c2dmwKZzRlU0FWU3FFejV1YkZsaU9iYk90RjFVWDZjMmloR0FySXJ4QUpSY0JQM1BBd2kxQXRxRkFBUUhTN2NLeEUzaVpwY1dBTFN0Q1FHSQpLQU82Q2FEZExab3Q3YWhjNDdLOE1iaGhEd0Nvcit6SVFOblJRUGt4QUZDeWdWQXhVTzFMNFpvelBUV240N1d2aG10ZTdxOTlhVWo5CjFza0Z1alNNUXFIRE13YWEvMkxSR0JscDZmQXlHcU5SMFMyRFRSWU9sOTlSR0pPOWc5ZStINVM4a2x6SW5GeldBK2dKaVY0aGsreWUKd1pvemlaRG9HWEhQaXpkRGNJY1F6L09KZ3lUM0hJTkV5bzdHU29jVExUa1NJeEl0UGh3cjNvY0FWUHJjUU9uK2ViUTdrR1ZvOEppLwo5eFNZZXVLQ3dkVTdJOC9zNkg4S3VMTTF1bkpMYkFWcTdVT3VjaytNL2R6czhmTk4raVNQK296U1QyQytoOGhvL1NUVDUrWTI3eU5GClA2bkV1WFcrRlVDUUswbjVlcW1qWTc1WlpsQk1hNnNzYUtuTWIrVXY4UEFMV3dRckhYeWxRN3JkcWQvdnFUL1kySENzMFh4ckFPMXIKc3U1eUc3ZTZ0RnZ0YXFkTkpUWkpuelNMNWx0RVlKMVJCaUx2bWVlUTVidGxBS0RuTDcyUDQvR3E4aElxaG9wdFFlSGJ5bjhTL1AvVwp3ZlY3c0VjWlEzTkcxYmVvWlJueW80NTI4UUZpMDFBQTBLRGkvZmNxcVdrWWgwbkxZVEZ5T1hTMHlUeVh5cVN4SHJpZGVmVWZJcnhmCk9RcEF0eWdBaWlKdzFKSUFpb1VOankyOGkwN0JNdG1vakRlTG5aM053djd3VzFGMFFBSWZnUGVpeVRVMDZaTnlodUg0YWdLOWRVT2QKTWdEUTRPY3J2M3AyMWs4bWN1NjZuZDJ4WTNiZzB4VUFvSUUrWmF4VGloT3J4K0ZMSHYzcGlmaDE0VzUrekY4WjYxSEhJOHAzM3lsaApZalFlazg3bXNnZ0FvZHFhWll2dmlnYlU2QnVJNkRCZVJ0Tm5PTmRxOEhEOUU4dnZvbUFzTHB1VHhjN2tNbGxzVmpvTExSREYrTVdQCjRIamRRSGQxOExveTJtSEUrMUViZ2pFVDZGSU8rb1F4WXZGL3NCczFDTUQ3RllmTXM1SUJ0SC92RXdDZ3NFLzVZd0tJeFFiNDNERUIKTlduS3l1UlNNYmJzc1hzRzNsZ2VQVHg5Y05lczhPZWJJZ09xNjEzbFBRT1NVSWNzMHYyZEFIUlRQM0QvRFVrb0tQelRYeFIzM1ltRwp5dUZyeVdIbndIZWV4Nk5ONFBIQVFKbGNIbnl2MkV6V2JUenFIMzVYSGV2VEJJakM1KzhJb0w1T3FiOWJkcU5UMU9XVDluVEorM3BVClhUNzUxUzdKdFc1NVY1ZWlyMXZkM1NIdDdKVGU2SlRBZTNzN0pDbnUrUllBOVgwdGg4L3RmdnVKZDB5RmFSd3NPL3NuWEF4YnNISloKTEJaNStUZlhIcXg3ODM3SHB3L1p6aysyWFpqcXVEalRmV21HQytVUklxU0JKdHZPUFdqOWFJN2xsWEo3bTlrdEJ3QjVBVUFlVFl0SAo3ZmJlQWtBNnMxMXR0VWd0SnFYZW90R1phNnZxVFl1TXIweTJYSHpRZkdHUzZmd0R4blBnbS92cXo5NDY5OVI5K0RQREJ3L1V2ZldUCityTWpBS3JiczduaHh3SVFPZnhEQUVqcnNXZ2dYb3V1eWFwLzFtUGEzMkxmMStiWTRqRzViRHFqVWFQU3EydFZjcUZlTGdBQTZjV0MKT3BIUUlFSWpRR3B4clVvNkZvRFVZS0J4QVRSZVptL21qMHBSVzJWeVpyZFdGclZVa0puZFZGN1F2QkgwVTlCWW1lY3RtK1VwbmVVVgpGSGkxczczT0plYk5UeHB0R3cweTFQNUhXMUdxNVpkcXE4bzBWZXZVQXNnR0RYOERHaFpLRFA5VXdJYzkyZUJlWnRtLzN0UXVxdGVyCkd5UWFLeXAvL2xZQVNZMVZWU2IrV252RjRoWlUvdnpEQUZSQWxFS1RRMEdMdDZGbTBQREwxTmFvQXdEdGFES2dRYURoSW1oeVp3eE4KZTd2bWlOUDRwNnBtQUZCNDQ4Rytrb01ESlVjUWdDcU9rOFZBcUI2STZJczRVUDFpcVBvbHYvQlVYUGdhV2gxVzgxSlU5YXBoOGpPbwpNMDU2T3R6U2FIUjZXam9rbmM1QW5XN1RxSlFNTmdVa2xJYXR5bjQ0SW5rREY3MGJrSnhLalBFa2l3Y1NyRDBEd0NLVEVFKzQraVZJCndqMmo1cm1TM1pPU3hDS3ZZOG51SWVrRDdpRVQyM1E0dm5GdnFQaGd2UGhJNTdvZDkyQnNLdGtCK3ZzRHFDSXJMN1FhTFhmdmY2STkKdWNaNXpMM2NiMDBmQ0VtZjBEeVNQaWhBbjF2clo4eVM1KytlN3d1Z0s0KzZBM1B0VzJwVlV6ZFg1VGRYZ0lFV3VmbjVyVUs0RmRyRgpMUTdOUG5mZEFXL0RVYS9wdVdiN2tmYmhBcUJSWlVBSVFJMTJlSTdZNGRKdGNXb2E3U3F0U2JiUktGNWtyaGtQUUF2ZHl1bTIycGwxCmdxMnZuZ0FBdVN5V0RDcVd5WUliV3YxVGQwUStYNHYzVkVlNlVaZG50Sm9KWFp0VEwrRW9NYlFrU2hidFZVWjlvaUdmR0E5Si91TVAKTWg0Yll6T29RQjhBRUkrVndlRlIyWFR1WGJ6MHYveFppQStvb3VTcXNlOE1vRmkzQ2szbGhQU1B6cjA5QVNBbWhaazNqZG5kYVJnSwpTcU5keW5nMzBRYTZmOXdpNktFZVFiQlBQZGdsSFBScFloL092bUNmakdYUTRHL3I0NGE4MER0TDhKNnF2Z0UxamlxQkZKRStkYVJ2ClhBREZlclNEUGtHc2p4L3YxNFg3QkZlLzB0eDdPNTJid1FRQVpiTW9BS0IwS24zaG5OdkR2V2dFNkFjQUtIWk5pdVBtalJ2dWhqOEcKTmdkdGQ1L0RvM0JSblhVdURjc29XL3R3Skt3RnpjRDNKTlpwaXZtUUpzY01HdlhwcVNhWHN3VzZaZUZlTWU1WGJaWk9nV2NaRGpHaApCZ0E2dVArcDJCRGFEWjRBME9nempHUnNBSldXNTVNQXl1U2taM0c0NklETnlPTFNidU15c2ptNTJSeG1GaFBqNWREU3VWbTNVOUxlCjlpekVYNXpSZC9UaC9oTUYwYjlYZDRWVWcvM0tZSWNvNkJ1NzF1Y1dBQXJmVUF4MDFjWngrZllkVDlJd1hoWXZHLzdUSERBaWg0YWEKQUxGWUFDRDRmV1BRTTZiOGpQdVBMOFFSdjJxZ1EvSTlBSFJENHV1VWRIWkxRdjBhK0wvaU4xU0QxK1RFN2htcThGVkY1S3JTLzZYSQozNm5zNkVJODhsKzdCWUNrOE41UjZia3FEbHhUM2ZoYTFQM1NvOXVGTXpBR2xwdHpCd3ZEcXRYeW9hR2gxdmYvZXAvdXJYdE5GeDZ3CklnQk5zbjJjNTcxTUFtaTYreFBTUUtDaUtYWjQ3N25sbHVPMWRvL0RKVy8wU3R4ZUFKQzZCVzE2cWswRkVGb0M1bFE3N1FoQUZyUEkKWWxJQWdGUW1TVm05cmJEK3pmdU41KzREOXhCRE80QWJ1Q1dUT3ZhVFBBZ0VVUHRwdzRmTHJTZWFQVVlFb05iNkh3dEFhT2JMcG1tMAo2VWdBdVUwb0xyT216YXJkMVdqY3Y5bTV0OVcreFdQMjJJMzFEVHFGU2xtbGtmSTFJcjYyRmdCVVhZZjZRVmRyeERWcUtiRVNIaGtJCjdZMnF1bWtnYkRZeXpSaEpwYzhJZ0w2Um9qYkJTTWJRRDZTd3BiU3dpVi9rRlJhNEsvTTg1VE1iYS9JYnJZVk4yMlpiVHp4cTNyYkcKVUYrcXF5blRBSUNxU2pYVlplcnFUV29oa2FxTldnR0UxRSt4b1pLdnFYaXF3YmJjc211OXFWVmNyMWNhRVlCMGR0RXRBSVFNWks0RwpBQWxOL0hXT3lpVS9GRUR6dDZQU242S1J1YkFGMjFBemFQaE5BZ0J0YlRTUUFFTHRFRnZyZHJicDl6UWpBTFcwYTA5WUxEYzJ0UTVzCjJBY0E2aTg1Z0FCVVNnd0NqUmhvZUZWODFjbCs0YW5lcWxQeHFsY0RpQ2FuK3FRbm41d3dDd0dJUnNPb3RJd01KaG9OZ2lNYWdoQzgKWWt1ak1URTZqWmFHUFpZOUpTSjZOU1o2TXlnK2xSamRnWVJyWGs3S0dRQldpQkJQc25zR3EwNlRBZlFNOGs5QnlLa3VrajZEbGNQaQppWlNmakpZUlNWcmNudXllNFl6UUo3THBVSFFqeXRDR3ZiR1N3M0R3ajVYTldXUlhIL1JsZk84YW9JMlpNOEpvOG10cllPVm1mTVZXCjFOMW5PYkhXblNoNVR1N3BUSTc5Sk54emM4SnJuaGVTbVBOSzZHZGduaHN5M3JSWFlyVlhRaitkYzYyUUcvT0drMnFkTWZPdEFMcSsKMUhrMUtRQ2cza1hPVjR2MStTMDErVTJWY3hyNUN6eFZlYTAxQlkyQ1VsdXQyNnJhVGV5S2VveFlDWDk0QzBMUG1BRGEzK1RZN3pidgpjdW0zdXJSdGRvM1ZxT0EzaUpkYUFVQnlNcWdnMnFGSXZMblFycHhoRnhWYVJMWWp1eUpEOFYzYnRxYW5ZVnk0ZkZNWTVYTnpReDg4CmpuZFV3QXQwOEUyczUxWjF5dkUrY1FqdGNLbEd3ejg5a3RoQTdkV3Jxc24zWjJUUUtXaFpNcncwWjlNUmdCalp0M1BvLy9sN0FSNVEKUjBjQVJKN2h1d05vY2RFRXBEUUNRSFN3OHFiN0ltRjlQQ0FhNmxMRnUyVEF0VnZBSmVvWGhudEVZWDkxNUlZWWY2ZG9SL1VER0FQTwpRV3N0ZTJqdzVVZnhyMG9HZ25xOFd6TFVKUXI1VmJIZWNjOEQ1aGpxRjhONUJudVVnNzFDUEdKZXRTSUxNTUdHQ3o4Q0VDdWR5aWlhCmxSUHd5ZEVVMkswbStFYlRoMHlrb3pvV1ZaZVUza09uMDNsY05wdkc0VkxadVN3MkRlMjdpaWtFVTZNQkpSN1dSSHlDY0VjdC9IUlMKdkRJY2VIaFJYM1cwZytpQzJDV09CZVI0bjk3TmZ6QUJJUGdEUFh6d2FSSkE4ZTZhMURPTTVQc0JLSXVIVFdBOWtNbWdaSEV4TmkrRApuWjBCRi9qbEQrWDZUaTN0ZWEwZzlPeDl2Ujg4SGdtWUJqdEZ3VzVoZnpmNjViazFnSkwxQStuN1doNzNxM3M3eS93OWxzZVh6VWpECk1qSnpzQnpXUkM0UGJaMEc1czdpWlhLNDZUUUtkVkgrVDd1STg2TkY3MFFQUnJJREVOa0tLSlUrWkNMWGlmZmVrSVMvcUxsMjlyR08KTjVkZWVYWEIxMjh1L3ZLMUpWZGVXWEwxMWNWZnZMMjA3MytFZmRma2dRNUY2TXBvOUh3N2dEcFVuZjlkMWYvOFV1bXF5UmlIbXN1YgpBRC9acGwzdE9JN0xUdjNwWHYzYjl6WjhjSy9sL0JUN3hYdHRRSjhMTTV5WEljUmFNR0lReUhYeElRZTg5OXpUMXQwS2g4M2prcEFBCmFtN1V0SGswWHJjZTNOUGswVUJHQThobU1OdlIraSt6VWE2MWFKUm02WVk2OTR5NkR4TGlJVU5pQ1BLQThkdzRPWHVmOGNQSjlXL2QKYlR5N3duYXl4V3NpcTBGK1BBQ2hzWjloQUZsMVFCK25TWTFpVkxZNURYdGFiQWZiblB2YVhOc2JIWTAyczZsT0oxTExoTXBhdmtJbwowRlFMRFNJQVVJMFc3UWsvMGc2UnFBUWFBUkRrbndKUWtuNFFnRUEvQ1FDUitrRWpRQzJWaFUzVlJSNXhrUmM5aWVjMXlXWTJlV1o1Cjk4KzB2VHZmZkh4Vm5XdVRUbDZpRWFDb3EwdFZ0Y1hLR2dCUXNhYTZXQ01zQVJYcEJXUWpSSUc2OUprRzAyT1c3UnRNalFTQVpBQWcKUFlobkhBQXBUUWhBaW44YVFJVTcrUUNnMmR1SEFZUXFnYmJ6eTVwcjREZXAxYXZkMG1UWTNrZ3NobTlKQUVoREFFaC9xc0VjV3IyWgpCRkJmOGY1QU1URUlSQmdJWmNSQUljR0pYc0hKdmlyQXg1a0JOQnQxcXFQNjREVG1uUmhHb1ZMVFVidEFPZ09PS2RSMGRFOGFEUUdJCmtvRXhhRlFNVzVZN1piRDY1Y0hhMTBMaUY3NkpucGREMWFpMENKSndUMGc0TEo3aGdISkdRb3FIVEtLNEp6TENuVWpaY1VqaStKdXoKWFljakpZZWl4U2lSVFFjaDBZMEhJeHNPUVBCMWU0WTJIUnJhZVBodnkxd1pWTFRXUFFPVWcxYUNqZjF2UEFBVjUrYWpvcCtsN2VISApOdVBMdG9CNDhHWHQ0ZVZ0MGFYRG96N1JSYzJRTVd0OUV2cEpBSWpVRDBrZnBKOTU3akgxa3hqNFNkVlA4dTd1eVQxK1V1bnpYUUFFCitoa0ZvT3RMdkZkWHVEOWJaVmpVSklKWERnczgvUGtBb09icUdTMkN0VGFoMWF6YzVUQUFnSTU2akFDZ2cxdUc2VE9xRGhvTUJBQTYKNERLRGxyYTR0TzEycmJkQkpXNlFMYmVOQzZBRk5rVytHKzZSU2RyZEErSFEwWU1INEJjTVhrbW5wM09YVEdKMnZ6Z3ZlbVZqM0tkSAoyNEYxUzI1Uld4UHZFOEdMN0VnUGZLUVFBQVRPR0FocVZ6NTZINVdDR3RabHNsRTNQd0pBdVRrWjZaOWQyb0FIVVN1Z3lIY0dVTGluCmhnUlFKS2hia0ovTm9LV2hqUmNJQUxVMExvN0dhc08rTXR5SHlvQWlYZHBRYjFYcUdZYlA0NWZqWFZXRC9mTGdYeXVIWHB5NWFjRnQKYVV3MkhjdFlPak8zNTlDaTBPOGVEdzFvY1o4bzFGWFY3OVBFeGw5T1A5UXRIK3FYQkgxd0hSVUQvdkNvWVd2YlRCcEdBd0JsTWRNUQpnQ2pNV2RONGZaM1NId2FnZUVBeUdGT1hsaitVaHJIb2FSa01qSHBuTmpaOUNyVnMwMjBuRDYyLzhoY3JIbFgwWHhFTzlWZmdJVkYvCng3Z2pOMkdmWXJDcktuSkRDaisrQU1BdUpNZjlldjNhdTBrQUVVMjBLVWNQcjQ3R2xRQ2dJVjl0NmhsRzhpMEFBa29CZ01nbVFBQWcKRmcvTFpHUk40TEE0SEVvbWo4TmxZaE96R2ZCU2FKdGsrdFhUUzJOSEgvUWRMb2o4VGhTNExnajFDZnM3MFg2b3R3RFFLUDBneEhUSQpRemNRZVNOOXl2TWZpVzY3RGVObXBqRVlMRjQySXl1VG5jVmhaZ0xHZUhSNGJCdWZtaGtNaUlORUFkQjNCMUQ0S3RKUHFFTVcrcS95Ckw0L245UnpJNjlrM3ErdGdYdGVCb3A3OVJaMTc4LzkyTEQvMG40TEFOYlFlZnVESzl4NEI2dXRRWHZ2bGh0NUQ4eGJtMzA3TFpFNWcKNVREWnJKK2ZmV2N3TXJScTEyL3ViL2h3c3VXamUweG9xZGZQYkplbTJqK1k3dmprRVR2YURteXE0K0kwNThjQW9JZWQ4TjV6R3kxYgpkQTVqczB2czlZaWRYaVVBYUxOWDIrU3VKL1V6Q2tCdWg4cHBxeWQ2UU5lYWpWSUFrTnlrV0dOb2ZzandFV2lHelAybXM4bDV3UGpCCm1KbGsrZ2dlNUpTR3QzOW0rbWlsNDRYV1J2UGVGdjJ6cmZvZkMwQk5WaDNvQjhXcUJ3REJuWFl6V3YxdU5pcmd6YTB1NC81bTI2RlcKOS80VzF3NnZ2ZFZwcWE4M3FEVHlXa1ZOdGJxYVdBaUcxc05YalFrZ2hRb0I2SnVJdVpsVSt0d2FRS1IrU0FETmFiNEpvTUlXUVdHagphTFpYTnFkUlhOUmNrOStpbWRIWThvajd5Q1AyeTNOTkw2K3NhMXV2VllKMUVIZFV0U1NBNEFBd1ZLS3RKZ0ZVcWtlTkVLdlV4YzgwCk5LeTB0Rzh3ZThUMVdnQVEyZ2pNT2U0SWtNb3NWRnFFQUNEWi93R0FTcHFyeHdQUTNoWXRBS2lwWGZkU25TWCtaSHYvK24yaERRY0cKTmlFQUJVc09BWUNDWmNNQUlvdUJRb0xqZnY2SlFOWHBhRGxxRGhRVnZ2QlY1WjQ3S1psVWpKSkJvYU9LbnpRcVJxVXlPRnlNdUljRworc0hTc1F6VU5lZlJpWk5EVlMrRmExNE5TMTVBRWhwSldIZ21FWEFQbVFSOXdnSTAzak9PZm9ZQk5Fby9zVkowU3g0azY0ZWtUNnArCkVJRFc3SXl1M1lkdk92ckZNbGQ2QmgwQXhLRUMyc1pRRHZsdlBBQlYzREVIYmUrMXNDMjZmRE8rZERQZ1ptaHBXMkJaUzJMc0oxay8Ka09RSnI1djZtZXNCK3BDNU9mWUQrcG5yU2diUXFLS2ZCSUNTeDM2K0w0QTZGamtTdWI3NFpsSUJkTzFSRitUNklzLy9QdW4renhVTgpLOXdBb0tyRnJxcTUzdXFDNXVxSDI0VFAyS3FOSnZsT3UzNi9xdzYxQW1xMWtRQWFWUVpFR3VoQXN6TUJvSzEyZGF0UkkyK1FQbWFyCm5XMlRKZENUQ055NXlLRUNBRTF2cUZwdlZQV0ZneStkZmhGK3dTYXdPUmtabWROdng3N2FOeVA0eFJyY1g0ZEdnRHFsMGI3VTYvZHcKQm4wQ05CYmkwMFY3cW5DZkxOWmJqZVBHR3NFOCtGbG1zaklRZ0RKWmFFb2lQWXVOWWUrKytkZy9BNkI1c3pJVEFPS2xZNis4Vkliagp0ZUdlNGlFMFZhZUtkT21qZ1hFYk5nWjc2L0JPNFdCQTEvWGJkVGUyM1h0dkZwcWZaV0JNSU1iZlcyZDFucHNiN0ZQanZlS0FyMnFnClY0Y1djS1djZ2N4UUY1aEFOT2pYbzRYbC9TbzhyUDc4OCtKTVJpYUxTMGNBWW5BQVFJOU1ZZmx2aVBIeDFVaGtOSDNJQkxwRlVkeFkKS1p3QmYvNlRKbkYwNnJtZmZsYlZFNVFGd3pvY053ejJpUVo5RzRlNk5OR2VpbENYSU9vM3BIaGxPSENxV0ZkMXZBUHRBb3QyT2d0SQpndGNVd3NVOGVFR1ZDaUNjMkVwMm5IdzdnRExacUEwMENTQUdqNU9kQlpMbWNUa1RPRXpLN1V4R0ZvZUtaV1ZOb0dIL3VXVng5UFMwCi9tZW45NTU1UE54ZEZRaFVEM1RXandlZ01RT082ZXVwQ1Z3VlI3NVdSTHVVa2JqTzFib1F3emladWVtY1REcVhBK0NHL3orVGw4bWsKVTZnUy9sSWNSM3R1ZkM4QTlYYkxmRDRaV2dQL2grSy83SjhhMkY4UU96QzdmMjllWVArYzJNRUZmWHVMdmp4V0ZQcHp0YTlUMGRFcApoOXRVOTl3YVFQQXBYM3p3K0pWdGovemtEaXFOeFpqQXpKejRzN3YrNSt2L3ZYN0RsMmMvZjEvOUI5T2RIOS9aY0c2UzVkelA3Sjg4CmJQdC96TjBIWEZ2WDNULyt5OTdESzlON1kyeUQ4Y0I3NHoweHRzRU03YjMzUmdQRU1tQThNQmpQN0dZM2lTZWVHZTJUN3ZrMDdTL3QKa3piRE5xQXRvUW5jL3puM2dvd1picEttN2QrdnowdTVDQ0ZFUUxwdm5mTTkzM050UGx4emp1K0RBWmVtenl1L0EwZUFkTzJGNmlxSgpUbHB0b0ZjYUdCaUF1TjhHUUNvRkdRY1FROEhlTFRiUEZOOE8wMmVHOGlhZUp3TUlxNCsrTVVmKzNsUkZPd0JRVGFVS0FBamtod0tRCldkTnZJSk9tSDBCQVB5bzVUNmJnZ3NzS2xlQzRYdFphcVdtcjBwODJnN3ZTbXNwMWNwbUl4V2RRZUdUS0V3R0VEd0loeTJxSUk2ZTYKYkpUMFErZlJOVlVFa0NYVnhTQ0xxMkRsNW1KejZXSXpJYWV5REthYXVLaVN2cWlDdTZpU3VhaUtsbFV0eXFwb1dHQjhhYjcyMnV6eQoyd3UxYitlSnpZVWNXZ203dUpoYlVzcnZEK3lSS0N3dEVSR0xoWVFqSXBpREl2SitNU2xmVENtUzBPa1Nsa0RHRVNsWUFqVkxxc0dpClpjaDBUR0Fnc1lZdTBsQ0UwRUFVam9vTUFNUlNFRWtLWXI2bWRLMjVOS2VSQUp0YzF4T0daRmtERWI5YzFsZzJLTEQ1SVRqSVBnNXIKZ0FDRHdJZllodkNsTzZwTE5RWnVUWVd3eVNBNmJoQWVyd1QwZ2Z0Z3dOKzlXZFo0bEZ0M2xQdnJVbzEvYjVOdnp6SEhvVk9lL0xQdQpRMmZjY0JDb0RhK0dobk5oUjE0QURQS1Z2aElvZWNGZitrSnY2V3RlNGhzbytaMWY3elluUnliQ1dwL0lhQkE0RGpRbzRFMXFiRFJzCmhCaURSSzBadTZDSCtEcEtlQjA0SmtSNnZSODNoTmZ3R2E3KzQ0R0NucUVCdUJrcGdjSnpneE1zT28rbnArUmM4SEJyWDlGWnRQQXMKZXFnTnBHZC9NMXJRMmdQbnZDQjlRSG9PdElhRDdqM3RLanpsUDlEOHhTYkQwekZqRUNRYTlqZU53dnBBai9RUGlZU2ZncE1Rd0VyUgpjSXY0Qk5nYkdqRTh2ZEd4cnhGZFZ3ZXNFMWhYQlNTRXJqUzdOZzJ0OVhua25sVkdQQUdzd1k5dmhSNlBkM2s1U0gvRnovSkhhOTM3CjliTmNDMkpmcmdHeDVhcEJSbHZoRlo0Q0d6NExCbnNoUHQ3MkVLQm44QWpRWUF6ZFh3c0hnWUIrT25EM2JEVGcrVWVleWI3T1lOOWcKb0hQWlV4dm91UWJ5aWdvNGRMcllSRjVsSWhjYm1XYWQ4SnhhZE1FZ3YxQ2pBWUVyNFFmbFFyWCtmRlU1eUJtNEVFeHh5Z1FNSkd0VQppNnJVZkltYVRaYVJWbXZKeThyWnk3V0MxVXJoQ2hVcld3L0NYcUVUTHRkSVYra0U2OVhVSGR5U1AvM2o4Nzk5OXBlRTZJajA5Rmh3CjBrcEpTZnE5Y1c3ZkwvY0dmY3crOEo3WVRlcTFDWWFkdndmaUxPbHpNYUZSbkJ5QWxhQ0wxZWN6blc3TVRFU1FwMUtpaytJalV0TWoKazFLUThjbFB4eVBJRzYvdlJVTWljSHZZb004SnZwd0dXeFVEWThIRlNzUHVHVXV2Z3grMDBGQVh4MjFuTEZ2NGJFd01rcEtVbkJnYgpOejRsNnZPL0ZmYTZTMUdib005R0E0cUNpOWh0b3haQm93NUtqNTNXWStkNnVyaC8rVVB4elN0NWI3K3g3djEzdDkxOWI5bWZQdDF0Ci81SWNoQ3ZkV09DUjlMcG9QYzVSSWRYaktPdXh3eXFja0kzYTI4VUREOERoNEdkbHhvSm5hWEp5WkVwYWRFeFU5S3pKU1E4ZTBQcmMKRlBUeFZXRERiREZDQW02VzM4bDcrK1hNVjg5bDJMNFJvcjNsb1c2VzMxTTYvSlpQVHNEQkFEOXZ3TWtOZEpDRERpN3FLa08vb0c1YwpQREVwTWdZMktreUxqMExpWHI2VTF4ZkE1dDFnVDhXaDk0QUhQT3lBbFFidjBFb0Q1dlBaYUNCb1FGaElXQXpycVJOZ2lkSlRhWEVUClVtT0JoZExqeDQxTmpRSGlTVTJLVEFPWHFRQmIwVW5KMFNtcHNWRlJhZnR5a1k0ZjdRcTF6UW9kVytLNWQ4RGg0emdjYk5UQ0FVcnoKUDZENU9obEEwckJqNFVOcUFQWkNISUZCc0lOaWw4QnJPUlN5QXMrSnZXNW1sME9Zc3hTSmoza3FKWGxNV2lxU25oU1htaHFkbkRRdQpKaUt5cW1KMUtDREU2MzZHWnpoOThIZzZCYTZ1VXArTjVQNUZrYjB4R3dESWZtRXB1TFNjelhLM0x1Zyt0K1RMVjFiNXYrSjNXRmgyCjhCaStJcnM2bU1QcEEyTHJZRmkrb2JnZU1FRHNYMU50RDJoZFhZeUhuVFJybDloMWNkTzdodVZ4Q2RGanhpWW14WXhadHo2dksraCsKNy9mZkxGUzg5Wno2a3d6MXpmbnlLMU1WbjB5Uy8zU3U2T3BNeFkzWjh0dlQxUi9OVU43SVVGeWJydnpWWk9WUFYyaGZGWlh6Rk9WOApJemdybWJoMUpsNHRWZ2RkWVJKaTFkRDhLb01RcE5Jb3hBQWtnSnVKcWlRS05VMEtkd0ZqUzVUVVVwbHFqZmhsV05NanZ6TmRmZ3NICjBFemw5Vm1xRzdOVTEyYXBya3hUM0J1cit1UXA5VTh5bFBqamFaK3N1anNYM0ZqZFBsdlcvcnpxR3NCUWtlWjBqVmtLUU5OY0t6bGQKcTJ3OStnaEEwRDFIZFJmcWNRUHAyK3IxWjQ3Q1JvaW5hL1FuekZvSUlJT2lTaWV0MU1GZWlIcTFWQ01YbGl0NEZWb3hBQkErL3dYMwp2bERpd3o5Y2xZSWpVd29rY3A1WXdsRXFoVFZHMWVsYXc5bGFUYXRaM21LdWFEVG9UR3FGUkNxZ0M3RVZZU0lhUVVxajhHaFVQcDBxCllGRUZIS3dmTkkvSTVSTFlYR1JwTldIRURITlBmN0FacnRKSE1aZmhHVVFmcUIvd25oVlBUaFVWMHFlU25XTm1RQUJWeWJKTVRRc00KUDVxdnU0SURhSXVrcHBEREFBQXE0Y0hOTWNvRVVEOEVZVm1acUt3RWhoZ0dVTDZFREFCVS9COEhVRTdUWXdCYWRheDBldzBFVUZXRgpzTkVJQVhUQ0xCMENvSVphL3UrS3RFQS9JTTZEandQbzhNQ0tzT0tMd0VDKzRwZjl4WmQ4SlpkOFJTKzVTMTlEU1cvOXp6WjlISnd2CkdobEFjWkVKY0J0UlNLQ29yVTh0aGp1eGwvMG9SSUpETzhCU2tGTVlnSUIrY0FEaEIzandHK0FKMS9xQStJdGY5SUZIY3VRRmI5R2wKY0YrZjhQQlBvUEFDaVA5d1czZEJTL0J3LzJCUEx5ejNPZE5YZEQ2c245NEJBSVh5VzNyMnQ2QzdUM1FmUHRWM29LVnpSODNFaUhTNApqejFjQ0RZNmdDTGdwK0RuRWJ4Y0doTVJncHlhdktkN1Z3TzZwZ1lBeUw4ZUFLZ2FBTWl6WWZSSzUwSDZDUU9vZXlVRVVGZy9Rd0NFCjY4ZXg0aEdBTExsd3lDZWN3ZWo1b1FDRUR3TGhBT29ZQktDdnQxVGdBT0t6ZURPTzBwY2JLUmlBaUl0TmxGd2o4YUNCQmw2OHptaEUKNXd4d1cvanoxZXB2Q2FCcWpVQ3U1bEJsNURVYUNLQ2xXdjRxRlgrbG1yMUl6MWlrWjYzUThCYXJCTXMxckExSzBqYldvWTkvOVJPSApwV3ZLYzA4bkpFU2tKY2JHeHNkY0YwOUNQOXJwOGRMUURrYkFSWUZMM0lkUm9QK2s3c0RPelYzc1hqczc1Q0Q3blJRMFdINzU3WTF3CmNYaHlYRkpxVEVKYVZISnFTbExzSktEYnMyZnowSUFBMEFkM0R3NGdjUGtFQUFHeUJLMFUxTTN5dVRtNVdSUEJVeUU1TVNVdU1qWm4Kd2JPZEZscWZwd3kxOGdDQTRJMWROS3hlZStnOTlNY0dpQU0vMitjUjluVkxnOTJLM29BV1JTdlJiaG5xVTZEZEVnQTQ3SlJQQlhjUwpISDBLck5kSkNscDVmanUxejBucnMzQkRycUtlSGptRmtBWCtrcE1TWThDWlBqNHVhdHJ6TVY5OVNlbnRwbjRQQUxrNlNhaFBHbkxLCmV0MUtjT20xc251OWJKK1RNUHlXVDQ0WDZ3dmdBNytVTGpoSGlib0pmWDhsclZqd2RISlViQmhBcjd5dzVYc0Q2R0RKWEVDOXNXbUoKU1hGSVFqUXlOZzBrUGprQm0vZE1qQU1aazVRME5qazFQVEU1TFNFbFBURTFMUzQ2S1FiNWFWMU96NFdWNktWNWxvdTVsaTlLUFZoYgpJSDhYRXp3QUFDQzhWTm1IN1pJeEtvQXNMTS9ETXZCNGZCMWNGN2h4UVBybVd5V3dRQ294YmR5NGhHU2dpdlJrOEErOCtKdzVuZGZyCjR3Mm56NU1CNUhqQWRIZFF1cnVZWDkvYWJUbTl5SG91NDV0TEdkWnppenRmV21GcFcvTHd6Skl2WGwvai8wYlFaZUhhT2xqQis1emgKOU1FSGU2d1A2UUE5NEVQM1F5WWMrSGxBczNUUU83cm9ELzVLNzM1eGRUMGxFMGxBeHFRbmdkOENtY2IybzZFemQvNHlWL3JPYytxZgp6bGJkekpSZm02YjhDWUJPaHZUYU5QbU5HWkwyS1lvUEo4dXV6NVplblNMNytXVHBoeXVWRjhVNm5sTFBnd0F5OG9GK2FqRDNQQUZBCjVZTUFKRlJTaXFXYWxhTFhBSUJtS0c3RHdMR2ZHN09VN1FCQXM5WFhRYllxWDFpc2VYT0c5dm9NeGQyNWl2Ylp5dmRuS3EvT1VVQUEKelpIZm5LaUdvMEZGbWxPMVZUSWNRQzExS2h4QVdIUS9QSURrZktrTUFrZ200K2sxNG5xVHNybGEzVmFqYmpYclQ1a05qUlU2WTdsQwpwaFJ4eEd4OGIxU3FsQTEzeGhBd2lWd21rYzBpc2psa05vL0M0WThPSUd4Y1ozaUd1R2VwbVlnSFE4K0FleW9waXl1cGVMTE5VRC9BClFEbFZ0RVZWakN5emNvR3BaWDc1Ty9NMWx5R0FOTy9tU2VvS2Vjd3lMcUZNUUNBTENXUlJHUkdHUUJEREFBUGhnMENIeGFRRFl2SUIKREVCTUtWc281NHFWN1A4aWdGUkdDS0JqSnZGeG8yZ3dnRTVXeVFHQVRsUUpQenVrOCsxcTh1eHBjaDA0NmM1djlSeUV3U3FCNEVSWQp1QmdJR01oZkNEQjAzblA0Z3FQazFWN0tXM2MzcTdGYW1aRUJGQnVWQ0RkSGhidGlSQlZQWHRkSGZ0TmY4a3FRK0NxNHhJTXY1c0tQCkE2V3ZkcGU5RW82bjlPVnd3UGNOeHdjQU5CRC80Zk1qSm5UNFhQRFFXWERwTHpqak85QWFPTmlHWHc0Wis4SDFBOUs3NTNqM3daUG8KdmhaLy9vbnMyT2VRbURob21sRnJvT0d5ZnZndkNpN3ZEeHNJWEhGOUhqbTByUjVkWVE2dHI4WUFWQVVBNUZ2M2lENURpcDBCZllibwpaN0I3QnVzSGQ4OFEvWUJZL2owQUdxd2ZIRUFkNitEOEY5QlA1MFpENXdDQXZzbXJjS3czT2pZYTlUVGgzRnA2cm9rS0RMVFVSRnhxCnBDM1JFM2RweVVvdDc3UkdEQUIwMXF4OEFvRE9WV2xPVnlxYksxUW45ZkpqR25HdFJxalc4Rmh5MkEwb1Y4dGFvdVd2aEFCaUxkYlQKbHVxWlFFSkxkWUlWYW1xZW1yaURmZkNWZDEvdDdRbXVXTG9rTWdJWmx4U1BSQ0hIUzhlakgyeDFlTWhvQjF3RmhtMnFNSlFDZUhxYwpzSHdrWkdYREZkZE9rdGRXMnVlVC9QbDNKV1BnaGdzUmFlTlQ0MUpnUy9Nb0pITHlNOGhMTCs1RHZkend3TSszQXBBRG5CMkp2UTZxCjM4TmR0dkQ1eUVna0JhZ0tpUzRxV09nUGlPQjV2WXZkQnpjNlpmVjRhRStBUzUrYjN1T2tCbXdrbjRVQTN0OEhuR1MvZzlSdGhhZFMKZUdxM1VNRWxrRm1maTRuN2JQZzk5TjhQK0JZMmZzQkJBL2ZXWjJVRm5ZVW9xamgxZkVjVTNCUXNOU1UxUGpFaGV1S0V5Qy8rVGtMOQpMTlR5V1ArazRid1ludTRPQ2dBQkVDZnFFZ0lXZEhlUTRJeWJiZFJhbjlFQ21OSmpwNEZmWEsrVkdyQnpVRmVaK3c4bG1aTlRVcUxqCmtwT2prOU5pY1FDaFFlYjNBMUFwY1E3c201Q2FNR0ZNNnBpMDlLUmtKRGtGU1J1THBLVkVwQ1VoY09vek9XcHNFa2dNeUlUa3VLZFMKNHBHSU9OcjZwMEt2Yi9LMlRQTzJ6blJkM3gxeXNSdzJCbXlLYUdOMVc1bWVCMVR3czROSDYrNkNTd3RIQkpDN2kreXpjSDFkRlBBLwpDdGlpMjBVTEJzd2xCYlBCUzhpWXRMRkppYkdwS2VOUzBxS0I3MjdmS0VSOS9PSDBlVEtBbkJhMnU1UGx2Yy83OHUydDNuT3IreTR1CjhweWYzM05pcGV0VWR0KzVWZTZXSFBzN0szdS9MTFZiU0YwZFJOZEQ4b2o2QVFIaWNYVEFhMXdkVE9paCsxVExBNXJkd25yd3l5TFAKaTB1b0c2Y2dTY2o0dE9RSUpLNmh1YVVIRFVwZi91VU15ZnNUdFQrYnBRTGd1REZGL2ZGRTVjZXo1TmVtU205TkY5OEU2SmtrdlRGVApjbjJTNU9kVHhiZld5MXZsZWk1NFR3NEFWRzNnMVJqZ1B2REFQV2FUWURDQUJxYkFJSUMwS3FGQ3paQXEyUUJBUENYanNOU1VLMzVqCnV2d1cwTTlNNVoyWnFsc3pWZTJ3MWFHNkhRY1FSMVZaV3Q2d1d2dmlWTVdkYWFvUE0xVHZaTWpmbXFtOEIyNEdBRFJKZFgybTRzWncKQUowOXFna0RDT2puQ1FBNmFsUldsOHVHQU1nVW52OGFCaUNnSDRtVUs1YndSR0t1VE13Qk56NXFWTFRVbHJkVjZjN1c2bHRxRGNmTQoybXFEc2x3amxVajViQjZkS0dLUWhDeWlBRjhJeHV1ZkJXT09EcUJCeEhrc3NLYW5QOFNCa0VGeTRQSXVjajk5S3VnZ1N5cFpJTm1WClhKQWNNd3NDcUpxYlZXbGNZTGd3WDNjRkI5Qjg3YnQ1c3ZwQ1ByZVVSeVlJaVJReGdTb2hncERFQkpLWU9BQ2dVbUNnSWhIcG9JZ00KVWlLbVlRQmkvMmNBbE5zQTlQTUlRRGtuSVlDMjFwUXFEQnh6cGJEeGNRQ2RyaFpEQU5YeDJneWlML2FWZTNjZWQrMCsxcDEvM0oxLwoyblBndE9kZ3kxQUR3VnowSFQ3dks3a0FBT1FzZXdXbHZYMTdzd3BiTFRVeWdNRHJGTkFSa2dCT0lwSHkyYnRSeXR0QU03N1Nsd1lYCk5mdExYbm9FbWdFWURVblBrWmZ3NVYzQndoZEFBb2N2Z2ZnUHdTYk9lQ2ZEME1IendZSnpnUU5uOFlUMnQ0SUVENXdKRkp5QlM3MncKQlYvZ3cyREI2WjREL1FubE4vZnNidzd0T3dYU2MrQ1VOLzg0dXYwa2VyQ2w2T25GY0Rvck5qS3luemtqL0l1SmdKOUVZaUtSNkVqdwpTZ29sRklta3h5UjhuaXRITjlhaHVSVUFRTUE5ZmF2TkFFREIxVU1IZnNMbFBrTm12bkQ5REFiUVlQVEE1UGE3WjdCK2ZuQUFEZEVQCnZINWRPVWpuK243OWRHMHlnblJzTWo3Y1lzSUJkSW9neVRJemw1bm95NDNVcFNieWNnTXpwNXk0V1V2aTY5akhkS0kydmJTdEVpNEUKZXdLQTRMYndsV3E0R0I2OFE5S0l5dFY4Z1pLeFRVWFBWVE56dEx6bFdqamtzNlNjdHF5Y3Zrck5XbTRRQXdCdFZSYnY0eDZzTzFXTApvcjBIQy9LQlFpY2tKUUN0TUxlbG9LL2wyVzFscUlXTkRTUkFySXdjRnh4OTZiR0JreWlseDBYdzJvcERIcWJid3A0eEt3M3I2ekFlCi9ISTNiUngvOGNLZVAzMUdDUFFTOGZtdnNIdXczYXpnOGFoeEFHQ1ZZVjE4T0VzeW40dU9SbEtUWWNHY1JyWUM3UkgxT01yNnVwaTkKZGxpZTB1dkN4M2lHM1FNV1lBaEFsbDRYRllpdDEwbnFkUkw2N0dVaFN6RzRKdVFnQXptQnozNmJ4d01MYXh6OG9KTU92d1RBeTFXRQo5bkxmZld0bmJBU1NuamcrTlNVcElRRjVaZ3p5K2VjVU5NRHV0WHpuRVNEVUplaTFzMzBkWkc4SEFYVXpZS2NmT0FER0hYN0xKd2RnCnBkZEJod0J5MFAwT1RwK0wrT0RUZ2luajRsSmo0TFFVQUZBMEV2L3FpMXN4QU1GOTNJYmZBNTdCQU1MMWd3T29wR1J1TklLa0pjY2sKSjZZa0pveEpUSTVJU2twSVNVbExUVTFOVGs1T1NVcE9Ua3BJUzBxRUt3RlRFaWVrZ0UrbVRrZ2JFeHNiL1ZIRll2UmlwdmZNVlAvcApSZFkvSHZKNmVEWTd3MktsZWF4TTJOdTZrK2tEUUxHT1hBa0VhNEE2S1g0Yng5dEJoK2trZTZ5SHZRN20vL3VOWlB6VHNmR3hTUlBHCnB5ZkVUVWhLUlo1T2ovL1RiNGtBZjhQcDgyUUFXUjlDcjRSc25NN0wyLzczUk81WGJZdi83MUpHMTlubDk4K3RzVjdhOW9lR0JaNFAKZDZKZE5NQWF5MzIrN1J2aGlQckJ4ZVBzaEdNL0RteXB2T1ViaXYwaEhUd3ZMSGYyZnRNNmY4MmM1NUEwQkVndElUNzE2dDA3SHI5dgpmOE9IY0lGVitTK25xKzdOVXJaUFV0OTdYbmxubXZ6cWRQbmRtZUxiVStVZlQ1YmRtaWtGRXZyRmJNbU5uYXJqYWoxTForQ1lzTlh2CjFVOEVFTkNQWHN0VHEva0tKVk9tNEVvVUxMYVNzVjlhczFqeTNoUmxPMFlmUE8zZysySUFnbUdxS3VSR1hZbTJPa3Z4M21UdFQrZXEKMzgrUXZ6RkQvZUVzZFh1R3ZIMnkrc1pNNWZVajJ1YmFLc2xKczdxbFJnVDBnd01JQ3pRUTBNL0ZCdjIzQkpCYUp0REp1VU1BaE85KwpxcFp6NEFpUWpDT1djSUIrQkVJMmo4K1VDRm5sYXRIUlN2V1phbFZiRGJqVU5KdVZKeW8xVFJVNnMxcXVGdkxwUWlhTnp3S2hDamhZClMyaCtHWmRYeXVFaWd4enpXTUpETzBQeTJFaFAvMkFQVERhV1JXWXFyUGlCYzE3TUhETUhKTHVTQndDMHFJb0ZZNVl0cktoYm9IOGwKVTNkam9lWURDQ0RkK3h2bGpZZjQvRklCaFNnaTBjUkVtcFJBazVLQWdjZ1NJbEVDQjRFd0FJR1FDb1hFUXlKeXFZakdrakRGTXJaWQp4UkpvR1A5dUFLMm9od0JhT2doQUs1b2dnS1FHdHFsU1VGOEIxOEFmcjRJQU9tRVd0MVNKVDJBQWVrRWp2cis5dkh2N2NjZnVSdSsrCnh1NzhreEJBV0xvTG9JRzhoOXU4aCtDaU1PQWVYK0ZaZi9FRjMrR0xBRUI5NURmdmJWYUM5OGhQQWxCc1ZFUjhSQ3dTZVdKK01VcDYKQy9aVUxINGhQS1hsQitncGZqRmMxNHo3QmsvL2duWXN1SEtHcDYvZzdJaEI5NS9wTzRETmN4MXM2ejEwdGc5YzVyZjI3aDJCUGlDOQplekVBN1d0Q3R4NUhEN1Ewek4wSE8xbkhSOEZoblZIK0FRRGhjMlRBUUxGd0Q1Qkk4TkhpeEdmY2F5dlFkVFc5dVNZNEJiWVdEdnowCnJYeXN0Yy9nU21lczJIa0Urc0FobjF3dFNGZy9nOUV6aEQ1RDlQTXZBbWg0dXRhVzR3SDY2ZHBnQUxGc2hQckIwN21sd3JuQjVOaGsKZXJOUXZzekVYRnJKeURYUWxoa3Bxd3ljUlhyYUtoMkpvbVhVbFl0YmpQSW5BK2g4dFRZTW9DYXRwQUViU1pZcFdBZVVqRlZLWnJhTwp0MVFIQU1SZVVzNVlWczVlb2VMa2FBVXJWZlJ0NGlNSE9BZlZKbGx2WDBDbjA0QmZ3ZmpFQkNRV3lWdVdncDdmNlAycUVMVnpRbGE2Ckg5YkVES1VBSGo5V1B3c0E1Tzhpd1JiSkxrTFFSZW56OHJhdG5UWHRxVWhTMGJ4cmx3LzRBd0lVcGZkNHliQmFhT2pBVC8veGFBbmEKU1ZqWkRjWGpZT2RrUEJNZkQzdmNnYitjUzIyYjBSNWV5RTdBaG45Z1pXN0lXUmEwRFAzeWNQeDJNdHdxMVFGM2h3Q0JMWXZzZE5USgpDam1JQVJ2UmJ5VUFJZm10UkY4WENSc0tZZzIvQnp4OUZqS3Nkbkl3d0ErTzlWa3VEblpUZnZXTC9MUmtKRGsyUFMwVm5QZVI4Y2tSCnYvdE5XWjhmL20vNXJnQUNYeExvb2dMMzlEbXB2czdTb0pVRUFBU3VHWDdMSjhkdm9ZTFRmN2VWQ3Y3WEFRQ2hYdWJudDNjL214cWYKSGhlUEF5Z0dpWHZ0NVFFQXdZYUhRKzloOEYwRmh3RElMeWd1eklwRmtKVEVxTlNVc2NtSlQ2ZW54NmNtcEkySm41U1lsSktZbkpTVQprcHlTa2dTVERJZkU0dU1pRTVPZmVTWXhFYndwMmpOdkxQckdhazlyWms5TDVzTWZiL0Izd3QxRmdJRWNGdGc0TzlqQjhEeWdldTNzCjBRRGs2V0k3SGh5QnU2VmFCSjdPdzBGbm9lTkJDUnJTa0trNTRMVUViaGdTTnlFdUNaa3piY3czWDFCNk9vbkQ2Zk5rQVBrc0JFOUgKaWM5Sis2UnQyNGJNOFVzblBUdGpha3JXMUVtWjA1NVpNT1dwaFZPUTl2Y0svRzZSclpQczdDQjZPb3BHQTVEdEd5cEUwamNVMndNYQpvQS8rSVlqMTNZMi9xcytlTkc1c3hMaW8xUGpreVZObS91MytWLy8zMExsY2YzdTIrcU1aK3A4RFpNeFEzcGlzdmoxUmRXZUs2dm9NCitVZXpKSGVteXo2ZUxMODlYWHA3c3ZSbkM2U1hENmxyZEhxV1FjK0dQYUJ4OFdDTkVLdE5BOGNEQU1JcW9DR0FsR3F1WE1tV3kva1MKQlpPdVpPK1VubGdvdVQ0SjNEODIrUVdDQTZnL3FodGJWUmZrUm8xR0o5NnFPRDlEOC9GVTdjM1p5aC9QMGZRRGFJcjJ4aHpsalZMZApxZnBxNmI4Q0lITzU4anNCU0NEbThJVWN0b0RGNWJNQWhsUXFVWDJGOUdTMXFyVkcxVnFsUEdOV3Q1ckxUeHAxZFdxMVRpbFZTa1ZDCkFZZkJaWkk1VENLWFhjYm5sUWg0b3dKb1NTVmh4QXluRHo3VkJlblRyNTkrQUdFelgrd3NNemNiSEVBTWlSWlY2TEpNcCticjM4elUKM2h3QTBPWDE4cVlDb2FpVVQ4VUFWRWFYRUhBRGtiRnhJSUlZRmdNQkFPSDd4aGVKS0lUL09JQ1dOajRHb09WTnBWdHFTOFVHbGhFRAowREdUQ0FEb1dEVnNCUVFBZEx4RzBWZ24rSkZDWXQ5bzlHdzdZZDExekwrdjBiTy9xVHUvR1dTb2dRNjN1UXZQQVFCNWo1d05GRjV3CkFwZVV2UHF6TGRxRUoweUJSY1FqOFRFUlVYQ3o5UGR6ZVdqSjY5MkVWOE5GUEhnZEQvZ1E5eEE0Q0xjckhKSys0Z3NndlVmTzQra3AKT29lbnQ3QnR4S0NIMi9vSzJ3S0hXdnlGcmI2Q1p1KytFK2orMCtpQk00QStRL1RUcytja1NHRGZjWC8rQ1hRN3VGbnpoN21jOFlBMgpjT0pqVkFDQmYzQ1NETndpT2dKdTlCR0pKQ0lJNytrbHNPSGhtcXJRQ2hOYzRiVWEwcWNIUTg5Zy9lRDBHUXlnNGVVKy9hTSt1Wm9oClF6NzlKYytqNitlSEJWQllQNVoxZWhCY1A5Wk5KaERMWnBpdVBBQWdJd0RRdlh6VmFoMGNRODNWTTVZWmFLdkt1Vm5BUXdaeWtaWmUKb1JNMEcrVm5LeFFYSzFXakFRZ2ZBUUl2Umljd0FCM1RpS3ZWSW8yQ1ExU3lOeW5oQ05DU2NsR3VocnRFeDEycUUrVXF4UXVVa25VYQp3UzRSNFNDemdDdGxPRnpXdDk1NkF3QW9QVDQyTGlGNjV2U0VycWJjbnQvdURybTU0SDA1MWw5bktBVUdZRUdGOWJZTzhQYWRER0VCCnA1bUl2UjdHTHovZCtjV2ZxV2lQcnMvSDZYWHc0WjZwVG5wUFIvOUlFajdROHUwQVJJWUw3TjBzajRPVGsvRmNRZ0lTRnh1Wm5CRDUKNlNlSDBCNTJuNDJDZ2dkZ1pmanM3S0NqR092N04vUWUrdU9DZzBCK0M1d2o2N1V6Z3hhNGkxbXZoWTJOQUZGQSt0eDA4RjN3MG16TQpLOFB1QVFzS0h6RGRaNmZEY204bkkyQWg5SGhvM1U3V29xellXQVFJS0NVMUdVbUppZnpvWGxHUGo0WnR4ZlZkQVFUdWt3elVFckFRCmZaMWw0RnVnVGphQTNmQmIvclBBeVM4NGRHY2p3LzNML0p5ZnY3a083a3dTbjVDU0VwV2NGZzBBOUtOWHRxRWhPTWJ6YlFBRUxnRjkKdkZaNENRQlVWTEFrRmhzQm1qRDJXZkFtYmV3WUpEVWVQb1hCTzdabzdHa04zdEVreE1lbUpxZWtwNDZCU0VwS1QwK0tTUm1iRkkxRQp2Q2JNUmw5YllUKzczTnFjNGZqNVhyU1RIZklJckYxVTRKc2czSVNMOWdRQStTeGNad2NFVUhjbnQ5dFc2T284SElJZUpkejltRHA5CkVoS0RJS2twRTZKaWtSWExKOW90ckQ0N2VUaDluZ3dnT0xQMmdPQjNrOXFiVmlZa2duZG5DVWd5RXBNY0haMldoTVRIeGFjZ3R6NmsKdU4wQyszMkcrNEhBOVlBMW9uNXdBT0VEUHdCQTF2dFUrMzI0Lzd6bEM0THJsUld2cVZmRUppWWtqUU52RUdQWGJOemk2L05kLy9YOQoyZktiZ0JlemRaL01VTitkcWJvMVZYVnpxdmJ1WlBYTmFZcDdNOFczcHNudVRKSzNUNVBkbml6N3lTTEoyMlNOM3Fpbm13eXNTaFBzCitoTUdFSmFoQU5KanJlRVZHclpDd1ZGSUJRQkFKQlYzaTdRMVUzTDdlYzMxc0g0ZUE1Q3lQVk4xamFjM0h0WFNTSXI2QlpxYmszVjMKcDZ0dnpOVjhPRWR6YzU3aTVqVE5qYm1xOXNFQStuNVRZQ01DQ0crQnFGZkI5ajloQU1rbGJBa0dJSzZJeHhieW1Yd3VrODltQ3poSwpKYmZLSkQ5MVZOdFdwd0VHYWpGclRnTURWUnFQbTNSSGRXcWpRcWFRQ0FVaWVIc3lqMFhnc0o0QUlOS0lXV1NtREdRQVBiaDd3dGM4CkRxQ0ZsWXdzTTNPUm1aZFRxVnhrck1reW5KOWYvczQ4N2ZVczlYc0FRSm5sbDljcFRod1FpSXNGZEFBZ09nWWczRUQ0UkJnR0lMZ2kKckV4QU9DSWdIaEhCN2tZY0FDQTVFd0JJcUdYK3V3RzA4bkVBTFRvRkFaUlhWeXJVTS9XVi9LT1ZFRUJOWmtsamxlaDRwZWkwV1lRRAo2RzJKMkx2TzFMM2xKQVRRbnZydS9jQkFKeno3VHdFRGVTR0FXb0NCdkFmUGdMZ09uKzB1UE9zcFBOTlRlTkYxNkdKZjRZdWY3YW1hCkVEM3FLckE0SkQ0aUxpWUNRWjZLU2ZuOVZoTjYrRlZQNmN1QklsaElGQTVjeEY3OFFxRG9vcWVnelY5MnpsZDZGc1JiMHRaZGZNWnoKcE5WZDFPSXFQRzA5Mk5SMW9MRmpmLzJEdlhWZjc2cit4L2JLTDdhYS9tK0w4Vzk1NVgvZHJQdC9HelYvWHEvNjAxckZIMWZMZnI5Uwo4cnNWNHQvbUNuKzdYUFRMWE1HdlZvcCt2VXp3K3lXQ2prM0czbjFOb2Z5VFBmdFBodmFkQUFudVBkNHprT0R1WTRFREozdTNONkY3ClQzWnRNcTVKbUFLSGRVWUhFUGdzM09FMUFnSUlMZ1NMUXA1RFlqN0lMZ0VBOHErcERLeUM3dWxiV1luclozQWUwU2ZYQURLODJIa3cKZmNMNkNidm5uK3JuQndSUVdEODRnS3pyRGJZTnhqQ0ErZzIwdGNLMUVZNEEvWGFYWnIyR3RiaUtDd0FFc2tiRHphcmdaQnNvZXpWawpqWlovVWk5dE04blBteFRmQmtCQVA4ZlY0bHFOMktEa2NaWGNiUXJHWWcxdmFibGtxVWEwV0N0YVhLNWFyTkprcWZVYlZQTDlJbW9KCnU1aklMUDdEbjMvLzJWLytCTjZ5SjhYRUpDZkZKYVpFL2tZL0Y3Mnh2dHZMOWRwWVBTNENyb1RoQ2JvWnNER3hBNTY1KzJ4dzVaR3YKaXdRSFdyenNQbzhRN1NiMnVrcGc4MEFiWU1lUlhteU9LZXlleHc2RzNUTWVyQWFJaExyNWJoczNlODR6OFFsd3U3eFpNNTdxdXM5RQovYlJlS3hsMTBIeFdCbHp1WkQ4Q0FUVHNIdm96b0M1QUhMaG5xb3VGVjdUMHVlQXNGVGk3QXhzRnJKUkhHaHQrRDFoUWJEYk43MkFBCkdrSTZXT0E0Rm9vS3hHSTRBZ0dYZ3FkR3hpRlJWei9JN3d1Q08zbHNWZHB3V3d5UHowSUFEZ01QSTJDRmp3MXZHZkF0djNad2VoeHMKV1AzamhCVlVPSUN1dEdZblJVYU5UWVE3a3dBQWdYZFdyNys2SGUyQjFQdE9BQUlCQU5xN1kxNXlkT1RZdE1Ua2hMR0pjWkZHdzVxUAo3ekp2ZmtCc01PMlNjWmJ2eVhzdWMzclVoQlFrT1FaSmlJRGp2QWxSU0d3aWtob0ZYczhpRjArYjhObUpwZDJ2cnV0cm50dngycktlClA0SS9ESjdEeG5CMjBvQksvUUFvbGxHTG9QMWRjQ20rcDVQcTdBQ3dvMXErTGcwNDJjN09FbDlJckpXdlRBQ0NUMDlISXFMekM3STgKSHFHdnMzUTRmWjRNSUxjVlNJVUR2dnVQRmRsSnNaSFBKVHliUGpibTJZUnhUOFVsam8xTHlaZ1I5WCtmaTcyMlVzK0RZcUNjamdkbApJK29INWhzNCtRVUFaSDBJcDhQQWNmZEQ1bGUvTzlCOU1WdFVzQVJyZ1JpUFJNUklkUHBlTkZEenpoOG15VzdOMWQyRFZUallUaGVRCkl3QkFxcnNRUUtJYmdENlQ1TmVueUc5T2xuMnlUUFlqdGs1Um9TZFhHaGdBUUdhVG9OS0kxejd6cW8yY3dRRHEzd1FEQXhBNFhlSUEKRWlvWVpVcmVKdW5GdWRLUG50VmVtNm5xMTgvakFMbzFYOTNPS2E4OHBxTUpGS2FWaW5lbWEyL08xTjdLVU4yYm83a3hUOWsrWGRzKwpWM1hkc3IrcUFBQ0FBRWxFUVZTOXJMd1pBNUN5dFVid1hZdWc2MDJxNFFBeXFvVWpBa2dwWjh2RUxBQWdvWmpIRWZHWUlpRmRLS0R3CnVDUXVrOHlqaVJTOFNwT3NxVnArdWtweHVrclZYRjNlWEdOcXJ0SWZyOVRXR3pVMWVuV0ZScWxWU0tWQ25vRERSZ2FtdElabU9IM3cKWkZlU3NmVFBlV1ZYMFBEa1ZGSGhncTlCQnNxdVlHUlhzQmFhS1ZsVmdFZjhSWlhhYkZOVGx2N0YrZVUvbnFlOWlnTm9udmJ5T3ZtcApmS0g0Q0o4MkRFQmxnd0JVQWdCVUxDUUJBSkZFL3dVQWdlTWhBQktVTThvcmVHRUFOWmtmQTlCN1FxbHZ0UkVBcUd0WFkzQTNCRkQzClBnQ2dFL2c0RUdhZ2ZnQTVzZUVmMTZFV3RPaUY3b01YMGNLWHZ6bDhmSHJTdU5FQUZJL0VnWGRWUUJJelVwL3VMRGlKSG56RlZmeWkKLzlCRndCMFFIRUQ0TWRDUGJjK3BueThUL215cDROTWwvSi9tY0QvSlpuK2N4ZnB3QVFQa3hud1N5UFZNSXNpMWVRU1FxeGxsSUZmbQpsdUM1bWxFYXpyVjVaVEFMaUpmbmwxMVpRTGc4cC9qV25MSXYxcXQ3RHZmVEIwOVlQNkU5VFQwN2ova0xUbnEzMXFON1RxQTdteWd6CjFvQWZCZTZITWNvL0lKNWtiSzk0MkRVNkVyeHRST1pIcGovWW9nMnVyKzVlVXdFTTFMUGNoT1pDQnZsV0dQMHJod0lJMXcvSWtKbXYKUnhVL2d3QTBlTlNuYTVucVVRYWhwek5YRmM3RDVZL3lRd0VJNkFjSGtIMGpwSTl0YzBWL3RrQUFPVGRYL0hsNytTWVZCTkN5Y2lZQQowQ29WQk5BQ0UyV0htcXhRY1k3ckpXZU1zbk5HK1dnQU9tOGVDcUI2amNTbzRFa1YzTjF5SmdEUVlyMXNzVnE4U0N2TEtkZm1LQTJMCk5KV3JKTkw5UWlaSlFDNGtIbXovc0wzYjU1bzFlMXA4ZEJRNGl3T2F0a3Nub204c2MvZzRIaXVyeDFFeW5BSjQvRTV3VWlRQ09xQU8KRnZTSGxSbXkwdnRjeklDYkVMRHh2WjFrMUFYUGFwQUN6cEtnVFlvVFpEQ0F3TmMrQVVDOVRvNnZrNGc2K1U0TGQ4SE1jYkZ4Q0hoZgp2bWIxdktDWEgvS1VoYnJJcUpNS3pvZzlIb0hmVnRqYitRUUF3V0VxOEkzOGRyTFBEa3hBOHJ1SUFUZmMweFJiL1E2cDhkakF6L0I3CndJSml3ek5CRDl2djRQZ3RkTlRLZzVjaHlsdnZFdU9qa2FTNGFBQ2dXQ1R1L1hmelVaUUpUUFpkQVFSN1REdG8zUlpLd003eDI5amQKWGJTZ2s0blBNMzdITUlPZHBJQ0xIckFRNEw0Y0FmNWJ4eklTa084SklMeE9mRENBOGpaTXhzQ1htQm8vUGk0YWVmWDFqU2dxN1EyUwowRDR5R21JRTNKeU9yL20vK3hYcngrOFVINjNaSU9BdjNKWTNlODZjS1JOU2tpSmlFOENUbmI0eXFmZmxtV2h6MW9QbURQZmQ3ZjRICk5JK0wwMjFqQlMyc0FPelRBeHNZamdnZ2J5ZXgrd0czMjBaMldvNjRPamxlbThEUlNYUjFNUUtod2w5OEloK1hnQ1FueFFKdWNZUmIKZTFHMXA2TjRPSDJlRENESFE0cXZVK0Y1S0c0cm00ckVJT2xKYVhIallYWFgrTFFKc2RGcDh4YWtQK3d5ZGR0TEF4MWt4OWRzSzF3MQpOb3crV0w4ZkhFQmQ5Nm4yVG1ZWERxRDdqTTkvdHROOUptUGRnbWxJT3ZKVWZGeFVmTklySDF6MStWM3NNLy96bk9KV1J2bmRPY3ByCmM3VVlnQlEzWm12dVBDKy9CVXVDeE5lbnkyNU9VYmJEWVNIRkp5c1ZMd3YwMGtvOTJXeWtZd0FTZ1FEdW1BM2NLZ043Q0lBTU91NGcKQVBFVUVpRUFVS2xTc0U3eTRoenBKODlvcjgxU3QyTzVDVEt3NWZ0dGtOV2E5N2k2eWdZdFU2SXdiSkM5TWxkOWRZNzI5bHpsWFFDZworUW9Jb0F6MURReEFrbWF6c3FXYS8xMlh3WDlYQU1uRkRLbVVLNUx3T1NJQjBBOU5KS0lJZUFRT3E0QkJJdktvRWhuVHJCY2NyNUtlCnJsV2RxdEVlcnk0L2ViVDhSRTE1SSt3NXBHM1VhK3UxMmpxbHNsb3FSNVpVVU1OWmJLS0VrMk9paFlNWE5lTVpHTjBabWl3VEg5YjYKd0tFZ0hFRHN4U2J1a2dyZWtrb0d0Z0Jlc3NCY1BkOTRLYlA4OGp6dGRaQk16ZlVNM2MzNXVzdXJsVzE3UmVveVBvVXFLS09LU2NBOQorQlFZQ0FXYkNDT0tDQ0NGb3JJaUliRkVTQ1dMR1F3Wms2ZGtpOVFzaVpvcFY3TkF3SzhURDVDUVdFdkZERVRpcVdFdlJOZ0lVVTdZCnJ5V3VNeE1YMVpPVzFoR1hIU1gxQjZBSFMyNERNYmVoYk1Tc3FDOWIza2pJUFVaWTFsUUtBZ3kwL0ZqSnFtT2xsRXFhd2NRN29SYzEKR1VUMVpqRXcwS2xLNmFsYXFKK21Xc1Vkc3NLNVJ1dmRVT1hlVnUvYmR0U3pyOEcxdDhtOTczaDMva252Z1ZNQVFDQytnaGIvd1ZiZgpnVmFBSVZoY2ZPUzg3ZURwdm9LekR1b0xPMUt5WUExTUJKS0VSQ2Noc1Voc0RIaHprSWpFUjhRbXdqNklrRUN4aDhibG9FVVgvTVZ3CkJSbGFjTTU3dUMxWURNdUpRRHdIVzhFeHlPZXI5ZTltbGx4ZVNBUnF1WlZEdXpxZjBKNU51WlpGQXJtUlJSNHhON09JNGR4YStDamcKQ3orZVQ3a05NSlJEdXJLSWVIdDJxU3ZQak1LWkx6andFOFRRRThKMkxRM3Rnbkh2YitqZFdJMXVQOWE5c3c3ZFdQZVhWZklKNEtlSgppNG1NaEwwZElYUmdrVTlrRWhLVGpzVEZJdkRIU29CalArQS9NVWgwZENJU1k1cTdCMTNUMElQTmVZVm51OEw5RElkMzk4RXpmSVhYCmtNa3ZYRDloOUF3ZStCbk1uZUhqUFhpRzlEL3M3NEs0U3Z0dzFXTk5uOE8xejdEVzUzRUE0Wk5mblJ2MWxvMEc2eWFqYlRQUUR4UVAKSHVzMmcyT1QyYjFCMzdWWmUwQXV6cXlpNVJwTHdMTnBtWkczdEp5OVdFZmZvS1hUZGJ3R3JleWNYZ1ZlYXk1Vkd5NVc2WUY3Z0g0dQoxUnBCenRYb3oxWURBeG5PbU10YktyU25qT29UZW1XalRuWlVMYTVXQ2RWS3doNmxJa04rS2tOeUtVdDhjYTc0aFNtaU42Y0lyazhWCjNGbkpQVjRvNGhUekM0dTVSYTBYVHZRRmZYdDM1NE5mMUpqa2hHZ2tWYkwzZWZTbHBhRnZTb0llOHVBNW9IOVR3a012Y0RBSmd4RisKcGRkR1FPM1VQbnVaclpNNmYvWXprVkh4Q0JMTjRNMUJRL3lnblJ5d2tYcGRqeWJVbmp5YjlvTUVmM2pEWS8veTRLUUpZOEZUTlRFdQpOVFVXYVczYmlxSXlGTUlDUHJaL1BiMWRsQkJzd0Vqek9XbmRkb3JIUnZiYUtlQkR0SXVHV3NBbHJQZ0pZYmZFSHlkc1h0REJDWFNYCnVVTnMxTXBBLzdEelJXVjJZa1EwN0NHWkVwK1lFZ3ZlVTczKzJpWTB4SUZUbkhieTRPOEZTQm9PUUJnUUh0d1R0NHZRNjRDZjhqbW8KUGlkalNjNmt1QmdrSlRVQjNGczBFdjNDeFIxb2tBMFgyZG5nWWpFNEsrcG05M1Z6VVI4ZkRRaEIvRDZHMHlvQUpIcnZ4MlcxMVNzTgp3bWMvdmJUMjZ6ZldQYnlZL2NXTFdlaG5wYWhkNE82aWVoeE1aeGY0cGt5dmhRNEMvQWZpNmFUaUJ5REFSajQ3MjlsSmM4R1ZZblJmCkJ6WFlRZXZwWXJoOHRLOS96UnIvZE95WUJQRHFtWEs4ZVcyb1QrRDlob0x2Z3pFODdxNlIwOVhGQ2xrNDZEOE9xQXZtZ0pldjhmSEoKU1duZ0dURXVJVDBoRW9uWnUyT216OHQyZDNMczN4REFvNFZMdlI1UVI0eTlRMlQvcXRUVndmekt5dlE5S0xGOVJYdm9WRnRmWC9tYgpodHhKenllUGlVOENTWDNtdVQvLzcwOC9kL2FzcUxnSHVCUE9EUFhkNmFvN1V4VzNwc2h2VHBMZG5TeTlPMHQ2WTY3czV2T3lEeWNxCmIyNVROK3UwYk1nZHZBTGFCRHYwaG1QR3FxRXJqWGdGdEJBdWdOY0tkQnErVXNtVlNRVXFPVU9pSkJYSTlkbnl5OU9VUDVtaGVuK20KK29PWm1vL21LVC9PRWwvUGxGMmVxcjA5V1hkM2h1cnFCdDJMR3EyOHNWeWdsa3UyU3M5T1UzMDRUM2wxaHZyMkxOVzF1YnFyazlSMwpzK1NYR2VYMWRUV2lwaHBSVzZXaXRVWjVwbGFGVi84TVJJOEZIcHc1V2o0WVFFMFZtZ2FEc3JaY1dhbFRHTFZLdlZhaGtvTnZCSmZCClY2bUVGU3FCU1NuQWRnRVRsaXNFd0VaS0NVOGxGY21GUXA2RXdaQ3kyWHlSaU0raUNCazdlYXBkQXRNQkxyMk1WY2prazZVYXFhRksKM1ZTck9tZldOVmVybTZ1MWNEU29TbitpMHRoa01qWWFEQTNseGg4T1FCVWNmTG43NEdBTHdUaUx6UHdzczNxKzZkZzgvYXZ6dERpQQpyb0pMSEVBclZlY0dBd2pUenlNQWtjUlFQd1JoR1FEUUVSRUpCeEJMeHZvWEFEU2duMEVHK200QWFpekZBYVFmSFVCM3lRckhhZzBBCmtHdnJVZCtXT3ZmZWV1Y2VhQ0JzRU9na0ZqZ09CQXpreTIveDVyY0VDczUwRjU2MUgycEJENXgxa3k1eEoyK0JpNkdpb3VMaTRxSmoKZ0EwaUUrSlRJcVBpNEk3cVVVaEVYRlFNRW5ONlFTRmE4b0svNkZ6M0ViZ1ZsKzlRVzdEb1BMajBIejdyUFhnRzcxNzQ5M1VWUDU1WApjaldiZkhVaDhlWWlLZzRnY0h3OW0zeDlJV25FakFZZ1lLTjdtZVE3ODhvQWdDNW5sWDA0bCtqSnEwTDNuZ3hQZTRYMUU5elpDQUlBCmhHNm9SdlBxZW5mVTkyMnRzKytza1UzZWdNRFY4SENTQzRtSmlJbUppUVl2VGJHdzZqa3VKajR5QW9Fa1NvNktRc0E3NXVqRlVjLysKZWEwYVhWTTlXRCtEQVlUVFo3QitoZ3o1akRqMjgxOEJVTmhBZ3llL2dIN0NBSEpzZWdRZ3gxWWNRTHFPellaOHNYNmVTYjVDUjgvVgpjMWJxdUt2VXJCVkt5a1lWbWFwaTFtc2s1L1NLMDVWeW9KL1JBTlJXcFI4T29ISVpmNy9NUEYvODBtekJCNW1DcTdPRWw2ZndiMDdsCi9IUWE3OFlxYnNNaElRTUE2QWluOEZoekxZcUdCSHdKVVBpRXhIaTRJOWlhQ2IwdjVBUy9LQWw0WUNIdGNBcjhzQW1mdVljQXFNZEoKUmUwMDFFVnlXaGtMNWp3Zkg1Y2NGeEYxdEhvTkd1VDlWd0EwV25wZDVLMmI1b0huYTJwcUt2aWJyNjFiM1ljS2VpeHdUdTBIU1o4VAphMnlJb1FSOENLMWpwWVM2SUlOQXVySDRNS0QwZEpKN0hwSzhEanBxay9kMGxGbC9zZHZ6NW1yMDFTVXRwQmxJWk9SM0JaRFB5aG9BCkVBbFdKZ0VTT1JqZ3puT3lKc1lQQUFpOE9yMTRhWHNZUUNQR2F5ZDZyR1ZlTjdVUGxmYWhDcCtiaHpvbDZPZGs5SS9GdHAvdkRYMUoKQWQvRjNrRnkyWUJDc0tHbVVRQUVWOHRiNEJ3WlRDY1Z2NDNySWJuWHcvclRsWUxVOU1qVWhKallxT1RYM3RvWDdPSDV2NEYxUlNObQpPSDN3MkxyWS9pNVd6MThQY0xaTkJnQ2FrSmlhTWdZQWFDemM2aGFKb2hNVytYMGNWd2ZiY1ovNFR3RDBBQ0xKK1pCMXY0UHB2bC9pCjZHQjgrUlhIL1dMdXU2cEZ5YWxSS1hFSll4T1NuNW84OWY3WG4zMzBoWFcrdWgyNFo0NzJMc2dRQUUyVzM1c3N2VDFMY25PMnJCMWcKYUxyaTJpNzFpWElkNTlzRENPaEhxK1pCQU1sNFNqbERxS1RzazVvV1NOK2ZxdmhrdXZLRG1lb3IwOVVmWnFnK3lwSmZ6MUJjbWFLOQpDd0EwVzMxMVovbDVnMDdhcU9NcDVOSTgyWG5zTnRmREFKcXN1WmV0L0FBQXFMNGFBcWpWL01NQXFMOEllZ0JBZXVVakFDa2xRcGxBCndKT3djQUR4ZVV3QW9PMDhYUjdIbE0vbEVMakZGQTZSS21BQUp4ajF3dU1WNmhPMTZoTTEycE8xZXBCVDFmcVRWUWJBb09NVkJnQWcKT3A3RkFEcURrbU5paExPNGdobk9jUHJneWE1Z1FBQlZjTEdtejdpRTZEbG14dUpLeVNLVGFvR3BlcDcrM0R6ZHUzTzExMEV5ZFZjQQpnT2FXand3Z3VveElsNUdIQUtoSUNBRlVOZ2hBWXRWM0JSQnBBRURrSVFiQ0FEUnlIZ0VJTTlBQWdPQ0c4QUJBeC9XaVJ1TWpBRFhYCktJN1ZDcHFxNVhkSWN0Y3FqVytkMmJtbHpwdFg2OTU5MUxtNzNyMjMwYlAzT0Q0WEZwNE84KzA3N2QwUDl3dHpIbXAxSEc0RkFBcVUKWEh3aGw0bEVZVHVJUmlOSVlud2NFaFVYazRoRVJjY2lzUkZ3TVhITWVDVHVMM2w2OU1oRnVOUHFrYk1BUFlBK2djSnorQ1VBRUxnRwpIRHpZVXZkQlp1bU5SUlFvbm16eXRRWFFNVGlEMmhlUVJzeG9BQUkydWp1UGRDZVRBQUUwditSbm1UVGZ0bHAwZC8vQVQ4L3VKcHcrCm9SMk53ZTBOSUw1ZGplaVdodENHR2pTdjNwRlhEYTc1ODFKcER2SXNWQTc0b2VDS0x3UzhlUitMeEtSRXdKSW1LQ0U0dGhXQlJFV20KSW5FWFpoZmdDOTBIbC9zTTBNZUFwVjgvbzNYM0NidG55TmpQWVAwTUJ0Q1FDYS9oOVBsWEFEU2s5QWNIRU5DUGZTT3Nkd2J1Y1EzRQpzNlhDdGFuU3MwbmR1Ymt5WDNCOGp2YjRLcGxpbllLL1VjcmNMS1d2bHhBM1M4dElVbEtkU25ET0lHdXVsRjR3bHc4R0VMZ2NFVURICnl1WEFURFZxa1ZFbUs1TFc1b2hlbThIL2NJYmdmNllMUDU3RyszZ2ErMmR6K1I5czVOY1c4c2tsd3NOSE9FVjZzd3BGZzVjdXZRaCsKVTgvRVJrYkZSQytkbW1Sdlhkanp4eU5CSHhzZGRyNy9qd1djVS9zc1pOUk50blhSWjA0ZEh4MGRteHlCM0htM0JQVnpjQUFCSWVHbgo3Zjh1Z05BUVc2L2ZoRVJFcHNFNlgwU2pXWXFpM0JCY3d6K1VNdDh2UHJoZEYzUlBuMlVnV0tjZnA0c09PQUtuSFR0cElFQXFRUS9iCjUrZDZ2aVE3YnhVNFg4NzJuRjNzYjhsR1gxMWVXekE1SVFwMjVmbU9BR0xnQUFwWXlIQUlDbHpwWkhwczlJV1p6eVhFUWdDbHBNVEUKSUZHdnZMUUxCeEErUjRhbjIwSUpwODh1OUhXUVE4NHl0eTNmNFR6b2NwU0NlKzd0NFBkNWhKQWpWaHFnajlOSzh6cVlYaHVjQVJ3VgpRRFlXWUVvMzFpblJZNkdCTDNSWXFPQnIwUzlLZjlxNk1qMDFNaVV4SmlrcDRlTlB5VDR2dmVjQm5EVWJNY1BwZzhkdTRjQ053UDZZClg3UjhBaElYKzFSS2F0cVlxUFNrdE9ReFNlRC9XSlVwTHhqZ09SNHdBWUJjblhCNTEzRDY5QVBvUHNQUlNiYmZwM1YrelhSOFJiVFoKR1ovL3RzRGZ0a3hkTkJPOEhvNUpUazlOVE1wZXNyamJiMis1KytjWjBxdTRmdkRNMU53REFKcW12QTBNTkZsK1o0cnN6aXpaTFpBcAo4dHVaeWg4ZlZOY2JkT3lCa3VmSEFEUlFEVDBDZ0JSWUt4MjVnc1ZWc0hhSnF6TWtseWZMUHBvdWYzK21xbjJhNnQ1czFkMU0xYlhaCjZ1dlA2KzVNMWQ3TzFsd3UwNStvMGdvYnRGeWhUTFZCZmdtWWJJN21aaGhBVXpSM2NwUWZzUFQxOVRXQzd3MmdPcjNLWEs0Y0VVREcKQVFEcDVId2NRSElKWHlvVVFRQkpXQ3dlSHdDSUtHQnY1UmpYTUd0MmMwV2xQQ0tCUlN4a0VFdDRwVHdwdFZ3dHFEYkxhNnVWOWJYcQpwanJ0aVRyZHlWcmRLZUNoYWcweXhEM2ZHMEE1RlJUb0hwTUFCdC80b3BLK3FJcVZVNkZiYUt6TzFMZk0wNzQ1UndObk5JY0RhTGRZCkF3QkVFVUlBWWZxQkFBTHBYd2dtTENzVGxCNFJ3UnFnTUlBRUNnZ2dtZXFKQUZLUlJnZlFZd1lhN3A1QkFDSXVieVQxQStnWUlRd2cKUWlWRlorSTJHWVlDcUFrRDBGMmkzTGxTN1Z0VDZkcGM2OTFVN2R4WjY5bFo3OW5UMkwzM0dBRFFZQVA1OWpVSDlqWDdEN1phQzA2NQpEN2YySFRnVEtqejd4OTNWS1pIeDRNVWQ5c1dKajAyTWh0c0hBdmpBdmNEQUsxVlU1TTdrT2Y2RHA5SEQ1d0w1cmM1aVREOEgyNEtICnpnSVBnVXR3akI4NGRoMi9NWThBV0FQY0U1NzV1cEpaOWdRQXRTOGtoSE56d2FNQUFOM0pJTjZkVDd5V1JiaVdVZnpIYkc1b1ozM3YKTHVpZS9nelFKN1N0SG1iTDBiNmR4M28yMTZHYmozcTNIMFUzMUtGNXgxNVpVQXFFQTl5VGhzVEV4OFBWN29BK01kR1JlSWRvY0pFUQpsd2plbGJLZlhlRmNxZXRkVisxZDlhalFKNndmZkNldjd0eEhqUTFITEhaK1JKOWxhcERoK3NHNU0vajQzdzBnZlBKcm9QVG5NZjI0Cjh5cEJQSnNyL2YwZnFxMGJhL2F6WDV5cGVIdTFvSEdyVUxxRFQ5M0ZJMi9ubDI3bEY1VUpTc3dLZHB0ZTJteVNuSy9VQVFPTkJxRFcKU2wyelNYUFNvQW9EcUVySm84cTBxOFJucHd0dlRoUitPa1Y4RHh6TTROek5FcjZ4UTJndTRaY1JSSWVMdUVWOE9jc2ZjUC82dDcrSgpTMGw1TmhxSlRZb2VGeC81dStxNW9aL21CMzFjOUw4SGk2Q0hDVTd6YURlbG80TTJaZHI0aU5qSWNZbkkzMzdMUnIzWWFSdnIzNFBmCjhyOE1vQUR6NnZYRHNMUS9MU0lLU1pBSWNsQ1VHWFQ5WUFBS09HaCtDOW5YU1F4MWtYdmg0bllhSUpISFNrSTdHVDNBQjBDS2ZpN3EKRjZDZGROK3Y5MW12cmJHM1pybWFsM25hNXZuYWNnS241cUZ2Yk5Ec25naWVpdDhEUUFFcmxCWUFFRnlRYjZXRjNGejdRMHJHN0tlVAo0aU13QUVXQkovYnJQOXFEQnBsK0t6R3NuL0RZajk4T214SjFkN0w5WFJ6VUlmREIzYmpncWowNGgyVm5XeHdNaDVQaHRBUEdNWDEyCkp2eGFHODB6T29BQWQ4RDFudnNrWHhkY0xHYnRvanBzREorYkY3eXorU2QxQzU4Wmw1S1lGUHZVTTRtZi8wM2dzaE43SDhKTzB5Tm0KT0gzNkFkVEo5bGxacmwvdTM1eVJpc1RIalU5UFMwK1BUVTlPU1UySHJuM3AwbDd3ZElDTHZ4NVFIQTloYTUvaDlPa0gwRGRrdTRWawovWnBpLzRvRGk2QnR0TC9lMnVRL3ZXYnpzbWVSaFBpbnhrK0lpb2dtVThvQ0tFcS84UEYwUmZ0b0FKcWl1RHRkZm1lRy9OWjA2ZTJaCnNtdkxsUzhUdEpVbUEyZVFmdm9CRk5aUEZkd0lUSUF0QVlNdEVIRUFBZnBJNVN5cGtzMlFTL0pFalRQRmw1K1hmVGhOOXNFTXhXMWcKckJuS214bWFLOU8xN2M5cEFIU3VyZE8rTGpLWTYzUzhPaFdMSVRPc2xyK0t6YzNkbXFHNU9WTjFBd1BRcmNYSzk3aUcyb1pxM3JGcQo0YjhDSUpOT2hRTklKWU0xUU5qd0R4K2IvK0tYS3dSd0l6QXBYeUhsU2FWY2lVRElGYkV4QUhGNWZIcXBrTCtKWGIyTWRXb0xWMVhJCm81ZHh5RWM0bEVLc3V6SmJTQmNyMlRJTlQ2Y1hWVlJLNjZybGpUWEtwbHJGOFJvRnN0aklHREdqQVdoeEJYdkV3QzZJNE1Bb1dtUVMKQVFCbG01bFlTWkE0eTFTM1FOODhUL2RLaHVZRFlFWVFERUJBUXUxemRiZUJoSEFBbGZLcEZDR0JMS0g4VXdCUlJReTJsQ1ZVY2lScQo5aE1CaE8wSnJ5SXpaU1NpbkxSZlM4SUFSRmxhUnhrQTBDTUc1ZGFUaDlQbk1RQTFrZ1lBUk1BQlZHcW1hQ29nZ0JvR0FOUThBS0FUClZmSTdCSmx6aGNxN3VzSzVzZHF6d2V6Y1h0MjlzODY3czhHMzV4Z3drR2NmWkJBK0hlYkxQeDNjaXdIb3dFblB3WlpBZm92L1FJdXYKc0czWDA1blI0T1V6T1FHSmpJcU1qUVB2d2VOakV4QWtNaUltR29tS2ZtRkpXYkFNbHY3NDhsc0FnSUtZZVBBZXpUaUE4RGJOM2Z0UApmNVJGYThjTTFEL3psVTIrTnEvczVrTHlZT2lNbGlFQXVqMlBlR3MrNGVyODB2WTV4Zi9JbGFFN0czSDNnUFJzYitqQjZiUGxLQjUwCmZhMTdXMTN2dG9ZQW5BaXJSNWRYb3B2clE1dHFEZE0zVDBPUzRLTFkyTWpFNk5oWXVOTTlIQkJLZ2J0N1JDS0prY1F4MmU1bGFuUlYKWldDbHdiMHF2TGk5ZitBSGJtSzZYSThGYzgrZzFqNVFQNE8yc3hnUzZ6S1ZkZERBRDRCT3h6SWx5TDhiUUpZMTVlRlkxK3B0Nnd6Mgo5VWFZalVibkpsUC9xTTltU0I4OHdVMFY3czFtYjU3R3VhRjJQL090cVpLN3k3a1h0bkhLOTdFb0I1aWt2WnpTSFp6Q0ltNWh1WXplCm9wZWNNb3JQVldpaGdSNEhFTWdRQURYcEZRMWFhYTFHWEt0aUNSWENyWkxHT2NJcno0bytuU3k5TzBOOGJTYi94akwreFgxQ0hZRmYKUkpFVUZmT0xTUnppMy83K21kVmxteng5eHZnSUpIbDhBamhCdnNhWkVicXhQV1Jud0FLVVlhZjgvMHhjYm9hdmk0UzZLRjkvVFo0MgpFNXc4SWpKbXg5a2ZjRkFQQTQ2di9QOEhRRDc2bDEvU0owK0tSMkxCWDNjcWo3S3dMd1JMcllkVDV2c0ZhemZRL3pOMlcwaHVDeEZPCmU3bmdKbWlvbHdjUytJWm8vM1M3N2MxbC9qTUwwT09aNk9rczlFeHV6NFg1dnJQenU5dG05YnkvbGJ2MU9mREc0MThDRUZ5Tnp3eTUKK1EvL1VUcDk4cmpraEdnQW9PVGt5UGpJeUhmZTN0OFhZRUNpNFJOZXd3YUJuUFlTcjVPTVZlM1FRNTBRdFY1YnNjdCt5R2FoK0p3cwpJQnRmRjJ4MzFOMUI2clpTWVlYVEtBQUNxb0RMOSs2VC9ZQkJWcWJMeHV4MThKMS9MWFc5dU9qM0RUa1RueDRmRlkzTXp4cmYxU1Z5CldjdENvd1BJMVVrYk1ZNkhySUNUL2ZEdTdpV1RraUlUazFQVFU4YWt4cVVuSjRDZkZIYVh2bm5JNTJHNEg3SUJnT3ozS2JZT3huRDYKNEhFK29ObzZ5Wlp2aUo3N1hHc0huQTc3OHAyMWYyL1k4T3p6NlVsanhveE5INE5FUkY5NjRWeEhFRjFUZVgyVzlzTzV1bnNnZzZmQQpBSUJBcGlqdUFLTk14OGFCNXNvdmIxYWRZZXMwWmlQeld3SklyK1VCL1doVVhDWFVEMHVnNXBLazZyV0NsbW1pcTgvSjcwNlZYSmttCnV6TlJlbk95L09wTTlaWEo2cHNUVmJlV3FOOHVLRzh4Nk5YMVdsNmxuRlVzUDdwRThSWWMvdEhlbWFGcEJ3Q2FvLzFnbXFZOVYvMnUKd0ZEVFVNTTVWc052K1VFQlpGUkIvV0J0b0NHQWxESUlJTmdGRVFLSXd4Q3pBWUM0UE5vUklYOGRwM0VoNTRXMTNJb0NIcnVVeXlqbQpNNHRFcEJJUmtjeW5rbmdrcW9ERUZsTkVTcVpheHpVWUJkV1ZrdG9xQ1pKam9PTVpCaUJXT01PNU0wSk01Q1VtN21LakJBS29rZzMwCmsxVWh6emFhRnVoYk1uVXZaV2gvUEVkell6WUUwSTI1V0JFMEFCQmNCcSs3c2tKMWZqQ0FScHNDS3haQ0FCRUVqd0FrVTMxWEFGRUcKQUVRZFlpQUlvRkV5Q0VEUVFCaUFDS3NhaWNXVlpGVUZwOEVnSEF5Z1U5WHlFeldDazFYeWUyVXl4M0psOTBxalkwT1ZaMTJsYzJ0Vgo5N1lhM3c1b0lPOXVPQTRFRElRRHlKM2YzTE9uR2FESHNSOWlDQVJjZ3g2KzhQSks4Z1RZT3ljT2Jod1FFeE1SRndON0pjT0ZWSkh6Cms1Ly9lbTl0ZDhtNTNnTnRubjNObnNOdHZVQS9RRHdEbDlCREIxcng0OSt0Rk4yY1czWmpQcXlEaHZySklsM1BKTnljVHhxTW04RzUKc2FBc25QYjVqd0x1NFU0bTZXWm0yWlhNa2cvbkVTeHJkZWlPQmdDZ01IMTZ0a0w5QlBQcWVqYkRvT3ZyYmV2TmZWc2EzV3ZONk9wYQpkRVcxYlUwRnVyeTJKNittZWZiK0dRbFBBY1loVVZHeGtYQ0hlSENTaUVPaWt4TFQ5cVhQKzJxWkRGMWVCUURrWGFRS0x0Y1BudllhCm9BL01rTWFHUTBwOGhyZ25USi9PcFVvUW5ENTR3dGY4dXdFRTlCTUdrR09EQ2VnSEJ4QkFUM2VlR2NTM0dTYTQyZWplVXVQUDAvblcKVlJjdzNucE85dWtpM2x0YjJIWDVUTnBCR2ptZlJkakJPVkxBT2F5UzBFNlZpMDRieEdkTkdtQWdBQ0M4QUNnTW9BdlZ4akNBVGhuVgpBRUNOT2xtZFZsS25FbWlVb2tMeDBXeit0WW1pWDArV2ZESlRmR3NHLys1cS9za0RBZ21KZDVBc1Bsd3FMQzFsbFY2L2M3a0hEVzNmCnZqTVJRWkxISlVWR1JzcDJUQTI4dmFidlBoSHU4elhzbFArZmlRM1dBTkZSTC92aDMwalRwendEbmlJN2RrN3BDYkI3c1oyLzRONFgKY0lWWGYwL0YvMkw2M0pRZUwvZmcvbWx3TGh0SlloeWEyK3NsK2wzUUt6OUlZUEVOWmlEWWhOcEpoLzJCQUgwY0xGOEgxZlBaWWZldApQUGNyeTN5dEMwT25GNFphczBOdGkyd3ZMUENlQXgvTzdHdWUxMzF1OW9QWE41ZXRtWmdjODkwQlpLUEJVUjl3WlJoQUxzSGYvM0w0CithZFRrK05qc0JHZ2lNU1l5UGZmT3doSGdFWUhrSzJyek91bUE1UUViS1JRQjZHbml4QzBrengyQXV4WFpHZjdPeWtnc09XbWhkcHQKSTN1c3BORUE1TEFDK2xCRFhiRDVrN01UeUl5SGZzWDQ4b00xcnJhRmZ6MlorOHo0Y1VnRXNtL1BITDlINExhVWVoOE1kYzgvQlpEegpJWnhEL095dFRiUEdKY1FtcFNhT1NSeVRIRDhtTlNFcE1mYTVjVW0vLzJNUmNLZjdJUlA2NWdFQUVHczRmY0t4ZDVBczkwdUFsbXdXCmtlTi9DN3BlV3ZlR2VDbEExZGh4cWJFeEVZa1Rudi9mei83NHlmOVpad0ZTbEVNQURha0JHcGdDZ3h0MVRWUGVuYWk0TjEveDQvM3EKSm1tNXBNcEFINlFmQ0tEQitoa05RQ0lsbmF2bUZZdE5LL2lYcGtodUFnQk5sMXlaS3IwOVVkSStTWFpsbXZ3cUhBcVN0K2VwTG5ITApUWFZhUVkyYXA1UHk5c2hPTFZCY3psRGZtQVllb2ViYWREVUVFTGhjcFg1WGJLeHFyR1kzVnZOK0tBQVpWSUwrSldCSzJBWHhNUUJKCldSaUFlQ3dKaHkzZ2NBWDBRcUY0TmZmVVRNN3J1ZHlqZTNtQ0kyeEdJWWQyV0FBQVJLWUlXU1JnSUl4QkZCNlpLYVR3SkRTcGtxM1EKY0FHQW1PRXNOckxDK2U0QW9pd3g4akFBQ2JDU0lFR1d3WmhkZm1LZTlzVjUycmN5Tk5lQWZtWnJyODNXWGdILzF6TFVONGNEQ0c0RQpoZ0ZveENKb0FLQlNBWWtvcE5IRVRBQWdrUUlDU0lIcFozUUF3Wlh3b3dEb01RTU5kODhnQUpFSEFRak9oZUVBS3F3a0tTbzQ5UmlBCmpsWmhVMkFWa3ROVkVFQW56TEo3SlZKbkxnYWdkZWJ1TlJYMnZFcFBYbFgzbG1ydjl0cnVIZlh1M1EzdXZZMXV6RUMyZ2hPaDNTY0MKKzA2Q1kzaFpjTXArOENTNnY2VnpmKzMrcERsQVFGSFJzVkd3NkJsdURSRWZIZk04a3RLV2VhanZZS3QvLzJsdmZvc0xObUp1N2Mxdgo5Y0doSTRnZWNBQUFCT2lESC94am0rSDJYRUo3SnZIcVF1S1ZMRGdPQkF0OU1vbkQ2Zk5rQUFFMjNacFBnZ2Z6UzMrV1JRT25hblRiClVmL09CdUFlbkQ2OWVVZUJlMEtiYWtGNk5vTExvNzVWNXQ1TjlmNjExZWlhV25SelkvZUdHblJWVGMvNnVyNk45VDlid3FjL3YvSzUKK1BIUnNDdzZNaFdKM1IwL3MySE9IaFRJYVcxVjEzSjFLRmZmdTdheWQybjVRTVhQSS8yNGNzdWR1ZVc0Zm9ZVU9JY0JGSFpQT0RoMApodWpuUWU1alYvNjdBZlJJUHh2aFduZjNwdjZ4SDV3K2VQeDVlbmRlZmM5bVE4L2F5a0xtcTA4cFBwMG51THllZS9JQWkxRkFwZVN6ClNEdTRKZnM0aFNJeHRRbjJnNWEyR2RWUEJ0QnByQXpvdUFIV1FRTUExV3JFSmlXWExxbFl3WDkvcXVBWDB5V2Z6SmJjbkNIOGFCTy8Kc1pEUHBmRVBrRVVGOExuR0tqM1YxaFJDZ3pXVlpuQnFURWhOakkyTDJERHJhZXU1ako3UDhudmR3dUduL0I4Mmd3dWZnNE1Lb29OZQpQbXBqb1E5SS8vaG85NXh4NHlNaUVLbDRIWXIyTDBySEFUUzRidnEvbFY0YkFRMXl6NXpjR2duM0xZNG03NTZPdWloQkYyYzRaYjVmClVEZkxheVU3Tzh2QUplcGtvUTlwNko4T0J6L1pacitZYlQrZjVUNmI1VDJUNVd2TDlwOWQ1RG1YN1RxWDVUeVRhYnVRWlQwL3IvZmMKVXZURlpaMFhkK1V2bllOOFh3REJ5UzhNUUNFYkorUVMvZVYzK1JQU0U1UGo0eUNBVXBIa3VLaXJWd29CZ0h4ZHNBWm9TUGt6UGdYbQo2MlIzMjlqV0RqaCtFK2dnOTNheXZCYVc1UUV0WkFWZlJjSFgyQWNjREt3RkFMaVRVVWVBNExoWEJ3bnVCbStodXkyTTREZDAxOTBkCjk4SFBmbTdSbjQ4dkhUZG1MQUNRVExRUjlmTUFnRndkUTkzelR3RUVjQlB3Y2o0NXZlVFp4TGk0NUxTNHNZbmpraExHcHNVbnhrWXQKenB6Nm9JUGt0cExnSHU4UDRWWmYyTDRaUTkzVHI1K0hkT2NEaXZWaGtlMEIyV29WMlQvZTRUeXprYmJqZVNRMjllblV1T2dJWk5uVwp2VTZmNzlUbFh6eW52RGRMZHp1c24xbnEyK0hoSHdnZ0Jld0pORTExYjZMeXcyekYyOFdhR2wwNUVBOXRrSDRlQVFpdmdNWUJoTzhDCmhnTklyZVJBQUttb0xCWC9rTGhtR2YrMWlkSmI0UHRPRTEyZEtyNDVTWHBqaXZUYU5HbjdaT21IbWZJYmh6WE40SDRhMUt3S2xWQW0KRlcrV1haaWp2SkdodWdvQUJLZkpjQUJwcnEzU3ZDazFtWnN3QUoydVVuMC9BRlhwVlJYbGFvTk9DUUNrbEhLR0EwaU5BVWd1NFlwawpES0ZReUJQemNRQ3hoZlREUXRrcXpwbEp2TXM1L0JNN09PSkNKcU9RUlNua0Vrc0ZGSXFBUnhOekFJUGdacWc4S29sTEpmTm9WQUdECkptVCtZQUNDbXpWQ0FJa1dtM2h3L3F0Q2xLV3ZXYWc3bDZGNUkwUDlQcHo4MHQ2YW83czZwL3dEREVDM0JnTm9sMWlIQTRna29ZeTIKREQ0TUlQb1BCcUJIQnNxdHB3eW56eU1BTlZCR0JKRGN4QVlBT21wNkRFQW5xL3NCNUZpbUFLZHQrOXBLejJyWTVjVzlxZEs5MmV6WgpXdTNaQWV1QlhIQlJHRFJRMTRHbTRLN2pnVDBudlB0UEFnbTVEalZiRHAzczNYVUNMV3g3ZlJNN0JZR2RidVBCU3lnQVVCSmNRclg1CjZVeDAvd20wNEF5Nm85bHg0TFR6VUN1NnR4VldFZTF2Q2VRREZiWDQ5cDJHVzNRZE9BTU9RZ1Z0MXZ5akg4NGo0UUM2dkJCZTNscEEKQmdBYWpKdkhSbnBHQWRDMWVXVUFRRGN5UzhIMXYxM003dDFlMTVkWDY5dlJQK2VGNndkbUk2YWZEVFh1UEVDWmVzQ2QwSnBxNzJxegpaMzExMzZwcTU4YnF2aFcxUFN1cTBYVkgwZlVOdGlXYTN5eGcvVTgyNHpmTHVLNTFSblJsWFUrT3RudGpwVzJWenJaVzcxeW1jYXpRCkRnRVFyaCtRSVFYT1Q2Q1BaYW5TTXFDZndRQUMrdm1QQVdqbzhNOUc4UGNBRTlhUFA2OEtKQUF2ZGM2OGh0NU5KblN0cVlqNXdqalYKSjdORlY5Ynd6dTVuTS9KcEFFQ1VIWHppUGw2eFFFUTlwcE8wR09WbkRLcmhBRHBmYXhnTlFEVmFicTJhd3BNcDF3bC9CTnd6VTNwegp0dlR5ZE5HdGJlS2pSd1JzaHZBQVNYamdpS0NzaEYycXFaQUhVZCs5YTlkajQ2UGlraExqRTVGSmlhbC9QL3FVKzM4MkJsei9OUUNCCk4vcmUzKzIxWFZueThjbFpjK0tTRXhEa3pJa1N0TGU0Zit3SHkzOFNRUGozR3A1ZUd3a05zSC8yTVNVbE5UNGFRY3J5SnFKMkN1eFAKUFl3eTN5L0FCQ0VQRXczd2VwME0zMThQTys1czZIcDVZVWZ6RElpZWxvWEI1Z1c5SnhmMG5zNEt0R1YzbjEva3VKQWRPSlBqYjgxQgpMeXhIWDlqOFJkMlVocEswNXhOaTRsTEhmdzhBd1Q1QUZqTGNqc1BDQUFBS09vWC8rNnM5WTFNU3dnQktpWSsrZnUxSUdFQkRnbzhBCm9SYjRMYndPT0lQV2ZaOFd0TEM2clhTSGt3RnVBUGVVc0ZHZE5vckRDZzdJN2s0Q25DQWJIVUN1K3lXQVlxNU80RXVlNTgvRi82OXQKdnE5bHNlL2k0dC9WTHhnelpseE1OSEtzcGdBTmNGMWRKVzdMZDU0Q0F3RHllWmxYYSthT2pZNk9UMG1QSFpjNExqRnBYR3A4UWt4awozcG9jajUvdXNoQWQzOUFBZ0Z4ZHJLNzdvOVlBV1I0dzNQZXB0bzdERCsrWFdtd2kyN1dOcnVPYmN4YkVSQ2FNZVM0NUF2eUprT1g2CkFJcnlUNzR6UWZVVE9GVXlERUJBUHppQVppa2hnSjVYZlp5amZJdW9xVFRxMlRWRzZyY0VVTG1HcTFGeEFZRFVjclpJUldhb2VBZEUKUjVjSTNueGVmaGNEMEhYZ25xblM5bW5TNitBMVlhcm80eHpaRFpMMjJIRUQrWmlTcmxjS1JXTHBHdmxMNFBGa3FDNVAxZDNMeE1aKwpBSUJtcXErdDBid2xOVlUwVlRQL1RRRFNLaDhCQ0hZQXdnQWtFQWt4QUxFQWdBNko1U3M0NTU0WHRXY0ptcmV4SllWTVpnbUhEdlJUCnhxZVNPR3dpbDBuaXNTZ0NEbFhJSll1NEpDR1BLT0FTK0J3a3g4Z1pNWXRIaTRrYlJnOTJTMjZPUVpoakVPZVVpeFliK0ZqNXMzQmgKaFhhQm9TbEQrL0pjMVh1ejFPL04xcncvVzNONWp2YktYTjFWZkJVWW5BWFRmVEMzL0dhbXBuMkYvRVU0QWdTWUppU1F4UXlhaUVLRAphOEg2MThOai9hQ0JnVWlsQWdKQlFDWUxJSUE0TXJaUXljR0xvQlZhcGx6REFGRm82VElkakVSREVhbElQQlZOb0tUeDVTU21uRkNzCktOdWxJNnl0SkMrdHBRM1N6K2dBR2lnQWdtTS9nK3FCQUgzQ0thaWl5Q3E0RFFaaGswRjByRUxTVkNFNUNTNXJaTTFWY0Fyc09rbmEKdlVnQ3p0L1d0VVp3NXZPdE5YbzJtTHMzVm5rMlZYdnlhcnEzMVhtMkgrM2VVZCs5Qzg2SS9YL1UzUWQ4azlmZEwvREhVOWJ3WklNQgpnL2ZlQ3pCN2p5VE5ZSHB2eTdMMjN0NFRNN3dYRUNDRUdUYVlUUWdKVGR1MGI5UHhwbW1iWnJFOFpjdmF0cDk3amg0amhDVUk5TjczCjl0NzA5MUVmUFFqSnlJTG42Ly81bjNPd1FURVE5VHQ3MWUvdW04Zzc5ZHFkVGFkak1pT1JxWWlkQStJSTE4dlo1aEVPbklSRjgyN2oKNndSOWQvODNNWXk3QVJtWGcxUFBoYVJjRFllRFg5ZjhkcHBENTNYU0hiRHJkbFJXZDNBYTROU2pwYUx4RFhXajYycjA2NnBON2dIbwpnVmxlQ2FKZlZqRzZkQ0tHcEhJc2NDT0xsMGU3NlBrVWQ2ek5HY3Z6TnVjWFN6NkFSeUJZZzdONWp6UEdIY3M4aWVXWjEzNU00Z0VHCndzUmpIa3YzdkJHQVhsajRaNG1zTDBtTzZVZXh2SGhvUlRGVysxR3RMRld2S3RPc0t0TUMvYXd1TmF3dUF4bGRVNDZ1ckZDdms0NnQKa284dXJYcUxmTW1iZjJNKzkwWjAwWlgxNU5LM2NuTjM1RzNmVnJEclhVcGFCanU5VkZ4d1FNeHNMUmEwbDRxNktxVG1heUVhRDBxNgpLdVFkWmRMMlVrbHppYWhSTHRnbjRlNFJzYXZGN0ZvK1E4aG12OE9zRFdCZG1jMzZneS96WGhUaktORFBka3BXR2lNam1ibzlrN0V6Cmk3WXJuNTcxZVBEbkgvcWV6Smp1N281RGNDNjRxUTZFejB1Q1ZaOHNHUjlKR3gzSzF2YW53eDFEaDR4N2FRM2w2UHN6d0FIYW4yTTkKQTlsV28xVm1hUlVaby8zcEtOekZJc3N3a0tGUlpLaVVtWm9CY0p3NXBnQy9tcVlleVVJMUZQUlJ6dkJ2M2pFY2lCbHM4a1lQUmordApEWjdsUWdBL090Kyt1Y1dBd2ozcVh4YlQ2Qmc0d0hhQUI4Y29lTVhCREZTWnBSdEtCOUVQWitnR1VzZUg0U3RhalFhQVJnSCtJRm1qClFGcktiUDFnQmx6TFVmbGNYWk15M2wrQXF0T0g5SVhSSWJNY2JaRTFVZTdvay9SaFRaNUdrZmxHMFE3Q2RoODQybVgwQnlDWGNlbnEKQW5SNEY5cWJOdjcxQjhObmx3NjJCV2xhL1BXZFFlcXVRTzBCUHhCVnUrL1lnWWl4ampoZFErUjRTeFRhRm9aK0dLazd0dlRUNmpqeQpwcmx6WE8zc2JYRjRQTTdGSFhFbDRVak9UaTZ1QkVjRU9YdGlIYW92TlBUbjZ3YlM5ZjFaVnFQclQ5SDJwNm43NEhyY296Mlp1cjUwCmd6Nzc4OCtTd2JONUVIQ3VKQWVpcTV1VEUzTHY5anVvaGdaTUE0czN2eFR6MldGdm5NRzhnWjdzMFQ2V3FtZm42Tk8wdm1OcmgvY0UKYVZwRFJvK3RvSDhRNU9TSUl5RE9GNjl0R2RObHF4NFdQdWxQVVQyRis4WmpHWG1TYVlyeUtVQk10bVdVdlpsb2I4RVphckNkZzdzegpDZWZ1VENDNTROM2RTRGFJT3kxM3pwaWFvWHhDR1htWVB6aVEvdWhwcXZxbnJLR24yVmdVVDR4dDBZOHpzYWdmd2lhaDd4VHB3MytICjZ5NnFqbS8rclNTWTVPenU2dW82QlNnZVJ6cDcrb2pLb0Vzc3VUWmY5RVdnK0I2bUh3eEFKdjNBYWZEOHE5NjhXL081bjNuejdxd1MKZERIRjdHcFpkcm1jVWxWTU5ZWUdVaW1uR2tNSHFaQVZWY2hvNVRJNEJVd21vWXJFVkw2UXdoTlF3QVZVd00rbGNKanJXSHNEMlo5NApjMi9DMWFWWk40T0w0TnBDczRUblozTnVCN00vUytVM2xFdklwU1Z3UTY1U2JrNHVTeEROK2RoVGVCYzI4b292ZWtLb1haZ252T0hOCjc5NGc3WklDOTFSa05wYVI2NnBMR2l1NXhyVVFSVzExNG9uVVN0dnJaTzI3SmNaVkVDR0FXbXBsVGM4QVZGOHNxSkx3QUlDd1dXQkMKSHAzSElrdUZFd0FDRXNKNmdJVGNJbXdJak0zT3B6QUJnZWhVZWxFdW82aUFucitEem8rbGQ4NWtudmVqSGsraTFQeXFNRCtsY0djNgpPUVBRSjVXYWxVYkxBY21rNVdmUkM3QmtBd3pSM2h4QU1jVzBtT0lpa0dlUHBFNEFDRWlvbUJKWndvZ29FWWZKYTRNa0hZR2lNLzc4CnE1aCtNQURCaUs1aUFRRHlGOStjQktBTVJ1Ny9DUUJsdnd4QU1WWFp3RUJXaTBDVG00Rk03bm5SUStZQVlsc0FhRjgxdDdrQ05rRmYKeVdDUFJMTDZFMFFEU2NVRFMyWHFKTGx5ZVJrd2tISmxoWEoxcFdwdHRibUJzRXpNRVRNeVNQV3J2ZnFOdGVpN0RZWnRqWGVXMGVVKwpHeGl6azQ0RTd4amF1dGNFb01rR0FuZXRCUUNvZDEzWkhmOTBBS0R1cU95THdTblhRek9BWml5SjgrcDBoNlRjQ012c0RrajVLcnhBCnZiNFMzVkNuV1Y0S0FEUXg0R1hVajk1SUh5d3YwNDl1Y2FuVldPb0gxbnNzbXAxTkpSOUY3QVI5VEFBeXIvZFk1bjhhUUpNS1B5WUEKQWYxZ0ZhQkJNd0NaOUdNRVVPbHpBSzB0QlFEU3JwT2lxK1M2WlRXYkNpK0JmK3k4ZUxlanFGZldVYXJmenFkc3k0Y0ErbFZoYWpvcgpyVmlZMXlHaVd3TG9XU1lEYUwrVXQxZk1xUmF6QUlBa0hOYjdyS29RMXZtNXpLLzhtSGRqR1VkMkZ1WHRwR2FsTXpQVG1jblpyT1NNCm9oM3BoYnQrOC9VREhUcVdsSmlBczBVSVJEdFhlOEpGZm9qaFpPeklqKytPcWZQMVFEL0tYQjB3eW1BbXVJVVQxSlc1V21YMkd3V0YKczZrek5jTlphbFdPUnAwTG5oUENxQzhiSElETHYwRlZNS1lwVkQ1TTc3bTNmdUJvUExpYzYxdGpOUjB4aHM2b3Z4dC92cDg1Mi9YNwp2MlNnSTZtV0JERUZ0a1cvS0NIc2pBbHcyR01taHMrTVo2d0dmSjJqZytBQndFeVpBRUJ3VzlZaHVNdUgxV2g2QWJaMmFRMFVjbGE4CkhZS3NESnVDZnJzTlZSVkJ1N3hKdE1QNSt1R0NzWkZDVkUxRlZWUjBJRi96VStyUXQxdDdyci9WY3p4aHFNVmYweFNrYjQ5VGRTV08KSEloVWQvbVBOVWVPdHljb1cySUcyc0lIRG9RcWowVG9QbzVYSFlydFlQaS9GMmsvRFVHSWRvaXpxNjJ6RytMc1pPdU00QUdBaUVZRApUUUJJUjhZQU5Eb0lPNTFOTVJpbjNCdFhHNEtieFdyNkN3QlZ4M29CaVRJTXV0dzd0N2JqY0E3dWVFY1hvajNCeFJXUHQ3bC85OTMvClN3RHFTZEgzRnozdDNhRVpvUTFkMjl6WEh2T29LeDV0ODd0WkhPdmxBVmNPbWVYcy92dmZwWXdxVXRHSFpIWFB6cEdCWEN6S2ZqaG4KL25uNjhrQ0dlM01uUlFGUS9uTm1RNllYNHVEczR1N2s1a29rT3NNZUlNU0dXRk1lUGFaaktKNFVLQi9tOS9hbjlneGthUjVDallIMApQODNDMHZja0U0dnFwNXloeHhtUEJqTzFEeWtQdjkzNTZQaXFmWm56RUR6T3pjM04xUW1aN2gzNHpkLys5RjNmWUxUMHNtL3hiL3lGCmNCRWdURDgrZ3B2bUFKclBnd0R5NHQzMzQxMWJKMnhqU1FDQWN2OE5BREVFRkM0dmo4eG1yV1UxQnJMT0FRQ0J6T1BjREdEYzllVGQKbXNPL3ZJQjlQWTU3SlY5UVhTWE9MWkV6Z0QvazdQd3NoamlLZGNLVGR6dFEwQjBwUE84bjdQYVMzcHd2dWgwa3VQQ090RlZTTG13bwp5MmtvSmRkWFNsNEJJS04rZmdGQUlqN2ozd1BRTE5ZRkFLQkZsTjF2VVNnN0MzZWxrelBUQ3ZPQUxvQiswdW01VmdCa1NaeUp5Q2xXCkV5dGp4c3JvMFhMcTg1TWxORGo1cTVRU1Vjb0tMNWFGU3ZlRWlBOEdpazdCMWJMNTF5YmM4NkorSUlERWdFUTNnNFRYRWpnZmJxYUwKalFCS3pXQmt2d3hBcWZUMFNRRENab0daQVNqZkRFQ1pWR0V1alo5RjQyVStBMUQ2MHRMc21LcmMrT29jWTdJU2FyS2ZKUlBrcFFZeQpPellDYU1KQTcxVkNBTlhLYUxBUHV1dzVnRm9xNmZ1cWVPZXpXSW9vSmdhZy9pU3Bjb2wwZUZrcENHQVFaaURsMnFxUmRSTU13aVEwCnNtbWlJQVFrQkdMWTNqYTB0bWJzclFaMGE3dDZhN04yZXl2Y2ZIUVQzSVhVVWprZ3VuZXNSLy9PSHYzV2hxOWlpaTc3SlYrUHlyNFMKbG40bEpPMWFVTnExa0hUcnNhQVBscXZoR1pjRGt1OEVwUDI0aUlkdTNJMnVydFlzTGRHdGZlWWVMTXNxZEV2THNieU1QdHBGSlZoTQo0akdQaVQ2WWZtRE1tcDB4L1dDVm51ZjBpYlV5NEdXWi8yc0FlcUg4QXdFRU0yQUVrRWsvSUZiMUF6Syt1bHkvVGdZQXBGNWVzNzdvCmt2SGZ2dHNSOU83VnRIMWJ5TXl0K2NrQVFPOFZwaVF6VTBTQzdHWWhyVVhPYnlzUmRwWkxyQUtvczF3R0FOUlNLbTRxRm1JQXFoSFQKNm9SMEdaZVJ3aTZKWVozd1l2d21rSDU3TWVQZ1RtcE9LajA3bFpHYXdVckpZYWFtVTdhbjVHOC9ldnJnT0lxeWFTekVGbkZ6aHJ2WgpGcjgvQnowU09mTDFGblFvZTN3d0UxVmtZYmZnN2hnQUVKeUlEbVh3K29IN2d4cnJLeXB3V1ZWQVNJRzd1cjcwRVUwK09rSkIvNVdoCnVyMng1MGg4ZjB1RXZpVUtiWW5UZEVacTI1WnBXMk8rYjQ3R085bjVCdU9WUFlWb3owc3JRSmh2TVBTWWw0STBvNVNCb1V6VmNJNWUKQ1J0TndLMTJPRmMxa3F0WGd1TWMzWEEyRnUxUUZwYnhQcmpJRURnRFpLWlZaSUFZRkptd0dtVHhpaE5Sa3RHaFpGUlBQbnQ4dTYwTgpraERnM245NXFmYnVtc0h1RlcrVTNqdXJlMit0R3JpNWF1ajZxcEdyS3hWbkZ6LzVLT3Fucm1CdFM0U3FNMEZ6TUdtME14WnREVVNiCkFuU3RpY3F1OVgxdGllcjJhTFRWRnoyOEVEMFovc2VtV043MmhmNHpiZkNPTm9nTlFwbzIxZEY5Q3VKQVJCQUhBb0lrQlBwTTgzQjIKY1FWb0llQVJ1L09uTmdBQTZYcHpBWEdlY2VkWjRRZjg4U2VTQm43VldBRktIKzNKMVBabTZMVjVseTY4WldkbjQrWUVBZVJFY2lhUgo3TC84NGdNVWJodVhZOGtkeTB3MnpadEUveVIxK0ZGcW55RmQ4VzJtb21uSmNIdkV3NDRvOUhoQytqSlB1TDhPaWVpM2NQcVB2ZFFoClRVYi8wK3greFk1SnZobnF5VEdQNG1uMnBHaUh5U1AvM01WNWJ6cGk3MFNjNHVUbVRpSzU0S2U3T3lNT3RxZU9iUnBYNVE4OWdwdGEKOUQxTlZRemtxWDdJSFg2YU8vUWt4eFRURU5pVHh3VlBlbmIwOUtZWitvb2Vmdm5XdzZOTFU1Tm1PK0FKcnE1dzlISEY1bmQwS0hycAp0MzhMNHA3emtYL3B5NzlwS3Y5TUFwQVh2eHYyQS9IdWh2SXZ2Q1BjejVVeUt1VzVGYkkzQmhDY0ZzNHJ5R0h6VnJDYS9kZ1hqQUNDCnU2c3VaTU50NStkeXJ3ZXlMNjhYSEdaTCtMV1NUTG1VSWVOUnBHeHlPcU00bkhGcUJ2dmVQUFl0UDA2M0YvZU9KLythSC8vU0VzRkgKNmJKOThncngzb3FpZmVXMHhpcng2d09vb1VLQ0RZRlpBa2dpb0JZYjh3b0FGZEVvSmdERjBEcG1zYzU3MDA3RlVobzJVSmpiQ3RQVAp5TmtZZ0lCK0pnRW9pMG9HZVhNQVNXaXhNbW9zT0RZK0xLcDRBa0FScFlKd2VYR290Q0ZZZUNTUWZ5NkFmOW1mZjlWWFlFVS9jQUs4CitIcVErSXFmNkdZQTcxb2M2OUFtR2xZQlNzMWs1cndhUUZuMDNEeFd3UXNBRXBGaEc5QUVnS0NCbmdFbzJ3eEE2WnZGbVVrbFdURlYKZWM4QU5ObEFMNjBEbVIwL0F4QTAwRHNWbVl6U3dtbzVCRkJkS1JNRFVFTVZCTkRlYXQ2WkhGWnZOS00zUVlnQmFIaXhaR2hwQ1FhZwo0V2QxSURnV1ppd0ZXVElJNU1sYmRUMXY3ZGE4MzZSNmU5L0lwbnJkZTAycWR4c0czdDZqZlh2L3BHRFFzVHlQUmJPNTN2QkIwNlAxCnBiY0Mwb0dCYmtibFhBNkd1M3BOZHM5ckFPaVN6NDZ2SXdwSFZwZVByYXdjWDFZK3RxcEdzN0pTQjlDRHhlZ2ViZExrc1MzenFzOGsKL1pqNmUxVHhzaGVudU11d1JoL0xadWZuTTd4aUJWZ3MyNXl0NWo4SUlFdy9pdVVRUUNNclNsU3Jpa0dNQUNvQit0R3ZnZ0FDOUJsYgpBNE91cVJoYkowZFhGdyt0cUY1TnZiS0FEN2MvREdQZVdFYnYyRUFXdkorZkJnd0VBTFNUdm92SHpkd25aRGJMZUszRmNLMzNYd1JRCmc0eS9UOEt0a1ZCcWhmUVNQaTJQTFZ6S091akx2QjlDdjdhSzNtTDhOeUlydVdoWEJuMVhGajA1dldoSEdubG5hYjEwekRCKzl1UjUKeEE0dXR3TitudDRVU1JydmpCeSt1Vkt2eXRFcXMxU0tkQkJ3REs2Q0ttV21jaWpkb014K28yRHptR0IzczdIUloxU1pQNjRpajQwVQpqUHhqKytDbjYvb1BSbW4yaEtCTnNXaEhuSzRyYktETFgvdGhoSzRwZnJ4OVlWOUwwQlJiWk5NV1R4U1ZHdnJKay8zeEVnREI3cGJCCnpIRmxydUhXV3NXcE9QV0orTEdQRS9TSFkwYVB4ZXRPSktoUEpSZytqc1dpUHhZRG92c29Hb3Y2bS9mSGgvTFV5bXl0OGFuVWcrbjYKWVlnL3kxZkVvaG5KRzFja2p5dXpmdm9tZStvMFhJaW44K05ETWJCZzB4eitSaGx1Q1ZPMmhvKzBHTzgyaGhrYXc5R21TTFFsUm5jdwpVdFVXcEd3SkdtNFBHKzZJR21tTDBMY0dveDBCNklGbzlGU0U2bFRZNTdWQjdFMXpBOXp4OXJZT05uamlGTklVRjVJejNyaXRtNjBqCmJ2V3E5WitjT1BQVmd3Y2VyZ1NzQWdSKzRjTHBqZGdRMk9oUWxrWGhaMEpDaGdINFI5WU9rQUdBeHZ2ZytURjk0YW5qRzRBMkFJQmMKU1E2T0JLS2JtK1B2ZjdzVFZlWERaYWt0dUdNWlM5YThmdlNQY3djVjI0YVVGTVdKcEpHR2tLR21NUFRJOG5NVk1XNDRXL0RWMk9FZAoxaXoyR25vS0thYjRJUnRvU2YwMDF6S3FKM0JMRGZPWWhzRFFIN05WWDcyWHRSb0FDRWR3YzNSMkpqb1JjTzRrSi9zNXhQczNkNDQrClRSNzZMblg0SDVsOTMrMFkrRGxEK2JkTXhYZXBJSVAvVERGbDRCL0pJSVBmRnlyKzlaN21teDJhYjNZTlhsbno5YjdvZ09rZUxnNEUKVnpjaWJOT1d5RlVvV25MeVByRElBdkZuQVhBUFZLZ2Zxd0R5NHQveDVkOU80SjNjSWF3V3llaVZ4UVd2QXlEWUFTMmhDa1ZGUEVFaApsMS9JNXBOWjNNSjB0aVNKM2VYTHZyS1FkOTJIZDIwaDkrWjhRZmRjL2gwdjlxMG85cm1ka3IxbHNvTGQwalM1bUZFdXpKYng4N000CnNoaldzVm5zVzdOWWQrWnhiczdoM2dubm5GakJQWkFzMmlNb0xhdXBFTzZwNE93cjV6UldDRjRHSU94Z0VvRDJsWW14bGFCTkFCSUwKbUh4MjRTUUFpWGpVU1FDaTBXZ0FRRGwwaWdsQXMxbG5GOURPaEZQYlYxS0U3NVB6VWdweUFJQ1NxWm1UQUFRUHFPVE1vZ0xFa2pnVAowSGxacE9RWUdUbFdqdW1IR2xGTWo1Q3pJb3I1b2ZLOUlaTFdRT0ZIQVlMemZyeHVxQi9oUlYvUkorYjZNWGIvUVAwRVNtNEVpcTZDCmJ5MVFaRFM5YTBPUkFIeUoyWXkwTE5aTGg4QitBVURDZ21jQXlqY0JpQzdJaGdEaVpBQUFiUkpsSkpYa3hGUVd4SnNaS0tFbTE4eEEKRTZVZ2tNVGFyRVJqKzNNaXBNL3o5cUNFM1ZrbUE3MWRtVWt2Z3dDcXN3QlFmUzMvWkQ3N1VRd2RYRno3RnN2NmxrZ0dGNHNCZ0V3RwpNdlVEcVZZYkRiUzJXcjBPTWtpOUFhNFpDTWZGTnRZWk51NVZiYXdmM2x5djNMaGJzMzYzZGtQOTBPWjZ4ZnNOQURRZzJpMTdKa1gvCmttaU5pdytwMzkzM3B3Um10L2V1YTBHd0FnU254QWUvSkNFcFZuUEZiOWY5d0V4d2dSOWZVNjFmWER5NnBCeGRYYXRKS3RNQzlEeWoKRDdadE94YXI3Z0ZSTDRaUkxTb0dNYS8zV05KSEVTY1pqSmRZMHFmZk9LRWQwNCtwd1BPOHh6bUdaelgvMHdEQzBydEVnc1UwK1F2bwp4d2dnMmZBeXVYSjU4Y2hLdVZFL2tENFQrbGxUZ3VsbmZHM1orTnFTOGJVVjQ4WUtVUC9xNm1XTUswQS9DM2ozZ2xtM0V1aEgxaFRLCjM4M0xOQUpvMTNiNlRpWW5jN2VRMVNUbFlnQjYxdnJ6SEVBSEtvc0JnRHJLcExBVnVrUUVBTFJmeXFzVFUyckVySEpCRVlOTDM4UnEKRG1IY2pHU2NYMCt2U2FPblo5TFRVb3QyWWdES3BLVmtGaVVYOGZNR0J2b2Uvdk1KenQzTnd3bkJPNU84cHRnK3JvOVJubGs4T3BpRgpLdUhTTzVxK05Hd0liS0pTQW5qeEpnSDBnYnRaamVScTFQbW91aER0eVRaOC9hN3kxb3FSVG5oUlY3ZEZqblZHbzEwUmh2WkFiY2RDCjNZZSttcmI1YUVjNGVzcnZ1OGJJV1E2T2VUbFJDZ05WcmQ1cFNSQXNrOGEyVENkSFR5Y3Aya1BWTGJCVDJMQXYyTkFZcW1zTlY4RjUKNDBFZytxWkFFRjFqQUJadGczL3ZqU1JVVWFCVzVzSm1vT0ZjMVVDNllTUUhOV3JBYXBTS0REZ1JiQ2diSGM1WnRuem1UQUx5dURNZQpoWjNJa1c4VVEzdjBhRWNNaUw0OVd0TVNBUUpPZ3VPQk5oL0RvVkRBSFUxVHhIQnpwUFp3clA3alVNMVJyNmNkNGFjby9sc2paazBqCk9NSDExZ2tJeVJrM3pSWHcxUWFISUZPY2JWWXNpenB6NWlPdFhqT0tvci85cnorNU9UdmhDUTdBUURqRTV0eko5YWkyUU5lYnF4L00Kc0tRUFZnR0N4NE9aNnI1OGJXOHFyQUQxWktHampFT2RxMnhzYk56eE9EZG5Sd2M4WWRvMDRsLy9sRDZ1ekFIdmtpVjNMR1BKbXRmUAp5T01jelNpNTcrWVdWV1B3Y05zQ2ZVdDRmL3ZteUhCSHhBR1A4M0FCYjBER1VxK0J5eXNIUGs0YU9yTE1jREJoNkVpYzFTaU94RS9LCjRPRTRrSjVUaXg1OUhQZDJxRHZCM3RIVnpXbUtoNXV6S3dtbzBkTU8rVzFWdlBxUWYyOXIyTk9tcUtjdGdlQ2RIMnlKN1d1TE5LVzMKTmNLVUg5c1QvdFcrb0xjdDlJY0RvY09IRmgzait0ZzdUWEYyZDNOeHhkc1JuYS9jdlBsNEROMng1NFkvLzVxMzlQTWd1QU04MUk4bApnTHo1MXhZSVBnVkNXaWs0bEMyV1MrUnd5L2RLZWRIckFFZ3FMaklCaU1Ncm9IT29PempGOFp5ajN0eHViLzROY05VR3QzTkYzZUNICnJvWHN1d204MDJSWlNYMXh4bTVwaGx4TUw1ZG1sb2h6aXdTY3QvaDdFN21IRTNoSGx2SVByT0FmM0M1c3loZFh5dVJDT0F4U3p0cGQKeHFrdjUrNHI1NzBtZ0pxcjVlWUFxcFFMQVlEa0VyNUV5QUlBRXZPTE1BQUIvVXdDRUl1Vlp3NmdmRnJlZGhyUENLQXo4K25uQTJsSAprb3JLM2lJWEplZm5wNUp6ZDVvQnlKUUpBRTMyalNreXF0VUEvVVRKQ3FQbDFDamdIcGtnWENZUGsxYUdTR3NDeGNjQ1JhZjhoZWY4CkJaZDlCYkQyNHlNNjV5czU0eWU4QW1MU2o3L28ya1Q0VjRFM3ZabFhvMmlkYndvZ0NyZVFJYUJNQnBDSS9BeEF1UXhCOW9zQXl0Z2sKeWtvcXlZMnVJQ2RVNXNGVTVXQkpyTTVOck00R2VabUJqQUNhTUJBRTBETURiYW5Nb0phRFR4N1ZCS0JHREVEbHROMTEvSThMT1QvRwowSDZPNWZZdmt2WXVGdmN2RWltU2lrRk1CbEl0TDFldnFBQ0JCbHBkaFZXRHpCazB2clpldGJwR3ZXbVAvdTJHc1ExNzBYVjd3SzErCjh6NEFHbE4wbSt0Tk1UOXZIc1BtUFpxTmRjQk1BeHVydndvblgvYmEzaDJjZmdsYUIrNERieVVXOU1GeVowSHlkM0ZzN2FxSzhlV3cKdVdlaTEyY0pSQThXelpMSmJUMldKUjhRakQ0bS9aZ3lESXM5eitrRE1oQW5CakhYRDFicG1kakN3bXg0NnhYdStYOEFRREJEU3lHQQpUUG9CQWZUQjlBT0MxWDZNK2lrWlgxK09ycFdoSytWUDFsUWxNcS9PNTkzeDV0NFBZTitKWnB4ZVRxbjhWVjRPQU5EN2xPUnR0RzBVClZrYUZnTlVvNGJUSStSMWxMMHdFc3dvZ3JBMm9Ya3l2Rm5NckJWUXhsN3lWVXhQRnVoaExQLzQyVFFyZHcwekpwRUg5Z0wrSklBQkEKYWVRZG4vL20vcmdHVFZ5ZVFMQkJuRjBKRHJiSWVYcVk5bmppMEwrMm9ZTjVxSktNRHVlUEc3ZHpOd3pualkwVW1NYU1Kc1UwcURRcAppcUVjdUxTMGlvcitrS2I4YkYzdnlSall1ZElST3I0M2ZMUTVFdFk1RG9VTXRmdXAybUdUcjdZOUVEM3VQZmJSNXZ0MUs1anI1dG9qCnlNSEQ2OGJRSXMzQUI1WUVNVm5IQkNEVHJiWS9YWHNzWWFnalROc0JnVFhhRmpuYUVhWHJqTkowUmhvNkk4eWo3d2pIOHVSSUNQb28KUTZmTUF3SkFCM05HQnRPMXFseTBmL0xMbWFJZGdyMU40d041cUNHbm9ucUp1d1B5emQ0d3RETVd3dTVOb20wTDE3U0dBWm1wMnNOVgpYWkdxZzFFakI2T1VCeUxSamtCOWU2Q216Ujg5RUl4K25OamZ1ZUpJVWZpdXhSNStucENxQkFSeGRYQ2NUcHJoUnZTQTJ5cmJJWEdKClM5czYydi82MTkralkwTW9xdjdoeDMvcXhrYnYvUHFCQzlHUlFIUjBkc0hqRVR0WUFUTDJBQmxIOXl5N2Y0d002b1ZkNUhEdDV0NWQKWTcxWjJwNGMxTUJxM0xNWUFNaUQ0T1R1Z3JQRE9jMlo0LzdkMzNQSGxWbHd0eThMN2xqR2tqV3ZINjJpc1BmYjdKR21ZR1Zqa09yRApVUFRZNnB6MW5vZzk0Z0xNNTJ6djVJQ2t4azhmUHBZd3VEOXF1Q2xPWFI4KzBCSm15bUJyK1BPMFI4Q3VxUmZUM3dvZjA5Y1J0ZHgzCnFvZWpvNHVMSXdBTGdZUjNKamg0dVJPK0xJdlR0ZnNwMnFJR1crSVVyV0hnd1lyR3lNRlc2MUUwTGVvRGt0NFgxYnNuWVB6UVVzRlcKVHdSeGRpYkIxU1g4SW1ONysvdSsrRkViSjdrTXhPTlgvQ0JBMEczU2p6bUFRSHdFMStjTFB3c1dYTnNzYUtaS3VQSVNTbVVKcFVxRwo2ZWVsQUNxVEdxZUFQUU1RaDBmbThncW9IT3I3bktwSTNrbncvSUErNElvTWREVlBkTVdmZDlPYjgya2kveFJETG1tUVpkZEpjb3RsCjlGSlpicGswVnlvcFpJclpoVUlKVlN6aGd2OUpHREo1U1ptY3M2ZTBxS0cwWUg5eFVYMEpjMjhsZjErTjhOVUFhcTJSdkJwQVVoRmIKd0tHSWVCUVRnSXhid1VNQUFmMjhBa0NlekZPZWpFdHdGSXhhdDVuTTNKbGZrRktRQXdCa2FvTCszd1ZRdExIbGVZSStrcHBnVVhPUQo4R0NBNENod2o3L2dJcXo2Q00vN2lJd1JYdlFXWHdJU3dnQUVGMElVZGdNYitmQ3ZlUE91ZXJNdnoyZmRXTWk0RWtVN3NKRXFUS0ZsCndCNGdadVlyQUpST3o1b0VJS043S004QkpJWUd3Z0JFRStWTUJsQngvbk1BV1Jqb1pYV2dad0NDQnBvQWtORkFteW96S0dYa1NRQUMKMzNVQW9McDZ3VWRGM08vaWFUL0djbm9UeEQyTFJBQkFnMHZrSUVOTGlvZVRTcFJMUzBGR2xwVnBsc0ZTa0JLYkhXWldFQUxSYkt4UgpicWdhMmxDcFdGcyt2S3BNdmJaU3Q3RVduTkZ1cUpzVTNjYmRJSmJuc2VnMzdOR3Vxd1hSYjluemFHWHhnNURjYnYvVUt5RVc3dmtsCkFIMFRWZ1JucXErb2hLTmF5eXQxSytBK0ZhTkxLb0Y3c0ppN1I3L0lDbjFNU3ptYlo5THFQaGg5VFBvQk1jM3dNdWtIcS9SZzlPbTEKVU00cjhqOE5JRXY5WUFEQzlLTmNJUU1BVXEvRUFDUzNxaDkwVGNrb0FOQnFLYnBDOXZPYXlqaldsZm04VHdHQS9EbDN3cGdYbHhYVgp2NTJYdHkwLzlmMmluZTlUUDhpanA4aDV6QVl4dTFuRyswVUF3VTNCNUlJR0dYK1BoRlV0RWxYenFhWGNuRFJPU1R6N1RBTHowSHMwClpnWnRleVo5Unc0ekZlNUl3MGpMWWFabjBYYWxGSHpRZXJnRjFhRWlNZFVlc1hWM3g5dmE0V2pyNTZxNndudisrdDU0VHg0NlVJZ08KRnFKRGxOR0JnbEVGMlRCWVlCaCtXZktzQnUzSk5meGxxK3JhaXBIRDRHSWZxbThOMWJXSGdlY2ZQWmd3MGhhbTZRbzJkQVZybXdOMQpuYkc2WTJzSFQyejhiSGNzZjcyWDExUjdIR0tMd3lPZjMxMnYxK2VpQ3RqY1l6V21xby9oV2ZjUE9CaDVtZ3lNcFdnTkd1a01Bd0hICjRIYW9MUmdjcUR2RFRGRjFoSm95MEJ5ZysvcFg4QXZ1aDN1dHE0YXpScFN3TWNqeUZTY3ltQWFzb0gyYWo2clMvL0IxaHZkcy9CY1YKUHVOZFVmcTJpRGZLV0NmQVdRUjRUOENiQTI1QmdNYkFyZUpBZ3ZaUTFQakhjUTg3RnJXVEExWUZ1cmphMk9BUW9pM1J5ZGJKM3RYZApoVVJ5c1VNYzNBa2VLZHUyWGIxNFVvdHFOSVp4VkkvKytOZHZqeCtzUDM1azkvaVk5b3RmL3dWbmorQ2M3T0M2eG9ndDdBSFNGNDROCmtpMkh3RXpSOWNMMUJlQVEyRUFxZUN2MGZYbm9LSyttUE5vRUlGdEhCL0R0ZWZoakVRQ1FhakRGa2p1V3NXVE42MGYzSlBmSG8wbGoKallIRHpZSEtJeXRQQ1dPQmZsenhVNmJnQ1c0dXRvNEUvSlpvdCtGVDhVTWRNWThPUmZSMFJndzNoMk5SdGtTWVo2ajFoU2hhd3JHbwoybUtldGtRR2VVNXhjM0lndWppNHVVMVVnS2E0T241ZUdtdm9DRmEweHc5M0xGRzJSeW5hSWdhYXd2dWJJcTJtdHkzdWNYdUVvaWxCCjJSU3RQN3gweTdMWnJnUzM2VzV1TnJaSUZsT0FvbU5OVi8va3piN2lMYnpqTGJ2bng3OWswbzl4MmNQbkFQSVYzcGduL0N4TWVPVjkKNFI2dWxGWmFXbEJlU24xOUFBbUVGQzdzL2lIek9MbUZiTm83N0xvSXdibjV3cnZBVlFIOHk3NkNhOTZDSzhIYzZ6N2NlL0dpMHl5WgpiTCtFWEMyaGxaYkFpZlNWTWtxZEpMOWVVbEFqSzZxVzArcExLTTJsT2Z1SzJYWEZ0THJ5d3ZxeVFuQm1ieWx6ZnpWL1Q5MnJoc0NBCmZxd0NxRVltTUFGSUp1WllCUkE0Q2ZURFpWRUFnQW9aTkNzQVlwMll6Ymd5bjM0K2d0cXduc3pkbmtjR0FOcFJsSkZLelFZQXlxRG0KbVFNSTlnQk5kczh2QVNoS3hvSDZrWmFFU2VxQ2hhMUIvR01CdkF2KzNHNGYzalVnRzZnZjhTY3dvdlBlNG01djBRME1RTVpBL1hqegpMaS9nQVBwY0JGK2lKNzE3QWYxeU5QM2dKcG9vbFo2WlNVdEpvNmYvV3dBcWZBMEE1UmdCUkltdnlMVTBFSWhsV3pRV013QTkwNDh4CkdJQXFpcWx3RkF4ODEwc21BTlJjUnEydEZ4eWhjdjhSVC90WExMc25YZ1N1bXYzUVFOTEJSVElReFdMSW9KRWxKYXFrVXBDUkZlVlkKVEF3YVdRTUxRc0E5bXZYVnVyVlZvK3RxUmpmdkhsNWYyYitoWXZEdFdzMzZGL0xjT2tibFdNbnFXdjJhdXZFTjlWQlhtM2YvYTRYNAppdmZPN3JETXllNzVKUUFOSjhrTnk4dFI0eUNYYWpsMEcxemhjRW1WSllEMHh2M2JyZXBuMG1yTzVqSFJ4MXcvL2JHVFI3NU1RMTJBClBsaE0rbmtjd3dXeGRNOS9FRUQ5UzJXS3BPY0FVcTNBQUNUWHJpN1dyeTQyQTFBeHBoOTBiYWxoWFJrR29CL1hWRVd6SVlBV2NqNzMKNDl3TlpYVXZwZTE5dTRBTUFQUUJkZGQ3UmU4RG9FaTQ5RmNEQ0dzRGFpdVhtdHFBOWtwNDFVSkpEWjlhd1UzTDVrZ1NPU2NXTXp1MgowZ3JUcVIra1U3Y0JBR1ZRNGZnWEFGQTJJeVc5YUFlbmxJbU9vVGV2SGJPM0lSaUhGSEJMQTBuYUEySDlIMFpyenk0ZlByRm80Rmo4CjBLbkZpak5MQnM4czZUdVpxRHBoUFNNbjRxeEdlemhXM1JHaGFRNDFOSWVOdFVZWVdzSEZIaTdmTjl3ZUFWQ2lPeFNpYnc5Q3UrSkgKajJ5NEt3Nm1KQ0JUN2UyZEVBVHhzTGR6ZEo3dWl2djI4MlJVeDlNcVVpYjd3eUxQdTM4VVdVT1BkaGphd2d6dDRhTmRrV3FqZ1RSZAo0RklYWXVpTXdCWVB0SXltS1dqdzNobzRCYjAvZCt4eHVtWWtaM0FvZmF6L3BRQWE3VThkSDZib0J1aG8zeTZWaGhZVE11dFdxWmZoCm83aEpGYVpmekhCbnNQcGdtUDVRaE9FZ3VCdG02QWhGdXlMUVE5SDZFOUcvcllrUXZ6TS9mS1lURGtGczdSd2MzSnpzcGppNjR4R0MKQTF4YzNjWE5OU1V6OVhlLy8zSjhmQng4QjRmNkIvN3l1OC9PSDZvL1ZDTStVRkh4U2RkSHFNRncrKzVsdktNTmdlaUlUWU0vZVhTbApWcEdoK0RHbC84ZjNoMzdlYVQwL3BTb2Zwd3c5emxJKzNxWjduRGI4YzVwR1NSVnhmZUgzNUJtQXZMMW45RHhob09vc3RlSi92QUxVCjkxOGZETzMzQS80WWJ3MTYzTGxoamhlQ0o5bTQ0cVpQeGVOYzNXd1JIR0g3TWkvMVIxSGEvYUZEWFlIS2xpQ01OZWJXR1c2TEJBRjgKTWNXOE1xUm9qLzVuWS9EMDZRQ1U5Z1FQQjNkM2QyZG5vanZKaWVDQmUxQzNGSHhUSGpkRlBXbE43RzhONisrTTdHMEgwSWsycGE4OQp4cFQrcHVqSExURlBHeE5IV3VKL2FvK2VHK0xxNEk2em5VSzBkMEJhVDEwQUFLSTFYUFJrMy9TVjNGOG91aE1rN3NiMFl3a2dQOEd0CithSXZBSUMyQ1hjTHBVWGxwZVIvRTBEc0hES0x2b1ZUSHlxNDZDVzZod0hJaDkvdHk3MGN6cm51eS9zMFRueUdKWlh2RjlNcUphelMKOHFMcVl1NXVHYk5CV3RRa0krK1ZNeXBMaGVYbG9wb3libU14czY2TVVWWEpySzVpMVpiU0FZRDJWbkZxcW95WHd0Y0RVR09sZEgrNQp4Q3FBaE54QzJBREVMM29qQU0xaWRNK2xYd3FudHF3bDg3Zm5VVXdBZ2dzQ1dRR1FqQTRTSjJmRXlWbHdocGVVRlN2bGdDUUlLUW1TCndqZ1FHVFZhaHBWOHBHR3lFbjlKcTUrNHkwOTR6RWR3MXB0M2NTSC9zaGQ0QndYbmZmaVhRQ0IzakpQZVFTQ0dCT2Q4NFlqWVphenEKc3dEOGc4NjhNbzl4ZFM3OWloZmo0ano2TlcvR3hUaGEreFlxSjlXNGFWa0dNeitYbFFtU1kwd3VPd3ZjR2dHVWxtWUVVRFlqTDU5TgpwZ0lBOFFyWmZHd3oxQW45WUQxQWJIRU9TNVRORkdiUytWa0ZmTGdWQm9XVG1jTE5XQy9QU2F3cWlLK2t4SlZSNHN1TDRzc0w0eXNLCkVpcnpUUXd5MW9FbWhzT015UVJaVlBOY1B5Qnh1eWNTWDUrOW9US3pvSlJjQ1ZlQ1ptRVZvUDNsN0QxVm5NWnllbDBkdTAzSytWc0MKK2NkSXpzL1Jva2Z4d3NlTE9YMkpJcEQrUldMRll1blFFaGtJSU1WSWtoeGprSHBwMmNpeWlkNGcyQ0s5Y21Kb0RFUzlwdG84MmwrSwpibTBOaU9udStObzZ1RUR6aWlyOXlpcHdkMlJkOWZlTGhBOThzaTRHSmw4TVRya2NtbllSSkhqWHhjQ2RWNEoyZFFjbFh3dE52UkMwCjgzeDQycVdvelBPQnU2N08zLzUxVUw1eWFiRnBxQXNiN1RJRjYra3g3K3pCb2t5VW16SXhud3VMdFYxTHdWM3pwWnhmUFo4THk1Tm8KcnRWWU5SQ3d6cHNDNkhHQ3dKUW5SdmVZWWhWQTVoM1FmVXRoK3BkSlFiQU9hTmo5czZKRXRhSkV1NkpZdDdMRXNMcHNiRlVKeU9ocQpDQ0RqeUZjcHVxRU0zVml1MjFDSmJoQ2p5MW4zdHV5YnhmOWRNUDhtTUpBL0Z4am9laHp0NkFheTZOMkNIVnVwMjdkUzBsTUtVMW04CjVEMGllb3VNMDFuTTc2d1FkZFlXZ3dBSkhhMHN4Z0NFRllGTUFHcVVDNXJGUmVWU2JybUV1WnVmSjJDeDNtVldiNlNYSnRQejBtbkoKR2ZRVVFKK0pDaEI5SWdWRmFVOSsvdVp4MzZNcE16M2NuQndKaE9telNNam5kVW5vZ2NDeHRxRHhsb2l4cHBqUnhtaDlVNmlteVUvYgo1anZhRkdJMWhzWmdxOUUwQjBOZUhJeFZIZ3dmUEJBNDNCV2c3Z1RvaVVaYjQ5Q1dJUFJRc09aUTRnVmE0UHVoTG00NFc4UU9oM08yCm0rSkNKRGtnUklMSFhFL2s1eC9lSFIvSUd4MkNFOUNzQmgzY0NYNVYyNXVCOXNKMkhKVXlIVlhtYS8vd0h0cmdnN2FGb0I4djFYVkcKb1VlaTBmWmc5RWc4MmhhRGZoZ3gzaFdDSGdvZlB4Q0tIbzBHdDZPZHdlalJLSEJTM2Jsa3RMZEFPNUtDQXZkb01rY1Z5Zm8rbXVVcgpUcnh1enc2NGV0QlF3WkJpSjZvdnJLYk8zWnZpOC9QUjVZTnRVUU90a2VEMjhiNGc4RWQ3dWo5NHNEV3l2em44YVhORVQwc2tTRzlyCmxDbmc3dmRONFk5YW9nYmI0bm9iSWgvdGozcmNrZlRuL1RIbjJiTzJMUGFkUmtMc0VjQWRtMWtrKzVsRVc2SWpZdWNBVHVBQ0E4SkUKQXZHM2YvMExPcVpIRGVyK243NjkxLzNKNmNhcTQ3dExqdFZJVCs4dE83YS84dHhIQjFIVTBIMzdOdUtFT0xuaUNFUm5WMGZrdW5DaAo1cU5sdzNzaTBjWW9kUXRza0xJTWdLT3l6Yi8vVUp5eU14cnFvZFZQZHlTT3ZXbUtyUTF1bW91VE0vQVVEamRuZ2NPVDIrK00vSFhuCnlGK1RSeDd2VlBXa3FBZHl0RU1VamJKSU8weUdiZStEeG8xVSt6TGhYaG05R2NiMUVxR0VOQU53QWlDSXBpL05QS3ErdE1IZUhFTlAKcnU2SEZQMlR6T0dobktmOW1VUDllYnJIZWIwZkx0ZnVqZFMxaGlwUExDZXY5N1p4Y0NNNTQ0aHVCRmNTem5XcUMyTGorUDZpK1QybgpOeWpiNXFrYkkwYzZsZzIxeGxpTm9qbk9ha2E3NXQrcldPNkpkeUNTRm9DUDNEUVhlL0R4SStCbkFBYmRyazFRZC9vTXRZWDN0RVlwCkdxS0hHcUlmdHZ2MnRvYUI5TFdGZzJESFBTMmhJSSthRnFsYUZ3L3REUnc0dU9oS3hkcVpqZ2ljVHVidU9IWG1ndThmZnZmblhtV00KN041QzlxMEk4U2V6Slo4RzhlLzZDdTc0OE0wV2dPWmNuOHU5N2lXNDVTdTg0U1A4YkluNGRKNUVXQzdOcUpJWFZzaVpWU1ZrakQ3UApBQVRwOHd4QXRISVpBKzRETDZhTHhGU0JvQWgyUVBNb0FnNDVsY2RlS21nSkV0endFMzRXSUx3Q0x0UGVndnYrNHN2emhaL09FejZJCkVGMStWN2FmQTY1dXhUa3RzcHppVW01bEJiTzJnbDVmeXFpWDgvYklCZlVsN05wU1NuMEZhM2M1RXdRd2FFOFpYQkI0WHdWN2Z5VUgKQUtpcGl0ZGNMWGh1b0luV240a0dvSWttNkdxSnNRSWtxaXNWVjhzRlpSSmVzWmdybDNERllqYVB6MlJ6YUVBL1VqN0ZxQitLc1FHSQp3dVZTUVdqTVBES0xDZlJEb1Jia01vcHk2UG52VVFYaHRJTmVyQk96bVJkbU1hOTQwNDhtVUN1MlVLaTd5RG5wQmZtcFJia2dhVlR3CkR4M3NnOFlNQkR5RXhFaUxUSW1XVUV5Smt6SmpKWXhvTVN0Q3dndVZTRU1sVmNIaVBVSGlScWdmMFdGZndYRnYvdG1GL0l2R25QY1MKbnNYMEF3Tkh3Y3hpMU05QzdpVXY5cVg1ekV2ekdKY0JnRUFBZ09ZenJwc0RDSzREOUNZQWVyWVhtSFVBd1hXK3JRSElxSjhKQU1WWApUQzRGV1JvSW15Qm1hU0FNUUJVdkFxaStrdDFZenF5dFpZRnIwcCtUSUlCK2loSUNBUDI4bU4yYklNUUFOTEJZWWpJUWlHcHhDVllOCndnYkZzQlpwRVBXcXlrblJySzU2UmJTcllIU3JxMDNCenFpV2wrdFdWR0pMOVdoV1ZtclcxZ3l1cm5pNFJISS9KT2QyWVBwVi8rVEwKQWNsd2JueGsrcVZ3U0o5TFFic3VCYVVBK2x6eTMzVW5LT08vbytuZ0N4NWJOdEhqUEVrLzVnQXkxNDg1Z0Y3UVQ0TE1VajlZSnEzbQpiQ21lLzE4QUJDdEF6d0JrYkFDU0taYS9BQ0JzMnBlNWZ0QjFSdjFBQUpVYU5wUkRBSzNnWEhtN2NTYnZ5d0RlOVhuY3UvN2N6L3k0CnQrSm94OVlYeW41VnNBc0RVREk1aGNGTDJTMmlOY25ZSFhKZVY3bW9xN2E0b3dZdWhQZ0tBRFZKcVpWU1hvVVlBa2pNWm14bmxMOUYKRjZkU3N3Q0FNUDFNQWxCcXpnZjM3MTB4akkxdTJyTGUwUWJCNFZ4eENOSktEaGs3RVQ4RXQ5V01WTGZHcUZ2ak5CMEo2dlpZN2NGNApUWHVVMVdnN29xMUczN1pJMnh4dGFJcEFXNk9CUDhiQUk3dUNOUWY4dEllREI0K3RPOFpmc3RpUENGN1J3YzRlYjJjM2cwUWcyaVB6ClhGeG5FWjF3aUZPUXI5TndmeXFxS0JpMWFEa3l4VEM0UzZYTUhCbksxU255VklyMGdlR1VzWkc4d2QrOTlkODFZZmVsQVJjRi90ZUwKSTI0WGgzMVJGbkdkNTNkUEhuVk5GUEJaUmZSMVNkQU5hZkJOV2NqZDBvZzdKZUZYSllGL3JRblNmcGlnK25hSFFaV0I5cVREcFJRSAprOUZlbW1ZNHkycDBJNWxhWlRaY25uZ2tGVFZrbnovNTdod2lFam9INXp1WDRPT0o5NXRIREZuZzZqdmJLV0F1MGQrVEVEaVA1RC8vCmVjQ3Znc2Q0ejNGYU9Cdm41elhWYXlaeHdReWk3eXpuaFROZDVzNXljM2NqMnRoQit1Q2Q3TnluZUxpNnV0dmJnUk9JaXdzcFlWSGkKb1ErUFBIbnlCQjBmUTdXcWg5OThmZnZNc1pQTnV6K3Fyd0FBT3IydjRwUDlGZWVBaFBaWGZuS2tDd0xvNWkwOGdyZ1NTZTdFYVRNSQp0cjh1OWpWOEZLTnJEZGUxQklIdnB0Vm9tbUtVelNHOWJiR3FsbGhOV3p6NEFPaVBybUJ0bVlmWTJydTc0RHdJVGxQdzdzRlRIUi92CmpoMXVpdFBzait2dkNPOC9GTk4vS3FuM3l0cmVlNXNIdi9xVjZwdXR1bjl0RytyTkdCbkkxZ3psR1pSa0VOMVFQdHdmWXlCblVKRU4KQW9pakdzeFI5V2VyZXpMVlR6SkFGQU41SXoxd3p5OU5iOVpBYjdwYWtULzZVODdqVzJzZTdvdlVkY1NqUjRMUGlHSm1PQ0pUSE93SgpibzVFWjZjWlRxNXVCQUlCc1VsYjRxazR2UUU5Rm9CMmhlbmFRMGFQaEZ2UDRRaXIwWjVjZWxxOHhNMGVjWEJ5ZG5IRlQzTkQzRWdJCm5randkRVQrc0RzTy9UaDJyQ3R1NUVBOGVtZ0oyclZJY3lSYWZ6QU9pK0ZRdk9sWWR5QjI1R0NVb1ROQzN4azhjbUoxNmRZNTArMlIKNlZObUl6YkkyKzk4b0RXTVhQejY1eUQrZFcvZTNXREoxWVd5ZXdIOE82OEFrTC93N2dyeDhRTHd0MWlXV1NVdit2Y0F4T01VcFBENApTY0sySU1GTkU0QjhCZmNXU3E0c0VGeno0ZDBLNVhVdkZ4eE5sdFFKU3ppN3kvTHFTdGwxSmR6YUVrWk5hVUZOV1daZFpWNWRPYk9tClZMTGJERUM3alh0aS9uc0FxaTBSQVFDVlMva21BUEY1VEJhYktoTThCNURBQ0NBT3B3amtwUUJpbmdRQW1zbTQ3RTAvRmt1dDNsaEkKMzBuT1N5K0ErckVPSUhQMFJFcWZKMElLMENNTkZNaDllZVcrdkQwKy9IWWZ3V0VmL3NmZXdvKzhvWDQrd2NvL0dJQVdDczQrcS9RWQo2MERQOU9NbnV1VE51NHpwWng3ajRsejZCUUNnK2N4dUw5YTFCY3hMQUVCK2pFdHg5RllBb0hUcWF3RW9oNW4vK2dBaUN6TE5BYlNvCm1weFFoZWtIQWlpdVBCL2tsd3cwTVJ4bWFhQjFGZ0JxTEdQdnFXUTNWYkRxYXVBZUJWK3RLZncra3ZrakFGQ3M0S2RGSE95eWF1d0gKZ2dZYVhDSUZEQUlaV1ZROGtTVlFRdWJ0UVpPaVhWNEJBaEh6OG1Eb3dZS2RBVThGZmhjQWtINTVKWnl1dGFKU3Y2NFdNS2hudWV6YgpHT2FEZ016cjNqc3YrZXdBM0xrUXNPTmN3UFpMdmp1dkJhYmVEVXgvRUpqMTkyaUdjbWt4MEk4K1R2cWE3akYxTjA5eUQ2UVAxdU5zCnZvR1hjU0VmOHpiblNlVWYwemlYWlN6cDgvOENnQ2FHd0o3clIycWEvd1gwbzE1WmpBRm9kSFVacGg5czhPdForYWNVWkhSakJicFIKZ3E0V0hQNmdZeGIzQzMvdWpma2NDQ0IvM3QwWXhzbDFSV1h2a05NQWdMWVZwZ0VBVWRqSjFTSnFneEZBbldYQ3pobzVCcUREbFJORApZTmdvR0FhZzVoSVJOSkNVQVFCVUtXSFZDL0psYkdvR1U3eU54c29zTWs3N3Npai9nQ1Rudjd0L2Y4M282SGhOZFRtNDZMcE5uV1p2CmcreGNNbDF6SkhDb1k2SDJnTTlvbDcraEhTUlEzeHBzYUErMzdHSjVkY2Jia2d4dE1ZYU9VQkJZK09sYWdoNUlOTFJIdGpNaTF3YlkKa213UXhJYUV1TTdBVFo5aTU0QUFDVTBsNFYxdGJHYTZFZ0NLb2lLbkRBK21Hd2J6ZE1OWlkvMlpWZ093TXRhZmJSZ3NHQWRPZ2pQWQpNOUJoc3VhTExWczNoVHM1SUhpU0hkR05aR2VQNEIwUlYxY0hQTUhXaWVBQUxwKzI5Z2o0K2R3Qlordm9CRGZpQTc3WWwrcXBQUlRWCmQyZTVYcG1ES25JMGcyVFZTTEtoSjkveUZiR005TzNROWFVWm51U2h3N25qaWgzS0oxS3ZtUTRJNGtWd2NzYmpTRVM4QzRpOUxRN2MKT3Ryam5SeUplRHNjd2Q2SjZJQW5PUktjY1VRczRKam80RUJ3c0NVNDJNQ3YxdEdHNU9RQUVFZ2lPRHU2dU9HSUxnNk80Qkp2NytUcwovdDcyWktDWmNkU0FqbW9NYXNXM2Yvek50Wk5IampmV0h0OWRkcUd4NXRMK3FuT3RkZWVhYWk0MTExNXFyVHZSVUhYQldBRTZmL2tLCkVRQ0k0T0xxUEhzR3lmRlBOU0c2ZzZINmpzaWgxZ2hWVzR6VjZKb1RSanVpaGxxakRFMlIrdVlZVFV1RS9zTlY5QTBBUUhBS0dBbHYKU3lUaS9UMlJuNXFEaGc4RXFWcjhsUHRqbEkxeHc2MEppcmFFM3Rhb3A4MGhUMXNDKzFvRG5uNFkxWHM4dnYvQzBvRWJhd1lmYkZIOAo2UVBsUDVKVlAyWU05ZWNNRCtTT0tQSkJsSU41NEJnNzB6ZVEyL3MwZlhnd3U2OC9vNmMzYld5UVBQWmZPMzQrRksxdVRlaHBuUFg0ClFNSVNQM2VBWkU4WE94ZWlvN01iem9ORWNuWnhBdS9nMHJBWmJZeTQ0MFdCSjZsUkg5R2lUMUw5M2loSEdSRzBkd09jQ1FqQkZlL20KZ1p2aWpMZzYyeERkQ0RQZGNWVnB3YWVMZ2c0WFJuVlFvNC9Sb3o0c2lPaWlSWDlZRkFseW1CcGxIbkRtQUMzK01EWG1DRDJ5ZzVlMApPSVFJUGxyNHFkTVJCNlIrZCswWXF1Y2QvL1U4MnZrRmdrL2hCbHZTMjc2Q1R3R0F2SGxRUHlCd0FXak85WG04R3dCQTNxSWJvYUliCkc4VUhhVEpPUlhIV2F3S29XRXJEQU1UblV6QUFjVGlGTzNtU1JmeURRYUpiZnNKN1dKc0tlTjM1NG1zK3dzdUJ2TXNCbkJ2QjNPdEwKaEtlMnkrdG9aYXlxa3N5YWtrSndwWU1HS2lQWFZoVFVsTk9xeXRtQVFYVkdBR0dwci9oM0FMUy9YRnhYUEFFZ1dBU1M4cVNpRndBawo1cjhBSURhYjhqSUF6V01CQUoyZnliam9SZnM0c21qUG1rTCtWbklCQUZBS0pjY0VJTk1vR0FSUXBJUmhEQ3RTeW8rU0NvRjd3aVd5CmNFbXhIMyt2Rjd2ZWsxRS9tOVk0aDlrMWwvUHhYTzRuODNnWEFYMEFkNHp1dVR3QklIQlg4SW1QNEFLTXFRNzBERU5ZeHcrbUgwOGEKdUwwMG4za0ZBR2doQXh4MEF3QWwwRnJmTHNJQWxKckp6UHRGQUJWd0NrMEFNclkvdnhtQUVpcW9DUlVVQ0tBeXNwbUJqR05oenlSawpQaHhtYWdhYVpLQzFWWmw1WmdDQ1BVRFBBTFNubXRWY3lybi9OdVh2a2JUdm8zZ1BZL2cvSkxJZkdTKzA1Z2JDWXFxVW1BdzBNU2kyCkJFYVRWRFlwc1AvR1dqQWVnUURpZ0pqdVFoV0JBMEFmczFVS3RVbGw2Tm9hemNyeXZpVHA5d21jdjBSVHZ3b3YrSFZvN2hjaG1YK0kKTEFSM3djbStKUkxOMHBMUnBXV0d4V1g2aEdMem9TNXorcGdBWno3bUJRcy9pUklzcGczYnNVemF0WFNTZXl6MVkwbWNWK2MvQ0tEbgpEVUJMSlpoK25zLy9lcVlmT1A2MXF0aTZmamFYZ1l4dnJFUTNTYlhySkpYSlIyZHo3dnR5Ym5weFAvUGozL1BuZmhwTlA3dUdXdmNXCkpSc0FhQ2NsZFZkQmNpNXpaN21nY0orTTFWYk02eWdWd0cxUWErQmVZSzhBRU5CU3RaUmZMWVlBS3VWUUtBeDJKcFdjVTdUVlZQNHgKMFNmUG1BemFCMXdCVXpPcy9jMkRlelkyY0ZkVXZKTzk5M1RIZ2JZbCtpTXJWWjB4cXRhdzBZNkk4WTdZOGZaRnVzWUVyRkgzOWRQYgpNUTljZE5FRDRXaW4zK2pSd084NzQvZW5CeWZOSUFIckVHM3RwcnE0d0tWbFlKTUxNbVBXMUszYmt2T0w4dkI0SE43VkRuSEVyVjdqCk82cktRMVYwZENnWFZSVmFqNUlDSGpBNlFodFhGNkhhQW5Ra0d4MG9BRmZjalFrTGdhSEFaWkxvU0pydTdPSGg2T1RoaENNNU9yb1QKWFRGNVlBY2VlQmQzSjJjbnhINXI3TlN4dzRucWMvSGpmZG5vTUhobWptNDhkM3lZUFBubFRESGtHbFFab3lxNlJrblZETzFDOVl6MApaRS9FbHVSQmRIQjFzcDBLbnRvZWJrUktzRU53dG5CUlpoY2NZalh1T0tjcFJMdzd5UW53QWdROGttaURBTFVndG5ZQWgzNEw1dkZZCnpGOS8rZFU0Q3Y0ejlELzY3dmUzTHA3cDNOOVZMVDFXWDNKaWQvR0YvZVczT3ZaYzJsdHlwV1B2eFpZNkRFQ25tMnU3VDMyRWpodU8KblR6bGlDQjRON3dkd1cybWgrTjNqYkdhMWlCZFM4eFFXN3ltSmRCcVZBMFI0KzBCNmxaL3RObFAyeENvYXc5Qmp5MW5iNXBoNjRoMwpKZGtSQ0xaMkRyWitNNUdleG5CZGF5aTZQMFRmR3F0cmlkTTB4NnFibzFSTmthcW1jRTFMcEs0dFN0TVVBU2Z3TjRYMU40YjBOQVUvCmFRbnA2WXpvT3hqOStIUkN6OFdsZ3pmWERqMTRTL25IRDlUZkptdC95Z0xRSEIyazZQdkp1aUd5Y2poWHB5elUvVFB0NlpuRmp4dmgKYUtuK1ZBanpIVzhDNHVibzdFQjB3VTEzeER1NzJucUFkOWpGenM3WjNnNlBlTGpZT2lHSW95MmdJdDdlZ2ZDUzRLMW1Ob0xNSU5nNApPQ0lrTjFkM054ZndnWEYxZGlHU1hCQ1Nuek5oaWd0aTcyanZpdGc2T1RqZ0FHbnNIRHdjYkltT2RpUVFuTDJ6ZWV4eEpEc2JPRXdKClBzeVFzVk5uT0hxNE9VOGovT0YzRC9yVTJzMTFOeGR3NFFUNE9hSUh3WUtyQy9pdy9HTmM4Zm5aRGhoR0FDMFEzbDRvdmhFclBMOU4KM013QnVDbk9yaTZtVnNxWWxjV0Zyd0JRbVpRT0Z3RVMwWVNpSWhPQW1CenlWbTVwQXY5WWdPaU9yL2lPditpcW43RGJUM2dYVnBoRQpWLzNGY0Q3YUF0NzlJTjZOUk9IaE5iTGR1Vkk2bzdSSVhrMnRyV0RDUzU2Y1hWMUNxNmtvd0FCa01oQUFFTGdJWWdBeXRnRk5CcEN4Cis4YzZnT0JlWUJLK2NVTjRua3pNQVFCaXMxNEFrRkUvaFVBL1RGYmh5d0YwR2dCb0Z1UDhQT3FKa0tLV3BZWHlkOG5VTkhJMkFCREkKSkFDQkFBQ0pvSGpFSldIaTZsRFJuaUJoa3orM3laZlZNcU9vYzFwaHAzdEJoMGZCd2FsRkg4MWtuWjdGUFQrYmQyRSsvOElDM29YbgorakdXZjd5RjU3ejU1d0dBc0RFdjA3RFhBZzUwejdOY0FqRldnR0Fua0RmejBrTG1OVC9HaFVSNjJ6czBkam8xSlp2MkN3Q0M2MFEvCkF4Q1RUM2sxZ0pqQ0hLc0FTcXdzZWc0Z280R01ZMkZZUDlBRWd4S3I4cDhaNklVSllvbTFPZkYxRThFQVZGWU1BYlM3bUlFMVFRUDgKTmxkdzkxWkJESFh2b3Y0dGl2eVBhUGJQMGJ4L0pyQWZ4dkZBc0tzcE1GRHZZckZ4ZXJ4NEtGRUdNcnhJRHFKY1BHRWdFQXhBNXNFQQpwRjc2MGxnV2piRHpwaWZFVm1xRzdja0p4WnA0dVc1eHNXNTVtWFpGMmNpS1VxeEVvVmxWQnEvWlNkSUorb0RmbFNBSHlvSHdBdUpaClhQSzhYbVZ5enlLcGVVenVVU1NLemZPTDdqRnZjRGFmMW01Sm5GZm5Qd1VnVXdkMGY1SzBQMmtDUUJQdHovQzloZTNQc1B5elVqNVoKUDRBK215QjlqQUhIRmVobTJkQkdlV0hXSjU3Y2V6N2N1ejY4ei8zNG4vcnh2b2hrWGxwSjM3K2xLSDlyMFE0TVFGbU1uVEorZnIyVQowU3JuZGhienV5cWtHSUFPV1FBSW13bHZuQXpQcTVQeGFxVE0zVUpLSlpmQ1pWRUthRms1UlI5WTFVOHUrQ3RKZXk4ekwvM1AvL1ZICmxhby9NTnpYeGc1eGR5YloyU0lQYU5NTVIxYWdSeFBSUXlIb2tXQzAweDg5SElWMlJhSUhYNUpEVWRaekxON3dVY2pna2VBdnF5TmwKYi91SFRuZUR3em5PdHROSmhDa2tlSkczdFVYQ3cwT3pNL051WHIyTmpxRUhqaDRDbDFnYlBCVEFXMGtMRkw5ZmI3aS9aZmp1S3NWbgpxNjFHOWRsNjFmMHRQWGZYOTl4Zk0vVGxtcUc3eTlTMzEzMS9OTVp2SG82SVIxemRYV3p0Y0VBUzlvQVVOb2c5M2dHdUUyZ1BTejdnCnJvTWp1UExaVEp2cTV1aGdzOUROOForNzR6U2RRVU0zVmd6ZlhqM3k2VnRQZjcxS2VXL2w0UDNWVnFOOHNGbng2YkxoejlmMjMzOUgKL2VWR3cxZXI5L0xuSVhZSWdVQWd1VGk3dUxuT21lczVhNjduVE04NXM3M21UWjA5YytyVXFSNGVIbkNTa2JNemtVZ2tQUC9QRm9kRAo3SjBRQnp4aTZ3aXV0NGlucDBkU1lzUmJiNjA5ME5idzlQdS9vYU5hVkRQOGp6Lys5dkxIQjQ3dUx6dGFJVHBSS3o5ZFgzcXBwZnBHClIzMTNhL1cxdHBvYkhYVVlnQzRiYzZhcDlzWW54d0dBdWo0ODdHaUg0TjN0YlJ3UjM5bjJ2WjN4b3gwQm84MUIydFlnZFVlRTFmUzEKeGcxM0JTbzZnL1Nkd2YzTkljT0hvbFRIa2lqcjNCQmJHeElCOFFCU3d6c0h6eUgxTmEvUU5pNUJHMWZDR1hidElTRHE5bEJkZXdUMApTbXUwdGpsYTJSdyswaEtoYm90U0dUUFNHcWxzZ2YzSW8vV2hocjFoK3NZSThJRCsxckNuSGVHUEQwWStPaHo5NUh4UzM3VlZpZ2ViClZGKy9qMzZiTW5Kci9jOE5BWnFHU00ySEFkM3k2Sm11VSsxc1hJbXVDR0g2MUtrdUh1Q1RNNU9BbjRKM211cE9jSE56SXBFSVRpUWkKem8zbzRPN3E0a0t5SHVOeTJGYUNCOThURHcvd1JLN2dtK0lFOUFQN29GMWRjTk9jQ0M2SWk0Y2RjUmJCYmhyT2ViWVRhWVlqNGtwdwptdUtBbitvSVFwaUdNNCtUbXdmUjFXWG16SmxFZ3B1cjZ3eVBLVFBBUjI1TjRtS05ldWptWDU0R2k3cDlSTGNYeXU3UGxmd21pSHZKCnl3Z2d1Q3doRjI0RmFBTFFRdEdkQmRJYnk4UW5zaVExSWptbG9pUUhpa2ZPcWl5WmFIOStmUUJSdUlYdmNXdGkrV2Q5eFovNlNHOU4KQUVoME81UjMyMTk0MDB0Nlk3N2tocmZ3bGovdnBuRkp2L09MK0I5dmtEUmxsa2o0WlpUSzB2eTZrb0xhVWtwTlJWRk5PYU8yREFaagpFQVlnekVBTlZkeW1ha0Z6amJDbFZ0UmFKMjZ0azhJODY0QzJDcUJLS1N3Q2xVcGhFelFHSUtOKzRIUXdJZmpLdVJCQVFEOE1KdmxsCkFKckxPT1BKUER1TGNXNE83WXdmNVdBaXVlWnRNaU8xTURPNUVCb290U2gzTW9EQ0pQVkc5elFFQ3RwOWVRY1hzSTdNb1I2ZFVYREUKTGVjajEreWp6dUEyNzJNUHlza1p6Rk16dWFkbjgwL1A1MThDQmdMeEVoajFZd3dBMEVJZU5KQlowODhWT096RmhGVWZyUEJqb284NQpnQUtZRnhQcExRQkFHYjhFb0hSR2hnbEFOQURZMXdCUW9SRHVCbThDME9LYXdzUnE2cUlxcXNsQTVua0dvQWtHUVFOaGVXR1ZvT2NHCldsMlZrVk5hTUFsQSs4c2hnUFpYc2hvcU9KL2swUDhjbWZ1M2FOWlBVZHkveDdOK2l1T0NtQXlFbFlLTTFTRHB3T0tKMldFZ3dFQlkKTUhCZ01XY1FWaCt5akdYRmFPSzNHSC83aElHV3dnNGVBS0RSSmVWalNjWlZmQmJKUnhLbElPb0VxU0ZSTnBvb0EyY0FqUFNMaXpVSgpVbFc4REJKbmNUR2N0dmFTU3M4azkwd0NrTWs5cG1EY21hU2ZQZ3YzL0h2NmVmS2ZCbENmRVVBbS9VQUFMWmVPTEpkTmxIOVd5Ykh5CnovanEwckYxV08ybkJPcG5TN2t4WlRCd0NFeitkSFBwTytTcjgzbWYrdkErOCtWKzdpZTQ0OHYvZFNpamV4bTlkUk90Q0FBb3VTZ2wKbVp5U1J0MGg0T2JVaUdrQVFIQVVyRndDQU5SVkxaOEVJR3hiZUt3SUJBQzBSOHF0bFRCclJkUXFYcEdZWFVCbHBHZlJkb0MvZlNEbQorc0VBbEVQYnVqTnQrNGNIMmxCVVRlR3hnQldtRWZIQUJhSlZqdGRsU1hmTEUrK1doSDllSG5wVDdQTlpTZGk5NHZDN1pUNVdjN3RrCm9kWGM0NGQzWm9XOUd6UGJsV2hyN09tMUp4QWRYWEVPT0R0Ykd4c2tJTUJyNzk3OWlvSFJNUU1zY2FEb2NGZGJPM2lVSzhuT3hkWXgKUGM1cjhFUzRzamxFMlJZODBoUm9OY01OL3RxbWNHVkR5R0JMb0xvalVOOFlnSGJHLzFRVE1uY0tEdnc0RHE1bkxpVG5qV3RXdnJWdQp4YWFOYTVOV0xGKzdidG42RFN1V3IwamN1SEhsdXRWSjdpN2dKM3RraW91VGd3M3lZV0U0Q3RjS0NnS3ZxR3NNVVRTRjZCdjlMRjhSCmkzSnY3T2llZ0xGOUM3WDdnZ3g3Z2tiYmc5dnl2T3hzY1ZNSmVJQzN4TWp3Uno5OHAxTDA5eno2NmVFUDN6MTUvTlBmL3ZYM3YvN2oKbXovKzk1OSs5L1h2SDN6MTVXZGZmbjczaTN0M1B2LzAxcjNQYjMvMnhlMzc5Mjk4ZXVmcTNUdjNmdk83ZnozdTBhR29BUjNUb3VoMwpqNTUyWDdyNDRkN3FBMlc4d3hYOEk5WGlpN3RMYmpUVlhHdXE3bTZ1dVgxZzM3WE8rZ3ZOVlpkYWF5NjI3Z1lBdXQ2K0J3RG81UDZxCm0yY2dnTnJhT3gyQk5nRUVIWkFsd2U0L2R5UnBQMTZxUDdKazlIZ0NlaWpXYWthUHJody9FcUU3SEk1K0dLVS9FRDkrTEdIOGNIVGQKQng3QWtSNHVEaDZ1VGdDT0MrY2dqdzVFRFI0T0dXb1BIRDRRTnRRQkFCUUVhMHR0d2ZxV2NGMXpoTG94WE5jU0JhSnZqOUYyeHFvNgpZNGE3b2djNkl2dmJJN1N0Y05kNkVIVnpoS29wSEtzWWdic2orME1WRGNHOXpZR1BXd0tldEFiMk5BUXE5NFdoWGN2KzNoYmc1K2FBCmQ1aUNJemxPbnpuTnh0RVdjU0c2Z3pmYXlkYkJ6dEhKQVNIaEVaeURJNUdJSnhEQWg4dmVpZUR3Um5Fa0VYQjRlMmNYSjRLenZTTUoKd1RuYk9lSVJSMGZFRFkrNEVaMmNuUjF3QkFTSHc3a1FIVWtrV3lMSmhZQjNBQ0VTSE0wRHpuZ1FuRHdJT0lLTnJiT0RteXZCSFp3RQpmNVgyNzI0Y1JRM2kwMytlemVqMkV0endFdC94bFR3STVGMERCOTY4V3lZQVFmMXdycy9uM3dRQVdpaTd1VTV5aENhUkZoZm5sWlZDCkFGWExHYThESUttUUtoQlNBSUE0UERJQVVBR1AvQTVuYnpTdjIwZjgyVUxaZFFDZ1FOaGRkRE9TZDh0UGNHdXUrUFk4OFRWZjBhVWcKNFZWdjRaMjV3Z2NMaGZlQ3VkZVdzRC8rUUxDSFVzSVZWeGFVVk9XV1YrUlZsOUZCYWtycG1JRjJWN0JNUlNCTEFMWFVRdjFNQXBCeApGcGg0VDRrWUExQ0ZCRmFBNUNLT2tNZmtzR2tpWGlFSTBJK0FWL2g2QURycnlUd3ptM1YyRHYyY04vVjRUT0grVFlYY0ZISzZDVUJwClpoUEJJSUNDUlljQ2hJZjgrVWQ4QmNjWDhFNTZNazlOb1J4M3lZWDZBUVp5ei8zWXZlREV0S0xUQUVDenVTZm04STdQNVorZkp6Z0gKTWwrQWpZV2Q5ellPZm5uenoySkZJQjgrN1BzeE5mMTQwaTZEektWZnNRYWdxeGlBZmtVMUFvaWVuTW5NK1Q4RklKWW85MlVBTWhuSQp5S0NKcnFDRVNySXhGZ1o2M2d6MGdvRXdBSlhDbGFDWkVFQnlabE1KQkZCTE9hK2hndFZReFQ1ZXhQZzZNdXViR01hUGtaeHY0MWcvCnhuSkFmbzduUFV6Z20xOVRueTZTOUNSS2VoZEplMThpSVN5bXlwQTVqQ3p6QXBXTVp3QjNkRXZMZ1pDd0pZaXdaOUFtbFVIY0dNZmQKVkV1TDFjdEsxRW5Gd0VBajhTSndxMWxTckRHS0Ivd3U3ZklLd0tiaGhNbnVlZDdaczBoaUhyT1NqOUE4QS9FQ0xOZ3lodVo1Tlgydwp5ZTJXc2FUUGZ4eEFtSDR3QUdHejMwR1V5eVlBQlBTalh3a0JOTFlLem5nM0FxaDRZdVFMNk9jdExHWG9obEowdmZTSHpXV0xpbTU2CjhlOHU1SDhPQU9URHUrSEQvWFVJNDJZUzg4QUdHdDBJb0YwQVFNbEZPN21jckNveHRWbk9nWDNRWlJLZ0h3aWdha2dmcXdCcWx2SDIKU3RrQVFOVWlacVdBS3VQbTBWbVptWXpKdForSlVGUHppN2FsNTZjVWw3RFZvNHBUMSs4NDJUaE50VUZJTGtRN0JEL0ZaUnJCM3NrSgpRVHljY081NG5ETU9UM0owY25Hd0hxS3RnOVVRRUFkbk8yQWZHM3NjNGpiVjBkblpCZzdLSUxhekZ3U1hWZFkvL1A1bmRCUmM3VWQvCjkrRCs3Ly80YXgwNjB0bmE1b0RZdUpEZ1duOTVNZk1OeDZQUXh2Q3hacmcwanRXTWRJVVlXaU5HMnlLMW5lQlM2ai9hRkdZNHNPd0wKbWJlTEhkN1p5ZFhPMWlrNE1FU3JWS0RqZWppR2hCcGZEVVdOSTBxb1htdG9iV2doT09DSnNQeUN2THRvNXRpSGk5QzJJRGhackNWNApyRGtSaFZXTnlhK0lSZHVlZ0xaRTY1djlnTHAwTFNIbzRaaUdYRi9FZHFxN0U1SG9nSXNOajRTdk1UYXUwV2pBLzZ1MUdoUzh2aW5ZCjF6Rm1qQUZjSXNmZ1hXUEdEV2hQdi9xclAzL1gySDAvcmZyZ1NuSlpOcStpb2J6a1RMWGc4bDc1NmZxeXEwM1ZJTGM2OXR3KzBIQ3QKcmY1cTgrN3JiWHV2ZGV5NzNGWi9xUmtDNkZKejdZbDlsYmZQbmdUUHRiK2h5UkVoZWhEdFBCeVErVFBkeUN2d0JXdmNjNWE1NVN5egp5Vmd4eDJwU2xpL01XT0d4YytYMHpPV3pVMWY1WnF5ZFU3aktJMmpCVE1RZU45VVZENjd4TGs2azZBWE9QKzhQMXg1YmhCNU5RcnRXCmpuY3RIVzJQMTdhRkQ3Y0dEYlFHOW5XRzlnQVZkVVlPdG9jUHRvUU9ONFZxbXNQMUxaRmp6WkZvVTJUUGdRaVl6dkMrOXJEKzF0Q0IKbGxCRks5d01STE12Vk5NWURpeXJhdzVUTllZQ0h1azdFelFkQ1hXRnNZNDJEZ1NDazlzVUp6c2J1S2pqVEgrdkJYUG1UUFdiUG11Qgp6Nnc1cytjdjhKdysyM3YyL0lWejU4M3luaGt3MzNPRzFjeWJiVDNUNXJwTW4rSHFPWFBhbkRtenBzK2RObTMrMUZtZVV4Yk1tK0U1ClkrcU1tWE5kWjdsTm5VMmFOMnYrbkdtelpzNTBBeTgzYTlZTXk4eWNPZDNWZGNiY3VmTm56WnpuT2ROdjJ0UlpydE53Y3dObTMvM3QKSC9vMTZnMzFYODRUUHZBUzMvQ1czQXdWM3ZiajNwb3Z1Z2tiZ0RpUVB1WUE4aGJmWFNpLzliYmtBRi9DSzVObmxaYmtBdTdVRkRPcgpTdW12QnBCY1FzVUF4T1BCVlJBQmdITDVsTGZZcllBN0N5V2ZlY3V2K1V1NkFZQUNqTHR6QmdodUdHZmdYOGNXOFBNRFg0d0FOZ2w1CmMyLzZzTzZHYzd0WGlEN2NKcThvTEdIeXl3dXJTbWtnd0VDbU9oQm1JQXhBalZWOERFREdTRjRHb0lZS3lRU0F4UHh5TWEvTUNDQVIKbjhWajA0UmNNZ2pRRHdZZ052Y1hBT1RKUER1WDlRbkliT2FGK2RSejRSUzRnOUN1d3RSZDVDeGdJQ3NBOHVlZDlPT2Y5T1dmOWhHYwo5UktlbmMwNTdVRTdUaW80N0paNzBDUC95TlNDRXpNb3AyZlFQcG5GUEQyYmZYd081K001Z3JOeitXZm1DVDZaTHpnREhnOE1oS0hIClIzQU9hd1B5NWwxY3dMazRuNFhwNXp5Z0Q1WjVqS3NZZmJ4WVYwRjhXWmU5V2QwQVFJdG96d0dVeGNoK2ZRQmg5UG4zQVBUTVFGUk0KUDNCdVBCd0ZtMndnWTB0UWxxV0JRRlpXVHdBSWZQN01BZFJhd1crcVlPMnJaaDlsVGdEb2h3ajJOM0hNZjhXeUFZQitpdU9hRERTUgpSV0tRSjRsaUlDRmdvRWtGSVZNQVg3QllvbWNpaTZ5MzZSaUh1a29Cb2NEVERpK0RTL2hBU0MyQ3p3TU93QlAyTDVGamwrMmhwZkxoClpjVWo0R0dMcFlPTEpOaktqWEJnTHI1WUhmZlNhZTFXOVRNSlFDYjlnTUFsZkY2cEgwdlFXSTBsZmY2ekFPb3pBNURDR0JPQXNQRXYKRTRER1Z4Y2JBU1NmQUpCSlAyOGJzNzRFWFNmNXg2YXlNTm9kdUNZOS8zTi83dWR3cHg3dWI0S1l0NWN3RDIxZ3NBQ0Ewb3FTZDVKVApkbEYzTWxrWjVlS2lKaG03WGNiRkFIU2dCcTRHTkFsQVdCc1FOSkNFdTAvQzNDMW1Wb2xZVlVKR0NUZWZ3YzVLWTJTWUFKVFBTTWYwCmswOHpBcWh3YXlZNXBiQm8rMDhEMy8yOVgrUG42VC9iQnU2dTRBeCs3Q1lpenM1MjdpNE9ycTV3UjNIdzR6Ykp6UlgyMUZpTE0rbC8KVVhjWDhGRmRhZi9BQjBKQ0FnU3JvUWx4dzkzcnRMVFFGbzhuNDNwSHJ0KzVNcGFKR3hKQ2dFSnBpMXZjQmErdTlOM2RicmN1MEc2RgpscFlLbXZtZk16Y1pRaEpvdSsvdSs3Ny8vZncydlJrbVpKaEo1bjd2YzU1enp1QitNMndZK05za1E4RmZOVHd3QUZ4WlN3Wk5tekU5CnJ5RDdxNjgvZ3lqcHZQNkhjNjNscFhZQ3lhemFmOEJ6MVZOV3NWM2lOekRvM2tGK0VrbktySEdYRGt5N3NXUG1MOXQ3OTFiNzh2T2UKS2RmS0Vqd1ZNMi91bW41bGE1eW5ZczZWM1E4Zk5JNGVLUEViQ2JjRkhiRDBzZm1kbm0rLysrR2p0ei84eTU4L2V2K3Q5OS8rNndmdgp2UFBKKzMvNXg5OXVlRzVlK3VFN2NPWUxDaG9jR0J3dzVyNUJYKythMjFrMjZmTE9tYi9zanZ4bTErS3ZYb3p2K3gyN3Z1L3VoR3ZiClozMi9lOW9YZTZkYzJoM25lU2wranpiVVR6SVVMdjRiTUdqbXpPblhiMTc3ODkvZW9uaUdFQmljcDVPTG5XSlNTbHdnNG5GU2tTTjEKU3c0NHlDak9raGJucE9ibnJDM0lmZFRsVExDWTRuWFpzWmJ0Y2VaZDYvbWRXMHMzQWYzVWw5aVBieXFzS3N1cDNaWmZ2NjBJUUtleAp2TGg5UjFsN3hlYm1zcEttNXpjQkFEV1VGMVp2eVR1OE9lOVV6VEh3M0JZVUZrc2tRNGNQRHhnVlBHVGc4QWx3Z2FWQndaSkJEMGdDCmhrbjhBdnFQSkNqSWY2QmtrTDlFNGkveEd3R1gveGtna1FTR2p4ZzJlTXhJZjlqRVBUSk9FakE2WTdaRStkaHdhM0xjWWRNRDdYekUKTzZWVHY5MDU5OXFMOHowdnpmWHNtZVhOdkp1N1pvTVg3c2VLcVQvc25QYjl6bWtYZDB6NWFudkNUOXVtLzFnTzl6NERCL0M0b2lzWAp0MC8vNGZsWkFFTS9WMHo3dVdMR3BSMHp2bnBoem52bGt5ZU1uamg4aUdUSWZZUDlCMG1teEVaVk56Ui9mdUhqRC81NS9zUFAvLzdGCitlL092L3ZwMTErYy8rajhGeDk4K2NHSEYvNXk0YVBQUHZ6c28zN3p3U2VmOXB1UFB2dnJweDkrOE5rL3puLzgvbGZ2ZlB6WnU1K2YKZi9mRGp6Nyt4OGNmZmZEeDN6Nzg0ci9Pdi9QZStiYytmdS9Uajk3NStKTlAzLzM3KysrOCsvN2YzL3ZnSFRIZ0dPUWY3NzBOOHRZbgpmMy96M1RmZS91RHR2LzNsblEvLzhmYkhINzN4dDcrL2Z1V2E1OXpiYjRmaHpaUFkxMFBaNWdpdWNScFJFNDYzaHpLTlBnRDU0Z1BRCktuNGJ4NkZ1ZStaL0IwQnlTcjhDQUlnOEdjNmY2UUdnNW5DK0ZoaG9HdDAybGU2SXNiWkdzTTB4VE4xa3NtWUdXUlZuclE0UkdzZmEKMnNERG00UHZYMHR1TXZEdUhLY1IxcCs2RGRUVkQzUm5BSlhud1hXQWZBRGFtaStJQUNwMThVVjJheThBMFlTWkliUWlnS2dlQURKagpkd2FRcFNvRVBSYUNIeCtQMW9XYWFxY2FkaitoWis4R29IRHJvWERya1hEbVdCaDlkQ0o1YkJ4MitBSHpvZnVNaDBickR0MmpQM3dmCmNtU001U2pVRDNZWUJqODRrYXdNb2FwQzZjcEpURlZYckZCT1lkWmFHS28yRksrZFlCRkh2bURoWjVLNUxzeFNMeVljYlJBRDZCT0YKMVlBWE5SYXZmTVJVbUdoQU1oRUZuT1dPWllyb1VhQlMwVUFnY2d2Y3BVaUJ5cFVXcGRxaTBlRjZNMm5BR0FUUWh3TDBZZlEwMEErcgpvM200SFJqRnFid0drdU9NRW1GaEg3U0drS2JTc21WMjljSnMzWUljMDZKOEJHUmhuZ0ZrUWE0ZVJIVFBQTGRwYnBZUlNNZ2JuWGRRCnJNdERDM0sxQzNJMUMvTzBNUGxxa0FWNXFvZHpaRktuMm01RDhoM21BcWVsMUc3WjdDQTJaVEdiY2l4N1dMT3psQ3B6V0U4OXJINW4KRnZMdURQVGRXZlNIYzNGZ0lKRkI1K2ZBc2JEUDUxSytzNis0eUo0NFZWN010d3M0RUFnUmI4UXBZeUNYRjl0NjVrZnZZa0l3aTJ5LwpLK0tYQSt2MGpyY2JTWXpZbjlTVlBzUzUweUNYbUw3SzZaVit1ZE0zZmVuenJ3RUlQTlg5cHE5KzdnNmdMeFphLzdtSUZkTnpCNHl1CnFlOUxZTDVid242L2hQdGhLUS95NDBPMlh4NEM5SEZlZjloNTR4RlkvdWxjbHVWNXduMWp1ZVBHMDg3cks1MDNuczBTYy9OWnArY1oKNS9WbmlaK1hPeXJYYkIvTG5MMkhBOWRidFJIWTYxSE1xVWxrUnpUWk1oOTk0Vm1FU0RFa0p4bzNKQmxUTW93cEJuT0dnekZzRW9qdApObnFuaTROOTBMbTJudnVDZ2VPZUFQSnRDMS9FNGJrc2FxY1JBbE1oeHN4MFUycFhIY2lZQm5KckNFeWZvZE9ucEthdnFUOXg4cXJICnMyanV6TUVTU2ZDd1VjT0hEQmd4ZE9ESVlYNmpnZ2VCZ0FQd0tiaHg0SWo3L0VlTUNnb2VIandzRUs3Rk1zeC9XTEQva09CQkk4QWQKdkJuWmZUeDg2TURnSVFPQ2dpUkRoL2dQZ0YzTy9nOHRlZXo1SGJ0KytQNDdidzNrOGl0bjJrb0xjbkJFYmRhbG0vUVpkZFZIUFoyZQpiYy9uQlVrR0J3NlRTQUtHcjE0NDVzcmhlVGZMRTM3Y0ZYTnRHMXhGdW05KzJacmdLVnZhdVRIK3l2TXpyMjFiNGltTHVIWndpYkE2CkFYeS9lNGNFRFpKSTFFcFZwOGV6NzVVVGkvVHJWc3VmVzVmNTdFcE4waUtMZEJZbXEvL29MZkJJMGxhdENSamdmMCtBWkxoRXNwOSsKelBQaURNL21DYitVeC96ODR0U3I1Wk92YnU4L3Z6eS9wSE5MakdkckhIZ0FOeXRpUEx0bmIxTlBrZmdQSGpVcUNQeGo1ODlkNElGYgpjYjIyT24zMXN4bnJucFdsejhPVjh6RDFiRXczRTBObW9JWlpxRzRPcHBtTHF1SUo0MHhNdndCVHprZmxzMUR0Vk13NkRTMlpZZGs5CmxXcVpURFhIc1dlZjVJNXRMeTZ0TGJVZktzbXUycGhWdjdVQUtLZXBvcmg1ZTBuTGpsSVFjQUErcmQ5ZTBsQlJVcitsb0haejRaSE4KeFczSGo5eTRlU1Z2VThsQXdObWhBYU9HQncwZkdqQmlTTURvSVlOQjdoa2FPSFRZOE5HQkkwY0hEUjgySW5ESWlNRGc0R0R3bWtwRwpEUlY3c1VjTkN4Z0ptMnJnbmVIVTk2RkJ3VU5oZHpEZzNmQWhRU09IRFEzeWgwSWREUDRmQVBmYXVQK2VJVlBEaGo4OWU3VHlzUWVjCktaRTdUYk5mYzRTK1hSajM5Zk1MZnR5ekFNTG81Zm1lRjJaNDlzeTQrZnlVYTl1OTA4ZktZMy9ha2ZEOTlyanZLdUovM0RYdDByYkoKbHlvV1g5dzY1V2JGdkJzbGkzL2FIdlhQZ3c5cTVrUU9HQmdRT09LK2dNRUFYdmVjUFBlNnAvUG5hejlmL3RPM25yOS85LzJIMy96eQovbmMvLyszN20vKzQ2UG5xNjRzL2Z2M3VUOTljK09LYkMxOWQvQnprNjIrLytPYTdmMTc4RnVhYmkxOThmZW1ycjc3N1VndzQvdWI3CnIwSEF3WmNYdi9ucTBpV1FieTcrODl1dlA3MTA4ZnhYMzRIL1hMNzQzYmRmZnYvamhSK3VmQUh5M2ZmLy9QYmJ6eS85Y1A3N3ExOTgKZnhrRUhQZktsNWQrUG4veGh3dmZYcjd3N1U4Zy83eDg5ZU92THIvNTlrY0w4OTZJbzV2RHNicG9waTJHUFJuT25BZ2gyeVlTYlZGawo0eVNxZFNMZE1aWm9Id1Bud0RlR1c1dGloWllGYkYwYVgyZ1R0UGwyZFo2TktMTFRSVTZ6TzB1VFkrODVDbVlCOFFISXpadWRuSkZuCjRDcUlGR01BK2pFUldpbEJMdUplamhiYVk5bTJHSzRqbm0xTllPdkRoWTVvdHNXWEtHdXpMOUhlUkRGTlVVeEQxL1pXWEYwc1g1L0kKNWRJNWVINFdubXNuaWwzcXJRNUZzY09TbGMrVjVPQ2x1WVFQUU50NnpBTHpGb0ZzWXNyemhESUFJRGdFWnMyM1U3azJPa2VBU3dHQgo4RllDeDR3MFlXUklwSHNJVElmamtEMFlhalNnR2cxcU1WZ1F2Vm1yUlBVS2kyYTFrWnRxZmpuTVhETVJyUWxCSzhQTng4SXQ5ZEhtCjQ0dVJndlZhZVpwV21hNVhaQmprbVloY2FsVElUTjU5d1l3NkNkUlBGNENPVGFTT2pNZUJlQTdmYnpwNHIrSEkvY2FqWTh6SDRYQWEKZm13Q2NSU0dQT3dGMEhFUVlLQmJZWTVOWW1xQWZpYVJOU0ZZalFnZ3NmRGowODhkQUhSTUJCQjRUQkJBcUZRRVVNK0FHLzlEQVBJWgpDQVFBeUp2dVZZSjZBS2kzZ2ZLMFhnREpwUTV0SHdCUnBibVdYWUlsdDRBRUwycnJjdDA3TTdRUVFMUEpEK1pnSUxmcVFENEQ5VGpwCjlqU1FDS0NlREJJQkJCVFNteXhlRmZXOXNldVBibTlTdnRXdGZQdmRmRldjL3ZXendIWW45L1JxYXZibDd2cjV2d09nT3pIbzN3SWcKY2Z5ckcwRDJXd0Jhbm5YektlZk5GYTRiejdnZ2ZaNXppd0RxWE9ub1hNbmNlTkpkbHJSN0hIMWlMSGRpTXRrUWc1K0xZTTcwQzZCTQpKRVZqU3JNeGVoK0FkdVFJQUVBOTllTURrRGdLMXJVZU5FY1VzM2craHprWUk0bXFqQ2FwMUp3bVRvQUg2QUhSV0RKQnhCNGdIYkphCnBWMi9lZGUyS3g2UFRpa2RPM3lZbjJTZ241Ly93SUdEQnNCdTRZRWc0QUI4Q200YzdOMTBNeEFHSEF3WUpQRWJJUEdYRFBBSEo5cGUKOFJzSUE4Nis0OGZkditMcDVTL3UyZjNqNWU4Qk9MNzUrdk9tcGlxbmkwQk5HcE5PaFNOS2x0QVNGbVZkOWVHYjEyOXMzbG5oSnhrRwp6c0Yra3NGcGN4L3dISDdRczNtSzU0VnAxM2IxbjEvMlJzSFc3RDB4bC9mR2ZiZHRxbWRQeEk5SFptc2VIaklnWU9BOVFZRUFRRFplCitPVjY1OGJxdzR1MWF6ZG8xcVVwMXE3U3B5OGhOTk13Ulc3TndSdWVtNXR5OHlRU3laQ1J3eVFEQmlxV1Q3aDg0SkhPblZPdTdaMS8KY1djYytMNVhkd1VaeVc0QUFJQUFTVVJCVlBlZnIzZkZYOThkNlhreDRZZGRVNi92bWViWnY2UkNQWG5BUU1uSWtZR0RBd2JOblQzdgoyclZyQUVBWitvdzBSSjZNYUIvaThBYzVZaUZQemhPc0lQTjVlaEdITCtHd2hUeStsTVVmWnNnbFZuWU82NTdPYlozSzdwL0IxRXhsCjJoTG85amp1MVVldGxSc0xOd1A2SEM3TnFkeVVjeWNBMVlHVUZ6V1dGOWVYRlI4b3lYKzFwUTQ4MVl5TkhlQmRUd2dZZE1qZ2dTREQKQnZzTkRZQWZod3lUakF5QXZVRkJneVZEQnNPVnQwY09HaFE0Mk0vUFR3S2Yra0dTUUgrSmVQL2d3RUhCZ2Y1QlFRT0NoZ3dNSGg0dwpmTlFRWUtiQTRNRmlSZ1JMaGcrVERBMlVCTUkxb3NGM2d4UFkvUDBIang0Mjh2NWhRNmFHakZveGU0eitxZENjOU9oZHBvUnErN3kzCmkySXViSjl6ZWU5RDF3ODlmSFBma3F1N1p2MjhmWXAzQlozWTc4dERMNWRGL0ZJVy8vUFc2SXY3NTVWaGs4RWpIQmJvUDM1VUlQaDcKZVp2ZzhkdzgrZjdGWjNOckZyUDdaOXVyNXZPMTh4eVZNMTJWaTJ4SFZnc0Zjc0drRm5DcllHSnRadDVtQVJIc3FNMGJ3V1p4MkZBeApUanZtY3VCaXdMR1ZzN0FDeFFnVU9PQ3RlczZLb0l4RlExTVBjd2VXOHBVTDdQVWdpNFRxeFVMMWZGdmRYRWVMZUFzSStMUm53QzF6CitacTVmTjFzdm5ZV1Z6UGYzanhYYUl6RmpzU1FqUkY0WFRUVkZHTnRqNlRiSjFIdGsraU9VS29qakd3S0pWc21FcTNqaUJhUUVLb3AKbkd1SkZ0b2U1QTVMaFd5N1haVnZWK2Jac0VJYldlZ3d1VjIzVFlQdnBSOFJRT0NSMC9RdEFHWGd6QUp1Znk4QVJmSWRNVndyU0M4QQpSVUwzK0FJMyt1emEzWUd0ZmNTNk9aUExzV2VSaGRubXdpeExzY3RVbkcwcGRCUC9YZ0NKRlNDQzBJb0FRckU3QWlqY1V0c0RRTFhSCmFPVWlwSGlkVnBPaVU2YnFWVjRBS2U0SW9CRDZLQURRV0JRYWFKd0p0aEZOeENwRDhPT1R5S3BKNUhGd0I0Z2tPQm0rRDREb1NrQ2YKVUtJYTZBZDgrKzQ1WDdjQnFLZCtRS0x4ZXZBQ1F3Q1o4NU1OQnZDWXBCWkZ6OEpQVHdESkxabEtUS0ZDVlJwVUt3S29xd2VJMGZ4ZQpBUG1Hd0hyRk96MGV4Z2NnYUNDNGRZWTRSMHpuTlpBWTJCdjBZSTRzMDY2eEM2WThKMXdhUVFUUVJqZFZtSS90eU1LTHM3SFNmSzRxCjBmRDNxY3IzWnBqL01ZdDRmemJhdjRIbTBaLzNPQWVMQnVwWkNycTRFRTRXdXpWenZnK014UFRxeGZuWEFtUnpHM3JtQzdkeWgzcFAKeituclBmTmI5UE4vQjBCOURmU3ZBR2d4Qi9Xem1MKzBsQk1COU5OU0FlaW5hL0xYSXc2UXpzZGM0cktIblUrN09sY0M5RUQ5d0R5YgpCZld6d3U1WnpuWStrYU5WN0J0SHQ0ZGJUOGJncmZGNFd5aHoxZ2VnNTd3QVNrYTZBS1JDVWpoU1U4SmoyMnowZGhmYkw0QjI1SFNOCmdnRURpUURheUpNbEhBRUE1S1NOTks1QndiVkhkd2UwMkFZa0RvUUJBTWtSbVZhWExGTW1Lekg4d2s4L1hidjU0N3Z2dlBIR24wNGUKUHJMdjBPRzlCdzYrdEcvL0hoQndBRDRGTnpiczMxWi80UG02QXk5VUhYanAyTUc5aHcvdE8zeGsvNkdqKzQ0ZVBuYnN5UEhqUnlzcgpqMVZWVjliVTFkUTMxRFUyTlRTLzllYy9mdm5QOHg0UHdOWFBIMzc0WHkvdkxYYzZTYTAyRGNYa1pyUEtTcGc0R2paQ1lpWjVUYzFoClQ2ZG4wODZOL3BKQjk5OEQxd1JLbWpmcTh4ZVdYaXhiZkg3bnd1KzJUdTAzLzl3NTlldU5NeTVWVFB0eTkreXZ5NWRjZTM3dWg1dW0KSjhYQmVWNGpod1lHREpEczM3dnZxc2RqZjJublk4YmtOR09LUXJNaDBTeC8yR3Fad1JoVGlyTEF3M3JyRDI4R0RSOXliNUJrNUNESgpzbWpKZTFzV2ZsYzIrOXRkRDM1YU92bVhzdWtYeTJiMW13czdwbC9hbnZCdHhiVFB5dWRjMmozMys0bzU1Y2xqeC9wSkFCUUFnR1pPCm4zWHo1czAvL3VWTkFLQVV2VFRKb0htRVp4NFMySVVPZHA2VEJ3RUhTd1R5WVk1OGdqYzlZY1dXTWZ3U2E5RXMvc1VFb1RxT2I0dmoKVGsxbVR5U3dwMkw0MTVjd2RZN2M3UWRMODQ1dHpEdStLYjhYZ01CSFh3VUlBS2k1b3JTaFlpTUEwSm02U3MvMVh3cUs4a2VOSERibQpnWHZHamIzdmdmdEhnNEJqTVNQSDMvUEFtSHNlR0R0bWRFakkvWlBDb2laRnhvZEZ3djlObmhvZVB6azBKaTRrSW5wY2FQaDk0eWFPCnZuL3N5SHNmR0Q5cVpMQS9IQ0ViNUEzUXpyREJRd2NOSER4cXdJQjdBL3p2Q1F5NFoyalF2U09HalJ3Qlo3a0ZqeGcrSU5qUEw5Z2YKQ01uZjMyK1FaRUFnSEhzYmZLLy9zQW4zalpnV2R2L3k2ZU1VRDQvUFd4OTIyQkR6bW4zR0IwWHpMMjZkYzIzL2pCc3ZMYm41L0FKUAo1YXcvYko0NUp3UXErOTU3Um9CdnVtRCtyTzh2ZmZQbEZVL0s5bk5CK3RyeE5Cdy9pc0pQUnBDdG9VempWUHo0Q2t1V0VwVWF6VEtNClNBUEJ5WFNDeXFCNmhDVzZ3cEdaQWkwRDRTa3BPQ2JRRFBpamlNbE01blNMS1JreHBzb00wZzA2MVZUTHZqajhXQlRaQUVQVVJ1UFYKa1VROVVFczRBVGM4NkpWSldGMDRCcWNFaWFzQmp6ZFdobUMxazRqNkNaYmFTWmFhS0xJUktBUk9PeWRhUkFBQjk4RGdUU0FUaUlZSgpkRXVJdFMyQ2I0Mnl0UzNuZG1odHZNdXB5SVBqWDVaQ08xNW9OOFBkTVBvQUNPaEhCQkFjQXVQTXZRQ1VSTmpuc1ljZ2dMaldLSzRECi9GQkJBQWx0c1h5YnowQSsvZlFCa0hlemMrOHlOM0hVL3FYNEMycWJ3NTJMWkR0SnQ1c3B6cmRzY1poN0FRakVOd2UrWHdDVnV0Z0MKQjkwVFFBSkxBZ0JST0Z6N3h6ditwUU1Bd2pDdEJUVllVTVFISUoxSmN6dUFhc0J6RzRwVlJWaU9Bd0JGb3BYempadFc2U3dwT3JYWApRT0tHR01vZUFJSzl6REFpZ0NZUTBFRGpzTU1pZlVJSklKdGJVNzFBUXBrdUFQVTBFQndVdzRHOHFpZFk0SXgzNzNMUGRaUE1kYUdtCitqQzBWa3c0L0NHQWdWdSs0ZlVBUU9EMWppV09QbXJLVFViMFVwTk1EZ0hVdS96ekh3WFFvanlUTCtDUHhJZ0xCZm1taVluRFliNE8KSVIrREhzeFdaRGkwNE5JQkFDamZKUUlJQXdES3owZkxjb210ZHJTd2lOMnJNYjgxWGZiK05PTTdNL0YvekxLOE94c1ZHU1FheURjVwoxalZEdnNkcCtLdDVqTWlnbmhqcWtoQXdoemM5SmRRTFE3OFJSbjNIcys1VTVvSFE2WkZ2NWxsOTZUblVkWmRocjE0OXpyOVJQeUpvCitrM2ZlL3J1LzY4QnFKZUJmamVBRm5NK0FQbjBJd0xvNnNNMlgva0h6bjUvMHRYNXRCdjJQai9qN256TzNia3FHM3owUEpNRjlmT1UKemJPTXU3UzgrRUhUOFhGVWF4eHpLZ0x0bUVvMFRHVE9oWk1kTWYwQlNLWlBwSEJsRVdzcEY2Z0twM1Y3Tmc4QXRDY1hib2poaXc5QQpJRnU4NjBGdkVpZ1JRQzdHSk5aWGdIWFUzUUJTZFpkL1ZFaGF1aVpUajhoa0d0V1RHUWhSZHVpUFgvMzh3WS9YdnZSMHQrajJ5VFd2ClpYN3B6alhZNi91engvTjk3L3QxNThhTkcxOS84OFhKMC9XYnQ3cFFNa05qV0llUlVwSlIwYXlHb25Vc2JXSUl1RytSMlpoUlhYMEkKZk52dE8zY01rdmdQSHhvUUZEZ3lkUFNRaHlJazg4Wkk0c1pKcG8wZDNtOWlKd1pOZVdESTFMR0RJc2NNakw4L2VONzRnTmxSby8wQwpIZ2dLR2p4aStKQUFQOG5wamhNL2VqejY0cHduRE1tWnBsU1ZOakhKckhxVUkrYmF5Q2RaOHAwdnp2LzA4L2VUNTA0WjZEOXN3TkQ3Ci9Qd0d6QWdkUEd2OGdLZ3gvbkVodzJhTUQ1Z3lmbkMvaVo4WVBIbGNRTnlZd0xBeGd5ZUgrTTJMR0JneGJxZ2s2TjdnWVArZ3dJQloKTTJhRGY4dnJmM28xV1pXY2FwQ2xtdlJMV1h3cFR5d1NpQVUyWXJHQVAySzFQRW1abnNZTmEzRHBjeGJOVXhiNklYVHpUT3BZTEhzeQppbjAxa25sdE1uYzZnWDhGQUdnMjNXVElldUdsalVXVm0zS09ieW5xQ3lCd0xGYUFHaXBLbXJhVjFHNHRQcnlwb09YUVM1NWZmZ0JtCitQaWo5eTZjLy9qekM1K2N2L0R4WitjL3V2RDVKK2U5K2ZienozNzg0cFB2dnZyaXdyZVh2L2poeDhzL1hMd0svdnZEUDY5ZXVmenoKVDVjdVgvNzY4cVV2TDEzOC9Lc3ZQdjdpMC9jdmZQenVYLzd4ajFmZi9FTmphOHZlL1MvbkZlU2F6UHJWcTFiT256Y3paRUxjL2ZlRwpCZmdIZHkwMU1FQUN2QU5Ybmh3WU5Ed29lTlNJa2NPQ0E0Y0VCd3dkNVI4MGFtREFDSW4vMEtGK1FVRisvb01HRGZRTDhnOFlFVEQ0CjNzQWhEd3dOWGhRK2FNWDBRTzJ5Mk95MEdlVllqSEpGcEo5a3FHVGttTUFoUVpMZ2U5cFB3ZkhaL0piM3gyajNSRHRQajdPOUV1bXEKaWJHM1JqaGJKN25hWjlvYTFyS0ZHS3V5TXlwQmtJSFliSEs3WGVIb2tTd0I3bllPNHJhcFFiTHRHakZ1bTlZaDZEbFdhNlZVTENrbgpLYldCTkVveGJDNWZOMTFvbmV3NE05bCticXJ0eEF5K1pScmZNb1ZyVCtEYWVpV2ViZlhXVjVyanJVMEpYTXRrdmpXV2dXTkpNWENqCnpLWm9waTJXN1lobXV5YTloek1ud3VpTzhWanpPTEpqQXRFRXp1VWhaSDBvM1J6S3RrWnlMZkcyeHZWY0htckhzbDJLUEpjV25Ib0sKd1luR1lYSTd3V25JTEtZbmdOeUMwUWNnbG9INklXakVRdW1OdUc0MWtUdUxQeFlOeE1NMVFnYnhiZkZjZlJSNGJFSkxETjhNRXMwMQpSY09KWUkwZ2tkYUdXOE5oM2s4am1IcHhLUnc0T1IrcmU5aGFqamhJaHhOMXVhbWlYTHdpQzA0RUV3RlVsc2VJQU9wdWYvNFZBR1h6ClVEOGlnQWpjUkdKdzVwZW9IeHpYV0RCTlR3RHB6UVlmZ05hWStHbVd2ZUZvVlNqMFJsVWtkZ3lnTXh5cm5tMnFlRnJISldrMXljQkEKQmxVYUl2ZnVpZ3AzaHBjYk5TS0FZQyt6Q0tDSjFCRVF3S0JRNHRnazhqaElULzFFc3JEakJ4cUlQdG9Ob0dxZ240bGs1VVJVSFBtcQptbUNxRWZVanBsLzlnTVJpRFFCQWNmamhSODA1eVloV1pvUUFVbHJnS0Zndi9ZajVUd1BJZCtPQ0hLU2JRYkFhSkhZRjNSb1hBemJ5ClNtaXBXNWx1MC9HQ1dRUlFzWGNtUEFCUVFSNit1WURlTHBpTGkram5LZnlWaFlyM3B1bmZubTcrK3l3ek1CQUlNTkNIczZHQlBwbDkKcXhUa2sxQy9wMlJ4ZEV5TXJ6TFVxejdVRXlqL2NnQm9lbjNhYis0Q25Wdmk2VzQwN3NzUk1iMU5NNVBvUDMzbzgzOFpRRUEvSW9CKwpYQUlCOVBPRHRpc1BDU0tBT2greDNYelUzcm5NZWZPcHJNNlZVRCtlWnlGOU9ydktQeTZvbnljRnp6TCtqNnZLd3NsNmNCVTdsVG9UCmhwNmNTdFQ1QUxUQUFnR1Vwb2NBU2pHbVNBMHBHZm9ObUVXV3o1aktCSEtiZzZsd3cxMVJBWUQ2clFDQmxEblp6WFptbzBDVjhtUVIKaDJjelpvSFVXM0dOM3BTcE5zTEJMd0NncnJFd0pFMnRUMVdhVjJ1UnRWS0Q1Z2xEWG1UaXhrV1c0NC9nTmN0dEhhdUxHa0RXRkRldQpMV2tDQVFmaUxTa0ZyY21GSGFrRkhabjV6ZHFjdzRTN0xDc3JxOGhsemM3bHhiaHp1S3hzMXVXMk9yTVloNHVtYWRKczBRSjI2RTJKCkZpS1paTk5ZbTRKM2FGaEJ5M0lHQVZ5NTBnYU8wZUFvckFCMWRuYVdsMWY0U1FZQnU0d1lQVFpveUFqL2daS0FJY0dTNFNNRDd2QS8KLzRBaHd3WVBEUjdpSHhnMFlGamc0Q0FKWFBRNWFPU1kwY09EQXdMOUhyaDN4QmVmbmYveTZwVmtubnpXbUE0QnBFdGRxODFjeGhJTAplZnhScy9aZ2JhWEhjeDI4NXd5V1NJWUhEeDBKMTJXVURBMlFTUHdDQmcyOVo2Q2YvK0RCUWYwR25QSUQvWVlNR1RSODhPQlI0R0VNCjlqYkVCQVdQQVFEeUh6Und6cXk1WWc5UW1qWU52QjJETjhDbG5PVkIzdndJWjF6RzZsZFMyaldZS3RrRTM2elRrY1FVZmZvNkhiTGMKV0xBSU96S0RPUnZQdmhuTEFnQ2RUUkJlQndDYXlyU2xPQTdzTE4xVXZ5bnI2Sllpb0ovR2JVVzlBTlFJZTZJTDY4cmh4NnJOZWNmSwppbmZtdVE3dTNOcHc5UERwOXBiVEhhMGdKenBhMnRxYjJqcWFXMDQwTjdVM25tcUZOemFlZXVQbGM1L3VmdjJyUTMvNDVPaWJIKzUvCjQ3T2piMzV5NUkyUGp2M2hrOW8vWDJqNDYrY2dqWDg1My9UWEMzOTQ3L3hIMy94NDhjcU5YMjU0NE9hcmtMNC9lVHAvL09iYnovNysKenArYlcrb09IdHI3OHNzdmI5cTB4YUEzcjF5eGV1cUNHV01peGt1RytrdkVRVlEvOEtvQ0dRV01IQm80UE1oL1pIRGdxTkZEaG84SwpIRHhpNEtBUkF3Skd3MFd6Qi9yZk8zRFFLRUNvNFVNa1EvMEdCQWVORzMxZnlLQUEvK0xONVlEYSs5LzhJa1QvVWlSZEg4OVVod0pQCjJHc2krTllKOXRZeHpoTnhmTk16YkNuQzZqaXJYaEJVTnB2YWJ0YzRiQnFuWFF1U1pkTzZCSENzQjNIWWRHTEFjWllUY2J1TStVNVQKanNPN2tyTFZZS00xVnRwZ0puRUZSZ1B1eE5yT1JEcmZCSW0xdnpMWmRuS0swSkVnbklqamJndkFqWmc0RHE2dkU4dTJ4UWtkTVZ4SApsTFV0d3RvV1JyZkVzSERSWjFFL1lUUzRFVTU5Q0NYYnhsTW52QUNxQ2FVYVFzQTkyZVlFcm1ZT2YxVE5zNnpka090UzVyb1E4TUNLCjdDWXZnTEE3QWNqRm0xeTh4Y2FhV0xnSkJ1SUZFSUlRdXBYa3B1bDhEUUFRZEkrdERTU0Jid0FBOHRHblYwUUp3WGhyUWhGMFl6alYKRUViV2grQW43NlBhSjVGVks1aGlxOHVjN3pZVnVPaU4yWEFwb044Rm9JMVpYRThBT1hsS0JCQ0c2WEhjcXg5U2l4RmRBREpaREQwQgpwTERvZkFDS3dDcTk5YlpxQUtCSmVEWElkUE1Mait2Y0c3VGFEVG9OQUZBcW9oUUJKRGVxUkFCMTZVY0VrQy9oMURFUTcrVDI0M0JQClUydVZtQWkrS296MUdxZ2JRQlBKNmdrRWRJOXZ5Wjh1K2xpOEhkQjNCVkE4Y2VSUnN5c1ZVY3VNbVY0QUtmL1RBUElheU96TG9qeUwKbU50SHhNdzlETlN6TndneVNLd1BMY3BTcGRzTVBHL0pkZUkrQUpWa0V5QWI4OEcxT0xveEQ5L21wQnFmVXI0elRmUFg2YWEzWjVxQQpnZDZaQ1Jra0draGtrRmdLK213MnJBYjVHb044Nlh0dTdsc1p1bnY2S3VkWGZkTXZkUHFtTDNwNnBxOUMraUxtdHZTbHovODRnSG8rCnovOENnTDVkQkFGMHFSdEFRRCsvUEdpNytxQnc3U0ViMEk4SDZPY3g3K0tIM3NFdnFCOHZnRVQ5ZEQ3dGhQcDVncis1ak51ZXV2dCsKYStNRXBtTUtmaWFNYUU4Z0cwTG9NejRBclRKQUFLVjBBeWhkdjhGb3luQlRoaTA4VVc2bnQyV3hRRHplZFlCdWpZTGROZ1RtWkxjNApySnZndHZBUVFMbFdpNE5DZUVKbk1zdDBSamptQmZXRFpvb0EwaGpTZEhpS1VyTXVXWTA4WW5sK0tubHFncVkxek5BeFh0TThUbE1qClpxeTZHc1QzNmIycXl2dlVWV00wVmFHS3ZWTXlTeDVPdFNRbXJsY21QcEV1ZnhZa1EvRmNwbktWVkxVYWZCUWpsU2NxMWNsYVF3ckYKS3F5QzNHcVRVbHc2NTVCYkJiV1Yxd21jaWFFMERLMUN6ZElxYndXb1lzYzJ5UURKa0tHU0llQXNPQlRPUVFzZUhoQTRmQkJjbTdlLwpqQm8yR3M3UER4bzRZcGpmUGNPSGpCb3ljRVNnWlBqUWdjTURBOEdwZDliMEJNKzFHMzgrLyttVGlIS0RTWnBoU0pick0xZXBNcDVpCkxBL1J5SlBhOU53OGw2ZnpXbTE3ZllEL2dDRHdUWWNHREIwU0NLZS9qUXdLQ2g0T3p0RERnZ2YzbTVIRDRYbDZlSUJmY0ZBZzRCbzQKbzQ4TURCZzllT2lJRVhEZFJYRUk3SzIzLzVTdVN4Y3JRQTl4NXNkWjR3cGF1eFpYcGxwa1VpUkRxYy9RNkRKa3VqU3BPaVZWTFYragpGUjYzdkRDZmFwM0dua3ZnWHdFQWl1ZGZpMlZmbVd3OXRkSld1YTFrUy9OR1cyVlo4WjBBMUx4elMrUDJVZ0NneWkxNXRUczM3ZDljCnVObkJGd3Fza3lZRkVtTkpsQ2JNS0lhWU1RT0M2clZtalFwRjAxSHo0MlpYaEg3dmFGM3QvZHJERDJnT2pWRFVEWkh1Qzh4NGVaajAKNWRIcVEvZnJqNHd4d0l3ekhwdGtxazJnVzZkYlcyWmI2eDl6ZDZ6YitJcDY5MzlaajM5eThOeGZUNzMvNWZ1WHIzL1hDVXVEd0VhZApONjk0T3E5Y3YzTDVxeTgrL2NQcloydU9IZHBTVW1EV2ExYXZmR3JKbkZsalFoOFlNaXBvb0Q5Y2lCSllKMkNBWk9nZ1NYQ0FKSGl3ClpOVFErMGFQdkdmb01NazlJd2VESjNQOHlDR0JFc25EaStkN3JsNTY1M3ZQWEtGeEFsWWZ4WFZNQXFTd3RzUXo3UW5VMldqcnFURCsKeEV4cjNWcW1BTFhLN05aTWdkZmFCQjJJM2FaMzJneGlISUxlWVRlS3Nkc1FNVTZIeVFWSTRURG1PbEczZzNEYkxHNE9zVnVOR0lHcQpVWElCVnptRGI0aTFuWXF5bjR1em41NW03NWhxYXdjQkRCSXptVy92bVNsQ1Z6VW9sbXYxRG1LMngvTHQwV3dyNEE0SUhQbWk0TTVmCmNNOHZISGIvaktmYndUOEhBb2h1RG1GUFJIQ05zOW1EeTdoZHBHQUJZaXR3YUxKZFp1Q2VJanNDQWc3dU5BUUc5T1BnTGVCQ3dyc0UKSWdRUU9Ic2FjTzB5Y3Z0a3JnRUFLRUdvamJLMVJOaUJ6QnJ1cEorZUFPcldEMHdZMlJCaGFiM1AyajZhUERXTDJLOTNXdk95alBsMgpNdGVOaWdEYW5FUGRXZ3JvMXdCVTZHVHk3RXhQQUpHRVdRUVEwSThQUU9CSDFOeWpBcVExcW4wQW1vN3VFd0VVaWRYRllFZkRpS29RCnNtNHl1dThoWGVrNnJXNjlEbHhtcVFHQXhGR3diZ0I1bDNJV0FSUUtKN2ZEVExJZWk0VHoyMkdpckZBLzBXeTFtQ2dia0xXM0R0UTEKL2dVQk5CNnZIRytzRmFkOWhacHVBU2pjVWgrRzFuZ3JVVEFSZUowdnNXaFRPQUFRZVdpWkpRczhKaGw0NXpWRDRzZ3RtVDBOMUswZgoyYityQ2JvWGdHN0YyeFBkWFEyQ3R5eklzY3pQTnM5M3c0L2RETG9sb1VWWjZsUUI0UVFSUUpnSW9HSTNYdWFpTnVhUjVkbm8xaXp6CmxqenFVSkxtYjFOVi96WGQ4TGRaL1J2b2s5bmRwYURaUFJqay9lZ3JDNGw5UXIyNmhYckcxem4wMjNOSDVjeWplK2FydVZSWDVzR0IKT1pCZU04bjdhcVBmOUJWTTcvU2x6LzhHZ0h4UDcrOEZFTkNQRDBDWEYzTnc4QXVXZit4ZUFQRzNBUFNrQXdEb3ByZjhBejRDL2R4NAp4blZ6aGRQemxBTUM2RW5oeXBPTVdyMS9qTFVseEhvMkhqMDNpV3FPb2VDQ1FCRkVSeXpSSDRDUVJJTXAzWWxyTjdIWVZoc2xBbWhQCnR1MkZQRGdadmkrQXRyaTZBTFJSb0lwWlBJOUZYWXpKUmhsd1ZJbVlwQ0tBRkJnRWtOcVlya2N5cE5wMGpWYWFxcVBtcUxjbFdGOFoKWnprQlRpcWhlRU1vMVJGQ3RrOGs0SXdWTWVCVGVDUFJLaDVFRWJXenpEdWYwbk15VFRxbVdhRTNwZXVNYVdLMFNDcUl4cEFDZ3lRWgpMR2w2YzZxWmtGcklUTWFtcElRTTFpbWxCWVdWMXdnMkU4OGFPRlpyTW1jZVBiYnZSdWZOalJ1Zmh4dGdTU1QrZ0VHREFnZEovT0ZTCmZnTWwvcEtBZmhNZ2dTZlRBRC9ZdER0SU1tQWd2SEVRK0JJUVNkQ0ExYXRXM1B6bGF1MGZYbHVtbDZkWmxLbmFEV2s2NlZxOS9HbE0KczV4UXJOVW1rNGpxKzgvUGYvMzlkMlBHVHZRZkxCbmtOMkN3ZitBZ2Iyc3dYRDg2UUJMazMzOEdCOERlNGVCQmtrQS9PT0lESDUrZgpaTmdBV09rQVg3aGswZEp2di8zMnpiZGV6OUJuSk9zeVU0eTZSeW5zS2R5OHhxd0hIcEpyTTVTYU5MazJUYWJMU05OcU0xUVo2Y3EwCjlXclRjbVRqUXFKcXV2VmtISDk2Q25zNmpqOFhhejB6bVQzM09GOWZWbHpXVnNwVWw5MmxBbFRjdEdNek1GQk5lZUhoMHB6OXBia3YKRk9Wc2N6czJ1NTJGRGo3UHpycnRWa0VnV1lHZ0JSeGp6VHlEWUt4aExaMDFHVDA2QmoweEFXdWNhR2w0QURrelhOY3dSRlV6VkYwOQpHcW0vMzlKOG43bGhqTGxoSE5vMG1tZ2FqVFdPUXV2dnRkUStnTlhlYno1MnJ3RXVLWGUvcmlZY2JaaHViWGdzdTFHNnJjTjI3TTJLClUrOGMvYS96Zi92b3kzOWV1bjc1UnRlYVIrTENTMWQvdVhMKzA0dHZ2UGJYQXdlcVhkbEZjbzF4MmNvMXNUUG1qaHczWWZpOVFEdXcKcTM1UWtKL0VmNmpFYjlqQXdJQ0JnLzBhYXlxdjNQRG90NTk1UUhjc2dqMDFpVDB6aGo0VHliVENJaEI5TXBSdG5jZzNUV09Qcm1JYwpDSmRHODJtY29PRnRXaEM3VGVjTHJQb0kwRU11TzlMbElXL0FNZENHMjJYTXliTEFuUjlzK216ZVlMV2F6U1QrQlB2Q1l1N1FOS0VoCjJ0NFJiVHNKRW1rL0hXWTdHeUdjRVJQT24rNFo4TmpDT1BEd1RvWmF2ZUZPZ1V4a1RvVUM5ekFuWU9NejJRWUNudWR4bG5yNGtXZ1oKajlWTXdHc25NTzNqdVpNeFhOM0Q3QXZKY0xZNFVnQUFaRGRrT1FtUVlxZWh5S0h2RjBDaWdVUUE4YXhKQkJCS0cwMFVCTkFqMUo0NApIblpWSndqVkVmYVc4RzRBeGZDTnZrUURJWFVubklVSnM5WlBvc0h2ZmxkQ2lNWkl0RGFFYkh1QU9obE5WcTFtUyt4T29zaHR6blpiCllCZnNmdzlBTm80U0FZUVJ0d0JrL25VQUhRTzY2QUlRZVh3aVZSZVBIbG1zcjFpck5RQUFiZEJyVXhGMUR3Q3B2QUNpcTNvQ0NPZ24KakQwZXhSN3owZ2NtbW9VQWl1RnFZQncxa1VKMUdBdWJnY1Fsb1NHQXNHb2ZnQ2FaRzBRREFmMUVvQTM5QWlpU3FCY0JOSmtBQUhLbQpJdkplQVBKTmh2OVBBTWlYT3dISVd4Q0NBSUxKUnFHQjNKWmVCbHJvVW5rQmhBRUE1ZlVBVUlXRGdxVy9QR3k3emJDbGtObWpNUHgxCml2elAwdzEvblduMEdVZ0VFT3dIbW9XS0FPcHJJRjk4VFVKZEJ1cFRIT3A1MnU0YkgxeDZwYmQ3dWlzNi9ldG5iaitMNk54ZE5yOVAKUDdQLzF3RFU5NW5zeW44RFFPTDRWemVBdUJzK0FEMXVBd0M2dWVJV2dJQis0RXo0cHgyZHkrM2VDcER3NDNKeW1mSHdCR3R6S1B0cQpqT1ZjR05NWVNaOElaMjREVUxvWFFLbUlkd2pNbUtRM3B0bHhUUW1Md2xHdzJ3RWtHdWkyQ2xBV0J3QzB1YnNOQ0FESVRac2NGRUpoCmFwTlpCdHVBMEV3bExnVWZOYVlNZ3pFelE3OUdoeVNtNm8wTGtlM1JCSGdrcjBaUko2TEl4bWk4SFNRS2EvTkZ2Q1hTM0JLQm5nekQKejBTaXJkT1JsNS9RdWpPVkdvdHlIZmpieElXRjROcENwZ3l0T1ZObmtjS1kxeU5vS2pBUWFkWFNuSjV6NkFndWpYVm1XdTBRUUN4bgpZQmtkeDZyTkZ1bXg0L3ZCYWZLakR6N2NkL0NGWTFYN0RoOTk0ZkRoZ3dlUDFGVlhWeDQ1c1B2STRmMzlCblpoSDN2cHBjTzc5aDNlCnUvL0k4YjFIbXc4Y2FUeDBjSC9WZ1lNdkh0M2IwZDdrdWVuWjNWejNrREl0QlpHbTZSS1ROTkpraS9aSlErWXplRWFHTGttYitOeWYKVHJTQk0vUWZYLzFyUStXaEUzVXRqZFVubWhwcm0rdnJXcHJPVk5iWE50WTM5WnVheHZiYTJ0YjZtdGJHaHRicTFyWWo3ZTFWcmZYTgpqVWRhV21yQUg3YzB0WUx6L2FsWFRxUnAwOUlRT2Jnd2ZaeGduckZnaVFaRXBsRXBWVktGR2p6ejBoU0RiSU9XU05Wb01sVHBpV3JkCmNrUCtJdnp3Rkd0N2pIQjZNbnNpamowYmI0V2RRQThKVFZ1S3RuU1VrZ0EzZHdKUVE4VkdBS0RqbTNNYmRwUWUzMUt3cnlUbndPYmkKM2ZrNTVia3V1QVNMazh0M3NWa08ydTZrZUJkbHRlTnVobUVGS3BVdm5zazBoRmhmQ1FQblA3cHFQTlkyMXR4Mm42SHBma1BEZUVzegpPR0dIRVMxd0V5dTZKWTV1Qm1lZGFLb3BubTJMcEZyQ3lhNmwvTUJwTW94cEVodCtKNWhxeHV1ckorcHJ3czJORVV6MURHZlRvd1V0CjBwM251RU52YktsL3EvNVBuNzN4NFhlZmYvUE5wWjkvdnVicDlLb0lMZ1Q1MDgvZmYvYnBCeWZmZUhQLzRXTTVyaXg1Y3RyVER5OVAKaUo0OGV2Um9QYUs1Y2Qzendocy9SZXIyVGFZYXcvbHpFNWt6TWRiMk9PNUVxSEFpMG5vMmdqc1JLYlROc2RZbDBpV29GZUd0RnRhbQo0dXhxM3FZVzdCb1FlM2V5T0hXMm9NMjE2MEhBZ1p1SHQ0QzRiREtYUyt0Mkkza3ViWkZUVmVpRXEvOWI3YVNhejAwVU5qOWhlM20rCmNIeW1yVzZxclNITzFocGxhNThzTkl0SjRKdDZKcFpwVE9CYUVyaTJHTFlGVGlsbldxTG81bkNxRVY3YnNLY0JnOFpqemVEaW9XdmoKZDd4cFBONElXMHJ3MnZGTXgzaitUQnhiczV6Ym9iSmw1L0ZJaWFBckJMS3hVeUtBUUFDQTdqUU5IZ0RJenBtOUFETENMY0JFQUdINgpCK205Y1h5YkNLQklSMnVFbzkwTG9NWllvVW1NQ0tBb3RsNE1vQS9VRDFNWFN0V0hrTjRRalNEUnhMRm9yQVg4QUlSUjFROWlMeElPCjI4WUNiYjRYUUNVNStHOEgwQ1kzM3krQTBCNEFRdUdpWmRvN0FXaXRXUUFBaWlTT2lnQ0t4WStGVVpYajZicFk3T2dDL1M0QW9MVmEKSFFCUWNnOEFLUUNBUXBtamNFbEQ2a2dZZlJURXU2MHByUHBFMDVVeFRGV3N0Um9FUFB1K1JMSlZzYmE2V0Z0dGhCWHc2a2dJZFh3QwpVVFhXVWduUWM2djJjNGRocjU2QmI1cDQweXpzcFpWR1d6cWlrcG5sbVNpY0JlYXJBS2x4dVFhVHExR1p4aXdGVVpoVkt2aHZWaU9FCnprekNwWnhJV2svQnhpNDliVFVBQXpHYzNnc2dEY2txQ2FzQ296SU5WcW1lbFdwSm1RaWcrZG1HQmJsbzc4S1BONko0N2g3dm9OaXQKVXRBaUo3cVcxMU9DRWRDbjFJNFZPSWdTRjdFeEM3SjNoNTNJTDZZcXNyRE5XYVlYV09MMTJZclhwaUYvbTJFRUFRQUNFWXRBNzg1RwozKzJlR3VhYklDYm00N2x3WEt3bmlTNzRNcGZwTjEvTXRmNnU5QVhOM2ROWEZXSnVQYkRmbHI2VTZadlBaeEcvSzdkOTdlMWppSGZ5Cm9pODlDMndYNW5mbDh3Vk16d0QwK0NJeVNGei9VTnpRVFZ3Q0VlcG5FUWYwODhNaVdBSDZlYWx3WmFudDZvTjJvSitiRHdzM0hyRjUKMjU5aCthZXJBV2lGL1ljMUJaNFZEczhUOU04cnM2NnVjSHFXa1RjZUoxclhiSTJtamsxZ1hrc2dUa3kwTnNSVHIwMGd6MFRCOTUyTwpDTEp4RHJyck9RUkxNeVNsR2hQVGpDbHlRMHFhS1VtQkpGTzRzcGhEWVIrMG5kbnA1bmZrMlhibk9zWDRsa1BjNmJidHlCSzJ1cmd5Cko3dkpScGNJWkRGUEZGalJITWJzcHVCY01BdXFBQzRScDRNQm1nQVBvVWFaVHF2UWFxWHI5UFFzeTZGUS9JOFIrQjlpaUk1SXVqRWMKYjR2RTI2S0lkbTlhUWFKeG1GaHpNM2hEQko5R2tNMlQ4ZU1QSVZ0UzFBUWlTemZwTmlDR1pMMFJ6dHRYbVZJQmczU0dkSU1oVTYrWAowaGExaXpBVWMrWWlGbkhSQ29HVFcvbE1tMU50NVdVMmg1Ymw0VmdZUmlwejh0aDMzbjN6eXRYTE56dXZlQmNLdXQ0SmMxUE1GYysxCmE1NXJOenF2M3V5ODZnSHhycW5jNmJuMms4ZGJYb0IxaGs3NE9XemZ2dW01ZXNWekU5em41aThlejErK09xOTJNcXYwNmFtVzlBM2EKTmNsNitScDVZcG9tVWFsWWJaU3ROYVN2eTNhd0gxLzRTS3hSaU90RVgrMk85L2o2TmMvMTY1NXIzdjd2Njc3bG5MdVhib1pmNTRzSApMdXpjNmIzRGxYYy8rOUNSSjZoMEtXa0c1WE1XNnlKOHp4SjA1NU9tNGtRdHBwTW5HUlNybE5xVVpFUUxPemU5U2RabzFtbnhaYWFTCk9WUnROUCtIYU82VmVTdzR5NzRTeWI2eGdUdXdiOVBtdXRLYyt2Sk5UZVZGemR1S3hRbndMZHMzTmxlVU5tNkhxZDhHVTF1K3NicTgKOU9qVzB2MmJDL2NVNSs0cWNGZmt1TGE0N2NWdWU2NWJjR1N4bkpObTdMVFZ3VGhZRys4MHBOdXlaOU4xSVN6NFVld0lKZG9uVXZYMwptWnZ1TVRiY1k2eDdBRzBhUjdTT0o5c21VRzBUNlhad0NnLzF6bUFLWTA3QUhSdTZFOG0yZzBSNFcxN0NtZFl3Y0tiMFppSlJGNExWCmpqZFhqVFVlSDRNY0cyczROdDVZT2NGVU5aZXBmTXpWbUZqYVFiNzBlbG5qMjVXdmYvTGErMTkvK00zVkgzNjVEbC95cnFmeCtzVnYKdnJqdzZYdlhmL24yNUVYUG84NkdTWGh6R1A5cURBdGMyQmJMdEFCU1JITm5ZL20yQ09GTXBQRG1RcllxbGJXam5JS3lhY1FlSUxITApSNHhMZ01teWlUR0lBYmM0T1FPSWc5TTZlYTNUcnM1MmEzTnlrSUljWTJFV1VtTFhGOXNNT1N6QzA2aVo0ak9ab21mWlhVdTRBelBaClkvT3N4MmRacTZkYTYrT3NyZEhXRXpIc3lWanVWQngzS3BKdkFvbmdHc081UnFESkVMWStoRzBFbVVDZEFBRlBJM2d5eCtJdFkvRm0KTVE4UUxmZFJKKzVsVGs2MHRzM2lqejNMbCtsNW00M3ZXdkRRMS9IVDNmUURiN2sxK0dVM3U3MmJ3R2NKWmhkcmRySVkrQTJ5Y0hxQwp0TENZeGtTb2t5bmJWT0g0RkZ0VnZLMHV6dFlZYld1S3NyVkVleFBGdDRGRWNxMFJiRXU0dFJuaWxRWkthNFM5Mk4yRm56RHlWaUtvCnVoQ3FLWXFvRGFmZytrQ0pmRW1ldzFDWWJSWUJ0REdYMnBRSDI0QzhET0s2MWtLRXNZbXJJSW9yUVlOc3pPS0tIVXllQUh1QTRJYncKM21ud0xJM2hoQW1HaEF4Q0NaMElJQk9xMTJCNm5VbXJNUnFVSnFQS3JGYVkxQ3ZOV2JQUXZXRkVWWVEza1hoVkZINDhCanNlaThJOApabkN2MTRLcmk5UjB2VFRScEUwendxM2dwWWhlRWtJZkFSSDE0d01RQ05CUHZ3Q0tacXRGQUVXeWxiQnQ2TmNBMUpjK2tVUURTQlI0Cmwrd0NFSitKS1BvQ1NBVU1oTUtvTEZLMUtSTUFTR2xSYXpGTlR3QjVEZFEvZ0hCYWlyQXlINEFldDZsRUFQVlQrL2x0OFg2aGQxRE0KeTZERkxteU4wQStBTnVVUUZTNnlLSi9hNnNaS3M0dzdCZkxFWTlvM0orditNdU9XZ1h3TjBUMm5odlV5a0FpZ3ZnWTZQNGZ1TjMySgpjL2YwSmM3ZDA1YysvMzhCNkU3NWR3RkkxRS9YK05jU3ZodEFnZzlBbmQ2bG43c0JsT1ZaYWJ2MlRMNEh0djVZcnoyZGZlTnBoK2RKCjNQTVFVWjc4UFBnZG5raS9Ga08waFRKMThjUzU4ZFFaQUE0dmdKcHZCMUNxQ0NDNUlZbkVGSVdzWlN0UC9pcUF5cjF0UUp2dFRLbU4KQWdBcVpMRTgycHhObThBN0kyWlI2SXh3SVVSZ0lDMHFSU3d5czBXdVF0T2xpUHhwZ3kzZWNuQWNkV1lpM1JGT05Fd2lHa1BKMHlBaAp4S2tRNGd6SVJQeTBtSERpOUNUaTdFVHlIUGlqR0xSbUNiSTVWWTJnc2pWNlE3TEJsS3BEMDdSb2hzWUNpMEI2SkFNeFpuS1l6azJiCndjUFliTU5MZUZNV3BiQnpjbGFRMjJ4S2pwUFpuVHJlcG5XNkxLeUFnUHR6Z2xtd1VWbHVQci9BWFZTY1c3cTVzR3pieG9vZFc3ZnYKTEMvZnMyM2I3dklkdThxZjM3WHRoUmUyN2RsVHNlZkY3YnRmck5pMVovdnUzV1hnOXR5ZCs5SHQ3Y3J0YjJwMy9CRjkvbFh6enROSQpSYXRpMDVGa2Q5a2pHdjBxZ3pMZGxDRXpKaWFEOTBkZGFpYVNLbFdzTWFtVFRhcU0xTFFOY3FOR2xadWpMc2hURnhkb05oYnB0cFFpCld6ZVp0bTRHY1paa3UwcXpzMHF6czB0elFQSTJadWVYd2hTVjVZc3BLU3NRczZtc0VLUmtTMmx4Y1pZemkwRjVZb00wVWFwT1NqT28KbnpGYlo1Rkg1eEtIbHFMYlZ4a2NVcVZDclV5VTZUSVNqZnAwblNwRnAwelRLbE0xcXZWYTgzSmp3WHppU0lMMWJCVC95bXkySlY1NApKWnAvTTkyKzc4RG0wcnFON29hdEpmOENnRFpuMjR1eWJBQkFUaGNFa05WR3MzYkc3Z1dRek9hZXg5Uk1ZazkyQVloc3ZOL1NEQUEwCkdxbTkzOUw0MndIVU42S0hKbEhOb1dRVCtIRUNDU09iUUlaYlRvMUNUNDQyTnQycnJ4Nm5QeHFxUHhoak9qU0RxbDdBVmEzZjhvcHAKNzEvY05YL2Y5OXFGVSs5OTkrYUhYLzN4L1F2U3JhZmlUWWRpaExOUjl0ZGlyTzFUdWZiSjNNazR4eHMrQUlIbnh3c2dBZU1CZ05SZApUZENDMW1lZ3V3UEl6bXJzck5yR3d5cVJ5NlhQemtJSzNBZ3dVSGEyTVR2TGxPUEFjdXkwM2NiU0FvZHdqSW9sMXd2bHovSGJuK0QzCkxPVVB6T0dQVCtOcXAzQjFrN21HQkxvOW5tbVBvenBpeUpPUjVLbHc0bXdZZGpZVVB6c0o2d0FKUmR0QlF0QVdNYUZZNjBTMEpoeXYKbkVJZVhrSy9zSnJkcU9Yc2dvRG0yN3AyZmY5ZEFISlpJWUF3TDRDc3VNWklhcE1vNTFTaGFvcFFFeWZVQWYxRUNzMlJBcHhsQm9uRwp0dlNpajg4OXZmUVRUaldDUzdKSXVoNjhnbEZrSGZnVVhLZXQ1VGRtT2N6L2l3QUtKNnNqdllraXFxT0p5bGk4TWc2RGVSakpYYWN6ClNiWHBQZ0RKRUMrQUpsS0hBWURFQ3BBNEg3NFhnSHJxcHd0QWZHMk1VQlBOVjBkWUs4T29TZ0NnY1doVkx3RGRxZndqNnFjYlFBMDkKQVNTdUE2UkE1ZDdKOEFvVjZvMUZyalRMRkNaWUFSSUJaQ1QxRmtyLzZ3Q2laQUJBNGhCWUNpVUZBRnFZYlZnSUFlUWQyTXF4TElUVgpvSjdwTFo2KzhYMHR5S0lzQ0NEU1ppeTBtNHU3QWJUWkJmZUJMM2RUbTdMSnplQW5JTXU0MVVWVXBwai9HQS9iZ0VRRGlRQVNtNEZBCnhEcFExNGhZRHdQNXhzVjhCdW9PMVc4K244UDhydlNsek4zVGx5bGkraExuN3VuN04vUktYOS84YW03NzhqN0V1WHYrWFFBUzlmUEQKSXJZSGdIZ2ZnRzQrSmdBQWVaYUxIZEF3MTUvaFBFL21lSjV5WEg5S3VQR2syL01VNjFsbXViNlV6bER2RzQrRGs4RnI4TnhBVjA4bQpUZ0YyaEJOTlBRQkU5QVVRYnBIbFdrMWJlRUlFa0hjcG9GOEJFT3dCOGdJb243SGtVaVk3YVFCdmppYXpETkJFTEFKcExIQ1VTazhuCkt5enFwNUhzS2VoaGNUWktOTGpndzlwaThHWVFjQTBEZnBFamNaZ0lyQlVrR20rTklFNkdFR2NuRUs5RW9ZMkxrYklramQ2a2VNNWcKU1FQUldsTFZSdGdBQkw0UlJXaDRCaW15WXBzRXFrd2d0OXFKSWhaeEVnbzdxNFRYNkE2MU9GdUh0U3BaVHVkMFlZeFZaMEF5REVhNQpHSzArVTZYTlZHb3k1S28wcVNJbFRaMmFwa3pPa0cyUUtaSlVxbFNOSmxXbFNaR3JrOVNLTlhMbHMrc1Y2K1puR01jbWx3WW1IUmlhCmZ1aGUrZDRReGU1b3pjNVlXZTRzS2YyMEVVOHk2MUsweVJtYWRldVVpZXMxaWVsSWNxWjZnMEtScU5aa3BxZ3luNUduenpBWlFLYVoKZGRNdDJwa2dKdlVjbzNxdVVmbDA1aXFRRmRMbm5zbDg3am5wcXVla3o2NlJQZ2VTcUhnbVNmbXNtRlRsY3lCcHFsVWdHYXAwcFRvcApLV05Wc2pvdFRadUJZT3AwSS9LTVNaakt0RTZsbTJZVFJ4OHpiZHlneGFRYWFZYjNuVHBESndOSjE4clROSW9rRGJKUzcxcGllV0VHClZSY2huSjBHaHpCZUJRWlNaNzE4ZEV0Ui9TYTREUFJ2QWRDUnNwSjltd3BlS01wNVBqOXJXN1p6azl0VzZPNE5JSUd6Q1E2anl1NVkKYkQwYWJvVUFnaXNVazgwaWdFWVphdTQxMVkvRld5WlE3VUEvdlFBVVptMzNBVWlzL1lDSTdvbmlPc1NFczIyM3dyVDZpa053d3ltcQpMWnhvQ2NPYncvQkdjVVVWY0JCalBCS05ISTVBam9UcURrL1VINDdDNjhIUDRVUmo1UlRUd1JpaUljRUZ4VE9aYlFmUFNTejR2dHlyCk1meTVPS0U5V2pnTEFMU1lyVXF6UWdBeHdtMEFFbk4zQU5tc2F0NnFaUmtkaU1EQysyZGxHZHc1cHR3Y2JYNjJ2c2hwMkdnM2JoVGcKc0ZTUlRWbGdsem50RnM2TzRqWndiNXVNejBybDhoSzV3ZzFjOFZQc3p1WE04MDh3dXg2bFgzeUlmSGt4dVc4QmNYQStmbWdSc1YvTQpRbnpmUXZ4bGtFWEVYcEJIcVYxUDArWEpUSkhXNnFCNXlta3o1OWlOZVE3RDd3V1Frek1DQUxHY3dRc2dNNDFyZEtSaEhabVR3TlhFCmM3VXhmQ053VDdnWWEzTzR0VGQ2dWthN3Vzcy9QdnFJK3ZFQ0NCNUgwN1hnSThEUUNyWUMvUHdVM0E0Z2NTN1luUUJVbG11N0M0QXcKM0FoRDZEQ3ZmbjRWUUtKK2VnSkl6QkpqOFdvZG5xN0pTRFhJa293QVFDb1pvcFFaRFpJSjVDRmdvSjRBaXFCaDdnUWdieWNRTUZDTgphS0J3dWlxVXFCeVB3d3FRci9mNVRnRHk2UWNrR21zQ1A4U3owVDNQOUFDUXNodEEzbzRmR0lWWkpqZEo0Und4ay9MM0FZaVJpd0RTCkV0SlVRcmFNVnkxeUd4Ym4zQUpRSHdQMTVrNS91WFgvUlc1OHRVMVBDRWd2QUcxMW9XVzVOSEJQYVM1UjVEWnV5aUZlUXNuWHA4dmUKbXFZWERTU09nb241K3d5VHJ4UWtHa2hra0RoQnJKZUU3ZzZndmpVaE1SZG0zeUY5YVBJL2s3N2krVy9xNS9QL1F3QmlmUUQ2WlFrSApBSFI5cVFEMDAva0lEN3QvdWdEa3ZMbkNtNVdzNTRrc3VCdjhrL1lyNE9OeXl2TW8rdEdqemlsNDdSajhaQ1QrMmtUR0N5RHk1SGptCmRCZ0IyNHE5QU5vdFRvUDNBU2pEbUNUVEo1cU5HVm0wb1ZUQXkrMzBqaXk0SWNhZEFDU3VCOTF6Sm55QkZSV0xRRFpDVDFoZ0s3VGEKM0dVZ0VBSlAxSmxWNjR6T1JlWVhZL0JHZ0pzbzlGU002V1FrMmh5Qk5ZZWpUZUZveXlTMEpReHJtNFREeEZ1T3gySU5FZmpwRVB5VgpTTFIxam5ISE0xcFVxbHlMNkZOTlNMckZtSUdacGJSWmJpTzBlYnlsMUVsdHRtSmJlWEl6YXltMm1ySndKV3ZLRUNpRms5ZmFlSlhECnBuRTVZRjhxejJrRVh1OXlvRHhySUNrdFFXb3dRb1BpYWd1aEJtK0lKa0pyeERWNlVxVkQ1UWF6ekl3cWNVSU5Zc0dVUmxSdXRtUWcKYUhxR1NmYWtEcHVsekU1UWxrM1hibG1FbEQ2b3ozMWM3M3dXb2Rkb3RCbG1UWm8rTlYyZm5LNVBTdFpzV0tkYXUxNjlGbnlhb1U1TwpVMmVrR0RWcnpQcWxCQXF5QkRjdHdZMFBZYnBIVWMzalp0VXlzMnFESVFra0VVbE9ScEpTak1tcFNESWdLWWpVdEY1bTNnQWl0eVFxCnpJbEtTNUlZdVRuRGhHZXF6V21aWm1VbUlsZWJBR3YwejVpY0NjekplT3RwWUtBbHdMaDZMbDJyek5UQlJhSmx1b3hNblJReVNDc0YKckZ1dFpZQ1FGcUl2eFFobnAvSWRFY0lyMDRTVFdNN3Vxcks4eGkxd0oxUUFvSmFLcmpXZyt3VlExZFlTSDRCMjVybTI1dHdHSU1GQgpjemFhdHpNOGI3UFpqUWE3OEFpN0x3b094SndJcFpzbkVxMWpzRllBb0pINjZ0Rkk3UmlzV1FUUUJLck5CeUJvSUd1N0wzQ1RjNllsCnpOb0s0aE5QQk5jT01BMFN5dnJ1MWdaRHRjYVNqYkZVY3h3TkhITXlsanNUeFo2SllNNkVXODlNNXM1RzRtMFJSSHVzRmM2SW5JaUIKYjNjUzNKNWdiWnRzZnpXS2Z3VTh5Qm0ya3pQNTluaitkQVQvV2h4L05sNkF6Vkl4WEJlQWNFNWhGYUNxUlFDSkVRSGtSVS8vQU9KWgpGYUFQVFhzM1pLQUF4elcwWFUrNkxJQStKUzQ5Q0d4RDl1NEltZWVrczEzV1VydXEySzRzdEd2eUJFMk9UWmNOL25JZWhoWlFVckJnClBHcm1jWVFqdEJ5dFpoa1ZCMnhsMDFnRmpaVVRvMlZaRUIzSGtWYUdZMGtYYjhrWGpBV0FQblk0MTkzcEpIOC9nQXhPQnJXeWVwVFYKQVFDQnF3NDFoVHhMNU1leGRURXNYTjBIdUFlOFFPREZCVmRjQURjKzhmUkt2L3FCQUtLYWdIdWltTG93Qmh3MFBrenZSbXdPQUtBaQo3MFN3WHdVUU5GQTNnRXFjMXA0QUVsaXlMNERFSnVqZkNLQW9vaks2T3d1TVc1L1JzNmthUllwT25vaG9ZTmNOQkpCT0FuZTNvSTVNCm9vNkcwVjBMQWtVeWxSRTByQUQxSGY4Q2llY2hnR0w0eWpnYlpCQmNHWWlzbW9oVml2cnBCYUE3bFgrOEFHcUlCZ0RDZGo5alpLVUcKaGR3RUFLUVMwU05HYnBHQnlNeFNxU2t6MDVqeEx3REk0RzJDMXVKeUFLQW5BSUJjeUdJM3VpamI0Z3Z3MEcrSXVVZHUzYjRnRzMvTwpwc2NFcE1CbUVnRlVta1dLQUFJdmVZV0RBaTkvVVk2cEpBL2I1bUE2SGxIOGNhcE9OSkN2RzFvY0VmUE5DK3ZMb0o0UzZ0RXJUZldiCnZ2UzVlL3JTUk16NTJjUi9OSDNSY3lmNlhKaUpnL1M5WFV6UHY3UG40KzlMbkx2bjN3Y2dxQitRSHhkYmYxN01BZ0FCL1Z4L2tMdjUKTUNjQ0NFREg4NVNqRzBEZ1dMajVGQUNRdy9PWTQvTFROczl5elBNZ2VYalZ4aEZzNjFqMFZEUjJGdlpCMDdWeFpIc0kzQWpzSkhpNwp2dzFBNEVSclRKZnJVMFVBR1pBMFFJcGlIaXR6d1BXZ2Q4Rzl3TzRHSUxnam1IY2lXQW5YVlFUS0kwMHV3c0JhMUtoUnBrZGd0N0xTCm1DWTNwcEdtVkNPcXlNQ3A1ZmlXbVZoZEdQWmFDUDVHT0hZcW1td1RXMy9FOGcrSStPa2t2RFVFQitlbmN4T3hWeU1zTGJPTnUxYnEKYUhEaFJXalRyRWFaRzljVldzMmxITGFadzRGN3lnV3FqRFlEL2VTVGVoZW1ZcEEwVEpmRTRqSVhwd05ubzJ3SEFqN211OUdjTEl1TgowNFByYjNBdGJ1T05MT2ZkMXBIUmsxWURialZnakI2MTZvMk1GaUZVSmt5Qmt4b2EvQkdseGtpbGhWQ1lLYVVCQisrUCttU0RZUzBJCm9rMDFhT1VHcmRLc0E3YlFHTklVcWxVNnczcXA2bGtwc2lGVnZ6NWR0ejRkU2R5Z1d3OGtsS1pKVGxMQlpZR2VVS2V1TUdsZ3pLcG4KemNwVkp2azZzelRSS0UwMVpxWWp5V0xBQzVGcFNwWWFrMlhtSkJBRmxnNmlSTk5WV0lZYXo5VGdtZUJLREVSRHlCRWlYV05KbGFISwpESU5NRFZmNk1UOW55WnJLdE1HT1pycDlQbjVnSlpLZHB0WEt0V2tLWGFwQ2x5N1Z5ekwxY2dDZ05JMWl2ZGE4d3VCNnpMUUp6cXptCjJzUDVjM081UmtkK1JlMFdkMU9adTNGclBpei8zQTZnaGdxNEMxaER4VVlmZ0E1dktkNjdNWDkzWWZhT1hPZVdIRWVwMjFhUUpiamQKUEFBUWI2ZEVBSEc4eldtM1lIYnFLVzUzTE4wQkFEU1JhUnhQdG8zRjIrNHpOd0VBalRMVTNHK0J0d0Q5akNkYnhZRXdrQkNtUThTTgpHSkUrZlFQb0k4WkhKVys1cUNPS09SVkpud3lIT1Ezb0U4bStHczIvRGhKR3Z4ckZ2WkVndkQ3Rjl1bzA0ZlEwYTlzMHBuazIyd0lyClBZNDNnSk1tMjg1T0YwNU10cmFDZzNqbm13bjh1U2xDVzZ6dFREei94bEsyS3QzS2s1eXNGNERFQ2xBM2V1NEFJS3ZheWlJMFk3RlMKWm83VUFYOGpEQ0pqQ1l5MzBVNnJQUmZMTGtEeThuVjVPY1pjTjVrSFR1RmVsT1E3elBsT3VFSVBDRGhCZ0d6bVRhVzhzVVF3RnZGSQp2ZzNKc1JteTdUcTNYUWVRMUNQQVRKcGN1emJQb1N0aEZDVldaUkduS2JSQi9lUTUwUnlIeGUyMC9Hc0E0cXdJWmdVQU1vS0xCemxwCmZob3ZqYmJXUjFvYnV2WFRHa0kxaGNDQnlON3U4ZFYrUlBmY0t2d0E5MUJOc0JoTXQ4Y3dkUUJBazZ6d2xybjBrUXhiWVc2MjZVNEEKNm1iUWJRQUMyZVRtNFc0WU5pWkhvTndDTFFLSVkvQytBQUw2K1ZVQWVmVURBZVRMTFBQdTVRWm5za2FUckZjQ0FNRkxDNlBpRm9CQwp5VnNHOHU3cjNyc0RPcDZyOVFFSUpGYW9Bb2tUYW1PNG1uQzZwaGVBZmxVL0VFQndNZWphbmdDU3cwRXVPTlVMcmdaa1ZzZ3RzQ3dFCkx0MUEwbzIvZXdnTW94VmVBQ2w2QW1oSkZnRFFiVm1jZzNXbkwzM3VDcUJjNGxtNzNpSVl3RThuQUZDaGt3UUEydUxDeXJPdzBqeHEKdTVNdXpjS0w4c3pGdWVZdE9kVGhaQzBBMEorNmkwREFRSkJCdDdkRit4ajBuamM5bTZOOWl3WjVlNE42MDBkTTM1clEzZE9YSnY4ego2VXVmZmdFazZ1Zi9Jd0Q1OUNNQ0NKWi9IdVJBZ0g0OGp3cWVaVFpvbmFmRkNwRDlCaERQRTg2clQ3bHVnb05IN0Q4dFp6MVBtQzgrClpOUEw5Z1l6SnlkWVRrYWo0SUlicnVJUG5CRkJuWmhFZG5nQjFBb0JaS0I2QWdpZWNmV0pPbjBLaTZrS2VIU3pBNjRIZlJjQWlidWkKbG5uWGcrNHFBbG14UWdZdFlsQmdJQ2V1dDVwVkZrU3FONlNyZENseVhiTFJrS2JCWkRKYXY0N2tsMkM3STdIMjhlUlpjTEU0a1R3MwprVG9MRzREd2s2Rm8reVFVam4rQmpDVmhQMUE0ZmlJZWJaNkxIbHVPVmNoeGdTQ1FIQndwcEMxYldISzdqZDRoME50NVlpdUxsbGt0CkpiU3VnTmJaTVRsbFRqZnFrNDJhUkJaWFpGbU5jTmF4eXd3dW5kMkNJY2RwY3R1UkxNRUkzdGtGemdUWHRLVjFCS1hGYVoyRjBwb28KRFlpQlV1c3hCUUFRdUIzeWlOYmdsQXFqVkNaYWJjRDBHcU5SWVFSdklHa2FkSVBlbkd4QTRKUTBneW5kWkV6V2E5ZGlXSXBHdDFxbQpXNTJwVzVXcFhTc3pwU1RyRTVPMTZ3R0FVdFFwaVVqNmVsUyszcGkrMXBTK3hwaXl6cGkwSGtrQ2QwalRKV2JvTjJUcWsyRU1pVklrClNRWmVpMjRBS1ZHcEdCVW0wMkJ5TFE3ZWlCUTZRcW13WkdyTVNWbzBUVTFvd0p1ZTFpRE4xQ01yZGR3TXFpNmVBZWVTVTdPSTQwK1kKUzFOMEZxVkdxdEtraUFES01NakZnYkJralhhMWxscGhjTTlnYXFleFRlREUveUJYVTFTNHBXR0xBK2lub2J5d0Y0Q2F0b242NlEyZwpsMHZ6ZGhXNHQrYzRBSUNLM1VKZU40QUVHOFVMdEdCanJJTERaY01ZQjdxSzN4WkhRUUNGc0kzamlaUGppUGI3TGMxQVB5TjBWZmNZCjY3eWpZSGNEVUFSUVdvL1JMaCtBeEZwUlY4V0k3b0R6SEswbkk5bFRDY3pKQkdzSHlHU21JNTVxQVM0RTFwbE1OVStsV21heUp3QVEKWTRpMk9QWnNEQTg4OUZxczg4OEFRQW1PMXhOc3I4eDB2aVorNFZUaGJMeHdickx3Q2dCUXZOQUZvRXdHQW9qbDRlaXEyQVR0NndINgpGUUJ4T29ZMVVsWUxUUnM0VW9QakdobU9yeUZzUzVrZFQzS2IxanNkcW13VGxTUFB6c25ZbUNVdHo1SVhabG5ndVQvTERBSU9Dckx3ClBCZVY3WVMvYUNBbEFsNWlRNHZzWnErTmtId25VaWhnM2xqRWdEOENnWDJsTmhNNHlIUGd1VTRTcnJUaU5KVTZkSnNjNnQ4TklGNEgKQU1ReUNMaE9JQ2dEK0tYSUpMRmwrTllJcGo2TWFRUnFnZXNNZGV0SEJGQ3ZwaCtRU2QwTC8vVFNEd1FRZFNLZXFZMjAxb1N4elpGVQp5eFNxZGhXL05UdmJLQUtvTkljRUJnSUE4dTZKd2ZueW53TlFOMzFnSXNsS1g2WmFEanhteU42Z1JaSzBxZzBHTmZpRmtpUGRBQUs1CkU0QjgraEVqQWloQnFJN25xOFFpVUx5dFBzb0tBSFRzVnZtblB3RDEwZzlJTEFiM1Q1bUQ3bnJHeVBnQXBJSmpYZ3FvSDVQY3B4K1EKdEI0OVFMK3hDZHJDM0FKUU9xRjhrdFVzZGhpV3VpeTlBTlREUUgzcDh5c0FXdW00QmFCaUo3blJCUUcwelkwWDVSSVZidXNXSjE2YwpieW5OUnNxenlhMkVHZWdINU04OUFlU3RBL2tpR2toazBIdmRjOFI2bG9LNjF3MGlmMWMrblhXbjRQM205bjZqVytsN1R6RjlpWFAzCjlLVlBYd0Q1OVBQL0dZQVdNejRBWFZ2S1h1K2FBQThBeE44Q2tGYy9FRURMc2pxWE9YOVp5WGtlWlRzZklUeVBJbTh0eTVsdXFoK1AKbmd3enQwV2FXOEtJdGdsTWV4alJFbzIxZUZmV0VRRzB4d3VnMUo0QWtodVNOUHBrR2xYazhaWk5kcmdlOUM2M2NDY0FpVVdnclU0VwpBQWp1aXNxVHhTd09ERlRDNHNWV3JJQzJ1Q2tqajJsSnM4SnNsQUlvSUlaRW5VVnFRQlZhaTJxZGhaK1A3WjZNSDUrR0g1MUVucDVFCm5neUhNK0ZiNHZDR0tYanRkTHhtRmxIOUNIbmdLZktsdGVTT05McE16V3drMkx4c2p0ME1aT2I5ZGx0NXVwd2p5cXpZUnNaVVNDTjUKbE42RnlXMjRETE9rR2t6SldrT1MzcEFLVGpQWm5EbEhRSEp0Um5BbG5XTTNab01yWnJzUm5KWUFnM3J1YWtRdzhGcklST21NakY0YwpBak5oU3ZDZUFBQUVydFF4UW8xUkdqMmwxZUlxclVtcU42WWhwbVRFbkdJd1oyaE5jc1NZYmtFVlJxTk1vMGsxR0RLMXVsUU5jS1FwClNXdE1CcXhKTTJ6SU1DUXJFRGpJQ0NTMER0bVFxRiszM3RDVkpNUDZGQVRjQWFJbkU0RWJrbVFZVXpKTnFiQUNaRTZSV1ZKbGx1U3UKMWJRdG1XcFVDcUxEWkhwY0RxSWoxQ1k4RThGbEtsU2xNc28xdWpTWlFiL09ZcHRHVk1iU2JSSHMyUVNtNVVIMCtiVjZQbE9qbDJzVQpjbjBtZUh0TVIxUVpCaVV3VUpwV3ZVRm5XYVczenNVT3pxVHJFLzRmZS9jQjN1WjUzZ3Nma2tlU3BxZHBFc2QyYkd0UTRoSkpVY3UyClJHcFlsanhrSjk3YW5BQ3g4YjdBdXpjMnVQZldudFplRk1XOVJXbzRqcDNFZFpPT2N6cVNwajF0bWpZZGFac21zWGp1NTMzQmx4QkEKTXBMamZyMis3enUrL2hjdUFDSXRpZ1NCSCs3bmZ1NUhIdCttWE41ZjE5VGZGT3hwcSs1cXE0c0YwTUQraGhrQmRMNjVGZ0IwdUNvQwpBR29zQzh3SUlORVhMUFhUL3BCbnA3ODVpeHRkSUl3dWxIc0FRRTl5bzQ5UmcxL0J1d0JBd0tESHFIN1F6NHdBV2lBT1FSWXJ3NUJGCjhsQmN0TkYvV3BieW84bkNXSXA0SFVXNGtTcmVYS2E4bCtIOUZ0cm5yNkNwajJuaVJIYmcvZVgrYjhGMXVGd1IvamFJSjEyNUFaZkEKblJYK1cxbktSSGJ3ZHJxRUxsY0dicS93VGFqM2oyUUdKcks4SHp3blh6VktQbDQyS1dvRGtMNExEQzJ3QnFQaW1RMUFQZ1VYRkRjagp1WUhVQ20rbUdheVE4WCtEYVZnczlLWUlsMWNJeHplS2pXOG9vU0tmNEFtU1FzVHRDeEtCb0tjODVLNE9ZM1VSRjZRRzlVMTdLc0pFClJkaWpCWEN2cHlyQVF5cjlYS1dmaFZRRnVLb0FVeDFrYXlKaVZWaE5SS2dLc2RWaG9pNkVnWUh1SDBBT0JDREJ3MDRCcUlCbnR0QUgKb3hOOXhMNEZJZ0lRVWc3Ym5jU2l3ZE54OU5FU2JYbFc2YVByQjBVWXp4STZBVUR3VTBiVklINW9tL2RvSklJQmdOQW9vQmdBdFZiSwpNUWJ5elEwZ2JSQmlMSUNvYUFQUXZRSklMUVZOQXlpVHZ2dzhWclBEN3Q3bHRPOTJBWUJNQ0VBZSt6U0FOQU5wQUVxUjRzcy8wL0ZlCnkvSWpBNlhMbDlKOVZ6TUR2YWx5MTBKcVZnQWwwZ2VDam4rYkF0Q2JBQ0M4SkJaQTZMcW54RGlsbjBJQzVYNjN3V3NBY2trV0oydWUKQXBCN1k0aklMWjNCUUNxRFpzczBnR0tYejlhcUFDTDhHRHhOM3dXZ2NyYW1uTmxmN20wSjByWFZWR01wdmk5TVZVVVlIVUM2Z1FCQQpLRk5Gb0ZnRDZjM1JpUWI2eXpYc2pFbWt6LzhGMEYzUXVYdWxienFmRllBMmlQKzZNYXFmLzlnb2FRRDY1RGtBa0JJRG9FQU1nTW9uCnR3VC81UTFwOGtWaGNpTTl1ZG5WLzQycTMyUEhVdkhScFo2QkpFL3ZVbXI0Q1dIa0tiWS9uUmhZeUEzUEJxQVNUeDRBeU9iY3cxSWwKR29EYUE4TGhpSGNPQUIwSXp3Q2dXcEdxMHhnME5SMHhJT0F5Ny9KeFJpK0hoV2lzZ2pJTHJEdFBxbnRkT3ZNR2Z5RlAyQWZFS2VJYgpyVUtEUzZnbXBVcGVMcGVVaW9BWXFKREVSaS9UNXFQYUFteTdqei9vcFkvTFJJUDZkelVvYktNRWZ4RlpKV0JCMXFiUUpnSGZ3M2oyCk9OMjdiSjdkTnM5ZXpGUG9GL0VLZUtOY3hvS0JhaU5vdGxaVm1Ld3BSYVBlZ0VFaEgrMVRDRWx5Q3hMT2lXNGRRQmp2Y05GV2VINkUKcHdYZ2tYcHNrSVZrclhiV1pXZUtNWG83NFhtTHh2YlF1QkhRZ3hGR3pyR1RzZThtSFlXNDNlUzBvZDMrTmtkaGlXVzN4Ym16MkxIVApUQllnMmRoMk9NQkFxS2RuUjdGN1Y1RjdWeUcrTTkrOXV4RGZEVHd5WW5rbDZBZVJCeitMZkU4ZXBJREl6NmZ5dEZoSUZDdVY3NkFLCm5IU2hpeW5DbUNLY0xiYVJWcHdzZHJvTGpMalJRWnFkenNKaWgvVWRYRnJPWGtrR1FIamZUNVhHYzVuVHIyTmxlUTZxeU9ZRUFCWGoKNWdLM0hiNVF0UWhrMmV0d2IzZnk2NGlUVDNPZHk1WHJyeXVYampVMERqWUdlMXJyT2xzYk5RQU5IV3FFekFHZ2svVVZBS0Q5WllFWgpBZVQzaWJ3L1dPWmxBaUY4ajY5aE9Rc0F1cjVBNlhxU25RQUFxVzFBM1FDZzMzZDFxbnZCQm1NQmhBdzBwUjgxQXpObU1UZTZsQjlMCkZnQTk0Nm5TQkJBblhib0J5WlJ2b0tWQStjWXlZU0taRzBPVEhuM3ZBWU9XZVc5bCt0OWI3bjh2MHdjZk03YkNkMzJsZnp6Yk83ckMKTzdyU2V4MitEeXVDNzZzZmN6dFRHbDNwRzlNQWxPVy9DMEQ2T1JpNmZ1NEZRTHlNazZLVDVVMHlaMkpZdkpBdGY0VTl0RWkrdFVpOAp2WVMvbmNaTlpQRURxNFVMNjZSRDYrV1dYZDVBb2M5cjk3Tk1rUENGWEtVUmUyWEVWaFcybFpVNXkwdXg4bEozWllTQXgzTjFDSFZOCjFFSkNSRzNJUFJWTVMxMFlyL1RUMVg2eXh1K3BEcUMzQVJVaHBqVE1oU0xpcHdCUVVLQjFBTkVJUU54bStnaWE2SVBTdTBEc2UwcWQKYlpqRWR5VUNTRGVRVHA5WS9hUUpBNm5DRFFEUUVoa0JLRlZFUDlNdHlvbGcySFh2QUdxckROd3ZnTnlrY3pZQXBYTFh0S1R3a0t1UQpwUUxLTXJwek0xYS8zZTZKQVpBSkFTaUp2cUpsRVgxbE1kT3hoT3RjaWlwYTNkUGI0T1dyeTVST1NJYjNLaVRUMjUzcDY5S0tRSEFuCjNFd0hTNUlkaThscmtNUU44Q2xNcjVvZTFMZlA5cUp3M1JENDNjaW1MMjUxTis1d2NVVWVNOXI5VHBndGhGUFREem9hekdPQmY1V0YKc0pzOWpoSzNYYnR1cHh4UkFBbE9UbkNDZm1ZREVDTmFHTEhFSXhxdFF2RnVvZVJWeWZtY2oxMFhWdFpIQ0RWb0cxY3VwSlRNTFVXeQoyVkJLSldaam1iNUFGcCtjY3ZLMUVPSHllaUkrcWlHQWpzS29DVE0xcFd4TGhHMHQ1WnJMV0VoVEtZTW1BNVdTa0xQRjJMZXpUQjh2CjkzeC9KZk5ScHVPRGRjNGZyTUYrc1B5dVVwQytPMHh2Q2RLM3lzZDZTQitpcU9VdlZsTi91V2E2UkJRWCtLUEU2QjFGaVVra3p0d3cKU2lUTzNJbjN4MVFTUDNMdS9OVXM5a3FrajE3cFNReENqM3JseDJ0Uk5QMzhWUTdLajNORlBYZExTUHpiOWRMZnJaZCtzZ0VBSlA3agpCZ255czQxcSsvTlVBNUMyL2dYNlFRRGFyRXkrNEovY05yWCs5V3J3eml1K1Q3WjVKMS8wL2VJMTZWY3ZPKzlzRGt5K3lQL3o4L1lpCnkvRkh5SThXRWRjWEVhTUxQU01MaUtHRjFPQmlCaDBTdEpnZldzSkJSbFpRWjE3RkEzbXV3aUpzZDVFN3o2U1dLTkFyTVpaSHVJM2wKSElaNmEveDhXMFFDOFlCN1loa0U5MEEwQU9tcllFM3FLbGk5d2piSW5KNUdoZGZUTFBOTkV0Y2tzNUFXTDYrR2hiK2xSUkdPeWV3QgprYWtNaUlmOC9MNFEzaHdncThyQ3gzMlJJNHIzZ0pjL0dHRDNoZGhHUDF2ajVXcDhjcTJmcXhaZEZid2x3bHY5bkUyaUxCNHl6MDYvCnBaMUI1aUFLN1o0Q0o1N1BFYVpTMFZYbkE4a3h6VUcyQ2Y0UFlhNCt6TUl2VjFXUWd1ZjNTc0ZkS3FJVENSUUpSNVVlQVIyVXlER28KMG9NeEZvcXpDYUtENDIzd1RwY1U3QjdCWnVWb0crbHdZa1drcTRCeTVaR09mTUtlQi9GWThuQnpudE5hWUxFV20yd2xCVGEwYzJ5dgozZkdtMjcwVGN4UzZqRlpubnMyNXc0enRLc2IzNUh2eTgvQ2lJcnk0R0NzMmdraXd3aUk4SDdpemw5cXJWWUMwR04zNUprOUJDVkVJCnNaQUZWcXJRUmhjQnY1eDBzWXN4UmtPV09OZ2lHMk55RUhZSFpyRzRDZ293MjA1TVhFNWZTV0dIa3ZnYjZkellDcVk3aHo3NUp1NTMKV0F1S25OWmlsNjNZWlRGaWNNVUNOd3Z0dGtLN1k2YzE4Q3gzT2tQcUxnbWZQMXZmREFEcWE0bjA3S3VOYTMvVzZLUHBwNmU5Q1FEVQowZEp3cnFubWVFMzV3WXBRZTJtd3NTSllXK1lyajNnakVTVVlrcnlCYUFWSUNFWEtmSFM1bDNRR2F0ZUs1NTdnaHhiSTF4ZXozWSt6CmZWK2p1ci9pNmZwOXZQUDNYQjJRcjNqZ3pzSEgyWUd2YzJnNTdDbGhFSjFlemcraXVvSXdBQyt1YWp2L3dGU2I4OGdpRmlXWkc0ZWsKQ3VOVDlKbUlScmtKamxubWhjdWJtUUFhNEk0UDlmZGtlOGRSNjg4OUp5dDRZMFZnVkcwWSt2QUY1WkpGRmtTbENHUVN1LzlyQ2oydQowZ0JXNnB0T3hPY0crZ1JsVjBCeUJnU1hDSURnTVltM3d5T0tZczBtaHRzcW5Gam11dzVKOTQ2bEtXaXJ2NzZsUDQyNnRvenVXTW1kCjJ5Z2VmazJwS2ZaTFpNQ2xCSTFTeEJTSWxGU0dMSTFCVzFQQVhoZkNnRUhscFZ4VnFhMDY0cXdONFBWK29nSGVTQWZZbWhCWEhlWmkKaVZNWm92U29sYVRZUDFMN2pZSUU2aE1LZVBRQjBCRFFEMFR4NG1BNGVNUEE4eDZadFhHMGN3Y2JXY1VkZTVMdmdTeFFzekJtdUxQZQozUnhiNzRFc0Zmb2cyc253ZDBXNmxzd1ByaEQ3MGdCQThtQTYzNzlXdWt3RnBicXdwejVDTkpTaXVUQXRsYngrSmp3d1NJMFhvZ01JCjBsU3ExRVdtejBNTksxeFFZbndpeS9FVVNXRUVqZmJBcS9weHVORnBMWmlOY2pvOWRoMUFJQVFBME5QMDJWU21jOGFBaE5ZUXA3ZTUKS2dGQTZvNEhVN0hUWWNMTWhpV0FIcWJqTGdEeDE4QkEraURFS2YxbzNUOHpBR2laM1BzcEFMUklBQUNkZjlGZHR3UGVHVTBEeUI1ZAovN29iUUdydUQwQ1VoQUJFQ0VZN2I5ckxsN3dtMmpmN1BPdkRmRzZZeUExVDY4TXNKRGN5SGZBUVpFTXBFNWZFV3BFV0RVQU9Id0pRCnZaOENBTldGbU5ySXJBQTY1S0hlZTlyOGd6VG5kMWFUSDYvQS9tQ2w0NlBWMlBkWFJKZkQ0Z0EwaDRHMERxRllBR2tHaXIwWjkwZWEKa080eGlmU1pPMzgxU3hKcDhsK2RSRlRkQmF5N3gyckhKUkZBc1F5NnV4bzBBNEFnLzRvQWhKYkEwUHJYeGhnQWJmR3FBQXBvQVByMQpxejRBMEoyWHZiOTRKVEQ1RXZIemJlN0p6ZkxrOCs3M1hoVTN1VHNlSjc2MW1Cd0hBQ0VEa2NPTGFOUlRuTVJHQVpURURzY0JTS01QClhKcGNlejE0Y1lSejZRQTZWT3IvRkFEUzNkUGtGYlMwK1NRVXZ3aHBEMGhxQkFqUXBEWGdidzBIMzVYNWhqQjlVcGFQQk9XakFYZTcKMzlMdXM3ZkxubmFKMnMreit6bHFQNE8xa2ZZbTkvWXdWU2l5RGk5cENiajJDdmEzM0s3ZFR0d0VBRklIUXlNRHVkd0ZQRmxTSm1FTgpQZ3IwZ3hKR2hWVUkvSExCbTJZd1VMbWZndDg0dit6UitxRGhmUzA4RlZDQ014WkFBamNOSUNkcmNSREZEbGVCdzVtUE9Rc2REcVBOCmJyTFpTNG9RSTV4NzdlUU91L2lHSS9LcXZlWWxSL01ManJhTjJMRXRydjNmZEZYdGNJbjVUaWNhQ09UZWJ2UzhYb0p2TDhGM29OSGIKZUg0UmpnQUUzMy9VK0h6L0FMSXpoVE1BaUx5Y3pBd3ZabSttTUtNWmROL1Q1Smx2WXFWbWEwa2NnT0I2a2NNT0FNcXpLam5VNFZYQwpSVmY0MUVVVlFEMnRaVDBKRytBVEFYUzU5UzRBTlpRSFlnR2srTG5vRWxnd1hPcGp3RUJZb0RwWE9xc0Q2T3RjLzZOMHp5Tmt6NWZkCjEwQS8vOE41NWN2dXJzZVlBUTFBOEdGUDhBTlBjUDFQOGtDZlFhM1lvK3BuRU9sbjZ0Q3J4ZHdvNkNlRnY1NElJRjAvR1VvVVFFZy8KdnB1SnhGbnB2ekZIZEFDdDlBS0FMdHd2Z01KZUhBQ0VEQVFBRXNtN0FTUUFnREs4Q0VDeEJ0SjIrMnN0TlF2WXJpVDZRZ1p6L0JtdQpiVE5mczQwdnp3OXdsaUJGUlp5KzBwTHlpQkVrVkIxd29oM0VRUUdKSjBKV1JiQ3FpTE15N0tvSW9iWUtkWUZzQmdQZFA0QThHb0E0CkFRY0FNWXh6TzF1MmduczNWajh6QWloV1B5Z0o5TkVPaDU4QzBFQWFHbkxkRHdCNldycnNEbnBySXFnUE9oWkFtb0gwQ2xCMEQ3eTYKRFY2dEFIMDJBRXBqcjgwWUJDRHE3TXV1MmgxT1Z4NEdBRElEZ0l3QW9LWHNWYzFBRUFCUUV0eFVEWlRDWDlFTWhGYkJwZ0YwN1I0QgpwSGYvekFhZ0pYemZLdnJNUzNqVkxvdzB1czFtRFVDa1RkMzZycTJDV1RRRHFibHZBQkdTaVJSTmhGRGk0RXdGWE1ucm9uV3JEMXNmCkluSkRqQmFFb1FoNFNOQ2lBV2hHQTgyWW5ETHFHMEhTcmhCQkwxazdCU0I0cXpvYmdPcUR3c2cyNThjcDVnOVhxZUpKdDMyd3l2bDkKOWJvT0lNMUFNd0pJTjVBR29FUUR6UllOUVBkdW9FVGl6SjFFK3Z5M0FDaFJQRE1DYURZRHpRWWd6VUR4QU1vVkVZQnlwZWtLMEhvQQprQWo1dC9YVERVQlRBRkx1dk9qVEdvQW1YL1ZyK29IODdKdkJ5YzIyLzl6S1RHNmhKdGM1ZkFWdGk2bVJwNmpSeGVTWUJxQkYwd0FhClZvTzZnbFpRNTZZQkJLL05XTDdaaFFCVTdOcnJ3Z3FEckVNN0VLTTlqQUFFM0lsYkJZTkxIVURhS3BnR0lFZ2NmWnA5b3BaMnY3d3YKb093THl2dER5bFNrQTJGMHN6a1lQT0QxTjVVSmJSR2hPZWh2OUFtWFBjNldRRERRMG15OGRHN3JTSC91eE5ETGZWMjdUeHczMWRVegprcHVsU2lqWGJqZjJqb1BhWldVS3JMVEpRWnBqQVlTN0N5WEdXaW03bTN4MFMwaUF0SWJGbHJEWUZCSHJ3M3hkaUtzTm92T1BnbjdLCks3dGxFWlYvZ0Q2NFlNZEVPNllDU04wQ2hnREVjbGFhdDd0NUs4SGsyWWs4bzZ1NDBHblBkM2gyTytnZGRtNjdRM3JGV2JuTldiL1YKMmJyUmRYZ2RkbllWMXJrYzY4L0FoOUxjNzJmaUU2dXhicERRSzFqTmRvd3J3Q3lBRzV2clRUUCt0aEhmb1M2RW9VRkJSWmphL255ZgpBTUlvTXdESVNodnRIcHNUdDFxeFFnRFFEcGVRVFZ4S3BvWVcwamVTcUlrVWNnaHV2b2pWNXR0Y3hRNnIwV2t6T2kwbWx4VUMxNHNkCjlpS2J3MmltdDNnYU5yRkh4TktqVjVzYStsc2kxOW9xQURwNjkwOGlnTHIzTmFFcGlDMzFaeHVyTlFEdEt3c0JnR3BLdlJxQUFrRlIKQjVBY0RFWUNQQmpJRTZqWUxKMUFMK3J5OVlWY0R3QklMUUwxZnNYVEJRRDZvdjNTbDdET1I4amVSOW4reDdnQkNFZ0lQdURycW9GUQpENUJhK0VFZC9RTHErOUhPL29TQWZtSUFwTkpIdm9GeXQzNGdvSjg0QUNWeUp6SExBMUVBcmZKOWdBQ2tjUGNDb0RJL0Rya0xRS0pECkE1QUlBT0lkcEFxZ0xjSzdBQ0ROUUFBZ0xhbHFsZ2FHRjNxSEh4ZUh2OG9OZklWRzFiSW5xTTZGVk9kSzZrUU9lK0JscVg2bnoyY1AKRUh6UUdnd1ZWNFFLMWYzelJGa0VMeTExbFpZNnlpSXVNRkJWQ0o5cUVvbzMwUDBDeUtlZzAvUkU5U2g0ZVB0QjBhNjNtUExsL0ZuTgpQYkg2U1Z6cTBwSWlES0NBZU5TZ2N6eGlJM2VsQ0VQWjRrQ3lNcGdtOTJZSWZXdWtUa2N3SEcwR2p6a1RYalBRYkFCcUx2UFdsNkxqCndINGpnSERLaFpHdSt3ZlFsVlhVK1MxWTA5dG9FMFF4QUtqSXBRSW9tVUZEbzNVREFZQTBBeVZ6SFlBbXZSVTZGa0I2SHpRQUtNdlgKb3dNb3Nmd3pCNEJTdU42bnFlT3Y0S1Y3WExnSkFFU1l0TlBncDJiL3FGMUJVMFVndFE1MGZ3QnlTeVl3RUFESXlacUxtSkszZVB0VwpMK29CeWdsek9XRkdUYlFPQkJKYUR3Q0tYa2ZaRU9HbWswQWZMZXZLR1FDUVZmSDR2V1JOQUFHb1BrUTFoR1lGVUhXRmVOTHNlWDk1CjhjZVo5by9YZUw2ZmJ2OXd0ZXNQVjAvdkNKdXhFMmhHQ2YzSi9SaElCOUE5R2lpUk9ITW5rVDcvendNb2tUdUptZkY0dFhzQkVDUVcKUUg4YkE2Qi9XQzlDUUQ5M0EwZ0VBUDE2RXdCSW5vUm9EVURiZktBZkJLQnQ4dVRMS1A4T1Z6WmprN244NUdiclQzT1pkWjdPSnp6agpUN0JEU2NSb2tnNGcxVUFxZzRZWE13T0FvU2tBRmNjQ3lJVG53eXV4dzFXZ1VOWmFrUUFBdFlWRURVQmFFV2dPQUdsdFFEcUFkUHEwCitDVklhMEJ1ODBuSVFNSFlpR0Nndy81Z1c0QnQ5RkwxSWFraExKWDdxZjFDc1BqVWliUS8vOU9rSC83NGtSLzk3S0VmL2R6d3c1OGIKL3Z3bmhqLzZuNGFQUHBwL3Mydk55ZllTTDBXNGl5eFVZUkU2Ymd3MVdhUHlERkZzSnhHQVBFU3hqM1BVZW9sV1B3UDBhWXRJS0tWeQphMFFDQXpXRStQb2dGd2t3RVI4VlVnaS80RllFZUZwSGZkQ29BWWl6NDZ5VjVSMlNNQTBnRDRjQUJNOGsyMTMwTjF5aGJjN2FyYzdtCjUxejdOdUpIMXJpNlYyTTlLL0MrVFBkUUdqRzhsTHEraUJwZlFJMHZwTjViVEwyM2hCalA4QXlzd1M5dHdnNi80cXA3MDFXVzc3SVcKdW96d2JUZGg3NWp3TjRyeGQrQjZJYWEyQ3YwV0FMTGhSUnFBVm5ndUpST0RDNmliQzRrYjhBQlk1dWw2RG12ZGFlY0FRS3FCcGdGawpkRHFLN1U2ckJYL1ZHWHlEYXFnc2IrMXBydTF1Q1hlMlZmVzFxL281VUs4QlNPLyswUUlBUWtPQW1xTjc0QTlVVGdPb0xLeUV3M0lzCmdId0JiemdnQW9DNFFPaFYrUkM4TkQ0aGorc0Flb3pwZjRUc0FRRDlqdTNpRisyWHdVQmZKWHNmb2ZxQVFTcUFCdUREMUFvUUF0QWkKZmdRMXNhbVpibm1lMGsrYU9CN1ZqektlNFoyWVNUOFQyZmVwSDBoMjhQYXE0TmpLd08xVi92ZGZVczVhRkVZRjBQVHU5OThJSUcwVgp6QjhESUVJQUFGbU5qTFJGT0ozcEc5Y01wT2tuV2czeWp5K0hGMFJ2ZjRwM2VLRTg5cVI0L1ZGdTdGRm01R3YwOEtQNDBCUDQ0R0ozClR5WnhZVDI5NzNXaHJNalBPRU5PS1ZMa2paaENJV3RaMEZVUmRLT0VQWlVSdEF0eVJnUE5EYURZWTFBMUFQbTloRTl5QTRCWUFSYzQKVkQ1NW5hbk80Qy9wK29sdGMwYkRET1BjTTVWNDkwZ0RhVEtJWnhCc2tDb09Jd0I1KzVmSjNabGkvMHFwMStTcnFnb1ROYVZVM1YwNwo0ZVgyeXVnb29GZ0FhWk9nNHdBVThmSWhtUVVBOFFKTjBmaG5BQ0RoY2paOWNSUGUvanJHNzhaS1ZBRFppbkd6SWRveXpVUlAwRmlxCkFnaWlBU2hWNkp6ZURxYXRoYWw5MEhFQVNxS3VhdnFKQXhEcWQ1NEZRUEExcmFXT3ZPcjI1Ym5zSmJoSjIvZCs5L3pENlNMUXB3WVEKeFJ0eHJxU1l0YjdCdTU5WHVOeUFiMjFZWElzTVJPVk1OUU50Q05NYll2UVRENkJac3E2TTJ4YWt6SXBIOXNLRGo2eFZBZFEwTzREcQpTcmtLSDlYM3ZQRUhhYWJ2cnNLK2s0Mzl3UnJRait2alZiaCtTa1owVHZRcWxOL0lJQTFBOTJJZ1BiK3hOd2p5dzlVeko1RStjd05vCnRpVHk1YmRQSW5jUzg5a0NDUFNqQWVnZmM2Y0I5UE5jQUpEd2l3M2lyellDZ0NTa0g4Z0x3QjB2QU9qT0t3cmtrNWVseVpjRWxDM1UKcnphemsrdVl5WnlTODY4M2ZwMjV1ZFExL0NSN0hWNzhGbnRHRm51R0ZoSlRJWWNob0I5Z2tBcWdvQXFndlJxQXJFNEVJTFJseVpVbgprdVpxRWMyREJxTUFkR0lCcEsxL2FRQkM4NkJqQUtSdGhvK3IvV2o2Z1dqWDRZTWgycXBaYTFDQU5JYUZ0Z0RkRW1MQVFMVzg4eVFqCjVYZDBmdTd2L3Ryd2x6ODFmUC9IaHZmK3pERDhSNGJland4ZEg4N3IvdUNCL3U4OFBQeHR3NDMzdjlBM3VMYnRVREhMT2JGQ083SEgKU2FNek1aeWtFUURrZEJmUXBDa2tZUFZlc3QzUEFuM2FTMlhJdmpJRkx1Rm1jMGhvQ3ZKb200eVhLWmVva09BSjhHQWdEOC9qREk4NQpXWnVic2NKekFnQ0lCd2xwRlNEV2d0T1dQUVQzSXQ2UWc1OWVqVjlaaVhWbGVnYlN5YkZrNGhaa0tYbGpLVG1SUkYxUG9rZVRtTEVrCmRpU1o2VThDY2RMWEYxTTNrc25yd0tEVm5zNW44VXN2WVEydlljRmRMZ3lzYVhHOVljTGVLdkRzMlVNVWZsWUFXdVcrbEVJT0xTQnYKTHlSdUxTYkgwenk5RzkzN3R6dWtJcnNsRmtBbWx4MEFaSFM0YkJiNzIzYXVpQXJ2SzY4ZGFLbnNiQzN0MkZmVDM2YnFKd0ZBYVAxcgpmMk4wRDN3VDJnS0c5c0JYaHRyS1EvVmwvdXFJa2dpZ1lFQU9CWlZJZ0pmOXZuZmsxbVNoNTNGcFlnR0hTanNBSUNETzE2amVMMkZYCkFVQmZzQ0lEZmNYVC9RaloreGlERnNLMG5tZ05RSXQ0TkVKNklUc0VBUUF0NGFJQW1sRS9DRDFBSDFVL1d1RUgwU2NCTjVCVmdadHoKWndwQU4xZjdiNy9rUFcyVkdWa3U4aXR6QVVqVFR5S0EwQkFnQVFEa0pFRGJyTTNJeUZ1RU04dTk0NXFCbGlsakVOMUF5OFhlTEdrZwpReDVTMThYR2tnUTBQdnNwdHZkUnR2dHJkUC92RTBOZnhnY2V4N3FXZWk2c29rL204RWZ5QTVRMVNMQm81SldqS21DckNOb2lJVmNvCjRpNFBZZVVoZDB3OFdtWURVSVU2TGlnT1FHRXZlbi91RlhGZVJNZUh3OXNESisxK2xhbE41YTR1RXZzZ3VuNldDdjFhOUVwUFFyMm4KRDVJbTk4Y2xRKzRFQU1FL0dRQ1VxVnlESzVDOTNrWmdIRG9TdFp4dHFPVFZQbWlwcmVLZUFGUVpRSDNRaVFDYTZvQkdBSElSenRrQQpsTTUzenBoazZWSVdjMlc5NStncm1IOFhaaXQwV2dGQUJYaUpBZlZMMzdWenJETjZscGk2ZVV6cm80NDlHUFZlQUJTNy8yczJBR1hSClYzUEpmYS9oUXI3THJBTElxZ0pJSFo0Uk5WQjBJUXh0Z1A4MEFMS1Nvb2tXQUVER0l0YitHczl0bEN1ZTlyZXNEVWJXQmdQQW9Kd3cKa3hzbU5vUjFBUEd4MlJBUnRHeU1jRE5tWFpud3NwOHl5b1RvUlE4N0FGQmprR29LVUxNQnFDbEllcXVwZC9PczM4c3UvbkNGODl0cgpDT0RPeDZ2dEdvRCtjT1cwZ1RRQXpjaWdPQW5wQnJwM0J2MS9EMENKMXBreHNRQktOTkRjQUlyZEY0YktQemtvUDgyWkJ0QS81MG8vCnorVWgveEVGa0tnRDZKTVh4VHN2U1hlMnlaQlBYaFkrZVpHZmhHemxKamU1N213Uzcyd2dmcjZPMm1POStDVHhmb3BuQUY1MGs0aGgKQ0FBSUdjZ3pvbWNSalU0SXlpYk9BNER5TWFNS29FSWpWbWh4N0MxeEZ4UzVVVE1RVDVaVXFRQlM1MEg3dERZZ3Zmd1RDNkRZbmZCeApBSW9yQWtYclFERUFhZ253a0xvdzNpZ3g4TGxWUG5zRDZ6YWZPdmZ3Ly82aDRZOStZcmorQThQZ0I0YWVHdy8zam42K2UrakJqZ0VECnBIUHM4NmR1ZlBYVWQzN244c2VHM3RzUFhMaVFXMU5tb3kwYzlnN3FnS2FNTnFMQWdlZXpOSm9BQktJNjRPZmFJMTdJdmxLZkZrMXMKOEFYVXc5OG9NMkdSUUcvS09WeGdNUzBZWS9Pd05rRjBvYm05ckJVTXhIQUlRUENNL3pZWlhrZWNYRVlPcDNodUpidHZKNUh2TDZTLwpvNTNCQkZuQ2pDWFQ0eWtVU2lvOXNZenFUYVVIbDlEakMrbGJhaWFTNk9HbDlNQUs5OVVjOTRtWHNjcnRMaEsrLzRYcXpxODlSUDV2CkNTQjlDV3cxb1FLSXVybUl2QWtBU2lkN05ycmJkem9FbzgxaXNsdExIQmF6MDJweDJjeE91OW5wTkRzd3E5Vyt4MGE1S2UrcHlvckIKbHRJcnJXVlg5OWNQdGFKRDREVUE2ZnUvdEJuUTNmc2FydTFydk54YXArMkJSNmVBVlFSYnk0S3pBU2djRUlQaEFGd0cvRktlM0pBdQpYUHVhZUVNSDBHTk0vNk4wMzVmZDEzN1hjUm4wODd1T0sxOTFkejlLOW4yZEdWekFEcXViRmxHdlQ1S0FUaENETEdTR0lVa3NBcEMyCjR4M29vK2tIQVVqWHoxUitTLzFBVmdhK05RV2dteTk1MzdVcHRLSVVCN3pZZlFOSXNta0E0Z1VFSUEvck1OTGV6Y0k1QUJBa3VoQTIKWlNEVUR5VGZVRE9SS28xRmp6eEQ1MnIxQVFmaFcvY0kxLzE3VE9mdlVoMWZJanNmSVh1K1R2YXRvWTVzNVZyemxEQVJKSDFoU3locwpERVpzZ1loTEJkQU1CcG9EUUNoVDU4RHJBQW9vdEJldGY3a0FRUENpYWFjOUw5Rk5TNmNXdkpMRWZvaXVIeDFBaWZXZVpWSi9iRExrCkFTMkFualJwSkF1ZEk5YWJxVnhkTGc5bVNLUHZLUHNpUVhkNWhLd3BaMVFBaWMzbG9nYWczN2dFRmdjZ1FXUmlBUVJYQUVCT2orUCsKQVhRaGc3bjZESG5tUlhka3B3c3JjRmpBUVBrQW9EUTJ1bTFNaXo1Sk9uWWJmYXlCRWdHVW9mVHBBRXJjQUQ4YmdKYlRWellRclcrNAo2VUtYMFlLYkxCNFZRSFJ4ZEhvWVpaNHlrQW9nRW5VQzNSZUFjTUdHQUNRVzRYeFJJZXQ2bFF1dWt3NWtLeGVmOWJXczlkZXREWlRuCkJIMjVRWEY5a044UUVqWUZwVGdBNlFiYUdKNDU2OHJFbHdKTWtlemh2V1Q1RklDYVp3ZFFBendvSzRoVzJqbjBuUEU3V2ZZUFZoTi8Ka08yS0JaQnVvRmdBeldDZ3B6K2JPbEFpZmY3ZkNLQkU2TXlXT0FERkdlZzNBa2cza0thZktJQnlCQURRUCtXSWR3T0lCd0RkaVFKSQppZ0dRK091WCtEc3ZjSGUyTUpQUE13Q2d5UTNrTHpjNHI3MWF1NHdlV1VSY1Q2S0hrajNqUzRtUkpTVEs5RnFZdWlsc0lUVVFBeUNUCkRpQ3JQUW9nSTVhSGRzSUxicTBQK2tEWU95T0E5SG5RbWlkaUFSUnJvSGdHb2NJUHVvU1BiL0t4RFFyZElPRm9LN3RvcmVBdzQ3NVcKdzE5ODcrSHYvZGh3N1RzUDlYMW5Yczl0UTgrNG9YdlljRzFnM3BXQmg4NFBmKzdNNlB5ejQ0WkxJNGJ6b3crY21YancvSTNmT2RPeApxcllxeisyMHFnZXZhZ0RpR0V1NTdHbnkwUnFBd0QzN1MzMEh5dnh3cVgzQjdRR3B6c3VWZXhtdmwyUzlCS200U1hocnl6cFplRk5JCld6VUFLVEVBOHRCbUIrMThrNHlzb2M0dXBhNG5rZTh0SVlBWEV3dm9XMHZJSWNoU2FoU2k2U2VGdXBGSzMweWxSbEtvc1dUcXhoSWEKSFZlWnhOeUlWb2JvOFhTcWZ6Vng0VGxQTy93SWR1QjRQbDVRakcyL1h3RE4xZ1M5eW5NeGhVSUNoaThQZnZvWjVMWE5lTXRPT3hNSApJSXZMWVhHNUFFQWxWbGVCalJCbzhXSmxlS2dwZEttdHJPTkEvV2hMYlJ5QWV2YlZUUjJDVWQvWjNxQUQ2SEJOYWJzS29McFMzNHdBCktnOXcvbkFvR0pETC9LeEpxVjRtWE5VQTlBUS84QmpUK3lqcWJ1blZXcUYvSDcvMkZVLzNFOFRnVTlRZ0tHY3hON29FWlVRcjlxQWgKNXV3WVpBbmE5eDZkOTVNbWpVMXYrNUt2NndESzhxUEw1ZDdveWxlTWZzYnZuVDQ2Z0ZZSHhsWUZKbGI3SjdiNTNyVjV5YmtCcE9zSApVdXIzNkFEeUpnQ29tUEZ2Rmk1b0FOTHFRUHB5MkRMZjlUUXZPb1lzMVFzR3VxNDFSeU1HS1NPTDJadndUWGdTdm52c3RVZVlqcTlRClY3NUNYdjBxMWZVWTNyZVU3bmhHT1BHcXQ2NGdvTGlEYmlsc0QwWXNVd0NLTjlDbkFKQWlxTjF5RWs0SlRndERicUdiRi9OREduMTAKL1NTTEE1REVwUzV0blFzdGRkM3RIajFaeXRWVWVTUlRHVnpxNjE3dTdWZ2g5OFBQOURYNWNDaUlsNFdKcW5LbXZrS0lBWkR2dmdEawpsemhSWWdGQUhpcTZCLzVUQXloVnZKRE9kYTBoejI5eFYyN0gzQnFBOXJwVkFNVWFTTjA5anpKVkRicWlSZStKL3F3QWxFMWYza0EyCnY0bVRjUUF5azhoQWNRQkN1VzhBMlFGQWpGQ0E4NFg1bk90bHJ1d1o4WFNHUFBTTWRQeFo3OEcxdnFZY2YzbHVJTEErNE4zbzkwRnkKUTFvblVIdzJoUGdab3dHb1FDWTVoU2dQMHI4UlFEVVJUM01Rci9PNXo3OWU4cjBNKzNlelNXRFFSNnZ0MGRuUU1RRDZ3Y3E1RElTNgpwR01NTk4wVHZYcldKQnJveis3dURZcE5JbjNtem85bVNTSjk1azRpYnVaT0luSCtXaDBDbFBpUld0Q08vUVFENlF4S0JOQ1AxdkZ4CkFOTHl0K3VFdVFIMG4rdDFBRW1UbXhDQWZ2MlNpR28vTHdzQW9FKzJNaHFBZnIwSm05eGd1NU5qWllwT1BFbmVlSXJ0WGNpT3AyQWoKeWVRb0JGNlZsNUJqRUxVbitqcGtEZ0NaUFlYRm5ud0FFRE1Gb0haZkZFQWFldTRkUURNeUNGM3g4UkJWUDN5OVROV0tSSURqSy95bQpldGRiTm9WZk9qanl1N2YvMkRENjNZZjd2enYvOHRBRFY0Ym5YeHcybkJzd25Ca3dYQmcxbkI4em5CMDJYTG44d09udUx4enZuM2VpCngzQzI4Nkd6VjM3MzVPWGZPM3paQXM5RjhQdnV5YmRqZVFDZ0NnVTFBQjMwSVFCcCt0RUFCUCtjZlVFRW9OcUFVQjRXdkJVQ2l3NXgKNVlnUVJZcHVrbklDZ0VqV0prcFlISUNjcFBGTndydWFQSTJzUTA0a0UwTkx5ZjdGekZBS2Rpc1Z2NW5zbmtnbUo4Qkd5ZlRZRW1ZRQpzcGdlVFVJMzBXa2tzWUVYTUhXTDF2WGwxTFVObmtPdlliNUNoOUZ1Zi8xVEFHakdiZkFyaVBNQW9FWGt4R0p5ZkNrNWxFbGVlUjV2CjJHVW5BRUNRT0FCWm5MakpoaGZhU1I4cmRWUUZCeHVERjFyTHJ4NXNHRzJ1dWhjQW5ad0NVRXNwR2dKVUZaWkxRL0pzQUNyM00xYWwKTWt1OCtsWHhCcngrYXdBQy9XZ0JBMzJONm51TUdWaEVqWUFVVmZxTUxtVWhJMHZSWHZkUmJXQW1aR3JxajZvZitYb2lnTkRNSHYvRQpsSDRRZ0hUOWdHTVNpUU5aSGJ3MVcyWUJrUHNlQWFUdmhBY0E4WkpIQTVCYndIVUFaU25YSVFBZytEcTFyMXlUVUtZeURNbFNCaUZ3CkpWMGVCaCtrU21NcDBtQ3lBTjhUOUg3bVNXejQ2ODcreDEyOWoyUGR2eS8wZmszb1h5RDJaVWhYbnBNTzdaSENsQmNMQjRwaUFIU1gKZ1g0YkFKRzh3MHhSejlNdGkvaVJXQURwK29rRGtLNGZTQ0o5TXRFL0VQNlpWOEY1VXdDNkRBQktsU1pla1U0RUExZ2s3QUVBMVUwRAp5SHVnMGovYk52alBDa0RMaEdzekpsazZsODcxckNJdlArK3VmUWNqcGdHVXlsMU5ERG8rWTBwQ09vYTBwQXBkcVVLMERvUzZndVJyCjZWSVg2cDZlcVFjSWhlOU5ZL295Nkw0MHRuY3BqODdOU0dPN2w1TjlyK0MxYitMZTNTNUhpYXZZNWl5eTRoWWphUzFnVEdqOWl6S2kKVWhDRExrdkk0bUkwRXRwc0p1M3FJRVNIQ3dFSTAwL0Q0SG1Yb0RGSWRrSjR5Y2JKTmdBUUo1b0owWXlMUnJkUVpHUE43ekR5V3Y1awpzbklqVSs3TFZLNWxLeGRYZUkrdjlyVTk0Njk1MWwrYUV3aHRDbkRSK1BubkFxZ21oQkpRMW9lMFNCdFFrSWMycVZrWEVaNExNenY4Ck5Lc3c4SmEwTWtRQmNWcENXSE9ZQVFPMWxYR1FsZ2pUSEthYkl5U2t2TnJhNHVYaDBWeERGdDU4Mm5WN0dmMVJOdjV4TnZHOVZTN0kKUjZzeGlOb1RqZkx4S2t6dmlZNE4yaWNmUXlMTlFISHpnZUtTU0ovWU9sQmlFb2tUaFU1QzdlZlRKWkUrbnc1QXNaK2w2MmNPQU1XaQo1NitlalFiUUE5QkpqQVlnL1hyc0V0ai96dUgrTnBmL3V4eitwN25DUCtSdy81VEwvM01PL3krNUFnUUE5SXNONHE4M0NKQTdtOFRKCjU0UTd6NHVvM1dlck1QbUM4TXR0d2k5ZllpYzNNMmpzNFVicTErdUpPK3N0Mzk0aVpURERUOUx2UCtQc2VaeWR5Q0w2cDZvUjQ4bmsKZGNoU1lreExpbnQ0RVhrem5leCt3VjIreDFsY2pPMUVIZEFZb2tNSnRnY3VNZHJJOGJhSTVHN3dNUzB5c3ora2FCVWdqVDVha0g3SwpnZ2RLQS92Q3ZyYWcwdUtYOU4xZXNRQ0s3UWRxOU5OTlBoYnVxZkZ5cFg2eTFJZFZpWTRHeWtaelJvcDJ1M0hYeG4zMW41LzR3REQ4CnZYblhoai9YZFdQZVJhU2ZlUmVHNXA4Ym5IZDJZTjdwL3Ztbit1YTkyenYvWkRkazNva3VsR1BYREVjN3RUemFjTkRpRVZqTTRxUUwKUlRZL0lwR3RvYkpEUVhnTDRZTW56Wlp5cHEyY2Fhb09lZzhmS096cGZlbjlEOUwvMXo4cytQTi8rTDBmL2NORFAvckp3Ly9yeDEvNgo4RStlSFByT2tvNGJHNW9Qa0tJY29jeVVZcVNrRW9rMjByU0RZRmdIYVg2RnJNNGl1MEEva01YMFJCSTFrVTZPNk4vbnVHamY5c1E4CnhRT1BodE9wNFhSaVBKMGNXME9jMjRhRjlqcE1lOXhGUmZqMklzK092YVF4ejJPMjRuazJ6KzVpS3Q5TTVNY0NTRE1ReHByc1RDRzYKVHBtY2hOa0dUMnR1YXpGdUxjVHR5K2lPVkhvUXZzSVVjblNGNStJV3JHbUgwMTlzcFFwczFrS0hCZlVBWVdZTEJneXlXeHlZMmVZdQp4SENMeFZZclNoZnJxNjgyVjE1cjFjN0JxTmVPUG8wZWdJb2FuOUhpRitoSE93ZitVa3Y5dWFhYUU3VVZoNm9qN1JWaFZBRUtlNnNqClNpU2krRU9pSEJBbHYrRDFpWDRmT3BheVBCencrbjJSQU12NWZmRGsrV1YrZkFIVC8zVm04SEY2QVBJRU5mQWtqUmE4RnJFalNZQWIKRGtXbHo2aDJYZHZucGRXQjlOcFBxalFPU1pQUnNwY1dvSSsrL3FYdGVOZXp3bjlMejJ6bG56V2g2YXdPM3RDektuUjlWZkRXcXNDMwpudzFjZjlON3lDT1RYcVZZOXRzRFhtY3dldm9wR2l3T2lhWFBWRHlsUG5kWXdVSUFJTkd0cUdQSGFSRkh2V1cwYlM5YnRsRzhzTnczCmxwZ3M3NmkrSW9ZV3hlUlJMV2tTTWhCaWtEaTZtQjk2aXU3N090SDlHTkVGV2NnUEx1SjdrcVFlZEpTRU9MQ0tQLzlOcWRIazk0WjkKenJxZ3NiclU0aTlqZ21HaFBvQTNCakI0cDEwWjhxaTkwbWo0NFZTaTRvRm9EVURhQ0VUUVQwaHgrK0JsVVhTeEFnbUFvL2ppZkNhUQp3NTViTEhjbUMzMHpOZm9NcE1xRGV0S1ZJVDJaSUo0WjQrM044ZzFrKzRhemxhR1Y4dEJLcVgrTjNQTzAwa01GQW1nVVVNaFRYYTYwClZ2RHRaVlJ6bGR4YUpVVFJreEFOUUxWaENRQlU0UmVtbDhCNGltVThKSVdoTURoRTdRRnlXRW5FSUlmSEF3QkMxUk8zL1hXeTlGa1cKQUhRMU1lbDhSd2JYa1M1ZXp1QXZyQ09PdnU0TTVkdk5oYzdpUENkdVNPTTdJVE1ZYUJZQXFmZEU1d09seTZnZzlCc0JsTW9pQTZXeQphTHBBS25kdE9YUHhhZXJVNjNqd0xZemQ3YklZWGNVVzNHUjJXMHBJY3pFMUs0QktDSnVGdEFHQW5Pajg1K25qd0dZREVDdVU2QUN5CnF3QmF4NTlJVmlZeXhLRU1xVDlMN2xvaFgxeWx2THZhZTJpTnQrMFpiM091dnl6WEg4a05oTmI3ZmVzRE1sb1hROUJoWTZzK200S0MKbnZWaDRia2d1OTNITURKVHJuQ1ZRYVk2UWpXSEtBMUFyYVVvc1FDcXJMUzFlWVdhb0VjTUdDOTgwL25IcWNUb00vYVBzNTNmWGVtTQpBeERvQnhKN1V0aGRCa29Ba0dhZ1JQck1EYURaa2tpZnVaTkluTG1UU0ovZkpycHZwcGU2RXVtakpqcTI4VzRBUVg2NEZpWFJRUGNGCklOVkFYQXlBK0U4MkNocUE3cnlFOVBQcmwvaW9mamJSdjl4TS91SjV6K1JHNCtScXMyOXZleEo5TTlOOWV4azFDcThscVNScVEwbDgKTVFZQXBYcEdGcEVUQ0VCNFpUNW1NdUs3QUVEdzVnRmVjVUUvOEpycVprdG94aHpnbkhVS2xRZ2c3VW9jZ0xRZVo2M0dFd2NnblVITgpFdHNnQzNVeVd5dTVxc1Npa0ZCRThCNHo3M3ZERTNuVFUvMDJXWnA1Nk5qOHNlOFllajh3ZEF6TVI0dGNneENnaitGTXYwR2xEOFJ3CnNzZHcvQnBFcDgrOEkxY2hoc01kaHBPWGtscGJ6SXlUSi9PQ1BoeCtSK0JYWm4vWWZTWkVuUTBFRGxTMTB4Y0dObi84cDQvOS9VOC8KLzlPZmZlNkhmLys1Ny8zcGcrLy8wZnlKUDV3Ly9MMkhCajc4ZlArM3Z0aDc4NHM5WS9QSGVoWmN1UEp5NHdGU0VzTWVNMHVWT0lRUwpraSt3a2RadFpIMG0yWU1BUkYwSC9jd05vTm15RUY3VTZSSDRSUGdad2MzbFpNZnplTU9iTG00UGJpckd0aHZkMi9PSW9nSlBpUlV2CkFBQVZ6UTRnQjF1VUNLQUN6TGJLZldXRnV6dmIzYlBLZlNuWHMvOFZkM0FQUnFBOVgxYUh5VzR2Y2RqTVRxc1dpeG9Ba04xcXE1ZWwKU3cxVlhjMVZjd0JJMWM4TUFHb3JENkVLME4wQVFpZWhxZ0NxOEVzQUlGL0FYeHJrUkw4M1Z6aitDSGY5S1JZQkNBTDBnVHpGRElGKwpGbk9qT29BMEE4VUNTTmRQTElBZ3FBaWsxbjdpR29CbTFBOGtrVDVhcFdkRy9TUUE2QUFoZVQ0dGdQQllBSUdxOTdJVkc2UUwyZjdyCmtFUUR6UWdnaUFZZ1NKSXd2SWdiQkFOQm5tVDZsb2dqUzZUK0pVcmZJblhqV0tyUTlTeC85Q1dwSGxORXI5OVJIaWtKbDNwQ1libzIKNEttRnJ6WkUzaitBTVBWc1lBUWdRakR1b1JHQWtwUnJpWjNPV3FWblJ2MWt5RU5hVFNzeGlRQmFwU0FBdVFPaG1nZ0pBS29xazFySwp1Ylp5cXFrYUFTaTY3SlVRSFVCVlFTa1dRS0pBY3l3eE80RHdPQUJsaUoyUVJBTmxjSjBBb0V6aDRqcnF4RGRja2IwT2VGOWh6TmNCCmxHaWdXQURGR2tpN25pcDA2RDNSNmFCWCtzcHNBRXBtZTFMWUxyaGN5ZzJrTWtQTDZTdnJxQU5icU1wZEdMbkw1ZGpyTWhhNmpDYTMKdHRTRnhpRitWZ0JDVXhDbkFWU3lnMFlBU2xFbU12bnhUR0VzVXhqS2tnYXlwYTVzK1dxMmNpbGJ1YmpHZC9ocDMvNm4vUzNQQm1yWApCc3B5Z2o2MTZoTmRBdFBkODF3QUlrSGcrdk1CL20wdlEwcXNDaUN1S3NRMkJmbFlBRUYwQU5XWFltMStzU0xzb2N0TlpiamplNnV4Ckd5dE5IMldYQUlCMEEybjBpUVZRb29IaVZzUjBBeVhTNS84UEFOSVN5NkJFK3NRQ1NETlFJb0RtTUZCY0R4QUFDQUlBK3ZzY2ZnWUEKNVhLL1dzOS9zcDYvc3lFS0lLRFA1QmJ1RnkrenYzcUJtY3lsSnplUS83TFYvVytiOGNsMWUvL25SbUkxMWIrQStqQ2J1SkhFM1VwaApoNWJRSHdDQXRNUysraWFqNDFGSEZsTTNOQUFWWUJZenZ0dU1vNlBDYmU1OEYxWHNFU3dBSUxlblNLYXROUktoYmdTVDR3QVVYZithCkFsQjd5QXNBMG9wQU13SW9PaGhhWUdwRm9scXdsWE5taGJLYlNYNGJVNytHTzU2Sjl5NGpPck9GTTE4NzBXVVkrSEQrcGR1SVBtZjYKa0h0VStoaWk3dWxHT2RhRjNLT2pCM0x3Q3NxQnl3KzFkeGhPWE02c2dlZDI1d0dlUGlBN2pqSWwrOEtoeHRwRGUvdDZuL3JiUHpQOAp4Nzg5OE9OZmZQRmJmMjhZL1JQRDJJZUc0ZHVHbmh1R0t4TVBucjMrMEptUitlY0dEUmY3RFpkNzVwK0R5M0hEK1lHay9RZmVMSlVaCkJwTm9vMTNaWlNhZEwxTE55NmhlVkZ5aHhsVUFYZjhVQUVwaWJxUlFZL0NKeVRTNm5rb1BQazJjZmg1djJZM2JpN0dkWnZ6TllzL2UKUXJmUjRpNndldllXVVlYM0M2QnR6b1p0anFaWEhBMnZ1VXAzWUF6Y1kzRVpYZllpaTlWdXNUcXROcGZaN3JBNDdCYk1naG9HOE9JaQpsd3R6dWxvQy9vN0dHZzFBM1hNQzZOcStLSURRRUtDNmFRRFZSdUlCQlBvSitlUUtuMUlSOWdjQ3Z0S2dJQWVVTGNLUngxaEFENnI2CmFQVFJhaithZm1JQnBFY0RrRVlmL2FpdldBQWxWb0IwQU1YcEp3NUFzVXRkaWZSQitnbE1BSUJXUndFMCtxWnZId0RJTHhjcnZ2c0cKa0I4QUpEcGpBYlNIQXdCZDBnQ1VhS0RZdHVoWUEra0FTaEZId1VDTCtTRXRTNlhScGZMQVVtLy9ZdS9Zay9MTko0U3hoZnpWWk9IMApxMUtEMmN0N1ErYUtpSzBpakZlcU8rVEx3dFFjQU5MMEV3Y2dyK3hHcjQ4Y3lmRU9OMi9heFVTZVpTOHM4a1lCTk1OcWx6S1VGa01mClZQdUpXZFJMakFhZzVkNGhBQkF5a0RJQUFGcnQ3WEVFeXFyQ05BSlF1UUFBYWlsbm1xb0FPbUlpZldZRUVEb05Jd1pBRkkwbkFNaHgKTjRDc3NRQktaRkFtZjAwRDBMUFV1NjlnVlR1ZHJnSm5TYjdUTlEyZ09BUEZBVWczVUFyWHZaU2QzaHEyVE81T0U3c1hrN05XZ0pMcAo3bVMyYXduWHRZVHR6NkFHbmlIUHZFQlV2azU0Q2wybVBKY1JCVE1WZVN3bUJDQ1RoZmdNQVdUUkFPUVJpeEdBR0RHSFA1WW1YMWYxCk01WWhqa0F5cGRFTWVWaExsbkkxQ3lUa1BidmFkMktOZi8rei9xYTEvdG9jZi9YNllIaERBQkxjRVBCdkNQbzJCUlNVb1BTOFg5cmsKNTEvM3NtNlpLZldpWVZibzV4MFU0Z0NFaWtBcWdKckNSSE5BREFEbmd5VlV3SHJzTGR1Zkpocy9YRkg4blJVT0RVQ1FHUUVVWjZERQp0dWpQRmtDSmJkR2Zyamw2dGlUeTVkTWxzYzBvRVQwekFnaGxKZ0ROWVNDOUFTZ1JRRC9MNFdZRzBFYnV6aVorY2pQM3k1ZTR5YzNNCkw3ZlN2OTVDVCtaUWt4czlTRDlyc1YrdmNVckZEWStMdDFLSWJ5Y0wxOU80bXhuMCtHTHVXMm5NdUpaVStucHMwdWlSSlBvbXZKQy8KZ0Zmbk9TMW0xeDRBa0IwcnhJZ2lvQS9CVzlBSlU2NDgzbVBTTm9JQmdBNUdmSG9UZEJ5QTlrZjhjUUJxOFBLUWVvWFRvMVo5MExsZwo1VUpKZ0MzQ2Fmb3RjdCt6bnE0MFluZ0pPWlJFZlA5Sjh0WlQvb0dIVDQ4Wk9tODlmR3I4Z2JORGh0TjlobFBkS0NlN1VJNnI5WjZvCmV5N1BPM1RaY1BBU3lvR0w4dzVjTk95L2dOSjIvSUdtcmtkcnp1NE1WZ1ZGOXdISjBoNk9ZRmZHSHYvcFAzejViMzd5MEovK3lQRGUKRHd4OTd4czZ4Z3dkdzUvckhESmNIRFpjR0RhY0c1cDNkaEQxR0FHelRuUWFqb0tsdXVBdm1nOS8zZUdPTDdjZGZNMnZVQjRyUEljVQprZVR6WkhzNk5aaE0zUVRITEtISFFURExxRkVkbW5GSnBFODA1RzFVbjZORzBBWXg5dVlpNWtZNjFiK1M2SGpiVFJXNUNxellteWIzCnptSjNBUURJVFB3R0FLRk9vQ2tBbGVBV0RVQjduR1NlZ3lwMGVFb2NEbFQwY1JnZE5ydkQ2ckZhelZhckZSaWtHc2lGbHNBd3M5VmQKVXVTd1UyNzhRR21vczdtdXE2V3lxNjI2dTcxV0czNm9CVFVBM1EyZ3EyMzFBS0RUVFFoQUI2dkNBS0RtTWdTZ3l0S1pBQlR3VllYOAo0WkN2TENUNkEvSTN4WDBMbUY1MDlqc3pCTkdhbmNFOVM5WEFBM2cyQU9uaTBWYSs5Q1F1Zm1sWjRiOFJtNVdvblJsRmJRTkNTZVRPCkRQcUJEd3ZmUUFBS3ZwOFRHSG5MMjBiSXVBb2d4MjhESUphelVyUnJEMXUxWHJxaUF5ak9RTE1CS0UwYVFRdGg4a2lLTkF4WklnNXAKV1N3T0w1SDZseW85UzcxRGk1VHhwNlFiajR2RGowbzlhY0twbCtWS3R4OHJDNXVxd283eWtBZmVJcFJHaUhzSEVPZ0hnazdORTEwaQo1d0VBWWJ6MUhhYjhhZmJTSXFVN3NkZEg0MDZhZHlCZFFWbm1IWVJvalQ1cXI4L01BUUF0OXlJQVRSbG9ZS1hTczhyWFkvTFhsb2Y1CitqQmVVOFkxVnpETkZWeFRsYjhWVFFPS3A0OE9vSVl5Ynh5QS9CSW5pUXpvTFJGQWFnOVFISUFpY1FDS05aQUdvR1hpNWFmcGMxdmQKalcrN0NIZ1dMWEE0WmdWUUd0OEZpZDBnRnUyU1ZnR2tiZzFEbmRIcFV0ZmNBRXBCMTY4bDhWMHBER3BCZXM2OTd6VTN2OHRUVk9ncwpMSEFXNzNXVjdNR3NoUjYwL21VbFMreUV1Z2QrSmdDWlBLZ1Yya2JhN3dkQVZod2RCMWJzNUV3N2FYNDlkd1FlZ2huaW9KcWhaZEpRCjlLRXBYMDlEOWRoaGRhV3pUMTBkdTdKYXViQkdPZmUwZkdhdHNuK3R0MzJ0cnlYSDJ3QWV5Z21VNVFaQ3VZSEFKbDhnMStkOXhTdmIKWlRic3hlRXhXaDEyMXdlWnBoQWRCNkNXVWdwU0gwRmpFc01ob2xxeDhDRVRpZGsvekhCOE45TUdBTklOZEM4QWl0T1BIcjBiT2k2SgpQZEZ6ZEViLzJXZlhIRDFiRXR1bFAxM1Q5SDNuUGdFVWV6TzJDWG8yQVAxckR2ZnZ1U3dBNk5lNTNDY2JXTWprSmhZQTlKOWJhYTNwCjU4NW1ZbklUQVFDYXpNRW1WenB1NTFZc2s2OHRGTWV5NklrbDRsZ0dNNXBCZml1Rkg5TUJsQ0Nod1NVc0lLbnZCYncyejFaaWN1eXkKdVF2ZGhJbGt6UVJUZ2pNbUI1NXZzKzltOGVKeTBkM29aZG9Ea2o0SzZFak1OQ0FkUUxGdFFCcUE0dlJUSTlMVkFsVU5Md0NzeTBpSgpXK21ER2VUMUJaNC9XT1IrSHd5VTdYNHZsZWhmNk85NjROU0k0ZExnRjQ0TlBuQm1USzM2cU81UjZhT3RjODA3MUFHWmYvQVNCTnd6CmYvL0ZlZnN1UUF6dDUrZTFuWCs0NVlTaDdaeGhYOWZ2dFJ3dGxQbldocFpYYjc3L1AzNzZ6dy8reVE4ZitOWWZ6dSs3OVVESHlQeXUKTVVQUGRjUFZVY1BGb2MrZkdIandaQitxTFozc1JQUTVodjZLQnc1MlBuQ2cxM0Q4L0lNSDMzMm82WktoNWR5QzJzYWRNa043U3ZhUwovQ2J5RU1BRkFKUkdUU1NyQUVxalIrTjhHWk40RWtWRHZaY0cvd2Y2K2xKbVloRjNheEg3M2hMbUZ0ei9xaWVVaDFtdDJOdG05dzRBClVBa0NVUDZuQUpEUjVUUTVNWXNEczhOLzZHUld1OWxPRzYyU3hXWkdzZHBMYkU0QUVIeUFGWU00aXgxV252SWNxNGgwdDlUcUFPcmYKMXdqdTBmUVRDNkJyYlhXZDdRMVgydW92dEtBcGlNZHF5L2RYaFZ2S2cwMmwvcHBTYjBWRURvVmxiMWhyQUJLQ1hpbmlWOHFEd2VxUQp0eXprTHd2S2thQzBTMjVOWnE1OWZXcER1MzZVS2VwclZxR0RpajJKK2hHaUc5MmoyOTIxV2M5cW9pM0R2dkZvNzNNQXpXN09EazREClNLZVBsampseExiK3pGZ0VXaE5DQUZvZGVDOG5PUFMySHdEayt0UUE4cUhkTmhxQTdQQUN2SXVyenBFNjVnWlFvb0UwQUVFMEFDVlAKQVdpaE5Kd2tEeXlSUVNROXFlTGdVbWwwb1RUNHVOVDdWYjQ3Vzl5L1J4RzhRV3RWMkFZQUNxT0IwV2cwNG93QWlvME9vS0NNaXhJRgpyNDhTaDZZZ09uajdtMHpOR3ZicVltOVA3RndmVFR5eDd0SHBrK1VkeWxKeE0zdjZkQUNwQmhySTl2WmtlN3QzKzFyaFFZVUFoSVpCCjA0MFZmR05Wb0tXY1Q2VFAzQUNTSlZZSEVFRWpBNm1ERU5FY0lHQ1F3K095a3JpVnNHZ0FXc3VmeVpTdWFZbVRFQUFvUTdvQ1djbGUKM3VUWjkwMk0zNFdPMWJzYlFMRUcwZ0EwZzRING5tUzJTOXNiRDVkcElycG5UZ0JkUzJiUlFsZ21mU25IYy9BVlBMd2R3L1ppK1h0ZApsdDB1eDI2bmN3L21WQUZrc3BKR082RU9RcHdUUUE3YWZvOEFja3RXdDJRbXhFSUEwQzZhMzhBZEF2UmtUQTh6VU5rcm8wWjlkSkNiCk5KWW1qV1dvTmFFc05Ob1NqZmRlSVE2c2xpK3ZWaTRCaHRaNDMxM2pPNkl1azdVOTdXL0pWWnFlOXRZOTU2MHdLZDZBRHg2WDF1cUkKc3k1SUFvQ2F3MHdpZ0dySzZmb1FXZStsU3dQT2lGUlVLT0QxcjhrM1YzQWZadHQxQVAzQnlta0R4UUlvMWtDSjlQbS9BTHFueEFEbwpSODlNR3lnV1FMSG9pYjJwYnhEVEFmUzM2N2g0QU9VeUFLQmY1cklJUUxuTW5mWHNuWTBNQXRBV0N2UXptZXVaZkk1QXJUKzUrT1RUCjl2OTh4dUo5NS9DanlvMmw4a0FXUDVoTmpxZHl3NW4wZTh1NG9VUUFUV1ZvTVhzemsrbC8wVldmYjdkYTRmZUdLS0laTThOYjNaVFIKNlM2QWU2eTJYUlJXV01wajhEQnI4NHNId3Q1WUFFRVNBYVMxQWVrQUF2ZG9xWlVZMEU4bFIxVFREdHdqdit4dVgwRjBwQk1EV2RpMQoxZmlaWE9Mb0ZzdkJqYzZXWmZMeGgwNTBHODUzZmVGb3IrSGRVY094YUd1elZ2VUI5eGdPWHBsL1FNMlVld0E5RUVQcnVmbXQ1K2ExCm5EWHNQLzlRODlGNVRXYytYM044YVhONzF2Zi9ZTjVQZm1iNDNnOE5nN2NNdmJjTW5UY2Z1RGp4K2RQWFAvL3U4UHgzK3cybmVoNDgKMXZQQXNXc1BIT21ZcWlkZE1SeThPdi9BMWMvWFh6RzBYekxzTzJWb1BXYllmOGF3NzkwMUZhVjJvWEFYNVYxUEhsTjN0dDhHQUtVdwoxMU9ZaVhSbUJtaE9jVE9CUHRFZ1A0R1E0UCt3bExtNW1MMjFHQm5vdmMxRXkzYWNNbU83RUlBOCtTcUE5aGFUc3dMSXlhazd3bUlBClZJUlo4bDFXM09ad216RlBDZTR4d1JXTHcyS3lBbnFzbmlJclZtUnpUblVDT1JDQUhHNmJreXh4V0JTR1BGbGRyZ0dvdTcybVoxK2QKQmlBOWVnYzBBS2hEM1FLbUFlaG9YZm0reXBBR29PcUlVcTRDU0FrSkdvQkNQcm5NcDVTR3kycUMzdktRRHdCVUhoQ01TbjBHZStVSgo3bm9TTzZKdWFFZUZuMWozeEJsSUI1QSs3RWNIVUlhaXpucWVTVCtRT1BlZzJnOHE1TnlhUXo4ek1naHVQaDI4clFKbzhHMS9DeTFqClFkbm84N3J1RjBBQndhVUJpSkk4akFxZ25WenRPcmt6RmtDeEJwb05RSnFCVXNWaGlBWWd5RkpoTUVrYVdxSU1MbEg2VXNUdVpUeWsKZDZuWTg1VFk5ZnY4d0FMKzNQTlN0Y2RQVllTY2dKNUlrRUJyWWZjSklFRm1CQUZUV0FRZ0srZjZCbHUza3V0YTdKMGVhWmhJSDRqbQpubnZRRHdKUWx0S2ZwUXhHQWVRYnpQYjNMdmQxditrOTVBdDdBVURWWlJRQXFLRlNySzhPdEpYTnVnVFdVdTZMQTFCWTRUUUFDVHdWCkN5QTNqU0VBMFk1WUFJRU40Z0FVWnlBTlFNdWtxOW5jMVJ6eTJEWlBZS2ZUVVdTM3hRTklONUFPb0hnRDhYMHBYTGZXQ3ExdWowYzEKb2NWazUyd0FTbVc2a3BuK1ZLWm5KZlh1WnFMOERkeXp5Mm5lNHpTOWc1SHZPS2xkRGpyUDVWSTNlUldCZStCZk1odUFqRzQwRmZyZQpBVVNLYUJhaUJpQ01MZDVGY3lxQXRKRUdzWW5PTnRCNHZrd2NRUWFTUmpOUmh0V2dicUVzcVM5TDdzbVNyNkdlSWZsS3RuTHBXZW5DCmN1Vk1qbnc0VDY3eUtueGxFS3NOdVJ2OC9Hd0FxcXVnR2tONGs0K05oRDBSeVZnc2MyOTdhdmR2S2Z0Z3VVMDMwQndBMGcyVVNCK3QKTFRxUlBwOE9RTE1sa1RLZkxvbjArVzhCa0c2Z09BRHA2SW05T1J1QWZycU9CUUQ5MHpwa29BUUEwUWhBbTlnN3oxR2ZQQWZ1OGR6Wgo1UG0zNTkyVHp6aCtzYnBrNHVXaWJkaVJUSHB3a1RLYXdROW5FN2RUK0lubC9FZ2FPelpydUVFQVVBWTE4RExlWk1KdzNHTWttUktHCnRWQ3MyZVV1c0dONUdvQUlaMzZJY1FDQVduMkNEaUQ5U0ZRZFFMRnRRQnFBNm4xOG5aZXJWVmd0TlRKVEtaQmxyTnRMMjBvdzloVjcKK1dabnl3dFlQVHArd1NGc2QwaTd6ZFFPRy8wc1YvKzV3NWNONTY0OGVQU2E0Y1RRQTRmT0crRG1vVXNvYXIzSHNGOUZENlQ5cktIdApER1JleTJtSW9mblV2Q1lVUTlPWnIxU2QrRnpONFFkcmp4cU9YekQ4OFovTnYvM0hobzZiaHE2YmhvNGJodlBqaHROakQ1d2NmdWg0Cjd3TkhMejl3K0p6aE1Db3NQWGo0MHNPSExqMjgvOEw4OWd1RzFrc29BS242QzErdFBQVTc5Y2NNYmFjQVFGK3FxZHZzbzkrbWd1dW8KZDFPb0d5bjBlK25nRzNZY0JQTXBBQVNmTmJVV2laS3Fsb0tXc0RlZm9VKy81dllhc1h5MEJPWkIyK0FCUUNaeTFpYm8yUUJrdGJpcwpKWXpGcUppTC9FYWpYRmpDNVp2NVBLdTB4K0xkYStFTGJFU2hIWjBJWm5HQ2ZWMTJoeHV1K0hubWRHMUZkM09WRHFDZWZmcjA1eWlBCm91dGZNUUI2dDdIcVNHMlpCcUNHVW45bGFUeUF3ajY1M084dERWZlVCT1dxa0w4MElGVUdPWWRTdllLNThLUTRvZEVIbFgrbXJKUEsKb2lSaUNQU2pCcTVNanozVUswQ2FFdUlNQkZrWm5Jak5xdEFOTGF1REU1QTFJVlRhaWMzVDRWdVFSQXhGQVJTOGxSdnNmOXZmUkNzdQpBSkRmaC8xMkFISjRHUGQydnZiWkJBRHBCdElCRkdjZ2VGK2RKZzJsaW9OYTBLNTRjVUNkd2RNSEFFcnlEaTJSQnRLNHZuVDEzUFduCnhKN0hoS0ZIK003bDRzRmlueThTZEZjRzBSQ2d5ckRySGdHa05RQUJnRGlaVlFIazRsbTdoY08yTVkwcnVCNGRRSW4weWZBTlpNVUUKZ1VaTmdudmlBUVRKOWcwdjl3OHU5L2RtK2J0ZlZZNHFvWUM2QkViQWExOWRoVkJmSFdvdG5YVUpUQU5RWFVTT0E1QWljM01BeUVsZwpPb0Rlb01OeEFJcGxVTFFDSkhjdTUzdWVvZDk5a1FqdmNMb0tiV1pEdW5BdDBVQnFaZ1pRbXRBUDRra1Z1alFBYVYxQlNWVDBJTEFaCkFaUkNENmJUUFUrVGgxLzB5Rys3VGJ0Y3BqME94MnU0OUlaVDN1a1E4cHk0MFdNeWt3VVdxbGc3Qyt5ekFaQmd4VkVSeUV4S1JRQ2cKUFJTM2lUdVlJZlduaXRGcUpLb0dpWU53RHlSVDdJV2JVeG5Na0ZIZnUvYmcwRXVYeThReExSbkNPR1MxTUp3dTlxMFJMKzZXMmhRNQpVQmtnNndKMGcwK1pEVUJOWlVSVHlGVVRFV3VEdE9RcktWYThPY0VEbnQwTmNRRFNEUlE3R3pvMmlmVDVkQUNhTFluMDBmS1hxMlpPCkluSG1UaUo5UGwzdTZ1OUo1RTVDVVB2UjNRRFM4cGZQc29rR2l2TlFMSUQrWmgzN0d3QzBub2tCRUQyNWlmaVBMWjdKOWU1UE5ycC8KL3B4ek10djYwelZGcmJ2MlBpTTA1M2d1TEpCdVo2TEdsQTh5MlE5V1NOZVdNTGZpM1RPVmRCNVZnSmFSL2R2Y3pWYUNwQmdyelZrNAp0b1FnalE0c3orYmFDd0VBdWUxNy9iU3RUZ1hRL3BDaUEraFlaVmdEa0thZjJEYWdXQUNCZXlBQW9HcUpydUNKVWdhM2lpVkdWM0dCCjBWUllZaXQwdUFvZGxwSVN6a1g0bndBQWdBQkpSRUZVSTFaY2JMVVZtUjJteld6cHcvdlBHYzVlTmh5NWFqZzI4TG1EWnd3SEw2Sm8KL1QzN3podmExYUJpRDNLUFJoOUQ0N3NvRFNjaFg2dzViamh3d1ZCOTlIZktEeHYyWHpZTTNESjA5anh3N2Ywdm5Pb3luT2xBLytlVApGeDg2ZE9uejhFZUhyaGlPZFJqMlhUSHNBKzZjUmNXZTlsT0dsclB6bXk0KzJBajNBSzBPR1pvT3phczkrN215YzRicUkxK3FQYmcyCmRPSXRxblFkZVRvWkFFUzluMEdyeEdISDV3QlFHbk5qeHFRd281cUJsbEhYTThqUlpmUklLb08yZks5Z3JyemlpUlRoeFNiMzdrSlAKd1JTQTl0NHZnTDZKeWQrd1Y3eHFPZkJTeWFtdDVqTmJMS2MyMjA4OTd6aXp3MVN6eXh6WlkyTUtIRGFqeTJSeEdXME9xOFBoc2pqTgpRWUdPQXFpcG9tZGY3V3dBQXYxQXJyVFZSNmNnSmdDb3RGUU9SaENBMUMxZ1VRQkZ3aFYxQUtDd3R6U2dWQVU0VEtsY3paNS9TcnlsCkxYdkY2NGVKSG02cUdTZ1dRTWtjL0JIY002WXhhTG9VcEVTdEVGY0ttbEUvcXhMY002V2ZteHFBWm1RUUFHaE42SFp1c0hmN1p3c2cKcnY1WnVXdEZZRHpSUUJCOUtHSWlnSlpOQVFoSlNCN1NETFNFNjBxUyt4ZWlMV0FqUy9uaFpCNGRIUHVZT0xCSTdQc3kzNzlZT0wzRApXeG9La0RWQkhOeFRGZm9OQU5LdXh3S0lrVGdBa0pkQkFDcmgzUzh6emN2NVBnRFFqTXRlR2I2aEdmV2pabmpHeEFKb2VReUFYbEpPClNPRlFmZGhWVStZR0FOVlVTaHFBV2lxVW1STURvRXAwQ04xZEFLSVo5K3dBY2xuUnlNQW9nTExrcmtRRFFiS0VyZ3pwRWdBb1MraFoKelp6ZFFwUy80M0lWV3dGQWZFZE1vbU1UMCthb0FJR0I0QjZoQy9WRXMxMUlQK3kxaGRUMFlhaTZnYUlNb3Z2U3lMNVZub3Vic2NiWApYWjRkV1A1MkxQOE52R1NIRTkvcGRPMXh1Zkl4UjVIYkJyZ0J4MW5WUXpEUUNFU3F4RUtiNGJLRU5CV1R4aUlDTWFoRVBSUERRYnR3CkJpTjVOTmhibllXSVJjY2hxck1RUmNXQkRDU2ExU21JUmxvd1k2TE56cHNMV2Z3RnRqVmRHSjRxL09qY0dWb21vc0xQWGZmRVJHdVIKanIwblhSeUVwSWtUV2RKUWx0enprbkpFOUFsMWZtZGxrS2tKY1hWQnNpRk1ONVd5eldWY0ZFQnE2aUpDUThSZEY0YkhNUmxXSEtSawplMWxzV0t4ODY5QlcrbHZMdWI5SWRZdy9hL2xvT2ZWSFdjVDNWcGQ4dk5JUkl5SHMrK2l3TVB3SHEvQS9XdTMrL2hvUEpMRXQrazlqCk1odG9ZcGUwRXVtVCtQR3pmZTUveWRKWVFydjBwOHVNLzZ0RTlPaEpGSThXN1kvKzZsa1c4dU8xSE9TdjF6SzZmbjZpNWgvWHNSQUEKMEwrczQvOTlIWU9TUS85bkR2V3JYQktOK2RsQTN0bEEvT2RMMXNrY0o5ejgyVmJYNURQNS83eG16KzMxemhjWnFjaGhmOVhWdHBvYwpTK1luNEhrd2t4MWFUbzFtMHNQWjlFZ1dNNWJPVHFUd1dxNm44V1BMMEZ6ZDc2Mm0rbDhsMnVHUlRUTlduaStpMkdLTUxrR0RCUEZDCnA2dkE3c3kzdWZMaFVxQ3MxVjVHT3hEalVLbC8raXl3MHVDUnNoQUVyaHdNK3crRWZKQjlBYVhOSjdVb1FwTlhVZW5EMU10VVBVZFcKc1VTQWQ3TzhrN0h0d2t0MjJVejVGclBKWXJIWVNvcWRKWHZnbm1KbkVSam9MUS81eFlaV3c2bk9CNDcyUEh6dzJrTnQxd3dIejg0NwpvR2IvNlhudHArYTN2VHV2K2RqOHhxUHpHNDlEREkzSFVPcVB6cXM1K21EMTBjOVZIZ1VKd2ZXSGE0OGJxbzRZV3MvT096ODg3OEs0CjRkMFJ3N3VJT3c4ZXVqcnZVS2ZoYUlmaDZIbkQ0ZE9HQXljMVJjMXZQcTBWa09ZM3ZCdE56ZW41dGNjTURRY05OUWUrVUhwNGZ1V2gKZWZYN0gyczg5RExkOEF6Vm5VS05wZEFqYWN5dFpQNDJ2RUpua0JPeDZJSHZ0cDRFRC8yR0xHZkd0MUlOQlhnSmZQT043b0k5bnQzRgpudDJZMjFqaXlRTUFPVmdqQlBUam9OVE5YNHpSVFVGSzBEaEUwb3g2Rnp3V2VHdFhqRnRmZExaa2tqM0o5RmdHMFpkR0RLZVJRM0FsCm1Sck9JbnB6c0V2ZnROY1gyQngyUzZIVGJIZlluSGFzSUkrZ2o5TFV5VWE1dDY2bXY3NTVvTGxtb0sycVozOXp4NUd5L2dNVjExdXIKeHB1cmg5cXErOW9yQnRzaW95M2h2djJsbDlxclRqVFhIYXV2T0ZJWGJLc1RHNnVFdWpJUkJCd29VN3dScFZxUUtsaGVERXUrU3JuZQp4elg1NkhDbHJGUUdxdjNCUnIvWEV3eXU5eDU3bkxtOVdCaGZKRTBzbEc0K0pkMTRTcGhZaENiOWpLWnlhT3U3YnFBWm8zbElQZjhMClpjWjFzZGhvaDRKbCtXNXJ1ZmVqTUtLN3d3THZaVWJHTW9LM05paERlVklOSzlxOXNsbnlXY0krVjFnRlVCeDl5Z051alQ3cUNFRzMKT2doUjY2SEJSTWtwU0JnUDF6a2JTVGwzY3JVNXZ0NFYvcEZzLzBoV0FESUdXZTRieS9hT3JWREdaZ05RYkNlUTNnYWtCdFdCa3NSKwpkR0tHM0E5WklQVStLWFIvVGV4NmtoNUlZbnEyZWx1RmtMTW1ZSTBFcWRLd2ZrZ3FHb0dvQXdoUzdTY3IvRVNGanlyM1UyVSt0QVFXClVBaS83RkVFbkJVOGxPQ2tPTHVSVlo3bmppd1R1NVlvZzFPOXo3RkZvUDZNZVBUY2IvcjFiUFdlY3ZrcnFrTWt2T3JWbHFFalVWc3IKK09ieVdaZkFXaXY4amVVYWdBUjFFQ0lia3RtQXpNb0t4d3NJUUpwKzlDWm9GMjNGM1lUZDdUU1Rkb3ZiWmZIWTNxTGtYT1owWXUwbgoyZzB0ZGkyWE9yUEZqaXp4Nm5MaFNnNTk4QzJYWkxZVUcvUkpRYkVBUWdiNkxBQUVnVDlObzYrdTlwemVpdFc4N1hUdmNSVHVkQmE5CjdiTHRkTVFEeUVMZUI0QUlEcnNYQUpGaUZFQkZETDZWYVlLMzBlbmlnQnFFbUdpRVlSVkc4ZlNaTFZNQUdwOEMwQW5lSzliNHNia0IKMUlBQWhHa0FpaWcyU3JLOEl0WXZFVy90TnU3N0tKTitmNlg1Mnl1ZEg2MXdmbmVGNjF0UHUvOXdwVW12QnVrQTBneWtuUjRmQjZBNApBOFVXZnVLS1FIKytLcHBFK3Z6M0FtaTJKR3BtN3N6NEtmODFBR0owQVAzeld1YmZjdTRHVUs3bmsvWEVaSzduVnhzOGs2dmNuenhMClRxNHgvc2V6Ty80bW16TmFXbDdIZzBYNDlqZmQzSHJ5Y0JaYVVCNUw1VytsOHpmU2hWRUkzRXhtYnlTenQxTHBteG5Vald4eWJCVXgKL0FKOStBMnFyb2poY1RUanVKamtpdXlzMGNnWTFiMWdCUTdRanlQUDZzeURTNDR3VjhvVW1nZXRBa2pmQWpZM2dDQ285VWRoNjJTbQpqaWVyT0UrSXhUakdBbEFyZGxndE5yUFZZZ1Q5V016RlZwc0pGU0ZNVHN6b3lNUGx4eHFQR0U1ZU5SenFNQnk2WURoOHhkQnlDYVhwCm9xSHh2S0hoL1B6NjgvTWJ6ajdZY003UWNneWwrYmloQ1JoMDBsQi93bEI3MGxCendsQjEyRkJ4OENGMHVjL1FjT2poWStjL2QvelMKUXdmUFAzaXc0Nkgyam9lYkw4OXJ1bVJvdTJ4b3YveGd5K1V2TkZ4Q3EyWnFBUW5RTTYvK0pFcmRDWWloQ2tIS1VIZkFVSFh3QzZWSApEUlZIREkwSEgyazY4aExkdElicVJxZDlUUU5vTkJaQXNmcjVGTWxpeDUrbm12ZmlOZzFBK1o0OUptSVBBRWlyQU0wSUlHQnJMSUJNCmFoLzBpMWhyQnQyM2xKbFlSZzZtVWlPUVpXUS9lQ2lWR1ZudDduM0JjWGlIblRmYUxCYXIwK0xBTEpqRmJuYzJlcG5lNnREWkEvVlgKMitxdjdDc2JhQzI5M3ZoLzJMc1A2S2l1YzIvNFIxVGZKTTZOblp2RVNkeEFJS0hlQmJqRWlXTW5kdHhqREthb3pXaDZPM1BhOUtaZQprVVR2dlJmMTNudWhkeENTVUFOUkJhSVhhZVo4ZTgrUmhrR0ZRT0w3cnZXdDkyWDkxMW1IMFlncWFYNTY5clAzazFLYnRtclB4dTNSCjJRWGNxdm9mYXc0R0ZWZUw5eFVxdDZTdlRWdXlhK21TektVcGU5S1NOOFVtcmpIRnJvd3dMWTNWSkVWclRMRWFRNHplYU5Cb3dEZmMKQm1Wa3BDYlpxRTZLakVxTWprNHh4aTVUR1pOMFNsR0U5a1A5aHJjVkRlN3ljbGZ3WjhNcVpnQ21VMVV1cW1vWEZleWVIRXM4OXZmUApBZEJJQXcxT1JSMHlrRzBhL0wrY0NjOHd5TTl3WUFoQXhRczFDZjgyZ1BTVVNFdnhLWVVBVjRrd2lpUEFoVjhwa2owTnVmNjZxZ0I5CnRiK2gydGU2NzR3cENBRUd2U3lBSEpVbGRnQ0NCZ0lBZWxPVkR3RkVGTDVENUgya1dVNmFSQWxHRGdCUWJNU1lBSW8zUGdVUTB3TUUKQUtSWFM2MEFrbUFxQVFCUU1LbjdpTm80UTUwL1ZXdmI5dzRCWkZ2OCtna0I5TEZ1cDhDUThMSUFTb25XQWdCWnp3RWlJN1hVcUFDUwp2VENBN0EwRUFBVG9Zd1BRTEh6OXR5SnRHQ2Q4RUVCREJob2RRTU5Yd2NZQTBLZ0dta0ptT2VQNy9kQ05meFBGelJYSWd2aWhpd1FzClFCOFFwZ042a1lRWFpnVlFPQW8zZ2owSFFDeUFwQmNHRUtxMkJ4QUxBT2hUQ0NCR1AvOCtnR3p2NWFTc0FnQnkweFIvb3RsR2dPK2UKRFZKNEZtSUVQaGFBVWlKSkFLRGtDR21jRVFjQUlsVHNMNVRKMDFYVlRxcVMrSy9qanJrTG1ydzRoNzFZd0VBTmZwTGpkZ0FhWmlBRwpRUFp0MGZaSEk0NDAwTWlGc1A4SG9KOENRQVJJNzB4b29MNVpCQUFRVXdGNlBKdDRNaHNibUEwQlpKa3RwVUg4WmVhWmZOcURUN3YvCjBPL3lZL3kzRzZkcUtyNFNKeTVDNS8ySWhuNGgxNzRuMysyQ0g1aENIWitpT0RCZFdldW9PRHlOT3VSRU5MbGgxYjd5d3Zma2V6N0cKTnYwTlc4bVY0MEpDSkZPRWtNcUZBRURnZFRSY0hoS0VMZ0FBZ29VZkFhUVBSN0NBeTE5QVNGbXhLcFFCa1AxT2VIc0FyWXN5TWdheQpBV2c1cEErWnFGVWthS2hFU2g1UGlpTnhybElXR2lJSUMyS0hoTEJaWEQ2UHorZUhzOWlzc0pCd2RwZ2tUTUZiSVBvaGxIZ3Jham15CmV0ZWtwZHNtTEZzL1ljVldoeVV3c042VHNtbmM0bzNqRXRjNnhLOEd1SmtVdGZTVnlLVS9pMXp4ODZqVi94V3pibUxzZWlSMkhSS3oKWmx6VWhna1JheWRIcjNXSVdZa2tyQmkzWXN1RXRUc213aTdtZmNqSzNjanlIVXpHTGRrektYblB6K0wzSU1BNlZ2RkE5Q1J2ZGtpQwpRUkkzSVluZzkxcVBKSzVHWXRlK0VyVUppZCtFcEczODlkSk5uK0xMZmJHaTZVUU5rTVFNSEFDb0RnSUlxMzFaL2JoUXRhUEdsYXI5CnMzejFqeEpwdURnb1RMb0lBa2kyVUNnTllRREVKMEtIQVVpTWp3S2dNREgzcjlKVk04Z1NSNm9lTHE1WmU0ekF6VlFTbGxoYzVEVXoKeGRtZkNaTG04V1doQW42NFFNSVdTV1U4empLakludEo3TjVWQ1h0V3grNWJFMVdWbHB5MmYrT2NvNGRtdFovNzFkMXJTUDhqNU1FQQpjdjArMG5wbDRxa0xiMWMxZnIwL0oyckZxaTBKTWJ0aW9qWkh4YVZGeDBmR3hrWEZxU0tqbFlab0RSbXRKZ3dLblZZWnA5Y2xSUmpqClRZYlVDTk1Tb3pITm9Fc3dVcVJlOXcyNXhRTTk2S2l1bUtZc242WW9jMWFVQTZ3N3FTckEvUlN5WkZUOU1BQWFxWjhYQVpDOWdVQTgKZGRYRE1veEV3MnprcjI5eWpheHdOZFYrb0MxYXFJbWpORHk5bHFQVmMxOFdRQkZLcVpFU3FoUWlVaUZXRW54TUxwbFBwUHhKVzJRZAoyUUdubGNFWXEwR3NQVUFWTHd1Z3FZcGlrTUc1cEpyaWQ5V0RGYURmS3ZQK1NPUy9pZWUvcDFvbGh6TXVPTlltYUVZL1l3S0lLZitNCkJCQ2hGS0FVUDRnMHZFOXRtYTRxc0FISWZnbnNwd1hRaDdxOUhFTlNmQVNXRWlrQkFFcU5wWmJGS1o4RG9HV3hlZ1pBaVJId0pPaG8KUGNVQVNLMGhHUURadHNFRENVbmxjUFROcUFBYWRRbHNHSUJBQXZHTlg0cE5RVHpCVXdCWkRUUW1nT3dOOUZJQWVwZklkY0xTL1dTYgpQeEVsek9WalFmendZQUZuZ1ZBd1R5QUExNFVpUHR3Q0ttWE9BWUx6djhZQ1VJaU14UUNJandsZkVrQWNBY1VLSlVSL3cxTmRGRVZqCkFlaVpSMTRnNERQZkhaS281Q1AxRHJuV21LQkg0MDNVY3dDVUdrR21SWWdZQUVYcitKU2EvWTBxM2tWWjlxNisxazJSa3pQVGVNSjkKMFFHZjBMTnV2Sk9lWEdBZzVtU2drUWF5QWNobUlIc0FqVFRRcU0xQS93OUEveEdBWmtQOURBRUlmd3FnMmZpaldUZ0FVUDhzMUR4TAphcGtsb1dkS0JtYUczL21BUlh2UHA2ZC9meUJBNGFTdWRGUWMvYk44M1Z3Wk1WL0crbEVxK3J0NGxhKzAxZ2svNmtRMGVHSTFua1NwCkQxRXlTNTc3RjJ6UGwvSzE4L0M0VUZMSm9hUVVKb0F0ejRwUWpBekYwSENaaUNVU0xPSUt2MmZEQnFCQkFIR0ZDd0dBY0VsWUZDVloKb3NGWEdCVFBIQVZrMWMrb0FGcXVVNjNVNGlscUFDQlZna1laVDhuaUNJRUo1VktDVUM1cnZvd2ZLdU9HOFlJV2hTOE1Gb1NMK0Z4NQpLRXUyS0pTOWFOR0NPU0ZzSjVYcDlZUTFVeE0zT1M3WjZySmkvOExsbTRKWGJXV3YyeW5ZdUZleWVaOE1aT05lNllaZDh6WVdmTE15CjQ1T2s3VE1qMTgvUXIzNUR1Mnl5TmhYUnBJd3pwQ0g2RkNRaURZbGFoc1N0UmxLM0lVdjNJMHZTa2RSTlNPcEdoelM0a29Xa3JrWlMKMWlDTDF5SEpnRGdiYkhGSVdHOExFbStWVnV4S2grZzFreU0ySS9HYmtkUU5BRUIvd1ZkNTQ4WFQ4VG9yZ0dxdHE0cVZBRUJqK2taUgpQV3BjbFRXalIxSDNJYjVsamt3Wkpna0preTRJUmhld1pIQ3dLek1MREFESTFnTmtEeUFoTmdpZ2NPa2dnRDZXclhZbXk2WlFEVE9JClNzQTFFR2NjVHRCOFcxWHBTTlI3U2N2L0xGai9UNEVpUkJnZXp1ZHhCSmhVSWxvVFlkeThKcllrMlppKzNGUzRmT202SFprQkhZZi8KNjY1bDNOMEI1TTRUNVBxRENkMTNKamJmZERoMUZUbmVneHkraWh3NjkxOWw1Vjl0M2h5ZG1wQ1dZa3hLTWk2T2lJcUxVa1diS0wxSgpxWWhTVXlhVlhxZUtOeGhUSXFOam9rMnhzWWJvZUUxVW5DSXhDalBwVmQrcFY3MmxLWGxMV2Y2T0FuYXJURmVXZzYrQjAxVlZVOVhWCjc2aEgxNDk5N09oVGE4MFlBTEllRGpUc2RFUjRRT0lJQUkxbElBWkFmdG9tTjFPNWk3SG1UOXFDSUUwTXBlRUFBT2tNZ3BjRlVKUlcKYnJSMm1zb1ZJaHpuU2FYaU9mS1UyYW9DcDhoR3A0aTZHYVk2VndQc1lXTDA4KzhCYUFwVjlLN1ZRRUEvSUc4cXJVdGdpdHpmazdsdgpFSG4reXZVaUxSWURsOENrVnZlOEVJQk1lcGxCSTlOcEFJQmtsRkpFS0hreWhmQkhNaktRMmpaTlZlU29MZnpmQnRCTVhXYW9JUzNXCkJNOUNUSXJHQVlDV3hpclNZZ2VuZ0kzTVdBQmlkb0VCQUdHNEJMWkNXd0VFaTBCakEyaFVBekVBOGxMdUIxZmdJWDlpeTJlUzJIbDgKZEV3QXpWRG1nWXpLb09jQWFCUURZVVhUc0Z3UGRPZUhrdVZmQ3czekJKS0ZRdkN0STJlK2dBOXVGa0VBd1ZYd0lRQlptNkIvRWdDcAp3Z2tWYXhCQWl0QXdqUDgzWXJFYlZlQ3NMTEttK0drVXBTQ0RESHFadUtsTHdVZnpCOG85RW5Wa25KNklpNkNTak9pWUFJckVHUURGCm00ZzRIVSt0Wm4ydmlQWlFGRTQxVnI2aE96ZzNkR2VUaC9pbzU0SlRidUV0TXdRMWZsTGJDZEgyYTJFd1l3REkxZ3cwakVIMkExUC8Kalo1b1cwYlM1LzlmQU9yMEoyeHBEM2dhZXd3Tnl4Z0FJb1lBaFBYT3hBQ0FiczNFYjgvQzdzL0NyQUNTUDVrcEc1Z3BzUVNJYUgrUgp4WTkvZTNZUTdjVjY1UFBqSFdmZWdyQ2RiMmhQT0NucS9mQ3NiOFJKOHlXaVVISHdYTEg2cjdKTnMvQ005L0Y5SDh0M2YwWW1mRW5HCi8wREVoWkNSUWxLREVUSWx5ZFVRWVdwNUtFNndCQlJjS1libjRmRkNoZnlGZk5GYyt3b1FBeUJNSEJwQmlOTFUySEk5dFNaU1p3K2cKamJHUnd3QzAycVJiYWRBd0FFclZVQUJBOFdveVhpR0pKVVU2VkNqajhvQjh3b1BDZWZEUWFUNC9CQTBPVnY0elNQZjVRc09QNFl2MQoralg3MXVXbmw1OHVPZEorNFhqTHJaYnpsZ3VkVDdwN3pkMDM2VXMzNlo1YjlNV2JkT2RWYyt1bC92UGQ5T216OUlrejlNR1RqK3FPClhDdXRQNVZWV0xKdHo3NzFtNFNwYTcrUFN3MHd4dnhSRy9remJlekVpQldURXJZNnhPMlltTFJsY3VLbVYyQ2YwT3FKc1N1UnVCVkkKMGtyQUlJZTRkYmFNaTFsckN4S3phbHowU2lSbWhVUGsyb2tSbTVENGpVanEraitrcnZzUVcrY0ZHNVlCTENyY0NHdGJsYkxjaGFpYgpRVlV4R1dtZFVUUGNQVU54VVRhOFQrejlWbVlLa29TR3lYNE1RNFBDWmZCNDdtSERVQm45RE9VWkFMRWxISlpvRUVEdktnWUI1R2d0CldRRUF3U1VTb3M1TlZ2MithUGUzQWtPSUlKVEhEK1h6WkxnWVh4MGJ1MzFWZE1GaVpWRmEvT2F0MlIrZGFVY0dMTWg5R3JsQlQraDQKTVBIYzlYR251c2VkdU9Cd3RIWGNvZlBJb1pNVGF0cVE2aTZrNHRRZk12SVdMbDBXSDZOTGl5ZVdHUFd4UnJWZVQ4RVlWSHFET3NwbwpTREZHcDBYRUprY1lZNk1NMGRHNnhVWkZySXBhcEVpWVFXMTdSMUZsbmZkZVBwVXNtVWFVT1pJVjRPUFpXWDNnK1FBYW9aOWErMUVZCnRrTVI0VWhVN1dBOGRIQXN2QzBqb2NOWXh4NDk5bUVBNUdhcytwTTJMMGdUclZCempKcC9CMEFhbFZpdEZKRXFrVnlEeWxWQ0hpWC8KUXIzTVBhTE0yOWpnWTJqdzBkZjZhbXU4ZFZXZXVrbzNmYVhMeXdOb0Nsa0NBUFNPMVVEdktHSHY4eDhWK1grZzhuNUw1cjFCWnYrRwp5UFZVYk9Gb2xCRW1UbFNFSk43NHZBcFFyQkZsOUJOcGhBRFNhMlZhdFVTdGtBSUFrVXFlbEJMTklXTjh5ZDFUVkVYVE5ZTUErdDliCkF2UFQ1eTNVTDRrd0Vvc2pJWUJTWWtnSW9QZ1J2YzkyVGRBTWdKS3M0OENHQVlna1pBeUFRSjRQb0pIMFlaYkFuRlY1RElDWWFwQXYKdGZPdnNxVHZoY3BuQU9TaXpCa0dvSkVHZWxrQU9jcUtwOHJ6bmJCTVgzUXI3SU1XR3I0WHllWktlRUEvSU1GQ2JvZ2RnR3hGb09jRApTSXlMR0FDUkNzRllBSkpwT0lTS0xZZUhRWE9FRkFUUTMvRWtOekozTEFDOVlHejZBZmR1NE9OWVZUVmJtUzVReGNUcVNRZ2drMndzCkFDMk5KSlpFQ1JrQXhldjVXazNJUEtYSmg4eDIxSmE3VVBWdmFpcE1YNmVkZEFzNTZNays3STRkOGVJeEFCcG1JTWdnT3dBeEJySUIKYUZRRERSc2EvMjhiYUNSOS9tOEcwTldaOHFjQW1pVm5BQVR5Y0NiNk9GQTZFQ0EyK3dzdHZqeXpEL2UrVnlnOVhVUlBDMTMxamRxTApMQTdBYW54VXV3UEk3TzhsVWNGU0VWYzZMMXdXc29BZy82a3d6cVVpZ3drVGh5UUVwQng4dFNJb3ZvSUtVMU5CS25LQmtwZ3Z4NE80CkJHOCtqdjBnazg0WHNvSUY4K0ZBZURUWUJpQ21DUm9BU0M0S01XSUNHNEJzUndFeEFBSVpGVURMZEdTS1ZwbXNVU1dwOEFTRklJb1MKa1NqQjVwSkJ3ZGlQSVpydk9jbGZoaS83ODRMRXp4ZkZvdXIxYXpZVU5SL3Z1ZFYxbGI1KysvR2RKMzE5VCtocnQ4Mjl2ZlMxUHZySwpEYnJuT24zNUduM3BLdDExbWU3b3BpOTAwVzJkQXgydEEyM242Yk5uNmVPbjZFTW42TVlqajJzUFBLaHFvc3NhNlp5cSsxdUwybFpuClo2WHRScFBYZXlTbElsRjZKRElWaVV4RG9wWWpVV3VSeUkwVEl6YUFUSWhZaTBTdFp1SVFPWmh4MWlDUnl5WkVyb0RQajF3MUxtb0QKa3JCMjR1SVZ6a2tyUHNBMmVXQ1YwOGdHRjdMU2phaHlwcW9ZQUwwNGNaaTRxV3BIelF6VmdWbEV6cGRvd2dJcE8wdzJsdzMrUjJRaApIT2w4b0I4R1FDRDJBSUpkUVFTYmo3TjVXRGdmNVhBbEhPdUlVd0FndUFRMmhhb0hVR1AyNnNNS0VGWGpUSlZNb3lxZHNacVprcHl2CmhFa2hmQTZQRjhMbmlnZ0pzVDBpWnQvS3FMM0xkZmtyMTM5eDRneHkzNExjbzVFN2R4MHUzNXZZY2hjNWN3YzVjeE01Y3hrNTJZb2MKUFkwY09UeSs4Zml2S3M1UEtHbEJpbzhoV1FWL1hiMG14aFNkRkJFWkZXa3c2RlhneGNha3BjQk5wRUdiWkl4WUc2bGFZVkFsNjZPTgpwcVhZNG5WQlczYk96cTc1YlZIcmEvdGFYOXQxOXJVTmgxNWZVdlBiNkxLMzFXVk9XS1U3V2plV2ZwNWQ5aHJVajR1bWJpUjltRXJQCk1QZllNcEk0VEsvUHlFZVkrR3NPV2dGVStTZGRUcEFtVXFFSkJ3QXk2SVV2Q3lCTUE3L05WaXFsR3FWY2g0bHhLZlk5c1R4QVcrNmoKTHZkWFZ3UnFLa0g4dEZWZStpcFhRNld6NmFWN2dDQ0F5SkozckFZQ0FIcGJVUVQwODNzeTk3ZEU3dStJak5lSlBCZHlaN0JhcHplRgpSMGFLZ0hMR0FwQnQveGRJaEFFRkFJTGxIeXVBRk9DRlVza1JVNkp2eVRnUGF2KzdxcExwbXZ4Um02QkJScGptcGZJVVFDQS82cGNiCkRDUjR5UU1BV2h4TkxJbWgwdUwxdzkwemxLV0E0M1lBaWpIQWdmRGdBMUtyb1pocEdBUU9pMEJ3TDVoY0JQSWlBTEp2Z2g0R0lDOXEKejBmeVpWK0pqY01COU5SQVF3QWFacUIvQ2FCaEJwcU93cCsrUStSTnc3SjlaZHYvSWtyN1VtVDRWb1FGQ1Rod0pMMG8zQTVBM0pjQwpFSzRRdkRpQVdCanZNeXpSZzhqK0R3SGtQR1FnOEk1V0FGVUhVSms4WlZ5MFh2bXZBSVFEQUFFT0owU1FDUWFCVVJ1eVVHbWNTYVpQClYxVjRVTVh2YUtzOGljd2RIMFkwZVBIcnZQbW4zTUtQREFGbzJCbUp3d0FFWWcrZ2tRYXlEUXY3RHcwMGtqNy8xd0xvOGl3NUFCQUkKQUZEdlRKUUIwTDJaOG5zelpZK3NBT3IzRjVsOUJSWXZqdGt6M09MTWV1ek12ZUFmTms5QnpjVlcvMENremFWTTg4ZzBOaUVWWVNJTQpaV1BFSXFreVJLVGlTNVJDVk1GUjRKaUNrQ2lvY0lvS3hxaUZFa1VJand4bms0SzVwUElMTXZsamJOV24wb1J2SmFKRm9qa2hrcmxCCk1qWWJuZ0MwMEZZQjR2RG15d1JCT2hrM1ZTVUhwbm5tTEVTcmZwZ2kwRWdBcGVrb0FLQVVqVHBGaVNaUmZKTkNLc1YwUC9KaVB1T3QKK0ppN1pqWjcvVjlFMjhWSlpSbmw3VmN2M2FVZlBPenZ0ZEI5ZmZUVnEzVHY3WUZiRDhEMXlhM3JqNjdlb0cvMFdhN2ZzbHk5YWI1OAp6WExwcXFYN0N0MTlHZVJoVyt2amxwYUJjK2N0cDg3UVJ5R0E2Tm9tdXJLQkxpaWlpOHZvb2xLNnNKek9LQnZZV25CdHhmNWowZXMrCk44WjZhQ05mVlVVam1rUkV2M3k4Y2NOay9icEoybFdJYVRtTWNUQU9ocWVaQkI2SlhJWkVyWFNJWG9ja3JIbzFPZFUvTm5rV3RzVU4KcTU1T0huQWp5OTF4dUtWdW1oSit5ekcyZnVBaEZ5UGpwcW9aTmM2cWc0Rms4VC9rUytiTEFJQitDSmNCQUlXeHBITVpBREVHZWhFQQpmWUt1ZEtHS3B5bnF3Sjl6QmxYbFRGYTZFaVdPVkxVekNZZUpnaHR2V2VsbndqVUwrWElXajgwQ1g5Snc2YjZJeU55bFVlbExZa3paCithL2M2d1A2bVhCMUFPbTVoclJmZFRoOWJkelJheE1PWHgxL3NNdmh3SG1rOFRUU2RCWnBPSXJVSGtTcW01Q3F3MGhSL2UrMkZ3VXMKM3krUGpkTEZSQnRNV3FXUjFPcnhLQTBGcDRERlJxelFHS2tWUzc4c0xYTnY3dmpOMVJ1VDcxeDN1SGtQNmFRbnRQU09PM1BSNFdEegp4TklqdjlqVDhMc1ZOZStZeWgycDBsSDFNMnJ0QitwSE0vcFNsM1VhZk0yb0dRczZvNnFJQVpDSHFRSUE2Q050ZHJER3BOQ3dBSUQwCnVwZXVBS2wwa0JFNlNxcVJ5NVFTT0g3ODc3clZ6b24xYjZ5c2ZHdFp4WlRrY3FlWVNoZm9IaXQ5ck10aEx3V2dxUlEwMERzVU5CRFEKejF0VTRlL0ovRGVJbk45Z2ViOGo5djhLejUxTzdGdW9NdWxNM0lnSVBteTBlREVBR2EwQWd1VXJLNEFvSlZ0RWlyOGtFMTJwekxkVQpwVTZhM0tFNUdQQkFvQ0VEL1pRQWN0V1h6dEd2MU9tcDVBaVVBVkJxclBMNUFFcU4wVElBU2pDcGJRRFNhd2FuWVFBQTRkZ2dnR1RvCm1EMUE5dWdaYkgrMjJnWUF5RTJaeVFCb2hqcmZYWkgrQWJicWMwazBZbnVHRFVDRERIcEpBTDJEWm84S29Cbm8zbmZ3ckRlby9EZUoKRWhjMCt6M3g1cjhMRTc0U2FxRitoRndyZ05nTWdGaldnUmpQQjFDNGpQZFNBTUxVSEN1QWdxMEFTZ0FBY2xJVVdsUDBORlFKeUVqbwpNQm41Vm5zQU9hcHEvYWxzcmlKeENFQ1NzUUFFWWdOUW9sRUlBQlNrTk13aTkwMVJsdmtReFk3NnZEY014Y0h6ZHplNG8wZTh2ei9xCklUanNKYkFaNk5raUVHd0RzZ2ZRR1c5cjdQYUYyUUEwTExaMXNmUFBicFYva1l5a3owOExvSkVuRERFWnFabm5wL04vR1VBOXMrVjIKQUVJWkFQWE5sTjhOUkFHQUhnYktuZ1JJQnZ5RVptOCswSS9ablcxMkRlcDNXUkRKV2NCVHNRbUtyeUxDY0Nvc1Vpb2dWY0ZLUXE3RgpsVnBLcUZhR3FaUmNKY1ZUS1lJMUJFdE5obERrZkRtNWlFK0doeERrWER6Nk95eHRsbktiTjFuc2lkVzhKOTMxalVRWkp2eUJLNWpECjRZZXhSQXM0Z2dVOFBteC9CZ0FLNS80bzRTM1VTamtNZ0d4SEFZMEtJQkFiZ0ZMMENxQ2ZWSTB5VlNsT1VvU2JsREloSHZVZFArMlAKc2pwdnJGU1VXbHRTMy9YZzVtTkFIMHRmNytPYjF4N2VwWi9jdVVWZjY2RnY5dEczSDlBM2IvZmY3VFBmdmovUTJ6ZHdveGZtNnZYKwp5MWVlWE94NTBubnhjVWMzM2R4RG43dEVuKzJrVDdXWmo1MGRhRG8yVUhmUVhOM1lYOWI0cUtMdWRsSHh3N3g4T2lPTDNwOEI4bURMCkZucDFlbVg4T3I0NmJob2VNVjRaanhnV0k4WVV4QUF3dEhRd3VtY3lEZ0RJc0l3QkVCS3pCa2xjL3V2RXBBOWk0bWRoMjF5eDJrRUEKRVpVQVFPQzFaeGlBbnEzMHZGeW1xdzhHa0dXZnk1Zi9LT09Fb2Q5enh3Q1FiZjFyTEFEOURWM2xyaWllcnF6MUlNdkFIMmtHVmVsRwpRbFU0RS9YdktpdmZWdFlDeHYxVnRHc3VYeHZNRndUenhEcUZZR05LUkYxY2RFRkN5a2ZINnlmZTYzZTRZUjUzK2VLa2MzZVJzemVRCk01M0lpYk1URDUzOHI4WVRFK3FQSWZYSEpsVWVubGgrY2x6SldZZVNZeE9MR2libmxTTzVGVWhlMWR4RUV4RWJyWXNFTC9za1ljUVMKbFVTYVFST1RHdjE1NDFISHp2WUpEODNJWFJxNVJDUHRsNUhtQzhqUnpuSEFVdlZIa0xvbXBLNXhjbG5qTC9mVi9YSkY2YXV4aFNQcApNMnI1aDlHUFBZQ0d6UUliU1ovbkEyaXNKYkFBN1NFSUlGUDVSN3JNL3dSQVVRcHBKQWxQVXBhcFVFNEUrdldLQ05mYzNGZU9YRUVhClRvMHZQZkt6dlkydnJhNTZNNkZpbXJIQ1ExZnRZeDN4OGU4Q3FNUUdvTi9odWIrUjUvNFczL2RMSXRjUlQ1K3ZpdEpHTUFDQ3cxQ2YKRDZCSUl3U1FRUWZIb0tyVVR3RWtwTVRnT3lobktvc0IwTkFrVlBzVEVRdC9RZ0E1RzhxLzA2M1NHcFNKa1U4QmxKcncwZ0F5YUJVNgo2elFNa3BBQkFESGxueGNFa0gxeFp5U0Ezc2RXLzAwYU4wb0ZhRmdHZTZLcHJNRU1ka1BuZ1RnU09jQkFqa1RlVzlLTXQ2VTVJSUJCCk5nbFpUMGZNbVlabE93SUpZUVVnNE40VjNlc2ozUllvM2ZpbHlEQkhKQThSc3RpaVVMWllFQ3FWaHFFQ0ZtNmRCVFlhZ0VKUk5yTVQKbm92eEI1ZkFGSEFWekFxZ1FRTXAxQUpyZUNDQVBvU0NCWStCVm5GRUNsRzRJdndmQ3Awbm5tdVBubWtLSnZENEtTZHE5QXc5QjJhNgpzdFFXUjFVKy9BaFdWbmtxQzc1VkxkZnF5QlNqSk1GSUpSbXh4Ukd3NDRjeEVBaWpuMlJ3WThKWEdHRlRXR3dFUzJ2a2hHa2pQeWEzClRLTXEvNkNwZEZTVVRkWGt1S2szcTcrUGEzS1huWElPT2VFdXJ2ZmpIZlRoblBEaUgvU1JuUFJFMjF6RnA3eDR3RUJBUXNlOTRKNzUKRTU3Q2sxNGl1RDErYUYvWVdUOEluV1lmR1Fpam5PWkFXYk8vOUp5ZjVMeXZwTlZQMnU0bnUrQXJiZk9SdFBpaElNMys2UGtBT1VpegpMZjVTa0JhL3diUmEwK1l2YS9NbG1MVDdFaDArTUozZU1PM1dSMnpwOENNSFkzM095TmovT3JaMzZmUWxML3JBZEEwRlBOTGxSNEYwCitLTk1MZ1FNcG0wdzJBVi9yRDBBNy9MSHUvM3dpejdZUlc4NVNKZS92Tk1QWlFMdXV3TXc1aEg0L0VDOGZTWUJBbTZZKzQ1WkFEckEKUUVCQ09NalRCMmNCL2NCMHpTWkFMczRpTHMwbUw4M0dRUmo2WExQbVJxQ01BUkRJemRsbzMvc283U3NkOEJZOTl1YWFQYm4zZmRpMApVN0JsMnR6OTN3ZEpWWHlaV3F4SEpSVEJKNVc4Q0pKai9lZ1ZrRW8ycVFpRG9jSUpra2NRUWprbWxPSWhmR3hlQ0JieUhhYjZLN25HClgxbmdycTZiUnRhL1N4eWFodFg1b3p1K0ZLdENCTUZzd2NJd0lZY0YwQ05jeEJFczVQSVg4bmdMdWR3RlF2NGl1WVNWb0VEVGROUksKbzNwZHBINlRGVDFyWTB6ckU2TFdSOFB0WUV6c0FaUnFrS1FZTlhGS1ZSSXBTVlZ6OUVyaGZEeGl0bmkxTkdKblVXMFhvSTY1N3lFcworZHk1TTNEbjd1TjdUL3J2M0Iyd3hud2J4bkxyRG4zcmp1WG1iWFB2VFVZLzFnclFGWE4zajduam92bEN0N210eTlMU1BuQ3UxWExxCm5PWG9hY3ZCWStiNmd3TTFUWFI1dGFXMDBsSlVic2tydGVRVVdqTHl6UHR5Qm5abjBUc3k2UlU3NkpTMTdURUpSZ1htSVJIL2wxenYKZ0MvK3VUekJRYlVFVWE2Y2dDMGRwN0kyVU92U0pxdVhJMUhMSExUckVmMUtKQkxjYjN3dFpvMWpZdFEvVWJVblVleE9sTHFRY004MgpQR2hnS0M1a2xTdFZ6Y1JOVWNQRUhUakQ3aDdFUTFVM01wN3FlbHQ4MUUwK3FxcVB5TTF6WlRoYk5EZE1NaTlFdmpBTVg4aEJRM2hZCkdCOW5BZTRJY1JhSWlHQ0x5WEM3Sm1nV0JKQ1V6WmFFczhUaG4wbVhlbERGMHpXTmJwQUxkVE1VMVI1VWlZdWlDdnkvdXhJbE02aHkKUjJXak4xN3dOVDh4TEZ6RTViR01CTFZwU1d4K2N1ekdsY3RmYisxQjd0REl4UWZJNVN2STJXN2tWQ2R5ck0zaFVNdTRBODNqRzg4NQpOSnhDNms0ZzFhY2NLaytNTHowMnFlanc1UHltVjNMcUptVldqZDlmam14ci9DeG1yU1plclk0U3hFakZrUkZMdmlxcW4zR3hEM2xNCkkzZk15SlhiU0VjUDB0eU9uR3BERHJXOVVuOWhYUFZ4aDRyRERxVUhIUXJyeCtmV2pzdW9RUFlVSVR2eWZ4ZGQvSTZtMUpXQy80RGcKMWYxZFhmRjBkWW1IdXBMcDlSazIrOTIrNDRkWjRZSVQ0SFV3bzdZMmovU05MZGFSNzA4OTlMUXNaTDE2R0pyK3JNL2dxVlFhRFZ1dApFOEpSR0hwT2dwNmJwT05INjhYUldueXhqa29FMWpHeFV6UkVraDRIRElvd2lRMFJFcDFSb3RISTlCb3NVaTFTS0RHVEpCelhxd095CmF4M2E3aUxuZTE2cE9QNnowa2Frb0FiSnE1aVlXVHg1YThZdmxxVlBqU3g4ajZ3WnBwOWg5R0VDcDJGWVgwVEFhOHBVcW53S1dmWTIKV1F6eUZsWDhKbG4wQnBFSEFQUzZQT2NQc296WDBmeDNpUDF6VkJGNlBUZmF4SStHOU1GczRyR25UNXhCQ251QW9ONVEyeFl3amNxNgpCVXdoMXBBY0lZRi9TSzZaVG1ZNktYT25LRXZzcDhIYm53cHRtMzdxTmpUZFlpakYvekxXRXhFSDQ2dkova2kvVzJxS1RqUHhrcUprCjhiR2FaVEdxbGRHSzVmRWFhK3c2b09NTXpCNTR1QVFXbzB1TzBpUkdhS3c3NFJXd0RVZ0paOEl6ZmRBb2JqMExFUk1EQUVubFFwNGMKRmFBQ0xzb1BReVhoRXY0Q0tRbitnaDZxSEhmbHN4VWdOWXk3S3NPYUxCY1ZuRjdxcnNnTXdMZDhLRi94N3dCb09wa045RE1kMG1jNApnTjZXWlEwRDBIUTBhNm84Qitqblhid0FTTWhabnU2QjdnUUcrcnM0NWxzUnRVakVaUU1EaVhrc3FSak9lNGVIUVZzM2d1SGg5Z0NDCitjOEF4S0hDdjZCMFhqOGhnSlNGRElBOEZJVmZxMWVxZFZTeVVSSnZ3TWNDRUNEd01oTUdESlFVSlkrSkROY1oyVHlOOWgva0ttOHkKMDQ5SS8xQzI1eFBabGsvbHkwSTVFUnMva1RRN2hSNXo1emY2aEIvMlpwL3dFQnp5bGpYNnlvNzVpTTU0Y1o3MlJQc09ib3huQW1zOAovdkt6QWZMVEFmS1RBZWp4UVBUWVRQVFlMSG1ybDZ6WlMzck9HeDRoYlh2cnNRRFpHVC9zckI5MjNnZTc0SU4zZU9IZG5uaVBPMzdaCkhiZmYrY1hVZnBodDgyMEIrR0NHTm9XQkI5dTlCNmZRMjYrdlBYK1ZqZmxGTHZnUHBzTVBaeXBKVDM5VGYrenA3eFVBWlBOTWJDZEIKTTNValdOMng1cEl2MGVOSDlrQkxEUmFUNEkwZjN1bFBERTZ6OThlN0FvaHVKbjc0SlYrOHh4ZS83RWUwenNUYlpoRWdESHE2QTBudwpOQkFiZ0lCK2hvSmRtb21OQmFEN0FlakRRRm5mTFBGOVgyRS8wSTgzNTRGYktPMjRxUDZ2ck9WaEhFTEpVeW40Um94SEtMaW9pcXRXCjhEVWtUMFZ4Z0hzd01oUWxnMlg0QWlrMlQ0YjlJTUFYOExBNUhObWNZRm5JSEpueUgvSWxIK0piQXNrOVB0Z2VUeXpIQzgzOFFMTHEKR3lFZUxGaklFc3dQRVlVQkFMRkZpd0NHd3ZrTFFOaWNIem1jK1NKUkNBQlFxaFZBYTZQMEc2MmJ2d0NBMXNVUE5rSGIyb0FZQUszUQpxMWZxRmNrYVRieEdzMWhEcEtvRVdoRmdXZVQ2ek9PWGV2b2YzcVV0ZC92TjEyN1FONjViYnQ1OGZLdHY0TUVUUmo4TWdPaStad0JrCnVkNXJIZ1ZBSGViekZ5eG5XODBuejFxT25iUTBIUVVBNnE5dXRBY1FuVjFJWitZUEFtaDMzcjF0Tys5dDNVS3YzVUluYmpxc1cwVmkKc1U1Y0ZDR2pYaEhwWDhVTmlDRU9VUzZlZ0MyZm9GaUNxR04vUlNRaCtyVC8wcVk0R0ZZZ3NldCt2aXhwamxiL1R6eG1WQURCcXMrUQpma1lGRUtPZmtRQ3lwNDg5Z0Q2a0FJQ0FkSDRNay94Z0JWRFF5d0xvSDVLbG51QXJ6QkNBWEpRMUFFQ3V5bXBuc21FUVFLcDZiN3pvCkMzNXFhTGdNQUdnWnFVbFBqaW1OajltNFp1VnZPcThnZmVaSlozdGZQZEwyeXRHdVNZYzdKaHpzR05kMEFXbG9kYWhyUVdxYWthcXoKU08weHBQb29VbmtJS1d0Q3dJdDNZUzJTWDRIa2xpRjV4ZU4zYmZraTBwZ2dKOUJseXp3UEg1dDgveUZpZm9KY2YrTFFmWGZpdWF1VApqM1ZNT05TQ05KeEJLazhneGNlUjhrTkk2UUdrcUJISnIzWElxUm9IQ0dVRjBPdUorVzhhUzREYjNNbHFaM1hsVkcySm83b00vRjJlCkR5Q2JmbXdBR29zK0k1WEQ1RjhCcUhFNGdDTEVXcE5JYjVERTZPVXhSc3hvd2cxR0xFYVBSeHB3dUg0RXkwTGlHTDBvVGl1T1U4dGkKS1ZnK3dTbTJKQ0ZtZGtYMXE4MGR5UEh6U01PUmNZWDFrL0pya054S0pLZHNRa2JSeEIyWlAxdWIrV1ppa1k5bWVQbm5PUUJpWGxPQQpmdDRsU3Q4aWlrQ0FmdjVJRkZyTFA5bi9Ob0RzOThEYkEwaEFrdThSd3dIRUdHZ3NBTmttZkwwZ2dPd041S1hPK2xDM1cyU01Uakh4CkVpT2xjVEVxNjVJSXRTeE9iWTFkK1NkV3ozUkF2emlBVUxsb0xBQUIvUXdEMEF4VkZvaUxNdE1lUUs2S0RIOWl5d2ZveXY4VkFBMFoKS0pzQmtDUEFrRHovSFN6ZldnU0NCbkpGOTM0a1NmdGNiSmduRW9hSzJBQkFiQ21mSXd2bnk0T0hBUWprUHdDUWRSQ1lDdlovY1NqMgpGNVRXQzgvK1R3QmtieUFBSUhpanFISlhGSCtwV2tOcGxVa0dhZUxZQUVxTHdnR0FscHJJaENnaUpvSVhhV0NoYW13dUZ2c3hzZng3ClVkcGNZZklDVWV3aWtmNTdPWTZIQ0V0bnM0KzZzNDk2c2c1NHM0NTRDWTY3b3dkODVQV0JvbU8rN0xFQWRHWW81N3hobW4yazU3MmwKelY2U1kvNUFQTmhaZi95OFAzSEJXcGpwOHNJNzNlVVh2QWdtYmVEcVRZSzArbGpqSmJlbHpSdXo1YXlmak1rNWE1cjlZUUVKcE1zWApzNlhUUjI0TExNbU1sbTVybllaSmo5ZlR0QWZDRE5aNC9HVWdUUEVKK0d4WWVhblRuNEx4aGZmZ2I5VG1UNTRQSkpzRHlYT3pxTE96CnFVNXZxc3RIMGVrTDAyRk5wNSt5M1YvWjZZTkJPZm5CSmJBTGdVUXJ5Q3l5YlRiVitoNjRraGRtRDFaOUdDUmQ5QjhFVVBkTTNKYUwKZ2ZKUkFYVFRhcURIZm1pL2orVHFiR0ZmZ0JEbzU3NDd5ekl0K0tMUHdpUUJUeS9uZ3kraldncWdoNE1yV2FneVRFbXkxUGc4aWdpUwpFT0U4UXNqQ0JhRllPRXNlekVMbnNXUkJMT21QYlBFOGxqZ3NXQ3laSjZXK1FWV2ZZOVRmMFlpUFpVbC9rYVIrTG82WUp4Q0Y4dWVICkNlY0ZpUmFGQ0JlRWloYkNLMzgraTc4Z2xQc2ptemVmTHc0R1g3dFR0T1J5a3hwdUJMTURrSDBUdFAxTytKVnEvVEtqS1ZhcmpsR2cKTVJMdXpzUzRTOGZPRHZSWjZMNTdjSkhyK2czNlppOTk3eDZJNWM0OStpRUVrUGt1dkljL3RRTVFmV01RUUFNOVZ5MFhMOU5kUFpaMgpDQ0M2dGNNQ0FIUzYyWEw4REgza0JBUlE3UUV6QUZCWmxibWt3bEpRWnM0dFlRQkU3OHMxNzhtbWQrWDI3OWcvc0hXN1pjTW1ldmtHCk9tMXpYOVRhTTFnQ0t0RDhWc1JIWk5MeFJBeUNKU0JFb29NNkJkR21UbFlrSXNaa0pESUpNU3hCVXRJOEVraUpUUHBQVWNLL0JOQ3cKa3M5WStyR0p4MHZUWUI4ZmRZTzN1dW9EYWh2UUtsczhud0VRRzRNQTRzcERBWUQ0VnYwd0FJSUdHZ05BWDhpV2VpdUtabWdhM05YVgpNOVQxQUVDZVZMbXJzbWFHb3Q2RllrN2NhZkRDaXo4VnJsekFwVGc4N2pLRmFrOUtURVphZk1xbVZaUGFPcENyZDVCVGx5Y2RhMFVPCm5VVWFUenZVblJ4ZmZRcGtYTlZKaCtwVFNOWEo4ZVhIeDVVY2RTZzRoT1ExSXJrTlNCNUlMY2lrWFFYSTFqMXZMMTc5K1k3MHFaM04KeUpQSDQrN1RrN3JnL3ZtSkp5NVBhR29kWDNzR3FUMkYxSjFDYWs4aTFTY2hmUXJxa2R4cUpMdktJYjNjWVcrcHc2NUNBS0JYbG1mOQpOcjV3dXFvQ0FNaEZWUW4wTTAxVENWZStuZ1dRelVEMkxjOE1nTHoxOVNCamxYeEdLdWRmQXNoSC94UkFXalVBRUYrdkUwUm8wV2dkCm1xQ1hwdWpGcVhwdXNwNFhiUlFhVE9MSVNGR01VWmhvRUNScmhiRnFRYlJlcWpQS2NJMVlRWEpsVWFSSFJlbUV6cnZJK1hha3NYNWkKYmgxU1dEWXBzd3pKTEVHeVNzZWxGNDdiblRWcGEvYi9yQ2llRmxYKy9NV3Y1d0RvVGJ6d0QzakI3N0Y4b0ovL1FiTmVRN04vTDAzLwpOWm8vQlg4S29CaTRFMzUwQU1VYlpmWUFNdW5rZGdDU3FpZ2VseUJuRStzY3lTdzR1MU5SYkE4Zys0V3dZUUN5TTlCdzY0eU1mUVhJClU1VTlXN09YWjRoUE12SWhnS0tVYWRIa2tpakYvMGtBTWFxeEFjaE5tZTZteklTenZ3Q0FxRXhmWXR0NzhqWC9Ba0QyRytPZkQ2QzMKSk5rZ0FFQjJSU0J3eldZcVFGWUFGWUlBQXpsaXVkT3c3RURweG8rbGlkK0w1U0ZpRHZqOEQ1ZHllVEtXUUw3SUhrQ01nY0l3YXhIbwpaUUdrNGowRmtFTEFvOWhmVVdvZlBITTZWUWhERm9NNFVreEtuNU5oQUxJWjZOMGhBTGxSUlg5WGJaRHJkQWw2OURrQWdoUEJUR2hxCkJBaytGS0lpUk5INk1JV1N6NUlyLzRrclJUeUtJOEFXb1ZLQlVNd1JDVGhDcm41QmVLMFA1NWdidThtTDNlZ3RPT3VDbm5hWE4vZ0wKR3dNSEFjUXNnWjMwRWpGNzR3R0FqdnVLUVJnWW5mR1YycVJ5d1ZNSzR5MXI5MEV2V05QbUxRTTI2Z0xtOEVJdmVLRXRQbkRWN0l3Lwp5dFNOUnRaeW1CN3FkdGdHSk8vd3c0WUZTR2pVdFByTFIwMmI5WmV5dlh1WFAxekRBdW4wa2RuUzVRdGNoVjVrNGc4TE5reUFzV3lLCkdsd0M4N1ZpeTF0KzJWTit4VU4rM1JQcjlnTjhJUzhGVU9ES3RBUU5Gb3FzYzA4N0FrbWduN1lBd0VFTTVCejRJODJFSzEvZ1Z3TnAKRDhDaGdXWlJsMllwT2dKaEhhZ3JFSVAwbVVWWUc0QndrR0VBQXJscE5kQjlQOWtqSC9FOVArRXRmMEd2RDV0MkRMM3JHcng3YmlpcApZcEZLTnFYZ2tRb0JRZkV4a29VUklUaStVSWpQWVJOaEN3ajhXekwyQzNMeFA0amtyN0c0NzdESVJTZ25XQllTSnBuUEV5M2dpMEs1ClloWkxFaElxV1Jna1kvOG9GYzJWWWorS1pIRGhHSWhIUERkSXVqQklPRDlZdEFCZUJmT0JoTUlFQzFqQ2hUeFphQ1FwWHF3amwxa0IKeEJ5QkNKZkE0Z1lCeE9pSFlSQURvQlU2WTdLYWlsZmpDUXA1MmFZdGRQdEZ1cmVQdnRWTDM3aEczN3BKMzdsRDM3MExyR08rZlhlZwo3ODZUbXplQmZoZ0FNUldnUWYzMFdnRjA3Y1pnQnpRQVVNY2w4RXVaMjdyb2xuYjZYSnR0L2N2U2NNaFMwMlN1ckxPVVZ0TEZkZ0RLCmdBQ2k5K1RjMjduL3lmWjk5TmE5OU1adDlKb045S3IxZE9wSzJwUjBUeE9SejFOL3hWTWlZaFhDMTd3aWp4bXZTVUxRS0VTZE5KNUsKUXpUSlNIVFNmeWRGQVZhS01OSDMwaVNnSHpleTNBVk9rNjJ4MDgvbzYxLzJHVVlmTDgwejhkWTJNUEhWMXZsb2F0OVg3UDRucWdrVApMd1FBZ2p2aDVTRXZDNkN2WkV0OEZZVUFRSjZhR2hkTmc2dXExbE5aQWE2dWlqcFhSUVU4YlZsVjUwV1dmU1RaL0FQUHdPSHlGK3VvCnJVdGpkaXhQakYrMzZ0WERyVWh6cjhPUnE1T1BkQ0xIMnBGRGJlUHJ6MDJvT2pXaDRoaFNjUWlwYkVLcW15Ym5ISVRKT2pBcCs4Q0UKN0FQanNwdVE3QVlrdXg3WmZ4RFpsSXNVVlUvcWUvd3pNLzN6eXc5LzBYb1ZPWGNKT2RxR0hHcEdHczlDK2xRZEcxZHllR0krZU45RwpKTDhleWFsRnNpcVIvZVhJM3RKeHU0c2NkaFk0Yk10Qk51eDdMUzMvWGZEQ1NWYTZLMnVtcTZvY05UVk9xam9iZ0lZWnlBYWd3ZktQCkFlb0g1c1hjWXd0ekVQT3dlQnVxNFNneGZiWFhVd0NGYWF3QWlxVmtVUkVTVXl6SFlGcGswZ2RGR2RseEprNlNsclhZd0k4M2NHTWkKQkpFbW9Va3JpTk5LazFSWXJFeWtwWVJmcHU5SHVtOGdSNjc4SXI4QkthK1puTi9na0YwOGVYOEprbEdLcEpjNDdNdEY5bVlnZTdKKwp2cW53TjR1TFJ0V1BQWUFHQjhLUEFhQTM1SGxBUDY5TE0zNGx5M3BEc3Y5MVdSNEEwRnpsZndRZ1RDbUZrMUFKUlNDeGZncHBIVjZ1CktKNm1MQVFaTXREVDRmRE1hSEFRRzRDR0dEU2NPOC9SanhWQU9RR2E5REJEUXJ4SkRBQ1VFRVVCQUtWRnEvNURBTUd6RUY4TVFEYlYKTUFDeUdRamNBQUROVUdSNjR6dG5ZaHRHbndYMm5EQUFBdm9CbVlyRFBtaDdBTDBsemJRckFzRk1SYk9ub0Rudm9ubnZZSU1HQWpmQQpRNTdvdnZla1M3K1JLQmFLdWNNQXhNVUc5Zk9mQUVpdUhnU1FSTVcyQWlqc2EwcnBpMlc4TElDR0dBU3JSUFlCQUlJdDB1QTdTN0xrClk4Vm1pZFlVYThDUzlNOEZVSVEwTFpLS2oxYkRFODMxTEoweW5JZEsyQkl4eGhWS2VEeTJoQ01VOEFpMlFNU1ZMQkpKMTM0cXJ2UG0KbjNEbE5IcnhqcmxKVHJ0S2ozZ0xEL3V6Qjd0L3JBd2FQQm5JbW1ZZjZWbGZtRFBXblBhVG52U0hPZWNuQWpuckx6b1RJRG9aS0RvKwpVM1JzbHVqNGJESHNEUXFVblErUTJmZjZYUENWdHZoS21KeTNobWtKQW1uemVDYXRRMmx4RTRPMHVrdEFiRys5NENucjhCZ2pibEtRCnJxRjB1dzZtMVV2VzVnMXdCazNXN2kzdnNLYlRCMk9xUVJjQ1lCdFFaNEFjcE1zZnBzY2Y3ZmFYZ1hUNlNUc0RaTzJCc3ZaWktJeWYKak9uK2dXMUF3RkxlMG00ZkdjajVRUHc4aEE3ZUhnRGJvbnY4eU11KzVGVmZzcHRaOFBJZjdBRUNIZ0pwbVlrejdjOUFQNEErUThFdQp6OEt2QktMREFOUnJ6UzAveVQwZlViK1g4Sll2LzVGTFdQKzBrUEovaEdrcExxYm1rQW9XUlFYalpCQ0JoeEFvUjRpS2d3bnNuNlRtCkN5cjJMNHExczVYNy9aVUZJTE1WbWU4cjl2NkFhMzdFWkl2a29XelpRcUZra1ZRY0toV0h5TVJCUXVrUFhOa0NOaHJDbG9aeUpNRmMKeVVMd2hEQjBZWWg0WWFoa0VUQVF1QW1UQm9XSkY0Rnc1V0ZHWEFnbmdwblVLeU8xQURxRHkxNnhUdzlDWkI0RVZ3Q2c1VHJWRW9NeQpXU05mWmxTY0tpeWdMOStpcnowdzM3clZlNjBUME1keTU0SDV6cU5IdHg4OTdIdEkzMzlNUDN4STM3NDljR2ZRUTR4K1lLQisrbWpiCitsZjNGYnFyQndESWNxSGIwdEpKTjErZ3o1eW5UNXlGNVo4RFJ5eDFCeTFWOWVhS1dsaitLU28zNTVkYWNvcnBySUpCQU8zT05xZm4KRE94TU4yL2FRNi9iUmEvZVJxL2EyTDl5OWYybFMyajlZdHFZY2htTFR1YXFuSGs0d2xXTjQrc1IwamlaU0J5SHJma0Z2dXpuQ1pIZgo2elFxREk2Si9oU0xaL1FEOTFWWkFUU2tuMEVBdmFCKzdBRmtvdzhUUDEydHQ2N3VQVVg2ZDNJaitJOElsVUlBY2FXREFHSld3UmdBCkRhNkNqUUdncjJXcGZvcDhWMjI5SjRDQ3BzNEdJSGZyeGpRWFZUVzQ5eUNyWmtuM2ZTTklZSE5GYXpSVUZxd0FwY1N2WGpXNTRSUnkKOWpKeXRCT3BQNE9VbjBVcXpveXJPUG5mbFNmZXJUZ1JXSDdxeS9Kejh5dk9CZFdjRDY1dENhbHBXVlRkTXFmMDdHZTVSejdjVysrLwpvL0tYdXl0ZVdiSEhvZTQ0OG9oRyttamt3ZzNrZE1zdmdLanFUeUoxSnh5cWo0OHJPektoNkJEUXo0Uzhodkc1OVE3WnRVam1vSDRjCmRoVXkrbkhZbW8xczNmWExWWGx2NjR0ZElJQnFHUUE1cW1xZFI3UUJNWGtSQUQxcm5lSEtZVElXZ09DTkZVQi8wZThYcUpRTWdBeGEKZ2NHSW1vemhpZXBGYVNRdldxTWxZNUlWOFlteGtSRlVUTFF5d21RdzZhTU1taWkxUEVZbmpUR0lEUm9XSnpuNTk2ZWFrZGE3U05ueApWOU1yZjUxYmpwU1dUTnhkOThxK1FvZjlSY2orUW9mZDJjanV2VWg2K3FSZGVmKzlPdCttbjJIbEg0QWVtMzVzQUFLdlBqWUEvUkdECjVaL2ZvYm0vbG1XK0prbi9iM0hHRytKOXIwbHozOFgyQVFBWmROd1k0MHNBeUg0SkRBQ0lKQVZoaE5vUDMvZ09rVHVWeXJVQmlERVEKQUpETlFEWUFRUU5waXUwTTlJeHZ4b3FicHBDSmh5clBUNXNWQkdBVElVdUtraVZHazB0aXFOUVlSajh2QVNDVGlnSUFVaWx4RzREZwpVVUJqQThoTmtRWHlWRCtLVEdjbGpKTVM2Q1VEQWtnQkZ3R2RxQ3dQWW8rZmZOTkxBOGlKeWhrR29LbDRMZ0RRbStJc0c0Q0dEQVN1CldVKzN4Nk41d0QyMnVNaHlBMlhydnBDbzVvdTVZVllBY1ZFT1h3NTdnSDRxQU9IS1FRQkpLUjZmQ3ZtR1ZQcGorNmVSQlRCRUVjaFUKa2tuSmN6S1dnY0RIa0hXUFdJVVRXZndueFRhZUppcGFUeVRwNVdNQkNQNDBBazJMd2hPalZYRW1hYUtPWlZCeWVCZ3dEOGtCMzY2eQpjUkdMWlBHVkhJNk9GMjZhTDRqZ0JldTIvWms0NWk0NDZzNnA5K0UzK1VEM05MdHhqM2tLWU8xbnFOSUR6NGIyRnAvMEVoMzBFeC8yCmx4d0Y2TEdPU20zMmtiWEFlbys4dzFNTTB1NGh1dUF1YkhNVHRMcnltYlJONWJZNndyUk00elpQNTU2YnpqM2p4RDN0ekcyWklXeDEKRVFITkFNUUFpSFQ2QXg4QUNsQXRIeGxiL21KcS9UaWk3YStSYlo5RXRmOHRwdVB2c1NETjN5U0FuUDgyRWFUbHU2VFdmeWFEdEgyLwptTGtabVJid3RHOFRXNzlPYVBrcS92eVhjZWYvRWR2OGVReEk5NStNTUI4YXV0L1RkYzdTZEFhcXUveFZuWDdLaXg0eUdFZ2xTWmV6CnFOdEoyRFZkQU5JOURRYmN0RHNKMm1jSTIxeUViYTZpRmpmUlNSL2hhVi9SV1Y4eDAvSGQ1WXYyK0dOWC9IRm15YXpkRjY0RFhnaWcKV3NIZktBQ3VuVEhsS0tBZjJBcHRiWkZtREdUYitYVXhFR2R5S1ZBT0FnQUVNZ3hBTndLazEvM0Z0M3lGOTN3RXQ3MTUvVTZoSno0SQowOG5DNVFZKytMekZDYTRjWDRoamN6RlpLRTlLZlljdi9sQzEvbjBxZTZhaXdGdFo2YVp1bUtGcG1xR3RjOU5VZW1oS1BzV3pQc00zCmZTV1BuWU1TaTJTaWNEUmNnQWFMNVBPRXNvVjhkRDVQYmcwYXhFUGhTMnk0UENoY0ZnTENrZ1FCL1FBZWdTdDRHUTZYaDJveGZyd1cKWHhyeEx3REV0QUd0MEt0VDFiS05zYnJXeWxLNjV3b0FrUGxhMzcyYmZRT1dmdWdlb0orN1R4N2Y2Mzk4NS9IQTdmdFc5TnhtZXAraApmbXpsSCtzR2VQb3FMUCtZTDE0eHcwT0FZUG1IYnUweW4rOEErb0hsbjJNbm41Wi9LbW90WlRWUVA0V3cvR1BPTG9MclgrbDU5SjRjCnk2NHNhKzFuRDRoNTYvNTcyL2ZlM2JEZHNtSWpuYnJSa3JDY2psdE1SOGJTWk5ReHJuWVJTL296UGpwQllrUndQYUpaaWtRbHZxOG4KSlVwVVNvbllZdm1mWmFNRHlKMnFHQXRBWXk5N2pRNGdmME1OdUw2bnpQbFdIaFVpQ1E2VnpnbVRMdUpKd2w0V1FOL0tGdnNyODl5MQpkZDVxZXdEVmV5cmh2QzFYTmR4eDVrSFYrY29ML3lGYXh1YWg2d3lLZ3NWeGVVdVh4SzlhT3Jtc0NqbDQ1TFhHWTU2VlJ3VUhXaUtPClhkeDMvdDdwTHZyT0ZkcHluYmJjb1B0djBQUmxtdTZoNllzMDNVWFQ3WFIvQzMzM0xIM3I1RUI3VTE5KzhiWFZSNTZJV3g3Nm5iNzIKczdNM2tDT3RTR1VEVW44STdwa3ZQNEFVTmlFNURiRHFrMXVKNUplUHk2aDAyRmVPN0NseDJGVnMxVThlc2lVTDJaaUJiTm4rcXpXdwpEY2daNEZKVk8xVlZPVTFUUFYwRis0RkdOZEJZUzJBL0lZRDhJSURxR1FEcElZQjRCaDNmYU9TbmtQdzR2VFoweSthQTh0bzNhNC8rCm9xNFJPVmo1aStMQ04zS3p2SGJ1K256MUdsWkNQR1ZVUnF0RVNZcHc3OHJHbjUzcGZLWHVIRko2RUNsdG5KaWRqbVRzR2IvbjFNVGQKT1FqSXJyeHgyektRSGJ1Ui9Yc243Y241MVliY1VmVmpUeC83RG1nYmdHRDVSNTcvaGp6dnQ3SWNxQi9SdmwrSzBuOG4ydnU2SkhlSwovQ21BWW8xakFpak9JQjNhd3Zac0U3UktCQUJFVUtJUVhPMURiSDZMekp0SzVVK2hpaHdWQlhaRm9BTEdRQ0F1NmlJUUc0QnNHV21kClllS3h4VlZkQU9LbUt2SlU1LzZvWHhvVkFWN3k0Rm1JUzJMSmxIamR2d0VnZ3hvZUJVU1FNbVlVeG9zRGlGRU5BNkJweWx4d2RWWHMKSHdKUWpodXgxeHZiOXA4Q3lKSElBUUI2VTVJT0FBUU5KTTIwS3dKQkFMMHRMM2hibmdkN29sRVFXQkNDUGRIeUhDZTBKRUMyOFhPSgpicjZZRHdERWxzSkJwOHhKMEF5QXVBVG5Kd1NRZ0F6NWpxQUM1R01DaURtUWFtVEdxZ01CQU0xUWxEcVRGZFB4a3ZjVU85anF1Q2dkCnVYaHNBS1ZFcXdDQWxrYkprNkxKQklCaWZiaFd4UTNIeGZNRnlWK0xGMy9MUzUzRFdmcTVhTlVua3JWZkNOWit6VnYvTjFrS3VzQzQKLzBQSlVjL3dScC93S24vK1lRQWdWN2o0QlF6RU1JalpCY1lzaEoyWkxqam5MRHJuSWo3aklqcnV4RC9xeERzK1EzRE1WWGpDQ3p2bApSNTMrUUh2bWI1R252NDAvdlNEMVROanlzN3pWQjlWYkQrbDNISTdlZXpRNTY5akt3aE1ieTAvdXFEbTlwNzZxN0VoVitkR2F5dU4xCnRhZnFHczQwSEdodU90VFNlS1MxOUd4SDJibk9zdk5kRmEwWEt5LzBWTFZmcnVxNkNsTFRDVlBiZFEya3J2czZTUDNGR3lDMWwwWlAKWTgvTmhrdTlJUEJwNFBuZ3ZjRDdkbDQ5Y1A0eXpMbExUYWU3bTA1ME5oNXRyei9jVm4rbzlVemwyZE1WWjA2V25EeGVjT3hvenFIRApHVTBIOXRVZjNGTjNhbjNacVZYRnA5UHl6OFJsbnRYdk9VZHVPeS9kZEY2dy91TENwUmZucG5aK205anhXWFQ3bjQxdHM5UXR2bVN6Cko5YmxpbmE2eUppQWU1QjJWOWtGRjJuelRPeDhJTVlzaEFFRGRRZVNsMlpTbDJjcVlOTzBQOTRkZ0RHNUZEQW1nSUIrR0FCZDlSZjAKZW5OdnU0YzN2d2NibndWYXJsTEJ3ZVVjQ2M3aGtYeTJYTDVBYnZxTVdEbFR0UjlBeDVzNjZLVm9jbGMxQVFBeEV3RGN0VlVlMmlvdgo0cWdQVVIySXBmOUp2dWt6ZE9tMzhvZ2ZjUG1QQkljdGtiSmxiTFo4QVZzK2o0MHVBdGFCOUVFWDhkRXduaXlVTFEwRzRhRHdKa3dNCjM2cVNjd0dBMGlMVnl5TTBRRGtNZ0d6VE1CZ0EyWTRDQXRrYkhYRzVwczV5b2R2YzNVUGY2RFgzOWc3MDlqM3B2ZmZrOWdQenZZZVcKdXcrWmVrLy9yZHNEZlhmbys0OXRtNzlnaHZSanZuYlRjdVc2NWRKVm9COUxKK3orWWNvLzVuUHQ5T2xtK3NUWmdTUEh6WTFIekxVSApMRlgxUUQvbTRpcW0vRE9RVXd3QVpNbklZOG8vbHAyWjlNNk1nYTI3SDIzYy9tVDlkbnJ0RG5ybE5ucjVGc3V5VFEvWHJudThlTVdBCk1aSFdSdEhhaUQ1NXhBcU8ycGtsbkN5Ui8wNXRjSStpaEhJQlZ5T1V3UFZsNmxOc0xkRFBNQUFCL1RBQUdxbWZNV28vMW5ZZmJTMFQKYjEyZGZmd04xZDc2eGxuSy9LL2xzVUhTUVFBSnhHSGhzbUFiZ0FSWUdNanpBZlNkZEhHQUloY0NTRlBocG40S0lDOUZsWXNTam96dwpVRmU3VVEyZWVPV24wblVzQWI0NjBiaDdjZlNPNUpodEtVa2htVlZ4QjF1TExqNjhmSSttSDlEMFk1cTIwUDMwUUwvNWthWC9IdjN3Ck5uMnZqMzdRYjduNzJOejcwSHpsNGNDbGgrYUxUd2E2K2tIb3RrZDk3ZlRkQzNUL0ticTMzbnl3aWw1Y2Z1dTd5bFB2NWpXOWxsdUgKNU5VZ2ViVU8rVTJUY3hvbXAxZE8yRk9NN0M1RmRwVWdPNHVRN1lWUDliTnVQN0p4NjYvWEZBQUF3YTM3bXRwM1ZXWFROTEIxaVFHUQp6VURET29GR05rR1B2UVEyWERsREFBTFg2bUh4TmxTQnE1KytDb2pLQmlDZEZnSkliZVNLbHlWOVdGdysrVUluY3ZIcXhCUGRyelMyCklRZGJrSnFUU04weHBLb2VLU2wrUFd1LzYvbzFueVVsc2hPVEo3ZGYrM25kQ2FTNEJzbXZSZklya2N5TWlUc3lrWDIxRHJzeWtaMVoKeVBhY0NWdlNBZjZRblRzbTd0ejNxL1hwd3dBMGJPVnIyUG9YQUJEUXo5dFlNZERQNzFHb24xK0xNNEYrWGhYc2VWVzRId0RvTlhFTwpBTkE4eFlzQ0tCcHU0RWNqZGRZNUdDcUpXZ2xmSERFRmlsT1NSWVRlQTkvMlJ5Si9DcGszaFNvQUFMSXowSEFBTVFheUI5Qkk2Tmh6CloxaGNWUG11eWtJM2RkNzN1aFVtRXdrQWxCZ2xUNHNoa3VMK0R3SElYalVNZ0J4VitVTUF5cGl1eUFGeElmWjc0RHYvZlFCTmcvUVoKRTBCV0E4RzhpUllDQXdFQVFmcWdtZE5rTVBBR0xmV1ZidnJNQ3FCUThDVkF4ZytYQzhQbFBLQWZHSUpqRHlCb29KY0drR0FVQUdGNwpmem9BbGM1UUZBTUFUU1BLWmxFN3d6UUpFZnJuQVdoeGpBYm9aMm1VTERrS1R6TEprblJjalpvZlJzay9rV3grSDkzbUs5L3BKUWYvCkh4bWVXSllmbXVHUFpud29YL1c1TkM3Nm4vSjZYOVp4ajlCNlgrNEJIK0VSYndtY0dPL0JQK1RLT1RDRGZkQ1pmY1NWQ3hnRWkwQi8KMVovK091WjBTTm9KZlAyaDZKMk5xN0tiZHBjZnlLc3ZyemxiMWRoU2ZiaTk1dFRGNnViTFZlM1h5cnR2VkZ5NldkUGRCMUo5c2EraQorMWI1eFZ1bEYyK0NGRjNzYldpOVZkOTJxNjcxWmszYnplcTJtMVVYYmxhMHd6UTFYMjIwcHVFOFRGM0wxVm9tNTYvWUJ6dyttTlpyCnowOUQyM1VtVGEwd1pWM1hLenBocWpwdjFIVGVxTzI0VWQvUkMxTGNjNnVrNTFicDViN0tLM2Vxcjl5dHZYS3Y0ZXA5a01yZXUxVTMKN2xiMzNxdTVlYit1ZHpEMU4rN1g5dDZ1dVhLejV1TDErZ3RYbXBwN0RwM3NQblM0L2REQnRtUGxoNDRXTkJ6YlUzRmlYZjdKcEgybgpkVnZQeU5lZUZxN28rU2FtK3g4UkhYL1J3TDFnM3JJTGJ1TE9HYUl1WjlFRmNPOHQ2L0NGQzJvWC9TR0Flb2FXd0VZRjBBMC9jWGNBCi82WkgrSjBackQzZnM0VWF2b0tFdzBRVjZCd0J3VjVBcWI4aWxyK3YyTzJteVoraEt3Y3ZjdkRsVmxYbHBTNzNVcGY0YUVwOU5aVysKNm5vLzlZRzNkTVZ2YXdxblV3VWU4c0pBYWVHZnBKbWZTRGY4WGJaa2dWZ2RKQkdIb0VGaDhubGg2RUtXTkJTdWhVbURnSDdnZ29zawpHSzZMeWNPWWFoQ1FFQUJRakJZYkNTRDdjNEFZK2dBRGdmczdGZlgwNlE3NjB0MkJLOWVlOUY2aTcxNkhQVUJYSHBsdjNhVHYzYWI3CmJ0QzlWK203dCttSEQ4MTNIanpzdlE4WUJNTG9CNGJSejlENWh3QkE1bzVMMXQ3bkxrdHpCd0FRTFA4Y1AyTStkR3lnOGRCQVRaT2wKc3M1Y1dtMWIvNElBeW9SNzRDMTdZZm5IdkNQandiWTlUN2J2c1d6ZFJXL1lTcS9aVEsvYVJLL2EzQTl1a3RkWmtwYlJ5VXZweUpTSApWTncxVGVKRlZXUW5SL1k5VjRFcU5SdGxraWlVSTVmenhFVElBb3o0UUw3ZHBoOTdBSG1RWmFNQ2FHVDU1Mm0vOHhDQWhobkkzMUJwCkJWRGhWL0w0SUVrb0FCQkxBZ0RFZm5rQUpRVW9jancwTmZZQW1nSCtBSW9LNnlFNk5WNnFhamRsb3h0Ujg0bDBFMXRBYmpYcTk2WEUKVnV6Zi9QaEk0dzNnbmtjUVBVL29oM2ZvL29lMFpZQzIvakJibmxqb2h6UjlIN3g5d1B6b3NmbkovWUdCUG92bHVzVnloVFpmb3Z1Nwo2UDQyMnR3OThPQmNIMzN5Q1gyU3BnOCtvSnY2SDliUkI0dm9aZGszLzc3bjVLdTdxNUY5WlVoR0diS1A2WGVHOUVHMndkcVB3NVpjClpGTW1zajRkV2JzSFdiZmxOMnNMM3pLVlRsZFZUNGNBS25IU2xMb29TNTRQb0pIYjRJY0J5TVlnWDFQdEdIbEJBSVV3QUZMRjRZRk4KUmNpZEIwajdvL0VWNTM5WjJqQ3h1aEVwT3pTeDhPams0dU1PZVVlUXZNUGo4dzhoR1pYajloVzlWbGlGTlBjZ1ZRZVFncHFKR2FVLwozN0ovM0U3dzcxQ0hiTnNHQVFRa3REVjcwc2I5RGh1MklsczJqZCswL2I5WDdYcHhBREVOR08vZ0pXL0ppNEIrZmlmTitSOUoxdXVpCkRLQ2ZuL04yL1ZLNC83ZkNQZllBaWpVOEQwQ3hlbmlJRVFBUTBNOUlBR0drK1BrQXNobklCaUFRZXdDTlZNN0lBUGM4amFJSVhML1YKcmpTWWlJUW9hV0trTkRVYVQ0alRMbzFWV2FONW1oZ2Rjd3owaXdOSWpzRjVxS01DeUpYS0JCa0dJQ2RGaGcxQXJrTUFta0drdTJHNwprSkhFWVRKMDNzOG9BUUFDK29HeDlrRURBTDByei82ak5Qc1BraXdtZ3p2Q21NaGhuaTZFRFphQ2NweGxCVzdvM2crbGkrZUtoZUhpCklCWThSa3pBa1VIOU1FVWdoa0dNZ1Znb3JBQU5IZ1l0NTRrd29Zd1U0WlFJQXNnYXBVb0VvbEtER3dFVFNzVkh0VnhjRllJcTJYd1YKVjZnTW5vY1RmdWlPNlVRQmlDTmVhTXZJWlMvNzlhOWhQN1hGbWN4eFZGUk1VMVpPcGNyZHFaeGdkV3FzRGc1a0FRQktOdUZ3OGxjVQp3UUJvZVRTNTNOb0FueEtKcDBiTGxrYUtVdzJpQkwxVXBaTnhLY0g3K0xicFdQRWZsZVdPVktFTFdqa2RyUUtmRlFCbkg4cjJ2WWR1Cm1NczFwbjNMclFvTU9lSEtQejJEZjhKeHdjbTMrTWU5aVVOZlJsZUxWcFJFN3l6YlZGNlRkN1N4NG56aHVVdEZ6VDJsclZmTEwxeXYKYUw4QnJ1QytwT1ZLNWRuTDlxazQwOE9rNnN6bGthaytlNlg2WEk4dE5jMlhSODB3OUl5aW4yZFQzM3J0SjRuTlRDRDFkcWxydjJFZgp3S2E2enQ3NnJwc04zYmNhTC9ZMTl0d0dxYnQ1ci83Vy9ZYStCL1czSDRMVTlUMm92ZjJncHU5Ky9hMjdkVmR1MXJkZVBuQ3M0MGoxCnVhUFpSdzV0cldsWVZkeUZiV3JqclR6M1EreTVUelZ0NytHWGZLVFhYVVUzcG5PdnVIT3ZlWER1elpUZERCUmZDUlJlZncrOTZpZSsKN2lOdG55bTY2ODY3NzhxcS9KeWpsQXVDMU9GaWVSQ0JMUXhIcGZQa2NaL2d1MzJWWllBK00zUmw3cHBLSDJVOXVIcG9xd1pQUGRIVgplV3ByM2NHMytDcDRCUENvQVVxZUxkL3lJYjd5QzdsMmtTU0lKLzZTSS9zcVRENEhMb1RCdy9kZ2dJZHNrY25aVVdwMGhVRzFWcTllCkc2RmJFMk5ZR3d0UFJGd2ZaVmdUYTFvVGJkd2NIUVhvazZUQnN4TGo3bVVWOXArN0FGZXNMdCtnYjl5a2UyL1J0L3FZaFMwR09pQzIKN2U0Z1p1dmp0dG9QZmIyWHZuckRjdVU2M1hPTmhxMC9sK21PSG90MTV4ZmQwbTQ1ZTk1OHBwaytjdHh5NktoTlAzUnBEVjFVUlJkVQowbm1sZEc2Skphc0FMbjdCOXVjc3k4NE15N2I5bHMxd0NjeThZWWQ1M1haNjdYWjZ6Ulo2NVNiTGlvMlc1V3ZNUzFhWkZ5OGZpRXZyCmoweCtvSSs3bzQ2NnBUQmRsR3A3QkpvV3FYeU5oZ3VvSVJYeWdyREk5OUVkNzZpT1Q4WHJwcW9xWGRWVmZuSll0WjJtclE5QWp3elQKangxOWFqM1ZkVXpzeGVPcmZSby9YYjB0M3JvcWQvMEJmelVBVUdLb09KUXRtY05DNTRmam9jd1NHR09ncHgzUVpMaUVZRW1JY0JFZQpialVRRndDSUpXYUhpZGpmaXJRZktNcW02MDY1bUpvQXZGekpSbGRkazdQdXdIU3F3VlZaQ1JBd1E5WG9yR3p3SklwbUNUYlB3YmNVCkZ4ZDNkbllPT3NmNncyS3hNRGUySHdOMlAvck5BMC82emYyUExmMFB6QU4zekU5dUR2UmZHM2h5ZFFBWTZFbW41ZkVGOCtNVzg1TnoKNXNlbnpBK1BEZHcvOHVSUjQ0Q2x5bnk3NkZGdXhxVUZPeHAvc3kwUDJabUhnT3Z1d3ZIYkNpZHZLVVEyWmlGcjB5ZHV5UHo1dXF4SgphYnVRblR0L3M3eDRxcTdtWGFyS1VWc09HMHFvb3VtS0dpY1ZuQmh2TTlESVBtZ1EyMm1IY0xMNnN4dmdSMWFBR1BlTUxBVU5pNmVwCnppVVNMb0g5VGJ1WHE2RU1HbGFVUm16VXkyYm1sUHk2dTIvQ3lVdEkrVUdrN3R3cnBhY25GTmFQTDI1RUNwb2NDaHZIRlZSUHlpMGIKbjFzS2QzaWxnMnN0VW5rWUtXbjRXVW5OTzFYMTd4MDU4ZTM1dHFET1MreExsOUVyUGRLclBhS3JQV0U5M1Q5MlhQanM3T25BeGdibgowbUxQbVBwcG12SzN5Vko0aXJlbTFrbGRhZDFuWGpDZHlwdWhLWFBTVlRwcXFxZW9LcWVvUzZlb0NxY29jdC9FeW40dksveWRKUCszCmt0ei9FV1gvaXJmdjFmQ2R2MkR2K0NWM3grdUNmYStLOHFaS055MVNhdUFVTTVNNHlTUVpxUjhtZ0Q1TStlZnBISGpyRWhpbWxsbFAKREJiT0lTS2Q4TjF2VS9tT2VPWWZxYktwVkQ3SUVJUHlRZXdaTklnaFRRR0lxN1lRNUZrTUZkbmlvaXEwWllheXdCWW5aYTRybGZ0MwoxUVlpU3AwWXhVc3dvWXZqdENueGVGcWNDbVJKbk5ZV2hqNUw0cXl6d0dKMGkrRlppRnJyT0RCbGhJWTBLa2tBSUxXS29CUnlvQjhaCkJnOUNCQUFDQnBCS1ViRlVFQzduZzYreGJKUTNUNDU5Z2k1M0pkTmRxSFJuS3QxSkFaSUI0a3c5alJPWkR1S003N2NGZWJxLy9kbU0KNmg1YkdBQTVXak1GZ3h1K0dBRDlYcHdKcm5BNzJCQ0Eza0t6MzdJN0pOb0dJQ2Racml1Njd3TnB5bHlST0Z3Y3dnQ0k5OU1CaUZUeQpaQm9PQXlDUm1nY0FOQi9IL09UYnhnTFFGS0lZWktTQmhzVU9RSG1BUHZBQVF3aWd2SVdxdEdnZE5neEF0dk9nN1FBa1h3SXNiQVdRCldpc1RLSVFmNHBzQmdQNmdLQU1BY2tZcnBza0hBZlFtbWZGbitkN3ZoUEZDRWJyNkMzYjVPeUVIWmlseUJYSHAyNHVMaXc1V0hHd3UKTzlkWmN1RmlYbXQzMXRtT3ZQUGQrU2M2Q2s1MkZwN3FLajV6MFphaTA5MDI4UXhMNVdtWVVRejB2d0FnZXdPTmZOT3dKenduTHdnZwprTnFPR3pZRDFWK0VxYm5ZVzMyeHQrYlNUWkRhbmx0VlBUZVpWRjd0WlZMYmU3dWg3MTdUblFlTnQ2R0txaDdkcjczVGQvRHk5VlBuCnVzL1Zuem1mV1g5bVRmN3hwTjBYQlN0YlA5VmU5cEgydVl0dnVQSjZQTGhYdlFVM2ZVUzMvQ0dBRHZ5Sm5jUmlFeVNIVUFwRUNoRUwKRjN4REp2eU4zRGliS25CWDF6cnBxb0dCZ0hzWUFESDZBZCtrTXZvQnIzTXVpc0VKblNQaml4YjVZa1dCK0w1UFpPQlRSaG9tZ0J2ZwpGMHJDd3FTTFFGaXlJTFlVanVFRVY1WmtFUWdBVUtRR1hhNVhybmtXUUd2allCMW9hMExNK3JqSWxRYk4vc1Q0Qy9zejZjYUQvUzBkCnNHZjVDZ1FRUE11bnI0L3hqUTFBTnYwd0pSOW9vTjQrYzIrZjVYcXY1UnJVRDl6MmRXbFFQMHp0eDdyenE4Vjg2bHovaVROUVB3Y08KRDlRZE1GZkQzbWU2dUpvdXJJUm4vMWoxQTJzLys1bmQ3NW4wOW5UejFuMFFRSnQyV2RidnNPcG5PNzBhQW9oZXZ0RzhiTFVsYmVWQQo4aklHUUkrTUNmZTBNYmRWa1ZkeFE0OHNvcGxTblNDSURhUThuT0xPRmF0blludmNzRm8zdEF5T0ZGVlhlT1B3bEJwSEZieit4QUJTCkZYOEpBY1JpUzM1NFBvQ1lDcEFOUU9BckhsTUIrZ0dMK29Bc2RsSWVjTk5YK3FzcmZSVzE0S1BDUlZYcHFhL3owUjUySW11bnFxdkEKYTZlUHZOQ3d0dVpTOTVYSGp4OEQrZ0QwZ0J2Z0crYSt2Ny8vQlFIVWY4czhjTjNjZjgwODBEMElvQ2V0bHY1bXk1UFRsa2NuK2g4Ywo3Yjkvc1AvcW9ZRkxCOHczcStrcitYUmhSbC9RanVPL1dKT0ovSCs4M1FWNFcrZlpOM0FQdTYyVU5BMHpPdGdtYWJ1dTY5cXRnM2J2CjI5RzdiazBhTklucGlObVNaUXc0ekV5T21abVo0emhNWnNiRXNjWFNrYzczUE9mSXNtelphYloxWDYvLzVjbHluS1pPRnYxODMvZHoKUHhlU1lkVUgwT2RjNGs4dXBuaWNpUEE0Zk5IamJPUVByc1hOT3BTNVFsNENYdmlYeS9MaFVLMGtaNFdrZUFLQW5BWWFmeGkrWk14QQpVMndBY3N3MWo4K2tUem8rRkZDNlBxQUVmUG9YY2dlQUFoVk1wWnF6NUc2OXg3MFdqNG9IUHlxcCtsNXV6ZmV6YXoxS3F6eXlLenh5CnlyNmZYUEtEaENLUHBFS1B4R3lQaUlRZlJ5ZE56ODc1NjYwSHBPYnVRSzN4TElaRllGZ1Vpc2FnbG5nYkdtV3dSQm10RVNiMGlzVisKd1lxZFJySERKdHRlclZIZTlweGMwL1psWE4wSGg0dFdxZUFWcCtDTHNFWlJCU2kyVWxLd1ZKQUZtMS9TdktVaXVQaG5rVEJuUGpkbgpEanR6SmdQcTV5MWF3aHVrR0tDZlYzMGlDQUM5Ums5WnliNE1BS1JXMFY4TUlQY0JJQUFnbVlUSmxiSjVJcXBBUlBzN1g3T2NGN09BCm43R01semdQdnBabE9nMkUxNEVjQUhMT1JEdXFRYU1HbWxRL3JnQnkxUStJcHpodHJURGo5NUtMdkVBNUJKQ0dFeDRxL3pjQVJGU0EKdmhWQWZod0lvRDhnUjEwQUJQVXpDcURrbFNKSUg1Q1ZnbmdRUUo5VnZEaVFsd0tRSzMxdy9TUTdBYlNNRDVmOXVBSUloQmlJZGdYUQp1QTNST0lCV0ltbXJrZGlQV0VmK3dVUjhXTHQ5RUY5dkxvV01rUDRyQUpKU0dSQkF5UHZJRmFDZkZmd01Wd0FSN2lFQTlKSU1BbGtwCkFIOTZDbGJnQUZvdHl0Z2lQUmFvNElXcGtFa0JCSWVneHdHSUJRQ2tVSElZRXNwdkJPZlc4REloeWNVNU9JQUt3Ui9ONWZ5Y0ZmeUMKajlncHYyY2MyU0dVaVhaUXJteFQzN3hTVWZTNE5mVlJXM3BESjBCUDNKMkd4SHRONlE5YU11NDFwOTl1ekx6ZENwSjFwdzBrKzI0NwpTTTY5anR6N25mbjNIQ200MytXTUUwRHVCbklGMEgvRFFPN1B1MzcwV3pNcGdNcWF4d3dFSHNPME9nd0VVdGIrdEx6aldSV2U2czZoCnF0RlVkc0hVZGcvVmREMnJ4T2VXeXJ1Zmx2VThMZTBlTE9vYUtPMENTQm9xNlh0ZU9qaFM5bHhiTmpKU1BEeGNPUHlzN09sUWRWZmYKbmZvbkRURkZiZUx6ZzMvVkdONUhoaGZzMEszenZ2MHJ2K04rZExxQ3pCVHM1TEY5dmZqaVAvSURQNVFsdkNmTDJTQ3JXaTJ2WGFVcwpXNnNzZmtkZXVsbGE3ZFFQeUFaNUtkRFBhbEdScDdEUW5UNUUxdkJyVmd0aEFlQlhuRE4vb1l1MlVieTJVWGI5azA3YVNkKzZpd0V2ClJpVVlCRUtRaUlsNGEyU2NvNnFKQURvWkZuQWxKUEJxYU5ESklPWFZFTTJESzlleHlqcnMwV08wcFFNRGZPbC9DZ0NFUG50bUd4b2kKS2owTzlPQWhha0w0dHNQbjZPQVFDS0VmNTZGM1cwZTN2UVVlK3hyVlR4UFV6KzI3MXB1M2JkVjF0b3Bhb0I5clFhazkxNkVmZTJvTwpyUDBrWlJENnNVY24yYTVEL2RpdXhHS1hvKzBYSTBjQmRBVTdkUms3Y2NsKzdBSXMveHc2WWR0MzFCWjJHQTA2WUE3WUI0dEF5cENuCnNvQkJZVmlYV05NalViWHlsQ2NFak05RmtwOHpvellqdVp1NHVTdkUyWXRrK2VzRkZlL3lxdUd0VmZLczd3cEFtMGNCOUdkZStHNm0KcndOQW84ZmdYeDVBWHlHYWozbXA2NlJsNzZseVA1SVZmQ0F0MjZ3cWZVY09yUXdORVZDMW1Kdi9qL0N5b3FZaGl4M0RyTER3UTRpSAowQS80Qnp5MldDdzJHMFlFUmUydUFRQ3lnZ2NXRERYYWJWcjdHSUE2N2JBSTFHSzNOS0hvRTh6NjBHYStpeHB2b2NacWs2SEdxcXUyCmEwdXhrVUtzcndDclQ3T21YdXY3ditNVk13L0hlNXlPOWpnZjQzSDA4cytPUnJ4Mk50Ymo3UGszenlmUEQ4MVlLUzVhS1M0RjFnU3YKbzZzbCtjdEdBVVFZeUgwVWVuUVNxTVNacWJZZ1RtcWRTWjhrOHI2cWRJTzZaSk0vQUZBTUFKQlM3cU5XTWhVQnJCL1cxM3BVTjN3LwovOVlQQ290ZXlTcjVYbXF4UjM2eFIyYTFSMHJPanpKTFgwa3UrVjVrNXZlVE01YlVscFBiV2lJSGRDbW9MZHRtTDdMYlNpekdmTjFRCnp2Qmdqdlpwam40NFE2dEwxV29UUnJReHc5b0lyZjZ5M25oZWJ6eWowKyt6OUI5QWgvZWJEWXJPNFYzRnpaOWNxUFVNS3B3UDkrNFUKZzYvQUdrbStweUJydFRnUC9MY0RpTS9tNXM5RHNtY3gwMmZRazZkVEU5OGt4NzdtRy9Vejcyc2dyNUVpcDFGaVhxTW1yMkpmMmkyVgpxZFhVUURWcnY4dkZGNU1DYU1JUk1BQWdIakNRa01JWDB2L0MweXpseGN6anB5L2xKczNuZzVlNWpLWHdKY3k5RHVRNEdBK3lXdXBpCm9NblFNOEU5bnVJTVp3QWJQSVdadnhGZjRtajg5d1pUd2E4Y0FPaEFxSUFBME9GUSthaCs1UDhHZ0hoOGxoTkFKQVFIRUVMZWlpQi8KUUk2c0VjU3ZGc1pENklnY1dTVk1BbGtoU0FSWkNkN3lFMENXOCtKWGNtRytIVUNUNlNkNU9UOEZaQmtlb0I4NDY4TkpCUUNhdzBpYwpUVStZUjNjY0NnTUFXc0FCSDNLZUM0TWhBTFFjemtFbmZzUTgrUldkNThQMC9pOEFpQVFCSlBGR3hDUUNRTnY0bkErNUYxOEdRQzlqCm9CWEN6S1hDL0pYQ25HV0MvRlhDcksvRUo5VnlZWmcvYndLQWpveGRCeVk4R01RREFEb1VpQUFBN1ZkeC9KVU1qb1R5ZThHcGRieTAKaGNKQzhEM0JTbTdoY2w0K2JORHk4enc1cFo2c2xFOVl4MzFaVXFxUEh5SlZuOGtxU1h6VW1GM3pKTDNpVVZaMVEwRmRhMTV0YzI1dApROEhOcHZ6NnB0dzc3YzdrM2Uxd2lnYzhKdDUxUHVOYUFYSTMwQVFBL2RzR2Voa1MvUnNBY2hwb0FvQmNEVVJVZ0p3R0FnQUNJUUFFClVvbkhDYURDM3NHaW5zSGlibnhBdSt0cGJjZlR1bzVudHpxSHludUd5N3VIS2pxZlZiUS9yV3dmcUc0YnFHbnJxMjN2cjJ6cHErNSsKbHRYZG5hWWR5TE0rcitscXZaK1lkMU53cU9XajNjZTIrdEJGZEpiY2o4Yjl4aGVoZkMzYTkydlpkYmdZVFZHMVZsNjNWbDZ6WGxFTwp4NXpsRmUvS2FwMzZBZC9vcjVNQzRrQUE0WmxJSHlJcnhkVXJKUlhyeE9tLzVCMy9DNE83bmZMTmR1clhXMmpid2RzZHRDMEVnM2F4CnR1MW1iL2ZpN0FDaElWNHFLZXVJdi9pMFV1b0tvRE9oQVpmMkJKNEtrRi9VK0ZlZlBXL0lMTVJxNzJDUEcrSHNjM2NmTmdDdjhiSSsKZlRvR0lKYzREcm9UMTUyQzlBK08xWDQ2ZSt4dFhUREUzTStUWnV4aEV4eDh2bjNQZHVPV3RRWU9QZ1A5b0lWbHRyd1MrNWgrNE1rdgpwMzZJNXBmdFNyVHRVaFIyTVFxN0VPbXFIK3pFZWZ2UnMvYkRKMjBIanR2M1FnRFpnZzlhTlB0aEVVZ1ZOcVFJR0pHRTkwcENtdVgrCkpvNnFCWkh5RllFZnNLK3VFaGF0RjVaNWlvdVdTZlBXaU1yVzg0QWp5MWNwc3I5akFNbnovNWQvZUNlVDRzM2E0c1BaN3NkMUxFTDgKVmdCUkVaSWZtK1RMSXYwZlUva3BOMm1Udkd5emY4NUdVZDQ2Y2ZsYVJjVnFXZWw2VmUxaWR1NEg0clJqeGUwOUpneHl4NDVaN0k3cQpqbTIwOCtXVTBLVDZnYkhiSmdXUXJRdURCbXF6VzV0dDZCTWJBSkRsbnMxMHg0cmVSRzIxcUtuQ09sQms2Q3d3OXhaalEvbllTRHIyCk1NNGVldmJCNGlQeEhvY3Z2bjdvMnZjT1hmQTRjZjcxRTlmbkhjOWM3Sit4U2xDd1NsSzJURnJnS2NsWkl5MVlLaTF5QmRCVUJscXYKS0lZbkFIQUF2WVBIM1VCd3RjOTQ3cmcvNDVvUDRPY1d2NmNzK3lNQklJV1hXa21YYVZpdnBSVDhzS2pwaDFuMUhsblpQOGdwK1ZsYQp1VWRxOFN2Sk5UL0lLb1l6UFZHSm5yVTNrT2ZEaVNic2h0RitGN1hYbW16VmVsT05WbCtyTTl3d21Tdk5sbnlqQ2VnbnphQkxNZW9TCkROcG92ZmFxWG52ZW9EdXQxNTNRYVkvWlRPR0c0VER0MDMwbTdRR3IzWC9RdkxXeTRlY1J4VXRVbVV0bEdaNGl1Q2RwRGE5d0diZGcKSVQ5dmpqQjNMaWRySmlNTjEwLzg2MzdSZ0Q0LzlicjZNNThyci9wZGY1TWMvU28xd1pOMXdWc3FEVkJCQU8zVi9Kc0E0Z21aZitZRgpMK2JHenVWbExFRVM1L0d5bC9EVFFTQ0Q4SE5ob3d4S2R5NEhXaW5OQkFBaUFnMzBVdWlCRjJRNUlrd0NMN1VmaWE1U0EvejNCTklnCmdJSmw0V0ZUQXNnNUErUUtJT2NNa0Z3bUJBRGlDZGtBUUZ3ZUV3Q0l4cWZpQUdLUUVEcUpnNUE0NUcwSTZ3dmt3R3ArbkNjZjFuaFcKQ0dHVzQ5eUI0c0d6akJlL0hNOHliaHpJQ2lUT2cvQ1JleVoxejZoK2twd0FXc3BMSmdBMG41MHlsNWtFOURPTEZqK1g1akFRQ0hnZQp4TmtSVzh4SlcwS0VtN0tDay9RaDYremZhV0p2RnR6MTdNMGxreEU0QlAyZEFFZ2dkUUNJSjZJd3BWU1dlTWNPUHVzWDNITkFQd1NBCmlPdkpDQUNCTE9GbkU1a2dvYWtDRExSRWtMZFNrQTBBQkI3L1NYeGFJUmM3QVhSUXc1c0FvS09CQWdDZzhHRGV3U0Rrb0lxelg4VUcKLzRma1MveitSM2hrQXpjSkFraVl1NXlidDRTWHUwU1lzWXliTjF0U0NQNUVBaUJ1SS9OWVZCS0pUT2NvZ3M3R0pNZlhQMHE0K1RqNQpabVBtN2ZhODI1MDVkYzNadFkvejZ4dHk2bHRCY20rMWdlVEJEN1huMytrQW1RQ2dDUzB3ZHdBVlArd0NjV2ZRdjRlaGY1VkJVOFdkClFjUWt0U3VBaUJDajAwVHR4MWtCQWludEhFdUpTenNNMEtlazUybHhMd3pBVUVIUFFGN3ZRSDdmWUVsSGIybG5YMFZYYjJWM1gxV1gKSTlWZGZaVWQzWld0WFJWTlhiZmFCdW9lZDVVL2FhbCsybGVzN2MzaFN5VWl1cS9JVjRSNHNkaTcvc25uL2s1OGJyTXdGODU0eXVFNAo3VVlaUE9EenJxSUlBa2h4QXk2OVZaWnZrTVBqelhqbkMvYS8xa3BLWFMvcGRNMHFjUlY0YVhsSG1QcHI3cEd2R0J3dnloWWZ5bGU3CmFGdDNVcmZ1b0d5QkFZL3AzK3hpYnZkaTcvVG03Q0p6ZGlra1RIZ2Joci8wVEtBRFFCZERZUG5uZEpqNlZJQzA4T0JCWFdvMlZsbUgKMXQzRkd0cmcwc0tlZmxqTzZSKzBEZ3pDTGhoZTZZRWpRYTRoR2w3OWc0NmhuNTRCeUthT0hzeHg1cXNOenYwOHh2VnpEK29IdXdGcgpQMmg1RFladi9iSG5sdGl6QzdDTWZMeno1VGozYm85TkpVWi9zSWdFN0Zxcy9YSTBkc21oSC91WksvYlRsMkh6QzllUDdjZ1p1QTR4CkhBTElIbklJRFRvQUFHUUlnQUFhVVFVTnlQZTFLNFA3aFA3OVFuK2RSSE5ERVA2TjlOSUNVY2xDNFkwVndzcDFrb0sxMG9MVmdxcDEKL0tyMTB1THZDa0R2S1NDQU5zc0wvOGcvdm8xRjgySjk0ODNlNW9mcytGWUFnYmdDNko4Y3hXZjhCUENUditPZkQvN0FyRmJjV2E2cwpYU0VyblNzbzNYS2dvdXBoUDRaWkxIREFHVE1DQWxtR2lBcVFzODlGU0FoL09KRStWaXZna2UwbEFZUStzbHZ2MjgxM1VjdHRxNm5lCmFxaXg2cXZ0Mmlwc29CUnJMN0EyNXB2YjByR1JUQ3pyYXUvdkQ2VjVIRHpuRVhiNkovc3VmajhpWWNsZXVCemZrMS9nS1MxZEJ0d2oKeWw4akxWb2lIMWNCbW1BZ0o0TUlBQkVoQURTWmdTWnloM2htcW55b2hLUFFCSUFvTW9FVFFPOWV6Zk5JdSsyUmRzTWpOYzhqcy9TTgp0SnBYa2tzOG92TTlyaVF0TGEwaWQvZWxtckFHRkh0a3ROelJHUjdyelkxYWM4T0k2Y213OGRHdzRmYUlzVlpuS3RXWkMvU1dyQkZkCjVvZ2hUV2RJTXBqaURPWUluZW15em5SSmJ6aytiRCt1dFlicnRDSGFweHJEVTVWcFNHSVk0WTQ4KzJkeHc4YWplZlA0NE5VM2Y3V3cKY2lsU09JZVROb3VYUEp1Vk1ZT2VEUFJETkw4Z2dMd3ZBd0Q5eEMveWRiL0lWOGx4YTFoblNGSnhnSXFzVVRIM0JpRHU5SGt4Z0VSUwpOazlJUjRUc0w3a2hDNUNFV2R4TUFLRDV2R3g4TFYvYUpBd1NPZllEZ1hoS3NqMEJjU1M0aE1UWnpuaUtzcHhaSmN4MFpxVWd3eVdKCnkvazU3d2tqZlZXYXNDQkd1SnF6UDBpNlB4Uy9FeDRIa0V2Z05hakVXeWVBOWdiSUpnQklMT0VCQUJHYm9FY0J4TVlCeEFRQW9yREoKMjdpTVB5SjdQZkhHMWdwK0hNRWRoM2k0aVV0NGNVdTVNRXVRV0pDbDRDMG5CdVNsQU9TbW42Umx2R1NRcFhqZ1dYY09IUDJadzBpYwpTWTE3bXhJN214SkhHR2crQXo1UFRBVTVtMklFZ0JieGtwWWhLZTh6TC82Tkx2ZGkrbmh4ZDMrM0FPSkxmSEFBK1VBQVNlaHM4WTZkClBNWXZ1V2UrRlVBdmF5QjhmOE1xZnVaU2Z0NFNRZjRmaGVla1VtbVl2MkFxQUIwTDVCOEtKQURFSXdBVTZFOFhTbjMrTE5xL2ladTQKa0Y4QWZqYmduc1g4N0VXaWpLVkkvaElrZXhrMzdSZmNDOXZvTWltZHhmT2w3dDdoeTBENHgyTVNNK3J1NTkxdFN5aC9tRnoxSlB0bQpXMDVkWTM1OVUvYk5GaERDUUFTQUhNRUI1Rm9UY2dmUU9BUGhBUHJQRFRUcGsvK0poQ1lGRUdHZ2J3VlFlUWUwRGtoSnp4Q1I0bDVICmF0b0hxenVmVnVFbjg4dTdIZjJ2d3U2Qml2NytpdDYrc3U2ZThzN3U4bzZ1aXZhdTZ2YnVtbzZlNHQ2T21wYk8rMDM5dHhyNzh4KzEKbExaM1ZUWTJKV1ptQ3dJUkxzZUh6ZHpKNTNraEhQcFhnc0FQbFFudnllczJ5VXMyeTBvMlNZczN5UW8zeTRzMktZbzJ3dE11VlpQcQpaNTBVSGxPYU5Hc0YxV3VGRlpzRVdiOURUbStoOFVua1hXVHlObC9hYm0vS043c3BXM2VSY1FOUnRnQUQ3WWJyK09CSWtFekNPS0FVCm5sQktUbXNVQUVEblF5Q0FMZ1VGbk5ESTQvY0dkVjY1RGllUmErclIrMCt3bGw0SW9PNCtZQnEwRDhZKzhCUWJlRzd2ZytJWkM0NGUKRUZ0UFA1eDNCdW5xaGZweDdQdHB0VGUwNEFzUDhSdFBiOTBGK3NHcTZqRDgwRHVXVDh6OTRIZCt3YVhQT1k2dFAvSGo5SU5kaVJuVgp6MVdnSDlzcE9QZ005SU1kTzRjZFBtTS9kQm83Y0FMYmQ4eSs1NGd0K0tBMU1Od2NzRSt2M3FOVmhRMXJ3cnFVSVUvbGdVT3l3RGFwCjVxbEMzYVBjbHlTNzhLa0FmSjlXdHBoZjk2NjRlSjA4WnlWQUQ2OW1nK0E3bXdGNlQxRzBYbmtEL001K3dUL3hEWXVKOXlKZkJDQmkKQ0pvcElPRkZJSW9UUU45d2xiL2h4Y096N3VyaWR3SnVyMUxjQmQ5WmJaSmswYy9kdnY4Y2FNZUNtYzFXTzZhREo3emdDWGVUeVdTeApXT3o0UDBBL2hJZkFNeWo4NEZpc2x0Rk0wUUt6ZGRtc0hUWkxxODNTWk1VclFGYkxQU3NBa09FMmFybGhNVmRhOU5Yb1FLMnRvOUxTClhXUWRMclIzcE52dVpGczYwdTMzWTQzY3MzWFR3cTU2aEYvK1VXVEcwb0NDVmFKY0FLRGwwcEpsa21MWXpKVVVMbEU0OU9NS0lQZDUKb0hYeUlpZUFpSk1CRXd5RU04Z2htNWZSRDhnSC9pWHZxb3ZmOHkvNW96d0tBRWdsOTlJbzZVbzE0N2ZITG4wdnFkZ2p0ZXBIU1NVZQphVlVlMFlVZUVmSGZUOHY2L1Bhak00T1dGaFRyTUZudjZRY2ZHWWViVGVZbUhkcGswRFliZGMxR2JaTlI5OUNvdTJuUWx4bjBSUVpECnJ0NmNwVFdtYVUySk9uT00xbngxeEhoeHhIUlJaejQ3WWoycnR4MDNXc0wxdWtERHNNSTRJaktPOFBSRE1vUEI2MTdISnhFM2xxcHoKNW5BQU9BcVdpSE5tc3VMd3dlZUUxLzJpWC9PTmV0VW40cWRlVndrQXZZSlBBcjNxRzdPV2RZb2lFd1dwU1FCQStBM3dFK2xEWk5JdAppRkl4Z3dBUVI4RCtJN0puSGlmeGJXN21ZbllTQU5BaWJqb0lNTkFZZzRRd2NEWkk2RGdqdGxLVXVVcWN0VXFjQWZJeTZGbkJUM2RtCkZTOEJ2REsrdzQvWnJRd09DMlFkVkxQMmF5VDdRMFF2QmhEUWp4TkFJU3JwaXdBa0lMTTRBRUFzQUNBeUc2RncvTFlqdFA5RlFsZHgKWTFkeVl3RjZDTzdBY09KQkZuTmhsaUR4aXpseElJdllzWXRaTU44Q0lGZjZPQUcwakpmb0JOQVNiaElCSUtDZldiUjRvSjhaNUpoWgo1Tmc1MUhnUXlDQWNRSzVUUVFTQUZvQmZJcEw2UHVQcVgrbXEzVXhmQUNBZkh1bTdCUkJMN29jRGlNckNBYlNiVC8rWWU1SUFFS0VmCkl1NEFlZ0dEbkI5ZExDeFl6TS8xNUtXRDMrWkZnc0xmQ3krSUpiSlFsV0NmQ3M1QnZ3QkEwRUFxRGhCeGtEOVZJdkg2bXpEMFBXN2MKWWg0OE9PQUUwQkpPM2p0STNncDI1Z2ZNYTF0SUdpYUp4ZUVMbUNJeGpVR25raGtuemx6TnJyeVRjYXNsb2E0bDhWWkwwcDNtaFBwSAoyYmRhUVhKdXQ0RTRHMkVncm85ZDU0RW1BR2pNUUtNQStnOE5OT21UL3dtQXlzY2J5UFZFdlN1QUhGMHdOd0NWZEF3NktrQzRoRUNLCnVwNkNFQzB3b2d0V2lqZkNTanNIeXRyN2dXeEtPcnRMdTNyS3VudEx1L3VMTzN2ek83cnoycnVxMnJyS09ycnpPL3N5V3p1TGUzcHIKZTd1dnBDY3l4Q3d2TVltUGVFdjRYb2pBMTQvRC9SOGtmSk0wOVIxNUhmNEtXdUxNUm1YcEp2OHlFQUNnOWJJeVYvMjhvUHdEc2w1UQp0VUZVdmttWThUdms1RmE2QUFLSXV0T1g3a09td210UWZjaGJkNU8yQUFidG9zR2JNZkQxME51bFlucTRRbkRjZnh5QVRvYW9ybW5VCk4wK2N0S1JrWVBtbFdHMDk5cVFkYThXM05nUE5kUGZETllaOUEzQVlxRzhJNnhsWDd5SE9lZUhEem4zMkR0eE1ZN3VlVyt4UG1tMlAKbSt6M0g5dnVQclRkdkVjc1BJVDZLU3JIQ3NyZ21hK3NBbHRhcm12bmk2ajkyS0lTYmRjVDdGZGpKdWpIZnZveWV2S2k3Zmc1MnpGWQord0g2c1IwNGp1MGZLLzlZQS9ZN0FUUVlHRGFvRE5IS1ZPMmF3RTdwbmdHWnVpbEUrVXgwK0xqNDlHK0ZHZk9GZGJDcEpNbGFLUzVhCko2cGVKeXo2cmdEMGdieG9nejlrN2hmQzA5K3dPYnZnUHU0ZEpEYThEZjVmQXREWFhNV3Z1WEh3SmxULzRqV3k2cFhjd2srVnFaS3IKZFJhN3pXakZkTUEvZGhNODdHN0hMRVk3Wm5mUWg1aitBZTZ4V3ZHeElHd0svZUFBbW53SXVoTzF0S1BtRm91NTBXSjliQmtGa01WOApCOVBmUXA5WG00YkxUY1lLdTY3RTFsdG9iaTgyM1MreGRPYmE3bWRaR2xQczNUSFlrV3ZkbmlmejM5QkVMNVFBQUJXQ0xKWVZMNU9WCnJCWkJBeTFYRkRrQk5NRkFVMVdBTmt4aG9IOFZRSnZWSlJzQ0NqZmhBS0xKQkdyNXJpQUZUYTFpYkF0UXpMb1c5YVBFZ3AvRUZuakUKVjNqRTVNelB5U0E5YXJodHd1NmgyRU96cFhua2VZdnU2V1BqMEdPRHJsMW5lb3dhSGhwSDd1dWUzZGNOM1RXTTFKdjFsU1o5cVZHZgpaVEttRy9WSkJsMmNRUjlwTkZ3eTZNOFpET2RNeG5NRzNTbUQvb2hPdjM5RUY2clZhM1E2ZjcxV29YL08xUFZLckFaT24rNFBhYmZtCnF4UGU1c1l0NHVVc1lHUk5weWErN2hmN3FrL2t6N3hoK2VjblhwZEFnSUYrUkR6akc3bWVkUkw4K29OVkJJQW1PUVB2QkJDSU80REUKVWpaZlNHZnhPWjhqZTJheGttWndzaGF4RWhjZ1dRdVJOQkNjUWFsT0F5MFJwRGxtZy9BUjZSWENER0FnUE9tdTZIRjFqeXQ2UUpiegowb2dBQUMzbTU2M2x4VzFUaElRRWNYQUFpUWdBUVFPNUFBaTQ1ejhDRUlkTlpuT3BiTDhkQ09WTFR2QktKR1lGQXR0Ym84V2UrQ1hzCk9KQkZDTXhDVGl5Z0Q4aENWZ3pJSW1hTXgwcDhNc2c5N3ZSeEtmOGtMdVVtd1l3Q2FDRWJqdjY0QW1nMkpRNEVHc2hsTEpvdzBHTGMKUVBQNDhZdVJsUGNZMS81S1UvOTNBT1R0Q2lCRUJBQkUvUlh2MUZRQVdzekxjamZRQkFhNVByOVFXQWgrZ3drQUxlQVhmU2E0S0pRcQpRdjJGVGdBNXg0Q2NBRHFvNGU0SEFBcmlId2lBWGJBUWY1cE1zdnZ2b3FEM0VRaWdoWUxjSmJ5OHhZTE1oY0wwUlp5Q04wVlpLL2dGCnY2VEUvbzI2ZndkTHVJUE9vdEU1WWlwTHlHQUNBNFVkT1pkVWVUK2x2aVd4cGlHcnZpV3I5Z2w4T3hwWENibVRpRWpodlVrTUJCbjAKWFFQSTNVQ1R4cDA3N25rWkFCRUdtakFFRFEzVU5naW5lVHFlRWFNL0lCV2R6MHFKMmcrK2twSEkyT09lWndCRGNMVmplMzlGMjJCMQoyOU9hVnBqaTFxNnlsdDZLNXY3UzVwNlMxdllyMmFrQ0dTS2c3MUl3bVlpVURQNllNVms3dithSmZpYzU4d3RwN2daNTNRWkZKY2c2ClpRWElCaVZzZTRHL2xOL3pMM3hIVVVFQXlGVS9uc0lpNHJGNzFra0sxa255Tm9uaVArTWQraWVMNVVQN3hwZnhOWUFPaGJJZEdJaEUKMmVaTCtjWUxNSWl5RlJxSTlnMEFFQUR6UHVWRUFCM2VxODdlRno1NE9Rckx6c2RLeTdENmUxaGpwNzRaT2diV2Nqb2hibUNCcDNjUQo2MzJHZFRuYzQ2b2Z1T1c1RTE3emJtL3JJbTU2Unh0YjBNZE42S05HMjRNRys3MUh0bHYzclhXM3JGVjF4TUpEb0I4NDlad0phejkyCjU3NGZYRCsybUJSQ1AvamdNejc2QS9SejdocWhIOXVwUzdiakY0Qis3RWZQWW9mUHdObG5sK2tmVkJQdUNxQitWYWhaSHRLbmxyWDYKcXpwbEIzb1VtdWRTL29ETXYwdXgxMWNhTTA5YXUxSmM3U25JOGhRWGJaQlZyWlVXZkxjQTJxd28vVUp3RmdmUVR2Q1Zmd0dBMkVKZgp0cERrQk5EWUVEUkgvbXQrNHJ2S3lyV3FJc0NnbjR2eS9XTnVEMExSMkRDN3lXNFp4bUNEeTI2eW1JR0I0S3BEOE1ac0J2Ung3WVZOCnFBQzlBRURPWS9BNGdDeW1ack9wd1d4NVpMWThzQkFBc2xaYnJQV1l0dDQyVUdzWnJMRU5WbHA3UzgxZEpaYTJFdHVUQW5ON0p0b1kKYTdrWGd6WUR3VjdXZlNMTFhpQW84SVNUYWtVTFpVVkw1QkJBcXdRRkx3YVFjd3pJSFVCT0E3a1VnWXJkbFRQcGswUTJxVXZXYThZQQpGQ0RiRlNxakJmZ3pOQ3BrM2Q3OXIxNkovMkZraHNlbDdCa0ZWZVJublk5dFdJTkoxMjR5ZE9qMUhVWkRsOVhjWlRhMUczUWRSbjJECndkWnNSRnVOdGpZOTJxZzEzeCt4MUE5WmFvZXNSU1k5SElYV0RTY2J0SEZHYllSdStMSjI2S0p1K0lUeCtUR2o3b2pCZEZCdkR0ZWIKd25TNkVPM1R3SkUrbHZVcGVhUUxNVDBUREd2L25IOTNrWC9TVytURUJkU2lOMGh4ci9wRS85UUxyLzE0WFgxbDkwV1FuM2hkL0tIMwpkZkFrZ0pFRFFHcmZmeFZBTWdrVFZvQWtMSjZBeHVTeC84RGUrellyY1RvbmN5RXpZVDRuM1FWQTQrcEFqbzRZSGdBZ1p5YlZ6d1FBCk9mVURBY1NOWGNUTjkrVEZiWkdIRWdEYUJ6Y2lDdjlWQUdsa1lyVmM3QTRnNm1RQStoTW5jQ1VIVHZZc0c5WFBZZzdVRHdpZ3oxaHcKL1N4Z1JvTjRFTlBSazJWTVBLNXhiWDRSNTc4V0lFbnoyQW1BUGhNeWt4b0hNb3NHYkpRMGg1RThsNWt5ajVYcURHQVErRzFZdzQ3NApINmJhbTA0aU1lQkplRjgralFEUW1JSHdkLzBRSDErdUQ4NGdraTlDcHZCcExBR1RKNlFMaFF5eEdHWVVRRXo4Z1dNUEVGdEs0OGw4CnVMTGRESWtmUit6ankwZCt6VHU4bXBjSzFMSWMwaWQ3TVRkbkNTOFhQQUFNY3FmUGl3RUUzbDJCRkt4QThoYnpjNWNJY2o0U0pGREYKQnc0cUdJNFdXSURna0FhV2YvQlRZREFIaWMxQWdZTERBWkJIKzlWSWtKTGhMeVh2RktvKzVGNWN5Q3RaeEM5YnhzMVlpcVNDN3d3QQpyUmJ3OHNHdjdSMU80dWVNNDE0VUtVS2hJM1FtZzgzbk1VVU1Qd2FYeWpoNTlGaE9RWEgrelFlQVFWRTNPL0xxVzNOdk51WFVOWUJrCjF6Zm0zR3JLdWRXY1BUb2M3ZG9JbXhEWHZ0aUxUb2M5N0oyUTBrZDlJRlBCeUowNDduSEZqZnRIM1grTXE0UktHdnRLbS9xSnVOUEgKT2Y1YzN2R01pT3NNVUZuWE01ZU1iYWt1N1J3WVM5dEFXZnRnZVdkZldVZDNlWHQzWlVkUGRXdDNkVk5uVVVkUFFVc25lTEswdFRraQpKMVdnRnBCcFcrVVNrb2p2eHhQNmNQbmJtY2p1TFR6bEorTG9qZkxDVGZqRUQ3NHhyL1FkZkFCb3M2cDhzd3Blb2JCV1VqSjVYQmIwCmpZdTBlSjJzOHVlaWpDK1o0VHVwZEcrR2x3OXJKNFd4alVMYlFRRElqK3FJTnk2aFhjemRJZ0hsZ0FJNXFoQ2NWdmxmREE0NUU2dysKczBlVklwTTJuamxuakVuQjBvdXh5bnI3L2Nkb2M2dWxxYzNlMWczWE4zZjB3blQxT1RwY2NLL1BBRkNSSXgxNHc2c2Qwc2ZlM0dacgpnajB2KzVORzdHRUR2dWo1UG5IVEJYSGd5MTVhalJWVndjNFhyUDBVd2JiWDZIM3ZVRDl4S2JEekZaMkVYUjhiZk1hUGZVSDkyT0RjCnp3V1lFK2V4STFBL1dQaEorOTdqOXJCaldOZ1JlOGdoYThoQmMxQzRLWEMvUWJOUHA5NHo0aDg2ck5yelRBV0xRUDJLNEQ1NVVJOGkKcUZzSjB5TVBhMWFGL29ZZnQ0aGZzVlp3MTFOYXNsSllzRUZTN2FTUHEzN3c1WWVqK25HNzlIVFNiRlJVZ1pmbkQrU2x2K2RIZnMzaAplek8zK3pKMmVDUGI0Vm9tWkxkei95SFVEOStYd2ZNQkFISVVnWGgrTks0ZjNJWElndms3d3Z0U2NtV05KSCt4dXU1ZFh2SFJxUHNZCmtJOGRudTF5TnJuTVppc3gxZ09lSDUzK2NSbjN3Y1hqbklDMkVpZS9iS2daRHo0aFpJY0Ewc0ZkaU5hbmRyVFBadW14V2xwdDVoYlUKM0dpMU5OaHNqekhiUTh4NngyNithVFhkdEJ0dW9DTTE2SEMxN1htMS9XbVZ2Yi9NMWxOc2FTK3d0aGVnemJuV2hpejBZWWJ0WHBydApab0s1TWtyM0IrbU4rYXlNUmZLaStiSzhhYktzcGNxaUZkenNaYkxpVlpLeGdDOCtrZFd5aWJmRUU4ZkJRSnkxSDllNDlzTGNVanhwCk5nYVVyRmZEMzgzUHhSZHBjcFpLNmgwZ1pmcHJhUHVrM25JNTU5MGo0UjRYb3Q3T3F6NmpOVFlPNnhyc2xrNnRvVXRuN05ERGRCcUEKZm94RVdrejZacU91U2E5L3JEYzgwQnZ2NkkwM0RQcEt2VDVYYjhqVzY5TjB1a1M5UGxadnVHNHdYdFliTCtvTmU2ekRGN1NXNDhQbwppUkhzbU40YU5ESWMrbHlyR2pFcURVTzhaNFBja1dkOC9ZQkkzLy9ua2h0dkNDSmVvK1M4NGd1Z2MvWDFYWmRlOWJyOC9WMlh2N2ZyCjhvKzlJMyswNC9KclhoZGU5NHQrMVRkbU0vTUlXNFlFQnRBMWdmeDkvb3hKM1JPaTRvU3BrQkIvTGc0Z25rcUpLR1JzaVlRcEZETUYKWXJaRVJLRklxQjh5anM0bUo4OWt4ZU92eFFuejJKa2c4emtnNlF1NGFRdDVxWXY0TUFTRzNEMjBmSW9zNDZjVFdjcExjdzM0eEpYYwp4RlZJL0JmU002cEE0ZUVndjcxQjdBTmhrb01oWXBCRElUTFhGaGdlS0tHRG9SQkF4QzdFVURYY2hhaFNpUDNsOEJTWVZNSVhpcmhjCkhvdkRaU0k4RmpBUGc4c2lJeHcvRG9QRW9aQVErbllPKy85WTNMWE1xT1dzT0xpS21aY0NBY1NPWHNpT240OGtMMkxIZ3l4a3hSRloKd0l3bDRrRk1SMDhXVi9Ra3VpUjVLYXo2SkJKM25TNUdrb0YrNWpEaVo1QmpuQmt2b2ZpWjFBU0NRVTREeldlbkxXYURUMHpEQWFSeApBUkQxdXdhUUx3RWdyb2dBME1FSkFBSjVNWUNteWdKKzFsSUU0Q2wzb1NCN29TanI1NEo0WDBuNFhpVjlBb0NPd0NWQVl3QTZvdUU3CkFSVHN6d1FBMmlWVWZzUzd1SUJYQ0FHRVpCRUFXc1RMQlFBQ3Y3WjFuSVRmTTA3c3BzaFlGQWFId2FTemVDdzZYOEFSaXRtY1FMbjAKektuVENlbTVPVGNlWmQxcFM2aDluRjdmbkh1N0phK3VLYWUyQVdMb2Rrdm0zUmJYbzJHVEdzajFiRHpNdlM0aUV5dERVekRvSll0RApVOEhvV3dFMEZZTUFnSndHR2xjQmNqdi81UTZnOFFhYVREK2RBK1VkNEhQN1MxcDd5enA2SzdyNlMxcTZRR3A2bnVaMmRCVzF0RmMzCk5TZG1aL2tIeUJBZVNTeW4wN2c3UkR3eVQrakg1ZTlrSXQ1YnVQNmZpR0kzeW9vM3lVc0lBTDJyS0FFQTJxZ3NCZ0RhNUE5ZldTZTYKWnpRVDNUUDZPdTBDb0gwN2FUUnY1cTZwQU9STCtjYUh2SFVuYmFlQVJ3cFhJc2VVd2xOcS96UEJRYWNDL2MrR0tpcENRbnN2WFVNVApNN0djY3F6Mk5yeWlxN2tOYldxM3RYWUJBMkh0UFdNTTZvQ1ZIcmpYWnpURU9TOWJheWM4TTQ5UC9BRDkyQjgrQWZxeDM3NW5xNzlqCnUrSFFEd3B2ZXErRW5hK2NFbnRtb1QyOXdIbmluWmg2aGlmZW94SWRPdyt2eG96cTV6cDI5cW9Oci8zWWo1K0R3V3MvOW9PbnNIMG4KYkh1TzJVS1BZcUdIMGRCRGx1QURCSUQwQVhzSkFBSDlPQUVFOUVNQXFNYy8rRmxBNkNQLzBCT0treXQ1Slo2U21uZjRSZThJTXoxRgpZMS9ZOGVVZmgzNytEUUQ5VmhENUQyUU1RSTdiNExsZUxqdWdZWEQ5akFFSWJqN0RBYlNESy9ndE4zS0RvbllCa2lHKy9tUVlYbWRoCk1lTHVBZitZVENhZGJnUmZlV2dGYjYxVzgxUUFjcjRMQVRScUlCQUlJNHZOYWtBdG8vMHZvQjlyRjJwdHM2TXRkZ2lnUjFiemZhdmwKbmcwQUNMMkxHZXRzaGh0MkFrQkRWYmJCU2x0ZktRb0ExRkdJdGhXaUxYbm80MnowVVNaNlA5MStPOVYySThGME5RTDlhMUROTEc2TQpwekQxUTM3MldtSFdhbVhCS240MmZqQythQUtBb0lFbU93NEdqOFNQYjRHOWhJRW0wb2ZJZW1YQld2OHk4RHY0UitsbGhwSVRJUGNGCkFGS29LWHVENk9vQTdtNko0dGVYWThLZTZtOW9MZTJvOVpIUjdLb2ZrQTZqdzBCT0FEV01BcWhXWnhnRmtJRUFVSXhoREVCSHJJYWoKei9XSFRGYi80V2ZobUdVdlpwQS9HMURxVEpMaGZ0SHdrRml2NDJvSEJOcGUvdFBuZjBpKy96M1MxUi81WG4zVkorTDFuVmQrdHZQeQpUMzJ1ZSt5ODlPUGRWMysyNjlvYlBwZmVJTVVRQU9KSVh3cEFvU29lQUZDZ2t1dXY0QkFBRWtsWUJJQklZZ29BMEN4UzB0dk11Rm4wCmxObk0rRG5NOUxtc2pMbXNkUEFxUEI5SlhjQk5BVm5JU3lFV0Z4TnhsWkFUT2hNeUpwN3g2NDdCSjY3Z0pLM2tKUHhCZkVhcGhnRGEKRTRTRWgwTDkvSmNBdElNTkFiU0dFYkdNR2J1UW5iUUFTWUt0TG1ia2ZHYnNQRTZTVXp3Zzh4a3hJUFBvMFNBZTdqVWUxMHFQTTQ2ZQpGNTRsU09JaUR1eDhFZE0vZ0pPemFMRnZrYUtkY2NYUVc2VFlHZVE0SjRPY3BhREZ6Q1R3cGZka1gvK0NFZWpGb1BneHZXRjdpL2NkCkFvak1obWZCZkxsU2J3ZUFCT3hmOC9jQkFLM2lwZ0VBTGVWbXZReUFSbSt3bjlnZ215c0VmempnSlBVaVVjWmljZVlIb2pndmFYaXcKUDZ3QXdSWVlEaUNpQmZZQ0FLbGtGQitoOUdQZTJVWGMvSVc4VWdDZ0pVZzZyQUJ4YzRHQndOdTFuSlRmTU05K1ExWFNxU3dDUUhRRwpnckM1UWhaREkrWWZDdFdjUDNVOE9TV2p1T0pHL08ybWhKc055YlZQc204MDVkWEJnZWlNV3kzcGQ4Wk5CVTNvZ2preDVEUVF6TjFPCkVDZURuSm15SVBUU0RiSkpBZVRFamZ2ejdwa0tRT01NTkFvZ0dCeEFqaUhvOFFCeU1kQWsraUZTMFRsWTJ0WUhEQVFlRkxmMzViUjAKNWJiMzVIZDBWclcyeGlZbjdsWEpnOFZzT1o5TVorOWtLU2hDUG9VSEx6M2R4VVI4dG5BMW40aml3WXZvSmpuOEszaDBES2hvazM4SgpBQkR3MEFacG1UdDlKZ1dRODBWNm5iVFVBU0RXbnAwMHlpaUFkaEFBY2pXUUEwQ2tiVHpFYjYrQ0F3QjBYT04vSWtoelFpTy9FcXhzCk9YVENFQmtQOXk4WFYyTDFkMjBQSHNQSjVjWldXM01IaUwybEUvYkMycnVkZ1RkYXdIUTZ1bDNOcmRhbUZoRHNjU1AycUlHWStMSGYKdWd2dnVLaSthYTI0Z1I5M3J5S091OE9ydmpJZEY1M2FraktjblM5aTN3OGFFZStzL1JBYm4xM21maTdZanB3aDVuNkFmdXo3b1g3UQprQ1BXNEhINk1XajJBUUJwVldFRWdKNzZodzdnQU9wVndnRDlnQXhwZ2h2VmdiMEJ3VnZFU2ZPbHBSL3ljemNLMGxlSkNpZDhlYWNDCmtOTkE3dlFaQlZBbGVCbCtYMXIybVNENkswVGd4ZHJ1eDl3SkFFVDB2eVlBQ0xxSDd6MEJRQlEyR1dRSHd2MlVuZURKS2ZVNmQ3TloKQ3dkNzdKaldCUDdYaGxsTVZ0ajJBbzlnd0dPejNXYjZWZ0NOR1FnUGFnRS9qODJxUTYzRHFQV3AzZHB2QS9veGQxZ3NUVlpMRTJxRgpXeEJSWWd1aTViYk5jZ3VXZjdTMXRwRWErMUExK3F6U1BsQ0JBZ0IxbGFBZHhiYjJJbHR6Z2UxSmp2VmhGdm9neTM0L0U3dWJqclZrCllsY2puMzJtU3RuSXVQb2xMZkY5VnRJU1dkWnFvUU5BVGdPTk1jaHRFb2lJc3dVMmdVRnU3dm1XckZQa3IxR1dndDlIQUNDbVArSUUKa0NLWUdxSmloVXFsMXlxcTdtRDJYb09odzJob01OZ202TWNKb0RhanZsVnZhTkliSCt0TkQvU21lcjJwV20rbzBCcHlESVlzdlNGVgpaMGd3NkdQMHBnaUQ4WklCcmdLNnFyV0UyazM4OXNhbExOYjdnVXBoL3lNRlp0UU1HV1REQXhMdHNFaXJGeGlIV2NPZENvdUIwNlAzClBKWGw0WFh1aDlzdnZMWWo0cFV0bDE3ZEhmbURIWmRlMlhYNWRhOXIwL3l1VGFQRXZlWVgrd0hyQ0UvR0NWSlRBalM4Znc5QUlqRUUKME0vcFIyYjZKVTVueE15Z0pNNmt4ODVtcElITVlZS2t6R1dsenVPa3pFZVM1K1ByYkVDSUJwbXpSMGJjNXZtQ09IZmNPQVA4QkFDMApuSjM0bWZDTU5FQjBJSkFVRnNnSkQvN09La0FjWkJJQWZjWGtybVpjV1VJSDZFbVl4MHFFbFI3RzlibjA2RG1zaFBuMHVIbTBXQ0p6CnFURkU1bENpUGNaWGQ4WlZlaWJWRHdRUUJ3NzlBUHFBQUdyTnBnUGZSRS8zaTNMR0ZVUFQvV0pBWEJsRWRNUVcwaFBBbDM0bDg5cm4Kak9EZERCcHNoSE5JZmp6SEhxRC9IRUJpQ1JtUlFBRHhKVDRNQ1prcjh2SVQwSC9OMytNT0lQRGdYd1VRYkljSk04RDNOK3Q1V2F0RgpjRUwrSTFHOGorUmdrSXJwbUFGeUE5Q2hJSUVyZ01MaDhuS21XazRsaS9pZjhrNkNYOFpDWHNrU0pCTUhFS0JQL2tJdXJBT3Q0cVQ5CmtubnhIOVFBS29VRCtNTUVBR0x4cUZSNDRlTitwZWpjdnNBemV3S3VIVCtVRVJXUlhIMC81Y2JqbEp1TnlYVU55VGVhMHV1YnMrcGIKTW04MFRUVWM3VjRRZWpHQUp1Mkx3VXd4TU9ST24yK1YwTXRrQW9EY0RWVGFBa01BQ040cE5tcWdrbzVCSW00U0dvZWVrbzUrSXNYdApQZUJ0ZVFmc2hSVzI5aFcyOWVlMzl3SUFsVDErRXAyYXNpOUVIU3FtSDVBejFRSS9EdUtGeUJsQ0hvMG5vQ0I4THliSGJ3c1M5SWt3CkFiOUpDdVlkT2R4b2g1ZC9TZ0dBZ0lmV2lTZTZaMUlBT1YrZVhRQ1U5aVVyYkNlTjVNM2M0UUFRWXllWjdqQ1FnMEhrYjN4SlczZjcKYkdlemZjSVViQUNnWXdIeXcwSCtaelhLMUpDQWtlTVhzYWhrZUJTcnJNcDIrNDcxM2tQMEVhQk1FMXhkQ05MVUFjOXo0WUhIMmxzZwplaHhwYWtjYlcyeFBtdUc0enhPaTV3Vk5tS2xNQUFDQUFFbEVRVlRwWTYrN2JhdXB0MWRDK2xoTHF1eEY1V2hCS1pwYmJNOHFzbVVRCmk1NnpVWUkrTHZweEZINnV3QlB2aEg1c3B5OEQvZUNYWFp4RGp6cm9ZenR3Y3B4K2doejZNZUwwSWNvL3c2clE1LzRoUUQrdUFBTDAKNlZXRjlLaEMrbFNCM1lIK1JyVW1UbjF5aFRqM1hVa2VuSUNXT0lhZ1h3Q2dDUVp5cDg5b0lJQTJ5OHArSTR6OU8vaGJoclVEWHV5RApmRE5wQmNnSklMWVFYcEhyQ3FBdFROYXZhUkYvOGkrdDZZYUxEdTJXWjJicmN5c0t6ZFBSMm5laitsWkhXN2NkeFd4V0ZMVUFBOEZ6Cjc1TUN5TUVkMU81WUNPUWNDVExDNlIrZ0g4c3pGQjJ3VzN2dDhQQlhPMnBwc0lKQS9lRDNZSmp2Mk0zMU5tT2RGZGVQby93RDlOTmYKWnVzdWhRRUFhaTJHQUdySXR6M0t0VDNNc2QzUHdlNWwyeHVTYlk5eXNQTlgyLzR1alArRjMrV05TTkp5U1RaY0ZTc3FCSmxnSU1nZwp0MVB4N3ZOQWNDUm9kRUdpZTAxb0Fvd21QRTlVZ01CM0dwK0xMOUlWYkxYTUJ3QklHVUNWK01QL1UxeE91SFpuZU9DT2NhalJNdEw3ClhOdG9RaWZvQjZRTjZNZGdiREVhbXcyR0JyM2hrYzU0VjIrczB4c3JkY1lTblQ3YllFelg2NVAxaGxpOUlWSnZ2R0l3WFRDWXp1b04KRndZTmV6SDdiNDRkZTJYRzR1a0xscTNoa3NXQU96cTlRdnRVcWh2aERRMkxESHFPdGhjWVNHZ1k5bTV1ZjBzUzViSGxLQURRVDc2KwovTW8zVjM2MDQrS3JYcGVuZVVWTUoxK2ZUb1ZuNHo5a0hSYkkyQTRBcWRsVEFXaVBtZ3NBRk9TUGFCU0lVZzRub0VjQmhJakVORDhSCitRUHEwUmsrOFcvU29xYVQ0dCtpeE15a3BjeWtKY05xRUNNVnZCQkRCckdUUVlpMU5TQVRKRVFzTkhiUG1IandiWC9PZ0E4dDVTUXYKWVNkOUtqd25Va3ZDZ3loaGdjaC9BMEFrTm9QQ2RnWFFwY1gwYTNQcGNYTVlpUUE5ODJtUmMyaFJzeGh4cnVnQm1VMk9JdUt4bEpzdwphYVlFRUpKQ0FJaTQ5eFJRYXlZVitDWjZtbStrTTY0WUlnRGt5aUJDUWd1cHNUTnBpY3ZvMXo1akJPMmdNd2dBa2JqZkhZQ2tmamlBCjRFbDRwcGdBRU8wMy9CQlBiZ29BRUp5MmNRSFFVbTZHTzMyY0FKcEFIeUxnbTV1TnZMd1B1VGtmQ0xJM0NiSSs0eWVSUkVlQzVWd0MKUUFmVWZDZUFqZ1ZCQTdrRENId2pBZ0RFbExCL3h6MENmZzBMdU1VQVFBdVJET0NlUlVqZUlpUjdJWkszakFNUGd2MlZHdUpINVRQcApIQ2FMQzd0Z0xPQWdTcGlNZTNHUC85VjlxdWdEZ2JHSGdpT3ZKMlFWMStUZmEweTQ5ZVI2ellQa200MTU5YTM1Vlk3aGFDZURuS1dnCnFmcGlVOUhIUFJNQU5DbUQzRE1WZzl5Rk5OV1BKRkxjQU9QT0lBSkFoSUZLaVh0Vnh3UElqVUVUNlVPa3RMTXZ2N21ydUIwOFA1amIKMkZYVTNGM1IwVlBVM0JvZkczZGdUM0NZV2hpdVFkUkNieWx2dDF4QzQzSkpBRUJjQVEzaCs5QVJ2Nis1UVIrTGtrYXYwaHdIb0UzZwpMMlZaeVZwUnNUdDl2ZzFBWlRpQVVyOWtoZXlrKzQ0Q0NBWUFpRVJ6QUloTTNrWWlmZVBydThYYlp3ZVQ3UjBrWndJQUhWWExEZ2NwCklvSlVOV0Y3YkNldllaRkp0b3djVzBVMUFKRGx6bDA3b015RFJuaDgvVWtMWE4vYzJPb2E0QjdIK1haNHhMMFJ0c3p1UDdiZGU0VFYKajlISFhsNUxuSFVuTnYxZ09ZWDJ6SHo4dUh1Mjg1b0xZdVI1d3JaRFl1cVpxUDNZVGwyQ3QzM2hiUy8wOEdrcy9Eak12bU8yUFVmUQpVRGowQTQ5OUJjTENENkVmUUIvWS9GS0hBUUFOS1lNSGxTRURlUHI4UXdCOVlOU2hJRDMrbXY3QW9FNTFXSDlnNkM1WnpFeFp5UnBSCnhYckpKRi9rU1lhZ1J3RUVza2xlTmxYQXErOG1lY1dud29TL2NTVzdXYnNBZ0h5NTJ5YWRBY0xqcUFBQkFORjVKR2NMN0dzZS8wKzAKNHdsbFQvRmJMWFRFc3VmNjB2b2QvNlI0THRtNGF2RzdDMmV2M0xYVnI2N3lMb1ppcUdIS0dTRGl1THNWQnhCNHhnYm9ZOGFqdzRqbQpsMlhRaHZaaGFCZG1iYk5iV20zMlJwdjFzY1gwd0d5OGF6YmRSVTIzYmNaYkVFQkFQeUJEMWVqVENtdC91YlduREFYNjZTcEIyMHB3CkFCV2hqUVhvNHp6MGZpNTZMeHU5bTRQZXprSWZabU9OV2RqWlV3MGZDR0ptQ1JOWCtWZUF2OU1JQUUzQ29DbVdBNjJURnhHWklDRjMKK3JqSHRYcEVWSUFJQURsbmdBQ0FWRXJ5MGRNSGMvdGFiZ0R2V1UwUDlmcW5CbXVqUVQrcGZtRHR4MmhxTkJpQmZ1N3JqSGo1eDFTcQpNeFhvREJrR1E2b2U5citpOWZycmVQbm5uTUY0V3FjL1pMQWNzWmcva3lnWExWcTdadG1hSDg2YTg4WGhRMExNTE5NK2srbTEvS0ZoCjd2QnpvZWs1VjkrTDZMb0Zwb0UvcE4zNUFlbkVLOXN1dmZaTjVJKzNYbjVsOThYWHZLK0ExOUFaMU9pM2FBblR5ZEcvWWg4VXkxbkIKS3RLL0J5Q2VHQkdLcUg0aTZudlVJOU44RWw0blI3M3VGenVORlBVMk5Ra0VHR2lVUWNrRWc1eER1dlBaYVNBTE9PbWpnUjc2MWpqOQpCSTk3QXlFd0UzL0p2OER6bCswTG91OEo0bjYzQUdKeVdaUlJBSkU1b3dCaW5sOU12enFIRmdzWE10UGk1bEdqWmxNalo5SmpDZmM0CjZUT0xGRW5FWXdtU09HbVd3cFhOWXdIb0liS1luYlFZcDg4Q1ZpTFFEL2czelNBRDNFUzVBbWc4Z3h6Nm1lWWI3UXg0ZHg0cGFnWWwKZmhIdDZxZjA0TzEwbGc4THlvWnd6M2NHSUNsVktBRUE4bU9LS1R3aEFCRGxOd0xOVkFCeVZub214SjFFUk5ZSnNqOUE4ajVoNTN6TQp6UVlNK2dNM2hTdzhFU3dUVFFvZ0VIY0FoYXJaQVFvYVYwejduQmUrRkVtZHp5MVl6TWtBQUlLMUh4eEE0Smtsbkp5TnpLZ3ZhZnU4CnFFSTZqYzFrSUF3bUYyRnpCVXg2a0pCOUxrUWVkU0FnN3BBbUpsd1ZlZkJnd3BWcmFYbUZhWFYza200L1NibjVKS3YyU1VGdFkrYk4KWmhEMzAySHVESG94Z0tiMDBJTk9rQWtNK2xZSnVmdm1aZUlPSUhjRGxUU1BHWWdBRUJGQUdVSXpiaG5uSHJ6MjB3ZFMwZFZmMk42YgoxOWFYMDlKVDBOSmQxOVZYZnZkZVpGTGlNYlhxU0tBaVBGQWNFc0JXeU1rQy9tNEIxMGNtb1BMNU5LNFFWb0JHQVpTd1lmUzFrd0FRCjN2OHEzYWdzWFM4dGZoa0F1ZXBuSElEWVFUdnAzdDdNN2E0QUFxSFFkbENwTzZqa2JXUy9yU1FBSUsvdEZOWnV0WXgrVEM0NHBwYUMKWDNOS3NLWnIveEhzMUhVc0t0bVdsV3Vyck1SdTNyYlYzOEh1UHJJRDBBQURnVHhzZ2dFWUFublVOQmJ3SWVDa3U0K3cydzhCZmJDYgpkK3cxTjRtcUR4eDJMcTdBQ3VIOXBzN1RYbzU1NStSTUxERURpMCsxeDBINllGSGo5T01jK3NGRzkvMFEraUZxUDRBKzJONmpkbHcvCnhNb2ZFTGoyY0xUdEJUdGZ1SDZlKzRjQUFQVXJZSUIrQ0FEMTRmcnBDd2pyMHdTMmE4S2JnL2ZvQW9JU2c0N1BreFM4SXk3ekZGYTYKZjUyZEFKclVRTzd1SWJKWlZnWmVlamZKS2o4Ukp2MlZLOXZKaGdEeVE3Wk9DaUFHanhnQWNyVEFBSUNJSVdnL2h1OVhWRmJBL2hpNwpEYk1abm1Gd3N6TjIrdWpsT1QrYUMrakRKQWtQaHAzaVVDVWZiZjd0bW1XYkM3T3FnSTVlQkNCaTVRK3VIN3NaYWdsbUdMTSt0d1A5CndLUHYrRDN3S0hIOUJYSDAvUUVLWXIySG1lL1k5VGV0STdVV29KL25OYlpubGVoQWhRV09QNWZCL2xkbmliMjFGT3FucWREYVdHUjcKVkdCOWtHZTltMnUrbTJPOVU0aFY1MXRiczdESGFSanR4TzFYQmJGdmkvTFhDR3VYQ3d0QUpoZ0lNc2p0ZE5nRUFFMHdrQ3R1eGtWZQo2c3g2V1lremEyUzVxeFVsNExmeUM4a2xvZ0trbGpBVWFvb21rSjkwOThaZEMzWVh4ZHJOV084enROV0VkcGkwUk1OcmduNUFuZ0Q5CkdFejNkWWJiT3NNTnZiSE1ZTXducG44TStpU2RQbDVudUs3VFhkT2J6dXNOWi9TR0V6ckRJWVBwc05YOHA4dm5makovNmVyMTc3NjEKYk5tTVgvM1d0K2VKd3FpVDZrYkVXcTFnWkZpc0h4YWJoeEJkRHdBUTBqY3lQL0M2eDlmSFg5MFc4ZE1kVjM3bWMvbFYzNnZnbFhFNgp6UUdnVHprSHBRcEdxTm9QQUdpUGV1SW02Rzl0Z1FFQUNVUlVieEZsTStYd205N3hQeU5IdnVZVCs3cGY1RnZrQkNJektJbXVFcG9ECkpJU1BxUkJ4OFpCRE5sUEZlUlc2Yy9ITklrYmlQSHJ5Kzl3TEhILzUzaUJtYUJCL2Y5QjNOZ09FdUFGb0Y1djlEd2JYazNGbUVlM1MKYkdyTVRHckNYR3I4WEVyMExNcjFHWUJCNU9oWnBDZ2lNLzBpaWJ6dGUzMUtBTGx5eHpVTG1RbUFkVTc5ekNRQjJVUys2WE9kaUR1RApYTjBEOHFaUEZKSFpQbGNCZythVEwzMU1EZDVLWjMvbkFKSktmTGtTQ0NDQkdBZVFhTGVma1BRYlFZQXJnQUF5dmhWQUU3S0ltMG5FCms1dTFtWlg3TVRQN0kxYkdCNXpzMzNKU3ZmbW4xVEtaRTBBSEEzRHh2QkJBR2lVZC9Bci95TnU3REVrQjNGbkl5WElDQ0R5ZWgrUXYKNE9TdVo4WjhRVHU0aXlLaDB6aE1KcHRCUnhBR1I4Qmdoa2o1WjBMVlYvYXJvZzlxWWc5cmtnNW9vc0pEb3MrZVRVdkx5Nm00azFiegpNS24yUWNyTnh4bDFUU0NFZ1Z6YllWUE5CaEV0TUdmY1BUUlJRamlBM0Eza2pwN3Z4RUNsb3d4eUFzaHBJQ2VBbkFZcWFSMHpFQUdnCnlRdzBpWDVBeXR2N2l6c0dzOXQ3TTF1N0M5czZpbS9mam91S1BCVGdmMElsUHF3U0h0Q0lRZ1A0Y2lsZElDVHhCWDd3TFovQ0ZaSTUKQWdBZ242KzVtby9GOFJ2azhJNTNWd0NCZ0FmckpFWGZDcUFKK29FQWtsUkFBSW1UdjJScmR0Szl2Rm5mUUFEUmQ1TkdEVVFBaUViWgpUdkhkU3ZiWnNudlhObC9HRG9XVWVrTE9PNkdVSE5mSTg0SUMwZjJuc0hQWHNkZ1VORE1ITFN1M1Y5WmcxZlhZclFlMlcvZXhPdy9oCk5NODlIRU40amNlUnV3OWhxK3YyQTZ6K1BseHNXSE1McXdMMHFiT1gxOXJ4U1dlVXVOc0xYL05qejh6SFVyT0pvMTV3eVdGQ21tUFAKSWQ3MndpSmc1d3ZvQjcwWTZUcjBnNTEwSEhjZlhmWnowcjRmbnZiQ1F2SGo3dmk2WjNQQVBoQ0xHcDc1SW9aK0FIMmMraGxVQmhFQQo2bFhpQmlMb2c2YzNKTEFqOEdCdjRKNytJRTNEM2xBdlJkeHFVZEZLVWRXa2xUWW5nSndHZWdrQTRZMFllZVhIb3BRLzgrUTdXVjRFCmdJQiszQUVFNG5vS2pNRW4wN2hrRXRQUGgrWk5ZWWphR3JXWUdUT2J0SmdOTzdibnpLc2ViOUIzaUpvZk5tTVd2QjVreFJydnRYMzEKNWJiUFAvbExaOFBnVkFBeXV3QUlGbjRNc1BaajFXS1dJWnQ1MEdicVE4M2RLR3grQWYwMDJzMVBnSHNnZ0d3UDhRWFFkK3lHZWhRQQpTRmVIRHRmQzZaL0JjZ3RSL3VrcHMzZVd3Z0dndGpJNzBFOURvZVZ4a2VWeElmcWd3SEl2ejNJbnozSTczMUpmWXJtZmJXalB4NUxUCmpGK0Vsci9OU3ZhVVZCTUFjbVdRdzBDU0FoRDNFL0pyRkJNREw1TlJ1cm5IQlVCTzlNQ0RBbmpXU29vOEpkbXJaRVhyeENWRUN5eEEKN3F1UnNmdzF0TVB4Rnlzc3BydEdyTTFrN3g3Vzl3eGJIdXFOdlNhOTg5aVhVejh0T24yVFh2L1FZTHBuTUFMOTFPbU41WHBqb2Q0SQpSMy8wdW1TOUlVR25pOUhwaVl2QXp1b05KL1g2WTFyOXNhZkQ0Umo2UDVYWnI2OStkK21xdFRNMmIzaHQwZXJmeGx4V1dhMmlrUkdKCmJnUXdTRGc4QkNJWUdaSVl0QkxMODg4emFuN29jK3JIV3krLzZuWDFOZksxMThnUjB5Z0oweWd4MDZueGI1RWlQME1PeUJWTUFDQTEKRUk5cXlnclExQURpQ2tRMEhFQkhYUUFVL2FadkxNZzB2empZRVlNU1NweEJTUUtaUlUwbU1wdVdBaktIbnVvSUsyblNFR3R1UU9ZdwpFbDB6bDVZd241NDRrNUswa1gyZUlaZUhCYkpDZzRUN0FrWC9EUUJSV1dNQVdrVS91WUJ5WVNZNWFnWXBZVFk1ZGpZcDhtM1M5ZW5rCjYwN3hnTXp3aVhER1l6RW5ZZElzWWlWT0NFNGY4RjhWdjRDUkFBQTBqeEUvaXh6N2xrL2tHOTRScjN0ZG13cEFCSGNtQU9nTjc4aloKM2xmQWc3bWt5NytraEd5aHM3M1pGQ0FiOG44RlFHUzJDQUtJTEFBQVVrMEFFTWlMQWVRVUR3alV5V2lXY2pMWE03SitUcy80T1ROagpNenZ6VTA3YURzRVptVnc1QVVDSDhWdkFYZ0Fnc2RUM2YzaGh5NUFrQWtCd1JSVTNad2tIQW1ndWtnOE10STRaOXpudDhBNnFoRWFICkFHTFNFRDZURHdBVUtPUWREMUplM0tlT1BCd1VmU1FvT1Z5Y2NrQ2RjT2hBM01sTFNYRTVtZVd3RG5TdC9yNFRRRTREdVFMSWZUQ0kKdUVERG1XLzFrQk5BN2dhYU5QK3FnYWI2WVVWUGVpWXRBaEVBSWd3MEtZRGNERFNKZmtCS1ducnltbnZTVzN0eWU1L21QRzQ0ZHozaQpnRXB4UWFVNHBoRWNENVljOUJjRWlkbEtFVk1ncE1EWE02bnZLSUIyUVFEeDFMK0VBQ3AxQXVoZEJkUVB5QVlaSEVCNUFZRGM2VU84Ck1Mc0FLR0FuWTllTEFVVHkvbnJuanEyNzZUdmtFc29KS2ZlVUFxNENLZ3NLeHZhZnNaKy9ibzlMTVdkbVd3cUxiU1VWOXBJYXJQYXUKcGU0T01CQUlnQTRJZXNjUkszaGJmdyt0dTJ1dnUydXJxWWYwS2I4QlBnWFF4NmtmWXR5SDZIblowbkpoMVljNDZvVVhmaHo2aWNMbgpuZkZiVG9tUlovVHNOWGphQzllUC9jUkYyOUh6TGlQUHg5QzlSN0RnUS9hZ2c3WkF1TzBRdU1lczJndGk4b2R0THdKQWdENUVudnBECkFQWEpvWUhnK0ROZS9pSDAwNk1KYXd2VERBYnVmYVlLNjk2cmJONFhuS2c1dllCWENGNllYZGNOZkNjQStxVW81VTg4SlFBUWliVUwKQUdpcUlXaU9DSzRDZ2hoeUFaQTMxU3NwSXQzYWh4bWVtUUYxc2pNcVozM3Y3VUMyRXRWam1CMjR4b1NaemRCQUtQYmtUdE9HbFp1UApoNTk3ZVFCQi9ZeGdRRC9HZnF1cHgyTHN0SmpoM21jVTZNZjB5SVkxWU5nVERIMWcwOWViaHFwMHo2c05wdHVZL1NFR0FQU3N5anBRClp1NHJzemdBVkdKdkwwSUJnQnFMckU4S3pCQkF4ZGFIaGRaN2hSYVFoeVhXeHpuNmgwVW04TGkxQkxzU285MG95bjBUU1Y4bXlKOEEKSUFlRGNBQTVEZVRTQ3l0ME54RElSUGVNWm9KK0FIMklySmJtckpRV3JoRVcvVTV3amlwanFtVStRUXFPSm9TVjJQV28wb3pkc0dGTgpBd045aHFkM3pMb09LOVkrTXV3S0lLZCtHblU2b0o4N2V1Tk5uYjVhYnlnekdQTU14alNEUGxHdlRkTHBBWUNpdGJwck92MGxuZUVzClh2NEJBRHBwTUlYcmRkemh6ZzEvMlRKcjN2S2xHOTliTkgzNWhnT0JTZ3NLQUNRZWVRNUhvWitENkNValJ1RnpQV0pxNS9ZTXo1WEcKL25qYnBUZDhyMCtqWDMrVEZ2V2FYNXdyZ0JSS3hoNjFyeHJuemdzQU5Pa3hlRVNNOElWRUJXZ2NnRjczaG5uREp3Wm5VRHpJZEZJQwp5TnZrUkJBQUZ5SmpIbUltVGg1NmdtdG0wZUtKd05zZ3FQRkFJUnRZNTZreVdhaUdIUklvK0c4QWlNS0NBS0t5SFFCYVNUODJuM0oyCmh0LzF0L3ppWi9uRnpmSzdQc012WWhwcFREeHZlVjhqTXQzcktzaEVBQkhINWNmaTBFOFNuaFFRQUtCNU5QRGZGanVMRk9YNjA3M3UKYy9WTm4ydlRmQ1BlOG8wQXlKcnBjMzJ1WDlROFV2UkMzK2g1dmxIZ1hmaXY5SUdaNWczL3hkTkpFVy82WHA3bmUrb0RjdWhYZEI2Wgo0VWRoZWZzaStIMm9DSW5DODNPR3pQVUdjUVVRc1F1Uks2QUJBSWxFZEdpZzBWMklUZ0FKRkJTaGlNb1RlekZsdmt3Umd5Y2lrVVRrCnYzSms3N0RqUE5sSmNQdVRJSE14UHhWV3VUZ1ppN2o1QklaQWxvQndBRUZ5bHVKWndNNXl6WHhXNWp4bUJzaFNTdDRLWmhvdzBJZjAKN0YreDB6OWhwMjdsWEpaS0FJRDQrOVdDOEFEK0FZM2djS0FJeEhrWUhnRG9VQ0QvSUo1OUdtNm9QeXRRUVJmS2ZQL0pDM3FYRVRPZgpXVENYbTd1QW16S2ZrejZIVmJDUW1UbVBVemdYS1ZyR1NQb0Y5ZFEvcUlFMG1wQkhZeU1NSHBPQnNGZ3NmeEgvVktENitwN0E2SEFOCkFGRFVrYUQ0bzVxa1k2ckVvOHFFMDJHSlVWZlM4a3R5NnhyU2J6eEp1ZEdRVXQrV2ZLc3o3VlpYK3EyMjdQckcvUG9HSUNIQ1F3U0EKQ0FrVjNPL0t1OU5LSlA5dUcwakJ2WFpIcG1DUTYwRDBKQk5DNDFQeXNIZkN1Mk5iaGR5STR3UVFTREdlRXZBdVRwOEpjYTBHRlRmQgpGRFgzRnJmMGdaUzA5aGUxd1pTMndYRm1wM3VLT3dhTDJnZEF5bG9IOHB1NzhqcTdjM3U2Y3pvNzhqczZ5OXA2eWhzN1U5cWY1WFQwClZYWjFGTndzdTNqKzhGR041THhHRGdCME5GaDJTQ1VFQUFwUklHSUpsU3YwRTRySUNoR1ZMNlN6eFdTV2NDZUw2N09UcmY0TlB3NjgKaU1JcEJMdzREN3NrOEVicnN2VndTVzZScDdCbzNEVVhMZ3NQM2ZWRHZEQ3ZsOER2ZEg4aGl2NExLMkFYemRlYjRlWE4yZzBZUkdidQp3Z0cwblV6ZEJnTm5nTGFUZkxadjM3V0Y0clV0VU1BSlVRdE95SGtSS3BGVmN4UTljczU2S1JvV1l4TFRzY3hjVzI0aFdsQ01sVlJpCjVUV3dtVlZlaTlYZnMxVFVXS3Bxc1p0M3NhcDZyTGdHSzRib2dUZGFsRlpoeFdYV3ltcExTVG1XVXdZSGZiSmh5UWRmYjVobFQ4NGMKTytkRlhHNGFCUys0d0llZEhlNlpVUGlCN2psK2dXaDc0WmQ4blNhVy9kaENqOXFDRHdQME9OMWpWTzB4K0lmcGxhRWdPdis5SS81NwpocFZoei8zRGhwU2h4TGwzWXZjUFh2NEo2bE1IOXdlRTlHbENlb05naG9MOEgrNExIOUNFZEljZkh0Z2IxTHovMEYvRXNYUEY5Y0E5CndFQUVnMGJwQTc3SVk4MHYxMEFEalM1Rm5KQjNGSERGSlhqd2lURGxiOGdlT0FQRS90cUg3ZU1jZ2diNmNUMEd6eGI3TUJFZk5rSkMKUkZTS3dJZkU4L2FsK2tuNHNtZVBlKzE5S05xTFljK3dUOS81NDVlZi9vMFlCTEtiYlhiVVprV05GcXZlamxsTUJyTUlVZno1OTF0cwozUVo0Smd6RlVJdlZDTS9GVzhEakVjeHVzbUUyTzA2ZkVSdjJ6QTUrTnF3UHczcHNsajRyMm1teHRkck56ZUJkYk9DMkR1dkVzRWZvCjdiSUhCelFudnZtejcyY2YvUG5EdGIvL2NNTWZ2dnJmM2NHS3c2VXBkNGJ2WWJvS2JDUWZHeXkxdFZkckd3cUhCc294dlBrRjg3Z1EKZlZTRTNpK3kzaXV5M1MxRWI1UVlHZ3Jzandxd20yV214NVhHZTNtbWdKT3RiOVBUbDRoSzU0cnk1dk95Vnd2elZ3ank1NG56RnNtTAo0R1hTa2lMM0VGZW1UNWdLY2o4cDVocm5EM0IrSWlHcU5hS3FaWXFjRmNyc1gwb2pHQXBCdUd5YldFZ09MOGdwTWhuTGpLWWFrK20yCjBmVFlhR3d5R3BxTnVsYUQ5cUhaTkdCQTc5c3Q5ekhzTGhRZ0VKTGhpZDUrVS8vOHBsRmJyZGNWNi9UWmVuMnlTUmRqMVYyekRHV00KakVTTURGN1REOFVZZE9lMXovY2JoL2FidFNkMHVtT0R6L1phN0NvTSt5THkrZzlYZWE1ZXNYem02aFUvRnpLVlpyUE1ZQkJydFpCQgpXcTFFcDNNODFobDR6d1kvVFM3MThEN3h0bS9Tak4yeDAzd2ozNkRFdmtWT2ZKTjZEUUtJdjFlbXBBY3BXV29OYTFMOU9LTGlBUUFCCi9RUW91VW81UnlwbGlTUXNBQ0MrZ00yVmtMOFJDVmFUajcvdUZmZUdUK3lidTYvTjhFbWM1aFg5aGxmMDY3dWpRT0FESEVNZzA0QzkKOExMUURDZUdTQWtnczBoSklMUEp5WENaRU1XUnQ4bEFTQ2tnVGpETnBDWTRRb0ZzbWttTlcwNDd0MFd5SnhTOElLcm9ZU0hTOENEaApnV0FSQVNEd0ZnOWNoQWoxRXl3bkZpSGlBSklDQUFYN2k5UnlvVW9tQUFZaTdrUGxDbGdzSHBQTlo3RzVkQVpDcHlFMFFCOFNRdmZqCk1Ielk5TjFzeGtiR3ZsbmVWOTRneGJ4TnZ2UzIzOVhwNU92VC9LN005bzU3eS9jYURMVEhsV2xlRjZmdHVrQmtISUJjNmVOWUdZUlgKZlJZeUUvRWtnOEQ1YWxyc0xFbzBRQmFoR1FnYW4ydHY0RzhCZldiNVJzN3hqUVRvV1VDS1dVeUtYZXdiQXd3MGV4UkFFRW40cDhCagpmdDVYNXZtZWVmLy9MNEEyc0dKWHNCTVhJaG56ZVpsdzJ3R2NWODlZaU0vY09MT1FrNzJZRGJPSU5ibCs1akxTRjFOeWx6RlQxOUV6ClA2RG5mTVRLK0JVejdaK2NTeEtwLzFRQU9oWUVSNEpjQVJTbVlnY3BHV0s1M3haZTRMdU02SG1NL0RuczdQbHdyMUxhYkdiK2ZEcGcKVVA1c2RzRVNldkxQcWFmL1RnbWkwRVFJZlJ5QVRtcFVUZ0JGSDlxVGNEUXMrVmhRNnRHZzVPTjdFczRlUzdvZWtaS1Vtbkc3TStWRwpVMHJWZzZ5YUI3bDFqNEYrMHV1YlUyKzFPd0ZFMUlHSTdoZ3NCWTBIMEppQnBpZ0ZUUndKR2g5M0E3bVRhS3JqOUs3NXR3RUVRZ0NJCmtKQ3pDQVRvVTlqV2o1L3Q2aS9wZVZyWTJaL1QwbFhZM3AzWDFwUGQzSm5UMHBQWjJWZlkxcEZWVlhueHd1bkRHdmtKamZSTWlQSzQKUmc0QWRGZ3RtZ0FndVpBaUVEZ0F4RVlnZ0Q3anhXeVFsZndiQUpxcUJlWUNJQlVFRUhNWEFKQXZjd3hBRkRnSERRSGs1N2NOQW1qbgpWcExYamdBQk84U2ZEd0FVcDVKYWdvN1lqcDFGTDBiRFc3Y1MwckMwYkZ0V3ZqV25BQzBvaFVNOFZmVm9jYVdwdU1JQ29IUGpqckdnClhKOVhpdDE2Z05VLzBsZlZvYlUzQVlEc2VVWGFyQnhUZmpHV1V3NCsxNWFSaDZibm9tbFphSElHbXBodVMwaEQ0MU5zY2Zpdzh4VDYKSVFvL0U5cGU2T0hUTnZ6QWwyMGYxSTgxK0xBMThPQ2sraGxSaGdEOUVBQWk5T01FRUhIMG5RQVEwRTkvWUNnQm9NR2dnSVo5K3dlQwpRcnYyaGZmczM5Tjk1QWhQYzMyeHNJYjRPcnNhYU5TYTQyYUF4Z0w3bUpORlZnNEJKSy80V0pnR0FBUmJZQzRBSXNvL3JnQ2k4M2R4CitINGNMcGt0SUpONFhpVEVoMHFseGx5S05iZHFzUUVNMDJOWEQ4ZSs3akd6dHVnVzN2WkNNWGlZeTRiYVRCYlVhTGZEcStERGc0LzkKNzZkLzc2aHJ0MW94TTRxWkxYWkFJWUFrOE9QaGNYazlhdGVhMFJHTFJXczFhMjNHWVp2MnFmVlpyOEhhaTFxN1VFdWIzZkRRYkxobgpCUHJwdS9WVWc0VE5XN0I2em9MVm5tcy8rdmpUdi83dTh5MGJmLzc1akxtZVAvanA3Q1h6TjlGM0tCL205eit2dzlvTGpVL3luZy9jCndKcHpyWEQ4dWNqNnBOZ0s5UE9nR0wwSEFXUzlXMnk5VTJGNlVtUjdWSWpkcmdUdkRqZVhZM0hadGwrcXl1YlFNK2FKQ2hlSUM1WngKODFZSml3Q0FGc29LVndyemxvc0xYZU0wa05NeFUwbG8wcmpTaDhnS2Zza3lXZllxV2M3SG9pdDBLUzlROEU5VnFPUnE0d05YQUQweQptcDhZOWMwR2FLQUhldU1UazBWMjllSTJmLzhUT1RsMVp0TjlxLzNtc0xIR29LODJtRXUxeHNKaFU1N1drcU8zWm1nTlNjOUhMbHV3Ck0xYnNsQms3b3pXZmZtNDhxVE1mTVpqQ2g3WDdiY1k5SGM4T0dqSCt5TUJLSWZQVldYTTg1aTE0NS94K2hjbEVBSWpRRHdFZzRUQTgKR0MvVmEvK3YvTjRibkd2VGZSTm4reWJNSU1lOFNZMERBSnBPR1FOUXNPSmxBYVNHUTlBVEFiUlZ5UGNrSFh0dGQrenIzakZ2N0xyNgpsbmNDUVIrUTE3eGduQVdoMFpvUTNocnpHd3ZCSUlKRXpzRDVJWExTdUNjcDhZNlFvWWZlcHNRdW81LzdXcnczV01NUEQyRDhod0FTClMzamZDcUROMUwxenZTNU44NDJlNFh0aHB0ZGxnSjVwM3BkbTdZb0M3bm5MNjhyMDNaZW43YnIwNXM3ejAzYzQ0akd4NURPcW53V00KZUpmQXpoZVJXWERxT1dxYWJ3UVF6K3RlVjRpQXg5TjJYNW5oZFExQUI5QUhpQWU0WnlrcGJnVWxZWVZmM0NLZjZEbmUxOEZIZ1h2ZQp3QU0rWmJyUDFUZTlMcy8xT2YwZUtlenZEQjZKK1Y4QkVGL2k3UUNRMkpjazh2c0xSN0tXSGJ1Y25UeWZrem1YbTcwQTBJZVZzb0NkCnVSQXBXQWpmaFIwb2tQa2NCM2RBblBRaDlBUG9BektIbnJhQWtyT1ltYkthbnJHWmx2MGhLLzFqVnNZL2tDc2lxUm9BQ0lRQUVKeUQKL2pZQVNlVytXL2lxall5SWVZeWMyYXdzZUtjc00yMFdJM2NlTFcwV00zc1dLMjhSSS9sOTJzVy9VUGY0MHNRSURaa0tRTEVBUUlmMwpKUi9kazNac1R6S1EwTkU5aWNmMkpCM2ZmemtoTTZQMFJuSDlvOHlxTzhubHR6THFHckx1ZEtUVXR4Rk5NUkRDUUdNRm9kc3RjSnZpCmVBTkJCbzBIa05OQTd1aDVzWUVJN2t3aUlUZjB1QU9JTUpBN2dNWVphQlJBVGdNVnRrSUR3YVBzK0FQNEdFOUJheDlJZHZkQWZ2ZGcKQWY3UmtvN0J2TGErdEphdTlDN3dpVTNKeFVVWHpwdzhGcUE4L2Y5NHV3K3d0cTd6ZitCa09sNWd0cmNkTzU1eG5MMlRwbTNTOFcrYQp0ci9HTmtNZ3hBWnRvWWxZWW9tOTk5N1RZUGJlNE8zWWNSS2I2VzBEM2dhMGRhOTAvK2ZvZ2l5RG5hUy85dGZuK1Q1NnJrQmdnMnowCjRUM3ZlVStBYjM1NFlGYWtLRUVjWUFnZ0h0K1R5WEZkQUpBWGcrZkI1RHJSV1NSSFJzRHYyT1Z2K3ZiRHdXNExBQUw2Z2VOSmZPSGgKWDd0NUE0dU8rbG9Fb0tjWmFPZ05IWUQrUVFzZ2Vqdi9Jb0FjSEcxZFNZUUFINnJZM3lkRDZOTVJGSUNFcDJDcHVVaCtPUVpjVXRPbwpxVzlGbXR1UjFpNmtvd2N1WTNVTmFvRitCazVnUjAram5VZTFBNmV3NFV1bnlpb1kvenowemZ2dlozSTRzRkRVT1FBTXBPN29RUnE3CmtPWk90S2xUMHdnTFA0QSt3RDNvNFFhMHVoNnByTmRVd0k2ZmhRV3Y2bm42NUpVQi9hQ1poZlA5enFueitnSDBRZU16a05nME5Eb1YKaVVoV2h5V3FRK0tWb2xoOHdXdXhmZ0xFZ0Q2NGZuQUEzZFBwUncrZzIwR0xBVFFsanJ3UkhYazNNbUlxVWp5Wm1ISS9LNjBzSWVkTgp6dVBUNEhFREdaU0NIdWZYQTJpLy8vRlBlQzEvWThiZ0FIS2xrd3dCWk5nRDVPM2o2TVB6cExNOHFQQ0htNHNuelZYQUVsdzdleDI3CnFWRmRVbUlQTVJFMS9EZHYvd0dWWWhnYzk0eG9VSGdZaGdiVHdtUGRBWGswV0U1aTRVZXZmekhXTmFKcmhjWTA4SEJVM2RpZ1dUV2cKRDdpVUt4Q3BUQzJScWlRUFZQSzdTblJhcmJtdWxGNlN5NjZvWjhjVm1pdGE3SkwyK3VEMS8va0Q0UlhqelFmZWRTa0lxQnR1bnI3YwpQWHUxVjNLdFQ5cVJjemFRbFB6cWF4K2FySG50MHcvL2NhTDd5dlIzMk5RZ2RxMEh1enFBWFI2QUFCcnJWNC8ycXdHQUxnSUREZXB5ClVqNHhwTGs0b1AzeGxQWjgvNk9iSnpVLy9vRDVsVnpaNU5rSUM5dkNveHNaUGEveEJqZHh1emZ4T2dHQXR2RjZEYU9Ya09GVytTZG0KSnk2QjBYeDA3OVUvWHQ5a3ZkV25kN3VnWXllLzR3dDJNVTNnSStUYVJwZWxOeWtsZlFybGtGd0JUUE85UW5VUkZvRlU0M0lGWU5BMQpERXNZN05uMCtXYzdQL3BzN3hlLzkwcE02RkZLVDJ1MDNVcGx1MUxkcUZUWHl0RXFCUUpTSVZOVnpNbUtaN1VWTTFqSnJDWkRyazVDClZFbHFlYXAwTG1WMkpsd3lrNkhDUkkvVUFZaVNmM1g0TjZHaXRUUXYwbzFoZjdsQ0tKWDVTcVQ2Q09Za3ZKbFp6cXdrUUtYd3VuSi8KYzBqektsTFZXZytJQm1QUHcrYnVkV3M4U2lDQU9GRUFRT0lBYW5Bb1BVcjBUQUFCL1R3TFFFeSt1dzNIWjZkNzBrcGlOYlFPc1hDTgpFN3hZNlZSaEdGeENxMGpscTUwclFJd1hHbGZtdHpHNTFvQ1l3Wld5SndMZVl1NStaRDY2TGQ1NExOM2hyWmxuOVZiUG5IOXlJME9ECk9mOE9nQUtFM0Y4Sm9QZTlJalk2NXBrNWwxdVI4cXdjaWdCNlRCeHpyQW5sWm82RnBnNEZab1FDVS90OFUwS3V1ZjE4NWdHa0h4SDkKZUZiMGduNTBFNFJnMW5rZFh1dFpEWjRTRTVkU0lKaVZ4RUxEbUJFS0xZa2w2MG5sbTV3cnQ3cFdBL2ZzY0svZDdWRzMwNjEyaTB2VgpPcWN5TXljZ0hxaWxWYzdGSzBsRnBzUmlFMktoTlNuakxmZUl2NE1mRWxSWEQ3cXJHK00vQnlBL2J4eEFORDhYbW9Dc0E1RHIzeGk4CnZZenFWeGwxNjVodDhMOGxzMzBUclhVVHRXMER2WHVqYmk3NGVucXJMbkJNdUc1UVpxdWVQcmgrQUgxQXJMMmIxbnQyYktJMjdDQzMKdk9YZC9oNjE5VU5LNi84d1NqaUM0T2hBSDEwUnlPZFhBc2pQejVuQURuaVhXclNSMHJxT0NnRFV0STdXWWszdDNrQnVXVWNGSk9yYwpURzErazF6OEorOTRrcmVRN3MwQUFLSlJXUUJBQVZ5ZjlPQkFQWUJxRThKcms4Ukhrb0I3WWhyU29odFRvNXBTd2hxVFJOV3A0dHJpCjNPYU9ucmJUWTAzbmJoNDVmYlhoekhqMzk3QXhDSSsrT1hxK0NLUURrTjVBanhuMFMxMUJTK256VkFNOUZVRGdNVXZSODFRQWdTelYKajZHQitpOU53K2dBaEJzSXA0OGVRTGgrUUlCMVFOcXUzZXE0TnQwLy9iRHYxb1BXaVZzZFY2WjZKKzkyWEp0c2JXL0tTazFNQ2drbwpFQWNYUjRoeXd3TXlJNElTd3VFU0dBNmdjRDhHb0E4T0lDSEhnOGZ4WXZLOG1GeG5CcE5FWlBDL1pKZThLZXpkNjM5c24zRFFFRUN3Ck8rRnBBTkliU1AvQy9CUUQrUTU4ekszNEI4MlBCSGVCT1FBQXVkRWNjQURwSmlMcURLUURrSnV6dlJQQjNvbEVFTEFvRVVKV3B0RG4KUkpBSWpRUUF5Z1lRMFJaVndRMVp0VTFJZll1cXNSMVFCZzdzYWV0Rk9udWxIVDNxcmlGczREdnMrUG1Tb0ZEclpjdGVORElDMmZqaQo4OStuWm1NOXg1UzF6ZmgwSDdSaHZ2Q0QxZ0w2TkFMNndGTzlLdXZRTWpqaFVLK2YrUmsvY05rTDZnY2ZjZ2owTXovaU9URUxqWU1kClAwaFVrbHFjb0E2SC9jNUtrWTQrQVpHQVByaCtwUDQ2K3ZpSGc4ejRSNEFBL1R6MGYxeittZmJIMTcvRStQb1gxSThPUU5QaDRwdVIKQ1ZOUllYZGlJMjdIaEYxUHpYNlFtZlJUUnR4ZkJLMjdPZjE3dUFPNGU1NEZvQ2NNdEpRK0N3SFA4aHYrSno3bXRmMlZFZU5BZHdFQQpjbU00UHhOQVhDZVd3SXZHY3FXeDNlazhUeTl2dDZ5WWJOVWxCTHVFcWthVTJBUHMrdWxibDg1ZVF5UmFBQ0NWU29Hb01ZVlNJNVdwClZFcU5Tb0VDR09VbUZMNno5WVByUXhNb2lra1JUSzNDNUZwTXB0WWlNa3lsd0REQW5TbWw1cTVHZlU4cm5WU3JicURZVFV4N0dkVmMKdzVRVGF1d1dwaGhYUGJnd1ovTW5aOU5WMjFnK1lYZVB5bWJQd0pNdUhwM0M3aDdWM09oVDNEdXBmWEJHVzF0KzdNTzN2ekZacysyegp6LzgrZlBUaHZTSHNTcXZtNmtudHhJQVdWbnFnZnRRWEI5VVhodFFYanlJWGpxRVhUa25IVDZJWGptbC8rZzdUWVVneWZnN3JPcUg2CnJmOVJDNDg2YS83UU9tYi9xejREbTduZEc5bnRyM0c2WHVYMjRGbkVJTDFnSHU4WE05ZzIvNVFZdU1ld3gyZ2JDTGRySjdmelMwNEIKazg4VUJMcWxEcllkMFNJOU1ubS9YSGxjcmp3clY1NlhxeTdvZXB5aGhEQ01tSkcwL1owUFAvdnNxOS8rdjcrOS9wdXYrTTExblpoNgo4SkdzNTVHOFhhS3FtMU5XemlyS3BmTFNPV201VkZvbWY1U0R6YVZnczNrUEp6dE9YRGhhTWRUU2Zxcm94cFY0cVR4QW9oQktFTEZDCkU2V1FCeW9lQ2xWei9rcWxuMHl1QnhCK2dRT0kvVkFpbEV2Wjl4WDcwd2FYRVV1QUc4QXJyTEY3dFpuYkVRQWdDL2Z5cnpqUi9nR1UKZndOQURBQ2dRMnpXRHJmRUZVU2RkUnp5ak9GRkdjZ0tZcWsrcTV6S1FGWTdscTdVWGE4R0VpS1ZHd01KNlRDa2o0bHJsWWxlUlFzdwpnbms4N3didS9yWndyVFIzclZ6alhybkpJK2NidGxnVXpJNExvZjR2QUJUc3p6TUVrQStYamdPSTRVUEJBZVROb0FBQXVUT3BPSUErCjhReDcxVEhYaWxpKzFqSGYycjdRM0tGd2pVTzJsVzJ4dVYwK2lKbHRuamxNam9WZHJxVnRycFZkbnRHVGxaNTU4ZWd5WC9MUjBhY2EKM3pwdjZWWnVRaW95ZGlwYzVaaXZEL2lHcmlEa210bm1XeEtLMWhQTE5qdFhibk9wM3VGYXM5dXRkcTlIM1E2M3c1dWRLNndkaTljUQpDMWNUQzhESHJuUXFBREZ6TERJbUZGZ1JNL2U3aWI4aCs3aFEzWFFBOHY1UEFZZ3Q5T0p5OFNOUmNRQTV1L09kLzhiZzdLR1hiYUVkCkJzaFlwK3Z2MlV4dDNVUUJCdXJZU0cxWnZ4Q2NQdGE2NFBSWnBCK1FkWjRkR3lqMTI4aXQrNzA3M3FLMnZFdHAvUnVqak9rYjhpc0IKRkJ2cWd3TW95SS9reUJGK1FNL2JRbXRaVCt2WUFNblZ1bzdSRGRWRjYxaEw3OXBNYjl0SHJmcVNuT0xnN1Uvem9qUElMQnhBL2h4VwptaWdBQUtnNlByUXlLYlErSWJBMlVWU1RISDQ0TGJJbU02NCtPNjQrSzZvK1BidzdWWGdrS2FnMEs2V3F2clg1K0lYbWMxZGhTOUNwCkVid3oraWw3eE01ZkFYa0tnNTdSSEczWUQvUXNCaTBDMEZMOXdNY3NhWmQrSWdZQTZodDduS1VNd2dIVWQvbXhnUXdCcE5kUHo0MTUKQUExZHY5TjdmYnI5NXAyRzY1UE5WeWVIYnQwWkdKNm9hR25QRjRka2l2eHpJa1NGc2FGWjRmNXB3Y0xNc0lEMFlQL2tNRjhjUUdGQwpPb2ZyamkrQkFRRHh1ZDQrUEM4V0J3Q0lTR0p3dnVUa3dabDd3aWNBQkc3MUFNS3psRUhQQXRCK3ZnNUF2TEovMEgxSlpDYzRiSVpPCndnSGtCUTMwR0VDdXJuWUFRQ1I3ZXdMSm5zTWlSL2d5czMxOXhrUmlUVlNxTmlVTHpTblZGbFJnNVRXYXd3M1FMblV0bXNZT09LNncKcVIydVozVU5ZTDNIRmUxREhkR3A1b0ErTHhpOXNPeGxvNWVNVmhnWnhkZ1FzRVo0bnBlaXVoNXJiSWRWSDEzaEIzeWV4NXU4eWc0RAorcUNBUHNXSERUcCs1ZzgzblIveHZIQzRxVzdPWVpvbUtobFpHTzZNNy9iQzlTTUxpQUtSK2tmTytVZk8ra1dBekFqRmoveGdBSDFBCkRHcy9BRUFMdTk5aCtRZm81MDVZNUcxeEJNaTFxS1E3RVdIVDhlSzdpWkhYTXZMdnBFWGZ6NHBnQmRYczlPa0ZCc0xkOCtRM2ZBalAKSWdrOUsyLzZEa0xtK2gzL2tOZnhOU1BCSHZ3UW94L3lvTStmaEdvSUlEajdoK05HNFR2VCtiRDh3K0I2TXJqZTN1NGV4NDhjeDRZeApiQXpUam12VkV3aDJIOFBtTU0wc3BwaFJxcVJLeGF4R0xkWEtKU2p3RFNMQk1BVjI5ZnpOK3J3RzVRU2NHS1JHd0lPMW1CS1RTVERwCkREYnpDUGIzWUxjeHpSMU1PWVZKcjZIcTY1ajJHb2FNWXNpWVZqdU15TCtiQXc4SUMwcTN0Tjd2NVNTOGYwRTZkUktkT3FtOTFLTzgKMG85ZUc5U0MyeHZIc2N1RHF1a3o2RkRWNkdmdmZQUHlDa3NoSy9iZVVXeTZIeHMrTmd2ME16YWcwYTEvUVFCZFBLcStlQUlGQVFBYQpQYWthT1kxZE9LY2RPWStPbnBBTW41aTdOSUw1RlUrdWQ2MHdaZldzNHh6YlFPM2E2dE8xaWRVR2JyZHlla0JlNWZiaWdWN1JaV203Ck5KNUZTMlpQRGE2b2VWb0orcmF6dTNkeXVyL2tGMURaVkdFc0wvZnl4VElFN1pESmdJRUdaZEJBcCtXcXN6b0pnWHluMHRLTEMvZnUKZmU4M0gvMytpNi8rL1Bzdi9yTHZ3SUg4aDVPOWFtV2JUTm9zbGRiT3p0VklKZFVxZWJGaXBnaVpMYnM5MGpONC9QdTg5dSt6MndmcgpqbFVkUDVjd2VTa01leFFvazBUTUtTUG1VTTdEV2I1U0twUkpoTE15MWd6VWoyRWVWNEFlU1htU1I0Slo5Y2VsNTE1MktySndxNEtyCksrNTRyYVZvSGtDQjNnQkFvU0cwUmR2Z2Z3MkFPRndtays5NTBJZjVtbXZDY3NkeUFKMlZEamxBT2ZQdWNTekJzOHFoQkx3UnhKaFEKdE5vQnh0aXhlTFZqc1RHeFpKVlR5V3BTNlNwU09SNmNSS2JPbFF1cDFrVi90eHlQdWE3UnhkaTEzTm90ODgrczhFQVJCRkJFdU9EZgpBWkRBbHcwQUJQUUREQVFBUkdWUkRBSGt5cUFBQVAzV0syU0hRKzU2WXNWR3g0SU5kc1hBSk9iMjJXdHRpeTNzOGtHQWZpd0JWSFQwCldXdVh0ODQrMzJpQk96RDZXZEc2d0pJUGlMVkhGWENQdVVzcDdCNXlLbHBGeUZ0cG40c0hYT04zVjlqbG1OcmtXZG9Wcm5jc0JRRGEKN3J3QUlMY2pXMTJyTnBES3pBZ0ZxM1NQWCsyUUR6L0tQdGZjcnNERVB0L1NNZU1OMTRpL2tuMmMvMjhCQkp1QjNIaWt2ekY5ZGxQegpObm1YNk03bGFObElidG5pM1F5eW1Rd1lCTzQyYjZEQVFPdFE1Mk80N0dVWWEzTG5XbXJqcTVUV3ZkNGQrNmx0YjVQYnZxYVgwd1ZoClVRRXNZQ0Q4UkRCREFLV0VRdjBzQXBCdUdEU1J4T1Y5d3NyZXhtamF4T2pDVjl6V00rRUZyRUl4T2pjeE9uWXo2ajZqWk5sNEIxRzgKR0RpQTZIUzZINXRwQ0tDNlJQL2F4TURhbExDYTlNamE3RmlRdzVuUlZla1JqVW1pMW96dytyU3dzaVJ4UldGMlUxZHYrNW14K3JOWApXNzY3cERlUS9ob0VCNUFoZytZTjlNTU5rRVVNZXFxRWxnSm9rWUgrRndEcU56Q1FJWUNXR3Fodllnb0hrTjVBdlZkMTBTMTQ2ZldqCkI5RHhtM2U2cjA0MlhiM1JQbmw3Y0hLNjU0ZnpsWldWNlpFUmhVSENFckVvUHlJb0k5d3ZReHlZRVJhUUdTVE1DdzVJQ2hYZ0FBcjEKcGVFQTR2RTkvYmllQW80M20wdjJZYnV5bUE0a0p2TXJUdWJiZ3M1OUN3QjZNM0FJQU9nTmZ5Q2VQZ0FnQUoxbkdjanc5ZGpRUUcvdwpqdTBYQUFDVi9BOU5RS0lRQUgzZ09ndkZVUThnTDdnUmJCNUFyaVE3VjFzSE95Y0NrK2tWeFdQbUNsbDNnbUkwTVNsWWNnWnN3Y2tyCmg1TjR5bzhBdXdEQmFPdGFzUG9PdEw0WmErNlUxelpyZTQ1ZHFXblp0Y0xrWlNNam8rZWZNM3J1UmFPWG5sdG1aRVQvL0hkWXg2RDIKY0JQVzJpVXZPd3lyUGxWd3pRcy96aDJmN0t3dHFrS0xxdlhMWHZQNnlTckNNblVqbmxQejBSVFk4YVBmNjY2TlR0R0tFeDl2ZE1lWAp2UUlpNWY0UkVqOFkzRDE0SGdyRFFSNzR3UUQ5NkFHRW4vdzF2L2tMWC93eUFORE42TVQ3a1pGVENlRjNVaE51WnVaT3BZVFBac1hrClJoYy9GVUM2Yi9qakxPWE8wcndsNkFjQTJ1dC84bjFlNTU5WlNjOENFSlVMOVFQaXpYV2k4ZUNCOEF5ZUI0WHU2a3ZuM0QxNUJ6dUwKb1QrZzJBaUdqQ0RhcTVqcU9vSTl4QlIzMUlwN0t0VTlWRHVEb1k4d3hYMVVPcTFDSDJDWUJMWUtLZVpVOFBLaFRIN3FDbmJoSGpJeApnMDFwQUo3azRBTWZZYko3Mk53a0pyMkZ5VzlpMHF2WXcxRlVNNEZwemlteFllMlZvVnR2dmZIbnQ5Ly94NFcrcWRraDZkMHU3RTRYCmRyc1R1OWVEVFhkaE4xcXh5VTVzdWh1N000VE5Ic1ZTZk10TnJEYS85OUZYbHdla1Y3c1F3Sm9GL2FERFF3alF6NFhqcWdzbjFSZFAKSVJlL1F5NmNWSTdyOUROOEFSa2ZSb2JQeWE1ZTBEWWQxMzdFYVRRQlAxUTV4OVo3dDI5amRzSWVBMWIzRnZaOERDVUVEY1RweGJPZAoyMmVZUlV0bUJwbVhrOTVTK0NmY3pPM2N6dW9HbHZxZGI3NDd3eU1vTjdKMDVuNnBDbXVSeWRwbDhpNWRIZWlvVEFVamg5TjlUbW14CndPYm1QZTk4L1BGN24zNzQyUmQvK3Z6UCs3LzRFN09ucFZNcHE1RFA1R0xTTEV4ZXFaVDFYcnQ3c3ZYOEQza0RvNWxkL2MwbkMwZkgKNGg5TnBjdm5jbWZsaVk4a0lxbkVYeUVMdnkrSmsycjhGQ3ErU2lHY2tRYlBLUHpsQ0J3R3ZSQS9pUlJFT0NmeG5aM2p6OHE1Y3cvNQpjNm8vTkkwdWN5c3lkU3VIY2E4MWQ2MVo0MWFvQTFBa0FGQmtBQVVBS0NibzV3QVVIc0FNRFdEaEFNTDN3QU1BY1hrc0F3Q1ZyU1NWCjZBQlV2SktvcS9RQTl4QmdqSFZaWTEreXhyWVF4TVFPQnNjUWtCQUlZQkFlUUtJMVRxVWdabkJWcDh5TVZHbnFWREVmVWhrSS9sNEwKWW9FSnNYQTVxY1RNSmVOTFdxaGZJRHNtbEJvV3p2OVhBUlFTd0RjRUVKdkhNQVFRbVVVR0FQSmdVWEFBa1JqVUw3MUNkam5tYkhRcQozK1FBQUZScTVWQU1BTFRldGdnSGtFNC84d0FDK29FQVduUTZoajV3RDcwSDNPcGw0VnB1NWx3Q3ZwaFZEamtyN0xOVzJXU3Z0czFaCkZHTTdXQUd5c29jVm9DMHVWZHRkRHdNQTdYS3QyZU5hdTlHbHdwSllEQjZ3M0NacmhXMDJ1REMyeVFFeHR5azBzYzJ6Y0VqZjV4YngKdFRmYmllb0tCNEw5SndGRVhnSWc0amNNMW5hUEZHdVhMQk5Tc1luellTdVgyczJ1UjE3MWFOaEdiZ1dVMlVwdTJVeldNWWc4engwcgpjdE5TL2VCdnNTUjNXdE9idHVnQXRJL2EraGFsN2YvUktxZ0NNUTZnbUNEV1V3R1VFT0tqQnhEZ1BBQlFpQi9SbGMvN2xKMjVuUVVCCnRKbld1WUVHM2JOQlYzeGFSMjNmeU94NGpkSDRFVFgzb0hjSWVMWU5BWlFhNUs4SFVFMWkySkhFOFBya2lNYTBpSWEwcVByMHFOcTAKcUpyVXlKcVUyTHFVaU9hMDBLWlVVVVZpWUVGYWJHVk5iZnV4czBlT1hXdzZQWTdycC9uTUJMaWRid242L2pMSUlnTkJCdWtBOUdzTQp0RlEvaGdaNkpvbVdvR2NSZ1BRR1dnU2dSUVlDQUlMUkFRZzNFQTZnSGwyQWdYRDNnSFJkdTkxNS9YYmI1U3NkVjIvMDNwcnV2M3FqCllXZ29QeThyU3h4VUdDSW9qUWtyamdySkNRbklDdkV2aUF6SkU0c3lnMzJ6US8wU1EvZ0FRUEVCN0JBQmxjMXhBd0RpQzd3QWdJVHMKeHdCeVp0TCt5RWw3VzlDK3ovZkVMd0pva1lFV3ZSN3JEWVFENkJOTzhmL1FlUzVrQUNEN253ZVFtNjJERFlsQVkzcEhjNWtGUWgrNQpLQjZDSXlrZHR1QmtGOE85NktYVmNNV3FxZ0dhcHFaWjI2d2IyOVBRaVhRZmRmajQ4Mlc0Zmw1NDhhWG5seHU5OU9LS2w1NTMvZUJqCnJPc1llS1MwcEFwcmJFSEw2OUFLdzlVdU9OWlpXMUNCNUZmQ2RoOWR4NDhtcXdUditNSFNkRTAveWRsSUl1ejRRZVBTZ2NiUXlDUTQKM3prMFZoMGNyUkpGS1lNaUZZRVJJUElBc2NJdmZHN0JQYkR3NHd2cEEvWGpHM1pmQ0hQWER3WS85WDBwZ0tCK3d1Y0JkQ3N5NmtGTQo3TTJrME1tTXRPbXNyTnNaNG52WjZmMHAyWUErZTdnRCtsV3dwd0xvMXpEb1RYN2Y2MzVIOS9pZmZwZlgvVWRXaWgzZEhRRElrMDdVCkEyaCsvV3NCUUY0OEp5clhCZmJMZzJ1eVUxWlVxdnlzRER1SnFjNGhtZ3RhYkFKRFIxSHNPcWE4Z21EVEdISUwwMDRpcXVzSzlTMUUKTmEzUjNzZEFOUGN4OUk0Rzd1MjZvOFU2SjZZUHhja1BKTXc2cEtpb1JScE81VXhhcnlyL0JGYjVJOVp5QlR0Mkh6czdpMTZRWTljdwp4WWdXNkFlN2lKMnBPUHYrcTM4TW9tZmVQWTNLajJLVFE3SWIvWktiL2ZMcnZmTHIvYW9iQThxcnZSS1FzVzdwN0JBMldISnAxOXVmCm1PNTRyYkhrM0wyVDJQaUFlclJmQy9XakE5RHdNZVRpQ2FBZjFVK25WVCtkMVFBRFRaeFhqLzJndkRDaXZqaWh1VENNanY2QWpGekUKUE5QUG1aS1BXTEg2TjNwM2JLWEM3b0wxck41TnJFNDg4T1FmUXdteFlmUU0wa2UvWkxZazgrN1Iwd2YvYkJ0OFdsNWo5VzFnZDMwcwp5SEwzOFlxb3lTNVJLTXBsV0lOTTJpelhHVWloN0pialVRQVBEYUJZNGVTTnJYLzY2cjEzUHR6Mzluc2YvK2FyUFc5L1JzakxxY2V3Ck1vV3NUQ1l2ZVRoYitVaFMrM0N1K09xTjRrdFhVakZWQXFwSVVNaVRaMldKczhwWWhTWlNvUTJmUmFKa3lsQ1pYQ1NWQmp5YUFkWVIKeUdVQk1ubmdQWGh0Q0NDZ0h6eThHUmxQOG9ndlZYN2RmZVVWejZJMWJxV203bVZyM0dwd0FGbTZsLzZCRXhrWTRCMFZDQ3RBL3hLQQpZUG1IUitGeTJYb0FyU0NXcjNJdVhVWE1Cb2lCMVIzSFl1Z2JRaEd3RGtDUHVWMFJpS1Z0Z1lWdGdibE5QbmhCWDJPWGIyS2Z2NFpRCllFd29XSTBYaEJ5TFRSeGd6QnhLTEJ4S0xSM0xMSjBxTFlnVklPYU9wU0RnN1RDT1JXWU9PYXNJZWN1SVJXdWNNcjZnaGdyQWEySW8KUFRTTTgzOE5vSys4QXZjU3N6Y1RBWUNLOUFCYVp6Y1BvQVVHUVFCWjR3QmFkRWFHUHBadU1EcjlsQUw5ckxUUGZjVTJZNWxOK3VwRAoyZnFzT3BnRkFqU3p4aTdQM0s0QS9HRWJuTXEzdWxiakFOcnRWZ3V5MXJYY25GZ0U2UFBLb1V4Z0lQQlJKZ2V6VFE1a21SOHNNTGJKCk5TZWt2ZTRxL24vay94cUFtRnRjWWkwY2sxZlk1YTRrZ0Nlc2NpT3A2bFgzSTY5NU4yK250SUVBQmdFRGJmQnVYdWZWdE5ZVGJ2QmIKV3Z2QkFXUkY2UUlBMmt4dDNRMEFSR2wvZzlJT0FFVGhoLytyQUFvTmNIVGxjejluWit4Z05nQUFiYUoyQVBkWTAxclhVWnJoK0NrcQpYS3JieG1qNmdKTDNyWGV3SGtBMEdrM293ekFFME9HRTJOckU2TWFreU5aa2NWdEtPRWhMV25SemVreGRla0p0Y2xSdGlyZ3VUVnlkCkVscVNHRnlZSEY2V0ZWZlJldzRZQ0tjUHVNV2JnZUJDbUE1QWVnTXRCZERQR01nUVFEOGpvYWNheUhDZTBOTFpRdjhxZ0hvdnpSdEkKRDZEdUszQ3VEekFRY0ErZWptdlRJTTJUTjlwdTN1aTlmSzIyYnlnbEpTMDFYRlFSRTFRbFpxZEhCZ0VKRll0RFM4TkQ4NE1DOG9JRApzc0w5d1JNS0FKUVl4TlVEeUlmbkRnRGt6L01TY3J3NEhBQWdkeDhHQUJEbGo5eVVSUUFDQVFEYXpldmR4ZTM3R1FBdHJVbmcyYzg5CnNRQWdqZ3ZGZmdGQVRrOEZrSXVUclpzTjhaQXpnYklBSUkwb0VRQklrNWdDNSs0QUFPV1hveVZWZ0MvQU1kcktCcXlxVVZaN0JLdHAKd3VxNnpzU21tVUw5R0JrdGY4WEk2TVZsUmk4YlBmZjhDMFpHUVlmc05RMWQ2c29qV0Yyam9xd0tLYTlGU210QTBPTERhTkhDRnZmOApjaVMzRkNhN0JNMHMxbmY4NEdOKzBLU3NoWDduWkZ3L3FyQTRWQlNOQkVXcEFpS1UvbUk4UUQ4Z2V2cmcrZ0gwd2FNSDBCMERBRTBGClBBYlFmUGtuUFBKT1JPUzBMZy9qRTY4bGlhNW5aTjdKVHIrZkV6MlZVM2doS3cyT1Z1SVBQYzFBZzBzTjlEUEJBYlRiNzlRNy9NVUEKOGpSc0FOSlhnUGdrTWc4Q2lNcDI5ZkoyYmk0K0lqc3B3WTVpNnU5UjlBY3RNSkQ2QW9KZHhsVGpLSFlWVTQ1cnNSdHE1TEpDZTB1agp1b0VxYjJua3Q5VHFhWGlRKzh4TmpmSVJoZzNldnY5VkNQWkZDUGFsQ1BsRG9QSlBnYW92Uk5pWDRkcmZoU05mUmNpL2pydC9JR21HClVvckZEczVkVUV2UHk1RWZWTExUc3BINnk5ZTdaeDRleDI3M2FtOGUxVnp1VlZ3YjBGenFSYS8wYTI4Y3hTYjYxRmNHMGRHVHNxc3QKMktWdVpNY0huNys0ZlVOT1d0ZjBFRGJSalYzczAwRDlER3FHajhHVkwxajdPYVc2Y0VaOS9qdHM3QWRzL0p4OC9DZlp4WEhscVZIRgoyUkhrNG8rYXlWRXN1bkhTa2x4clR1dmFRdTBHUDEzWDBWclgrdlJ2WU9qMm1qQTdRSEFHNFJMQ0FhU1BIa0JiT2QxUGpTRjk5UG9CCldjOXEzc0VaTXFPM3ZTOUk4L1pqSkhaVUZTclY1WE5ZdlZ6YUtKZTFLT1FkY2dVZWdLRld1YnhOcW1yQnNJTVpNZHUyNzNyOXZYZDMKZnZyWjF0M3ZFck96eTFGTnZrUmVJa2NMSmFvOG1TcFhyVTZTejZWcTVLa1NSZFNzTkU2aVNKY2gwUks1VUNuMVY4bkNaNlhoOTJmRApGUXJoN0NOL3lheElxZUJLNW9ReVNZaFV1clQ4TXcrZ0J4S0JiQllBNk8vOTE1WjVGaG03RmNFQk1jN1ZaaTZIOVFBS0Nsd0EwSk5ICllUd1ZRRUYrODFNUW53R2c0dFZPT2VEM2Y1d3lRRDlyN0l1QWZzd0FnR3dLTFd5THJHMEtRQ3hzOHZVR2dpRVVySElzV08wQUpRU3UKelFpRjVnNUY0T1YrclVPSkZiSFMwckVDQkhqSW5GQUNBdDRMWTVleHlqNzdaY2ZDMWNTMHo4akIvQUQydnc4Z1h5R0h3MmYrSW9EMgpPR1pzY2l6REFXUkpLREVsUUFDWkd3REl3ZzRDQ0RlUWtabG5OWWk1UnlVZUMvZHlFSE8zTWl2bjBuVk9aV3NkeXF4c2k4ME81aGdmClRGdGhrN0RNTHNiNFlNYnFBK21ydjgwRUFZNVpjekRiOUdDdTJTSHd1UW8zT1padWM2N2M2Vks5eS9Yd0h2ZmFYUjYxTzl3T2J5Q1YKV2RnWHJEcVVzZXBRMm1xYmRHUGJyRFdIY2t4QkRtU2JIOHBiYjVQK2hvUDRMNTVjUjdxSEs4M0ZmYUVKV2o4RkVjVE54eGtFQUFoRQpEeUJ2TnBrQmZNT0RBTUlOQko1eUF3TlJ1SHh2cnRDTklYRDE0WG41Y01HRm80ZXYrN2MwOGc2WFlEUGJtT1YybVMvYlo0Sm5hQ094ClpvZEwwejdQcHJlOW05L3pibm1IM1BJMnBXVWZ1V21uZC8wV3I5cE5YalhXbmpXV1hrZDB3OEliclhXcll4c296UnZKelJ1cFRlc1oKOVZ2b0hkdThPM2JRV3ZZeE8vNUFPK3pGVGdnTFlNT0Rva1Q4ZUJFM1NjUkxBUUFLNHlmcVJrSW5oWEVBZ1BCVnNIamRnZkJSQVRTLwpBSGVxcjlkZjZJbmJLUzJXekk2MTFPYjFubTNydlZzdEtJMXJ2VHMza3J2Qmo0bk4xT2I5bnRWL2Q0K25lTEhvM2t3YWhVbWxVbjFaCjlPUWczOUlvVVhsQ2NIbVNxQ1pSMXdTZExLNVBqV3hJaTlJbEFxUStQYW91TGZKd3FoaWtPbGxjbFJSZWxoQlNIQnVVRmMwdEswaHAKYXU5cVB6UGZIRjEzR2c0TmFqOTdvL1hNbGJidkxuZCtyMXY1QWhJNk45WnhkblMrUTJqSjdNUkZEUHBGOXl3dS9QeGlEQUFFMGpzNgpIOE83d0VDOTQvUFJBd2hQOTJXWW5pdlRnMWVuVzYvZmJidDFaK2pHcllFclUrMVhaaHR1U09xdVRiZmRudXdjSFM2dnFVd1BEeXdRCitaVkdCQlZFaW5Manc4RnRma1JRbmpnd056d2dXeHlVRlI2WUVRbzdnVktDQkFtQnZQQUFIMzhJSUE4TzExUElJL3R4dmVFU0dNK2QKeVNYU2ZJZ2VET29CUnZTSDNDTmJoU2YzQ0hxQWU5NEtQQTRZdEljL3Z3VnNVUllCU0o4bkRDUTR2Wi9YK3h1ZjdJTTBGb2xpVDZRUwo0TWdabXIwbnpVbmZBK1RoQlE4Q2MzR3hoUUN5SnppN09Mb3luUDJGdEpvQVBpYUlSY1R4OHRRVVlCRzRHcFZkaXVTWHF3dXIwT0lhCmJla1JyTHdlcTZ4VGxkUmczU2YvK3Rubks1OS9hU1VRMEF2UHYyVDAzQXRHeTNXMUlLTU9kNDY2dGtsYlVZZVZOYWdyNnJSRmgwRTAKaGRYYS9DbzRYQkVlYWxFR0FxcytHY1Y0MVFjbUpYZWgzUWNXZnBDb0ZDUmk0VmpUa0hpMUtFNFRGQTBNSkEyQ2MzM3VCMGJkOVk5NAo2QnMxNXhzdEIraGhCODRKdzJiOHdtWUVZWE1BUS96UXV4elJ0RzhJbnR2QzBDbS8wRVh0enppQXBzTENKOFBGVUQ5UlVWTXgwWGNUCkUyNm54RStsSjB4bko0UGN6a202bDU5S0NpeTE1cDk1blhmaWRWN0hMczd4YlVKWXp0bko2MXBLejllWGRxTS9tVGNCVC9sSDN4UjAKZjhITnNtUFFQR2p3RUpLbFRkQTRnSHg0bmt5MkM4dlh4WXRENUhqNWpGZGQwL1JoMm1OcTlBU0NudFpvem1vQWc5Q2ZOUEJnaWpHdApla0tEam9JTEZCM1hJSmRRNUlvR25sOXhUUU9pdVlFOW1rSVVGKzZyZmh1R2ZSQ0UvUzRVL1gzb3pGY2kxWjhoZ3hSL0NWRi93c1crCjhsVi93cHQ3TDFBWmUxSnlVaXM3alVtL3cyUm5NY2taN09FSjdPNmdkcnBQTzlXTFR2YWh0M3FSRzczSTlSN2tXaTl5dVZjTk10NkIKM1RpT25XaVpmR2YzTjl2V2Z0cFk5c1BWMDlqRlRnME9vSkVoN2NoeERRRFE4R2wwK0N3NmNrNHo4cE1TWlBpQ2F1U2llbVJFZFhGMApQdU5qeU9CUDJ0OExXbGU1dDVneWoyNGd0MjMwYWw1UDdkOUE3Y0t6a2RhOWlkNERzcG5SQzJKWUdkS3JTRjhmV2hyOHZmZ2o5UjhMCllzbnUyY2hzM2N6cy9weFZST0l6WWs2Mlo2aXhVcG1xV3Fhc2thdnFaSW9HbWJKWnBtcVJLNXNVTUlPemlqcTFQRjl5L3gxUGl1WDYKL2J1M2ZtVDU3bS9ZZ3oxbEtxUklyc3FWeXJPa3NreTVQRTJoVEpiTDQyV0FQckpZcVF6UUoxSXFGMHRsb1JKWnNFUUtDejh5dVdHeAp4OEE5YzdwQS9lQU5RUHhaS1lqZkk5UkgrWWlybkR2UWMzbTVjNUd4UiswcTl3b3psd296ai9KWDNLdk5YVXEvWnZ2NWk3d2ovWmtSClFkUUlBLzBZR2tnY3hEQ3NBQmtDaU0wbDAvajBieGgrcjdvbDRRdFlKazc1SzBtRmVEa0g2QWVuRDY0ZmM3c2lpME9GSUZhSDhzR3IKczVsTnJvbHRMbmlWWE9tUUF5N1cyT1hoVGNTQVIydHRDemZhbDJ4MktOdE1yTnprV0xIUm9Yd0RvY3phdnNqS3JoRFdrR3p5alE4VgptenFrclhSTVdFMU0yZThkUVEwV1JJYVFZMFdjNkRCZXJGaVFFQ0ZNalBSTGlJQ1REd0Y5a2lJQzhHdGNQN0hoZnRHaEVFRGlJSDZ3ClA5d0loczlDNUF0ODhBb1FvQStEUllVQVlsSUJnTndZM2lBdWRES0pRZjZiUitBK1VySVZvUnpRWlFNaHg1cVF1NVpRdk02bUdDQUUKL00zQlZ3UmlhUS9wQXdLYm9DM2dyT2lGd0NuUmNGZ1F5RnBpeVRySDBuVU9KZUJMQlFCYWZTQVZBc2cyVGc4ZzR3VUFBZjJBTDlnUQpRTHZkYW5BQXZlWmF2WUZZWm1sZllISW9FK2pIeEM3VDFEWWI2TWZzWU80aUFEblFQUC9yQUVwZkJDQ2duM2NwclNDNGdYYVJHN1o3CjEyMGkxNi8zcWw4THAyRTJXc0doNExBd3M1N2NCQmkwbGxhL2dkYXh4YXZ0VlVyakhuckg3eW1IM2RtSi95cUFBZ0xjYVFLdnY5RGkKWGlNM210TmJMS2xOYXoxYnJieGJ6Q21OVnQ0ZDY4Z2RzQnBFYlh6ZG8vSnJ0emgzQUNBdkh6MkFrZ0lGdndaQVIxSWpsZ0lvSjlZWAovSjhSaFFTbEZWZldEY0x0OFUyblJ4dE9YR2crZmJYMUxFelQ2WEh3bHZaemw3cC92QXFpM3liMml3RDZlUU10OXMwdnhrQS9pd0NrCnZ3YnBHWnRjTU5Ca3o4VGtJZ0NCZEl6ZjdMNHA3YmoycUdOMG91ZlNsZlpydDl1dVRnOWV2OVY4OGxSNmZtRmNhSEJlV0ZCRlZIQjUKVkhCZWxDaFZIUEF6QUlvUDRDNEZrQytYRERlRmNaM29iQ2NQQnZrQU0vSWo3cEh0d2xNNGdONE1PUFp2QW1nZi8vUitmcmNlUUU0MApCeExkQ1FESXNBbmFFRUF1ZHZZa1o5Z241T2RMUGV6UHczalJhR2lzTWpGSms1d0xlM0V5QzlHOE1uVkJKVkpVclNtcGhRYXFyTU9xCkdpZXlTclpaV2Ixb1pMVGE2Q1dqWlMrL0RFcy9MejIzN0NYVDU0Mkd4VW5nQVdoUk5WWlFMUzg1akJaVWdRRDlHSFE2dzNZZm9KLzUKWm1jZ3JaUTh2WDQwTVk4M3VpT2hDVWd3MUE4U0dEc25ESlg1aDZ2OUl4Vys0Ukp1cU1JM1F1a1hNOE1PbmZVUHZ5OEl4azg1aFZVZgpBZFRQakZDOENFRHorbmtTUU5QaFlqMkFwbU5qN2lRbDNFNUxtTXBJQlBxWnpJRUF1bCtRNWhWU3NaNTNaaC9uT0FEUWJ2YnhiWUtCCi9ZS2gzYnplcGQvNVh6UVFEcUQ5L0s3ZmNESnRtRG9BMGVGQllFOEZFSlBqRGdERUZJQzNFLzBZZnBkcmJtbDdNTTFSQkRtT29pYzAKd0VEb09RMXlYcVA4RVZGZFJGUWp1aU82UmlDRGdJR0Fod0NEMUpkaHNCRk1QYUhHemo5Uy96TlIrUjd2M2xmQys3L2pJVjhGWUw4TgpWdjR4UlAzYklPbnZCTkxmODVSdnNtZHRjNlQ5TXpQSGtFY240T251SURNbk5mZVBhZThNWUFCQVFEOTRidlNpUUQvekFPcEJKenF4CnNXNTAvRGhTbWpxUUdkTjZydmZSeUNBeTNLMFo3dGNPRDJwR2pxSWp4OUhoazhqd2FUVUEwT2ozS05EUHFFNC9veU1xQUtEaE1iVXUKU25EM3pEaEdpRHU1MnFWeE5iVjNMYmwxSTduRml0SUxmcktCcktkMGd1QU13ck9CM2dteWtkRUZzb25aclkvZVE4OEs3aDY4cEFSaQo1ZE96Q2Z6cXFBT1FpeThyNW5SSHFnYkxVeWhMRklveXVhSlNEaGlrcUZVbzhkUW81YlVLZVlsYVdvYXAwcTlkL1RZc1p0TmZEM3lkCmtweW5sUUg5NU1rVTJWSlp1bFNhTGxPa0tCUUpjbG1jVkFMMEV5dFZBQUJGU0lCK3BDRlNHZENQeUtEU3M2ams4eXdBQ1dmVWRPazkKam1MdW01YlJsYVNpVmE2VksxM0tUSjByemQzS2xydFhXdnpuQUxUVk5YRWxFVFkxQXdDdGNJSkxXaVlPRUVCdzVXc0JRREJQQWdpZwpaelVoQjdZTjZScGQ0R29QZVBrK2xBZVVzNEZRc3NseEhrQWdBRUNBR2dCQUFBTWdKallscGc3cEt4MlNWaFBUM3ZBU1UwVDhpQkNxCkhrRHhZbDlnSUQyQVlQbG5DWUFpZzMzMUFBb1FjbjhsZ1A3dTViK2ZsR1R0VVBFWVFQYWw2MjFMckFpRmVCTTBDS0RQV2tJQkNLd0EKbVpOSzliRWtsVmc0RlpzVGk4d2NDOWZiRjIwa0ZHK3dLMTVyVzJCMk1Hdmx3ZFJsaHdDQUVnQ0FZUFRsbjBNNTVqb0FyU1VVYlNhVwpiWGVwd3NzL2V6Mk80QUJhNzFBT3ZpbXc2bU9iYlFaN3BYT0Jmc3dPNUlPUEJSKzQ3bERHR3c2UmYvYmlBd0RCNldFTWovODZnS29oCmdMd2EzdlNHQm5xZjNQb0JwUTBFTU9ndGFzc2JsT2FkNUtidFhrMGJQQnYxRXpBWGprcHBNaWZYV3BOYjEzbUEvOUtOMjJudG4xSnEKU2V5VVVIK2Zmd2xBZ2Y3dUxBQWdldVEycjFwVEt2aWNEUmJ1eldaZURhYmU5WlplUUVKdEZ0UW1TKytHMTl5cnZuUkxJSHB4SUlESQpMQjJBR0RvQWhmeEtBRlduaEJzQ0tDT1NteEhqSnc3aE0zMFlQRkZJZHRXUjVoUG5PcjhiYmpnNTNuaHFBdHcybmI3VWV2NXF4MDgzCldyNi9VbmRxZE9seHFvWm5oLzE4SjlCaTAvd3JlYXArb0hoR2JqM09HQVRRZkNZZVI2OGZXQVM2Y2JkeDVFNzNwWHREMTI2MVhMN1UKZEhPNlkveHFZMmQzZmtKeVVrQmdsc2kvSWpLMEtOU3ZJTXl2S0U2Y0d4UDJMQUNsaW53WEFjaVBUOUVCQ0k1ZFlQRmNHQnlTTjlQNwpFRXY4TWZmd2E4SVRlMzE3Y1FEaEl4Q2ZDaUJEQXhrQzZJbFhZdDZKTjdsZHYvSEpPa2hqQUFDUmRBQnlweE1XTFlIcEFVUzB0eU9TCkNDNDBKL0RYcS9ibGFObVJtc0FvTkNvZWpoeE16Z1pHUWJKTFZMbWxTSDRsVWxpbExhcEJpeXF4bXBaeUd1ZGxJNlBuakl4V1BQZXkKMGNzdmdRdllCTDNzdWM4dDFzNlcxV0dsZFhpWGo2cTRXcE5YaWViQ2c5em5lMzB5NElHbU1HbjVhR29lbXB5TEp1WG94eHNDK3VnbgpIS3FDNDNENnFBTmlWUDdSVW4reHhEZE1LUlNqZ0Q2Y2tGbFc0RU9lQ0xqbkRqLzRubS9vSGIrd1NXSElkQ0JVem0yZTZENXZYajg0CmdCNlhmNTdjQUE4QU5DV09tSXFNdkIwZFBSVWJjemM1RVFjUTBNOVVic3AwWHZLOW9uUkJaUFVXN3NuWDJjZGU1M1VDQU8zZ0Q3ekIKSGRpekFLREYzL3huWjY5Z2NEOWNDenYraHFEN041eHNHd2JqNXdGRVpUc0RBREg0SkFySE9ad3Z2bGwvRCtuQWtENEVHVUNSb3hyMApCSWFjMHFyT29NcXppUEo3UkhWZXJmNEJRWDVFMVJkME5hRVJqWG9VQkZHTm82b0wyTnhWRFhaRm8vS3RVZTVqeWIvZ294K3pzYmRvCmlpK0NWQjhJbEo4SVpyL3lSWGVSa1k5RHJ1ZWN2ZlVkZW5kQWRXOVFmZitvNnNFeDlmMWo2TjBoOUhZL3JBRHA5Zk1ZUUQwb3lMVWUKYkxRVEhuWXhkaHh3QjdrNHFCN3VWY0xEdnhiV3Z3Q0FMcDVDUnM0Z0krZVEwUjgwZXYyTWpxcEJSc2FSa1hIVjhJUnE3S0o4NUJvVwpYSDNEektsMnBXZW5tUmZzcWpUejZyTDJhZ05aNjkwT29wY1FpRzRVU0FjZUhFTjZEejAxT0kvd2EvM2pRYXpwUGJDTmt0YnhDYlBBCnhaOGRlYVlqRHNNU0ZmSmNwU0pQb1NoU0tBR0RLaFJLa0hLbEhDUmZyY2lSU1hKbVoyb3hyRVNESkR5OG02bFJwR3JnRWFkWlVsbWEKQko3emxTeVhKOGdVc1BBamxlcHJQeUI2L1FSSUpNL1F6ODhCaURKN2x5T1ZmVlZ4SGdCbHBWUFpLdWRTRTZkeWM5ZmlWOXdxQUlEKwp5dkVQQ0NZREFJbURxT0puSDRYeDZ3RmtUTXdEQU1LWHdFeDFmVC9BUFpZMk92M2dGem9Bd1ZVdzJ6d0FJR09IM0ZXT3VhdnNjMWZhCjVjQU80RVBaYXc3bG1zTlgvT0lOUkFnZ2ZSRklEeUR3eW01NnFNU2NBQUNVc3NveDdYVVBzWGNnQkZDMGlCTVZ5bzBKNStNQWloZjcKZ1NTRUx4eUNJWVpMWUQ4UElId0o3R2NBOUMxWitMWnowanJIOG5XRXNnMzJlZXNKQmZEQ3JoUUF5TksrQUcrQ0J1NEJiNGZ2Z2t0ZwpjRW12d053QjdwaTNKTUJZMk1Oc3NDbllhRnU0M3E3UTJqWjN6Y0gwRlFlU2xoOU1lTVVtRWVqSDVBQklGZzRnODBPNTRBc0dIbHp2CldMTEZxVndQb05jOTYzYTYxNEM3NEk4SDMxUGdKR2dnbTF4WS9qbVFyd05RcGhrRVVOYnJoS2cvZVFnY3FPQUxjSEZqL3A4RGFLZXIKeU53dUZnRG9KYnUwVmZhWkd4eXJYbk51TUFUUVI5VDJqMmtkNEJZd0NOemRSMjdaNWRHMHhhM0IyclhPd3ZXSW1SdWMrS1E3TGFYSgoxS3ZXeXJ0bHJXZnJXa3JEWm1yYmg5NUhITmhwQUVBUlFaeGZENkFRZncrT3IvczN0TEJ0WHVYRzNuV21udlhtYmszZzFzVHppTGxICnM2VkhpNWwzdmFsWDNSYTNxay9ka2c5NitkSThXVG9BMFhVQUVwWkVCcGZIaDVRbmhnQUFnU3dGVUYxYXBCNUFoMU1pY0FDVnhJa0sKRTBXSm9UNWhmbFR3UWs2amUzaFF5WUZSTVlWMXpjMm5SMEZhdjRQOTBZM2ZUUnc1TmQ1NDlscjdUMU9HdStVTmkwQ0wyb0QwQnZxUAo2R2ZBQUVDR3hSNllCZjEwank1a2ZMSmJWLzdCMDNVSkJ0Q25TNWZPaVd0RHQrNE5YYjNaUFhHbDZkWmM4ZWhNWEhWbnNGOUFwbEJRCkZDWXFqUWd1RFBVckRQY3ZqZ29wamduUGovb0ZBSVg1c3dBc0FJQUFlcDRBRU5lTnlRWUE4ckpoaVQ3bFZ1d1FITVVCdE4vLzZNSUkKUkFpZ1hkeW5NT2lwQURKNEdUNzJKcmNUQU1pR3luQlpBSkFIemZHcEFISW0yaEFJZGc3Tzh3Q3FFUGdnekhDdE1BSUxpOVhHcHNOTgpXS2s1QUN2QVFFaHVLWFJNWHFVcXZ3eXJiaEw4NVJ2QW41ZGZXZmFDMGZOR3p6OFBLZlR5aTBZdkdBVjkvaWRsWFN1V1Y0WGxWNm9MCnl1RldyOXdLT05od1FUOUFWUGpSRnBxVVBFQWZKREY3b2RrNURiYjdSQ1NpWVlsb1NBS2dqekl3QnFlUHlpOUtLWXhVK2tVcGdtSm0KL2NQdmNnTWxmdUV5VWVUZGdKREp3T0JIdlBCWlFjUURmdmd0YnVCMVFkQ2s3clF2UFlDQWZwWUNTTDhGREFmUWRGUVVBTkIwWE95ZAoxS1Jwb0ovTVJLQ2Z5ZHlVcWZ6ays4VVprUWsxcjNHUDcyVU43ZUYxN3VHYzJNbnJlOU9uZng4UDlnTTk3WnYvZUY3aTRnZ0czNEN0CjY4ZmU0UGQrenNteFliQUFnRHgwUjhFL0ZVQVVIeEtMNDBybk9aSFpwTGlneEtuR0dXVXpwdXBDMWIxYXRGK0xEbW9BZzVEanFPcUUKV25VS1VaMVJJMmNSOWZjb2NsNkQvS2pGSmFUU0JUdVB5WWN4YkZ5akxQcE85Z1pYdlllQ2ZjQlNmVVNiK1ppbC9ZaXQvcGlwZkllRwpiV2RLdmF0dmZxZStleHk3MDYrK080QUFCdDBkVXQ4WlZOMFpSS2I2TlZNNGdIbzFlZ0RoK3JuVWkxN3VSSy8wWWhmYjFXUDkyTmdRCmRxRmJkL1JwandKSTZNbnlqM3JrUERyMkl6bzZqQUQ5akkycXg4WUFmWkRSQ2ZYSUpaalJFY1hsbTFqcGtHcWpjODF5dDZiVlhnMFcKNUNaanp6YncyeDBlOERzZWlEVzVIV1F0cFVPZmRWU0FvYzcxdEs2RnpLdG9VZlRpd2U4Q1ArR3hKSGV1SlRkWmtNR3ZzcmtrUDA3dwpxWll3VENOV1NOSVU4aXpGdklHSzVTQnlrQ0taTEc5T1ZxbEFEeXUxQlhQeWJLVXlDOU9reUtScE03TnBVbm15VkpZb2xjYkxwUEZ5ClJheGNIaVdUUlVpZ2U4TGd5dGQ4N1NkSUlnbVF5RUNlb1o4bkFBVDBvd2NRNzVHQ01mZUFPNnY2SU9Qb2FvZWlWUTVGeHM0bEpvNWwKWnFUQzVTN2xWczZsMzdEOUEwVmVVUUVzc1lqOHZ3QVFDQURRWCtuQ0xTNEpLeHlMZER2Ym53QVFqcDVmQmhDKzQxdG5JR01idU9mSgptbEFNcDk0c0FSREFBQURRbW9QZ2s2ZXV0RTllU1VqZjdSTGg2YzhQQzZIb0FSUVhEb3RBZWdEQi9Hb0FNVGowbndIUVFZcmdYWmY0CjlZNmxBQjZiN1BNMk9CU3VkeWpmUkNoZjUxQnNiVitJUjYrZjlYYjVSbXRzc2tETWJMTG5HNlR0Q3ExMFdYOG9mNjFOcnJWdHRwbE4KcHZIQkZCMkFZSFQ2Z1FBeVBaQnRkakRId2lZUFBIaWRYZEVHWXVsV1VzVnJybkQ5YTYvSEVSeEEyNXdyMTlxWEF1Z1lIOGpTdFFGbApnQXVUYjdQMUFMS0dBSXI5azRmUW5rYlJBY2p0dndLZzZPVjI2Uy9acDZ5MHl6QUUwRHZrRm9DZVR5anRuMUk3d08zSDVMWVB5SzF2CmVqYnZkVy9hNGx4blRhd3hkenBzNWd6Nzh5M2NhaTNkR2t3OERsdDRObGw3TkZsUmpvQmZhOTd4T21MSHpnenhZd0VBeFFieGZpV0EKUXYyOHVBTFh2OUVEdHJzWGdVOW83bDVuN2RKaTVWRm42bDVyNmRKbzVkcGc1bkhFeFAzSVJwZnFqMXpULys0WmhBT0lSbU1BQUNVRworQUlBbGNVRkF3QWRUZ2pEQVZTWEVyRmdvSjhEVUlhWWx4Yk9qUkhSQTNodUxBYUpRbmVIQXhVWTlLRDR0SUw2OW80ekY5dS9HMms0CmNSRVlxT25jMVNPbkx1RmI1WmN5eUxBdDJ0QkEvNmtLVU4vd0xaQ25jR2Y0SnN6QzNhNngrWFNQdzNSTzNNSUIxTG1RN3ZGTDNaZkcKZWk2UHR0MjRsL1NkOUVEU3lXOFpxVEZCb1hraHZzWFJvbHl4WDBhb29EQTJ1Q2c2SkM4c3FEQWk5T2NCRk9ySFhBUWdBV3lDOXZMaAplREo4bkwwWnJyWk0vMC9aeGJ2QUM2b09RTHIxcjc1ZFhCZ2NRSGlld3FDRnR0eEZlWU0zOUNhdi9iYytHVFpVR2c0Z1o5bzhnUEJCCmlJc0FaTzlnNStnQ2w4Q0VBa3FKZ0tWa2hHcDRZVmhRbERZcUdaNjFucFN0U2N1RkJadXNFbTEyS1d6ZkthclNsaDQ1OE1aK0lKOFgKWDFrRyszNmVCL1I1L3JrWGpGWWFHWjFnaHlpcmptQ1pKVmhPcVRLbkJNMHBCeDhGUHpaemZwOFhuRzJvRys2TUplVnFFckp4K21paQpValg0VnErd2VDUTRIZzJLbTZlUGZ6UjBqekJTN2hzaEY0Z2YrSWJkRTBWQzMvQkZFbTd3RENkSTZpOSt5QXA5UkErWlpZYk04TUluCithTHJ2aUk0N0ljZmhOTm5FWUR1QmtYY0RwNmZBSFE3UEZKZi9wbU9qWmxPaUx1YmxudzdNMmtxSzJrcUx4Vmt1aURsZm1sbWVtck4KTHM3Z0h0YXgzZnh1QUtEZHZONzlyTDU5M0dlT0oxajZqT0FCVHlzRUVPL0VQbDdmWit6Y2d3eW1HODNlblU1NEZvQ29iR2NBSUJvWApIaE9XR3BvK1hTK1JIOEdVclJwMU80WjJZV2d2aHZaajZDQ21IdEtneDdUb0NRMXlDb1U1bzBIUFliclZNUzJJR3R4K2p5bk93dUtRCjVvSmM2MTRtMitXajJVbEYzbWRqNzFDeHozMGtlNTNsT3p3bDdnWFREVGZtVG1FUCs3QzcvZGpkQVExd0Q2NmY2UUVVQjlDdG5vWHkKVDQ4RzE4OUVEekxSbzVub1VsL3V4WVk3ME9FdWJLUVgrNmtUR2U1VmovU3Bob2VRa2FQSTZBbk55Q2wwb2Z5RGpQK2swZXRuZkVLTgo2MmYwTWpKeVNUVThvYng4RGV2NkFkdFBybC91MnJEY3M4SEVzOEhZdmNYY285WENzODBDU3FnZHhNcTdBdzh1SVQyR2NBYUJHTnBvCnFaUDBEOUIvT1B4c1hnMXJQSnZmOXM0bStiTDlCK3FDTk9wZ3RTUkpKa3VSeVRQbHlseTVva0NxaTB5ZUw1VlZLTENDUjhyY1I0cDgKR1pveEkwOTdLTTJWSVRsekt0anVJNU9EQVBwRXk1V1Jja1c0VEI0R3F6N1NZQm1zK3VDRkgwQWZIRGZQQXBCd2JuWXBnSGd6RXU1RApPVWN1WmQ1VjdRNXJNN0dEZlRsbXJtVnJITXZNaVFYTFNXVldwS0p2T0g0NkFERUFnTUtDbjNrYS9LOEVFQURXYXNmYzVjUjhmUCtYCm1YMnhwVjJ4bGUxOHdEV09vYVVBTW5Zc2dISElON2JMTmJHRmU1NEFnTlk1bHVMclh6aUExam1VV052cjlwSFo1Sy81dHNqVUptV2wKZmRwS1F2Wk9rdGpkVHhBZVNvME80UUlBUllmeG5nVWdvSjlGQUFvSjRBTUErZXNPUXhYNHNuRUFVWmprWndISWx1THp2a3ZNUm9lUwpEWVN5emZhRkd3akZHNG1WV3h6TE56b0JxNVZ0Z24vaDBzMk94U0NiSElwQWpJeS9UVFU1a0daNktBTVl5TkkySDljUDdHYUNDMXM1ClpyYnBxMjJUVnh4S0JBQUNXZlZ0Q2c2Z05kOUNBSmtmeWdVZkF2U3ozcjRZL0FHTEFMVEQ3ZkJXcDNJTGU3ait0ZkpnK25LZ3FFT3AKS3c2a3dlN3BnemttaDlKTkQrWmFIY3plYXhmM0IzZWhIWlhzelBodkFHaVhXL0NUQUtyUUFhaitMVExzQVRJRUVORFBlOTR0YjNzMAo3M1Z0M09wMFpKM0RZUXRDbGFsamxibFROWWlaVSsxcWx6SlRIWWJNUENzdFBldmY4RGg4a0FVQkpBNWtBd0RGQlhFU2c3aS9Ca0I4Clg5ZC8wQVhiM2JMTlhTdlh1ZFJ0SnJWdWNtOVk2MWEzM3JscEk2bkIwclhXM0tWMm8xUHRlODdaMzNpRVVUMThhR1EyQkJDVEJRQlUKTEE0QkFLcUF1OENlQXFENlZERU9JTGordFFDZzhzUlFBS0RjYVAvTVNOL29ZS2FRN3dhYkVqZ2VkSmFYTjhYRGxVcnhZTEtDWXhNcgoyM3E3em82MG5SNXRQRGtNME5OOFpnTGZNcVkzMER5RHZyL1dkZjc2VWdZdEhRdTBGRGUvSm9aTFhZLzFBOFF6OGxUOVRBTDZQSTRoCmdDYXU5VTNkcTdrMHhhMC85NmxvNEUxV0Q5RzNQREZZbkI0bXlJcnd5NDRPeUk0S3lvMFdGVVNHRkVhRWxFWStzd0lFZ2dOSXlDTUQKQVBINDN2NENLZ1FRMXdQdUF1TjRNMW5PRkFiSmxzSDl6Q2NmRU9kMVlkOCt2MzdkK2xmdlRnN2NBbVlJb0tVR3dnRzAxRURnVmZZdApidXR2ZmRKd0FPa21RVHNEQU9HbndSdnVBc01CWk9zNER5QytnSnp2eTV4akJDdTR3VnAvc1NZOEhoZ0lUaUJNaGdhQy9Ub1p4Y0F4CldGNkZPcS95NHczcjRPRG5GNTQzZXU2RkZTOHROM3JPNkFVam96OWFiNUpubHNNU1VXWXhsbG1reWl6QzBvdmhtcGR1Mld2K1hBdlkKOFROL3B1bjhzbGRrQ2dvTFAvRm9TSnhhRklPdmVRSDM0UFNSK1VWS2hSRzZoRTl4L0lGZ0h2cEZBdTVvMk5Fb0oxck9qMzBRbkRqRApqNTZqaDByWjRROTh4YmY4UWlhRkl2RElad0VJNkdjUmdLWmlvbS9IeFU0bHhkOUpUNTdPVElMclgzbXBrd1ZwVTRXcDk4cXk4dE1xCmQ3SDdkdmtjZTAzUXU0dDNiQmUvK3cxVzl4N3UwQlBQeGE4QTBDNSs3MTd3U041SmNBdWU4WU4wbjU4SEVLQVBVd2NnVHdZcExUVHIKMXVHNXVVcE1XbzhvR3pUS1pvMjZUWXQwYXRFdURkS0RhdnEwbWdHOElJUkxTSXVleG9DRWtMTmFFQ2xrRUtZNHBaVGV4TkFqMTJZUAo1dDdldzUvYVJyKzl5K3YrRG85cmI5RnYyNmZmckJxYnVJQTk2c1h1ZDhDT0gxMmdnVzRiQU9oNmo2NzN1VWR6dFZ0WCsrbEd4cnRSCmtJbGU3WGdQTnR5bHZkaXArYWtUQlFDNjBLY2VPd3FYdy9EeXoraHBaUGlzZXZSNzlkaVB5UGhGelpodTVXdHNYQVgwTTNZSkFmb1oKdmF3ZXVhSytjRTA1ZmdXMkFYMHA2RnhPcW4zRm8zNlYyeEVUNXlZejl4WThpeVQwSklZNjhheWxkT2xsOHpQQmkwbnpoU1d2VGl0eQprNmxYQ3dDUUM5K0gwMWJ1cDFBRXFLV1JVbW1NVEpZZ2w2Vko1Umt5UlpaVUJydWJKZEswT1VYQ3JEUlpya3hWcXRPa3lreVpPbFd1CmlwNlppNUxKSXVVd3dEMGdvVEpacUV3ZUxKTUZTcVdCc09OSG9ndTBEajdsK2FuNndRR2tNeERjLzZYVHp4d09JUFpEQ1UrcGRCcSsKdTU1NTJNS3UzSnhZYk81U2F1NVlidTZVdDhLcEdBRG9yMnpoZndSQW01M2psenNVNmdHRTcvK3lXQURRV3IyQmxnQUk3d0V5Y1N3QQp3VStUQVBxeHRDdUV6Y1VPSmNBOUlMaUIxanVXNm90QVpvZUtJQjRJV2FzSWVUdUlVVzVDUVZnb1BTcVUvU3dBNGRkNkFNV0VDUUdBCklrUUNmQmVZSGtCY0Fldm5BV1JQcFgvb0dnbDlReWpmWWwrNENmd05kUUFDT0FGNTFibHltM1BsZHBjS2tOZEk1U0JHeGdlU1RRNm0KckRtWURvdEFOckM1Q1JySXR0ak1Mc2ZFTG5PbFRjb3JOZ25MRHNVdlA1Z0E5TFA2bjJrNi9Ud0drTFVOQk5BR1Fza2lBSUdBNnkzRQpNdkFkWEdXVCtjcWgxR1UyeVRDQVFRZlRWeDNNQWdCYWN3Z0NhTGQ5d2gvYy9lMG9GQUFnUUp6L2V3Q0pMT3hqNWdGa253WUI1RklICkFJVHZBdnVRMG9ZdmdYMUliWCtQMnZZT3RmVnQ3OWJYM1pxMk9kV3RKeHkydEs4MHQ2KzBjS2kwZHFneUkxU3VBaUltbHBnUVMxYTUKRkppNFZPNXhLZnNuTXoxWXlQeVhBU1IwK2llRHU4TTEzY3E1YkJPcFlhZFQrMDYzaHEzdWpkdWRtN2M1TjJ4MHJyRWcxV3h3cUhuUApNZWRyMTRoNUFGRlpFRUQrZmpvQWhlb0JWSnNVamdOSUZ6RU9vTm9VWFFPUURrRFZ5ZUo1QUVYNXBVYnd3NEo5T0FKdktzZWR6dkZpCnNyMFlESGNHMDR0QzkzUW5lM2l6MkdFSktSVXR2ZTJuaCtGT3NkUGpoZ2JTRDA1c1AzdWw0OXhWdUdYc3llM3gvNmwrb0tmcloreUoKYTV3K1VEOEdBT3BZQ05CUCsrWEp0dXNQTXMvZkl4YWUzeS9vMk9IVC95Ry9qeVRJamZmM3p4VEQ1RVNJUVBJamdzdGlJOHJqeElYaApnVDhQb0JBaHd4QkEvanl5TDgrVHk2WDRzQ2tzSHhjYTA0bkFaSC91azd1YjA0Y0RTTGYrOVhRQUxUS1FIa0NMRExTUE4vQVdyeGtICmtDdlpGZ0RJaGU3aVRTUGlBUEtpT25xREN3TUEyVGpZT2pnVDNLaE80RDlDaGkvOURpTndsaDJvOGc5VEIwZWpZWEdhcUdRMElRMmUKUWdyZ2twb1B0MnRsRkt2VFN2WmJta0lBUFdmMC9Bc3Z3VGFnNTR4V0d4bVZmdXVDRmRiQVlZWlpCZHIwUElBZUxMVVlUUytDQzE2NgpOUzhON1BpQjR3MjF1aFBkZ1g1Z3MzTjRQQklhaHdUSElrSFI2c0JJUlVDMDNEOUs3eDZKWDhTY1VEenJHejRqQ0g3Z0YzclhMMnlhCkhpVGp4Y3o2SlhVNFVxTysvS2Jlblh6WlAySldFUE9RRVhLWEEvUVRjc2MvNUw1d2Z2RUxCTjhEYndpZ2FXQWczUVo0ZmZzekFOQjAKY3NMZGpKVHA3T1JiT2NtMzhpR0Fwb3ZTQUlDSzAwdDMrM1R0WUI5N1ZkajdHdmZvYmtIUFBsYjNidTZ4UlI3Vk0yZ3BmUllBQk5qVQpEd0FFbnE5UDJJVTRnRndaZHM4RUVNK1p3WGFoODV5OW1NN3BJVG5YeW1jZWxXaG5xbFNTYXBXc0JsSFVvNm9tVk5XcVFkbzFtazZOCnBsdUxES0Rvb0FZdkNBRUpxVTlnNnBNYUVHeEloWjNTb0VQcW1kTWE2UWltcmJuN01QV0hPMkg5dDFrdER4bk5rcmh6OHVhNWU0UFkKeENCMm8xL3pvRWMxM1l2ZDdzZGczODhBcXRNUE10bUgzdXpUUVAxMG8wQS9WN29Rdlg3R3VwQ0xYZWh3dDJhOEh4c2IwSXowSVNPRAptdUZCellWQjdmQXhBQ0ExWHY3UnJYK3B4MzlDSjBaUVhEODRnUFQ2QVRsN1F6RjJWZkhUVmV4UTVJbVhIU29BZ0ZhVGpwZ1JHNDFkCm0vQ1l1RFd2Y1c4Qk1mVm9OVjNBME5MaWtKNUhpNkxYRW43MzhZZDd0RnQ0TlpoNHQ3M25uZWZpdzZKVjUvamNmeUNRUFJMSzVnSVYKYzJFS2FaUkNIcWRReE1zaGh1SmwwbGlsTWxZdVQwVTFNYk9TYUNsOHIvK2orekVZQ3VzOWN1aWVFRjJ4UjZSekR3Z2M4YXlMNGRsZQpncm1uNjBjUElIenJPdzRnb0I4UXppTXBSNjc4Yy9mRjFjNEZHeHdQV3hKTHpKMUxMSjJxTFloNUs0bkYxc1RDYjN5RWdjRWVBRUFSCndaVHdrQ2ZtQVAxNkFIMU44d1VBZW9WUXNKSlF1QWhBNExWK25WMEp5T002MEFLQTlMdkFWaEN5VGV6ejFoRHlnWDRzQ1lWVzlrWFcKOXJEcUFWNzNOeERLOUFhQ0MwKzZJaENzb2RpVldST3l6WWk1SnNTaW5VNnhyZ0xmMEJCYVpJalBzNWJBbGdJb0trVDR2d0NRSTQzNgpzWnY0VldMUlpvY0tBS0NOaEdMZEVsanBac2RTb0pGWFNSVzZmVm93dTF5clFJeU1ENmFBNEJVZzNhRG9lUUN0SWVTdXRNdFlacHY0Cm9rM2N5ellRUUt2L21XTDhQMms2L1dUZzYxK1dCM1BYMmhiZzM0aW5BZ2o4cWNaMjJTdHMweUY5N0pKZ2RBWmFlU2hqQVVDNU9nQUYKL3RjQXROczlXQWVnMUVVQWV0ZHJIa0N3QVlqVzhRRzk0ejE2K3p2MHRuZkliVzk0dEd3bjFRTUFXZGxWNmxJQlltcFh0c0l1WjZWOQoza3JiM0ZjY01sY1NTM2M2RmYrRG52cS9BSkRBai9RdGc3M1RKZFdhVkxiTnFmRjFZc2MrMTZaZEhpMjdYVnAzT1RWdUp0VllPZFp1CnRLOTkxeUgzL3prL0FhQUVQK0VDZ01MK1ZRQmxpUVhKWWtGb0dJOGJ3UFRtZW51d1hHa01GNDZQTzRmcHhxUzdVR251WGpSdloyK0sKQjRzZmxweFQydEtuMnhUMjJFQ1BHZlRkWldBZ2ZSMW9hVXZRdjFrSFdncWdlZkVZWWtpdm4vSEpqdkdiaXdEVWRna210dS9IUDBSMQpibVVON3ZRYjN1Vjc1bU4rSXprd0l5M0FOemM4S0RjMHNDQlVWQndXVWhJZUNyNmZoUkdpZ29objdnTFRBOGdYL1BON0VrQThIang2CmtPUGpTbWNSSFZnK1g3QnpEQUcwaTl1REEyaVJmbjQxZ1ByZTVEWjl3VXEycFZJTUFPUmtDQ0F2c29NZVFJY0lOa1FTQkJDYjc1VXEKb042aSs5OW4rOHQ4ZzRGRmtKQVlKRElCaVUxUkoyUWd5VmxvY2k1QURKWmVyRTR0M21leHhtajVjN0QxeCtqNVY2Q0NYdHhsc1VZYQpWNnpNS2NmU2lsUlplZXEwSExqRlBha1FkanJqemM0Ni9lQm5tcUp3dm5PNkppcFZMVTVTaGNYaHc1MVZBUkVxUHpHdUg0bXZHTGdICkR4endJd2liNVFZOTVJbnVjWU5uQlZIMy9STFMvL2p0bHVmZzhXT3ZHUm5sZjJ0N0p5anVFUy9pTGk4VXR2NElSZmY0b2tVQXdodUEKY0FEcEp3QVpBdWgyU3VMdEJRQUIvVXdXcFU4VnA5MHZ6eTVOTFFJQTJzNDV0c1d2ZHp2djZDNWg5ejU0WFBuUnBUVTVQRXZwc3dSQQpRNS80RkIya3MzOFJRSFFmWndiZmhjeDBTd3ZPdlZyODZINkI1a0daNG1HWmZMWlNJVDJzbGg5Ukt4c1JkVE9LdHFMYWRxMjZGMFg2Ck5EaURrS05hOVRFTmlQS1lCanVxbURvalY1N0hsSjJxaDJjeHRGOTc3M3ZzM2ptdGJCQWIreDY3MW8vZDdjVHV0R0IzNmpCWTR4bVkKbWV6V1R2YWd1azN2YWp3MzROWjNGT2puMm9KK0pycm05VFBhaFZ6b3hjNjNLWC9xVW96MHFYN3FsZi9Vcjd3NGhGMDRpZzBmVStrQQpwQjQ1b3hvNXB4cjlRVDEyUVFlZ01hVUJnR0J3QUoyNktaMjRyaGk3aWJrbG4zL0p0blFlUUk3MXE1d2JRT0RXTUJlSUljQWdQR1p1CnJTRG03bTE0b0dQd0dNQm9LWklNOVdQdTBRcGk2dHF5eHFQTzJLdjFYYTljSnhyTnZTQ0Zjdk1XKytFZGxtS0dvNWdWS2lRaWxUUk0KS1JNclFDVGg4cmx3T2R6Wm52UlFrdmhJRWdtZ281SUdxcVFCOHRrUXVRd0VYKzJDUGM1emN5QUJFdG04ZnFSemV2M3dKVEwrd2tMWQpFdjFJbmdVZzdxeUVPU3QvdjNMb1padk16VTUxYTRrbHBrNUZWc1JxSzhkNUFQMlY1UnNnY3RjQnlQdmZBZEFtVWh3T29GVU9PYTg0CjV1a0JaSzNURDRoaEVVaS9DOHpZSm1lbFhkWnllOTBBUDl0Y0Mvc0NLd0tzL2NBMUgvc1NrUFgycGJpQjRFWXdZcGtlUU9zZEt0Y1QKODZ5Y2k4MmN5M2M1eGVNQWlnaG1QYXNKR3VvblhQanZBOGlKVHZuTVBSd0FhQ3VoWXF0dDhRYjdJbDBUZFBGNnUwSndEVUN5alFnTApQemlBOXJoVkc2MCtrR3A4TU0za0VOeWdqbThTczhCblFkcm5tdHBtcnJaSmhldGZoeEpYSGt3R2oxeDlJTjM0Mjh6Vi80UVZJQXNiCk9QdG5IV3dBZ2l0dFc1d3F0cEdxd09mZDYzNTRuMmZ0WG84YWNCZDhtMVk2SkMyM2g5dkhnS1dXMnlZQmM2d2lwSyt5ejF4clc3alcKdm55VFE4aytZdEx2M0FRMkZHOVhocnM3dzhPZDRRWUNYbzlCZEZNUVhSY0dJWkowZ3hCZFhjRERkQUNpYzhnK1hPcXpBTVRqZTNJRQozZ3krRjB2Z3dlSTUwWGxPWGp4UE83cm5mamVSdVVQVXk0VFVGWGJKYTJ6U0xKM0tON3ZXditIWk1BOGdXdHRIOVBhUGFlMGZVZHMrCm9yWjhwRHZrYTc5bjh3Nlh4bzJFdzlhMjFXdnREcSt6clZ4N3NCejhFMWxoay9PeWZUcjQwbDYyU1Y5dWw3K1ZtUE5IV3FaUUNLY1gKeEFYNXhBZXk0a1Q4MkJEZnhCQitldWo4UVdENjB6QndBRVVIMGtXQm5yNENOMGNHZTc5ei9GcEM5VlpTMng2WHByM3VUZnM4NnZhNwp0KzkxYVh2TnVRSDh4OWhtWDd1ZlVQQzVjNUtMTzRkQzRUUElMQUdkRVJmb214OGRYQjRqcW80WFBRdEE0T0pJYWdRd0VMNE52aklaCjlnQVZ4WXV5bzN5QnljQy9TRjhoRmZ6V1NtRjVNbndvZEFZWmhNR2swT2plVk4zQll4U3FwemZaSGR5TmpNbzczSGFpOWZ6bHB1OG4KbW82ZjdUeDZ0dlBzcGVydkpsdk9YQU1BNnZwK3ZQUGN4ZTd2TC9hZUgrLzk0V3FQQVlZV3QwV1BUT3ZUTnp5bEQ4NGQvYnQ2Ui9XQgpqYzlQNGM3WXBjSHJVMTFqMXp0SGI4QzdvemZ4M3VlbUs1TXQ0emQ3eCs0ZUhYL1VQWGE5ZmZKRzRjUTljdlhvSHNIUVBsN1BYbjdmClR0OFRyL21lK3BUZlJCYW1wQVlKczBNRGNzSUM4K0NwRjhFRmtTSDZnTHZnallBK3VINHl3d0xTUXZ3QWJ4T0NCZEVCbkNCZkdvL2oKQ1FBazRIa0g4Q2tCWExLdmJoWE1oK2RKNFhsUldLNnVETm9mMmFtd3J1QS90RmM0c0l2ZnY1UFhCOFB0QjluQitSa0c0WTNTajdPSApQd0QzejNQUGZzQ3UrWm9aYWsvekpsR0p6blJIVnliUnpRZnVBdk9rRTcxcERwNFVlN2dOM2hNQXlON1J3ZVlRa1dUcjdrQW1FNFVjCmp3US9uNk5zNFN3OWNGWVFvUEFOVi9sRnFFVXhtdkFFTkRJSmpVdlZKS1pya2pPeDVDeHBYc20zTzNhdmhBV2dsNTkvYVFWZ3lITXYKUE45QXNKZWs1bUtaRmRya0lpdzVCNHROeGxLejVDbVpXQkljOEFNSXBVaElCMUVucEduaTA3QzRkQ3cyQzR2S3dFSlRzS0I0YldBYwo2aCtsOW9kSFc4ajhvcVhDcURuZnlGbEJCTWhEZ2ZnQlAvdytMK3l1SU9RK0wrUWhLeFRoSlNYWUVvMldBZnc4LzZMUnkwYlBQMmY1CjBrc2RiRCtOVDhROVFkQlZnZC9Od0pDSDNMRGJUM1pBM3c0U1R3ZUpiNHNpcGtMRmVLYkRJbTZKeFRlakltL0d4OXhLaXJ1ZW5qS1oKbm5BM08yRTZML1ZxZnViVjRyekpzcXlIRldtNWFSVmJtSDFiaGNmM2NGcDI4STd0NC9TL3p1M2R6bis2Zm40dW5MNjluSjdkM0NIdwpESDdFS3YrV0puU2pPbm95YkQyWlRsNHNFcTRmL0JoVW9CODYxNTNPOFdCeTNLazhvZ2VEbUJhYTgxUFc1SFF1Y2oxdjVuYlI3TjBTCnlZTnl5Q0I0NGxRdHFxN0gwRVlNYWRFZzdSalNDU1NrVmZkckZBT0liRkF0R1ZUSkJoSHBvRVl5Z000T2FHYjYwUWQ5bXZ1OTJudDkKMnR1OTJIUVBOdG1sdWRtdXVkcUt3clJvcnJkaE56cVFXMTJhcVI1c3VoZWI3TVZ1OVdodmRtdEFyblRCWE9yV1RIUnB4em8xb3gzbwpjQWR5c1IyQnQ3QUloRnpzZ2QwL0Yvc1JYZmNQSEg2SXR6L2ozVDlqK002dkVkWElBbjNHcmlEL243bTdnR3Z6NnZ2SHo3WjZLVlozCjkyM3RmUGR1Zlo3YjVtdUx4QU9CUU53VkNNSGQzYTFZcVNIRnRUNnJJUldLUTRKcnNDSmRmK2RjRjZRTTJzbjliUGYvdjlmbmxWMEoKYVFvSnpmWE9PZC92T1krYXB4KzJ6anhzblFLNXBaNnViWnFzNjMwbVNyaXZiNUpvUUVyVEoyVHBrelBYbUovVHN6aXZUN21nUjhsQwpnMHJJa0pvTFk1bGphSG5KQUY1RnhvZG9oWHJXZWZvMjRLQUFCQnhvajdWVUF1aEI1OVRRUjloQU9tZEF5VjFKeXpyS2pLZHk1VndmCkFiK213cnozaWFCZkxlenZFZzcxQ1VhR3hhTVRDczI0Qzh5SS9jU1lZamFqSU1yeFVlVUVIQ3V5Rysrekd4K0FHUnV5SFIrU2p3M0QKakdwa28wT3lrV0haQ0hTUDdjZzRFbFJDRTdZalR4UWpFdzRqRTQ2YUNhZkJjUmVZVWZ1aFNYQ0wvZkN3dUs5WE9qeG9PelltR2g0UwpEQTZ3WnZvWkRjTzcrYm1iaVJlQWV3emd0RmNHK0xDOXh1SzBQakZwSFRIQ1dDQnljYUk1Ty9KOWxTdzNGNWFYTXcvSmMvMTRPZ3BCCmdINWV1QkNpV0VwblMvaWZNWlU3U1VGNjZIckZ1TVMxaERUZ25vM3pSbjNRZ0Z2UUtUQll5SXlOQnlSWWc0dGNnUTFkamd0ZGlRbGYKaFlWOTAzckVCTGdLSWg1aEV5WjFDelp0RzM2MkRBZ05NQkFFRURsak0rWENEa3JhTGtyeTYvUTRrdGpGVThueGR1SDV1RWg4WFdlbgp3TkM2bjlrRytKZU1BTTB2Z2tZQnhKZnc1aFpDWk1LRkVQa01aRGQ0NEFjV2hjK2lzTVQvcERydEpnV3VOMC9hUUVyY2dJbmVoQU9rClNUYkN3UTFRTitNVHRoR1NabXVBeUtlM2trOC9CeEE2QXFTdGd3YjNCZ0RTTlFzRitsbHBHb2dDU004WUFrai9WSlNoQ1N3WVFnRzAKQlorc0JSQlFsUlpBZXlsbnR4RlRkUWxocS9HaHV0Z3dFRDE4bEFFeHhvQVFaMGlNMzB3OERldTBpU2xIU1VIL1E3WERzSmhVdnMxLwpIMERyeUdrb2dONm1YWm9QSU1SQStYL2d3R1dCanRIekQxcm1iaWVlQi9wQkFiVFJMQjBBZWFWWkRBRFFDbHpRY216a1NselNDd0hrCjcycjMwd0J5ZHFUYjJWTEpmQ0VDb0V3dGdONmdaUit6S1g2ZFduekE2dEl1eSt3OXhJdXZFeEwvU0FtaVVFVU1sb3lEQUNqUXdUYkoKR3dYUWJCSDB6d0lvSTlqdEZ3SUlaQlpBREJxSHc2SlRyUzA0RXBwSFRIRCszZnlxenFMdkgrZCtVM1ArOW9PY3J4dnlielhsMzIwbwp1dGRRWE5WWVZ0MWNXZDFTVWZWODc3QUZBSnFQbmdVQW1tK2orUUJDMjc1bURZVG9CK24yYWk5NTFGTDBvQVdnNTNKVEY5cjJWZnk0CnZiaXh1Nnh4b0tDMm9hemxRVVdYS3VKYkZTN2k5aHVDM1BrQUFnRUFZdHVIUkRyOWxnQ3lsZExtQStqZlFnaWdvL1pYRDl0ZUJmVFoKTDZtQUVWZUM3Qk5WSEJCWEhuZ1JnK1lLcFJjeWFCNkFhQkJBSEhNQUlDc0JYQWZvaFFEQ2tTeHdWQ0tEUlphS3JYM3QrQlVpdXg2TwovWkJZTVNwMUdiZHpuM0R3bW5MeGc3TlVua0Z3WFdiL3NHYytvUk1SOFlGbVJMZ0p4b3BYQVVQVzZPaVlIVHcyRVJUMkxEcGwyaS8rCmlWZlVzd0RnbTJBQW5abmcyQ2x3ZTBEWU03L3daejRSejN3am52bEhUUVpGamdTRmovZ0VhendEeDF6OUo1emgvTmVrSTJ4MEg3QjEKQVFEUzZtZEk1Z0VBQlBUVEszSHRsYmwwOEpVYXNYY2QyL0ZEL2JVNnI4SDV0Nld2cm56MTFTVXJkWFE4UHZ0cVN1STFZTytpbGp1MAoyVHYyeWQzbnQ0QjFLbDhNSUxXbnA4ckhHd0JJSFJMUUdoblJFUm5TRmVYZkVSZmNuaFRWZWpwYW5STGVueDRTRm5JV0FHaVA3YzFECm9nSVVRSWNsbC9kSkY3OGNQeHNBb01xRDRxc0hmeG1BT0hEN0ZCdXUzSUl1SVBzclErOUd0clJHalRiR0RhZ1RCanFUaGhZWTZFblcKRDA5eXB5Y3V6VHdwZVBxazVPbEUyY3hZK2RSb3haU204c25JNWVuaHlobVF3Y3FuQXhVenZlVlBlOHBtdXN0bmdINDZ5bjVRRmYvUQpXakRkbEQvZGVHbTZLUTh4VU5GVWU4bU1HbndKb1U5YjZReEljK2swMEU5anlRK1BTNTdXRmM4OExKcCtDT2tERERSVFcvSWNRTFdWClB3TFF2TzczNXdDQytua1JnTzUxUElVQTZ2bEJrdlRRME9TMGtYbUdBVDVMajVpaFJ6cXJUejVuWUg3ZXdQeWlIaEo5aXl4QUZnT3IKSEVRL2FDQ0FqTkFKTXVRQThVMmVOdkFXcXp3a3FKbHl3SU1BVjRHc0k1NHhvR1N2cEdRZW9rWllDR3k1TGd4dWFZWk54eUN0cTUzVgpxZWIxZFBINit6ajlmZnlCZnVIQWdHUm9RRGFtQVFHeW1TWE8yTER0dUFhaVo2d2ZqWHhzRU1uc1Y2WHpBRFJuSUFnZ3g4Rmg1ZEN3ClVxT3gwd3hMUm9ZRW80UDhzU0greEloa2JGdzJPaTRlMHRpTlR0b05UNGg3UitTREV5QzhpWkZQQ21yV1U5TTM0TTZ1SmNHOXhxRjcKY0ttcnlVbDZCQ0NWOE44S1FMdkl3ZnI0aEhWSUd4UUEwQUw2ekovL21nOGdYV3dFQU5BeWJNZ0tUQWd3MEdwa2ZXZEQ4RGpZeEkyWQo1RTFtS1FCQTJ3bXpqV0R6QVFTcm9Va1oyOHhUdGxPU2pqSUFnTndBZ01CM1BoOUFzeU5BdnkyQTJQeS8yeWgyRW4zWGttS01pTEZyCk1SSHJzTkg2MlBqNUFOcE9UQWFYVzVDbGdHWUJCSHV5MENrd1BKd0NnOTg5SHZuNXpVTFI1cTlWSnNISThFOEUwQStJa1drc2dDU2cKRHdxZ2JjUVVBQ0FnbmtQVXN3QkFSMjNPQXdEdHN6eTNnNXkrRmgrSFpqMHhZUU14ZVNQcE5KSVVnSy9OcFBSdGhOT0hDRUYvczdSSApBV1REcC8zM0FiVGRNdXQxbSt6RkFBTDZBWG1QQ2N1QURsbGQya0c2Z0FKb0l3UlFtcUZwM0FwTXpBcDh4RXBzMEFvcytMVTR2WnNjCi95OTJ0SzJ0ekYwcDlWTUtmaUdBM0J3WjlyWlVjNEhnT01Wdkl5RjlwMFVlQU5CUjZpWFlsazh2UFdaZENqQzBuM3BwTHluckNDSHAKZllzUUVoV2NZMzhFb0ZRL3A4ekEzd3hBUUQvUEFjUmxzOWxNSnBNT0x2bDBhMk5yMFdGajIzMFlQMk9ud29CTGpUbjMxSmZ1UGJoNAo0MkgyZC9YWnQ1dXo3clRrM0duSnZ3dDNFeXU5WFQrL01ucitSTmhpK3FCWm9KL0t1aTQwRlk4N3RHdjh6Tk5QUjJWalY4bWo5cktHCnp2S21UcVRucTcyMFNWWFdyTDdjckxyUzFsMm1VbVcxTkhoVVZuL3FkZVV3cCtLUTZDWUtvS1B5eXlpQS9pelA1U2hDbzV6dGZ4WkEKUUQvekFSVGdKTk1DU0N5aExRWVFSMkxERVZoU2VheFBoQ0dIWkNWSDdLNGRrbDhCOU5rbkx0OHJMQWYwQVFFSEtJQzBXWFJhblkxMgpwT0dnNUx2M1JXYy81Ym1nQUxMOE9RQVI4T1lrS2l5UjVvdXQzTzBGZVNKWkM5dDJnQ2NmRURzT1NaMUhFUU05Y2ZJQkRKcDI5WC9xCkh2ak0xZmRaVUd5clovQS90MjUvVFVjSE1JaTAvNURLM2cvYytNdzMrcGwzM0EvZTBSTmVnZU9lL2o5NGhEenppUHNoT0d3cU9IdzgKTUdURUwyamNOL2dIbi9CbkhtSFBuRU1udlFMZy9KcEh3Qk5YdnpFbmI0M1NXK1BrTStyaWgrb0gwR2RRNm82Ty9RRDk5SWhkK2lYTwpBRUJqOWtFdWYvZ0hNdmdFSjk0QWdkRGxwei9mdXh2OFFlQ25mcmxUbTYxVEQ3SVFZdGZjR3REekFhUjJjWi9Wai9zc2dGU0JmZ2lBCndqcWlRenVpQXRTeEFSMUpZYXJUWVIwcElRQkF6bjduZC9LdjdKSGZPQ0FxM2llNWZsUlVma2o4bndEb2dMamlFSGdGSmRlQmdUN2cKcDUxaTIvNDBnTmdTQ0NCa0lVUUxWNm5udHhGMWowTDdIa1gxTlVYM3RNYjFxeEtIT2s5cit0TEdCakltaGpJbk5PY21SODVQalY2WQpIczJlSHNtYkhpbVlHU21hR1M2YUdTcWVHaXlkSGlpYjdpK2Q2aXVkNlMyWjdpNmQ2U3FaN2l5WlZwYytCZnBwSzV4cHlaOXB1RFJaCm56UFprRHNEMGx3dzFWbzAwMW9DNlBNRHVHd3BubWtzbWdacEtINWFYelR6Q0xnbmYrcCtBUkxFUUNpQWtPR2ZtUjhEYUhiclV3Q2cKaDlWVHN3QjZwTzM4bWdMNnFXdVpRUUgwb0cycXV1T0hoMDFQSG5VL2xTWFhHNXFrYkxESU5NSmVOTUNsNitIUDZCTXlEWWhuUWZTSgo1OUVZa0M0QUVobGFYRUFDUEpRTlRBTjhzNWFhdjhIcUVzaDZ5MXlRdFpZNUlFYVViQmp6QzJnTXllY055Sm1BVm1zSTZicjROQVBzCmFUak9oRXZkVHdvaVN1eEVjZ292MW9kVDMwRHFVbHQzZHJMVUhiek9EbVp2QjdXL3cyYWdoenVrNFEvM2d3ZzBBeURDRVJqUjZDQ0kKYkxRUGpYUnNBR1owYUY2ZUF3Z3hFRklNTkRvSVlqY0dJU1hWRElrMWcwaUcwYll2VWQrb2FBQXc2QWwvZUp5bEdXT09qdk82Ui9kNQpYZ1NmcFEzTjRFN3N1aFlKNE9PMEhpNStKU2xlRnhkdlJBaEJBZVNrRkNBQWdvWkFBVFNybjE4SklIUUV5QkNYc3M0c0NVNTFJYU0rCkMwYURYZ2lnNVdiQndFQXJzT0dyc0ZGcnNIRHZjL0FJRzAyVHR1TFNkeEF6dGMzd0tJRFFSakR3dHdCaGJEYVBQMkFkaFJPNWVEaHkKdk4wRXZ6ZUF6RG1jLzZYWmJpTjQ2QkZDOVFuaCtxWkIrcGlRMVdhUjh3RUU5WU5MZ0NORG1GZ2RSRDhSaG1hd0V4NnBBWnB0QkFNUwpRZ0FVdnRJNENHU1ZTU2c2LzJWZ0hBMnkxaXdPcFE4Yy9zRW5ieWVtN0xJNEE4UnpHTkdQRmtCQVJWdElxV2kybWFlRGJEVlAzMEpPCjIwUk0yVVJLV0U5STNvUk5QSWdQQmdEQ3NqbklDQkRVei8rSEFIcWZYYkFBUU8rellCa1FVTWd1ODZ6TitMT2JjSmtiTUJucnpGSU4KekdKUkFLM0dCcTNDeHVnVDB2ZVpKLytiRS9kQ0FJVzdpSDhDUUFvN2EzTWgvempGZXlNaGRSYzU1eEFsRndEb09QM1NPN1RTdDIzSwpYcWZsSDRSRlNKY080Rk9PazBPd1ZoSXFVODVoaW13NW5DQUhXWktQSXdSUUFDeUNCbGtNSUhBVkJSQzZFT0l2QUJBY0JJSUE0ckFBCmdEamdmOGgvZEJ2eDM4M2R0bUxDVjUxS1dQNTV6RmF6R0x4N2JrTEp2V0preFNBQW9MUGZ3ZVRlYmltKzExUitiN1lxU0ZzWXBEVlEKeGYzWkxES1FTcnZlRDdyRGwzWjNDelFBUFdoS2tSUSs3Q2dHZDJ2dUthNVhGZFczbHJWMmxqU3JTMXM2eXVwcmlsdnE4OXBISEFvNwpqd2tMZHJDeWpqbC90MWZ5TFFBUTBJOFdRSCtUNS9BVklkRk90cjhLUUtGT3Rnc0FaQ3Rqb2dDeVE4cUFSQklJSUs3UXlvYkgvRlFRCmRGUmFlTmoyNmtIWlpWUS9jNmtFMlMrcTJEODNEclE0aTArMEIwVmZ2eS9JL0pUbkRBQkVtUVdRT1pWUGZCbUFpSGdTMllwa3lTR3gKcE5ZdUN2NVpxYnlHSSs5bHkzcEZEdjBTeDJHWkN6U1F2Y2VrZzllVTBudkd5ZmVwaDkrVXpQMlpmN0pLNlJmNDhaZUpCR0tic3hjMApqV3ZBcEdQQVU3ZndIN3dpSnR6OXA3d0RwMFhlZlI5emhrVHVrMDdCei94aDI5ZVVYL2lVYjhnTVlKQnZ5RE5INzJmT1BzK2MvWjQ2Cit6NVJlZy9iZXc3WXVmZlplc3dPL0VpUVVSOGszUktYTHJIemdNQzVUK3JSS25SL2ZjV0sxMWE4c2xMbmxWZVhMWVZMRU9tOHFyTk0KNS9nNmcwNWJqMTZwbzBicXJMWnpVZHZQamdCcEFkU0pBS2pEMmJQZDlVY0FVdnY2cUlQOFZhR0JBRURxbURCMVZFQkhYR0JYVXJBNgpLYWd6TmJRdk00THBucjJIZjNXZjlPcCtVZmtleWJVandoSWdtUDNpaGZYcDg2Q3o4RFdhUzhWQjhGS0tyNEUvKzU0QUJaQzVEUS8vCk1nQXhKVlNobUNhVVdiSEU1blpDaHl2aDFWWEJuYlVSM1E4anV1cWl1cHJqK3RxVGh0U25oN3RTUm5yU3huclR4d2N6SmdjeUp3Zk8KVFExY25CbkluaDY4OUxRL2J4cWt0MkNxcHhDbXUzQUdwS053R2tSZE5OMWU5QlRvcDdYZ2FkT2xLYUNmeDlsVElQVTVjRFNvcVdDbQpwZWdIa09iQ3B3MkZNL1VGMHlCMStVOGY1YzFBL2VSTjF1WlBBZ0RWRmtJRExRQlFMUXFnbTA5cnY1bWEzZjdpM3RTam1tbDA0NHRICmRVOW1WLzFCQUlUb1p3Ym9CNlMyWStaeHkxUmQxek5KWXIyUmNkb0c4dGwxWmhmV1l0TU1NR21HMkhRalhLWWg5b3dCN293QjlpeUkKSWU2Y1B1bU1IaUZ6RFRGVGozVFd3UHppT2tyT0JrcnVac3FsN1pROGtLMldNT0RxUnZPY3RlUXNRK0lGSThJWk5JYUVkQU44bWo0dQpWUStidkFhVHRNWTBYaGVmYW1DU3VCZnJaeUt4czVPWXk5eEV3dXNWK0c2MWVYZTN0YnFEM2RiRzZHcTFHR2l6SE94bTk0OHdCbnBCCm1JTTlyS0ZlOW5BZlo2U1BNOW9QSWh6dDAwWXkydjg4STRPU2tTSEppRVlMSUlBaG9CekFIWEM3SEtrTmdnVkFtbkVGRXZtNFJqSTgKYksrWmt2WnE1RU9EOHBFQlhuKzNmSHFjZUtOOU5TMWkrYWtJWFpPRVZiaTQ1WVRJcGZqUVZmaklaZmdZY0ZyNU1ZQTRXZ0E5MTg4dgpBOUNuREljZHhFQmR1STV6SERoMzYyT1MxNW9td3ZWK0VBQnR3cWUrRUVBR21HaGRwSDRYR1FFS1dtWUdTM2hYbUlVQlR4Z2dDeUJ2Ck1FdlloczhBQU5wcC90eEFLSUEybU1VYlllRThraEUrZkRzbHhKaXZkSGZrK2JpSnZaM0ZDd0NFR3VpM0FwQUZqLzUzaG5ncnlXa1YKM244MUlXZzF4bGNYRXdUb0JnQzBIbGtYVVF1Z2pWandWTVRvR0pwRklnR21RYnZBNEtxR203QkpHd2hKYTdISUZtQW13UUJBdXNhaAo2UHdYMnYrMUVaT0F6bndCL1d3am5ONUJTdDFOeWR4dmRYNHhnT0MyWktTMHJXUVlsRDRiNFBMYmllQjVnVVZWbVBqOStLQy9XVHBnCldUd3JuclVOMStxL0JxQ1YyR0FBb0xWQVpwU0xSNjJ6WGdhZ0QxaHdFT2dObS96ZEZyQVJiQ00rY3owMmZTM1FPaVoyT1JZQ0NEeS8KOEFjaG5UMW9tZm94TjFFdWw3bzVTRkFBQlRqTGZ4WkFya3FtdlMyVkl1QWV0L1RjaUU4Q3pEcHNrWTBBS1A4ZFd2bmJOaVZ2MHZJTwowL1AzVXZMMkV0S09rTUpNS1RKTGhqMmJKYkxqY2tPVXNtUnZDS0NNUUxnbEtnb2diU2U4RmtCQVA3OFNRSER5QzlVUEFpQU9nOEV5Ckp0c2RKZml1eE1mcUVKSjFNS2s2cCtLMm1nWDgwOFk3TERranZiQ3k2UHU2b3VyMm5Gdk5GNytweS91K3J1UmVZL0dkWnJRN2JMNkIKWU9ZQXRJaEJFRUJveFErcW44cjZUbTBxR21aVE5wZVN1dDd5eHA2eXBxN0NoamFnbjdMMnJ2d21WVUZUUjVtNk1idWxqNTVVYzRoWgpjVVI2NjVEajFhM0MvQVAyM3grUVgwY0J0RjkrRXh3REFBa2RndU9jNWY4QmdMd1ZvcGNDU0dvTlRuSThJWVhPbzMvRzl6MHF5VHNrCmh3VkE2S2dQcXA5OW9zc1FRTUxMQzNKQWRBVm00ZmwxRGtQaW0rOEx6M3pHY3lSeXJDbHMyTjl1eFNYL0JJQUlPS0tGSlluQ0pUR2sKVkZlRk1Oblc5cVpBM3MyU2RRc2Nla1dPQTFJWGpkeDlUTzR4YnVzNWFlODlCVmRrZG4vbUV2aEU0UExNTFhyS09laVpiOFJUOTRBWgpCNDlucnY3alRuNmpTc0FndjFGbnIybVB3R2xMcHdlRy8yNWQrWEgzUHZ6Z0YrSXhnZmNUbjhpcDRJaHh2NEF4TjY4ZnZJT2Z1UHFOCktEMUJuamo1VFRyN1R6ajRqTmg2YWZYVEk0WmRYYWgrT2tWT3ZWemxzQ0lnOHd1aTdtczZRRHdBUUs4c1hhS3o1SlZYZEpib0xOVTUKdkY2dlVlTFVJM1VjbGppcGJKM2JiU0dBZ0g1Z0hOdzZFQUNwbldZQnBITHpBUHJwOFBCU2VYdXAvZUg4bHpvc3FEVXFwQ00rUWhVYgowcFVRM0prVUFBRjBKbEo5TnU2RVE5NWV3YlVEUXZEU1hONGp1WEpFVkxSWGZPM2dpNTcvbnc0czV4S0J5MnZnY2Q3bHA1K0VleS8vCkZJQlk0TzFJWkNNUVd6R2xGaUtCdUREazVxMVExZDJ3cnBvdzlZUElycnFZM3NhNGdaYkV3VmJJSUUxSGlxWXJkYUk3N1VsWHhrVDMKMmNtZWMxTTlGNmE3czJaQXVuS2ZkbDZDNmNpYkJsRVh6SUNvRVBxQXRPVFBORjJhQnU1QkFEUlRuL08wSVcrNkVkeFlBT2p6dEw1Zwo1bkgrTkVoZC92U0QzQm1RMnR5WiszblR0Zm5US0lCZ1NxWnJFUURWVnN6VUlBQzZEeHZnVVFETkZnQkJBRDE0Z3BZL3p5NzgwelFMCm9BZHRzd0NxVmswMXRNM1VkVDlqUmRZYW5FcGZSOGhjWjNKK0Ezd0xUWU1CQmpMTEFERTBUVGZBWk1MZzB2VXdxYXV3S2F0eHFmckUKc3h2TUwyNnp5TmxKZ1crQSt5eno5MUlMZGxQemQwZ0FJM1lBQUlBQVNVUkJWRnBlMmtMT1drYzRCLzJFUzV1WEZBUHNhVGoyZzRFNwpiYS9HbkY1bm5MUUhGL2lWVU80a3QzS3l0ZUduUjV1MzFwRzYyc2tkSGRiTkxUYnRqZWE5VGVZOWFsYkhnRTF2RjB4L04zMndtejdjCnd4enBZNHpCY0VkN1FmZ2pNRm9KaVVmNlJLT3pBSkpvUmtGUUFJSFlhNTZBeURWamt1RVIwWkJHTUt3UmpJd0lSMGU1R3JWb29OZHQKZURSaWREeDJxRDkxdVBmQ3hKT3NzYWR2QjVhK2lnbFliaHE1eWlSMkJTN21OVXpvY21MNFNrTDRVbHprU2t6a2p3SEVkWFBtZWpxaAplUTRnRDZVQXJZQitJWUFrTWdaTHpQdVlacjhWNTdmU0pHb05NbjZ4eGpSUkN5Q2dIelF2Qk5CcVREaEF6MUpNOEFwYzhISnNFTkxLCkRRR2tqNnlCakFKb0ora3NBSkRXUU9nVTJDWk1naUVtRVpZUjQwSTNrSU8rNURxNE9QSmhHL3p2RENEQWczK3pKZHZKeWxVRW45V0UKZ05VWTc5WFlnQlhZMEFVQTJvcFBuQjBCUWdGa1pCb05naXpySEkvdUJ3dG5Dckh4K21ZUnEwM0RWcG1FSWdDQ2sxOXJqV1BXbWNSdQp3aVp1STZac0o2YThFRURhR2lCQW4wMEV1QUxqZW56aVdsekNXbnljUGk1bURTWUtkc0pqZ3NBQitCdjM0MEwrYXFuRU1MbFVyczEvCkdVRDZabUZhQUwxbGsvc09QVzhCZ0Q3aUZuNkU3SXp4SnEwQWJRU2JCUkRtOUJwczdGSUVRUHFZa0hYNHBNMFdGNDlZbmZrM08wa20Ka3l3QVVLQ3o5S2NBcEdBb2JhMHNSWngzcU82YmlVbUFXUUJBYjFEemp0SHkzcllwZTV0YWZKeCs2U2l6Y0w5VndWNVN4a0Z5eEFrTApXM09hSFlzcFZNd0N5QUVBS0QzSS9ZVUF5Z3FGQTBKQVArZERZQmRZWnJBN0FGQnFnUE5QQUlndllLRUFBdkpoczRHQmVDd216OGFhCithbTF5emFpanc0aFdJY1VwRU9LMU1GRXJjUDQvcDN1d2hkeVhEMDk0dFBPNUpiZEtQMjJ0dVIyUFFEUXhXL3VGOTZhYlJBRERQclIKUWtHMUtqUUxERlQrVVBWOHA0dDUrZ0hvcVd6c1FsTStGd0NneXVhQnkyMTlaYzNxc2paMVNYdG5VV3RucVhxNG9tY2l2WG1JRkgzMwpLTHRpSDcvaW9LSnl2K0xLZnZuMXcvWmY3NWRkT3lLckJOa251d0dPLzljMlI2d0lqSGVXdmd4QTRCWVFyWDVnQzlqTEFhU1VzdVlEClNDQzBZSEJwbi9OOVhoZmxISkpkUFNDQkFOb2pLRVBIZnREc0U4eG1zWVIrNUtIbnVmYWVJQTBGa0NXSFpNMzVHUURoOEVSTEt3Z2cKcG9UcVppK01Wc2lMeGJKMmxrek5zd2NHNmhNN0FRTU55OXdBZzBac0lZUEdGTzVqVHQ1RFNxOVJKOTh4ZTY5eHVkc0VSSXpicUtQbgpzSXZ2bUtQL2pOSnZ5TjUxeE5IbktjbFpwZnRGcno2dWMrV3A5aFdmcTlaKzBmY21jZVNVYUZyaytZTlgySkJIeUxCbnFNWXplTmcxClFLUDAxZGg1ak1zOUpxV3c1Qm1PK29pY1FRQjkwQUFBZGZNZGh4U0J6RU52QS8wQTg2eEFPdERnWW95dkx0ZDVUZWVORFFZTllzY2UKZTdjK3NiSk41cXlTdTZ2dElJRFVpcGNDU08wNUM2Q08wTUNPOE9EMjZDQUFvUGI0MEs2a2tJNUUvL2JrWU5YNXhQdXA4UjlKQ2dHQQpEdkhLOTRpdTd4WmZQaXdzMkNPNWNWajRVZ0NoSTNhTHN3KzVCQSt5VjNnRkFPZ0UyKzZuQWNTMnBRbEVkTDZBd3BhU3VYeE91bmYrCmQrSHR0ME83N29Xb2E4SzdIa1IzUDRydHJZL3JiMHpvYjA0YWJFa2VhajA5MHBZeTJwWTIxcDQrM243bWlTcHpVblZ1Q3ViaVRQdkYKR1ZYVzAvYnNhVlhPVE51bDZmYThtYlk4T1BNRjBwdzMwNWd6ZytvSEFpajdXZjJsbVlhOHA0K1IxRjJhZVpRNy9mQVNURzNXelAzcwpwN1c1UDl5LzlQUkhBQ3FkZ2FsQUF2UnpaV1lPUUUvZy9OZTlHUUFndVBVcEFxRFpkWitSNnA4SExjOEJWTnMrVmRVKzBkRCt0TGJyCkdjNzdhejJUVEVOOHhuclRDNXV4VUQvck1Pa2dhMkU1UVRvYWlDRk02aHJUNUpXbXlhdk1UdXNUTWphWlorMjJ6RHRnVlhEWXF2Q28KZGZFUldzbEI2eUp3eXhiU3hmVzRzK0QrQnRoVVZEOUcrSFFqZkNvSVlCRElXbHd5dkJHVHVvY1UvamxiNW1oSGRiSTFGL29vT045VwpVTnNlRW5vNkxOcmFhRzNOVnQxTmxDNFZxN1dYMnQxaDNkTnAzZGRsM2Q5TkcrcW1hWHBwbzMwZzdKSFpvQXdTakhRTFIzdGc0RFRaCm9CWkFJRktOQm9RL1BzRWZIUmRxUmtTRGcvS0JBWWZCUVRmTnNQZllXT0w0ME5rbk14Y0hKaXJISjhzSGVtNk9EbjgvOGN3cjcvWWEKODhoWFQvbXZ3RWF1d0VTdndFVXRNUXRaUll3Q3lGaUNEVU1BRkFRQTVPeG80K2dBQWVUdUlsZ0FJTFQvNno4QUVEb0ZoZzcvb05FTwpBcjBFUUVFZ3l4QURyY1NFNjJHampUQndFUndVUUxzc25odG9DeWwxSXo1NXN5a2NiVExDUmVzU3d0YVJBei9uS0p3Y3dQZi9ZZ0JwCjgzOEhFSlZQL1l3ajNXM2hySXYzV1lPZkJkQktYQmdzd3ZreGdEYmpFOVpqNDNUMFRjSU5UTUlOVGFKUUFHMHdpOStFaFNzN2c1OWgKSFM0QkRvS1poUU1Eb2ZOZitxZWlBWURXbThMNUw0QWV1TW9RNFRUSWJsTGFIc3V6Q3dDRWRvRVpZbVBBZzZ6QlJJQ25jaVUyRkdRWgpKbkNwV1FENHRuU3hFZUJaUG9BUCt3dkYwWXpCKy84dGdENWtGeDJqNSsrM3pOMUtBZ0E2c3hhYlptaVd2QW9ic3dRYnRSSVhZWVFOCjIwSk8yMFhOUDBvOTkwOW00cThGa0pzREUvempwRXA0NzlNOHQ1b243YlBNT21xWmU4eW02RGl0OEIzcnN2ZXNTOTVpNUwzSkx0NXYKVTdMYi9PeCtpNWpQek9WRW1qMkxJVlp3T1dFT0VoUkFHY0VlS0lET0I3bWhBRUxpL2pJQUpmazcvaElBZ2YvWUxENlR3YVZhTVQ0awoyYTBuK0wxS2luak56TzgxMCtCWHNQSGJ6WU8vNHJ1NjJuUEI2ZDlSeWdud2RzODRjNzd3K3EzQzI0K3p2cS9MLzY2KzRQc0dyWUdlCnI1ZFlzOUJBc3dCNjFGNVJwNEo1REFDa1JqZDFyMng4cnArS3BtNlFXUUExZFpVMGRGUzBkQmMzdDVXcjFVV3Q2c0wydml0OU0rY2UKOVg4YWN1c1F2MnkvOFBvUmgydTdwUVg3Wk9WSGdIZ0VaYzhCSkwxNlVIcmxIN1paVW9mQUJDZkpUd0FvenYzNThBOEFVSml6SFFDUQp2Nk1VQUVncFoyc0JCSTdCTTJBdlk2RUE0b3V0UkVJTE5zL21DNTdYNjhLTGFNOFgwTTl1ZnZrZVFjVmNMbXNCOUVzbEpMejhnU0RsCk01NERrV05GWmM4Q3lJYjNVZ0NaRVltVzFyQlpESng2UGVXQ1VIdlpCWW00Z1NHRkJ1TFlkdkVWdlNMSEhqSGNYYXRmNWpvZ2Q5UFkKdWd6WXVmWTZlSFRJbkthY2c1QmR1aUNHQUlENmxaN2pTcCtudHA3RENyY0JWMThOVnRHeDZrU2JBYWJURU5OcmhPczJNRzNWL2Z5eAozaWROVzQwN2o1Sjd6T1NqMXE3UHBFSFBuQ09tSElNMXRsNURVdGRobVF0YTlBUDBBOUNqVFFjQWtOaXRSZUR5cDdVYmdYNVdydEZiCnByTmtDUUtnMTVCVmlEN2F1cm5Eemh1S1IrcllKbmZwa25zc0FCRFFEd3FnTnJmbkFGTDdlSGNFK0VFQVJZWjB4UVNvWWtOYTQ4TTYKVXlMYWt3TGJVc01iejZlVlJVVWQ0cGZzRjl3NHpDM2JMZnA2bDZqeWtLaGdqL2ptWWNHMXhmVDVKUURhTGJ5MlczamxIVjRhQkJDYgpBbUQ2TWdBeGJhbENJVjNJdDJMSnlVd2VQZFFoNWV2STF1OUNPMitIcU82R2RWUkZkTlZFOVR5TTZRRU1laHpmMzVBNFdKODAxSkE4CjNIaGEwNWc2MHBRMjJwZ3gxcFR4QktRbGM2YmwzRFRNaGFuV2k5TXQyVk90T2RNdHVkT051Vk5vR3JLbkFYM3FzcWJyTGo1OW5QVkQKWFRaQXoxTTBEM05tN3VkTW82bk5lZ3BTa3dNTU5GT2I5L1Ird2N4c0RWRHB6UDJ5cDFvQTFWNmRRZmIvZWxyOTdSeUFhaUNBSHFBQQphcGg4QVB2ZVo4dWZnWDRldGorOXI1b0d1YWQrVXFkK2VrYzE4N0Zkc1o3Wk9YMUM1Z1pzMWlaTTZqcE0ybnBzQmdnd2tCRm0xa0FRClFDYW45VTJTVjVzbXJjYWNYa3ZNM0VISlBrak5mNTFhK0laMTBURmF5WnYwa3NNMmhic29PWnNJWjlmaGdKWm1wOUxnYkJvRUVCckkKSUNQTTZmWDRNMnR3YWJzb3NWOHlGTGIyMWdvSGtyMkNMVStLWk55OWl1OVZrZFZkTm0wdENJRGFHS3BlcTY1T3F5NDF0UmNheUdhZwp4M3FvMjJha0Y0USsyc3NhN1FOaGovWkFBNDEyenhvSUFaQlFNNndGRU1BUUJORFFvSFI0MEhsWUU2RFJ4QThQbnh2UkZJMk5WMDQ4CitYWjQ1TjdZMCs5NnhyNGZHUHBtcE8vcnFlbTRSME52Q2VKZk9lRzcxRFJvT1M1ME9TNThPVFp5T1FaMldpMDNEUWNBV29XTitoR0EKQUhGK0RDQ29uNThEa0ZoS0J3RFNUb0VaWXVMUktURFVPaWg5TmhQU0ZnTUk3b1NLQUdpWldmQVNNNkNmZ09YNDV3QmFnNEZGdzBBTApDd0FFZ2dKb3Exa2NBSkFCUG5vMU1jeVFGUEFKeDk1SnlkTUN5TThOZHNKRDhialBOc1AvVmdDeTRWSys0RXIyVVp6MDhMNTYrSUExClp0NjZtSURWK1BBRkFFSnJnQkFBR1llQklFdjdSQUhab0FzYkFyaG9BYVJ2RnFGbkdvNENTTzhrSEFFQ2Q5dUN0TlNEd09FZlBBVFEKWHF0eldnQzlRYjhJQUxUYi9BeDRLRUFmcEpVc0JObExOUWc4aVV2dy9pQzZPSDg5ZkJUNEsvWVJBSUNjQVlDc09OYTAvMklOa0JaQQpXeTB1SEtGZVhBd2dxQjl1NFIvWlJRQkF4eGtGQ3dBRWVBNEF0QW9mdVE0ZnNZTnlabzlONGV2VzUvOU9qNWRLeGE0S01maGwvZVVBCmNySzN0cEh4UHFCN2JLY2tIYURtdkVITk8wNHJCZ0I2MTZiOFBldmlkeG41eHpoRkIrbGxleW5uOTF2R2ZrcTJKZEIvVndBeDVnR0kKZ3dDSVoyVkovOERjMVJBVDhwcHB3cHFUNE5jZ2NhWFptVjJrQ0dPZW02Y2R6VmZCOExWanVvdVpydlp5Ly9DbzAwWFhjcXBhQUlDMApCdElDQ0JvSTNVUCtsd0FJNm1jV1FKY1IvYUFCK2dHcGJPMjVxdTR0Ym00QkFDcG9VNWQyYXJJYmgxalJPWHVFMys2V2xPKzNnNFVkCis2VmZ2MjUzOVlpaytFM1JaZUFlTFlBQVNuNG5BSWtsS0lESUtJRGVFRjRBK3RrckxOL05MOTNGS3dNQkROck5yd1RaeTY4QVdjeWcKbDJFSUFPaDkvdWxQdVFvdGdLdzVzSlg2WlFBeUp1TUJnQ3c1Sks3UXlrdkdEN0tYcGtsRUQraWlGcm9ZR0VqRnRldmdLenBGeWk2eApZNWZVcVVmdU1paHpCaG0zOVp5Mjk1a1F1bXNFcnFPMnZ2MXlyMEU3Ri9CVnVJSXp6N0ZQNXRqajd0OXBMR3ZYUGRXMHlhekI4R1NqCjNxa09BN05PUTF6ckdreTlyc2xqWFpPNmxYOS92UDZ6eHNObTdmKzA2Ykd3SFJDNzlpdmQrNXc5WWNlNzJLVkwrQ1A5Z1BUSVBPNVIKeEh0V3dQYjMxMkFEL0d1cmRGNEQvM3RGWjhuS0ZjcysyYk4zeURtNFdhWnNsenVwRk83Z3psb0FxZWNCU08zeUFnQjFoZ1VCQUhYSApCclRIQkxmRWhTSUFDbXJOaUgxMFB2TkNRT2dPVGhrQTBCRk82U3lBaEpkMmltOGNFVnhiVEp4WjZBakxYNXg1QUhwN0RrRFdBdExMCkFFU1hXWXBFREpHQXlwR1J3ZHVkbHpqeVJtVExOeUZkM3dlcmI0ZXA3NFYzQWdOVlIzYWpRMEhBUUhWSk1BK1RCeCtkSHFwTEdhNUwKMVR4T0c2dFBIMi9LbUc0OE05V1VPZDEwYnFyNS9IVFR4YW5tck1tbTdNbjY3Q2NOT1pOQVAvVlpVMEEvank3TW9BQjZrRDBOQXVnRApMbXV6cDJxeUp0SGN6MzRHQUZTZERRMVVjMmtHQUFqbzUxSHBEMW9BMVZRK0I5RDlGd0hvUWQyVHVzYXBsd0dvcWdzQzZOdld5WS80CjJYcllMQVBpMlkyNDdQV1lsUFhZZENRWnFHT1FLYkFNRUNPVEpQMVRTUUJBYTNDcEd5ek83YkxLUFdwZCtLWTErRUFJUGdxV0hXZVcKUVFDWloyM0FnZmZoZEJBREhJd2hQZ09Ha0k0R0ZnTVpKMnpFWnk3SHBXMjNqRDlKVTRvVlZGdG5vcWNkVTI0dlpwUm1ZVHBhY0twTwpha3VMUlVjanFhdVYydEZGN2Vpdzd1eWtkbmRBQS9WM1V3ZTdyRFU5SVBTUlB0UkFQd1pRbHhaQVFzMklGa0FnTVlQanljTlB6bzlOCkY0OVBYaDBiLzA2anVUZlVYelhROC9Wdy84MkJvZStHUm00TTl0NTRNbml4WDRNOS9mVXJYd1hDM1JIdzRVdnh3VXZ4b2Nzd0VlQnoKdFI0dWJwVnBGS3dFd2tZZ0FCSTRPOUxuQUNUNnRRQVNTV2dBUUo4eGxidk5Rd3dJaWV2d1NSdGcvUW5rRGpyOGcrcm5ad0cwSEIrdwpEQmNJQWs3aUt6QWg0TFNPbHMzTW53SkRzNVVNcDMyMlkrTUF0Z3p3a2FzSW9YcEV2Mzl6N0p3ZGhWNXVjZ0FnSHhjSkFKQy91eHd1Ci9QT2JBNGh0Y1lJclBVQnhOVUFBcEdmcXEyY1dwQXVrUVlqZlFJQjdvRzdGSndMOWJNYkdiNFFWT0xFNkswejlWNWtFNnhtSHdjNTIKVXpqL2hYYUJiY1lsYlVKS21ZQjRERTlHb1RFNkZRM3VzeFYzZWljaGRSYytkVGNoRFJ4c3c4TVdNSFFKeE5lcEY5K3d6bnJUSnZ1dwo5WVh0RnVucjhJbkFHUy9NYWt5b0xqWmtMUzV5THk3eUx4YXVHQmJia210cHhXYk1BZ2haRG5FT1FEQlVCRUNXY3dCaUNabDhFVk1rClprc2tEQlJBMEVEekFDU3pwWXBrZEw2Y3daZlI0QjdkTWt1YWhJcm5VOStrS3RjUzNaY1JRc0QzQUdBSGZoVzJrUzRjdGN5ZDdRSmoKRmN3Ti94VDlrVlB3SndpZzBvOVloZS9TYzk2d3pONUx5dHFFTzJlQVRkWER4YS9BaHEvRVJhekdSUnNSVTNaU3NnNWI1cnhEemZ3VApNMTBnVWJvNnlYd2RlUUVPa2dCSHViK3pJTmhORk9vc0MzYVZCcmxJQXAzRklBRXVZbjlua1orVDBFZkpkMVV3bk8wc0dHS2JmN0M4CjNyREpQR1pUQkJ4MmpKbjlOcTN3SFhvUm1yZVpoVzh4Q2w2bjVod2duL3VMaFFlT0t1ZlEyYlo4Z1kramZiSzNZNmEvYzBhQTl4eUEKM0MrR29QcVp6Y1ZRTDNRVCtETWg3cG1oSHVtaDdpbEJMb2tBUUw3eUVBK3BsNHZZMXBiREZkQTVmQVpmd09KeEdVS2VEVGdHUjJ3dQppODJpc1ZrTUd3WWZUK1cvYnU2blR3alh3VVF1TXd0ZGJoYTcxRFR1cUhtQWxVRGhac2NGOGJEamV0cnozT1JNVndrZC9LUm5Zdnh6CnIzMWZjS3N1NzI3YitWdnRGMjYxRnQ1cHVYeW43dHF0bXZKN3phVjNtaXZ2cWE1VWQ1VGZiUyt2YWExODFGejZzTDdpUHR6YkM1My8KcW1qb0tHL3FMRU5TMGR4VjJkS05wcUtsdTd5NUMxd0MvVlMwTkZkMjlPZTF0VlgwZGxYMkR1VDNEMkNUcjJ6bGZidXdlM3d1QUQySApaVmVQaWtvUFNLN3ZrZHo0VEpMbXFuUUxtOWNGdHFBQUtNN0xPZFp6dGdZb3lsMFpPVmNERk9RZzlYUVF5ZVJNb2NoYUxxWTdTdUQ4CmwwTEtsRXZZOW1LbUZObm9nQ2VrTVVVV0owUzJiM0hPNzVWVTdoRlg3QktXN1JTVTd1Q1hhWU5JYURib3NCQTZOVFp2bEdnMnM3Tm0KL0tzZjhwTlBjQ1RtTEJLVlI3YmlXUUVEc2JnRUJzZWN3U0hUMlFRUUJvc0VBR1JCd1JGSkdCekJqRVNEM2ZJY2daV0hMVC9LUVpwbwpLMDlWS0hyTWhRKzRzanFlZlFmTG9ZV3ZiQlVwKzRCc2hJNW9hUTVhbmd5dzBpK0R2Vm9nbzN6UExqdlBUb1dMUnVvMENQdlBQUWRJCnlzZUdIemNZZmRtNi9sU0wwWWxXdzY5VVJzYXRCcWNhREV3YjF1UGJqY3dhRFl3ZjZaNnNYZkhGL1ZXZjEyMDBiajFHNmZvN1Y0TnoKVjlIZDJ1UWVRRjI5SE50dWdYMkwwS0ZkNWpFbVVKYmc2Y3QwZEhTV0F2cm82TUZDSUhqOHFzNXFuZVU2ZG4vNjg0U2RWNCt6VjVQVQpjVWlFdU1mT0JXNkxnUUJJclhSUk9icXFuZHhVem01cUZ3Z2dsWWRIbTVlbnlzOUhGZXl2RGcvb2lBenFpZlNFZzBEeGtRMnBHZDJKCkllclRJVDJaa2RhdXhidTVGU0I3ZU9DSnZieFBjRVdieGZSRTg3SlhaNmVvZEsrZ2JBLy8yazcrMVRmNEdlQ1RMb1ZEWWZJSWRHUVYKUkpiUVVxc2ZuZ2hHTEdYd2hWU3VtTTZTc1doQ2lsREF6ZzI1OWszZ2srdmhIVGZDVzcrTGFMMGQwVjBWTVZRZE9WSVYxVjBUMjFZVApOMWdiUDFTYk9Idy9TZlB3OU9qRGxMRzZ0QW1RK294SmtNZVpVN001TjQybURvZ0h5YVB6MHcvbjh1RGMxUDN6MDlyVXpFdHQxa3gxCk5zaFU5YVhKbXJ5cG1vTEoyc0twbW1La0JxaGtzclpzQ3EyQXZuOTl1dmJHVE8zTjZacnZwMnB2VFQrNE4zTWZBT2pCelAxSDB3L3EKcGg0MnpEeW9mekpYQVQxMXYzV3lwbTJ5UnZYa2ZzZlU3WTZwaDkzUENxcCsyQXZQcjFtYlROTzNBTElRenEvRG5ObUFPd3Q3djgweQpqRXpUd1NWNkFBeWthNXlpYXd3K2ZtZHNNNys0eityU1VadUNOMmxGeDJoNWI5R0xqdE5MRDFrWGJTZG5nejlvQ1BTRFRUWENwSUpQCnBPdHc2WEFmQ1d3YWVyd2VuNkZIU0lGZnhhZnVKTVg4aStraWxETWQ3UzBVVGp3dkdVRVVZRSs5VVFiRVEybG9KVFUzV25TMzBacWIKR08wZFZwM2RwTjQraTc1K201NCtWbDhYYmFqRGFsekYwTUJCSU9aNFB4SWdvUjdPV0RkM3RKczFOc1llMWZBMVEvS2hBYS9oL3BpUgo0UXVqNHdBOU40Y0c3enlaK0hwNDZOcmcwSTFoemJWQnpRM04yQTNOUk9XdzV2cVk1dXJJNEpXUm9jcXBaL1lWOWJxWWdPV1lCSEFlCmVXR1dFMkVwdEFFeDZCUmY2T1FFQWVTdFpLTkYwQXRxZ0R3ZGhYTUFFaUlBUWhkQzVFSUFTVGc4S1pjbDVYL0Z0anRJQ2Q1SVN0dEMKaERVNmE1RzlRclgwUWZYelBMQUhQTkVRRXdlVUEzd0dtNzh3UWN0TWc1WmhJSUJRQTYzRWh1cGhvOEY5d1AyM2t6SjJtNS9kU3o2NwpoNVM1a3dUcm9PRmpZbUVKelhwTXFCRSt6SkFVK0Q5TWhZT2p3TjFOT0I5QUMwYUF3REdnRDZvZkgxZGJEeGRiTjZmWnZjQVdBSWdyCjRnQURzWVFzQUNDNmtHbkRZNklHc3VUUnpYbHNNeGI3RDViU0RYanY1YmpRMWRnZ2ZheS9MaWw4RXc0Ty8yd2xKcUVCK2xsdkZnTjMKZzE5cEZyRGFOQVJ1Qi9hVEFESTRFWWtDQ0tsN1N0bEZUUHVGQUZvQmE3QmZFQzJBOXVHai9rcHh3N0NZNEQyZHlxSC83Z0N5Y1RBaQpRUUNCNzJHTlNZZ2hMbVVyK2NJUnEyeDBCT2hGQUNwR0FmU21WWTRXUUd1d3NWb0FyU09tN3JYTWVkM3EwcnZXWi84akFERmQ3Q2tzCkNmTmZISiszYUJmZXRpbDVqdzY0YzJrQmdFRGV0TGwwbUhMeEwrWmVXS29kaDg0RkFQSlRBZ0E1L0NvQXBZVzR6UWVRcDdNSWZGYmcKOEdrL0M2QTN5TjRHQ0lDV1l5SmcrNXRad2pITFFKcll3UTJoRDRpWGdnOStIRzk3TGtpQWs4algzeThqSzdmd3hoMjR2ZnlkNXB6dgptbksvaGIzeDVUVXR4WGNiUys0MVhVWnFvdWNteGRwZUNDRElIUVJBbDF0N0VQUkFBNEdEOHJhZWErcUIwdGEySzkzREpSMkRwUU9ECjh2enFnL3c4OEZFZVhVZG5jZVlEYUsvNHhtZlNGRGNIQUtEbjZ3RDlId0VrbGJKdEpRQkFGQzJBVGdwbGIzSE9BZjNNQWFoOE82OFUKQkFLSVZ6RTNHdlFjUUdnV1hOVWFhSi9nMmtlODVLL1lZaklMYjhVbGdVOExXZ0RSMlNRVVFIUW1FUVVRZ1doR0lHSXNhT1lBUUN5QgpsWnNkUDF3aGliT1RKeWtWalZUUkk2YWtpV1duWXRpM2NCUXRmSVdhNTlERlYzUUpuVURRR2gydGhFQ0doWjRxWkNGbWpkaXBUNnpzCnNQTWNvcmsvM1A1VmkvNEprS1kxWDdZYkdiY1pHamZxbjJnd05INnc1bVNqN3BmZ29NN0E1SkcrY1pPaHlXT2prM2NNUC90bTdjZGYKci8vMzVlUEdqVXo3VHJsenA5QytSKzdTeXJYdjRMa01LVDBTUHplRDAxNHJsNzZpby9QYWE2OHNYZklxc2huWjB1VTZPcGxreTFFNwo5MGFobmNyT0RYeDc3WEtubndWUXU3ZFhtLzg4QUVWN05NVkhOc1dHdHA2T2JrOE43ODRJdnBzYSt3OUp0bFkvQ3dDMGVEUU96WUpYClJQdmE3UlNWQVFEdDVsMzlDUUNoYTBDakFCS0lySVVTS2x0SVpVbnBEQW1GeDZNbHVWLzhKbHp6ZFhqZmR4RmR0eUxWdHlNNjc0YjMKM1lzYXJvcnB2eGZYVVIwN1VCMC9XSk1BRGZRZ2VlUUJZcUJIcWVQQVFBL1RKeDVsUEpsTjVpU2FoK2VtMER3NE8zbC9mbjRXUUxuVAp6d0dFZElIVmxQNE1nTzdmbjBZQjlLQitHZ0RvUWVNa1VnTTBPUXVnOWlrQW9MdXFzY2Q5ejBJdnRhMy9NbllkSm5zTDl0eFdmT1phCndvV1hBY2pJTEdPTlNlb2FFemlCdFlPU2ZjQTYvM1ZhNFhGYU1mZ0UrRGFqR0FYUU5sTFdlbXptV215NklXNldQdk1EOUxPQmNNWUEKbjJLRWg4ZmJTVEgvWnJtS2JGbE9Db3E5RTl2RDBjcGV3WlFIKzdKdlZKb050Sm4wZEZrMnRsbTN0MW1wV2lnZHJlWmRyZVJ1bFdVLwpIUDZ4R08zQ0RyVlRKdnFvNDMzME1UZ0N4Tlowc2tmVUlKeFJ0V04vajlkZ1gvU3dKbk5rdkhCMG9tSjg0dXJZT01qM28rTTNOU05BClA5K01qbjAzUG5GemRQVG15UGoxNFZIQW9QS0Jub3FSN3FzelQ4TnIrZzZ5WWxhYUJpN0RoaTJtejI4TElMNkV5NVpBQUIyd0NOcEEKQk83SjJFcElXUWNQZmdTZytRWkNWZ0ZNQUxqUk5Rc0hBRUlhNEY4QW9EV1lLSENmRGRqVDI0anB1OGlaQ3dDMEdaYzhEMERCTHdUUQpnaEdnM3daQWZDYVd6VUVBNUxrQ0N3QVVBQUMwaGhqNVVnQ3R3Z1N1TmdzQ0FFSzJ0cGdGMEFaYzRud0FBZjJnQUFMSDRBN2JDYWxhCkFPM0FwNENyQ3dBRWdnSm9MUzVoTVgzUXJESUxtZ05ReEY4czNjellUSUNiL3c2QTFwSTlsaE5EVnVEZzh0WUcrT1F0NXVjUFVTOHMKQmhEUXp5eUEyUG52TVhLUFViUDNrYk1SQU1FSzZCWFl5RlhZQ0QxY3pHWlMra0ZxM2xzMmVlL1paUDZKbWZackFlU2lZRHZiVzNGawo3RTk1Zm0vVEw3NWpYZklCcmZoZFdzRmJOZ1ZhQXdIOXZNTUNuMzd5WDZmbS9JbmliMmF0UUFIazc2Z0FBRHJqNTVRZStJc0FCSmVCCi9qa0FpWkRqeFFCNm5lU2xqdy9Ud1ViQkh4d1RxNHRMZk44NmtDOXo4TERqQXZxQVN6YzVHOURIMzFIb28rQjV5Rmx3OXo0SGNWeDAKV0dGWlplbXRCL20zR2k3ZWJqdDdTMTFVM1F4U1VBVlhUUVRvdWZLZ3U3eTZzL2gyQjJvZ1dBbzlCeUNnbi9KNSt0R21vcjBYcEx5OQpyN1NsNDJyblVFWC9SSGgxNTd1Mkpkdm9sdy9iVml4dVlFYXpYd3czNFFJQTJpKytCZ0QwdVNURjNkRTEvUGNCRUY5SVk0bklKMFdTCnR6bVpnRDY3UmVXN2hCVW9nTFp4Uzdaenl4RUF6UWFkRWRzanVJd0d2VHIvRmpUN2VKZi93RXM0eVJhWnN3bVdITGdQaGhYWEFweG8KRndDSWFvTXp0OEF1QUpDclBUL1lVUkxoSUk5eFZ0emdpdXRzSk8xVVdTdmR0b1VwYjJiYk5uSHQyam4yZ0VFZGZDVklwOEFSQlBVUQpTSi9BdlZtZzdKSTZEUW9jT3JoMmFsdVBJYUhQZzNjSmphdSthbDlqM0taN3FzM1FGRUNuM3VCRW5lR0ptdFdmTmhxY3ZML204MXFECkU0L1htalhvbXp4ZWZmS3gvc21HRFNaM1YvejE0WWZrYnI1cmg5eTVTU0JyRXp1bytBNERIT2RlSjUrWWZ4bkQxUmVYdllhc0FLU3oKQk5qbnRTVTZ5NWErdFdwTmpWVFpiK3ZTTExEcmRQQnNGY0dKTUMyQVZNQkE4d0NFRmtHM2VUNEhrQW9CVUdlVVozMXlZa05jYUdlUwpYM05xU084WjM4VG90TjNNaTBBL0N3Q0VIcU5UazR1endEM2E3QkNXN3VHWEFnRHQ0RjE1blpmK0NjZmhaUURpaTYxQnVFS0tTR3JGCjVsUFlZaHBUYXNubVVyd2x3VmVpVkYrSERYOGIxbmNyc2hzQTZGWjQxNTJvdnFyNHdWdXhQVlZ4QXlDb2dXb1NoMnVUTlBlVFIyQlMKeDlFOFNKdTRudzd6SU9NSlNPMjgxSnlabDdPVElMWG5wa0NxejAwOU45REY2YXFzYVFDZ3FoeGtFQ2gvR2dDb0d1a0NBd0NxUmdCVQpjMlc2OXRwVXpmWHBta1VBcW4wNGRmL3hjd0RkYjU1NjBESU45RlBiUGdVQVZLMENsNXI2d1dmMG9PdjZYeVlZNGdzMkVYTTI0VExYCjRzLytCSUQwalZQMXpWSTNFcy91c3NvOVJDdDhrMUg4TnFNVXZBRyt3eXdCQURwSUxkeEJuQVhRQXZxZ0kwQW9nSXp3cWNoQjVsWkMKOUQrWmJtSTdycFBDeXM2QjZlbkk5ckMzOXBiVEhjSjhLTjlYR25lMTRkU3dJSnJZM1dMUjJXTFIxWVR2YlRJZWFNRU9xV3o2dTBVOQpBNWFhYm91UmJ2Sm9sOFdvaXFsUjJRK3JBNGU2WTRmNno0ME01bzRPbFkyT0FPSjhQekx5L2JEbTI2SEJyd2NIdmhtWlJFZDlnSHV1CkRnMWRIaHE2TWp4OFJUTjRmUWhjOWwxOU9wSFdPZllIaDdQTFRnUXZNd2xaVFF4ZVRKL2ZGa0JDQ1pjajRuM0psTzhuQmF6REptL0cKd24waGdJVG0wK2NuQUxUU05CUUFhTGxaNE04Q0NPZ0hCQnpBVG5pZ0t3QWdUTUo4QUNtVUFqZFh3ZThOSUFzZUU4ZGgvNWtxMlVqMApXSUVMMXNVRUdPQ0M5RWhSS0lDMEJnSUEyb0NKQlZjaGdIUXh3WEF6VkZNNHZZVUFDR1lUYkliL0VZQ01Ua1VqL1Y5Sk80QitmZ3lnClhSWm45bFBQL1ZvQXJjS0ZHT0VpOXhNaS8ycmxqdUd3Z0crc3VMODdnSTdiT0swbmU2NGdoYTdFZzJjbldKK1l0TW5pN0FIcjh6OEIKb0Q5eUN0NW5Ya0lCdEJsL2ZoWkFtT2pWdUdoRFF0eDI4OHczYkFvQldUNmtuZnNMNjFlUEFMa29RR3dBZ1A3RjhUbG1rM25NcXZCZAphdEhiMWdWdld1Y2ZweFcrUlM4Q2VaZFIrQjRUU0tqZ3VQV2xQMW1HbWxvN2N1ZzhlNEV3ME1rK3hRc0NLQzNBNjJVQXVoQUM5LythCkQ2RFRnYzZMQWNUbTBYOENRQVJyd2VzRWQwTmNLQXFnbFdZeEJyaUVQOU1DWlhJN1FCOXZCNEduUGM5ZHhnYnU4Vk1LZ3B4RWdZNUMKUDF0NmlDTWYzdUx1Y0M0cnUvaTdhdGdrWDlWNThldjYvS3JtZ3VxbXZIdjFoZFdOeUg3eXFxdTFmUUJBTUE5VjVYVnFGRUFWNkd3WApNdVJ6dWEwWERhcWZTbFhmNWU3K3l2YkJtd01ENTF1N1B3MzhacE5ONlVINTEvdEZDeGNZZkY3RUtxNDhLTDF5UkZoeVFIUmxyL2phCjU1SmtUNlZ6bFBQemRZRCt6d0NDYXlFaUFMSkdBV1FzRkwvTFR0dkJMd0gwQVFEYXdTOEQrdG5LTHQzR0tRTUcyb2xrQVlOQTVoLy8KQ0VQY3NnKzVjYWZBK1pOTFFrZUFBSURndE5jY2dHZ3NQSTFCQUFBaW0yUHdCRk1VUUpZSWdKenRlWUZLY2JCU0Z1Nm15TEtWM2JlUgp0bHRLRzJtU1ZwcTBtU0dyNDhwYjJMWnRYSHVRZHA0Q0JOQkVMVkNpNlJBNE4vSHRPMFhLZnA1REo4ZXVSZXpjSy9WcU9NbXRXL1ZsCnE1NnhXaC9UcEd2ODJNajQ4VnFUKy9wZjFPbkIzRm4xY1pYQlZ3L1htajVZY2FKaDVZbFdBNU42dlpPM2pQNW5BQ01IQUdvVEtsVVMKWmJOWTBXZnJNY2gxMGNpOHozOUdYQVVBdEFUd1o5a3JPa3VRYmpEWURPYjh4MzkyMjN0MHloMjdrZjZ2Smx0bmxjd0JCUkRNSElCZwpFQUMxdTg4Q3FEM0F0ejBrQUFCSUZSbW9qZ3BRSmNlMkpFYjNKUHAwcEFhMHAvdFllZVZ0WXVhaEFOSWFDR1R1bHZJWFpqNTYwSEl1Ck5Oc0ZKYnU1WmJ1NFZ5Q0F1R2UwQUFMNmVTR0EyR0p6Z2RTQ3d6Zm5pR2dNQ1lYRkk4dFl0aGVDYnQ0SUdid1ozUHROU01mdHFDNlkKNk43YkNZTmZ4L1JxQVFROFZJMFlxQ3BwdURwWlUzTjZkRGFwWXlDMWFlUFZpMUtWL2p6Vm1VOUFVQVpWenpmUXhSa0FJQmdFUU5YSQpJQkFBVUhYeEZBcWc2b3BKQUtEcWExUFZOMllCVkhQN1J3Q3FyWnNFQnJyZk1BbFMyelJaMnpKVjJ6YUQ2cWVxZmZKaCsvRFhiYy8rCndqdHJhSHJHa0ZpNERwOEwwSVAwZjgwQ0NCeEE5eUF4TkVrek1Fa0RBRExDcEcwbW45OUx6VHRDS3pyT0tIbUhXUVlBOURhcjVCaGoKRmtBYk1KbmdRV0JEN3R6OGw5WkE2TUVHZk5wRy9KbjF1TE9ic2JGL283a0o3WGdvZ0J5VmJGOGx5OC9CeHQyVzVlanJ5YW9vd0xRLwp3SFEyVVZwVitMWVdUSGV6K2FDYTJ0ZG1xVzZoZExSVCsvcXMrbFRXQXgyTVliVm91TU5qc0N1aHY2ZXdaK0JtbCtieVFHLzVVRytwCnBxOTRyTDlzYk9ES3lOQ040YUZ2aDRldkRvNWRIeDcvZG56Nnl2Qkk1ZURnOWRGUjhDV1FxNE45VjhmR3MvcW4vdUdmdmZTazczS3oKNkdXQUYzQVIzWVgwK1cwQkpCSnlPR0xPRnd6WkhxS1BJV3p4VHQ2S1NkUmFaN0dCWUJrUUFpQURzMWdVUUlBK3NIN1hMSGd4Z01COQoxbU9TWHdpZ0xmalQ2NEFmc09GekFGS2lBUEp5RWkwQWtOWkF2eFdBQ0Z6MlgyMGttMGx1SzNFQmVoZy9RMnlRQVJFTzlnRDNhQTJFCkFnZ2NBQUQ1d3hFZzAxQUVRTEFMREZrTDhjVUFRc3FmVCs4a3BlOG1wUU1BZ2N3SEVFRFBmQUJ0TTAvN0NRQkJBK0dDamZEaGV3a1IKZjdGMG1RUFEzRllZdnh1QTNyRngzVWoyMHlWSDZSTEM5TURMUTB4NUlZQSs0aGFqQVBvVEJ3TG9BM2J1Y2V1Yy9SWUFRR2NCZ0hReApNUUJBZXJpWWpjVGt2WlR6NzlCSy9rQXYraVA5M0YvWi84RUlFQVFRUzhMOE84djlrT1hwZytTYzF5MHVIYkhLZmQwNjcwMWF3WHdBCnZVY3ZmTnM2N3lPcmFCT3FPNHN1VWdoRlFjNktGRzhGQUZCSzRIOENvR0IzaVllVEVEeHZiSjROQ2lBK2ova3lBQjBqZWhoZ1ExQUEKclRhTFhvZUwrenZEWHlHWG9OVS9QZ29CQ0J3QlFxcS9BWUJDbklSK2Rtdy9leFl3a0t0Q0hCRVRuVjE1cy9qMm84SmJyZm0zbXJLLwpxOHU1WFZkUTNWaDR0NzcwVHNPMVdsVjVUV3RaVGV2Y0lKQzZzbkcyK2dlZDg5TFNCOVZQWlVkL1plOUFaWGZYMVpGQnp0bWJtNjF6CmRrbS8zV2RidGw5UXRwZythUGFJTHgrUVhEMHNnRnZCN3hOZC9WS1M1S1YwakhGNXZnN1Fid1FnSzc3WVJpQmdjSVJrRTZId1BmWnAKZ0I1QUgyQ2dIYndLUUo4dExOUkFGVHM0WldoUUNXa3hORjlGODdPUFUvSWhKeG9CRU5HU1E0UTdCL01vTkM1eC9nalFDd0hFRVZnNQoyWEg5bEtJZ1IxbUl1eUxSeWY1YmxtMDlWZmFZSm02eGdUWFJqeml5Sm9adEs4Y096WHdHZ2JUeGxDMThSYWZBc1plcjZPWTdBZ3kxClMxelViTWZtZllScTNVL3FkVS9VNjU1NmFHRDhjTDNKdlRXZk5CaDlXYXYzV2JYUmwzY052N3FyOTlWRHZWUE5ScVlQOUw3NGVzbmYKcXY5S0hCUjRxSVhPS2k2Y2JtdmsyYlZMbkZRc3UwbUJad1dHdmhwT2diMjY1TlhscjcyNmZPVlMyUCsxZC9teTd6anlJVHNQbFV6UgpKWFpzbGJnME9qaXJKQW9WWU5BaUFMVTd1UUlBdGJtNUF3QzErWGkxQlQ0SFVIdDBSRzlza0NvcHZqc3haQ2d0NE51RXlPT1N5enM0Ckpkb2FvUG1CTnk3U3B4YW0ybWhmTXBCdC9PSmRuTktkbkt2Yk9WZVBjaklRQUZreHVhVEZJMERvRkJoYllzRVRrM2xDQ25qN2duY1EKbTdPWnJFQ254S3ZoUFRmQ3U2K0hkTjZLNnJrVDIvTnRWUGV0K0lGdllnZXFZZ2RCN3NVQkFBMVZKd3pmZ3dEU2dGUW5qOENraktLcApTaDFEOHpJQVZaMlpBRUVaVkRWbklKZ0wwL2VRUWFCNzJkQkFWY2dnVUJVdzBFc0FWSDBMQXFpMmFxYTJacnJtL25RTkFxRGF4MU8xCjlVOGdnQnFuQUlCcVdxZXIyNmFCZmtEcXVxWVRyblJ2TVkyRVN4M2ljd3d3V1JzSkY5ZVpwcjBVUU1hcEFFQnJzZW13QU1nNi95aTkKR0FYUWNVYkJXOHppTitrbFI2aEZ1OGs1VzdEbk5tQXlObURUTitET2JNUm5iaWFlUTdPSmNCYk5WbnpHTnNLNURkano0RlQzRjJzMwp2Z3dDeUY3QmxEbHh3UHVWaHdOY2Y4UmZ4dkR3VmpLTHp1SWJiK002dTBtdGFzdUdacXZtUnJLNkNkZmJnaDlvSXcycXhkM3RMdDBkClVaMjlGem9HUzlRRGxhcCs4UDVUM3RGVHJGWVZkWFVWRHZRV2pBd1VqbW1LeDBiS3gwWXZqNHhlR1I2N1B2cms2c2hFeGREdzFkRXgKZ0o3U3dYNlFtMVBqRnpvbWNIRTNWNWo2TDhXRUxzTkh2R1lhdkFvYkJadS9YcGpmQ0VCaU1SdHc0WE9tWkNmUlc5YzB4c2drWWJNcApzdVU1VXUvOFlnTXRBdEF5MHdBNERvUU4rbkVkOUN5QXRoTFM1Z01JZHNJVDA3ZmdVK2NBRkc1QUNQa2J3OEhlZ2UvcUxQeTlBVVRoCjBzaGMxdi9TSmR0SXJpdHhmdnBZLzdYWVlBTUNYQU5hQ3lBUThGc0JzbzJVckxQU3pHKzFXU0FBRU5vRk5nZWdlSFNYMDQyWWhIVW0Kc1NpQWtQbXZoSzJFbEYza2pBVUFnb3NBL1dvQUJRTC9HdUxDOXVCRC8yanBiTUpoV0Fnb1ZON2NWaGkvRzRBK3NQYmNSZzR4SU1jWgpFV1BYNFdMV2t6SzJXbHc0UkwwQWZMTVlRSC9tRlNFQXlnTUFlb3VXYzRDU3M0Vnd6Z0NicEl1SldvV0pOUVRQS1RuMXNHWFcrNHl5ClB6SUsvOFE0L3pkTzZxOEZrSnRDNEtLZ01xVFdmMlk2N2lKSGJ5T2MyVVUrdDhQaS9HSExITlJBc0IyTVVmZytBd0xvSFp2OEQ2MlQKVGxHOW1EUWhBRkNvczBPYXQwT0dyK1BwbDArQnZSQkFDWDdLbndZUW04L2o4TmdBUUJ3MkV3WFFXMFFQUTB6SXF4Z0lJRjNUNkUzRQorRStZdmk0eWdCNCtNdmJEQVFkK0NoNElYQUxiZ2UvcklBNXlsUGpiYy93VUhEK2x3RkhPOWZSMHpEeVhubitqdXV4T1E5SGR4cHp2CkgrZmVlVnh5djZXOHBxbnN6cU95NmhZWXdLQUg3ZVYxcW9xR2p2a0EwdW9IUmcwQlZONDFjRzJpTjZxbS9VMXg3azVCNlQ3RjlSM0MKMGdPU29zWGxxMmgrREtETFg0bVRmSlRLdUhuckFQMGZBU1NSTVZBQXdXWHVCQXl1Z0dncTVIL0FUdGpLS1lZRzRsVnM1NVlEK2dBQQpiV0dWYldXWGIyT1diV2VWbzluQnJsaWNuWnpLK2RuSExmNlFGV0VNNTA0SUZpeThCWmRDNVZ2U0JXUW0xMEpiQkkxT2dhRUF3cElnCmdLdzVGbHkrbGJPTTQ2OFFBZ0NGdWl1aTNSenpaWXJ2V2RLSGRFR0xqUUFBcUlFaGJhVERRU0EwcUlHMERHb0Z4endGSEFyaVFMZzAKZy92d0ZkMVMxNjdQQmRjMy92UDJxbjgxNkorNnIvZFZ0ZUdKdTJzK2VXandXYlhCNTlYclR0d3krS0xHNkdUVE5senR4cFBmYmZxMAo5ZzFjTzFmWkpIWUNlT3JtT3ZWd0hOcUV5aGFKWTQvTXJaL3JYTXUxMzZPM1ZHZXBqczZTNVRxdkxYa05Xa2pINTk5ZjlqcjdkNGpzCjJtMGRPa1hLTnFscnZkeWgxdzVaRHRFT01SQUNvSGJFUUFCQXJhNXVBRUN0bmg3dHZ0NG9nTm9qSUlCYVk2UDdvbjNiRXFNN1RrZDIKcFlXSEIyYXVaMXpaeFNuZnlTNERseUNvaEo1bkVYM1F6RWNQR3RTdld6akZPOWtsTzloWHRyR3ZBQUI5ekZKcUFRUzd3QVRQRFlRQwppQ3VqY29SRThNc2pGSEdZUW11bTFJTEJzNVlJSEF1Q2E2L0hxSzVGZEg0ZDJmdDlUTjgza1YzZngvWGZpaHU2R3p1QUJoam9ic0lRCkFOQnNra2Fya3NmUTNFc1oxNllxZFVLYmUya3dWZWxQUU81bGpJT2dETHFIR0dpV1FRaUE3bDJjbWdQUWRIWGVWRlhCTkFCUVZlbGsKVlRrRTBMMHJVeWlBN3QyY1FnRlVjMjhhQlZEMWc4bWFPUURWTkV4V04wN1dORTFWdFNKcG43Nm5tcW50ZThhS3ViUHlxMGg5VE9aNgozUGwxMkF1YlNia2J6ZExYWXpOZkJpQndPVnNBUkN0OG5WRUNBUFFlbyt3dFp1RnhSaEVLb0gyVXZGMmtiT0NicmZqTWJhUUxPOHl6CmRscGs3NkxrZ0lBRDlIZ3YrZnh1Y3RaVzBpVnd3dm9yelljbjVTbHRJWUJjN0ZsMkxpS0ZVdUJwei9KMXRuRzFwMG85YkxsbkUzRFYKdHlsTmp5MDZtczNhSDV1MjFURzZtbDA3MVNHdDZyUW05WVhHenVMRzNxc052VGNhZWlxYmU0cmF1L003ZWdxNytrcTcraXU3QnE3MApERjNwMDFRTWpoUnBSZ3FCZ1RRandEMUFQeFhEbW9yaDBkS0I0WXJSOFd1VDB4Y0hwaXhPMzlBekRWMkZpM3NORzd5Q0hMeVNFTDRLCkU3L1FQYjhEZ0RoaXpxZE15VGFpMXdyVGFIM2p1UFVtY0JGbjdUNFlpd0dFTm9CcnA4QitHa0RyekpJQWdIYVN6cUFBMm0xK0ZnVVEKdUhFOTd2U1BBU1I4R1lCUUEvMG1BTExrME16NXpIOHdoTnZOblZmanZBMHd2Z0JBUm5NRFAvTUJ0QWtYdjUxOFdtZUZxZThxMHdBOQpreEFENDBoZ0hRUkFjVm9BYmNJbWdodlJGckM1OVE5VGQ1dWYyVVBPK0NVQU1zTEdMM0xQY3dDdHdBWHA0VUozNDBJK29qZ1pzK24vCkhRQjlSUFhiUllyWVlKNnlrWnkwaVpDOG1YeHV1MFVXUUF3QTBOdTBTKzh6OHhjRDZFL2MvQTg1bDk2bTV4NjB6TlVDYURVMmJpMHgKYVpkRnhodld1Ui9SeS85TUwvd0w4OXovOG43MUZKaTdQYzlWWWNtVVdmK1JhYmVKSEFLWEQ4ZWZOaVNuZ24vQWh5alp3RURIYkFvQQpnRDVnRmdNRHZVOHIrTUE2NWFTMUQ5TkdyQlNLdzV6dGZ5R0F6Z1M1WlFTN3pRZFF0SThNQU1qZFVRQ2V2UVVBNGdxWTh3RkVZd29BCmdONGhlUnBoUXdHQVZtSWkxNWpGN0NBbm5PRDRlc2g1S0lCQXZHUWNiMXMyb0ErY0FvTk5tMkpmQjNEU2xZQ3JQZzRjSHlYWDI0SG4KSktNSHg0U2ZLU2dzdmYydzZHN3poVy9xYzI4MUF2ZFVWRGVXVmpYRFZMZVUzbThyUTdaMlJ3ZUJZT2RYMjNNQWxhdG1BWFJqc0Q5LwpZTUk0K3RZV2Vza2grNiszODRyM0NxL3NGaFFzcG84V1FQdkZWdzd4aTlBbTg2L0U0RGxReHJ2K0hnQ2lDL2dzQkVEY0Q5bHhXOWhGCjZMUVhHcUNmemN4U2tLME1HTUFnTkZvTXpjOThEKzFsQVFTSEdYTzRsbHc4aFlPajhDeXBRbXNhM3h3RkVJTkRYQUFnREJsRHBpTUEKNGxxNlNUbUI5c0pnQjJtNEd3Q1FjNktUUTRsWWVwL0diN0xoTjlORUxUYVNCcHB0RTB1T0JoQUhLb2RqQjRMcUIyQUlBQWhjVlFtVQpnRWZ0UER1VlVOSEpWdGIrbVhoNy9iOGY2bjRHQUhSbnplZFYrcC9WNm4zeS9acFB2dFA3NU83YUwrdTM0eDd2TlB0Nnk4ZmZ2SFdxCkhTOEdacW9YMkt1a3JnTUMxejZlYzd2SThUSFBWczJEajl3bmQ1Zjg5YytHcjhKdFVIVmVlM1d6enF1V1I0OTMySGwzMjdrMkNNWG8KQ0pCSzdsNG50aHNBN3BrSElKV0Q4M3dBdGN3RFVGc29CRkJiVkdCTFFnaElZM3hvZTBya04zR3hKK1Q1NjZqRlc4QlR5aW9GMFRKSQptOFhRZWFGN3RBRUFBbyt6blhWNUFZQm0yK0RuQUFUQ0ZjS3daVFljSVZraW9na0ZQSTZZVFpPUWJVUVVHell6U25HK1BPYng5ZGllCmErSDkzMGIyZlJ2ZUNXZkJvdnZRM0lucHZ4MDNBSEluSGpMb1R1TFEzY1FSWUNDUU84bWpkMCtQelNiMXVZUmdFQUROQmdFUWFpQUEKSURTUVFlZW43bDZZQWdhNm13VU1OSGt2ZHdvQTZGNysxTDBTa0NmM3lpYXJLaUdBcXE0L0IxRFZuVmtBVmRkT0FRQlZQM29DREZSZApQd1VBQlBSenIybnlidlBrM2RaSkFLQXE5ZE84QjlQdjhpK3VNRTB4eEtadko2VEQ3UlNKT1pzd0dRQkFHL0huRmdNSUJCeHNJc0FDCm9DT000bU9NMHJjWnBRQkE3N0NMMzJJV3YwRXJQbXBkZk5pcWNMOWwvbDZMbkQzbVdmc291ZnN0THgyd3lqdEl6VWR6eUxyZ3NFM2gKVVdyT1lhdjhQZFNTdlZZWC9zRU80c3FFU3JtbDBvSGxMV1BaZWZBZFhMamV0a3dQWjQ3U2llbGt4d1Iwc0E4T29CVmxtalhmTU85Ngo0RnJmbUg2dkpmZHU0NFhhK3N2ZzNhbTJ0ZVJCYThHajFrc05iWG5OSFlWdDNTWHF2Z0oxYjVHNnA2eTlCMDdIZC9aVjlnMVdhSVpLCnhvWkxoM291anc2VkR3OWVIaDh2MDR4V2pFeCs4L1RacFo1aFV2cGRmYXova2xNaFM4MGlBWUJlTWZQWHA4UXVNVjdrbnQ4Y1FCSU8KVzhyNW1DUGRUUFlFZi9VcTR5Z2o0MGdERXdpWEJRc2hQamZRWEJmWVR3TklGOWtRQXp6T0Z0aHE5eHhBc0JPZWxERUxJRXprSElBYwpBWUJjbkdhbndOQzFFS0Y0M0d4L2F3QlpVL2lzZjdGRU84d2RkWEdlQUVEck1jSHI4TThCdEJrUG0rR0Jma0IybUtmb0xEZnhXV25pCnY4WTQyTUFrZkoxcHRCWkE2RDVmUUR6clRlTlFBS0hySDI0bnBiMFFRQWVzejg4SDBDSHFlUlJBeVBUaGk0S0ZBRnFERGRtRkRmNkQKaFNNQ0lITXI3V2Fvdnh1QS9tUVp1SWNVdmRrOGJTczVGWHc0MkVvR0h5QnlqbEJ5dEFENmtGMzRzd0JhYlJhNUdwdXdqcFM4aDNMbQp1UFdsUC80ZkFBUzd4eDJzbURLcmo5aXlEV1R3aE1ENjRwV0FWb1RNL1JZWDRhNm9jd0Q2QTdQNEEzcmhlOVpwWDFuN01XMGtBRURoCkxvbzBiL3VmQlJBYy9wa0RVR3F3NjJJQXNialdMd1FRaDAzWEF1aGRzcGNXUVByWXVGMFdDYVo4ZjE5YmpvZWM0MlhIQTlieFZ3aDkKN0RnUVFFcWhueDAzMEVFRTlPTnJ4L2UwaFpYUkFjNENQd2NtaUVoT2xidkl3ak15Qzc1dktLbnV5ZjJ1TGYrN3h2Sjd6U1gzbW1DcQpta3RxVzBzZnRta0JWTmI2SEVCQVAxb0EzUnh1OGIzU3Y0dGRzbFY0ZFRQbjJqN0J0U1B5cS90RVZ4ZjM3NkRaRGZjcmVBNmdreEJBCkRna3V2eDJBNUhCalZCUkFJZ1JBR0NIblEzWXNPdWMxWjZDS3JleHlvSjlOakJMZ05wQUZEUG9KRCsyd3lYNlhIbVRDNWRrSTRRTFEKRm53ckt3R1Z5aUd5ZUJRbTF4d0FDQnBvcmdnYUFNalVIR1BPc0FBQTRuTXRQU1NjWUxrZ1ZDR05kRlhFdXJxR2VqaGN0SlZVMDNqMQpOanhnb0RZcmNZTzF2SkVwUTZObEVHb2dGZCtobFdYYnpuZG80Tm8zOCt6aE9CQmYwY1FVTmNzVlEzVGx3d09uN3E3NCt3TVVRSWFmCjM5Zi85STdSVjkvcGZWYTEva1R0eHBQZkdQM3oxcEdUTFhoaHI5eTlneUhya3JpMGNCUWREUHN1bmxPTEVBNENkZk1BYnB3MUxFV1YKMU1GazcwRkRuV1ViRE5kTC8vS0oyczV2VXVEWnhKTzJLQjNhSkhiL2o3ZjdnR3Z5MnY4SDN2K3RWWEVVWllNTTkyNXI5N3A3dHJlMwp0Z3BrNzcwVFNFSVNSc0pXUUhFaEc5bFQ5dDdUalF3M2U3cDN0WFhnNFA4OWVaQnlYYmYyZW4rdjErZjF2QjVDakVsSW51ZjluUE05CjU1eHo4eDdSQmc1NitGenk4UHFQQUJyZUVqSzZmY3NrZ0FiM2hKNUtTK3plczMwMGJXZkd6Z1JiVHBrOXI4aFN2dDlCVkExNTFrQlAKK2VZbGNaRFVRR3dsbGNhSGFnWUFyWlprQVlBWUV0WlRBTUlNaEFGSTdNR1R1akZVYmdJM3VVS2hVYkRkeVR3MWd5bmhlSEZEaW5lMwp0aVJjYnRwMTdlRHU2NGQzWHp3YWRhbDE5NlhXcU10SG82OUFXbU92SG8wek1talBEUWdBQ0FzQWFDS3BQMEVtTVFRQUFnOU5aaXFBCk9xWWFLUGNoQUFnRkFlZ0JBT2hZeWYzbkFxanp3QVNBam5jOGZBR0FIbUFBYWgrNDF6NTByMlAwd2ZIemowTUtlMmY4TTl5RWxJc20KWmFhazJ4SXlMUWg1TnJoc0RFQ1Fwd0FFVzdqRmpwcTdtRnU2UmxTOVRsVDdvYWoyRTFIZHg3S2FEOFRWR0lBZ0s3bVZZSjNsN0pLVgpyRktBem1SV2M4clg4bEJEMGZ2Q2N0aXVGRFd0RUpiOHd5MUtybFZpQVBJMlNFSTA3TTE2cmlGQTVPOHBEL1h5Q1BOWGJ2SG03dkNVCitQcXJ2V0lqd2l2cTBnK2ZnUXV6a3ZidTBoTmQrWjNIaTQ2ZktUM1ZVOVkxVU5ZelV0cDN0bmpnUXRIUXhZcWg4MlVqRjByT1h5aSsKZktINDJvWHlheGVycmw2b3UzS3gvdmFWeHA5dVZONjRYSGY3ZHRYMVd3MTNIcFZmdmFQTUxwdUppelloUnFQNkhsSWsrR1lXSmZvMwpMdHZuVUtLZWRzOXJCNUNIV0t5Ui9rUHFZVTNmOUNZK3lzUWwyblJqcEtsejdPUmlxRGJHcVlEK2JVUVlPUVVBQk9mdXFVWFFJQjVzCkdyK3BBREoxUlkvekVnQlpFNkluQWVUcDdZWUJhSEl1Uk5EUC93SkFMRGZSUHlRcUo0WWVBRFFmSDJxSjMyVkJRdlI1Q2tDd2d3Rm8KODB6bjBEa3UyOUNrT0s0eEZ2Z0VRSSt0c1FBSWF3UkNxNXB0aklHZ2VhOHBxWXNwR1V1b21Vdm9XWXVvR1VnL3hCUkhDaUxSU203VwpLbDQyTmczMEduN2VjbTRPQU1pQ3VNZm9SNnlLYXR0MHZIRXVSQUxTRDlyQjc1eE5DRjlBQ3ZpRXJkMG9sc096NThqWUdIMG04a1EvCkNFQUtGdHVOeFZid0lEeDNBUURJVFNWVXFpZG1RWnlJVm9RRkFLVFdjckdKRU4wOXVFb1Bwa0xMNW1sRkxuTEJSNnlBUllSd3NKMFYKNGwyU0UzSHZVbW8rME8xZFh0RTZRY25IWXJRZ1BOWUloTlVBL1VGYS9Uc3BHZ24vb2FCMEpidGdBUjBOc0RUQko1b1NFaHlwdVd1WgpSUi94Q2xESG1hanFEOEtpdjh1U2xScFBQNzF1aTE0WnJwZUgrNnJEL0RSYi9kUTcvWlV2QXBDZmo1dXZsZ2xLKzcxUVowRUpuL2lTCkVIYlBKMlFCemxad2k5SDRNZ0VDRU9SalVlV1gzTHl2MlpFY25wZWYwajB5UUoyeXhaQytOU0J6UzBCMmVFRE90c0M5MjROQVBIbTcKZ3JFRlVDZFhBY3ZlQ2ZxWkFGQnl1RzlDbUUvVVpyL3dZTGRnZjZGS0paSks1Y1lGVUkwSFpiblVUU0ZSdUVtZXJJWWhFd2hsSEk3awpjMXFvS1M1MG11dld0L0h4cHJpMDk1Zzd1ZTVlQVo1cTBBOFFaNU5Pc3RsVHVzVmJicXdCa2h1RDVzSU9RMzFoaWkzR25SQWYrV1p2CldhQTNWeUhmQUdkeHI1Mnh5VTFkcGFkSHl0bzZHbHBiRzF1djFIY01WNTVFeDVyU1UrY3J6MXl0N3ptL2I2Qy9ibkNnWmZESGx1SDcKZFNNWHE4NmRyYmw0dmY3OHplYUxsL0t2ai8vT3QyS0pxSHF4WXY5Q1pjTmlUZlZpOTVwbDdzMlR3M2FlSHNZc3Ixdm9objRMMjZXSwpXbGQxZkxpdklkcGY4NUtKRUJPTWE0Rk5HT2dKZ0xibzFRQWdFSS9LblF2aThkWktmTlFpdlVya0w5TjRnYmwxVklrN1I2RmtDVDBvCnJtNnFQL05pN2FRRk51SUNlM0c1dmJER2hsZGpKMnF5RlRmTTQ1Wlo4bXNzQlBYenVUVVd3bHBMWG9XVHJNNkdYMjdMUjFlM2pxTEsKZWNJNmMwR0xnN0J1cWFnWS91RnMycUVQWkduK21mdTZMMXpZVzV4RTVIOVBrWklGU2paZmdGWWRGeXBvWWhsVkpDWUxSUlFlajBKbgprQWdrWXhlWWlNbVdNeVVLbGtFakNmZFM3ZkxTN1BiMWl0UDc3Z2oyalEvMHJWVjZkclBVQTNURkdhNzBoRVErd3RmMTgzVGRRbDJ2CjJHdEE3SDFXN0gxSjRubEovSE50MEdUWEdOWTdOdURtY1ZtdHZ5THc3UDRyNjRERDMvZk4rTjJ4Nlgvcm43TythL3EzblRPLzNqZnoKencyV2Z6NzJXOHBsbnRkVkQvOStoUWRXVWZSc0xycjdBckF1ZXdSQXVqaHV2UUwxVlYwd1VHbEU2UTBaVmZtZ3FQV1FzeDRHRkowZgpacUJSTC84Ukg3OFJnLytRci8rd1g4RFp6YnZQK0c3dTI0eUdnRjNZSG5JcFl1dHcxSmJldUcwOUNhRjllM1pjU3RwNmZNK092Mmx5CjN4QWNYQ2lwdE9YV0xSVFVPZkJySVk2Q09rZFJ2Wk80QWJid2hqdUtVWndrOVpQQmJubHU0TGQyNHRwRndqb253VDRIWWRNN1lqUUsKakNGamNtWEVxUUNhV2dTTmRZUkpsVnhqK0JKM250Q054NWR6SkVMV2RzMmV4dDBYbW5mZkxJOGVxczBacU0zcGE4azlXMXM0VkY4NAozRkEwMGdRcEdHM01IVzdNSHF6UDdHOUp2ZHFTZk9WQTByVkRDYWluckRQdTlzbjR1MmZpN3gxTHZuczg1ZDd4Rk5RWDFwbitVMmY2Cmp4MFpLSjBadDQ1bDNqNlc5V05IOXAzMnJKL2FzbjdxeUxuYnVmZmU4YnhIWUNDTVFjZU1RK0pQbER3K1ZUYmVWajdXVVRYV1dmUHcKV01PanpxYUhuUzBQTUFNZGE3MXZOTkRZaWVOangwNk1IVHMxZHJ6cjRZbnVCNmQ2SDdRT1BENHkrUGpFOElQMjRac0hMOXc2TUhUMwplTS80UW5ucFhGTEtIT2RrRzNLdUxTbmZtRndMZklZVmZ1L0VVSFpjNmp6WGxQa3VxV2JPNlJZYjArZTZwRmtSY3hZeENvRXk3d21xCjNoZFVmeUNzK2xCUzg2bW9CdmJYOHFwWGNHdFg4dXBXODJyWGNpcldnbmhZVlN0WjVjc1pwWXZweFF0cFJZNzBBa2Rtb1JPcnlEaUQKWXRWYWJ2MWFmc2tmM0NJNW5ob3ZINEd2cDhoUEw0WUVHaVNRSUY4cEpOaGdqSThFaEFFSkRWQ0dod2RIcDZSbVZMY1VIdWt1UE54ZgoxakZVZWVKczZjbmg0cE1EaFdjR2luc0hTL3VIUy9vdmxReGNLQms0VnpKMHJtVDBYT25GODZWWHpwVmVIeW00ZnJmaTlwV1dPeGVhCmIxdysrTk5QTlQrT3V4VjJXNUZTNTVFVDU1RGlaNUZpcHBNajNxTHNSRnVTY2Zabk5BZjBSTjRpN3A1T2lzUmlRdG94blJKalFZcisKbDd2YTI1OFg0Q01QOXBNQ2RLYlNCNXNDY1hJaVJHTTFoZUxaWWZCU2xYU0RSTE9RSElBbWNTWkhHUmQxajRMRHVKbHg0WE03VWdvVwp0R2dWMmJqRnVzQUlzWE9KVVNhRVhjWlQ5c1JLcUZobTRpSWdzd2lSczRsUkZuampnMURUSEJpWkN4bG9TbWhzU1ZRbllxb1pLY1dNCkVHbU9qellqUkh3cDBtc003a0VHK1JNQWFTZnBnMDEraUFYb1l3U1FkMmlBRndBb3lFLzdGSUE4ZE81dUhnb2pnTVJnZ0FrQUtRUmMKaGVCSkVUUWFDYjllSkgySG9aNVAyZ1RuVXpOaW5EMGhFaHNGTnJFSUJpRUI0a2hLV2tRMUFzakVKV3dxZ05CazBNOEF5Tnc1Rmx2LwpheEpBQ3luR0lXRC9DVUFtcmpzd1FqNXArSmtBMEV3OGVsc0JRUGJrd005WVd1Zi9Fd0E1eS9qcjJQNU9oSzFXUkxRMkdmenhGaENBCnJ2QnNjMThFb04vTEVJQytsRlIrSkN4YnhTbTBwMlhOSjZiT3dpZWFVNUlYMHZQZllSVURnRkRIbWFqcTk0TEMxd2lndC9GcHRwU2MKWmV6Q2Qza2xIL0xLVVArWEVGVkRUd0xJWDZXTUN0RCthZ0JGYnZJRkFBWDRDVlFxQ1NnSHRmZThHRUJjcnZSM3RCQkx3bGI0OHN6SApKOERGM0lmc0hTS2xaNkNuNGxVQjVLK0ZMeWVGcDZKK3haSi9KWTB4WkhRVWRGeXNQalpjdE85SXc0bSt1aFBEbFIyRDFhZlAxblNmCnJlNGFiZXkvMG56Mm5MRUkrbnI5Nk5YYW9hdjFaMzlvdlBMRC90czM1U1ZESzJXNWpzSnFKMFd6dmFMSzBhMXNvYUpxbWFJRm9QUHMKR0dZMGpOa0lJR3dMQUhKUnhmMXFBQVY3dTA4RmtONUREQURTdTd0ck5IUVBIVTJyRXFybFRLazdHYTlVL1ZFYzZTZ3BkeENXT2dqTApISG1WdHV4S0sxYTVGYWZDakYxbXpxaTFGVGZONDFkWXU5V1ppa3JNK0JVTHBDMVczT1o1Z2lZYlFRT2NVeGR3U3VEVldURHlIVm5aCmpEMjlCNGJ1M3h3Zkg3NTJ6WHVUaml6QUNkUnN1c1Jvb0ZjRVVLSi9ZTXltZ0pqTmZybmUza2VFcWdHcXZJOGxQeVpSOUhPVUkwTHQKb0ZEWHgvTVlFS0t4OGIxUzdSbVplckl3NkNrRG5WRW9CMVdlYURFdmtlRWMwYVAzTDhLamEvQ05kditzdC92WHZxVWJPejZuRDdvbwpMd29NRjl6OUI1USszVzdhWittRDVid0NkYXVoSFhjRG9wWEM1NExLRC9XN0dRR0VNZ1ZBSXhyRHFOWjNST2M3Q2FCaHZSOEFDRExxCkc5VHZGemdjRmpvY0hqb2FIbkkyWW10L3hOYXU2UERlMkloemU3YWNUd3paSEpLNW1Ka1Bmd0pyMFFFSGNTTzR4MTVRdTRCZmd5S3MKbmN6TFcrT2UvYTJWdU1ZQjdpTm9XU0JvWEMxTy85VUFJb3Z3OEtWT2pUdlNXRHZjdEgvZzhNbWI5ZTBYbWsrT05IZGZhdW01dkwvbgp5djZlYXdlN3J4M3N1bnJ3OUxVRHA2NjJkdDQ4MG5iOTBLR3JCNW91TlZXUE5wUU8xaFVPMU9iMkhreTlCam1VY3VOSThzM1dwRnZ0CnlYZU9KZDAva1R4Mkl2WCt5YlN4azVrUFQyU05IY3U4MzVsNXB6M3pUa2ZXM2FNNWQ5djIzbXZQdmQrZWY3Kzk4RjVIMGYyMjRyc28KNVdQdGxmY0JRSjMxRHpzYUgzUTBqM1cyM08vWVB3WUE2bXpEQVBRUUE5Q3hNdy9BUUsxZDkwNFBqKzg3ZnFOejVONlIvcXR0SXorMQpYeGpmbkhYTWhKQXczVGtPemV0RHlMYkU1WUI3QUVCV3hDellOOGRsenNlbGdYNk1BRW94ZDBtemRNNHd4V1ZZay9ZdVpoYXQ0VmFzCkUxYWpBZkNpYWdEUUo4THFkY2JMZ3lYTThrV3NjdGd1WnhRdnB4Y3VwUlV2b1JZNVVRcnNTWG0ycEJ4clVqYkVpcHh0UnNsMG9PUTYKVWdxYzZKa2ZDOE1aSGtwUGI1NmZ0OURYQnhub0tRQUY2U1ZCZWhrWWFKTzNLTWhURU9BcDlqZDRCRzdlRkxSdGUzUk9ma3BaVFY3egp3ZUxXenBMTzB5VW5lNHRQOXVlZjZDM3E3U251NnkzcEd5anRIeXdkR2kwYk9WZCsvbUxseFl0bE4yNldYNzlTLzhQbDV0czNXbjRjCkQ2Z2VYY3BNczRDWE9RVkFXREFBelNSTUFnZzEvRHdYUUY1KzNQOEdRREsxYktOVXU0Z1MrRjhCQ0wvdFp3QVpEWVFCQ0swSkQwNmcKcEU0Q3lJbU9Cb0l0SktWWmtsUGgrVnZoWTh5SnUzOHJOdnhDQUJuejN3QklCQUQ2VGl4NW42a3hKMjFHYTFVUll3QkFXTU1QdGdnRwpCaUFuY3ZKaVd0b3ZBdERrQXFnTzFEUUEwRkphRmdZZzBNK3pBRUtaQXFCWnVKMFFyTzduU1R0UU9BUUQwQnppMXY4REFMbXJHWElOCkN3UFFHcGF2SFg0cit1c1NZa3hkWTIzd0dZN2t2VXM1ZTE4TW9Fb3cwRytsVlorS0s5YnlDdUVQYkFFWE5MaEVXMnJhVW1iUmU1elMKRDR3QStreFkrVHQrd2Qra1NhOExRUEJmV0pMU0Z6UHkxckpMUHVDV2ZzUXYvMWlBcXFHLzRCVjh4WTVtOFgzOFZhcGZDQ0RRejNNQgp0RFZJRWVBbmNuT1hpTVNvdzBzbUZ6NFhRRUtSSEFEMEYwYW9QWG5IUEZLTUpRR05vdnlDdjEybThkamtLWHBWQUJsVTduSzVLMWRGCi9VN212eG9YNWJRaDludERSVXpMbGRyZS9zTFc0K1dIenpSMER0V0RnWTROVjUwK1c5RjFvWDd3Yk4zbzJZcWhzeTFuYis4ZnVOWFkKZDdIaDZnL1o1ODUvNkZOdHh5OXdralk0dWpYWkt5cnQ1U1dMNU5WTHBQdWVNNjVuSXJWT2lpWUFFR3lYeUd0ZUw0QlFSNWhHNnVGQgpVNnZvbm00aUx4bFg1a2JCS2QzK0tOdTJYTnF3UWx5L1FsaTNRbFN6aEY5cHh5eVpUeTZjUnltMTVCVE53cWZiY3Nxc1dXVm10TklGCjRtWlRacG1OcUhhdXNOeWFYMjlOSzdkZ0Yxdnl5bHgyOWV3ZkdYL3dDUEF6ZnU3eU5iK3RZUVF1V2dxZUk2VUkxQnlLalBhcUFOcmoKNng4ZjZCOFo0aGNkN0YybTlqak5kaDlpdXA4U3FVNEw1WDBpMVFEUGZZaW5IQmJyZXNXYWt5TFZHVGZ2UWZHLzFVZFBNcWhmcnUyVAphZEFjUWdyRFJXWFFaZVdtaTdLZ2MwSy9pNUxnYytMQTgvS2dLeDRoNTVXQnZmQlFVdTJvMmhjcnFYNXVRRC9ZWXdKOXppdDlSNHlWCjE4UHVYcUNmWVNPQU1BTU5lNkJnQUJyeDlJTU0rZmdDZ0FZTmZvTisvaGYxK3RGQS82R3d6WDFobXdmRHcwWWp0ZzFHYnUyTjI5WWQKRVhVN2NWTkZ4TTZQM2FyZkpsVEFHZFNNMjJLRitoOXJJTGI4YW9nVnZ3cGlMYWkyRWFMeUxCdGg5V1N3Z2kwN2NhMk51R1pxckVYVgpXTXdrNkQ1MmZNVFdWYUswZjRxOW1WSW03OVVCeEZEU25Ya3EzYmJNbXU3ZTVzSGU0dmJ1Mm9HTFJYM0hhN3Y3NjNvRzZuc0hHM3RICm1udEhXdnBHVzdyUFFwb0dScG9IUjF1R3p1OGZ1bkJvNlBLaG9hdUhCcTRjN0w5ODVOQ05JL3V2SDJxNGZyankrdUdpRzRkeWJoN0sKdUhVNDdWWmI4cjMybFBzZHFmZFEwdTkyWmt5TWltL0xHUU1BSGMyOTE1cDM5MmorbmFORmQ0NlczRzBydlhPMDdINTd4WU9PNmdjZApkUS9hRzhiYW0rNjN0ZHliQk5DeFRnU2d6cE1Bb0FjQW9NNnVoNGU2N3A4NE05WXovTGkxNytheGtUc2RQV05WWGVOclJKRnZmQmRoCmd0dGpUc3BDVmMvNHZUWkVZRW91R01YQ05YdStTN3FwUy9JY2x6MXY0NUxtNDVMTlhGUE5uRlBOY0ptMmxMeWw3SksxdklrQjhCK0oKYXo2VzFINHNySDJYWDdtTVZXSlBMYkFoNTlvUTk5b1RjNXhJT1E2a1BIdGlyaDB4MjVvQXFNb3dmeUtxR2ZqNHVhNEo4UGp6OGZGcgoyTUZFcFFJQTVPL053d0FVTU5WQVNEOFNQNzBjREJTaWw0UjU4ME04dVVGYXZyOU81S2VUcVR4bG52NGFRNmgvOE82ZDI5UFM0MHNyCjB4c1A1aHpzU0c4N2xYMnN0L0RNK2RMZXkyWDlGOHI2ejFVTW5hOGF1VmgrWmJqcTJxV2FXMWYzUGJ3ZmZlenFIN1FObGhzeUhSazUKWnFRVVU5SWVBTkJNOEkwUlFKaDRKZ2E5UCtuNVFyK2RBaUJ6WXRRM2JxclhBU0NQZndmUTdsOERvSW5WNEkwQU1xNElCZ1pDOWRSQQpCVXFxUFQxakVrQ090S3hGNUhRclNwb1ZLY2FHR0dkRml2cTkyQmNBRk95citGOERpQzRUZ29HY3BiS1AyQm9yY3RBc1lvUUZNZGFCCkdEVVZRRGI0ZUF4QVMranAveGxBMkVDd0p3VkFhVXVvbWM4RjBBcE81bXJ1QklEVzh2Tlc4UFk2MFRNc0NYdG00M2RCWnVGK0J0QU0KM0w4RGlPTC9PVWZqTEpheWpZdWgvdThBeE5VSU4wcDVLOWwrbG9RdG9CK3c0UnhjbENVK2RRRjE3K0lYdHdEOVRsNkpWUUo5SnFtQQpPeXhsNWRtUTB1YmpFeGZRMGxld2lnRkFIL0lMUHhLaFhxcmY4dkwvTGs1OFhRQ2E2Um8zbjVqc1JOdTdtbG4wQWJmOGt3a0FsWDNPCkwvNDdKNVlsOFBWVHE2TURkUUFnMEU5VzJBc0JsTHZUMlB5ekkrRHBMckJnL2RZZ21aK3ZXTzRtNFl2a0lwa1VBS1NVeTU0Q2tGUXEKeHdEME5TTjBDVG5DR2o1R2hGUjdVdW9meE50Vk9tV0lKLzlWQWVUbHhsZXBTQ3dsNCsvQ29MV01iRHRDbnJWcjBrcDJ1anE5TmV2WQpoZHJlb2JKREhiV0grNXFQWDZrK09WclYxVnZiYzY1cWVMaHNlS1JsOUZiRDhhRURnNlBWVis5eTk3YlpDa3JRV0NwWm94MmFqSzdhClFWR09sQ1BlOTZJUnl3dWxOWTd5Um15N1dGYnRySXg5dlFEeTl4RG90R3lGaGd2dnB3dyt5VklxM2syeDNtUDdha0hkV2tIamFsNzkKS2w3VkNsNlpFNlBRa2xCZ2hpK2RRVUpyR01GQmZDRXUzNEZRdW9CUlkwNHZtODhxTW1Oa3ZVMHZXaXl0RnlRYzJ6L3c0K1BISUo5SAo5eDcvMkh2bGdVZlFGbGNtRmJGR3pPQzdjOWdLT3NzTkxicjVTZ0NLTStoai9mV1JJYjY3d3ZUSnZycGF1Zm9FUjlYRmNqOHVsb09CCmVuanlmb0ZidjFEVkwvUVlGT3JPaWZRRElnMFlDTXRVQ1kwS3RTTkM3VG1KMTFrWnFwSWVFR3Y3SkZydzBJRE1lMUR1QXlvNkt6ZWMKbGVuUFNYek9pMzB1U1BTVFRVZFBCUjdxbkpzZUdEUUVqNGxHM2NNLzl4cFZHZ0JBUThaZ0JocFMrMkFBR3RZYVVIUytnNTYrZzk2RwpBYjN2Z0s4ZjVKS2Y3MmhRUUU5SVVGZG84QUFxZ3Q0eXZIdnpRRXdJcW9PTzI4TFdaYzJpVnBuUnltMVlGWmFNRWxOR2tSV253cHBiCmFjTkQ5TEhrVlVJc1lNdXZBdlJZQ3dCRGNIc2xCTnRIUHdxZm4za2lkQjhyWG9NVnIyNkZJT1ZyRVpvSldpaDdzaHI4THdhUVVNN0YKQzdUT2lwMngxU2RhK3E5V3RuWTNuQm1HcTRMbUU2TXRKOC91TzNYdXdPbnpCMDlmT25MbU1xUzE2MHBUMzdubS92TXRBNWNnemYwWAptM292TnZaY2FPZyt2My9rL0lIaGl3Y0dMaC9xdm5Md3hKVURSNi91TzNpNXBlWFNvZExiQjRwdUhjeS9lV0R2elVOWlB4ekp1dFdXCjlWTm56bDBFSUN4NTl6c0tIblFVUFRoVzhxaXo3R0ZyNmIyakZXUHRWV1B0dFdOdDlmZmJHdSsxTlkrMTc3dmZjZlNCRVVBUE80OC8KQUFCMW5CeHJQejNXY2ViQmtUUDNUL1kvUE5aNzUxai9UOGQ3eHpxSHgxa1JCOS9ZdUhtNmE2d3BKUTBBWklIUHNpWGxMNkNncWRRbQpBVFIzWStKczU0UTV1QVF3MER6WHBIbk95ZWI0ckFXMGdtV2MwbmY0YVA3RGo4UjFvQjlrSUdIdE85ektSWXhDK0xmemNXbnpjYW1XCmNQMUFTTGZDWndKOWtIN1EwcW9aWm5qMEszaW9hY1RZR2Job09Jck9KRVF0WmdhNnVNbTEzbHcvTC9aVEFFSUdNZ0lvd05mTmVIcVcKaHVuRlcvWGlVQi9SSmk4eHhPREo5L0VVd2dsRjZTR1Y2OXprZWkrcHdTRHg5U01GRmJDMlZpdGlqL2p1UFJWZTB4Vi91Qyt2KzN6bAp5TTJ5YytmcWIxMXZmblEvZGVUS042SGwxcTRwUzFqRkRyU2txUUJDeTM2Ukk3QmlJTFFPdkRHVEFNSU05Rm9CSkhXV2FSYlRVQmNZCmVud2pnT2JpME1Lb1R3SElocEw2SWdCaG1VbEVIV0VUQUNJWVZ5dHpqUWNBd2IrQ0V5TFFaeEpBaTBucDF0UjBHMHFjSFRuQm1od04KQU5MNktsOE9vQzBCbUg1K0J0Q3pOVUMvREVBQ3ZFVDZCZGZEamh6ME5tRzNKU25PaVJpTkRmN0NGZ0lEQU1GMkVUVjFHVFB6aFFDQwoyTUc3UTB5eXdlK3h4aVhBMXA2YzRrUkxCLzA4RjBBcjJRaEFhN201S1B5OFZWd0VJQ3RpNGx4OGhORkFPOEJBSnE0VEFJSVloOEh2Cm1FdmM2a2dKK0lLdGNaSElqQUJpL3E4QnRJenJaMDdjTW9zRUh6aGdXWVFGd1FnZzNndHJnQ1lBSkVNM2dqOVdjL0tkcUZuV3hGUjQKMWFzWXhldllwUjhJQ2orWUJKQm96K3NDRUh4NzRRdXpnSnE1aWdVQXF2eUVWL214c0F6MXRRbksvODZOWnduOEF6UzZtQ0R2bEMxKwpxUGxuUytCL0JGQW1TaUFBS0dtckFiVUFCZmtBZ0F4K1lyRkN3aElDZ09UUEFrZ21rMkFBZ2ovTXQ4emdsWlJJdEFndUh0VisvVWtTCnJ2WlVodXBlR1VBK0dxcFVzWUhqSWZwS3NtVWhNZDZDaUZaQU5QazJaZlkvby82Z3pRdXI2cXpxUGx2ZE9WQjV1TC94eEhCTDcyQkQKNzZYeS9yTlZaNi9VOUoyck8zMmk5Y3JGaUxZclN4VTE4OWtWRHZJV2EyR2RqYmpLUVY3bEtLdEFRNXJGKzU2bER6Wnl4MGxTN1NCcgpnSzI5dEg2UnRPcjFBa2l2RWdXNHNaVXFuc3hmcHdvUDAyelpwQWowSWltMWY2UnAzK09WZnlocytGRFk4aTZuZGhXclpERWp6NDVjCllJVXZNOEhYenNlWG16dnZOZHVZYlVPdE5DZVZtMjdjYSt1Njl3dHRTMUJCOTlEMSt5Q2ZlNC9HNzQyUC8vUm8vTnpvOWE4Q3F6K2gKYVNsaW5sQktvWFB4WERjK1UwYVZlcEJmR1VEKytoaDRYU0Yra09oTlBra0diYTFjMDhOUW4rUW91dG1vSnJwWElEL0psL2FJVmFNaQpyMUc2QjBnSURJUmxxb1F1eWRBc1BxTWkzYWpVYTFUdU9TelhEY3Mxdys3R0xleEx0VU1panhHSjV5V0Y0YkxjN3lVQUdzSEcyMlAwCmtlajZwYnBoTng4QTBLQ2JKd1FBTktEMEdsUjVBNEFnZ3g0K1F4bzlpdGFBQWFqZng5QnY4SVgwK1FiMEJBYWRDZG5VRng0NnRDMXMKT0R4NFlIdEFmMFRBdVlSTnU0TVRsckdyWitIeXpjbXB2NkhrdkUzSk5DZWtXakJLTFpsbDF1d0tHMDRsWUdneVFDSUkyT2lwWUVpYQpETlpvQkpuSEw3Zm1WbGl4NjZ6WU5TdDV5UUFnbHVUWEFFZ2dvcElscXI4eXQ3cTZsNlpXWFducnU5SFlkbXAvNTBqdDZYTzFweTlBCjZzNWNyRHQ5dWZIMGxhWXpWNXU3cmgzb3VvcmxZUGUxL1QyUUc1QUR2VGZyaDBhYWhrWmJSczd0SDdtNGYrVHlnZUhMZ0NHVWt6ZjIKZDE3ZmYvajYvdVpyKzZxdkhpaTlmckRnMnNHODY0ZXpmenFTYzZjdDkwRkgvcVBPZ3NjUTJJRWNLUnRyTGI5L3RPcEJhODFZYTkzWQprWWI3UjV2dXQrMTcwTjQ2aGd6VThhQ2o4MkhIOFFmdEorNjNuVUlHUXExQlE0OGFPeTkxbnI3VE5Ud2VVWFZ0UG1IN0c2NjdBVUJ6CmlNbHZ1NmFhdVdiQUo5LzQ0VWU5VkphNG5Qa3VxYk9kRTAyY1kyZmpZdWZnNCthNHhNOTJqck1nWkR2UTBBcnc3L0pRQWRBbm9ycFAKSmJVZmlxby9FTmF1NFZZNE12TE5TR2x6Y0lselhSUG40NUxoNkEwSEVHejVDMlBTNFM5cmhrOEJUcjFKamtVOVN2am90NGhSVG96ZwpEUXAzalRmUDE1c0pBSUk4QzZCTmZnaEF3UWJVRGhUb0l3VncrQUltZk56ODFIeURXdWp0SVlBdnU5SkRMTmRJQkNvUlM4NTluNTN5CkxpTnpMU04zSFNmdk0zbldWOTU3YWVHMXNvVFc4SnF6TVcyamlYMDNLTEdId1FFTEtQbld4SFRBQVh6MjVwRVRaeFBqSnR4amhJNXgKT1lGWUV3Z1JsVWpETmZuRTdhU0lTUUQ5VTZIMDlPWDRlOHQrSllBOEpISVBtWXRjaXdBRWdpRkZvTjZZNXdISUZ2VHpNZ0J0QS8wZwpBS0VLYUZRRWpRQkVqSmp2RW1jQlFpQWxZd0RDQWk5OENUbkRocFpoUzQyM0orK1pBSkRlZmRQL0NZQ1lNajVSS3Zralh3dTBtRS9jClpVMk9keUxHWUVYUVV3RzBtSmEybkpYMXhrelhFQURRWE5mdEdJRE1jV2hCZUJ1amdUQUFvZFlnNDQ4T2xOU0ZkTlQvdFl5ZVBRa2cKZTBJeUdnVm1CTkFxVHRaekFXUmNEUjdwQndzR29GbkdlWURtRXNQZ1dYN0owZUxFLzFzQXlUeVlHSUNXY1B6TlNBQWc0UFlPWUprRgpJUmtBdEFTdFgvWjhBSDJwS1A5aVlrcm95ay9GNWUveGkxZXdjeGZTc3VGOWVJZForajZuREFQUVIvenlMN2w1cnhGQTB3a1JjMGp4CmRwU01sY3ppU1FCaDFkWi81KzVoQ2dJRHRONnh3VDRBb0l3dy8xY0ZVSHlvZDFTUUZ3Qkk3eXNXeXFVTW9VSW9Sd0JTeWRId3I2Y0EKSkJMRE95NWJ6L1JmU1k2d0k2UTZ1R1k1RVZQL0l0Nm05bFNGYWwrNUMwenZSWEZUdVRMZEJYL21CaXdoUjlzeHNxeHArV2F1aGRPLwpUNS8yZFlTTmF6aDVhM0ZhMjJoTjEvblN3ejIxYmNPMVhlZHJlaTlYRDF5dTZCbHErK0ZHVHZmbzcvU2w4eGtONWx4QVQ0dU5FSFZQCjJJdXI3WVNWQzRRMXFKVDFtUWwxSmlLdVF0TVBpcXNXU09vV1NpbzN1c2RzTmVoL0JZQzJHdEFvc0dlTG9IM2QrU29mclg5cTFxN0cKQTd0cm0zYVhWdmp1eWNacnRyL0xUbC9ITHY2VTEvd0p2MlVkcDJJRnEzQWhyY2lXVUdaRmE1eTdzY2lDVkdYaVd2SEdkOFZ2L0gzUApSOXljOEx6UkI5ZkhnVDYzSDQvZEdidi8rUDd0aCtPUG1nWWVmeUd1ZU5NbC9YTlpKRUVxRUNsd2NFNmxTOWhjQlVNbzNmaXFBSW9PCjBFZkJpOXFFWGwxa2lHOUVxRytlbjIrYnU5OXB2dWNKaXJ5SEtoMFF1cCtTdUxVTDVhY0Y2a0dlcmsrZ0JnTmhtU3FoSG9tdVcrelIKSzlVT0tMeEFLbjB5VGEvVW8wK3U3cGVwKzZRZS9UTE5vQUxOR0FTZzZaTm8reVEvVjFJL0ZYRFBnRmc3Ykt6K2dUc1B5cjFHM1BVRApNcVFmU0wrN0p3QUlNOUNBMmhzQWhLTFI5MnYxQXpwRG43Y2VSVy9vMFJ2TytBYWZDZ28rRXhMVXR5MmtmMnZ3UVBpbW9hanczcmh0CjFWdEQvOEF2c0tNMTJKSHo1dUhpL3A5TDlCdjREQnVYV0N0S3NUVzF4SlplWnNjb3QyV1cyekRLSU5iMFVpdFdPY0JvYWxEWkZxc2MKcVBUY21IUEtiSmxsTnZRYUswYlZDbmJpVjBKUHBwUXBVQ0NZdmhLQVdESWN4VVA4SjM3WWF1ZDBuUGZCalAzREIvdUc2NC8wMUhZUApvM1NOb3JraHVvMEx4ZlNjYitpOTBOeU4wdFIxSGdJN0xUMFg5L1ZlZ2h6cXVuRVFzMUgzNVgzZGwvZjNYdHJmaHdEVU5IS2haZmpTCnZvRXJBS2JESjI4ZWJydDE2T0FQaDVwdkhxeThmYUQ4eHdNbHR3OFUzRDZVZi9kSS92MjIvSWRQQVBRQUE5Q1IydnNBb05abUJLQzIKSS9mYmp6NW9heDlyNzNqUWRud01jdlRrL2FPblVWL1l2ak0vdFE2T0hlc2ZMMjBmWHl0TWVtTmorRnU0NkxkY1ltYmhFMDF4YVphRQpiTkNQRFRIUEVvZW1MclRDN3pWelRadmprZ1FBbXVrYU14TVhQY3MxQm1KRnpIRmlGSy9pVlV3RjBNZG9FWXc2VU5FQ1dxNHBNY2tFCkZ3dVppOTh6ajVBMG41Z09NU05sQUl6bUUxTk44Y2x6WFJQQVV0TUlrZFBSNU1XUjArRGtSdy81bDB5ajloYnBmVjRJSUZRSjVDc04KMU12OERRby9nOUpnVUJzTUdyMUJFK1RsRnVDbE1PaWtPZzA2MTZpMElybWFMMVp5M3VIRXJtSmxybUpYck9MWHIrQ1ZMMlBrTHFQawpyNmFVZmN3cC82MTc0ZTkxWllzcGhmYjRtbVhjT2p2eTNpV0FiSExHZkdJeUhOTGhDSThCQ0VQUGJFSThaQll4YmhZcEJqTVFWaEtFCkFjaU1FUGxhQU9TcTBDeWhCMklBUWtPNkNMdCtGWUNNTFVBVEFFS1RRV01Bd3NxQTdLaHA0SjVKQXkybFpOclJNdTJwQ1F0SUNUYWsKcUQ4SURTOEhFT2pudFFDSUlSY3hKVHl5VFBKWGdjY1Nhb0FGZVpjZE9RNEQwR1FMa0MwQm5sVWlBR2dGT3hzQmFKYnJscWtBc2pLMgo5MHdGRUxiL0xJQkFQMU1CdEpvOUFhQjNlQWhBY0djYlFpTG9aN2JyemxtdTIyYTZoR014TVRiL1lBQjZtN1RGaWVyL0pjY0RKNWF3CjVWeSs5SFVDU0swVFlRQnlVOUVCUUJ3UHdRWUpkekhiYno0eHpJUVlNWU8wSFFCa2lXQzNkOW1MQWZTRnZPeHpXZW1YMG5MSVo1S0sKajBYbGNNOVY3THpWckR4d3lZZThDZ0RRT2xISmg0THkzL0x5Ly9INnVzQ21FWGZPSnNaWWs5T1dNNHZXY1NvLzVsWjh3aS85UkZUeQpxYWptYjl3a2hqQTRRS3VIMDFocTJLc0JLSFc3UHdhZ3lFRFBMWUZTSDE4cFR5NmpDZHo0Y3JmbkFrZ21Vd0NBK0h6NWVwYlBjdUoyClc1ZVVCYzQ1RG9TTVB3aTNLVFVlSWRwWExvTDIxTUNaZ01oU3N2OGwzdlErQ3cyTE5kMElINkg4MmE1SkpxN0owOVpIVGY5bXl6cEoKa2svT3NaTGpOK3BQWHEwK05kVFFlNm1tKzJ6ZHlNWGk0ZHY0aUtacDYyUG1jV3F0T09VZ0hsdGVwYjJnRmk3aTdRUTFOcnhLVzFFVgplT2k1Y1JCVkFuMWdDL3RPNG9yL0JrQ2I5U29malJnQXBGRUx2RFJpQUpDUFVxaHc1M3J2aU5oU2NXaGI4Nm5RcXNPN3FnOUgxQjBMCkxtMzlpeWI3ZlZibXUrVHlqMWlONzZOaEtjWEwyYVVPcEpKNUx1bVc2K01XYllqNVN0dElDRGxLQ2FvcVBYeDJiSHo4L3YwSDQrTmoKNC9kdmpEKytBeEpLYno2N2pKMy94b2FhSmR5aVR3WGJ2eFZ4eWNMdmVISVMzNDNIRnRQRXlsZXVBWUpYRVJYb0E2OEl2YTdOZnRFaAova21iQTdPRGdwcDl0eHgyOHp2T2N1L2pLSG9seWs2K3JKMGo2NWY2QUlDd1BNV2dIZ21JUjlzblF5VStJS0V1Z2FwSDVBRnd3UnB5CndEUkRVazhBRGR3SUFBSUpUWGFmUFpWaFkvY1pHbkt2UUoxZjZKNEtiM2pZQVlXdXowMEhBSm93a0JvQkNNWERCd0lBNnRQcGU3MTgKZW4wbUFOUWRFSHdtT0tBN3hIZGdpMTkvcUgvZnptMm40bUxydCsva3lqSVhVU3FYc1dvVzBRck1jV2x6dm84eHdXV2d5eDV5aVIycApHR0pMTExJbEYwTnNTRVVRUzJxeEJhWEluRnhvUmlxQXJSV3RCR0JreDZwWXdKd0lnQW1aaVY2R3hacGU0a0F0WFVDcHRxRldybUR0CitZcXZBd0R4WHgxQVRBbU41TWIvaThEL0hXYnVVbW81WWN1QnZHT1g5blVOTjUwWWJENDVCR2s1TmR4eStpeVdmV2ZPTmZhZXg5TGMKY3hiUzBuMTJYODg1eUtFejF5RUhUbDg3Y09ZS2FoL3F1WEtvOStyQnZtdU5nMmNoTFVNWER3eGZQVFJ5NDhqdzdjTURQeHpzKytIUQppUjhPZE56Y2QraDZTK09ObHVvYmdLRWpaZmVPbGowQUFCMHBmOUJhT1hhayt2NFRBRDBBQUxVZXZ0ZldPdGJXL3ZCb3g5alJZL2VQCkhML2ZldUplNjZuN0IwL2ZQWHp5eDg2Qjhjb1RqOWNIVlAxbWZlaWIrS2pwcmxFemNIR3pDVWxteEV4cjBsNWJVajRBeUpxUWd4VkIKQTREbXVpYUNmdUJ1RURSUUhCOWpRODVkeENwRkUwQUxhajRTMUh3bWFmaE1XZ2NBZW85ZnY0eFZZa1BOQWk3TXdFVkR3RUNvNzR5UQpEREVscGhpVDlEWnVEd1lnZEFmWEhUTVFnR0t0cUdGZlNiUXFiNm1QRCtvQ3d3RDBjeG1RRVVBb3Z0SWdneHdCU0krYWYveThwQkNkCldxVFRpRDIxRWppL2VHaWxFRGp2U09TY0Q0VzcxN0JTbHRLS0Z6RnJGckxLQVczTGFKV3JhUHVXMGNwV01Nc1drWXFXMDZ1V00rdWMKcUtWT3htNDdBSkFaS1dVU1FCQU1RSE5KU1hOSmUrWVFFNTRZS0JJcmk1NEUwTmR5ZDUyQi9WOEJTQ01CQUMxbEJLSW1uQmNBYUFFNQo5WmNCeU5nUjltUXlQL2p0UE9kWU05ZDRyQTU2S29DV2t4R0FGbERpN1lqeDFzVEkzd3YwR2gvMDVGOE9vTkFBSFFhZ0VIL1BYd2NnCnRsek1sSENvVXRGWElvOFY5RUFyY2dROEJ3RFFaQTBRWmlEWVdVSlBmd1VBTFNBbE8xTFR3RFNnSHd4QWFCMzRad0MwaHJQM1hjN3oKQVdReUJVQ3pFSUMyUGdVZ2p1ei9Ca0FCOHdpaEV3QWliRWNBSXVVczVlUy9DRUNmR3dIMGhhUU04cVdrOGpOSjVmdkMwbmY0UmUvegppajhXMUh6S3J3SUF2U2NzL29CZkJnRDZSdkxhUm9GTkkyNkhMNE1WS1hVWm94QmJJT3hqWHNuSHd1SlBSWFYvNDZZQWdBSjE2RG9lCkExRE9yd1dRdHdIZWRqa1ZUcWN5eFg4Q2tOY3l3alpMNXlTN0RYdnQ4Wm0vRjJ4Mzg5Q0ZhSlN2Q2lBdmpVcG1uUHZrYTc3ZlNwZEUKSjBLeEl6bmZhbU9jcVV2TTlBMDcvNTlMNUV4aWxpa3VmeEV1aGV5WG4xamZXZDg5MG5CbXRMbi83SUdyUDBsVEQ4OWVIeitIV0dSQwp6ektqNTVuVENzeW9oZGJNU2d0YWhiMmdIaFZ0Q0VxblZyQk9GckZDTVByODl3QUs5OVU4QlNCdmxkRGJYYURmN2g5UlhMMjkvblJnCjJZa3QxY2QzMUp6WVZOWHAzM0RTcDdobnZXL0RoOHlxRDVsTkgzQnEzdVdYcitTV09aQ0w3YWxWckxDMnhtUFh4aDZOUHh3ZnYzWG4KcC9ISGo4YnYvWFI3L01HUDkrNlBQeDcvWVh6Y1AvdWt4WGVKYzlmbkxLRGt2cnR4KzUrNFFkL0pSV1FsbVNYRGNjVlVrVHVmNjRibQpRbndsQUVVR2VNZjUrOENMaWd6eGl3M3lUZkl6UkFicC9iZjZwTWZGSG81Tk91NFIwSUhqOWpERUF5TGxHWTViTDFmZHkxYzlheURJCmlGQTdMTkJBWU9lczJQdWN4R2RZN0RVbzFJMEswRHJ6a0ZHaEZuSldwRHNuOW9UdHMvU1ppSEc2UmNRZ1ZEK0UwaS8zSEhMM0FmMU0KQXFoZjVRWEJBTlJ2TkZDZnhtY1NRTjNHOVByNTlRYjY5Ry95SEE3ekJnQjFSZXh1MkI0Ykx0Y3ZJclY5d3E1ZnhxeXd4MlhaRXdybgpmWnV4a0pCcXhpNXpJcFU2RUlydFhBdHNYZkp0WFBOdGNRVVEyREVuRnN6SDU1bTY3b1hBamlXNUNKUmp6NnBjeUtweVlsWTZNaW9jCjZPWDJ0TElGZ0I1cXFSMmxaQUcxeElsYzRrQ3NzcVZVL0RjQWtvalVGSjc4SzU3dng0S2NSWXlEaThpMTlNMjF0U2NIR282UFF1cFAKbkcwNGVhSHgxTVdHMHhjYlQxK0JOSncrMzNUNlF0T1pjL3ZPbk45Lyt2ekJNK2NQbjBacDZodDlVaDUwWWQvZ3hRTURxQjRJY3Jqdgoyb0hlcS90Nkx6VVBYR29adnRKMDluSUQ1TnpGQTJldkhoeTlBUmc2Zk9iV2tmWWZEKzMvOFVETjdmMFZ0MTRNb0xHalIrNGZiWHNBCkFHcnRIRHQ4N043aEUzZVBuTHpYZU9aTzI3RTdIU2NmQ2lNYXBuMFhQSTBBUm9reHdTTUFtZUQydk8yYWFvN0x0Q2JrTHFBVUxxRGsKbzNvZFhNNTgzQlFBNFhZRFZtWVJZbTBwZVl2WlpXdUYxZThMVWVIejU5TEd6MlgxbjRocjN1SFZMV0VWQXlObTRlUGV3a1ZCNFBGbgp1cUlIbjRWUEJHTzlUVWhFQUlJdFB2RnRmUHhzWE14Y2w1MnpDTkVBSUV0eStEL0VYdTQrY204RHgyQWNDUFlzZ0NZS29nMXlGRDBhCkRyYlpTeERtemZmU1M3MTg1RnBQNlpONUJlVnVTalJtOWtQZXJqVzB4TVdrZ3NXTWlrV2NZaWRXOWlKNjdqSksrU0pPMWxKV3hScGUKNHdwV3ZoTTVHYTJOUmMrMlp5VlpVektmQzZDM3lja1FaQ0RqR0RFTVFKRFhCeUNSUWl2RnVXbW5BQ2o4VndBSTA0OFJRTVlSM0dobQpJQURRRGd4QVdCMzBpd0JrUmRqOU83N1BMd1NRTVY0QW9DQS83YThBRUVjaFlZalpOS25nbnlMMUtucUFMV1VYUEFkSFF2U0xBWVRiCkJBRENhb0RtdTBTakxqQUNxcEhHaXFBeEEwSHN5U2tMS1dsTDZKbkxxSmxMcUJtQUlXeWFSRlFaVFVsZFRNdFl4YzVkeWRxN2hwUDkKRG0vdkdsN09LbDcySW1hV0ZURng2dmd2TE5ndGMzRWhNOUU1UHR5Qkd2QkhycG9rNHJPbEhLNGIvMG00VThLR0lQMFlBY1JSOFBodQpBbmo5b0IrMVdneng4SkE4eXlBM0FMdUdxMVN4NUZvKzZFZXVKck05MlArUWlSMVlJZWJrc0Rud1VZQS9MWDduUEZLVUF5TmpKYnRvCkhhL3dBMEV4QnFEUEpHVllQcGVXZnlHckFneDlKb0ViS3o2VlZINGlSbzFBcUJoWlZMVk9uUGVCcE93VGZza0hndndQeExXL0Y1VTUKSzJMMU9tV2dqenJVMTJPTHIycXJ3UjJKSjBBVDdxZkY5QVB1d1FMNjJXeFFiSUpMRFIrWm53Nk9qNUxmaWczbWpQQlo1RjF6aWJ0bgp3OWNibGRsSHpTY21Pekx5MS9ESzF4bVhpUDlVVVBhbHNQeVAvQ3lLZU9kbW5UNTFrMWZhRnQ5VTBNOVcvK3p3b0p4dHdiazdnZ0ZBCmUzY1pFeEVNbVp3RkVldi93aFlDU3dqejJSMHMzMmFRdXhzOHZwTzVVWGx5dVlpdmNPZExaRkozbWRoZEprWHpJRXFOUFdCaW1VZ2sKRVFxazN6TTBhNXdEelRmRVc3aG1PdUNUZnl1SUVXa0RRanpaQVRwcG9LY3MyRk1DQ2ZHU2JVSHVBUWFoUmNHTUMyS2doSHJMSVFBZwppRUhIOUZCeGVlNjhmMG04M3FFbDI1T0swSnFGK0hTNG5wdXhJZHBrUTRJNVBzdU9VZ3hYVG91b1pVdm9GZks0bzZsSExyVGVIQSt0ClBXVkhqWGh6UXp4YzZsa2FEeHhvZmhGQzZteGkyaHh5bGlrdGJ4NnpHRTVzWnR3U2MxNjVCUTh3VkcwdHJFRXhqdGF4RVZaYWlldEIKUXBhU1dqdEo1YmZLNkZCZmZWVGd4RVNJOFVFR0FCQm1JR3puUlJNaGh1bFJDNUJPeTFPcEtENHlZcENVN2VFdUQweEpDYTNyREtudApDSzF1RDYwNUdsclZHbFo5ZEV2VjBhMDFyUkYxSFdIRkhYL1hGUy9sMWEwU0gxM0hxbGhIU0NMNkhXdy9kaGJWTjQ4L2VQUnc3T0hECnNidGp0Kzg5SGtPRlA3Y3ZnSDY2cjQvVFFnL08renJWOUx1aStjNDVWcmdrQjJMMG45aDZtcGpGa2xNWmJreXVnc0dYMFFRS3B2RXMKUzVmSWFXSUo1YmtBRWlsWXZsb3BBR2luanpiU3p6czZRQjhUYUlnTDlvTUFnR0FmeXg2TlowSkdha2xUODVHb3JFNjZzcHZNRzVMSQp1N2lpTXh4bEgxL1h5OUgyc0hWOUFxL1RmQTNBYUpEdjFpZVU5WXZjQmtWS01OQVFYenNnMEE0SWRZTWlUelNFL2tuZ3g1L3pwSDdvCnFXRHpMaHE3eVo1RXBvUDB5N1Zvb05ra2c0d0dnZ0I5a0lIVTNrTWE3MzZkVjQ5VzErMnA3ZlgyN05aNW5nb09hUThONlFyeXViakYKMEJxK1M2N0xzV1BXck9OVXY4ZXVXa2tyWDBRb2RzQVZPQkFMME5Cb2FxRUZMWE1lSVcyZWM1cUZhN1lkb2NBT1gyaUZ5N04wemJWdwoyV3Zta2pOdlk5YmNEUm56bmJNWEVBdmhjN2lVV2c2UHNKSlJzWUpXQ1JmNlN5amxUcVJ5UjJLWkE2a0NZbzh2c2NLWFdKT0szbVhGCk93dDBQQW1OcHlCZ2E0RUJnTEJwb0tWUGxzSjRZaURBRUc4Q1FLamxtODBUc2xoQytUZUMwQldzTEVkZWpRMDV4NEdhOXZXMlV3ZE8KRHRZY0h5azdOVlRWMVZOL3VxZmw1UG5tTXhlcnVub2JUNTJISUFPZHZnQzNRRnE2THFGMFg1ak12cDZMazJudXU0U2xwZjl5eStDVgpmVU5YSWZ1SHIrMGZ2cnB2NU9yKzBXdjd6OTg0ZVBHSGZlZHYxSTFjcmhvNGY2RHg1c0c2VzRlcjdoNnRlTmhXTWQ1Uk05N1dOTjdXCk1uNzR5SjJqclhjUHR0ODdjT3JoNGVNUE9nN2ZQZHAyZi8rWlI2ZVAvdEE2TU02Sjd6QngyZjJiOVRHelhaUGVjb2w4d3pVY2pESUgKbDJpR1Q3Y2k1aGlIZ09VYjV6L010aUxrQW9CbTRST200NlBmeE8rZTVob0JSd0RnQy9Cb0dhdmtQVUhWeDZMcVQwVTFuNGxyUHhQWAp3MVhmTzl6YXhmUkNjMElxZ0FrQmlCZzFneENGeXB5eEltSjhETVNFRUdkQ1NNQUNKL3ZwcnRFekNMRVFDK0xPMzBvOFJONnNBTzBFCmdDYjd2eURZUEVCQmV0bGtBdldLQUI4NW1BT2k5NVQ1NktSZU9xbFdLL0hRaW8xZFlFS1pTdkJYWWZCeWVvWVZPbElWTGlVVk9wSnoKRjlCeUhXbVZTNWxGeTlrbEt6aWx5MWpGaXhnRmp0UmNMSGFVREV0eThteFNQRHp6YWFTbzZhVG8yY1E0Z05wOFN0SThjaUlBQ0g2YwpLQVlpeGN3aXg4N0Z4YjVGM1RxWHRQT3ZZbStkZ1J2b0xRendGZ1g3dWdjYjVDaFQ2Qk9zVjBLd2lSQUJRSHBQdWZIWnlqeTBVcldIClRLcVJLejNFVkxuYmFyckJoTFFUVVBVV0hoVXlnelhmSnNaYmtCS3RLY21BbmduOVVOQTZHRllBSUZMaVBGTGNIRUlrQUFoMWV4RjMKZ0hVbUczNG1BMmZ6dWZpSWVmZ29DM3dDS01xUmtnbmdjNkpuMnRNekZ0RFM3Y0ZEbEFRYlNvSTFOZWF2QWwrZGw4TGZUNzdKVDczWgozeU0wVUJzV3BNUG1QTVFtUDhUMnd3SzlVZk5Qa1BmbVFLOWdQNjlBZ3c0QVpQQldleGtCcFBHY0FKQlVoUUFrVVlLQnhFS2xtTzhtCm5OSUN4R1JKaFRTWjdGdUovRU9XOTBMeUxnUVZZcHd0QlpBSDFFdGVnSks0a0pLeWpKR3hpcFB6Q2dCYVJFMS9yUUFLQXdETkltMXoKcEFXK0VvRGd0NjhLSUNrQVNFVmxxN25QQTFDTUF5TnpKYnZrUlFEQ1dvT1Fmc1Rsb0o5SkFIMG1ySHhQbEE4QStraUE2cURYQ2F0LwpLeWphSUl0OExvQzIrZXRlRENBSkFFaXNOZ0tJRGlLTW1FM2FQUk1YT1FrZ0IzcmVhbTdaZTd6S3FRQ2lTbmFGZUJvd0FLVnREWm9FCkVOWUM5SElBN2RtaWp3LzEzclhKRFFEa3BsZXZsN3BUdVFvQWtOeU5OeFZBQ3BrY0RQUXpnSmpxcVFENmtvY0JpUHZyQU1SWGN2OGwKMGIxSEJ3QVZJQURoTW1hNXhzellFRHRyNHg0TFFqWmNWUytrbFVFQVFQYXVLZi9TMTZqU1RuMG1UemY1YnZmMGpSbTJ6REx6alhETgpCMWQrQ1ROZEU2YTd4RS9ISmM3QUpac1FVazNJbWJPcG1YUHBlMDBaQmZOWkpaYnNNaXRPT2VvYTQxZlo4aXB0QkhWMlJoVXRFRldzCmQ0c0tBd0FGVEN5Rytzc0J0RldQT0t0Ujg4UktEbndoQS9YK1dzTW1mVUpTYUZWYldIWDdreHlkektieVE1Rk54MzN5VG53cXIxNUQKcWZrSHAzaFh6dW1SUitOM3h4ODlIQisvZTNkOGJQekIvZkh4TzJQamorSG5lK2QrR2g4dk9YVHVhM0dXMmQ4aUxaMnp6RjJ6VGI5UApzM2JPdGlkRVlRQml5aWdZZ0FSeSttc0UwUFlRWFp4R2s3a3pxdkRJNGNvRGh3OEdSSjhtcVFZWXNsTmkrV20rN0JSZmNVcXM3dUdyCmhsbktVWjdIb0VSM1hLSTVJZlk0S2ZJNExkTDFpblg5SWxRdDFNdFZUZ1hRVkFOTjFnODlGV3p1NmFrQXduclcrbVNhSHJtbVZ6RmgKb0Q2bEo1WitZeU1RWXBDblQ3ZVgxMmt2ejlQZVhsMEdyM042d3pGOThLbWd6UmUyK1IwSkNkQzY3ZnFjbnZVZW8zWWRweElBdEpwUgp1WVJVNmtRb2NpUVZPcER6MFh6dXBOUzVyc21tRzFOZkJLQzN2NThBMEdKYStYSjY1U3A2QlFCb0piMXFHYTFpQ29DUWdSYmdpaTF4CnhlYkUvTFdNbUEwQ0Q2NzBad0JOcm9QeEh3RWtrSEdZWXVrL2VFR09aRGdwNXBrVDBtZCtzMjIyU3pSM2UwM0JpVXQxWFlQMW5RUDcKVDUrdjdldzFMaGg4SFFNUVpxQVhBV2lxZ1pwNlVTWUI5TE9CUnE4QmdDQXRaNitCZnZaZnVObHk4V2J6aFJzSHp0M2YxM2VuNmRqdApwZ00zbSt0L09GVDNVMGZqZzVQTmo0ODFQemphT2Q1dzlNNmh0cnR0Uis4Y2FQL3BhTmZqL1VkdUhlb2RsOGZ1dDZSdWUrTzdzTGRjClltWnVqQUdkVENQdGVoR0FySjhISUZOaUVuaGlPYnNVcmY4MUJVQ2ZDR3ZYY21vVzBnc3dBR0dselU4QTlQTkFxaWNHUW5rQ29CZ0EKa0RreDRyY1NUNUUzQjQ2MGt5MUFVMnVBZmdXQS9pWUlYRUZOQlFDQnA1ZUFxc201OXJUY2hkUnlERUFRREVCT3REelFEMnp0S1JsVwpKTGhhaTRPbkRmb0I0cGlTRXVhRE0yaEpjOGtKY0R1SVpBNHBIdmJud0krd0E2OFJBRVRjOVdlSnQxYlArZFVBa25zOERTQnNTc09uCkFEUXhCT3oxQWNpQk9nRWdXK29lRzFyczM0Uit6d0lJcS9qNVh3Q0lJWk45SjVWL3d2RmVUTjF0VDBtMUl5ZkFGZ0JrSk0wZUJ5SUMKMEhJbXFscitSUUFDTkQwWFFLaGMybGdjRFFBQy9id1NnR2JqRVlEbUVMYzZVZjMvekZPUnhRSUFFTWROOEVzQUpIQVgva2NBS2JRSQpRTzVxREVCc0RFQi9sMHJzbWFIUEFtZ0ZxL2dsQU1MMDh4U0FQdUdYdnl2TWUxOWM5aUVmOEpUL0x1aUVsL3VkZE1ldkFKQ3ZweEZBCklqOEEwRXpTendDQzdUeENFbnl2NEhyaUtRRFJwQkZoM243UEJWRHVqdUJKQU9Yc1F2ckJBSlN4UGVBcEFHMHh5R1UrSHY4VXE4aGMKTjdsUUtGY0laRExac3dBU2k2VWlvV3dEUTduR3hkOThReXdDRURIbGMzNE16eU5na3lmL1dRQnRNeWhlQWlCNHNSb1ZWNkJrZnlmVgp2RTlQc0NmbVdoTXpFWUJjNGt3MnhNM2VtR1JKaEF1cHNrWDBjc2dTZXBrbHJkWWFYMkNQejdSeVRURWxwSnRTQythNlpOamljMmE0ClJFT21PMGROYzQ2RXZPa1NPYzAxYWhvcUpvaWRpWStmUlVpYVEwbzNKV2ZEdWNTQ1hteUZ5ampLYlRqVjlweEtPMTYxSTcvOE8zbmsKVm9NKzV0VUJGTzdqRWFLVjZUUml3ODd0NFRtVjhZV3RzWVg3ZDVjM2JDbHZ4eEpXMlFZWUNnVUcxYlpCZ3VyYXc2b09iSzg5Slk0NgpSTlNWNytzY0ErZmNlWHo3THVhZWh3OGZQQngvOUdEODNwMjc5MEZGajhjTkJZTkxYYVBNdm80M1g1OHo4NnNrYTBLT0RTN2IvTHQwCkFOQWZXVDVQQVVqb3hrSW5XZ1h0dndmUXppMitPLzNWT3czYTJOajQzSU9kVFdmT3RlVTJIVk50NnlVTDJsaUM0ekxGb0V3MXdKVjEKY3hWZEFsVVhYVEhBOGVybmVmWUx2UHFFbnQxQ0Rhb0I0cXQ2K2U3OUF1MWtwa3BvYXZmWnY4Vm9vRjZ4WmlxQVVGMlJ6QU1DQmtKeAowL2E2NjdBTUtMMzZWRjVkV3UvVG5sNG5QVDFQZXVwT2VudWUxbnNQZVJtNnZRUDdBZ3p0d1pwUXo4Q1BHQW4yK0pMUDZQVUFvSFdjCjZqWE1xdVhVaW9XVVVnUnVRZzU4M21hNzdnRnR2NzBoQlFCa2kwZGRZSk1BTW5lZUFCRHNPNUNMa1g0WTFVQ29WY3pLS1FBcW5RUVEKNE1uTU5YOGVQbnNWTGVJN251cFpBR0ZkWUM4SEVGZktJQXVGZitVSDJKQWlwN3NtelNNbHo5NjQ4Ly85YTl1YjYzZTRiaWtyTzNhcAo5Y3kxdXFPRHRTZUhxazZNMUhWZWJ6aDVEdkpzTzFCejEza3NUMGxvRWtBb0ExTU1aTlJQMDhpVjV0R3JMZWV1QTREMlhmcGgvK1ZiCnRkZXYxVjlIeTN6dXYzQjcvOENQKzQvL3VPL2dyWDJOdDA3c0cyODU4S2lsZGF6MXlKMk85bnY3ajkydGJmL3hhUGM0SzdiTm5MejEKalgvNXZVV0xOaUhGbWJoRXdlSHJEWmZ0SnJqNFNRQmhNMEUvQVZBTzNJZ0I2QzNjYnJSTUZUNEJWTHFZVWJLU1cvNitxT1lUTVpyOQpHUUQwcWFqdUkwSE5hazZsRXkxL0hpRmxCbTRLZ1BEb09Ea0RId0g1TndsQkVJQ3docUpZTTBMRTV5SXZnUmZYejVQL3FnQXllTW1mCkFwRENRd1FBK2xyb3U1S2FhRTB1ZEtEa0xpYmtMeVRsT3REM0xxSlZnSHVlQWhCa0lUM2ZnWkp0VFV3MUpjQ2hLWG8yNkllYVlFNUoKc2lRbm05TDN3SStvR3BvWVowcE5OS2Vsektja3ZVMU1BQUM5U1VNQStwUElXK3ZEQy9ReWR0djV1cjBFUU05MmdXRUFVbm1JYVFyMwpOUXhmckZzTnZXT0U3Wk1Bc2lJbnZSWUEyUktUQVVCTzFDeEhXc1lrZ0JaUzl5eWdKeTJneC85ZDVPL2w1ZllTQUUyV1A3OGNRTmhTCkdDOEJFRm9zeXdpZ2pUTDU1enlmNWZSSUIwcnlBZ3BheEFMRU1qa0hOS3FBWm1XOERFRFlKRUJZSlJBQUNKUXpGVUR3SXpaRjBNc0IKWkUxS2VoR0FadUZDMFZwZ3BQREZOUCsvOFpVVU1lL2xBREl1Qk1hY0NpQjNsZkNYQUVpaVFRQ1NxbWtNTmUrdkVza0NSb2daS1hRTwpBYzJGQUYrYlp3SDBpYVI4RWtER0dEdS9RRCtpTXFBUHBwOFBCYVVmY1V2ZkVZQjdTdDlqRmIzRHpsdkZLZjZRbGJGZXVnVUFGS1QzCmVCVUFpWXdBa3Y1VzVHOUdRL00wR0FFVWdRSElGSjlvUjkwTFg2ZDN1V2dwK0VrQU1lRDhyUTlJMit6OUN3RUUrb0drYnZmSEpnR0sKQy9FQ0FJVVo1Q0pQelYrRjdnU3VXaVlTeXhXaWx3Tm9yYXVmeGNZNEFKQWpNZjB6WGl4SEhSVHNKWHhWQVBsNWNiVnFua2pKMkNoegovNUFSNTBqSU1RSW9hN1p6d3R5TmlmTmMwbTNKQlU3MDhvV01pc1VvWlE3OFJudDZ0ZVZHZE5COG01eHN6a3FiNlJ4bFJVakRBRFFECmpuRXVrVys1UmhpekV6SnRZOFJienJ0TlhLSk5uRkY3MGh3MHRkcGVTd0phRjlxT1VlbklLTGRuVlR1eFN6ZElkMi8xOGZrVkFJb00KOGdsUml3SU1IbEhGVmJFSHowZlVYMHhvSElxdVBicTc4dVN1eXVQYktqcTNWblJNR2lpa3RpTzQ0WGhZWmV1Mnl2YXdrcVBIYndKNgpIbzNkdVRhT3pETis2K0h0ZTQ5L0hIOXdkL3luVzNETG9aRkh1T0FESnQra21INmZadWFjYm9QTHMzTXBNLzgyMy9UYkZDdGMwZ0o4CjVGUUE4ZHlZUWdVREFJVFZBRDBGSUR6UjVWVUJ0Q01rZUdlb0lkcFhGYW1VN3c0SjI3dnZjTVBnNWNhakk0MkZoZTErTy9ySW1tRzgKcko4cTZXTkord1RLVTFMVklNZWpqNjA2dzFhYzRjcTdoTzQ5WWxXdkFEVVI5ZkUxazVtS29jbENvcWRqTkJBQWFESlllVFVHSUJRRgpBaENLdXc3U3AvVHNVbnVlMEVDMHA5U2FNeXJOR1kzdWxBNGtGTkJqMEI4eXlIWjZDRGFJOUN1WmFjc1l0ZXRZVGUrem53QUlQbFNVCllqZ0JtK015NXptbnpOZ1FPL1A3K0tjQUJKa0VrT21HVFBDUUU3VjBKYk42RGF0MkRiTmlOYXNLREFRZXdnQ0VHb0hJNVhiRWN2aTMKODV4ejVycWtMQ2R2L1JZT1dMOEtRQndGaXlEZy9vSHJiVTdZOGNaM1NQYXpYU1BndlBpR3k2NDUzMGZoZmV2empseHU3amxmMmQ0SApObTArUFZoLzRxeXhNT2hwQnNGdjBSMmVNR2d5alQwWElCaURtdnAvTmxEejBPV1dZYU4remw1clBudXQ4ZHkxcHZQWEd5OWNiNzU0CnBmbnFsZWFiMTVwdVhXKzRjYVArMHEzYXdkczEzYmZyV2g5MmRJeTNIYmgvK01pOWZZZnVIajArWHRrK3p0bFdPeHNYOWNaM1lkT28KVVcrUkkvN2Y5Mkh3NUdjUkluOUQyRDNiTmY1dFhCSllCOFF6dVJTR2NSUll0aGsrYlE0dVlTWStCZ0EwM1RWNkRqSFJncEsxakZXMgpsbGVKQVFqMDg3bWs3aE1qZ0Zad0toWlFjazN4eVFDZ2FZUklKQnVrSHd4QVU0TXdaUFRRcnVuZ0tpSWtCczdRbndqMVhFKytyNWRBCjd5V1lDaURZK1k4QTBudktuZ0tRWEMzOFZ1UzlscFlBbURNQ3FCQUF0SkNlQ3ppR1U4bktKd0JhekN4RTlLSG5RUndwMlRha05EUEMKbm5uRWhIbmtlRE5xa2prRm5KRTBoeElEQURLU0tOR0NubUpCVHpVam8xSnV3QWNBQ000RmZ4VDZxQUZBUGxJamdJejYrY1VBVXFtbApjZzhaQUlqcDVyYVdpUUEwZzR4b0NPZGZFM3dNQU1pY3VHY1NRR2dXeEZjSDBCemNMbE5jSkxBQkFPUkF6bmdLUUl0b2lZNzBaQWZtCm5xOGtnZDdlN2dDZ1lGL1ZVd0RDRElUdGhBYWdkVENtQXNqUDJ3TUFCUHJSYVpXL0JFQU1CWmN0RTdGa0VoZVo5SGNDcnhYMG5ZN2sKUFF2SWNVZy9KRFQreTQ2NHg5ai9sWVpWTGI4TVFLZ1I2QW1BSEtscG9KeXBBSUxmV3VIUXBFSDI1QlFNUUN1WU9WTUJ0SmlWL1JJQQptZUMyb05YZ1NWdVcwd3hmODkzb0VpNEFpT1VtZW4wQUVxcTFiQXhBRWcxUDVzRmtxQVIvRVV1TkFOb3lCVUJ4RHZUc0ZjeUpMckNQClJLWFBBZ2pURHdZZ1REL3Y4OUFNUUt1NGVhdTVKV3ZweGF1WWU1Y3pDOTVuSnY5TEZtTHdWTDBTZ0F4NkJDQ1JVdmFsS0hnK0RjMk8KWlVKRUs2MU1KOENYT1hJdWZvOHRKV2NwczJndHQvd0RmdG5Id2drQXNkeWl0L2tHWVFCS0R3OStMb0JBUHk4Q1VPeG16NTJiM0VMMQpDcTVPODBlQnlwV2prWWprY3BrUXhQTVVnR1FTT1FhZ2pTejM5MXo5clozakFDdE9wS3hQdUhGTVZWQ2dsK1JWQWVUdkpkQ3FPUklWCkZhZVFmOGFNV2tqTXNpYW1XK0gzb2psYlhWSXQ4RmtnbFVYTVNnam9Cd0tYN1BhRXd1WDBLaXVYVEF0cXlteGl6R3hDL1BUMTBXKzUKb0pFamFKaUo2MjVqZGsxMzJZbXlJV0xHeGwwek4rNHkrUzVpNXZySTJlc1Q1bjJmYWU2ODE1Wll1SUJTdVloUzdraXZXc2dzMnlpSwozS0xYUndWNHZpcUF3bnpjUTVRQ2Z5LzF6cnp5aUlQbk4xZWUzMTAzSE4xMEtyNitKN2F1TzZyMnpLNmFVOXVxam9WVmRtd3ViOXRVCjBlcFhlVFNrNG1CMC9iSE5KZnZxQm9mdWp0OFplL2pEL2JISFAvMTRjL3p4K01PN1A0eVAzN2d6UHA1UWZmWWpidkgwcnhJdGNCVm0KRzNPc1hUTHRObWFhZloxaCtXMnVIYUZnN3ZkN1hnNmdxVVhRTkRyeFZ3QW9JZEN3MjFzYjQrY1RHZVMxV1NzTzhmVktMaXdyR2J6WQoxRDVjZTd5L3RxYWxMV1JQSDgrM2wrSjJraUU5eVpjZUU4bE9TUlJkTWtXM1dOYkZsNTdoU250NFNvQk9MODlqTWxNeDlMUjducVRYCmFLQWUwYy9wRnFOMFNkVW9jZzhJR0tqYlRZdWxSNmtCOXh4VGU1eFVJUlgxdTN2MnFMMU9hcjNhZlBUbE9sV0VEcjdwOUsrRkh1L1QKRWxmU3ExWUxhajdnVkwzSHJnQytMS09WT1pBTDRieHI2cEl5ZDJQUzlPOWpNQUJaNG5MZ0haNEVrTFZyTGdCby9vWXNzNDNaMXZqOApKZlNLMWV6YXRleTZ0YXpLTmV4S01OQUtSc1ZTYXZsQ3NyR01tbFNHQWNqVUdRU2Z1SmdVOGcxUHpwWlJPUW9TNk9jcEFHRkYwQzhDCkVFL0ZKNGo1bnpKVXByalEzK0JqNFlNOTdmdndOemVDZ1NMZVhKODQ0NXVrZitncmt2WVBOdmFlcnovUlZYT3NvKzc0YUoyeE9QcHAKQmhrQk5EVVlnQnE2VVNZTTFIOEpNeENrYWZCUzA4Z1YwRS9MdWV1Z240YXpWN0hGaGcrZi9lbkErUithTGwrdnZYNmw5dWJWdXBzLwoxTi80c2VINnZhcVJlN1ZIcngwNWVPdm9rWWR0eDhmekdoNjUrTlRNV0I4ODdmdTR0MXhpWmhCaVFEL1R2OTg2Rng4eHpXVVg0QU1ECmtBVStBd0MwZ0pnUEFRRFpFQUdkT1doUTNnU0FVRVd6S1RIRkNsM3NvZFZNUHhCT0FPZ3phZDJuNHZvUFJiVkxXV1UyNUd5NFA5YjgKTTQyQWxJT0tySjhHMEpQbEdnaTdVTU1TQ1QySHVmam9EN2krTEozUXgxczBDYURKL0RvQU9ZdTA2Mmd4dHFRY0owcnVVbEx4WWtyKwpFbWIrQ2xybEtsYkpLazRwQkF3RUFISms1TnZUY3VFaTFzRUlJRXRpRXRqQ2pJd3lINjI0bmppTEVEMlhIRGVmbm1qQlNyTmtwSnBSCmsrY1I5OHpGeGMzRzcwWUFJa2I5WHVDcjh1Yi9hZ0FwTkhLVmg1RGw3cjZPN1QrTGlBQ0VVUVlBTkpjUTl4b0JaRU5Jc2llbE8xSXkKSndHRXBrT2tKam94VXB6WVNmK1VCUG40S05Iei8wOEFnb0IrTmdWNEJ2bDZZZ0RTZTZsZUJVQThsa3pFbElvSk1zbWZoWjZyYWRzZApDUEYycEZoVUJFMUVjYUlrTHFXbnJtQmxHTWRzWmY0aUFHRlRJRTRDYURFbEhXNTVMUUNhVDk2eWtxNy9ScUJnU0ZFTEVGTWhmQ1VBCnFWU29GK3k1QUpKN2lnQkFDalY5RWtCMHBlRFBRcGtkUFdRK01XdzJmZ2MyMk9xNUFQcFVYQXJCQUlSMWZtSEJBQVQ2ZVk5VCtDNnoKZUNVbkY3Qy9tZ1lBeWwzR3lIMlB1ZWRiUmZBa2dNSU1TbFFRNDZ0OE9ZRDBQZ0tESjBlb0FnQnRuaytMbkU2S1JpUFU0RHRNM0FVQQpnaSs4TlNrTHZraHJPR1VZZ0w0UWxBR0FPTXJZblFHYjAwTjhwZ0lJOGhJQXBXL3pUOW5taHcwQkF3RHRDRmJBRTJCcFBiN2txbDA0ClhoS2hRaTRUdVJrQnBKVEwzQlJvVk5oVUFMbHdsTzhUQW14YzRxMEl1WEExOHlFbm5xYmNIT0NsQVAxZ0FBclNpZEZBTUNPQWpHVkEKTHdLUTBCT3VobFZVa2tMNkJXdlhZbEs2RFNrREh0TWNsNDdORll2NnY1NEFhQkhna2w3bDZGemc0RklBWnlselFzYk1qUWx2YlloLwpjMFA4Tk9kSU1OQmJMcEhUalpteGNUY0U5SU9LRHpaR3p0aXdjOGI2N1RQL3RXdjJ0ekZtMzZkYmJ0eHJoeTljUUtwWVRDNWJTSzFjClJDL2RJTndkNXVPek8vQ1ZBUVN1M2FsWCtxcmxmaEhSNEo2b2hwSEl1b0VkZGFkamFnRkF2V0NnbVBydTNYVm5kdFNjQ0svc1JEMWkKOWNlMlZ4OElLMnNKTGowYTM5eDl5empHL2U3NGorT1B4aC9kdWpQKytGSDN6Y2UweVAxelhkTG1mNSszMkxuQW5waGo4MTIybzNPUgoxZGRwVnQ4bU9wRnlBSEJtemtVdjZnSjdYUUJLQ25DTEN2TGFGaEFBMmFIWGhta2s0WDY2K09qZGhTZk8xeDYvVUgxeXRMeTd2NmF0CnJTVXBzMVVWZEpMdmVZSWhQOE9VRDdDa1EwekpBRVBjeDVKMzg5VGRJcThlcm5veVV6SFVpenJJbnBNZVk3b0VxbTZoR2t1WENPVzAKVkFVNUkxT2pBSU1VR2l5bjNkVEhWZXBPbGZxVXV3YlZCcmw3ZDJxODlubnFpalg4SUtWU3FCR0pQWWxFcWVRalNzcGlhdFZhWWU0SAozTXBKQUFHbXpYR1pienNuQTFabWJvd3oyWkJndWpIMVdRQlp1YURaS1lGQjlxU2laY3dxME04N0tGVnJPVlZyMk5Vcm1aVndvYitRClV1cElMSEVnbGRnU3lzQkpjMTB5VEp4akY1T0R2K0ZKbndzZ21YcENQeThDRUV2R29jaWxuN08wYjd1R3ZFVkNnNkpuT08rQUQvbk0KOVZ0bTRPSm1FUGUrK1UzU24xVUZzWFVueWs5MDEzZWRxejAyQW5rT2cwNmZuWnBKQnNFL21UUlFZOTlGQ01hZ3h1SExBS0NtMGF0WQo4dzlxQWJwNG8vblN6Y1p6UHpWZS9MSHh5cTNHYXpmcnIxK0hORnk3MW5qMVJ1M1Y2L1VYZjZ6c3VIRzRmVHlsNk1kUFJiblQxbStECkwrQnNWekJsMUV4bk9HVHROaVZHenNKRi9HYkRyaG1FMkJjQkNIWHM0dExnQWc4QWhJMldud2VIQW5yQktqYWFBUWdEMEtjU0JLQ1AKSmZYdmkyb1dNb3VzeUZrbXVQaEpBRTNIN1RMQm80dllLWmtLb04zVGNEdmZJbTJmUmtUVEM3M0Q4cU5xUko1ZVlnQ1F3VnY0RklDTQplVDZBZkZGVnpiOEJ5RTBqQmdBUkpPcVBHVkhBbWtXMC9PV1UwdVcwb2hXc3d0V015dFhzVWpoV3IrYWlsZXFYc0lvYzZIbHdCUXZICmNCc1N1dElEQUlFNUlQT0lDYWFFQkhqNWIrUGp6U25KMXF4MEczYUdCVDNGbEpRQTEzaW9td3kvNjAxNnVCRkFma3BQVWFDMzNFOHYKOXZlVHZnaEFjQWNBMExPcndidDV5RlVxQVZ1cGZKOFRNSXUwRFFBMGk3alRoUEI4QUtIOEtnQ1p1Y1paNHhNbkFZUW1SYVJtVEFKbwpFVHZwRzNqaTNpOEUwQlA5b1BGZkx3R1FoODRkQTVCRUtYa1JnT2dLQVVzbVlVbUZSSm53YjBMZFd0bzJCMExzQW5MY0FoSWFBcmFRCm1yU0VrYnFjbVc1cy9zbDROUUNCZnFZQ0NPaGo2WXJHekdNQVVpV2E3d0FBZ0FCSlJFRlVBdjI4RW9CbTRNSk5TRHNBUUt2cCtuL3gKWlV3Smh5UGpNdHorTTRCNDdnS2hVdlJMQUtUU3NBQkFZaTBBaUM5VHMybEswWjhFY2x2YTVpY0FpcG9Lb1BlNEJlL3ppNllDQ0RQUQpwSDQrazZBQ29BOEZwYUNmZDFqNWEyaEZ5MUd2WCtrYWV0a2FkdjR5ZHY0NlZzSjM3aE1BQ2pHb3B3Sm9lNERuU3dDazE3R0ZLc1VYCmdwRDUxS2pwcE5oSkFFM0hvUVprUzFMbUlrWUJmSzhBUUorSXlnRkFmeEprYzFWeHV3SkRYZ1NnbkozR1BBRlE1amJVL0RNVlFER2IKZFArZnVMdUFydnBNRzBYZm1aWUNJVGdSb2hEaVFnSUJLdE9PZEtZekhXc0x5WFozZDNkSmR0emQzZDEzbEVEZFMvRWlOYVNsSGZtKwo5WjJ6enJuM3Judm5QdS8raDVBaWJlbjBuTlAxckwxMlFxRC83TCs4djllZXB6UVg3YUtrNi9WSHVOcVh1VmFKV0EwQVVrdmxHcmk2CjdnY2dBaytkVHM0S3diY0VrWWFoMDVQT2JhRXE4OXdXMVVNRHlDYTJvTWFBUWxXSmY4a3RqNkYwaDVKN2c4bGphTEVMYVRDVU1oSEoKbU5uTG1zTUF0SWMrSGs2YzJNdVlDY0QzN1NMMi8reUZ1dlVaN1k4ZGE5aElidlRwcHhhdGM4eHM4TXRzOWtVclNpeUxhOXVZMGJUKwo1V29BME1ZWEsvMWZyTnQ1dENzb1l6QUVOeHBPOXU0alQrK2x6a2ZScDE0V1Z1WFpiWldlaHdaUW5rdFZadGZhVlVLbFdWM1MyZE15Ci9Yckw4UXVsU3hkcUZpN1dMbjVjdDNTcC92aGxNRkRkMHNXYWhmUFY4K2Z5cHQ4cEdIK2xZdW1VWStMRGlzVnpWLy81Ly94L2FPM3oKZi8vdi8rTmYvK05mL3hwNC9ZdGZLaVoya2FaMjBxYUNjQU14eDBhRFhtNk5JbzhIL3JrLytLLzlvUmw5QWNjNmd3aWovbjhaZnRBaQo2TFVBRW9vb1BCN2x4d0dvb3NEUW1HdXZkYnZLbks1S2w2dktZaWpXeW5MTjRyS3E1cUdsMStmUGZUYjV3YWRUcHo1NTlmS05kOTQvCi84Ylk0aWxQMC91NjRnKzQ1Z3QwMWVkc3pYV0I0VExmK0JGYjh6RlhpOFZhQ2FIZ2ErNGJIL3ZpZ2dBRldsMGsxRjRRb1RnclVVT2MKazJyT1N0R00yM201RHVLc1FuZFdwZjFJby8xQXJmbElwVHV2TXIydk5VNFoxTTBtV2JhV0psV3FoRHFKMG9BblMrWHA5S0VZeHF1cAp2TUZEM05rRG5GbmdTeHpURzA0WjI0N3I4YzlvOThkRHRQcG50bTNQUktPUDl3SUk5Qk9BQStoUHhyTG5VN2pIVndFRWtjQ2VpMlhNCjdxVk5BNERDU0JOQnhCa0EwQlpjTjdTeVVkVHN2d2lsZHdFSUcvNzVYZ0NodmJ0eStiTWM4MVpjL2lQSGFoNDdXcjMrNWFwMUdZMm8KYUE4cXV0U3hGVCt4NVU4ZFR3cDc4a2ZQVDV6NWJ3dW5Qb2RZWlJCbUlNU2djOWV3dUV0Q0FLQlZBeTFmUmdaYUJSQ0tMNzZCV0w2Twp4bjdRL05ldC8xajh4OS9CT2t0Zi8zUHBxMytnK1BydlMzLy8rL0YvL20zNVAyOHUvT00veDYvKzM3cUdEL2ZoNng1NXFmeFJHcUNrCi9yR01hbDh1bnhvL0lwcVNCdjM0RVJvM2s5djhNNXUyNFJDQVFvaURvQjh3YUNocGFEZDVJSmpRQ3dEYWdnY0FOY0JkRExMWlR1NE4KWTQ0bjhlWlNCYWdFR0FZZ1h4cm94VlRoWEFScmJCZXBad091MFFjZ2xDY1dBeEMyL3d1VmtrRFRZWGNZaEFIb01XckpvNlFhc0draQowMDNXU293V05BTDBzQUJ5V0xCbHhYY0FwTlNMcVRMdGs2enFQZlQrZmN5eEJJWTNnVFdWZ0hyRjg4bWM2V1RlVEJKL0pvNDdoUUVJCjlMT1QyTDJEMExXRDBMR2QwTHFkMEx3RlBobGlFM3c0V3lqdDBQMExvZmVITVBzQ0dWM2JLRTFZSWtTVUNacUlBT1JIcm4rVzcxYWIKSlhBOHFJNjlVL3BEQUdTektPNEF5Q0FEQUhHMTJvTThOd0JvSTZWNkU3bGkwN2NCQk9qNVNRQVVTdW9DQUlYVFVPYnJWUUR0WVNBQQovVVdldXhaQStWa0dERUMzRS8vY0gwQlpkdVBEQW9pcUZBQ0FXRkloV1NiNG85aVV4aXpiUTI3WVEydUtwSGZDa1VTenVtTFkzV2oxCkQ3c2JBQVR4UFFBS0pyU3NCVkEwc3krYTJ2UGRBRXJtRFFDQUVnVURBS0JnU3Z0M0EyZ0h0UmdBOUZlaDRqYUFKRDhRUUhLTjlLRUEKSk5NakFQMWF0QXFnU215dDNBOEVFTFlTQ0FQUWZzNW9Fbk1va1RZR0FFcmdUS2V3b01zeUdjY2JPOEJ0ZmxuejBBQ3kydThESUZSNQpiZzJBOWpCR0FFQUgrRk9yQU9Mcm1xbzhCUmlBZWtwekFVQjl4ZG0rV2JEczd3WlFhNUc5TWQreUNpQ3EzbkNZclh1WmE1T0l0SEtaClpDMkFWQXJsV2dBUitacERsT3hRUW1zd2VXUVBiVGlkMjBwUkFZQTBEdzBncTlRSElCSk5MZm8xcnp5VzJoVkc2ZHROR1FmOWhGQkcKdzJsVGtRd3ZCcUJJNWxRNGZTd0VaYUliMmtsdlg1OVp0NVhhQmR5QnA5dlBDRG1JUG5oNDlqWDVVb0IwYmlQMTdTRDE3eUFOYmliMQordUhiTnh5cmYveWxTZ3hBTzQ2MkJ4N3JneFl1akRTREFXZ3ZiZkpGVVZXdXpWcnFNVDBzZ1BLek5NVld0Y2NnbFVqcGNxTXNwN3k2CllmcXQ4aE5YNnBZL3FUMStHUUFFREtxZHYxZzdmNzUrNFFKRTlmS0Y4cG1QM01NZlpudlA1azB2WFB0dmYvdlgvL3V2Zi8zUGYxMzUKK3IrME5hL0ZjeWIzc284bk1CZmlDWk9SdU5GZHVQNHczR2pBUzUwaHVPNmd6TjZkTHc4SFpVd0haSTd2T05iL29HM3dQeFdBR3B6NQpsUzVidFVkZjV6WlUyS3dGVGtlT3krSTJTczFLYnJiRDB0azdzZnpCdFpPbi96SHp6bzNwVTlmbUxuKzVkUEhhNjIrZi9XQjQ5blJlCjlVY1MwMm1LL0FKVmVabTVvcDk3RGZReFQzM2Z1T2dMREVCWW5CZWlPQ05XclFSSXlNZWdNM0l0Q3FVRzlQT2VXdjJCUXZPQlFyZWsKVWRmclJHWWRnMmVWS3RRU2s1b0p0bjVKWWtxbkR5ZlNYOTNQbms3bmVBRkErN256Q1J4dkdHMTBCNzUzYzJiSFpnTEttN2NGMzdFSwpvQkRDR0RnR2hROUF1eklIQVVPUnRLazR6c0lLZ0xqZUZONDhSQ0puSGl4MVh3RHRvM24rSXBSd0ZYUU1RR0xObmZtdjd3VVFYeUVtCmk2UlBNMHk3eUNXUDRodldIYXZ4eTZoZG45SHljeUlhMTl4NnJINUhCbEI0YnZ1ZnB1UHhYYXFhVis0QzBKMXhvTnNBdXN0QVN4ZlcKR01nSElDeU9mL3JWOG1lM2xqLy8rdmkxYnlDV3JxTll2UEhON05lZkxIejl4Zkt0cjA1Ky9SL0xmL3ZQaFgvOGMvby8vamIrWDdlVwovdXZHMk9YUGFTVWpXNGo1aitBckhpRTEvcHhROXdpcCt1ZkU4dlcwbXAvaHluOUdxRUlwRUFuMS9xVFdEUzgzckFWUUdQRStBTnFJCnh3RFVzb1BTRjg2YWdrODRUWWdxZndHQXNEZ2dYdGd2bUFVQTdTQWpBRDFHckVQbFF1OEFxT0crQnZJQnFBd0QwSVpqamZIMGJLSkcKYkRDdGpBQzUxOHlDWmRzd0F6MGNnQmh5MWRQczZyMk1nUmoyUkJKckxwRU43cGxJNHl5bWNHY3dBTVh6cGdGQVlmU2hBR0xQTmx3SAphSHRyWnV0V1hQT1d6QVovSE9DakNmU3pqZEcxaHpFYXdSd0JBKzJrdG04aTFhT1pPM0w1NDVUeWV3Q2tjanVrUHdSQVRxdnFYZ0R4Ck5KcDBQaG9CZWhDQVVQeFlBUGt5Q0s0QUtKeUNKci91QUlqU2dnSG9SWG11MDZiMU9CQ0FjbDA2QUZCQnRoSEwrdk1UQTBnaFlza2sKYkFtZktoUDhXV1pLWjVkRlVadjJNVnVqV0YzNzJOMnhuQjdRVHh5N0s1N1ZCUVpLQmdCdEpCVnRJQlp1eENNRGJjVlY3c0RYQmhJYQowY0FQcFRXWTFJeFZ6Y0RxcHNZd2UxRFFldmRTdW5hVG0zWVE2cmJqYXdOSURRQ2dmYlNlV1BhYUVTQnVmeUt2ZngrN1A0VGN2b1ZZCjdZZXZlQnhYL0RpaFpEMnhGTGtIVjQ1U0l4SUtOMU9LZHBKejBqak9GMFZxdEFaSXc2ZHF1VUk1VjZEZ29peUlhajVQdzJlcmVSQWMKRmRjSElJNHZDWkJJcXBLb3RES05WcXJWWS9wQkFMb1RCaEdFUnM4Q0F5bjBYSVdlTDlZTFFVSXNGZmV3U0wrVFdycUZVb3BtUTlGSworRG80MDNDZVlsbWpLYnpSMU5zQU9pS0YxeFVBUFN0ZGZFbzhCNEVOeGtMdkpKNDlCV0NLWll4QjY3V2ZQNTdPSFV2aGUyTzU0NGU0ClZVUzFLOGVxenJWcENtemFRcnV1MktVcmNldkwzSWJ5TEdPcFN3OEJIb0xBQUZSZ2wrZFpwUTRiMzJyaWN6U2FKMFJGZ2ZRNjZEK2gKY1YyaTc1YkdWOEg3N2VUV01OcHdQSHZtQUcvMmlHRHlDZkhjQzRJQmphbXlMais3dXlDcnQ5RFJYV0x2S1NuQkVpR3V6UVBVWCs2QgpRUG9wY1dQUlZZS1NBRFVVV0tyelRVVTVTb2RiY1V4dS9pVXJQNU5yNTRpVlFwVmNMUk1BZ0VBL2NxVk1xbFJJRkhLcFRDRVZLMlJDCk9aV25mWktjRjBGcURhR2lsVzRIbUQwa1dZblRMSGViWlZrbUZEbG1lYTVGbG0rUkY2SmNpQ3NwRUF0dlowRmNaVkN1UmFFM2NxUUcKRWt2TmZsN2dqcVgzaFZHbjlwQUd3aWxvcEdjZmF4WUZ3d3NSUlovWlE1MEtJWSt2bEJBaUR1MGk5TzNBOVVBbkhwcXhIU2kxV2hjOApYQUxJZlNoSUF6NEE5VU8vRTIyVXphaDkvQ2kwSE5VYk1tbzNaZFp2eGpmQ0l6aWM3TjFEOFVhU1oyTElzeThJMisyMnJCYVhhaFZBCldDNUV6RUFZZys1S2hGaVRaYTF5bVV0QnQxYU55Nkl3R2NSS05WZXQ0Y0Vqc2pUZlZ0MCtYak84Vkx0d3J1Yms5WnBYUHExOTVWejEKOFN1bGM5K1VIejlUczN6T00vNWU0ZExGd3VuWHg5OCtjK1AvK2xmSDhqZmc2WDNrZ1JqYVJBcHJPb0U0RUozWkUzSU14Tk1mOUdMTAo5aGNhdHYydWJ1Y2ZXM2NmN1F2QmpRYml4M2JoUm1NcDdjOEpzc2tTRGtkSzRTb1lYRFdMcjJKSzVCeTBFMTdCRU11b0VpbFZMS0h4CmVDUTZnMENpNGtoTUlsUE1nSitVSzlsWmVsbUpXVk51TlZTNzdiVnVHK0tPeDRrRnZNZElWT2R4MUdiYnE3S3NGUzV6dWROVWFqY1UKV0xSNUpuV1IyV3lRTTFoQ295Ui91Vzc1Ni9selh4My84T1BaOTk1ZmZ1L1Q2USsrbUx6MHpjelZ2ODIvZS9uTnNWZk9sSGFkMFJaOAp3bENmcDhqT01LUm5PSW96UFBsWnZtOFhQVWR5U3FBL0xUQ2M1ZW5QY2ZWbk9ZWXpYTU5IZk9OSFF0TTV2dUlzWDNWT29ENGowRUtjCkZ1b2h6Z2lOSDRtMEh3bFVFR0NnYzFMVmVSbThLcytJNWVmNTZ0TXkzUnRhbzFlbjc5SW9pbFJDZzQ0dnN2RGdLYTh5aU5RNnNWek4KSlNxVit4bjEwZlRsSkE3Y05RdHc0K3puVFVNZmZROTFBcml6R2RlK0hsZTdIZDhGbHhQYW1FMGFnd2dpalFhUWh1RDZDY3NjRDg0WQpEc3BFMzRjTEVyZ0RlRHJBbVUvbWVpR1NPTE1BS1FBUWRuSENSUnRJNnR0TkdBb2l3Q1U2bk02cHhJc1VJaGxkb3FDTGxDZ0xvbHpOCldVV1BTc05Eb2VPcWRId0lINEI0RWhWUHBFQjc0TVZ5SmtVaU9jeXlieVpXL0J6WDZKZFo3WjlSK1hobTA3ck1XbWoxNFpqaGFJT0kKYUVGWXNHK1lpbFU0T1hmeTFiZlBmRHAyNXViMHVTK09uL3JrNU5uTHl4L2VmT1gwcDh1blB3TUpvUXBpNTI0ZFAvZmw4Yk5mbkRqegorZktWNjZpa3hvVXZqbjk4ZmZrU2toQ3FxbkhseTFldWZBTU1XcnI2MWVMbnR4WnZmRG4zNVkzcG05Y21ibndHR0pxNy92WDBOMzhmCi8vdmZSNys1TmZmUGZ5N2UrdHY0eGFzdEhWV2FndXdvVnZZalIrdmhYb04yRWNTekhsZTlBVjhIL2xoSHFJU0FuaHQ4Q2ZTQkpuOWIKQmlyekRuZGZNQVhsODRUd1RZRU5ZbE5nVzFBYXcwYXNya1VRdFg4dmR4b2VzQWRGQzc0OThITlBTdWJocVpzdVJtVlFnNWtEVzRpdAo2L0Yxai92K0x3QWdKQjdjbW0xZjN3NzBrN2k2VGZoYWFHdWduZDdOTHY2VDJteTAwSzBXZ2MyS0RJUlZSWFd0YmdkRDdsbUpMRlFMCmJDWFFMakFMbWdMRGV0YzZneGdhSGJqTW1BcjFyemxaY2JUT0tQWmNQRzhHYXo1U2hEUDdoUk1wL01ray9rU0NZQ3FHaTBhQWRoRzYKdHh4dDIzQzBHa1RyajJ1QVo5RVdRdE0yWXRzdWFsY1FvemVVMGJlYjBRMzY4U2Mzd2EvMmMyTGx6eW1WajlLcjE1RWJRQ3JRUkthTApQQ3FUM0dOaE8rMEtsd05WSzFzTElHejNPOUFIWGtFL1dWYTF3N0t5RTk2a2wwSExxTlpKRFZxSlNDOTlRbWpZVEFMTjFQbVJDK0dzClFVT3ptVmkvZzlnY1FMbzlBa1J0RDZRaS9kd0xvQTBJUUpXK1dDdWhVZ2gvUXZrV1hPVjJmSDBRb1NXVTFCRUdIVnBxWndpdE01elcKRlVMdmpXUjJoZE5ib2xpMXh4UXV1MVhoY0duV1RvSGRUbnU0WXFEN0FzaGgxV0VBd3JJZ3FnMUtoWDd0R2lDeFNDTytEU0FCVzhGbgpTcVVNdVlDbVlGRmxITHhZODF0dWJncXJZUzkvTUliVkc4M3NpV0owN0tHMVJkSGFZNWdkOFp6dVJGN3ZJK3NKQmFBZlAxekpabHpaCk5uelZUa0tkYndTb2RUZTVaUlZBZTZnZHF3Q0twdmJjQzZBbytoMEFvUkdnMndBS3BYVGNCU0JVQkFOZkFXemNUQ3pmVHE4S29PYWwKc20wdlFWOUpKdUlxdVhTVTdwbkxWZk80UHZmNDZNTkc5SkV6L3cwQWNRRkFDaTJkcWVZZUVoa2VGa0JQU1NhZVJ2dmhaNStRZUEvdwpweEtZWTlHMGtYM1U0WGpHYUNKbjRnQi80aEJ2SEI2dnNkelJ3OXdLaXRyNXZRQmFIUUVDQU9YWXBIWXJ6MkxtYzlRNkFOQXVSdjFhCkFQbFcrVlZ2STdXc0FJZy9nd0hvajhKK25hbWlMdDhOQU9vcFFnRHFMUzRDL2F3RjBFQUZ5Z0IwTDRCYWl1d0FvS284SXdhZ28zTHIKcjlnRk9JNmRKNWFMbFFBZ2tWNG0xd0d2cFZLMVZLN3k3UXhUQ1JSS3ZwekcxejFOTFlna3Q0WFMwRjdITkdZZlNWWm1NOGwrQklDTQpCbzdjUUdack9NOExuTEdNcmxES0JBWWdsUGpuSGdDRlVWR3BnWEQ2UkJodGZEZGxOSmd5QkxHYk9yeWJPaGhNR3d5aURnUlMrZ0ZBCjI0azlXK0Y1aWtOcFFyRHQ4UnR1eDhiTU9qRFFUbngzR0FtbGI4RUE5QWRCbXc5QW1uc0J0RG9PZEY4QVZXVlo0TXlDL0FCQU9yMFEKd21LUU9PRDVxRlhvYlhwRFRyNjVwRDZudnJtaXY3TitZcTVoK2t6WjNJV1dFMWRhbGo3V1Z2VS9oNk9tSDBwOS9yay9Qdk1jOVFDdAo2eUIvSWswd253b3RORFN1akxFOVJHZ1Zoc1B4dmJ1UGRnVy8yQlh5Y2w5NDVrZ0VZVHlNTkJWSzltSUFva2k1OXdXUVJFNzcwUURDCjRrRUFzcWg0VHB1VUxzMDVST3g2VGo1dGJYMTc4TTFQRnk3Zm5QM2c4c0taVDcybnIwNTg4UEhzdWFzbkxuK3hmUDRUNzd1blh6dCsKL1BXKzRmY0xHcy9MYzYvUUxKK1NEWmRwdWxNazJTV2UvR091N0RKSENuR0pKenN2bEp3V2lqOFFDRDlteVM2d1pPZlpzdE5zK1lkYworUWRjNVh0OEZjUzdBczBwZ2U2czBIQ09iL2lRcTMyTHIzbFRabnBkYlQwcjFwK1FhenZWc2lLdDBLbmxXN1VDazE0QTUrSWVBTld1CkJWQXFmd2I2Nkh0cGsyQUlERUR3NnR1YU5CUktHZ3Nqb1lJWXdVUkE5a2pZN2R6UVllVHhmYXlaSkM1S3Baakdua3ZoemZ2V0FLRjEKMFBHK3ZXRFJ0Smw5MUprSTZuZ2taVEtDTWhQQkdEL01xeWFJNFk2aENSVTBERURZdHEvdkJwQllpWHA5RHdJUXRPSVlnTEJNeW1pMgpqakFDMThsejR1YTZxbXJ2OEFoODV1QVk3Nm5yTXg5ZFBIbjIydEtaejBFL1MyZXZJL3FnOEMyT1BuOTk3dXluOCtjK1c3cDREWnNGClc3eDRmZW55emVPZjNKci85TXVGejc2Q2dEY1F3S0FUTi83eHlwZi9NZnZsUHlldjMvSis5YmVsZi81aitXKzN2SmZPTjB5TzZmSnoKclU2MXdHNk1GeFE4U21pRkcyMWRaakVBQ0ExZDNBOUFXekphTUFBRkVIdlhBZ2p0Q0NNTUlCbXNBVkF3YlNDS2N4OEF3WmNBb0NCRwovNzhEb0NCV3lSOVZKcU9GK1ZNQmlLVlNQY2ZKam1kMFJIRzhxd0RhTC9LbWlpYjNDNmFTQlpPckFBcUVSOU94ZHY5amRWc3lHN1lUClduY0FmY2dkZ2RTdVlIcFBDR01BWGtFL1c3RkVpQ1EwdUxXT1VnWHhHTGtXRGRWUVNnNktQVXFqN044RWtOZ29lVkprMkVLcVFGa1cKLzljQUtCQ1BVZ0d0QWdnbHlya0RvSm9NdWN0aFUvNXZBQkJMSm1NcWhBQUptcHhMa0doL3kvVWtNK3YzY1BvQk1LQWZpSDMwam1oRwpaeXlyRXdDRTFnQmgrdG1VZ1FDRURmOEFnRkFwREhLTDc4MTlBQlJKNlF3bU5XSUEya1dzZnhDQW9qa0Rxd0Jhank5WkJkQW1RaVY4CkUvN3VEbHBOQUQwM21XdDVTYVpqeThWOHBRRDB3OUx3MkZvK1c4dmxhRUZDdmdvWVNnWmJRZmRKYUFWQTBENy9BQUJ4MWdKSXBtTXkKVkx5REFzTU9Tc2xkQUVKNXV4OE1vTVBpb1NkbG8wL0pKNDZJMFVMcEZQWllJbU0wbmphY3pCcE41azJoZGRQOFVkUy81QXcveFMxbgphUnpmRGFCdlQ0RWhBTm1zQXJOSndGVHJueENXQlRCOFdTSVFnSHozTUFITkJHOGpOWWZTQnVOWTAyazhsSFVhSFBablViL0pVdFpZCjRBUUErZFlBclFCb3NPeGJhNEF3QUtIOVg5OEdVRjJoRDBEWkNydFQvWkxjK1F5bkJBREVGOGtsQ3JsV0tsWXA1UnFGWEtkUTZXVksKblZRRkJsS0lsVkt4Z2lIUVBrTXYya05wUndDaUQ2YXlCbkNTTXF0SitTTUFaREp5NVFZcVg4TitRZWlJWjdTaGhjL0U3d0ZRQkdNUwpJZ3dZUko4SXBZOUNoTkJIZDlOR0FxZ0RPeWtvcGE4L3ZoVmxFc3BvUUdNL3ZvQ25NOUJubFVIYmNCMmhSTFJ6SjVMcWphYk0vcDdmCmJyRzZtcHpxK3dJSWkvc0NxTUpsZ3BNTDRqSHFSUVpmMFJXelhteFU4NjBhdGtISFZJTGtsVHc1MEVSSDVXaWxGS1hycjZZVFJ6VmoKZitMWEJPNS8rZWYrQWY3ckhnbmF0aUUwTWo3aWQrNWZpTWNPUzQ5REUzdFF2THlmNTQybGowZFFSa0tKZzd2eC9idVA5WWRsRElkbgpqb1puamtmZzRiQm40NmdkdnhWNnFESWVWMGI5RGdEeCtlUzdBS1JRY2JJTjhsS0xGZ01RTnQ0RDlMbHJDdXhCQVBJNE5Hb2RGeWZNCmU0cS9rTXhkU09kMDQyMVRqb0VMVSsrZkJRUE52bnRwNXQxUG9QVWQrZURxd0tuTDQxZXVlYzk4UG4zdXM2a0xWMmMrUExOdy9QVTMKKzZmZkwybC8xMUI2bnE4L3kxS2VJVXZPRVlVWHlmd3JWTkVWbXZBeWxmZU9RQXp4bmtCeVNpQTlMWkNkNDh2T2M2VVFaMFNpVXlMeAplMkxKTzJMcCsyTEZLYUhtSTU3MkRFY3pvOUMwS2VVdURWOXA0TWt0QW8xWmJOU0xUV3FoVmlkUUdZVVlnRWdxVlFxOVpoOTlFUVBRClFmNGNBQWplUjlHbmdrbkRXL0FkMEhENlpUYkRtMERpRU9nbmdqUWRRZktHRTJkQ2laTmhoUEhkZUxUaTNqZi9OYmVmdndUL0FnQUkKM3NDdmozYkNNK2Q5c1JEUG1JK2p6OFhTNGMxaU5HTnBIMnZxU1VFMVVhSUEvUWlVRkFDUVJNMWVCUkFFNkVldDVkOFhRQ0lGRHdQUQpvVzhEYUIwT0FXaDlab04vWnRzT1hNL0tiSjB2bnVHMGxMbGRZMldlZ2NIdXFiYy84SjYrNFQxM2RlR2pLM05uYnkyYy9Rcm9zM3oyCnh2R3pYMEFBaHBiTzN2UzkrY0tYUlBIbS9JVWJzeGR2ekgxOGMrSHFyYmtyWHl4K2VtUHAwNjhXUDRINGV2SHEzeGF2L21QdTBqZVQKMTc5WitPcnZKNzc2ZXVyMDZkcWgzcHp5ZkxmSGJMZXJMUTZWMkdWSkVoZi9ITitDN2pKOEtRQm9YVVlsQmlBME00WDJaOVhBbDVzeQpHamNmYTk1NnJHMTdaZ2NHb0JES0lKcjhJZzNlQmxBUE5nVUdzWTNZRmtvZmp1VjY3d3VnWks0M2tONEhTTG9MUUJ0V00wSGZFK2hnCmJnUG9jWHg1SUxQMGVZVkZiK2I4YUFBWmZlWEFWZ0hFVWFsK3gzY25NdHFqMmQ1RTdndzBEV25DaVZUeDdFSHhkS3B3T2tVNGxjUkgKQU5yREdBa205KzNBZFczUGFBMGdkQVpSZW9LcHZidHBmYUdNQWFRZld0ODJjdnRXVWhzcWlVcHE5TzJIcjl0SXFWNVBxbHhIUWdEeQpJeGVuaVhKa0JubVdoZnRqQVNRSEFFa01rcWZGeHUza2NqOXlyUTlBbFhjQkNBVzFQWURTOXJBQTJrUW85OGRYYnNQVllhbUFRaWxJClAzY0FSRzhIQU8xakFvQWNEcHZjNFZZOUNFQzMzLy83QUpLd2xDSm82eGxLSVVtdWdYT1V3cXlOWlBmdHBiZURmb0ErTWN3dVREOHIKYTRDMms2cTJFaXBBUDVzenlyZGxWZ2ZnR3pBQUJaT2FNUUNGa2x2MzBqcFhBYlNQMGgxQjdnQUFnV0MyNG11K0cwQ0F3YTJrR2hEUApLb0I4RmVDcnQxUHFnc2h0MjJpVnV3UzUrN1hPRjdRNnFrYkcwWWlZYXFBUG42UGg4N1VDZ1FibEM0Wm1rcWRtY1ZVTVh5SkU3bG9BCm9jb3Mzd01nS2VoSHJtZUpESHdBRUUzRlQrV2JNUUJ0OU5VM1dRVlFISHRzRlVDK1ZFQXJBRUloSHo4aUd6c3NHVThYVGFaeXg1S1kKWTNHVWtSalNVQ29IMVUrRmI2YnpSbEo0RXdtY29XZTVwVHlORmZSekw0QWcwUENQK3c2QUNsd3JBTExZQkFhamtLRTBIQmJCWGRxSwp0bm5EeDBWQ1NiM1dFeW93QU8ybURzUXlKd0JBNllLSkp5UXpSeVU5VGx0SmM0RzFFd0JVa3RWVjdPZ3ZMc0QwZ3dWR24xVUFkWmV1CkFLaTl4QWtBcWkwd1YrWWFpdDFLbTB2elo0WG5TVTVaSnRmT0Y4dGtjcVZHSmhNcEpCS2xWS2xVK3RZQUthVVNwVUFpaDhjelM2RDcKRmJONEg3VVQ1ZmVrRHljekI0OUpLdUdpZkhnQXlVeEd2a3JQRUdvNGZ4VmJFeGpOOEVBTUp3eENOeHJFRTgyY2hjQVl0SmNCM2V2SgpsZHdobE5GZzhrZ3daU2lJUEJqb2l4MmsvdTNFdnExb0kwbkhKbHdUV0FmYkRvYnREc01BdFA0MmdOWWZxOW1hMlI2TTZvNU5oZE9tCkFVQy81YmVaemU0RzU3ZEdnTzR5MEgwQlZHclZGZGwxV1JhbFFTZlVhUGttZ3hnVmhFZmxFaVVHczBCbkZHajFRcTJlQlFBaXlVVXYKY00zN21KM2JmbVBkY0VDd1Bwa1psRXJabTVKeDVQZUcxQmRMQXc5TG54SDJINUlzeEhQblUwUm9yQ0tlaFRiVFFpTVhrREVRY0xRLwo1T2hRV01ZWUFDZ2NOeFZKbUltbHROOEZJSjZTc1JaQVVoa05BeENEU2NRQXhKSXdlVXJtZlFGMDd4cWdCd0hJb2RPWUxUS3F1dUJKCndYU1NjQUVOZWJLbURqS25PVmtURmFNWHZLZitzZnpSbDB2dlhGNTY2OUxKdHo5NzlaM3I0NmR1VEgvMHBmZnN6ZG16WDh5ZStXVHgKOU5VVFp5K2ZPSFBwMWJjK1dGNThmWG5RZTZLMjk3WGMramVOSmU5SWM5N2hPNjlRVkpkSWlndEVnSkg0TkVuOEVVVjBpb3JpTFFiLwpiVHIvQTRid0RFOTVXcVo3VTIyWTFXcUcxUEppazlLRmtyeUx0RWFSMFN3em0rVmFvMWltUTBOeEdJREFIQmlBb21qZ2xXa01RR2tDCk5JRVZ6WnlCYXdrREVLaGlNNkV0d0RmMEdFbWUyVXVhM1VPY2d3Z2hUNFFTeDhQSTQzQTFKbkxtMC9pTEIvbUxhQlVSYnptWnN3VDAKaVdmTUFYMVdnamFYd0ZoT1pDekgwcGYyTWNlUDhNcnhFcWxRU1JHcXFGZ1ZzTlhjUC9jQ1NLVVRBSUNrYWo0R0lLR2NTZnBoQUFvbApqVUU4eSt1czlHUVA1NXZxaXgyZDNSMHpKOTZEei9tVml6ZThaMjdObi9zYTBIUGlqRy9tNjl3MXdORDhtUzlmT1hjVFNMUjQvc2JTCngxOHVYcmtGOVBIRmw4Yy91YlY0NVV2dng5Y21MMzd1dlhwejRkcmY1NjcvZmZxelcwdWZmdGIzMnV1VjNkMDVwVVV1dDlYak51VmsKNjdMY1NwZkhBQUNLNCtjL2tvSG1tdjNSY0FYY2VsWG9JLzAyZ1B5T05mZ2ZiZHI4TWhvRUFnQUZrZnQ5K2tFcEVMRWREL0ROcllUMgpUZmdHaUozRXpnakdhQnh2OWk0QVBTRmRQQ0NjaDdzamdOYUxBUWc2aHo4VVFJUzZqWVRhVGI0ZjNrRXZmVTV1VVpuWUR3c2dwMVY1Clh3QUp0TEkvQ2x3cHpOWVk5bVFTZithQVlOd0hvSGtBMEFIUnpINEJBbEFjRDZVQ2d1NXJFTEV2bU5BVFJobEFLYUhwS0dkMEdHTTQKaE40ZlFPN2VSR3p4SjdWdW9iUnVwVUUwYjZhZ1NRQjQ4cThqb2NVNkc4bWxLY0ljaVg0RlFHNW9NaDRTUU1vVkFJbWVrZWgya3NzMgprUUJBeFJ2V0FHZ1hzUlVEVUNDbDdTY0ZVTWR1V2c4QUtJemVHTTJxelZRNG5UYTUwL1U5QU1wM281M3cvdzZBbUFveFV5VmlLUGtBCklMSk05UWVCTTVWVkZjWHVoK2V3ano3ZGFBRVFwaDl1VnhLdis1RmdlbE1BcFg0SGFDYWphdnV4bXAyWmRVSDQ1dDFFdEFBSVd3MjkKRmtEUmpPNjlsSzV3VW5zQXFXRWJBUUZvSndDSUNuL2Fpd0hJVnhEK3V3RGtSeXJmU3FuZFJXK01ZUFZ1WTFlRVdrc1BseGIvTnRkNgoxS0VtMmxVWkpqRkRKMktpYlh0Q3ZwclBWM01CUVBDc1oydVlkd0VJWVB2ZEFOSWErQUFnMEkvTUJ5Q3Bqa2xSQ3BLNUZnRFFabkxKCmd3QUVvTGtiUURJdmZPZXdlQ1pkZ2xZU3hOSEhZbW1qaWRBRzhFZlQwTGI1aVFPOGtXVHVlRHluLzVmY2ZLSGU5Q0FBd1JzTVFJVnUKRkJpQVBIYXAyU2JVR1VRMGhlbXdzRHFRZ1hLbCsrRlJFb3ZIMGRNRXZkbENhZ3Ftd1BrYkIyYWxDOGFPaUNkeDhoNlBvN0Mxd0FRQQo2aWp4QUlBR2kvTHZDNkRWRGZCWUFJQ2FpbXdBb1BJOEJDQ2pVL2M3ZWM1QmRzVXhqZzJVSTFXcU5ES1ZVcTFRd1g4S3BVYXVWc3MwCmNxbEtLbEZKcENxT1FQTWJaa2swclN1TVBnQ1Bxa1RHOEl2aUNyMVI5N0FBeXJISnpTYUJXcytBNXVGbHFUbUpVYmViMkJkQkhJcWkKVEVYVDdnQW9pdW1Ob0UrSFVpYWdpZHBGN04rQjc5M3VtK0ZDZ1VmTFZ6ZGx0dnRsdEszUGFGbWYyWVRtdkc3WFU4UjJoMkVHd2dJegprSDltU3lCaFBKUXlHVUdmMlVlWi9RMnYxV0IyWVFCNjBDRFFmUUZVN3RDQlplSFJZOUlMdEdxT1FjZTNHVVIydlVpblZXaDBRdWpXCnExUUNqWllyMDNQSUN1VUxndXc0MW1EZ0h3c0RucytOeW16Y1QyNlAvbE41T21kNkwrZTFrS2VVVDdHNzRQbWVLam1aS2x4T1lLSGQKc3dBZ05CR1RPYmpycGY2UWpPRkkvT1Fld2xRRWZqSUVOeGxEYm50T2tFMlQ4M2x5R2dDSW8yS3VBZ2dOTmp3WVFFbzExMk5VbEZsMQphQkYwMXNxS254OE9vQnlEMHFoaGtrVE9wNFdUY0p5cG5Ka0QxUG1EekJQeHRLVWpuQ2xHOW16bHlOdmpiNStiUDNWNStzTlBSdDc1CmJQbk5UeGJldk9wOTY4ck11NTlNZmZEcDVQdFhadDYvT25mcXM0bVBiazZldm9sZ2RPYjY3T2xQMGVqUmV4ZThiNTk1ZmVHMWs5UEwKUzhQZXhlN1I0MjBESjV0N1gyM3NlYTIrODQyZXlkY0dKcGVHeDhZRys5cmFHOHNxQ3p5NVZvZERZM0ZwRERhRnppUXg2c1YycmNTaApSd1c2NVdZcEFFaHBnT3NLVGdHUHJGRW0wNm9SZ0RoVHF3Qks0YzNHc0x5aDFMR3RoTTcxS0lOVUhRSVF1UTl0UEVRVG83TVJKQzlFCk1IbDhOMmtNVkJSRG4wN216Z0dBMGdYd0w4d0RnSkxZaXlnVE5IVm1IM1VhaTcyMDZTZ2FmTWNMc0E2ajlCMWdGK0FrSXBHS0tsVFIKMXdJSU14RG81NGNBeUo5WThUTmM0OGJNYXIvTSt3QUlUZGlSa2MvU1dhM1o3cXplTW5kVHFiMmp6RDFZMXpBNU5YUHlnMC9tejk1QQo4MTludnpqKzBXZGdvSlBudnp4eDRkWWl2SjYrQ1JKYXZIaHovdEtYYzVkdnpGNjZQbnZ4bXZmaTUrTWYzNWk2Y25QK3MxdkhyOTFhCnVuYlRlL2x5Lzd2dk5CMWZxbXFzS2lySnovTTQ4MXdXaUp3c3N6dkhhTTNXV1J3cXVPSUJRRC8zRGQ1Z0kwQW9IOCszQVFSZmJqeGEKditubFJ2K1gwQ0RRVG53M01oQ3h6eGNZZ0laWEFJUnI4c2MzQXdXaVdPTkozQVVNUUw0MDBDc0FTaE9nSmNZN0tkM3dZeGlBc1AvTAo5d0dvNmphQXF1Rlp1bzFXL3F6RW9qRHkvazBBb1hYUVBnQ0p0WklYeGRDNHR2aVN0RTBkRUtEbUlFMnljRUEwbFNhYzlzMkNUUU9BCnNJMWdvZFNoQ01yUVh2cm9YdVlZK3BJK3RKdld0NHZVdFEzWEJoZmhWbXJIVG1iUFRtYlhObnFiUDdrQnJlekdWNjMzQVdnRHBUU1IKbnlmUUs5eFdQaG9Cc3QrOURmNEhBRWdCQUpJYVJMK1NhQU9wWlp2STFUNEFWZiswQU5xS1I5dW5zSnJ3b0ovZGRBU2dFRnBYQkswdApuUFp3QUlJQS9hQlM4QTdUandJUTJnbFBWd2dneUhMWkg0VzJnK3pLYUU1ZkhMc25udE1MOUZuWi8rWFRUd3EzKzVFd1p2dHVHcHJ0CjJvV3JCLzNBNnlxQUlBQkFZWlEyREVDZ24zMzByajNremxENGdJajFvSjlWQU8xbElnREZNdnQ5eVlYUUt3YWdjRnJYdlFEYVRxc1AKWXJXRWNUcDN5Q3YzMWRRL01WVC9URnZPNzZzZGY2MncvYUhJa09GUVp0cGtKSk9ZcmhleU5EeVdtczJFZUhnQTZmUjh1VW1DQUdSZwpDSXc4c1o1TlVvb1R1ZFlmQXFEREVuaWR4QUIwV0R5TFFqYWZMcDFMNUkzdm9mZnZaUTNHQTMxRW93ZWtFd2RsNC9zRlF3bThFZmhrCmZ5M0lreHIxb0o4OHUzWXRnS0M5WEFVUXBoOE1RTGxPQkNDakRaN2FBb3JDZkVoWUY4U0VEa0hUQ29EUVRWNEJWOTRXVWtNUXBTZUsKTVFiTVFnQ1NqSklWWFFYT3ZJNThIUUNvdlNRWEFEUlVtTE4yQ214VlB4QmQ1U3Rid0xwS1hCaUFxdk5OQUtBQ2wxTHQwUDlDbHBmSQpMbitKQndDU1N0VnFsVUpyVVdxTkNyVVc2VWNGQU5KSU5WcXhSaWZTY0FUcTM3R0swYVl0QktEeE9QckluMFRWR3BQcFlRR0VOcjZaCjRGOWt5dFdjVEtreGhWa2RRdXJiUXhxRDVpU0c3a1ZMSzN3QTJzUDBodE9tb0NuYVR1blpTdXJ5eDdmN1phTEtYNzVvOUFWNkQyMEQKdEJDK3FFVms5STE3UTZ3MUVEWVVCTS9aUU9nOVV5YkNHVE43cWJPLzVyYnB6Vm4xTHQzREFxakNpVTRvUEhmTUJyVDgxbXdVMlkxaQppNGJ2Tk1pdGVyNUJ5ek1vK1FZVlM2bWhNeFhTb3dKSE1tRW02b1htUFg5dUNQNUxhenhsSUFiWG5NQWJEaFhQUlR6blRDYTJwZ3ZtCm4xQzhjVkI0SEdDUkpwaVBZVXhHVUNlRDhjTzdYdTdiZld3d2dqQU9zVHR6Wk5mUmdXaFM2Mi80V2FzalFCaUFwQXJ1ZHdPSXIyS3AKTkx3Y2szSXRnTEQ1cng4SW9Ed2p5NmFqMDZVNXozQVhrdG12N0dkNkQ5S25EN0NtRC9IZlRLRE94bE5IbjVHTk1VdE9WSG92akg3NAp5ZWc3SDQyL2QySGtuWFBEYjU4YmVlL0M1S2xQcGs1OU12N2UxY24za1kxRzN2OTgvTlQxcVkrdVRYMzQyZlI3Vjd6dmZEejd6c1crCmo2NzFuN2syZU83YTJNWHJFNWV1VDE3NmZPekNsZEd6bC9wZk9kNDlPZG5hM2xaWFZGVGxkSlJhOWNWV2JhRkQ0N1NyelZhRjFveTIKNUpoMFlwdFdZdEdpdXg3dWQ2V0Jkd2RBOUVvNHl4aUFzRFZBZHdGb1BiNStFN0Z0QjZrM21Ed1NndEF6SGt4RVM2RjNFSWVEVU1IVQo4VmpHVEFwbkxsMndkRWlJREhTQXU1ekNXUUlBUlZFbXdzaWowSDc3U2pvTUJwR0dRMGxEQWNUK1hhU1daRllXVGlMMEFRZ3RBSkpxCk9IY0JTS01UQUlEZ2ZzY0FKTmZ5N3dKUU92dGJBSG9VdjdJRzZGNEFwYkQ3VE02Y3p2TGN6aXJYUUxGbE1DKzdwN1pzYUhEeTVBY1gKWGp0OTlkVnphREhRd3VrdmxzN2VYRDZQeG42UWlpNSt1WEQ1SzZEUDlLVXY1aTVmUC9ISnpkYy91elYxL2F2cEw4QkFWMFkrZUw5dApicnEwcmNHZW42V3pRc2RHa1d2VEZtZEJaOGxWbk8vTXpyVmJjaTA2ajltUmhjZ1BBSHFVMEFvQWVpeWo2SkhNOGcxNE5PUnpMNEQ4Clhtclk5Q0kyQ05TQkRJU0hYNkVYQTFBUUVYMW9BQ0JnelJaOEM0QWdoajE5TDREZ0RRQUl1Z2ZiU1oxd0M2UGlYNlM2SHdLZ3gvR1YKUUNVQUVIamlNV0tkUDdYOFNhRlZhaEQ4K3dEU0dhUWF2VVNxRlJ5Vk90SllqVEhNa1dUZUJDb0g2UU5RdWhBQkNNMkM4YWZqK1NzRgpNY0xwSTN0b0k1SDBFZDhJMEVBUXRYY1h1V01yc2RtZjBBaXdDNlQzQmJQN0ExbmRXMmtvTCtKNlgxbVA5YVJLZjBybEJrbzVmTlE4Cm5kcHBFUUNBc3V5U2h3YVFRUWtBVWhpRXY1RnFkbFBMdHBDckVJRElLRnNCQUdnN29Ra0FGT2liQmZ0eEFJSXZvWDBIQU8wZ3JBQUkKOUFPeGg0b0F0SWZXQWdDS1lWWGpsUTdRbS9QYm1hRHZBbEMrMi9nVEFNZzM5a09UUS9BcGN1a2ZSY1pEblBJNFRuOEN0d2NGMndjZwpiaGNFNkFjQktJVFNHa3B0ZzRBM3lEMkVGaXozRHdZZ1ZEbU0yaDVGNzlybjA4OWVha2NrcVFQK0ZBUFFac0ozQVNpR08zZ3ZnRUMxCk94bU51emx0b2Z6VzhLeW1oT0hXNVBtcWxMRzhKL3J6bnVuTWVibzkrN2thKysvTHpYOHAwR1U2RmNBZ21rNUExM0RwR2w4aE1CV3EKbGlwVWkxY0JCTmZpZ3dFa1ZCb3hBTkVCUUNJZGl5aVh4SEVjMjhuRjl3VlFNbmRrUDM5c0xZQ09pSkdCam9obm5wQjVEOG1tVXNURApNZnlldllMT1BjS09DRkhIRWRsWXVuTHlnSEp5djJnNFRqQWF5Ky82dFNoWFlkVmhBQUw5WUFDQ1dBVlEwUm9BNWJ0WEFLUzNvMjRyCldXWTVKR3dJWnZadHhnQkVLdmZkNUdVWWdBSXBQWHZwYUp3SmJyTW5SQ00wVldlSk82Y3JYK3NEVUY3blBRRENGZ0JoRytBQlFCQjMKQWFnc1Y1L3ZWc3JzK25ScC9qNVd4Wjk1Vm9GTUl0RnFGRXFkWHFsV0twV0FJWkZPQTUrbVRLMlhTZFV5dnB6RFUva0ExQUUzY0RoagpNbzQrOWdkaHRkSm9mbGdBNVRtVU5yTkVwMlVxMUN5OFRKZkNLZzhoOVVDakVrdEQrb2xqenEwQ0tJdzZDVTJSUDZYTmo5U3lnZERrCnF3R0VTaHV1SjZKaVFLZ3Y2QXRVR3ZwMlBFcUFWOHhES3daYXFaaVJXWWQ2bWNUUkVPb0tnSDdKYTlPWjNBMXVmYjNiK3FCWnNBY0IKcU1TR052OERnRXdHSVdBT0FHVFRDZDA2bmszUE1lbDVlcTFRcjBHYnNWbHlYZ2JQbE00YWl2cHIrYjdNK2oya2dZTzg0OUV2ZGlTUwpSNUtsYjhTOFZCdUw2MHpsZUorUW5IeENzSENFUHd1dGJBSjdJWW8rRllZYkNueXBKL2hvWDJqbU1HQm9aOGJBMXFPOVVZVG1YL1BjCjN3MGdpWlNPQVloTXd3T0EyRktVTUJvRFVMbE5meStBVmcwRXJ3OENVTDVWYXRJeXllTHNKM256U1p4WGtwbVRxZlN4Vk1iNGsreVIKTk9aVUl2dlZXTmFic1JUdmIwU2pscHBYeDA1ZW5YajkvTXk3VjZiZS9YamtyWE9qYjUrZmVQdkN4RnZucDk0OFAvY09pT2Z5NURzWAp4OTlGTWZuQng5NzNMODIvZjNuNDNLZERwNjhPZjNCaDZNMVRnOGRmN3huM05uWDIxemEwTnVWbndmRlV1RXh3NzFSNmpOVWVmYmxUCldXd1c1WmhVOEh6WFdXUWFpOVJna2xnTUVvdE9aSVRQM0NEQUFBVENvR2hWcXdCQ0UxZytBQ1Z6dlJpQXRoRzdmQUJxOUNPMGJpZDEKN3lMMTdpS3VUS2R1SVhUNVovYnRJZzVIMGlZUzJYT0FwMFA4QlRndnlFQzg0Mm1jeFFTNE1tbGpnU1QwdzVzSW5YN0VqazJFRGw4cgozcnFGV0ozSWN1Q2xJckdLSVZLc3BFQzhGMEJxUFJ3azZ2UGNCU0NCZ2ttVVBoQkFhTWsycmdkYnNvM0ZYc2FVMXByZldleHNMN1VNCmxyb21Tb3Y3S3oxOXRjV1RrK05Mcjd3T0JnTDN6Sjc1YXU3MHphWFQxMDZjK1h6eDRzMmx5emNYUC9scS92T3ZGai8vY3Ztekc4dVgKUDEwNmUybjRqVmZhWmlaTDJwdWR4VGs2aDBGcmtGc3NLby9iVkpSakxzNnhGdVphOHp4V2o4ZVdsV056NU5pdE9UWjNqaEVBdEkvdAplU1N6eVkvUTZFZXFRTXQxYnkrQ3htanlPTDc2OGN5YURTL1hBWUQ4L3Ryb00xQXJHR2dYcm5zdGdPQmo5NjNlYTk1R2JQTVYvQUdrCkx0NExvRlQrYkR4emNoc1J6WFEvRElES3NaV1VZS0JIaWZWK2xJb2pmS3RZTC80UkFMSmJGYjdVZ2xKc0p6d0dJTG1PbHlHenByTWIKWXVpRDZNbnNteERBQUhSQU5PT2JCWnRKNUUxR3M5QXlvQWdhS29rYVJoa0lvZmJ0cHZYc3BIUnVJYUVDcUZ1b0xXSE1RWWdRWnQ5Twplb2MvdVFrZE9hRm1IVm9DZ1FDMGpsd2V3OHRuNjFRSVFBNlVEUHBIQUVpdkVTdU1ndC9KTktHMDBoVUFrZXJBaFQ4aGdMYWdiWldOCjhPK2d3dklZZ0dnSVF6NEFOV0FBZ2cvenJsSVkzd3NnckJEWVF3SEl0L3BIVEpPSkdYSUJWU0g1czFDZnppNkpZYTVzZlVlNzN6bWQKb0o5a0RoYWRqd1RpbWdBMEViU3VTSHAzT0JXTjdtQzFMN0JkWUE4QzBFNUMzU3FBUW1nUERhQlFYa2U0ckMyaHRpOTVzVE5pc1NoeQpNaXR4SkRlcDE3Ti9JTy9RUU43VG5kbS9yYlg5cFZDUGN5cklKakZkSzJCcDBIYXdId0VnbVk2T0FVaW9ZK0VWa2xqVzNRQ0NVNzZICk9mQWRBRUpMb2VWVEIyV2pLYktCTk1Qd2s5blRoendUaWJiZUk4cXhkUFgwQWZWVXNtUWtWalFXSitoK1RwS3J0R2xCUHhpQWloeSsKYWhnK0FFRVVyUUZRUWRhM0FLVFFDWWh5S3dBb2lIVUhRQ2pWcVE5QThIQUpJSGZmQVpCNGlLN3BLSGQ3dXZNMUFLQzJVZ0NRYzdnQQpiUUhEZG9HdEFnamIvN1VLSUpRRmNRMkE4dHhxc2Myd1g1SVh3U3o3QTgvR1YwakZXZzFLbkc3V3cvZDVXUlp1dm90Zm1DWDB1UGhHCkkwK3U0WEtWenpNUmdFSnBnMkgwaVJqYTJCOEVOUXFUNVVjQXlBNU5sNWFqVkxFSWNtMHF1enlVM0x1UE9oMUhSNVVtTVFCRk1iMEEKb0ZEYVpDQnhCTVRqSzVkWUM5MjRkYVQ2eDhsMTZ5aDE4TXhGVDF0VVF4R1ZVWHdNVi9OelhDMFc2eENKVmd6a216NVlBeURTQ0FBbwp6QWVnWjdtdFdrdFdmWmJ4WVFGVTVUU1UyclVZZ1BSYW5ra3ZzQmxFRG9QWWJ1Q1pUVnkxU1NUWFMyUmFybEJMcFNqNEx3dE1zZlRCClBmaW1DR0o3Q1BUYXVjc0pML1k4eTVuYXo1bzZpSEpwamtMei9LUnc2U24rM05PQ2VXaHU0emxMTWZUcFNNTEk3cU45RU1HWkF3SDQKZ1IzNC9xMzR2cjM0cGw5eFhSUXBGd0RFa2ROWEFTUlNzZitYQXNpdE54dDFVckk4NTRod05GNHdreXFZT01DYWlTTlBKOU1HRHJBbQpEM0RtRDNLV0FYWko3Q240bzJlTngzT0dqM2U4ZW43bXZjOW4zN3cwKy9yNTJYZk9UNzEvZHZTOTA2T3ZueGs0K1dIWDhYZmJsOTV1ClgzaXJ3L3RXeC9ocjdTTW5CN3I3dTF2YjIydHJXc3FLV3dvOTZCUzRUVTFPWFgyZXN5RVhIV0ZUdHJQV2JhdDBXNHFkeG55bm9kQ3UKZDluVVFCK3RVWVFXWUpuRUpyTllheEY5RzBCb0JHZ1B4YnNLb1AyODZTVE96Q3FBVU1PSlF3QkNHYVFJM1Z0UlRZYjJEZmlXOWJqbQpqVWU3ZCtBSDk5QW5reml6OEhjeEFLVUw1by93bHVFRUpiSzkwSTlIcGRvelcwRW5qeEthSHlQVWJ3U1g0K3Y5U2VXSkhEdGVJWktwCm1HSVoreWNIRUxZTGJCVkF3YVFscmFGZ3FNaldXMjd1S2ZQMEZwZDBsMW5HYWl3TjVYa2p3NFBIM3oxNy9PSXQ3L2x2NXM3ZVdqNTMKN1kzejF4WXYzWmkvY21QdXN5L25yMzI1K01XTnlkUG5tcWZuOHBzNnlqeXVBb2NseDZiM3VJeHV0OUhtMEJydGFyTlRDK0xKenJWRApPSE9zOE42VFkzZTd6WGE3M3VwVUE0QmllWG5ZRkJpMGZ5alJEcjVtb3k4VEQ3Z0Uyd1cyRmtBK0F6VnZPZHEyTTdOckZVQUJoRUVNClFKc0pMVmpKNTNqMnpIN3VIUUNoRmREZkJwQmZadU1xZ05aaGlkeCtNSUEya2l2U2VWYWhYdlRUQVlqakExQmRES01mQXhCYUJpUloKT0NTYVBpVHlIaFI3VTRWZURFQ1I5T0Z3S3RJUHF2bEQ3ZzZpZGUrZ3RHRkxucmV6MnFJNVk1R3NZVkRSZG5LckgzcldvVEpuNnlobwpHUkFHb0doK1BrdXJSaFU4Zmh5QTlHb0FrTklnK0wxTUcwNHIza3F1QkFDaGVnT0VhbjlDM1U4TG9BQmk2MW9BaFZJNkk2bk5rZjhuCkFFU1hTNWdLSVUwcC9yTkltODRvQXJyRTBOdGpHUjF4ekU0QVVCSzdFL1NUeE82QWVHVExzY3FkbVRYQnBNWndhbXNrdlgwdkJMVmoKRDZVOWd0d0JFVW5wM0VQdHdnTGV3M2ZDaUMyQmhQcHQrS3BOdUlyTmhLcWQ1QVlBVUNTak41clJIYy9waitjT1FDVHdCcE1Fd3pIYwovZ2hhaHordGFnT3A3SEZjc2UvREt0dE1ydGpGcWc4VHRZZm5WeWROdE1jdWxVVk5aY1ZQbEVTUFZlNGJMa29jeWtrY3lrc2M5S1QwCnVnKzNPNTZyczd4VW9NZWJwUlFWajY0V01UUkNsazdNMDBsRVdxbFNBNDJvd3FSVjZuVG9OTU16MnFRVG0zeXJJM1ZvZ2FSQWFWcVoKYnBmcGVUSWRUYXlsL2xVcWoyRzd0bElyTmxFUUxPQUtXd1ZRUEdjMG1Zc1dOWVBpRDRxbjFpNkZSZ3dTTDZSSnZGSDY3c1NPenZUWApPdmN0bDBWNEM5Tkc2dmEzTjZUVWRpZVdUMFE1K2hJa0pjY2tMb2ZCN1hCcHMxeTZYS2NlQUZUbU1GUTQ5WlV1UTdYTG1KOXJMbldiCktoMzZjcGUyS0V1ZG42MzBaTW1kYnJIR3llZWF0SDlSRmh6a3Q0WXhlclpRMmpkU2FqZFFTaDhqVjZPY0VIQ2RFU3QzVWVxakdHMnAKckw3RHJLRmZDaWZFK3JMYTNOejJmRTk3b2EyL0pLdW5JS2VqMU5sZDV1Z3BkL1pVdW51cnNxQXZPRlNXUFZ6c0hpbHlENWFpY2FEdQpVbGRQcWF1cjJOWlVhQ290MEhvS1ZkbTVlb0xKR0NjeDdwRTVublhtNDhxS1NJMmx1TTdxRjRmcm41MXJmbmF1L2VuWmpvT3ZkdjEyCnNvR2Y2OVR4aEF5UjdqZWN2QmhLWnpnRlZmaUxvNDg5ejI4U0c0MEFJSWpWZEloZ0lGRE9LbnJ1Q3ArQk5FNHpWNjJsQzdWMG1scjAKTEtOb0QzNGtoTzBOWXkyR3NVYmlXU05wdFBrWXlsSXdaeWFBTlJ4MHRQdG5uS290anVZOVRUM1JMZjNielhYd2dhdy8ydVIzdEhNcgpybUVUcmdhVkFDTld3QVB4TVZ3Vkd1L0JONkxhcUptMWoyWTBQSnJSOUZobUl5b09EMDlKZkEyMGNOdUlBeUhraVZqYWJEUmxPcDNkCkk5YVhORHBsdFZubXVteExZN2ExeVdOcnlYVkF0T1U2SVpwemdFUTJDUGlqZWc4SytNa2F0Nm5VcFlWeldtYlZaT21rWUF1cFJhakYKY2x1YmhIYU55cWpteTh4OEVLMU9TaEVwT0grUU8xSzVVNm5RdGVWNlV6Z0xFTW5jaFNUT1BEU3VxWnc1Q0doVFVmc3FSdWx1RHdobgowd1RlZVBiVVhzcG9hT1p3MExHaG9NelJ3SXlSSGNjR0lQYVFXbjRwZEpIbEhKNmN3bE15ZVdxbVFNbVF5ZER3ajFpK3NnZ2FBQ1FRClVKZ3NFb1dLSjNISUxCbExxT1JvMWZ3OHM2ckthcXkwVzZwdnJ3RnF1TDBOSGdNUWZCT2lKc3RXN2JZQ05RQkF4VDRBNVpyVkhxUEEKcUJjVHBjVlA4bEZGM2dQMHlmMGtieHhqSnBVK2xrYWZUR05PcC9sR1N0TDRpMm1DK2YyQzJUUjI3MS9NczVxbVV3V2psd3VHTDFqYQozdWVWdkpaaG0wdFZ2WTUrZ0xzWXoxL2F6K25HaVhPZFJuMmxUVjFoMThIZEFhZWdJY2ZXbUd1L0UzbXVodHVKS0d1ekFVRG1FcmlKCkhMcDhxemJib29ZR0NUVkZKckhCSWpXaTlVQWlqWVdyc2FMTXFLQlNxa3FZd2k0SW9vK0VjQWVqZWQ2OTNNa0l6bmdJWXlpQTFyK04KM09sUGF2ZU5LVGJjR3lpMUpxNTVKM2tnaWpHYnpGazZ5SjgvSXBvL0xGbzhLRHgrV0xpUXlsdUtaUzJFMHNhM2tqcXdBZzZQdzJ0bQpEVXJsaDIvZVJLNCt3TE5SNVV5SmlpRFVBSUNZTWkxYnFlWEFVd2hiQkkwQlNLdmphZlE4MzF5WVFIa2JRRUlsVHl6alpzamtLUnpIClZuelZ1b3htWDQyWEtyL01acmlBNFhWclpzY3VYRzh3ZmpDVU1JcXE0MEZRSittS2hzNEtkMStKbzZ2YzNWOXBIeW9ySHFqTkg2N04KN3lqTDdtMnBQZkhLeVhjdVhEMSsvb3VwTXplbUwvMTk1dk92bDYvLzdiWFByaTIrODI3L1lGOTllVWwxVGxhdHgxV1c3eXJPc2VkNwpyRGxaWnBmYmJIWG9UUTZkMmFsM1oxbXlzNjA1T2ZZOGp6MDMyNUxsTWJ1eVRRNlBTZTlTVWwzbVNIb1YvTXJyQ09Wb0xBMVh2WUhVCmlBQ0VSOFdKMGZxcXpLclY4TldscWR2d2NwUC8wZGJ0bWQwQitMN2R4TDRRMzFMb1FCTGFDT1lyRk4rM2x6bVd3Si9aTDVvN0lKdy8KTEo1L1VqVDd0R2p1Q2ZGY3VuZytuamNUeVp6WVNLckRBdk1ObW1YenhiMzB3UUpPaWo4ZUd1K0dkY1FHYU1nM2tTdmp1RmxNZzh4cQo0ZHVzQXJ0TmhJb3dyaGhJQnJIQ0lGK3NCWkRES3JOYlpUYUwzR1JHQU1JV1FRT0E0SVF5RmVwbmVmbDdHWDE3MlROcG5JbkQzQW1rCk43UUllaXBOQkwrTE4xRTRIY09kUk5Vd3lBTUJ4SjRnY2w4b3VSOGlFTmNSa05rZVJPbUo1SXhFODhmQzJBTmJxVzNvVUlFK3ZyRWYKeEE1eXplT1VDajlTUlFJemw2UlhtUjBpT0JJd1VJNVY3YzdTbVhQVTVpeGxsa3NOWDNvczZoeUh3V1ZEV1JDenpDcTNTZWswS2F4RwptZEVJOTRnTTVZYlFLaVI2K1YvbHVpaGFyaCtwM0k5VzZrZENOZVkya1ZBZTRKMmsxZ0JTQjZBbmdJSjJnUVZSMEh0VXJJUGN1SmxVCkN6KzV3V2VnZFpuRmNERHdNYTRubHFJZ2x6eE9LbDVITEZwSmF1T3JDYitUMkJoRWJna2h0NGRSTzRQb2JXZ0xHTFV6ak5hZVJDK2sKcTIxV3F4SmxtSFNwczkwYVQ1WStkelVYb3NzSVVlU3lRQlM0ekJENWJ1dHFLWGk3Ulc4eDYweG1CQ0NORVFDa2t1dmtFdDBLZ0NBQQpRRUsxbU84ekVFY3BFS3FVVENXZnBPRFFaR0s2VEh4VUlqM0VzWVZTYXlKcGRmdFlMYkdjampodVp4eThjdHJqZVMySmdyWkhOcjFVCjVQOXk2ZlpqRlFINHVoQlNVd1M1TGZLMmZqQUFyUVo4R1U1cUR5VTAzd3VnUGZUZUdHWVBCcUE0MzJzaWZ5aWEwd2NBMmtHdjIwS3UKUWt1bGlCV2JTWlZieVZVQnpJWndZVWRxdzBDNmR5QnVzU3A2MGhNL1ZoUTdXcDR3VnBZMlhKZzhVcEEwbko4MGxIT2czL09ManV6ZgoxZG4vWEtSLzBhTW02c1VVblpDcEZRbDFVb1ZlcnRFcnREcmZUbmlkVEtlVEFJRGdNVzMwRGY4QWdEUUcvaXFBSkhvK0JxQS9TZVhSClRQZGFBS0hCbFFjRENBMENTYWVlRkk4L3JaeFBVbzNHNS9jZm5oallmN3d4YXFvMGVydzhmcm95ZWJ3cWJiUWhkYVF6dnJNdHViTDAKZHdWdVpvSGQ0elJEWHlyUGhUenJjNjRoUDBlWGw2c3J5alo1Y2sydUFsTjJuc21UbzBjWGdVV1JiNUFZTFZTcFNabXBMam9pQUFCMQorMU5hSHFWVlBNb3NmSlJZOXhpcC9uRks0MFp5MDFaU1d3aTFMNUUxZVZpdytKeHdYR1lvYThqTDY4alA3Z0FBRmJ2N0NuUEJOOE5GCm5zRml6MkJaYmwvRlNneVU1dlNYZUxwS25HMWx6cVp5UjNPWnM2WEkyWnh2cjg2MWx1YWFMYmttYW43T1V5V1ZhVTB0ejQ1Mi8yYWgKNDlESmxyaTNXcDlaYm52aXRhNG5Udlkrc2R5Yi9rclBMK2VhOFZVZXJsTE9GSzRDYUFRRDBHLzVMY0lmRENCcytBZWkwS1oxbVFVYQpIVk9rWTZEYzNLeWlhT0pJS0djMmtqc0szZXNreG5Rc1p5cUd0eFJPbXc0VWRvUVZOQ1pPVEJ4K3cvdk11Ym1uM3B1STZtNzJkeFp2CjBKWThyaTU5aEZiMkNMbnlNU0pLb28rNmhwbG9kZVI2S3FxS0NrOWtINFBRampDSVI0OVZQWFlNTHRlV3RRQTZ5T2tEQURVNEZkOEwKSUFob20xY0JWSlZ0S0hmcTh5MUtxMTRNQU5JYVJmRHI1MmtsVnIzUWFWQkM2NnZRTWpVNm9Vckw0S2k0TDRxZEIrQ3h6dlB1NTgxQwoydytSd3NOaS9sNEFIUlNodGJxSjNKbDl0UEZ3UEphTlpnd0F0RE5qRUFJQlNKQkZsdk5XQVNSVU1URUFTUlIzUm9DK0YwRFlpcC83CkxnT3F6VVlHQWdCVnVNd0FvRUtyRGdDVVl4TENiVVdRbEJ6aFRhWndad0E5K3ltekNhelpnOHlaTkliM0FCUEVzM0NBZzdaS2dXL1MKQkhQN0dNdnh6Q1g0ZlZPWm83R0Vuc2lNbnJETXdlQ000ZDJVOGZDTS9raFVrR1F5anRweVRKRHROQmlySFZyb0VzQ25DaDh2b0tjcAp6M0VuOHQzSVFMY0JWSlZsQVFBVk9QVUZOcDNIcXJHaGRKcGl2VmtDQUVJdGsxNEFBTkphVUhWa2VFL1RDSktZZWVDWVhmVHVRRW9mCnhFNUs3M1pLRjhERm45UUsrdGxJYk41SWJJUzQxMEFiOFMyN0tJUDdtS2dFR0p3YUFOQVI4UklHb0RUKzhUajI0aXFBMXVFUmdOQmkKRngrQTRDbDNrRzhGQU1sVVJBQ1FWTXRZQlJEMklMb0hRR2duL0cwQWNkWUM2TEhNRlFDQnhoNEVvTjJrTVlLMHNiblUzVk5xd3dBMApVTzREVUUxZWYzVkJUMzE1WDFmNzVPekN5Vk1YWHIvODFhdFh2MzdqNDZ2emI3M2RPemJjMEZoZFhaNVhVNVJWVytDcXlYTjhCNEN5CmJnUEk0N0c0czAzT0xLTTkyd2dBb2poTkViUksrSlhSSWtXRW51cjF4QVlNUUxjTmhOVW5Sb0cySUJ5cjMzaTBlVFBhRDM4M2dBS0kKdlR2eDNVSGsvbnNCOUpRWUFRaHVDZ0JRQkdQOFlRRUVwOUlIb0xyYkFLcU81bVRURFBLZkNrQUtQWit0VlAyYVh4REY2b3ZpZUE5dwpKeEdBaEhPZ245c0Ftc1lBRkVtSGk3OC9rTlFiUk9vTklZR0JlaUhnZVI3R0hJemtEWWV6QmdJWlhadkpMZXVKOWFqRVBha2FGY08rCkE2Q3FPRlkrVWFjeTJZVndKSENjV1RhRng2RUNTZVJabFVVV1ZTRzZRNVhaTnMxM0EwaXFsNytzMEViVDhqYVR5d0JBYUN6bld3QkMKQXorN3lLaFFLellDZEMrQUVIMThWUnlBUVk4VFNoN0RGYTNERjhNckFNZ25nWnB0aFBwZHBLWWdjbHNvQldVRFdnVlFPTDBqbVZIRQowRmh0TmhVNmNwZmE0OUxsK0twaG9QYlJ2UUtnUXZlcWZ1NFBJSU5SL1VNQXhCS0xhRElPV2NtbHl5VVlnQTZ6SGFHVXVuQnlzeStiClQyOE1xeitPQlMxK2Z3SzNMNG5mOThpR2wzSWgvRjRxMlBweTJjN01taUE4U2dNZFJtd0g2MENzU2dqZWh4SGJRZ210dTRuTlFLV3QKYXdBRTNNTUFGTWZ1QS8zRStsNFRlSU1Bb0VoNjUyNW1Xd0MxYVFlcDNoZTFPOGwxd1l6bUNGNW5YSDVYWEVkYjlHaFo0bmgreW1oeAovR2hwd2xocDBtQWV2RThlTFU0WUxVb2VLMHdieVQvY2wvdFVtL3NYalk2WHNwVVpkZ25WS0Jab3hXcWRYRzlRYUExeWhVR3MwYThzCmhWNEZrRll2QkFBcGpDam5HUFRGZlFDaUN6UzBGeVNLdmN5c0xaVHkrd0lvaFRjR0FEb2dtc1FBNURNUUF0RFQwdkhEbXJFa1ovK2gKM3BGRHg3djJ6UlRGakpla2pOU0ZqWlhzR3krTUhjK05uY3piTndVSFhIS2tOLys1Tm8rMHhLNHRjdGh5VWJjSlRuQitqc0dUcDNFWAphYk9yczZTZDJmVEJYTzVBbnJnN1Y5U2VJMjV3YThyczBsdyszYUY5UVZkMFVOSzJoeis0azkzclIyOTRqRnF5bWRHNGtZWm1mQjRqCjFNTWpPNGphSDhPZWhCN0dIOFFqR2xOcFMzNU9aNEVIQU5SWG1OVlhrTmRiNXU0dUsrd3JMUndxTFJ3dWdkZjg3dks4bHFxOCtocFAKYTVtdHRkVFJWdVpxSzhsdUxNa3Bxc2d6MVJkSTJ3cGVuQ2o3bGJjcGJXa285WlhScDk4WStzWHJYUWRmYTR0L296dnU3YTZrTjNwUwpYKzg3K0VyLzRlV2VYNTNvK3V0QU5TM0h6aExwZjhQSmlhRzBBNEFpbUNPeDlQSG5lSzBDUFpvQysxNEFyZXJIQnlCMUZ2VFVkUnlwCmpzblVDbi9MSzRnakQwZHc1eEk0dzhuTXFTVDI0aDcyVEFoOVBFbzVjYUI3NHVsTEkwY3VqeCs2TXBoNHVpWCtyYnFrNWNZa2IzUHkKZEh2aWRGdFlRODhXWjhQUDJLVS9PMWE1TWFObE02RmpBN0g1Wi9nYVAxek5CbndWMmthQkwwY0xJZUVwaVhhT29LS01XNG05dTBuagowVFF2eEFGV3YwQlhXdWRTZlFlQVZnMjBGa0NnbjJLSEZpMkN0a2lnR1ROcmhVNjF5Q1VYMk5WY2kwRnFOUERVS2hvMGRSSVRrNnprCjRQalorM25UNEFaVVNZbzlENzhkQ3BSV2VHNC9DeG5vTm9CUXV0dURvb1VEd3RuOS9MbFk1dFFlMGtRb2ZteDM1cGh2RUdob1Z5WUEKcU8wMmdHaTNBVVJmQlpCVVFWOExJQ3FOQUFCaVN3RkFMSjJHWDJCU1Zka01GVFlqQmlCczRHY1ZRS3V6WUJpQXNGbXdFb2NSQUpSbgowZVNhUmRDN3dFbktEbkVta3pnenFZekpGT3BzUEhzbWxUVy9uN0dBQlJqb0lIY2huVCtYenZjbVN0NU1FTDJheEg4bGtiTzBoeks5Cm16Z2RTSmtOcEM2RTBxYjJFa2IzRVZFZXBuaGErMUcreDZFM0FJQnFuY1o2dHhrKzVOWTg1OXJBQUlSVkk2bnoyS3V6cmFWdVU2SEwKQUFES3NXbnRWb1hCSkFFQUdhMHlrMWxzTWdneEFNRnpBTjREZ0JKWU9adnhuU2k5Q2c0RktCa0NqZkdnTldRTjBOdkdBSFN2Z2Z3SQpyUUhVb1dnVzJ2WjFTTGo0aEhnQkFKUXVXcjRYUUk4VDZ0QUlFQTYxdGFDQnJkU3FRd0lyWGM2NkF5QWQ4N1orVU1EVkFxSFQ4N1VHCmJDNE1Hd0hpcmdWUU10dU9BZWd4M1BjQUtJUTQrcUtndWFyUTNWMWk3U2x6OXlFQUZmWFg1QTFYNW93M2xnelVsVFNWRjNZME44ek0KekN5ZWZHMTY4Wld4N3ZhKzV0cU9xc0syVWs5N3VidTF3dDFRWXE4c3NOd0xJS05kQ3dhQzl3QWdqOGNHQnNyT05tTUFzbVVaOUM0Vgp5V1lLSTFldXc3V2cxaHJmZ1BvYlB2cmNCU0RmeXVpYWpaa29FNm5mc2FZdEtDTmlUeUNoUDRRNGlBRUlUWVFSZTNjUmVuYVRCNkpZCjQ4a0NMd0FDMndPL0ZrQngzT2x3K3RqZHZ2bmUrRGFBb0NHUFl1ZVFkY3AvRTBDclUyQktnNENyVmo4dnpJdGxkVWF6cDFPNUU0ZDQKNDNEOHZqVkFDRUFRQUtCWUxwb0NBd0JoOVZCRFNEMm9maXB6T0lvN3RwYzNFc0VkQ3FDZzh1OStjRm5Da3dvT20xeURDb0doRVpxYQo5ZFJLT094WVJnRmVwOVRiMFFnUUhDMGNVbzVEa1dlVm83Q3JjK3lxYktzQ0hrY1BBcERhS0FZQXlRenlZd3BOSEQxM0M2bHNFd1lnCmNnV2djQ3VwQWF3REFNTEsxR01Bd2lxMndoK3RBTWczQmJhSldnbmlXVThzOWFkVVlkTmVtMG5WOExvUlYrbUhyL0xIMXdLQWRoS2IKZzhob0ovd0tnQml0NGRUMmNIcmJmbllCVTJ1eDI5VUFJS3dVeGtvNU1MaWpid09vSU11Q3pYK2hLYkRiQU1xeUd6RUFHVTJhSHd3ZwpBVjNKaFNjQVhTNWpTcVhIeFBJakhHYzRwU2FjM0JoSlJmdlpvNWw5QUtBRTdrQWlyeDlsZ3ZiTHlObjRjZzRZYU5OTFJWdU9WZTdLCmJBek1iQTdNYk4yTmF3N0J0NEI0SURENndKY1F3WVNtbllTNkxiaEtERUM3U0FoQSt4aDlzYXhlQUJEb0o0WUZ5T29GQSsxajl3S0EKd3BrOUliUk9nR0V3cFRXSTNCSklhUXFtdFlReTI0TUZaVUgyNHIyMStRZDY4dFA3OHhNRzgyUEhpcUlIUEVrakpmR2pKZEZqeFRIagpSWEhqeFVtakJTa0RlZnQ3YzM1YlovcGpxUzdETFdlWnBGSzlETG5ISUZXWnBLaldpVUhxV3d5RWJRWVJyZ0lJdWw5eWFJcjBRb21PCnhsUFRueGNySTlZQUNHQzdDcUE0OXNpOUFEb2tuZ0FEL1VJOGxxcnNPMWcxL0l1bDhiampsYUdUenBpWjRyamhpcGl4K3JpeGlzU1IKL0poaER4d3R2TjgvWEhhNHQvZ1h2YmwvYXZPd3FrQ3pqcnhzUzFHMnFTQlhuMXVnRTlRN254L0pPcmlZOTh2RjRoY1dLbjV6b3ZMWAp5MVYvbnF1aVRKUWRIYWo3WlgxTHJLdHRtN2hwSTYzUm45SzhqZDRHQitsSHFkaElxZHhFcTkvT2FBMWxkOFZ3KzVQNFEzOFI5NW1zCnhXMTUyZDM1bm80Q2UwKytxemMvRndEVVZWN1FYVkhZVTVIdmk5ek95cHkycXB5VzZ1eStFbGRuZVZaRGJWNUpRNUcxcllJeldQMUgKYjhOVEo1dWZmS1hsNEJzOVNXOE5wcnpSZC9EVmpzTW5XOUpmN1Rqdyt1REJOM3VmT05HVC9tcmYvbGQ3RGk1MkhINnQ1OW5GMXI4MgpGQUNBbnNNQVJCMktZQTdGTUNaL3plM2dhSzBQRHlBbEFBaWFBUVFnSGZmM2dweGsydEJlamplVjZvM2xUTVlLNXFJWmMrR1M0ZGpXCmdZT25SdzVkR3pwNFpmRElsYUhrOTFvU1R6UWtMOVluek5URWVhdmk1NnYzTDdkRUQ5VUZsVlJzMHBROVJxLzhPYTV4WFdibkJueS8KYjJOOGd5OG5VQVhFT2x3VldoeU5yL1BEMVFPQWdraWpvSjhvbWplTlBjalZsTlc2dEE4Q0VMeTVDMER3WXdDZ01vZXVGQzN6VXR2cwpjaFBhQ0NaVVdhVkNqMHB0NW1rMEFwT2VvOUV4cERxMndFQWp5emtaL053azlrUWlhektCTVIzSG1JbWp6Nkpnb2xvSzRLRVV6c0orCkxzbzBBdzN0WWRGS3BBblJRcE1veWtRRVlSelZ3Y2dZZ2dqQ0RlMGxkZjVTNENITEJHc0JKSmV6MFhackg0QmtjakFRWXhWQUZBNlIKTFVQVlVnRkEwRTBFQUZWWmZRRHkySUVVQUl2VndFWlpzSUVXdE00cHkxTGhNcFU0RFlVMmJaNUZuZU5UUmFZWTdkNVA1TTRtMHljVApxTlA3MkJQeDhJdFFaeE9vczBuMCtUVFdFZ0RvTUcvdU1NK2J4aHZmenhsUEF5cHh2QWtNYnlRRlZUSUpwZzZIMGVhaXlWT3hsTG05CjlJVUVlaGNBeUs3VFl3QnF5TExBUnczb2FjdDNyVVp6b2FzNTM5bVVCNGNLQjJ5cnpqYVhaeG5SUGtxN1B0ZWhkZGlVUnJQVUJ5QUoKQU1oc0ZPbk1YSU5GYkRESXpDWUJUU2VJWjJadHdyV2dOaGdyRklXV3o2TllSMXFKRGFURzFjQlVoTVVtWWxzUWZTU1dzNWpLUDNGWQp0UFNrWlBFSnlmRkQ0aFBvMVBnQUJEcGZCWkJ2Z1ZxOUQwQ04yNm1WVHdxdExBVlRyaWFKdEZ6UWoxelBVdW5admtVL0tEUjZuaGFsCkR1Y0NnQ0N3WlVBcjFUQlVhQmtRQmlCNHRLSVJJSHd0WExyclVTWm9CS0J0dUU0QTBHN0NVQmh4RFBRVFRoa0xJUTQveitrc3lQZDAKbDFrR3lySjZLeHg5RmJtRDFYa2pWYmxqZFVVamRjVTlWUVU5MWNWOWpkVzlUVFVkOVZXb1ltQzVyMGhPZFc1UFpUYjBpT3FMSFZVRgo5bFVBUVlkdEZVQVF6aXl6TzhzQ0FJSUFBTGw4K3JHNjlRYTNsbUF4aFJBUmdCNG5WZ0dBNEVOZUN5QnN4bmsxb0VNQ3Q5Nm1qTWF0Cm1YY0FGRXJ5VmNQd3BRS0NDS0ZBYjNreVJUaTdDcUFuZk5XSDREVk5OQnZEblFxbGo5NTNzR2QxUU9qZVFLZVNnQUFFSngydFpTSFYKaExQeU10WHFod1dRMHliSEFHUzJySlFEV3dHUVNTalFLUDRrZENjd21xTllZM0ROQTREU0JGNlVHYzVub0ZUaE5NcUZ5RUVMQmlKbwpRNkcwd1FqYVFDUjlNSW81SE1NZGp4R01SL0tHZ3hpOVcwaE5mbWo4ekhmWVNEOVlJQU90cDFiQVlVY3hDak0wYWd4QXFIaVpTK3B4Cnlqd09oZE9sc21XcklkRFdLb2ZpT3dDaytmOVp1OC9nTnE4MFgvQnEyOHBac25KaXpwbFVkZzdkZHR1eXJVQ0N5RG5ubkhQT2tTQkIKa0FSSkJJSWttRE1WU1VsT2JiZXozUTd0N3A3Wm1UdDdaM2VyOW43YXF2Mnk1d0N5ckxiYm5wbTd0K3BmcUpja1ZBSko4SDEvN3puUAplWTZFejVkenJnbkV0WGpiWHBSL0c4YTNCUUhMVEFGdWdISUtLK0gvRGtDb3hNOEJ0QmtGOSs2RWw2VE80TmIyWUg3bXEydnIxUkFBCkVNZ08yQlN3QndDb1VBY05BSFFRbThnREtIR1MwTjlBY2hKbFB3VlFmdFNuQUNBNDhHTTNQNUtISTBENm53SklLQk1BQUxFa0QvWUMKK3ptQXlEd0dVVXpIaXBoNExnUVFnaU84UURNV1lhTW4wQkdRVTlqZUV2eEFCV21vaWpKY1JSa0UyYkN0dzc3bG1tM3JGZnYyeXg2NApGMWg3Ykg5SDM0SDIvb05YZWc5ZGpSKysxbGVRVUNIZytDQWl2cStqKzFFQW5TZ0FpREFLVWs0Y2hSdW1FZ0NEUmt1STJWTndVN1RzCkNYVHFPQ3A1REQxOEZCZ0kzUWR5R05OL0Vocyt4SElVNi9YbndzYUxjWDFEeGxRNzV5NmRjbFJPZXN1bnZJQVVlUVA1cXFZOXRSUHUKMm5GWFc5WjhjZER3MjRqcW1sMUMxUExaQ3A0QS9uYUJnWGpnTVc4Z0NLQjhHem9HT04wOEJCQkx4bUJLOFdRUi9rV1c4QmplQnNjQQpVZjVIQVpSZkJUYjVjQW9NR0FpK2labHpBRUFnRjVnejlZS1JzN0haMW9YUmszUGVFd3VXMGtYbnFRbDc2V3dVQW1ncVVETVZxcDdxCnJwem9xaG4zQTZzVnp6b2JjdllYaDJ5b0hqTS9vTmU2TlZhbjJ1RlVJN0tPYzB1dXlqdXV0aFhQK1VWZjNYVi94UzEvL1dxZytXWVUKNE9QYzNjeVo2MlBWNlpFanpzUldmdmR2OEtGZHhQQjJZbVFiUHJvTjA3TUgzWGNVTzFSSnlqUlJSeTl6a2dhREIxd2hraTV6d3FOTApPVTBBUUptQWVUcS9GWHc2YkUxRVlaSmh1QVkrNTdQMGQ3bThBeDd4ZUFpMUVIbmxldS9UZHdiYjdxY2EzeHM1Y3p2WmRpY05vTk44ClA5MTBiN0Q1N2NHbWR6SU43NHhmdUpPK2VIMjRkVDNWY0RmWmZDUFJ2RDUwOWtiL3EvM2VBb0RLMEFQSDBXTUFRR1c0Mldjb2FhTFkKK0o4QjBOOFpTTXUxYUtGVHdTMHlXVVo2aldsdXhJK1dVdVpyOERmTHljdEhzYmxUM0tuVzRjVzJUMmZxdmg5citIYXk4YXZVbWEvRwpXOTVOTjkxT05sNGZxRmdNbHk0RVNoZDg1VXV1bXV1aHVwVlljVGEyengzZXhBcytqb25DdlpNNlV4c1JRNXZoSW5rNEpnOXUwTUhOCjlJWnJrVHlBMGdCQVFEL0Z1SlY2WWc0dkNrUU0wdjhxZ0lBUG9ucTVWeXZRSzVrS0tVMmk0bEJpK3FzclFVcGN3MUp4bFdLeVNFVm0KeUVrc0NZYkFaN3pHY0ZRVFpxdndzeFc0dVhMTVlobDZBZlk2d2k2VzR4YXFpY3UxY0orcEc0Vk9NK0JhZTRaNTR5enJaZ3Y3UmgxbApxUUszVUlTY0JRQTZkQ1YzNE9wWUhrQ3BaK2gyQ0NBdWppb2dQUUFRbndpWFd3dUlEd0hFWUdDSUpCUUFFSWFDQkFCaThva0tDY09qCkZuWnBJSUM2TFZBL0JRRDFPWDdjOEJXT3N1VDFBemQ4TmFtQ0JvVlhMM05weEhhVjBLS2tTNlhjcTZ4d00yV3BpcklLdnBkUzVOUlIKYkg1ank4NXA4Q0xCOTlWQXZGRUEwQm5xMGxQc2xmT001ZFBrbFJiaXpUcjg5VEwwNGluMDNDbnM3RkgwVWlseXJoeTFYQmdCZW90cQowa2hFWFhwUnQxSFdhMUgyMnpVSnAyN1FwWCtZQVJjRVVPRzNBSDcrM1ZaMXlLTDBtK1VldmN4aGtCcjFJcVdHRGNRREFLUlNzd0Y2CkZHb2F4SkNjclZZeGNESmFEY204dlhOZ1MyZlhWbFNza00xb09KNjZDZFZieUM4QmFDZHErQWhodW9wNnE1bXhmb1oxQ3dEb0hPZjIKYWZZYUFGQWovUmFBRVFBUWVBNjRyTUtxL003ZUp3b3JFenRpQjdIaHA1Z2FzZ0RQRnlJNUVqcFhpZ01BRXNuSkR3TDBrM2RQSGtEUQpRT0F6c0VJUkFvaGNBTkJsTHErV3JOdlJBVzFSQUZCK0s0eGVPSHY3TXdDQng0djRVWlBkblE0cWN3RXJBRkFtYkIyTDJLZTZITG1JClk2TExPZFh0emtXZFFFWGdkbWkweXpVZTg0NUYzU01SV3pwa0dRNVlFajViekdQcmN0bUNMcFBQcmk4QUNJaEhhNUFYQUtRM0tSOE8KQXBtdEtvTlpBZlNqTnNzVUppVkNyVDZHakc1cUg5d0VVQUwveXFKUWdiOEVvSTdJMW12ZEFFQzdyc0p1UUE4QkJCN3pMYUZoWjZEagoySWtLOGp3QVVCTnp0WmwxdlRVUElKRFRMRUNpSldDakk1aUpuMDk0UFRvajl2TnNoS3RKQWdBVEJRQ0J4Nk40NXh0QzZmOUNBSUhMCjhCdE1YUjIrcHhpZnF5VlB0OEQ3NThYQ3pYTVRZNjZCTVZ0RG5hbWd6SlNTcG9DUWl2QzVNdkowSlhXMmtqcGRRWVBEUDBjSjJiMm8KeE1PcFBXQ2RmSnZtQnd6YWhneHRnZVd6UGFkd3JqZkZZb21XbFFjUXkyRGltQ0dBaEJhRHhHQVVnNWlNZlBDWlh3U1FpZzBBSkpLeQprRUpoSTlHMkgrWGJqdlVXU3B2ekFPcUJBRUlPSE1qcjUwbDBQeXlGQmdDQ2RSYzlPNUZkMitEdUdTREJKeER1N1pnd0JCQUtUb2R0ClFRUTJ0ZnZBRXpaM0ZEd1UyWW5vMlllTWczOTdHRDEwQkpNRUFEcUpHemlPNlR0SjZHdWsySWd5cFM0L2MvY0FRRVk1TEJISnQzNSsKTU9wamdiMm1mb2pHYWxLYkRUOU9nZjJYQUlRWFV0RUNPbzdESVhNNUtBSHZXYWErQk84cndrZUs4RjNGK040eVVxS0trcXlscCtzWQpxVnA2RXU0R3YrV2FZOHRWMTQ1cnZ0MkkwRDVFejVPSU9NeGJQUWN1eDM1dW9QMGR2WHZhbzBBL0JRQWRRTVZQWWxObHVHeDUza0FGCi9aVGlSMENLOEJrQW9DTDB5RWxrK2hoeStBaHk4QWhxNEFBY2Mrc0dLY1gySFNFNnl6aXE1M1h5VjN5eWl3bDE4N1M5WXNwYU9lV0cKSlVFd2NDaW9lc3BYTitHcnovbHFKdTJONC9iemFldkxNZjBWcnh4ckVURTBBcTZTeTFmekJXcXVXTW1WS21HYlRsZ0IvY2dJRUZjSwo5TU9rU3doRUVlRjVwdkF3OWhjQlZFdUdnMENOK1lhZUxZelp2SUZtQUlETzAyZWJCSlAxMW9tVG52aUphTEF5R3lrZkQxWE5kQjJmCmNaNmNzWmRNdThwbWdpV1Q0ZUtjdjN6Q1hqMWpyQm4zZ0RTTU9jNW1iQzhOV1RwNmpmU0lRUmd3WEp6ejF0enlsYTM1bWxjRFo1WUMKalRkQzlYY2lMYmU3eXRlQ1pXdWVpbnV1dXZkQ3JSOE1OSzZuaXllR0QvYjE3MWIwYk9GRk5wQ0NHN0RSWGZpaGs2VHhXdXBVRTJVYQp3UnMwVzV5REx1MncyNXp3Nm9kY3BwVExtUXFhczJIVGFNZzBFWVRMNE5OaGUzKzNNeFIzdWZ1Y2xPa29Zakg2OHUzZXMzZjdXdTRsCld1OUMzTFRkSGFsL085dHdQOVA0OWtqajI4azZvSiszaDFydnBWdHZKcXZmVFZUZjYydTQyMzkrTmY3OFJQaTMyZUNWbUp0a01KQVkKQUVDV01uVGZjYmhwYzY0RU4vOFVPWXNUbW40SlFJWDhoRUZRUWhCQXNJc2RBQkJGaHJ2RU1iUVFSOG9wYytXODZ3QkE1Y0twdXVSNAo2eWZUcDcrYmFmcDZ1dkc3eVpidmg1cy9HNjY1RTYrOEhxdTYyVjE2STFCK3cxOTVJMVExQjRlQ3ltK0VLMjkxVlMzRlNvZTdEMXA5CjIzbldEZmpZQmt6M1kzQ2RmSHdib244YnNtOExzdmVKVG5BYjJyTWJtVHJZbVN2R0xKYmdWMnZ3NHhoQkVGenAvMHNBQWs4R1JJaHEKWlY0MVg2ZWtxU0IzMk1pVTlaa3ZCdHZmN2FkMldjRTl2VkJKWVN0b1BERXdOL2RGdXIyS09GdEZtS3ZFTDFia3A5N3lBUWFhcjhLdgpBQVBWVWE0M3drNTlOMDdUYjV4aDNEeWJud3Ryb0sxVUVaWktNUXNuRVRPd0ZQcnErS0gyc1JMVXlMTjBGNHJMTEFDSUppWXlSWGkrCklML2FTRURrQ3ZBOFB2NGhnTEM0VGl3VlJlSGdBWStVTXJwZkt3YXZ1VXVuNkxFKzBNK2pBSG93emZUTEFKSkl1VmZZa1NiS2FnWGwKZWhsbTZnUmlQTi9EYlhodlJ3cGN6MDZoWjhBMzBrd0ZBRm85UTFscHBTMjAwSmNhYWNzTnRPdlYxT3VseE9YajJKbGoySmtUdU9VSwp6R0lGZXVrVVpxRWFOL2dtUmErVzhDSTZRWTlCRmpjckIyeWFRWWR1eUtsL21JVGJCQXlVY01CZlJOeXU2N0Zwd2xaVndLTHdHdVJPCm84eGtFS3EwSENDZVBJQ1lBRDFLRFYzNUFFQTB2SnhlUXpYdlJBM0FYUVhRa0Q0L0pMNFY5U0NQQXVoUkErMUNKNDhTWjZwcHQxdVkKZDM4Q29DYkc3VWNCQk5ja0l1TlBJUHZnbkJxaTl6QXU5Qnhiays4OGlRSUE0c253ZkRrQjBFZXNvQlFDOWFPZ3krUlVxUUtFRHM1UgpFRUFTQ2tlVVg4cVhCMUFOU1FzQTlIajdBR3pva0FjUWVCc1hBQVNyWng0QjBFbk1WQ3Q2V21ieEprT0tDYjgxRTlSbHVxempZVHRBCnp6Z3dVTlE1MGUyYWlEckdJemJ3T05YalNuYTdVMUYzSnVyTWRMbFRZWGNpNEk1N1BkMXVkOGh0TGdESVlkVUE3dWlNQ3FWZUNnQUUKSkFRTUJENERVcGovQWdCU21hUUtrd3FoMHAxQXhiWWhNM0RLSmc4ZytCUDRHWUFLRTJIZzZyamxhbVRiMVo1ZFZ3ZjJ0Y00zekVNQQpnY0FXeWNqUlU3akpLdW9pTEtCaC9BTUFsWkptRDZOei8xVUFnZDhMWEtrRUFkU2RCMUR2QVp6N0ZiN3MvdytBbEVwdUFVRGdmcHVyCkFNWmxYV09xbXZEaFV0eFl6UU1Belo5bS9nQWcyZ3dBVUJWNUNoaW9uREpUMEU4MWZiYUtObE5LbmppR3orNUREKzVBeERmbHVRUDAKc3gzWm5XL1REQUcwNlFHQXdvRHNKN0R1MTRRaW9ZWU5BR1FGcjliQTFodDRScFBFYmxBNFZWS25TbXpWQ25UNlh3U1FVTWtSaWJraQpHUU1qRXJTUkxBZlF2aDBZNzFaRVY4RXhRRG5BT2tBdEVFRG8va2NCdEFjVjI0V0N4ZVBnbVNCYmtBRVEyTWtQRzl5QkQyOUNlaC9yCmRHN0ZCd3Jyd25aMEFrdEY5Nk42RDZJSGptQUd3ZTM2Z3lrd2JQd1VLZFpFdFpLQXEvWHdGZHIwVXF0UlpqUEo3V1lGUU05RDkxaXQKYWhDTFJRVlNBSkJKcnpEcTVGcVZ0TEFFN0Q4SklBcWZXUUFRbnNjbTgxZ29QdU1acHFpTVlQa0JRRDBBUU5YVVZCMGpVODhjcVdlbQpOMnhwZDI1cGQ0UGs5MFAxQXdQdFJZVDNJcnFBZmc1ZTZYMm9uOEpjR0RqWTF4NHJBR2hiQndUUVFWUzhDUE1BUUNBUEFWU0NnL3FCClFXV09JNUtIT3hJSDJ1SGMyYjdPNkw3T3lKN084QUZrOUNEV1dVdFZ2aTRTZCtpNXZ3MEt6cVUxZGFQR3Fra256RFNjL3lvRUhBTUoKMVU2Q2VPcHl6cllSMjNNSjQ1dGhGYzR1cGVwRlBBMEVrRWdGQVpSL2R6TEZjZ2dnbnB4U0FCQkRCZ0JFd2d1SjRBZHhBUE9QQVZSQgpuS2doVFFBRE5kQ2dnVm9lR0dnRzVDeHp0cFcvVU1tWk9NRk1sa3FTMWFiaDJ1Qmc4M0NtY2pJQWlGWSs1eTZkY1JkUCtvckdQYVVUClRnQzQrbEZ2emJpM2F0eGRPZWFvRzdXM1phelBEQU1KMldxWDRKVzc0bmF3OGxhdzZsYWc4bmFnK25hdzRXYXdaajFZdGU2cnVPTXEKWDNkWDNQZlh2TnZUK1A1Z3l3ZVowemVueWtaVHU5M2R2eEVGTmxLNzlwTUh5Nms1Z0RPVWFNRHVjQ1U4MmtHZmFTQm9USGpOYWE4NwpHVFQzOTFnU1VldHcxREhRNC9FbC9QSnNDRHNidnJUU2RXRnQ4UFI2QW83eDNFMmNYaDgrczVZQ0FHcThsMnE2TzlKOEp3VlN2ejVjCmZXKzQ5cDNodG52Sk05Zjd6bC92UHIwVWZIblVpK3l4NHp4R2dsN0o0VXNrRlA1REFCM0ZRQUFWNHhjdmtMSm9nZlhYQWZSekNibTAKSEp1ZUN5NVVmQW1CTHNkZTRldlBrRE5WdExtanBMRWlZYVlsblR2NzVXVGpYMGRidnA0OCsrVkV5eGNEMVI4R2ErNUdxcTlIYTIvMgpsRjMzSFYrd2xTMjVheGJEbFhNOVpmUGg0c1ZBNldxdytsYTA0WHFzWnJxclBCUFlwUTl1RWZvZUkzb2Y2d2pCbmJSaDJRZTRXWWRuCjVGMm9OQUJRRVhheENIK2pFai9XeVEvNjlQOEJnQW9HQWdBQ0tRQW9iRkJGdEZLWFRxRFZzN1F5bWtUQ3VCclROditoKzlsL25rRXQKRDlMMVFvbUlMSlV5V1dJY1JzWjlnV2I3RVVENDVYTGNjZ0ZBSmJqRmN0d1NNRkJoRUtpdzNCb0E2QUxyZGh2N1poTWRMaE1EWUNwQwp6aDYrbGdNNTBqNWVnaHg5bHU1R2NkbFVMdUdYQU1UbEVaaE1MSW1NQmdEQzBaRGdtZUNyS2pram9KTUFBRVcxaWhoYzJBOFhXejFhCmJseVlZNEpGVGxaMWwxa1pOaWxDUnJsWEwzRnBoSFkxMzZ4aVNxVDh5Nnh3SStsNkNXbTFDRFY1NkZxaEoyOXNTM3Q4VjhjZ3VJQ1YKRWVjYktLdHR0SnRuYU5kYm1DdHRuSlY4QVVSaFA4aTVZZ0s0L1owNmlsNG9SYzZVSXVlT28yWXFzZkUzcVJxMWhOTmw0TWFNOGdLQQpIdFZQSGtDR1FaYys0ZFNCRERpME1iczZhbE9HTEhJQUlKZEphamFLMURvdUhQTFJzZFFhbGtiTlZQMEFJSTJhVGxEU2F1bm1IZWorCmJaZ0ljTThQZzBBRit2UnRSL1dEQUx2OEpCczc0WXFoQW9CcTZIY2VCZEFaempyOHZlUUJkQmovZHdCNkhOVy9FUUlvZGdRZmVvR2oKWVFnSkloRUtuSFlLQUJJclNBOEJWSERQRHdDaWl2T3pZRHdwRlpZQmljaE1JZTFSQU1IaEpiaVkvQjhBQ09nbm44bnFqaG11d1RjVQpsRTk2TGFtZ0lSMDE1eUtPMFc0bnlIaVBhd3djQUFCMU9jWWlkcEJNajNzMDVobnI4WXgwT1llRDluNmZQZTV6OVByZFlZL0Y3ekM0CmJGcW5UV3V4YWdGNkNnQlNHV1FBUTRWUzZBS0ExR1k0QWlUVHF6clYrbUpjWWpkdUhJNnJYWU5UWUQ4SEVLRFBnMVZnVi8yYnJ3YTMKWEk3dXZOSy85MXJ5SVlCK0dBU0MrMlBrSzZDWDRQQlBIa0J0N090bjJBOEFWTTlZTENMT0hFS04vNXc0djU2SEFOcUM3QUVBZWdJUgoyNC8xdmN5Vi8wOEFTQThOeFA4SmdGaHlLay9HUkhFVVowamhDdEo0dmhjaW5EMW9ZenlZUUdpa3o0SlBRZ1BSNEI4QzBFOEZCV0JvCnFvdzBBYTQ0aDlDd0VlTE96cjZONk1nbU5KencydFlKbXhNQ0NVRzBvUUhhUWx0eGtVMm8zcU1ZejZ0Q3NVQU5SNENzZXFaZHpWWlkKaGZ5UVJoQXlxdXhhczA1aDA0a05XczZ2QUVnbzRvZ2tkTHhJY0paaVBZVDE3Y1Q2NEgrVUJ4QlFUZ0ZBd0QyUEFLai9JWUIyb0NQYgowQ0dRWGRnb05CRGF2d25qZlFMajJrTDJiNlg1TitBczI5R0JIZWp3Ymt4a0x5WjZBTnR6R05kM0JOOS9ERDk0Qko4cUlneWN3dmNWCmtYdGE2RGFLVXFVM2lDdzZrZGtvdFpoa1ZyTWNRQWVLeHdZWEdNS0JScnNHSE1OQUEya3NSaFVBa0VFcis2OENpQ3JnRUlSMGpKQUIKQUVUaVVsRjh3b3Q4WGhQSFVzVnlWYkc4MWF4QUxTZmF3STAxOGVQTkFwZ05teEVla0MzdDNxM1hZTFpmOWU2NDV0dDF6Zjl3N0tkQQpuNGNCQU5yVjN2VVRBSlZqczJXNGtVY0JWSXhObjRTZHNGTW5rZWtqaU1FRDErTDdyc0xkTnZaMGhJQis5blRDK3ZaRFJGOHpYZC9PCkUyRWtsTmNzbEtmanNuTVpZMVhPWGpuaHFKeHlWc3k0eW1jOFpiT2Vram1ZNW9sZzdhUy9iTklGdnRvNmF2dHR3b2dJcW9sMkJWOHIKRUdoNFlqVlBsbThPbTE4REQxZUJQUW9nbWhRQzZHbW01RW1zYlFmUy93OEJWRTNNQVFNVitrRTM1dzFVQUZBTFk3cUZ2VnhQWFc0aQozMmpBelpYajBqV1NkTFVsV1JFTDFTUUR0VGx2MWFTM011ZXZHZStxSG90VVpmM0ZNNEhTU1gvVnVLZDJ4RjJUY1ZWbW5TVTVWOUdFCnEyYk1XVC9ocVYvd1Y5d01GSzhIU3RkODFiZjlEYmU4MWJkRDFYZTZhKzdFYSs3MFY5L3VBOWR5QUtQcU85N0s5OTJOSC9hZWZuZTgKZm5hcU9EaHlURDVZeWtrMmNFYXhzZ0duMjVYd2FSSitVMS9ZbFBEWlVuNVBNbXhKaCsyOVBVNTcwaXVhakNDWGUxNjZFMis3MzFmMwpUdjhMTjBZdTNNbzByNmZyNzZVYjMwNDMzUWVQU2NDZHhudVpscnVaczNlenJmZEdHdTZtMis0a24xN3VlMzQ4UXZGWmtCNjRzRnZICkZVdUZJaTZmSjJEeEJIekpEd0NLSDhWa2ZnRFFHSnB2L3lVQWVmV2lmOHdnSGRkdTRLbmtQQUFnaGdKN1RhQTdUODNVMHVaUGMyNDgKbFowLy8wVzY2ZnRrNDNlVFRkOU9ObjNXMS9wdW9QcW11eWhuTFVyYmFtZERkYXVoNmxWLzgzSlA4MVNzWXNWZnRScXVXbzZVTDBTQQpoTXJBd2MxbzZhMUkyM1M2S2o1d1VOTzFuZHdGS3o5Zys4UWVPQUxVRVFIWHRnUElCd0Nxd09jUXZJQlhwL3dQQVFSU0lFSUJRRkdqCkptS1EyMDE4bFlWalVETFZRZ1lxb0R4ek8xejVyN09YUDV3aHVsUXFMbUE1aXl4Q3Q4dllMOUh0bFlTWlN2d3NBQkFRVDJFRXFCZ0wKdDFBQUgxWVNWbXBJS3dCQWhZWjc1L0lBT3MyNTFjS0V5OFFBajRwUmMwYzdKbyswVHh4RFRQd0tnTGhDMHM4QmhLY0NBT0hBVjlVSwpabEF2N2RiSnUzVktXUHVjWDJRTzNOUHZORHdzc2dFcEFDaHFVVVhNU2dBZ24wSHExb29jR2tFQlFHOHhJclhFbFZPRTFST29pUU5YCmt0dmFnU2tqNEFxOXRRT2NQVWRLaURQZ0JiZlNiNTZtMzJvajNUblB1SGVhZWJzUmJrRUtTNzlodzJqVVNoRnBwUW8zWDRHWlA0bVoKcWNiSDM2S3BWV0ptUk04Q0FPcXpxQkoyTFVEUHNNdndNQVVBd1RqK0RrQStrNndBSUkyZXA5QXlId0pJcWFZQkFLbGtBRUEwb29wZQpBTkJXRERoMzkrYlRCNUtuVDZLUXphaStueHNJQkx4SmpwRm1meDFBTzM0QTBFWlUvREgwQXdBZHd3ZGU1cWlaSW1JZVFDd0FJSUdDCkNBQWtVVDRZQkFMb2tTbHBNZ1g1RVFCUmZ3S2dhcEoyTytKSEFHMjhHdjhsQUIxSFRaUmVtNlByd00yT2ROSmpUZ2IwNmFoeE11d0EKeWhucGRvRUE2OEFVR05UakFoSWFEZHV5SVVzR25pdXNneUZyekcrTnVFMFJyL1VoZ0t3Mm5jR3NBdlFwMUVGckRmTENMTmhEQUNrdApNb2xXMGFrMmxoR0g5NU5tdG1OZ0szWm9uYitmQWl1TS9RRDliTHdhM25URnMrbEtZTXZscmgyWCszNENvSHdsMEFNQTFkRHo4MS8vCkNFQ25DTk1Ia0dNL0o4NnY1N0VIQUFLMjZObUo3SDRDRWQrRDhiN0FVZnl2QWhCVFJoSElHRmllNGdJbFVrMmRhS0REamJIQkRXb3IKZmJwZ29DYkdYRDE5cHBZMkMvUURVa1diQWZRcHhvK0JuTUNtRHlBSFlTZG9aUC9qR0xqM082eDZCdGNqUkJmY0I2TUFJR1R3SVlCZQpFWWdFNnZ3SWtKNFpVSERFWGtuN2lQblNoQVBkYjVLNHRCYUQxS3IreFJvZ09BSWs1SWdsTklLWWY1WmlQb0wxQUFBQlp2MGNRQWN3CkF5RGc0Q0I2QUVnSWZHazNlQm5veUhaTUdBUWVvTUs3U2RHdFJEL1FUN0Z4cE5vN3NWTVkzSVdEMll1TDdNZDFIOFQxSE1ISGp4SDcKanhNU1J3bnBFdEpnRWFHL2hOcmJ5clJTMWNxSEFES1paR2F6SExnSDZzZW1ObGsxQnB2RzZ0QmE4Z2FDbjg4RHlLaURUWUFlQWtnbQpGNHJrUWdBZ3JvVDdLd0FpOFZoNEFTMC9Bc1FrYzBsWUVmNHR0ZVFGZmZBNXUvYzVtKzg1VytnNWE5ZnpsdTRmMHJWaFM3czdieURYCnBrN1hwZzQ0RHJTclBieW5QWHFvQXc3OG5FQU1udXdjQWpuZU9YZ0lNZkFrb245dlp4UzRaM3RIQU55cDdPM3NPWXhPbk1KbXl2RGoKUmNSMEtXbWtqSkFCRWlxa0dKczVpVW9lUXZmdDY0eUNKMi9yZ01ObGNQZVFUaDlReU43T3dBbXM4VFJkOUJhZmhSWFNVRExHWlN2Lwo5UzVGZGM1UW03UFc1Wnkxazc3OEVJdTNIRWhvMWxFMjdRWXBuM0pYVGJycmN1N21yS3N0N1R5YmRIYjROVGk3bEtVWEFDT0xOVXloCmxzbFZNZGd5bWxTSzVVaW9OQmtiVUowcHd5RDQrRGFxK0NEQnZoTmwyNEZ5YkVXNjh0dXlkb1BmTjNoSFZwTm1La216SU9DZ2hqeGIKUTVxcUpVODJVV2ZhbUF1blNabnp6T3V3ano0MVY4a1lLeU9OMTdLVzZnVkxUZnpoSnM5UVpUcFFQR1dzbVRWVmoxdUxScHpGTTlISwpVWFA1aExWb3hsRTg2UzRiOVZTbXZWVWpudW94VDJYV1ZUbm1xc2pCYjZGaTNsTzE0cXU2RmFoZEMxZXZCVUJxMW9NMTYyR1l0VWpOCm5UQlFVZlBOUU8xdGI5WDlRTzBIUGMxL1RMYXVaeHB5UTVYeFhwSE5Zbk01KzkzT2pOMDA2akFPQnl4ZE1aZXJ6ME9lN2tQTngxOWIKNlh2NlZ1TDArbUJMZnFycnpKMU0vZDFzdzcwUjRKN20rOG5tKzBOTjl3WWI3dzgyM0I5dXVwZXF1eGV1WFUrV3Z6dmFjaXZWZHFPSAoySzhrcVRoaWhZN0Rsd240VWlGUEtoUEtSVHkrV01SanM2ZzBvdlFwcHVzb01WR0VHUzdEOVJkVGMzWGtWS2ZRYjFCTERXcUZTVXUzCjZFa21CZCtsbFRyVUxOaEZSc2tQR2hSdXJjU3E1RG9OUW5qZDBrcmNHcmxmSTNYb3BIS1ZVQTR1REdKa2gxRFR3a3ljRVV6VnpTMDEKZjcxdytydk1zMTlNTlg4MVYvTmxwdkk5WC9sZHg4bWgyRTVCOTM1aThxU2l2N2czV0wwU0xWbHcxdDV5VkZ3UGx5K0ZxaGZEOVV2Ugo2c1VJT0s1WThsVXR1SUdLcXE5SHl4YWlSNFpEMnkyZVRRenZsbzdJbmpmNzRMQThjdXdnL25veFpyRzhjNjROTjQzaytzeG1ka3huCmpSc3RDWk5seUd3Y3R1cUhMTHBCSzZ4SEtXQ293S0NDRHdxellIR2RMR1NGSzVKY09wNWVUVktKc0V3VDU3VXhSL01uNCtmLzZUcm0KZXByUEpaZ1ZLSzRNU1dEem42T2FLbEVMc0IwK1pyVVdkYThKdXd4M1BFV3RWR1B1bDJLbnluQzNTL0ZybGRUVlJpNHNoVzZsckQzRgp2SGVPdXZvVTQ3MUc0bklkOFowVHlKWEQ2Tkc5aUtsZHlMNWp5RXdiM25tTnlXTEtDUVFSQmlNa2tJUTRnUXpERitHNUFyUlFndWZ3ClVReDJKNGRISUpBUUJDSVNSVVBSZUVTaGlLS1dVTHhhWHRRc2plb2tDWXMyNFZBTk9Zd0ptMm5BQ3B5aEczU3ErNjNxaE0wWXM1aGoKRnJnb0RBNFhXUlJCdmRpajRUc1ViSEJXNWFqWWw3amgrczc1Y3N6aWs0anN0aXNwT0JueFduQWJLcmtSRVh5eU0xYlNzVkpIVzY1agpUemN6NTg4UjN6L0x2bldPdW5pUnNWSUQxL1VzTkdEZkEySStpTHR6Z255M0hKR3I2c2hWWThZdmthUkdNZEpqZ1A5WHdtNGV0SmpCCjYwbDRyQ0Q1MG41bDBxdFAyTzBaVC9lUVBaU3d1WUNIdXAxOG40a1ZOc3RjT29IRktGRHJtRm9EVzZ0bnFaVVVrNW9oVjFQVUpwRk0KSnRHcFJXdzFyNDFtM0ljZTNJd1kzSW1Md2k2RjZNd1RWNGUzbzRkM1lSUDdPOVA3MnVPUGtSeGI4SzdObmQ3TnBPNG5TSU93MlNBaQoraGhxQ0Z5VGlvRStpZStlNWI3enRQQm1HMzM5S2ZISExieWxCczVDSTJ1NWtycThIemUxRVRlOEFSZmRpTzRCTklGOTlqQ0RqMk1HCmpoRmNyN0RFTERGSkxFUHpaRGl4akFnaWtaTWV1QWVHQVNKWDBFQ2tDanE0Vlh1NEVJd3RwTEw1dUxlNDBncWlFMXdDWVVlcmdpRVEKUFp2YTRjcjhYZTFKOEpNL0RMZmRlREFGVnRHUkxjSk9vc1d4Yk1BeTZqY2svWTVwdjIzT1k1MEsycWNqenBtb2U2cmJQZEhsemtVQQpmVnk1cUhzczZoN3RjbzEwT2ROZGpsVFltUWphK256bUhvOGg3RElHSFhxUFZXdTNhSUYxOUNhMTBxQ1FhV1Z5clZoblZCZ3Rhb05SCkNhS3pxTlJtaFVRbmx1bDVsK1QrSWtyNkJISCtGRzV5VC92d05uVC9ZeDJoUWx2MkxYQzFRWFE3eUpYSXRzdkJiVzhHUUxhK0VkeDYKS2JMOWpiNDlWMU5QZG93ZDdNd2RRazZjdWpKZWlwd3FRVTBVb1VlcnlETU5kTmc2dVpFR3Qxek02K2Y2MmZ4Y1dDMXo4U1J4YWg5bQo1T2ZFK2ZYczZBeEJSS0xpY0pvTTJiTVIyYjBmN1c2alcrUXFxbHBOTm1qSWV2ais0V3NNUW1BZ3E1Wm1OVHhpb0VjNklwbzBQQkNBCkQ0M3FBWUFrZVFDSkpMRGxLVjRzZVpYcmIyVk0xakh1TkRCWFdwaTVSdVljU0QxenRvNHhVMHVmcnFGTlZWSW5LeWdUeGJncDhPTTYKZ1JrL2lza2V4cVFQb0lmMm9oSzdPL3MyWThJZ1c5RWdYWVZzUThHVjhMc1E4ZDNJNkRaazhDRGU4VHhYSVZRd3dEbFdaeEFabERScAp5UEQ4WXV6Q2JQZUZFUWNscURKYXhFWUR6NlNEalJCTmFnZ2dFSzBTM21USzVWeUZUTW1YczNoS0JrMHFlcEd1UFVadzdzQUhkeE82CmRtQzd3Si9HYmx6M1htenNTVno4SUxiL01IYmdDQzV4R0Q5MGtERDBKSzUvSDY0WGZIVVhQcnFUQUJKNWpCVFpRdXZkZys4NWdBdnYKRUxpcUZzZHE3L2FXejJvUGEyTmJxUGFkT1BkK1F1UkpZdXdRcGU4a2VhQ1NPbGhLaTVmVDQ2ZVkwVk04LzBXcGs2cXg2QTFxZzFtZwpjQWswVHFuUnJqVGJ0Q2E3UWVjMnlmMG1VZERFam5yUUF4NWt2MFBzczdxTUpvZEJwekdySlJhbFNpMVRxcVF5aFZncWgwdkFCRkxZCkJaRXRZdk1rTEpDQ2dSZ2lKazNFS1BSQ0pBdVlCSDZoRVNJSFlBaElDS25qRUVKS1pMOE1OU0JIRGlxUXczTEVzTHg5V0hZdEticzYKTE4yd3RTTS9BdFFKR09RQ0I5czcvTHM3SW5zN3VnOGo0TFFYb004cEpPeitEQUIwdUROeG9ITmdENklMYUFZQ0NCRUVHQ29BcUJRMwpWZ0JRT2ZHQmZ2SUFTaDlISlErZ1kzc1JoUkVqQUNEWVBoSUFhR2VuZncvQ0R3QjBsaTYrd21jVEJEU01oSDVGejM3ZEl6cWQxRFJuCkRiVVQ5b3BwdU9DOGZBWThlaXBtODI3STF3WVZ5cUxyeDF6QVFLMFo1NHY5eGplN3RIZ25NQkNIcjJJS1ZVeVJraWxSc1BoeVBGdEIKWjhwWmJEbVpLY1YyQ01ndGRPVUJ2R2MzQmtvV2JyY0w3bDg3NDA5aU1rWEVtU3JxTW5pbmd2ZHJMWFdxbXB5cm9VelUwYVlhYUhDRApNT0Q2UnRwb0kyMmttVHJaUUpwb3BJeTFzY2ZyR2FsV3hWUXBMMXRqajdXbElvQkJaZVBteGdWRFpkWlpuM1ZYamJ0TEo5ekY0ODd5CnJCUG9wekxyS2MyNks3S2VpbEZYMmFpckpPY3FuWEtWejdrcmxpQ0Q0SGhQSVdzaEVHQ2c2bnlhMW5wcTF5TGw2LzdTTlYvVldyaDUKcmYvaVd2YUZ0ZW5YbDJLVTJWNWpwaXNZOC9pN0hmcGhEMjBtZEhrMWRHbTU3NVhyQTgvZUhqaXpuZ0Q2YWJrTHA3cE9yMlZhNy9TRApENXZmempTOVBWcDNmNlQrWHJMeExuaENYOHV0b1F2dng1NitrV2k5bFhoaHZ2LzNZUmRKS2RidzdId1pUU2poS3VVS3VVZ2g1WXQ1CmRKNlFMZWN5VlhTNjhCbUN1UlNack1VdDFlUG5hMGkzbXlqVFYyUlJuVUpoVkFtc09wN2JKTFFxbVM0dDEyZmtoU3owaUVYcTFYSTkKZW83WHhITWJPQjRUTTJTbmh4eVVMZ3ZEN3NwWHJjckpQQTJaSU5JOXErcXRuSnhwL1hiZzNIZUp4aSs2Vzc1TW52NWlxdlhEa2RNcgo5a3NMc2pxRjQ1TGU5clRZdXdVWk9DWDFjV1o5VnliMWxUTkR0VGNTRUVDci92b2J3YkxGWVBGeVY5V05udHFsRVBoazJYS2tZclduCmJubWdQamRVSHVrL0lnbnV4dGwzWDBudTZrdytpUjgrVGhvckl0K293Sys4VG91NURJNXVteWhxRmZiWVJIMTIyWUE5UHhkajB3L2IKVEFuYkF3QTlyTU10QUNoaFVRZk5DbzlhYkZHd05DcXlSazRXbUFYWEJzeVY3OFJmK05QYzc3K2NJOGVNRWhtQnBxUmloWnJ6ZEVjMQp2cjhldjFoSFdpNGhMQlFUMXNxSXMzQnpQZEtOQ3R4b2FlZDhOZlp1SGVGK0xlbEdNN2pmRlN5MkNhYk9pT2RycVpObmdiQXBTNmM2ClIwdUp1YTJ2dzgyUzluZUdXNGphVGo2VHhMbEdZbmNLVkh5V2dDUVFZWVZDdWtqRTRQRklJQUlCamNXa1VDa0VMQnFEcGw5bDhMRVMKS2RXa0FoSlZSbzI2WG9OK0FEakRybytialVNT2Q4cmp5ZmUvMWc2N2JBTldSNTlEMzJOUjlqcFVFWk1FYmpxaDVVWXNFbytHYTlNSgpCWHp1YjdtK09zcEs1ZVdidXp0U3Z5SEd0MStPYlNQRU43d1doMlBwVjJlUGRNSytTcTJFNjAzTXo5czRhNmVaczQyY3FUclNSMDh6ClA2akMzaTBpanpUaWxxdXVYcTlBemxaanN5V1l5VkpLOW5XdVRDZEIrN1hLb0o3WloxRWtiWWFVMHpEbzFZRWszZnFzMDVMeXlWSmUKZGRxbkczSXBCcHlTdUZQY1k1ZjMybzFkWnFYWEtIVmI1VG85VjY2aXEzVnNneDVldXF3YXRsSkdobFdpcWc2dW1uaUJhZCtENmRsTQpzUjFHeG5kMWR1M0E5VzRqOTI4aGh6YTB1eDdERFQxQjdkdUltOTVJeW01RVRlekc1SDV6MmJjRG4zNjhZL2h4YkdnL0pYbUNmTDJWCk4zK1dzblNCdFBvY2Qvb2krL1o1emp0bnVIZk9jZFpyaURjT29lWTJvN0lBUGR2d2lXMXdDVThQQkJDMjd3VEI5WHUyaEMwQjdrR0QKazA5QlAzOFBJR2lnQW9EQUFUQlFBVUQ1TFZFcEFFQnYvZ0FnMlAyNU1JdjBNd0RsTndLREFDcEY1WTVoSmk5enV3WTk1b3hmbXdoYQpScUsyMGFnOTF3WExnSEl4OTFpUEMwNkhkZjBVUUpuSWp3RHE5UmdqZVFCNVliOGZXTzVqTUd0VWVnQWdLUUNReHFRd21GVkFQM3JUCmp3Q1M2UG12U0QzSENFUEhDWE9saExsRHFORTkySFMrMHdRY2FvVzlrZkxiRWo4c0E5cDAyYlhwTGUvV3QwSTdydlR1dlRaOG9IUGsKTUhJVTVDQnEvREE2QjNJYzNBbVFGbXJvcTNYTUc4M3MyNDhDcUlXNVVzTllPRUdhMm92Ty9KdzR2eDRBb01jZkFBak9naFVBMUV5egpTbFUwdFlxcSt3RkFXcjNRb1ArZkFaQVlEdkl4OFdMUnF6ejNHZVo0TGYxbVBXTzVnVDVXUzVtckljOVhVMkNxU1BNVmhObFN3a3dKCmZoYm81eVIyNGhoMi9BaG03REEyZXdDYjNvOU83a0VORlVxZTRaQk1Qdm1Kc0o1OEhrdy9IU1M2bitmcitTb09BQkI0d1VZRG05Wm4KdXJEYWZXRTJXai9sdkJiWGFxd1NuWjRQQUdUOEFVRGdoUHdqZ0NSU2dRd0NpQzRXdnN6UUZCSHR1d25lUFJqdkhtdzRQMnpUZFlqUQpmWVRRYzR6VWU0SVVQMG51TzA3dVBrYUtIcVYwSGFhR0Q5R0NoMmorZzR6QVFZWnZOOHQ2bE84N3h2UWU0M2tPMmZ3TjE3TjFkM3RyCnI3dUtCbnFmdERpT0tlemxVaytsM0ZlckR0V3IvVTNhNExPYTRFdTYwUFBtNExNMjEyV3JtV05XcXkxaWhaM2xNRWhORnJuY28yVjEKV1ZBRDlrc1oxd3ZqcnFjbVhTOU9ocDZlRHI0ODVpSEVIRnFIeWE3WEduVktoVUg2U3dEaWlwa2duSHd6NkVjQlJPSXo4RHc2bHNmQQpDMWdnQ0NHbFhjOUdoZVRvaEF3ektFY1BLOUFwSlRLbEJ1bE1xeEVwRlFUUU5vUVhBQWdFSEFNQTdlbUk3RWYwSEVVT25rQkMvUlNoCmt1QVJIUDhJSUVRUUFBamtVUUNWRURNRkFKVVRNbkF1TEErZ1k3Q2xFbHd5dHJVZDlsQjZzSDlzcDI4WE1yQzcwM3NTYTdoSUYzWHcKMldRQkhTK2tkaWdZYnhrNXYrMlNYa3dvR3laTWNOUm4xcE4zajY5aUx2QkRaZlFEQTlYa2w0WUJCdFhsbkJkVDFqZWlPcHhUU2pkdwp1Um9JSUxtQ3hWVGltUW9xUzA3alNnbDBNZmFLZ05GSTFlL0JCUEtWN2JETHdsWlViQ2NtOFNRdWZad3dYa3lZcUtHTzE5RW5hbW01Ckt2Sm9KWG0waHBhcnBvNkRiNmVHTlZOTm5HOGl6NTltak5aVFJ1cklDK0JPcFprOVZzY2RxZWVQVndtelZicEVjNnluZGRRUFhrejEKcUtObXlGMlJndUlCMWdFZXFzNjZTclBPWXhsbjZaaW5aTlJkbkhVVlp4MUZZdzdBbzlJSlo5bWtxMm9GWE1YRDFUZEMrYm13Y05WYQpxT0p1QUxpbjhtWlBOVERRdldqdGZUaEtWSHNyMkh5N3UrMU92UG50dnVmdkQxeSszWWRjam5ZdVJ0NVk3WG5tVG0vemV1ejAya0RiCjJrREx2Y0dtZThQNXBKclgweTFyNlZiQW5mVkU0OTJoaHJ2cHhudVpwdnNqK1dWZnd3M3JzMDNyOGJNM2h5LzhJZlhjalI2TVhVdVcKc0ZSc1UvNHRKcER3UkdKZ1NLNVV3aEpKdUJJaFI4VGtDbDRscWh0eDBWckdTQVV0V1V1WWJDVWtMeW5jQmhYUDdXRHFGVFNMVXV3egppWHdHcVVjdENaakpQaDBmdk1rRFJrN1lMQWJIUVN0N01pUC84RjNIMGczTjNJVFlaeVB5QkoxVUFSN2pjand6TzFMM3QxempOOUdMCm42ZFBmNVZ0L1NiVjl2RmcvYjN1TjI3YnA3L3A2UjRmZlAvRDZNb2ZrbGR0OGRmbHV0c2ZlOUovTkx3eUVpNmFDYlVzZHpXdCtJdVgKM1NYTDRkcUZlT1Zpei9FYjBkTDVjTkY4b0dqQlg3RWNybC91UGowWFB6OGFQemZVK3lRN3VoTWRlN0lqZFFvOWQ0SjBzNGc4K3p0bQoxS1N4ZGRuNFVidWczNk5JK0RSeHB6cHUxOENGZFE0ekFOQkRBeFVxZ1FvQTZqRkpJeVpGeEtCMGEwVktGVU11bzRpMFhKSkgwYmJpCmUvclRzWlovbXYvZDIvMEVHeCtnOFpwSWRaNWhLc0xOVkdKeTFYaHdIcjk1aExKVVFadXVwYzBmUm84VkUxZEtjUE5WK05uOGhoZ3oKcDlsejlaU2xSdW83Wnhoclo5bTNtaG1yd0JDQURnY3hxWjBkdlR2YWh6ZDNCbXBwdHBlcEZMcVlDbTdwMkdJR1hQL0Y2eFR5c0d3RwpRaTRoQ3Jnb0RyT1RSZThVY0loVVlpZVJoV0J3c0FJdXhTUVhCdlhnKzlLbGZNWmVxeVFaMW9BclpjeXU3YllxczkzV2RNVFFiWlAxCk9uUXh1eEtrejZYcHRzb2pGcmxQSi9UclJWNnRRS3RBbVJTODE3azl4YVJieDl0ejRQeXdBUjE4NG1yUFkxZGllMURKVFZlZHV6cW4KRGlONlc5QUxyWmo1ZXZMTld1TFNVOHJaT3ZiMUMrelZpL2lGWnNiZGN0WlNJMmFpaFRSWmhjblc0R1pPWWVmQmllSVNVeWZqNHZ3Ngozb0JETldBUnA2emlqRk9aOHVvSHZmb1Jqem5uZFkzNFZDbWZNdWxSalFRMTZhQnN5Q3ROT0F4eHN6bG1WY0haVmF2WWJoT3BkVXlOCmdhblZNM1ZhaGtYTk1tamhSY0trNytEcnFjMVUxMjVTWmdQQi9oaTZmeXNsdUpYazJRUXVKN2dSZ0pYSGlQSGZFRkk3RVlNYk9tSmIKQ2NtdFZ3T0g4SERubWEzWXpMN095RjdDOERIQy9RYnVCK2VGTjE2UUxyMG9mUHNzNWIzblJiZmE2S3VuNlRkcVNFdEY1UG5kbUxIZgp3RHJsL28zSTJGWWtCTkFUbUhnUjBYbUpJK1NJSVlCNEN2d1AraUhMbEJSQUgyQzFCM2tFUUdJNW83QVFEQUNJSThBREFKV1JuRnM2Ckl2bFY1YkRtOTRuT0J3QUM3bndJb01JVVdCRjI4aUJxNGtWR1Y3ZlROaHBRSlVMNjRXNXpzc2MwMXUwWTczR094bHdqdmE1MHpKbnUKZ1gwUmN4SFhUd0FFeTREOGxrY0JCS2ZBckZvZ0hyVkJXUUNRMmdqcm9Bc0JBRktaNUFCQUlnUC9CWUg5QUtidkVHNjZncnhZako4LwpUcGlCTzVXaVlHOUo4TXFmeUsrN2ZCd0JOK2JMbDNLN05sMTFiN3pzMzNJNXV1ZGE0Z0FpZmFnejN3c1JQd1lvQUV4UVNWd0F0d2ROCmxOWDhXc2diRHdGMG1yVmFBTkJ4NHVRZVZQcm54UG4xYkVNQ0FNRTV5a0poelVaMHp6Nk10NUZtRlNucFNqVlZyNlVZZE1BVDNEeUEKdUJZZDQ1Y0J4UGtSUUNxT1hNbVJLdk1Ha25JQmdBaGk0ZTk1anJQTWJCMXR0WmEyV0VmTjFsRmg2US80RzYraExsU1I1d0NBZ0g2SwpjVE1uQ1dQSGNYRHM1eEEyQ2JJZk03UWJOYkN6czI5TFp4ZGNxNWpYejNaVUY4Z09OS0FQM0E1c0d5YXlCUlhhaC9jK3pUVnpsQUtECmdRR0hQSzI4OXJTaDZXYm8vR3dZblBxZUhUV0tQWEtEN2tjQUFmMDhDaUM1V0NTU3NvUUtCbFBDZTRPbmJCRll5MFdlVXE2alV1eXQKa3ZocUpONTZlYUJaR1d4VEI4OW93MmQxa1RNRzd4bURHK1MweVhYYTRqeGpkWjJ4NStPMnZPVHpQdVB4dE1XQ3RXUGRMV3ZKeXBWUQoyYXEzNWtZM3VNYWRUemgvRjNlLzJ1dDhmY0J4YWREMjFxRDF0UUZUZThLQ0hMYWlFZ1pxV0NhejhuUm1yc3JPRlhsMWpMQUJOZUI4CmRkUjNZU2JjUEIrcFc0elVMb1JQejBiT3pFUXU1bnlYa2k1bTJHcXc2aTE2cFVZdkt3QklycFFBQXoyY0F1T0lPVkEvRWdpZy9CVFkKQXdEQktUQStEY2VuWW9Bb0JBeWNpSWtRVTY4YTJJaVFESk1RWTRha0R3Q1UxblZtOUIwWmZmdUk4VWNBYlVhNENnRGFpK2pLQTJqZwpCREp4Q2pWWWhCNENqK0FZN2hpUGlPOUdoQUI5dHJYN2Z4d0J3cVh6QUVxVms5SVZCUUFSTW1XRTdFbHM2Z2h5Y0U5KytPZEhBSFY2CklZQlF2ajBvZHduTzhDeGRpT1F4YVFJNkpUOEloRkF5MjYzc1Y3ckViU09hcWhscnhZeWo4Z0dBZ3JBVU9xK2ZCMk5DMHg2NFhtelMKWFR6ckJnWjZLbW45ZmEvK1drQUdyejBhbGxoS0o2c0lMQ1dOTDZNSnBFU0dsSGhWTEdobVdRL2lJM3ZRb1owb1dOQytCUm5jaFkwZQpJUXlVVWpMVnRORnF5aGpRVHkxMHowUWhWWlJjSlhtOG1KUnFnRFhSMDdYTVZBVTNYY1dmcUtZUG51ZjN2eWpLdG5ER2EvaVpDcTczCnJNN3dTdHg0YmxoVE4rcHNIUS9VallYS3gvd2xJNDdTdExraWF5a2JkNThjOHhhTmVvdEhQRVVqVGpoVGxyR0RnQ2VVWngybEU1N3kKYVgvbGZCQld0TndLVnQ0SmxxM0J4V0tsdDd2TDcwU3FnSXB1KzJ2dUJNQmpkYjZBdXZGR3JHbXR0K1YrdkpDMmU0T243d3kxM2hpcwplWHVvOXY1UTNkM0JodlhoQjdtYmhIbG50T0YrQm53SUdOUjJiK2owL1ZUTDNWVERXdXJzZXZ6WjY4N21keE5QZnpOeDhaTWt0c2ZDCjFMSEZRbzJjYjVOd2xDcWhSTUVWYW9WcWVBdkJFOGhGSERiYnJuVHFFVG8vOEc0Sk9ZMTBERE5zUVl6Y0VlMmhEUTB6WFE2aVZjZUcKdmEwMU1yOUI2VE94WEhwbWwxTVlNdlA4T2ttWFNSY3dDSWU2Mk8vZk4zLzhuZTNyRDlWM3AyV0RjYlVnb25obEpkNzZ6VlRiTjcxbgpQc3lkKytQTXVVK256MzQ4WFBkZXBPeW05YTFKemZxN3c5LzlxZWQvKzlid3IzK04zTDZmakdXMW4veVQ3ZE4vdGsrdUIxK2VOcDJaCmMxWXNCY3BYdXVzV3V1dm5JeVdMa1VNM3U2dVhlNnRYWStVM3dxV3IzdEpGWi9XOHEzbkJkMzR4VXBMMUg3ZEYyMlNacDNtajViaHgKZ0kvWCtFbTkwUkN6bVdKR2ZaL0oyRzgxeDJ6NlBsaUFva3ZaTklWS29FZVhneFgyeEFBK2lKcEFsRjY5VEEzT2huS21Tc05UR2tXWApZdHJLRHhOdC83ejh6TDhzWFpsMHlxWE1EaGJ4SlJyMUdPbEdOV081RExsUWpiN1ZRRjArMlRGUlI3NVZTeGsvVEZrOVNsZ3NJNjdXCndEWGtLMmZvaTIyVWxhYzRmM3lCZXZkcDJwMVd5dnZWOU5WUzV0cFI4dTN0eU5qbUsrbk42SGdKMGZWN25vb2k1ZE1FVkxqZnVCVGgKN1JITVRUbWpZZGJLb2p2b0l4dTAxeFpuUGJPVFRrem5hUnpoS285SFVVczRKaW5IbytFc2o3cisvSEZ5ZmNuNGgzdSt6ei9vWDVxMApUbVhVZjN5NysvNU5UM1pRTkpNMVR2YTd3eVpSeENJTm14UUJ2VFJvVm5sMFVydFNZTmFTbFRMaGE2Um9PZlhtVHR6VTNvN2tYbVI2CkE3aWlYTzNhU3U3ZWNObmR3b29yMDVtWDBkTWkxNlFudnZ3V2Y3cUp2bnBOczlJL2xhUloraG9vWS9YMDkyR1JPM0dtaUxoUWhydGQKaEpsdkpFYXZVaFJ5TGlWb3AvUmE3TDA2VWRMS3picTFLYmRsMEdNR1AvOVJqMlhFWngveFc0ZWN6cFRmbC9Db2h6ektJYmVoMXl3TgpHZUNMOU5zbERwc1EwTWRnWVlOb2pReTltYU0yczRVU0lyaXo1eG01WjduV0hlaUJqZGpVSnZ6TUUramdidXdJVU10bVRQOFczT2hXClhHSUwrQXcrdEEyVmZKd1EyMDRkMm9GSmI4UVBiQ0VON2J3V1BZaEtsOElHdmwvVWN6K3FaZDl2NVg3OGxPejJhZTdxV2Q2dEZ0Yk4KVXRMTUlVSnFPNlovR3k2ekJaUGFpaHZZaG9vQkFHM0c5cGFRSEc5eGhiQVB1QXpOVnhLa1NoSklYajhVdVlyNkk0REFoeEJBY0JicwpVUUN4aFBnM09KSlNvbU16QWdKb0t3STJPd1lBMnR3Ukx3RG9RT2Zvb3dBcXdVd2ZSRTJkby9YNjNaNkpvRElUVUk2RWpMbWdianJxCkJJSDlvTHVkRUVBeFp6YnFtQXpEUVNBQW9HekVDV2ZCSXE0Q2dPSmVVNWZiR0hJYWZIYXR5d1o3SGhvdGFnQWd1VTRtMDRsVkJobWsKajFFQm9qVXJGU2E1VkM4UkdJVVh1WlpkcUo3OTZJa1N3a0lwY2JHVXNud0NOM2tZbTkyUFR1L3BITnpSMGIrMUEyNWRYTURRSm9SLwo0OVhneHJmQ205K003YjR5ZEtBamV3eVpPNDZhT0lJZU9ZWWFMY05QMVZJV0dxaExUWXlGL0NZU2M2MmNGZmpUNXR3QUFHcGlMbGZSCjU0OFJKbllqVXo4bnpxOEgzT1VDQUcxRzlSVnVkemVpZW5lanZUVlVPMWZCa0dzWWVpME5SS2ZuYWcxOEFDQ3JudmxMQUNvWVNBOFgKZ3NHZTR3OEFwSUFOZUhreU9oR3F3bnlPbWF5andxMVBheWtqdGJReEdIQXZUWitxb1UxVlVTYktTT0FITlg2Y01ISVVsejZNSFQ2RQpIVDZDVDRGMzBRSGM4SDdNNEJaTXp4WnNkQnNHSkxJTkc5Nk9DUmF5R1Q4Y0FiQ2FBQUNBQUVsRVFWU3dpOUM3QTl1MUQrYy95elpUCjVFSzFucUV4c2hRMjd1VWhWZVYxWjl1c3QzalYwenp2SVBmbzdIcUpVZjlUQUNrVWhSRWdNUnl2a2pONE1qWkdLWG5kYWZwZDJQbEsKd1BwcTFQTDdidk9sSHZNYk1kUGx1T2xxditsYXd0ZythT29ZMXNHa3RDRHRHVzNIaUE1bVZBdkVnRStiTzBac0w2OEdXdGJDelhlNgp5aGY5cGRjalZhdk9sbm5iYnhmY1YrZmRWeWRON1JOYWJFNUR5cW12VFNvd09UaytwOEJscGFSK0lkc240UGhrakM3RHF4bm55NlBlCnA2WkNaMmFqclhPOXJUT3hzNU85NTNMZHpiUFJzMU9STTFPQkN6bjMxWVJWNHRFYmpVcmREeU5BQlFBOUxJSUdBSUw2a1RBZjdBVW0KaGdDaUNDR0E4RUlxVmtnckFJZ2taQUZVZE9vNTZJQU0zU2RDSmNTZFE3S09sT1p5UnZ0RzF2VHFxUG1WTWZPR2JlMGU0SjZ0SGE1OApQRHZiSVlDZTdJd2RReVZPNXZWVEFGQitDN0Q0L283ZUFvQ0FrM1lnQXZ1UTNZY3gvUkJBK0N6VUR6bFRTY3BVRWtZQWc4b0ltUk5ZCjhFYzdzS01ERHY5czdvQWJpQUQ5YkVaNGRuUjZkcVA5KzFDdWNvTHVCYm9BdzZYVGVUUXFuMFlRMG5FeUpsWkZ1K3prUGR1dmFCblYKMTAxWWFpYWRzRFBRdEw5NktnK2dXUytzQ3ByendzR2hHVS9aTk9SUnpZUWI3cUk2WW50bTJQQmFWSUcyOHVsS0prVkhaYW9ZZkNtZApLNkhnRmVTWFpOeEt0bTR2d2JtUEhOcU5EK3pBQmJaandudXgzVWZ4ZzZYNGRDVit0SlkyVzB1ZnJtZk9OckhtR3hnenRlU0pPc3BrCkkzMm1nVG5WaUorclFXWHFXY2tLTml6V3V5VHY5NHg2aFpIZWk3Z29QdEF0VFJuSWRyVjhSTXBib2Z5dTM5Q1MwVmVuemFWWlorbVkKcTNURVZKWTFsbzQ2VG82NEh3ei9aSUIrbkNVcFIxbmFtWS85Vk1vT1NUVHVnbjJQRnIzbDEzMlZ0d05WZDRMbGQwUGxhMEZ3WEhNegpVSDhuVXIvZVUzdTN0L3BlWCtOOXVKNnI5YzVBNjgyK3RwdUowN2ZUcldzakxldWo5ZmNnZDVyV2hodnZESUhIK3J1RHdFUDVZdWRVCjQ5c2pnRUZOOTdPdGQ0Y3YzdTU5OFZibzFacys4ZHNjMzd2cXQ3Nk12ZkxWK0l2ZnpIU2tReUlwVHk0d3lBUUNLWWV2RWNxVmZJRk8KS3BEeDJId21XOEpUaU9XcXU1K3laejdRdGl1RzIzVjlVNStvMXI5aERVd2IzdnRLZHZjajdmVzdpc2xacWRXRUQvbVljOVBhNFFScgplSWc1T2E3b0QvTzlPbmFYV2RsbEUyY1RrcSsvNlByVHA3cHZ2bFArNVF2dk81OW51Ui8xbmY4MGVmcnozT2xQKzl1K0dHLzVOUFhjClo2TnQ3eVZMN25oL2U5TXVUZXI3QndKLytjNzdsKy84MzM4Vy9MZXZoei85dk91RDd5T2ZmdUg3M3orTHBkNTJ2am1yS1Y0TTFOOGMKcnArUGxpMjRLbTkxMVN6QXBXRmxpNkdTcFdEcGFyQjhOVkN4NHExYzhGYk5lWXJXZy9YVFFjUjhGem5udjZoTkZLTnZ2RVJPYWJUYwpnRTdRYjFKbXJJYVUxZFJ2TThTZGNPVVJBTkN3WFRmb2VKQ0VYZHR2MS9UWjFIR3JLbVpYaHZVU3YxWU1mR0JXQ2VVS2xreEsxSXB3ClFwdTg2dTNvMDM5WmZ1NWZWbC8rT0dhT3lsSXhkV1RVY0k2ZE8vN0d4R3VpQ2ZkZ1VoR2Vyc1F1bFJMZXIwTXRuMEl0SDJ0ZkxzT3QKMVZEWHdHMWlMV1htREJ2Y0FZTnI3ZEo1N3NvNTJvM251RFBOdUpteWp2RnFSbnpQbFlFajdjcFhwQTZVV0FEb3cyUmNWY2pSSTFuRApoeC8xLy9XYnpKKy9Tdjd0dS9Ua3FIRDlwdlcvL2RQNDdSVzdWdjZ5emM0dzZNaytCNjgvSXZjWmNhbGUrcmVmaGY3OGxmZnJyN3gvCi9xYjdUNTkzZi9WWjVDL2Z4YjcvdGdjY2YvdGw0cFA3aVV4TU5wZDJqQ1hNUGhNajR1QjFlZmp4a0RUaVVQR2w0cGNvcmliS3hLSDIKN1BaWEIvZGVUZXhGT3paZWdqdXZiWG9sUkxRbHYvZy9VcmZYUjc3NHpQQS8vaGJNekU1Zm9kM09MaVQvNzMrTHYvL3g1RlhWVERQagpmaEZwdWJoejdnSjNxaEkzZmZoYTdnek5oK2J6cEdLNlZVdnJOcHY2cmVxc3k1QzJtVE5CdytTZ09odFRKRHc2SUo2SlB0MXcySkFJCkdRZTdCY21JTkc3WEpaenFIcnMyWkpFNzlBS1BUV1l5OHRWYWhrSk5NNWg1ZWhPL2IxeVN6RWtkVnBKRWh6YU8rQzVLdEcxY3R6Q2kKZVZZMHVoc3p2NDNWQndDMG96MTJnbTdhMHhIOERYbHc1NVhCbmNqd0JrVHZsc3RkZTBteERiamtCbkx2ZVhIOExIUGdaVjZ1UTd2OAp1bXoyQmRGcUcvZkdhZkc3amRUcmpld1BLem52N1Nkbk4zVDR0K0tHSGtmMGI4SDBia1hGSDhjTWJNSEZ5aW4ycTN6d3g0TVh5NUJjCkpSSHFSMFVHeWV1SENsNWtBVUFLY0p6M0VERFF3NFZnd0VDUEFtZ1RBZzRzL1RxQVNwRlRSOUF6RFpSaGt6TThIVkJPK0pTNW9HMCsKWUpxTzJPWkREcERwaUdNczVzemtBWlNMT0FDQXhydGNCUU5sSXE1a3lESG90OEl5SUxjcDdOUUg3RHEzWFdPemFVeG1OVndKcjVNRApBQ24xVXJWUkRqN1VtQlJxczBKdWxFa01FcjVSZkk1ajJZYnEzb0VjT1lJWlA0R2JMYUVzbDVNWHkwbXpwWEM1MytSeDNOZ1JiUFlnCk92TWthaGg0YUJleWZ5ZGlZR2Y3ME43MnpBSEUrRkhVVEJGdURzaXBETDlTVHJwZVJidGVSVitxWkM3VnNaY2JlTXYxN01XZkFLZ1MKMEJtZjI5R1pmS1Jmem44eWtTZVF2ZUMyWVVjbkJOQW1jSUFKbHBNZFREbExwbVhyZERTZGhtclFzM1Y2dmw0SDBNUCtqd0RFL2dGQQo3QUtBOHZzUU1DaFM5bHNDL1FWbVAvajdyU0pQMVZCSDYyaFRNQXg0S1NtVUFUMm9BYUxNblNST0hjZFBITU9QSFNWa2orQkhEbUdUCkI5QkRXL0c5SU52d1BiRGxHeUc4QXgvY1FmQ0RiTVYxN1NNRTloTThSeWp1QzN3alNjbFg2cWxhTTFObTRXSjZaT1hMeG9ZNVIvV2kKcDJiWjlXYlM1TkFyQ2dBeWFDQ0E5R3BCZnZkV1dBU2RCeEFQQUVnZ3A5Sk1iSHlmaWpCdUlJMnA4T1A1NUJTRUNUbGhRa3FlQkJHVApwNFRna1RoVmlCQ0VNQ2tBd1U4SndIUHdXZkhWQ2ZrTDY5YWFXNWJ5QlF0Y0FYMDlVcnJncUYxeW5idmxlWGJkOSt4dDIwdEx1c3V6CkdsUk9qUi9YRXJJcVRGWjVkVno1WmxaemFkRDBjc3B6ZnFycjRuVDQvRXhYMjF4UHkzeHYwM3hmNDF5OGFiYTNlYWFuZWlYYU9oczUKUCtWL1pod0NpT2ZWNll3cXRlNUhBQldtd0I2T0FCVUFCUFJUQUJBMUR5QVFuSWlHRmVkWGdRbFlSQUViSEtBMEhMUkxoaGlRdFE4cQpMeWZWcjQvb2ZqdHVmbmJTY203S2VtYmF2bUY3aHhka0c4SU5BQVF3dEtzanNCOFJQZFRaZXh3OStDaUE4bHVBeGZlMXh3Q0FBSDBBCmdIWjJCdmVodW81Z0I0cndtVExDYUFVeERmUlRSWVNwelBlRFBvNGRlaElSMzQ0SUF2MFV0b0tISllkNUFPMUYrUTlnWERWRS9lOFkKUWl5SFR1VlRLQUlhU1VRbmlaazRLUldoWTE3eWlwN3ZWN1NONkdwejFzb3BKNng5ZmpqOE0rY3RtWU9yd3dvQXFwdnlBZ0JWNUp6bApFODdhY2NmNVllTXJFY1ZWcHdobllsRFVUSnFNU1ZJenJwaTU1MjJTTW9QK2tNSzVoeGZZeVlaTCtMYVFJcnVKOGFPRWREbDV1bzY4ClVFMmZyV0hNTkxCbVc5aXpyY3lwWmxxMmpaNDl4eHcvejg1ZVVjYzY5YmEzdEgyTnhPeXp2SXhsMlBIUmQ0S3VXeXAxbDJKOHpYejkKSTFsbVdUTjJUeHRlcE1raW1qZEcrQmNISlEwcFMvV1lwM3pVVXBZeGxJOVlpNU5PT0NDVXNZTUEvWlRtQXdCVW5uS1dwcUdIaXRLMgpvaEZiMFppamRNb0ZTNlFYZldVMzNFQS9kZXRkOWV1OTlldDl0V3NETld1RDFldkp1bmVUVFc4bkFXWE8zRTZldTVWdXU1TnBYTS9VCjM4MjByTUVKcjVhMVpNdjZVTk85NGNaM2hocmVINjc5WVBqMGVrL0x2VVREL1V6OWV2cnN6WjYzYnJ0RTkvWDI5MVhUWDlKdi9WSEcKK0RMMjVpZmpMMzA5OTlhOWhNMG4xMHJGV2hVYi9PRm9CUmFiUnBWSnFrYkhoQjRmVTZua1d6MmFEejZuZi9JTlA1N3pSQ2JNOTcragpmL2hYOHQzUExYZStKdC84akxmMkZmdld4NnhFRGp0emkvYng5L3c3SDVJLy9GcjgrVGVXKzJ1VzZaUW1FNU5uZWtVcjg5cXYvOVQ5Ci9jZjJQLy9aT3ZPbFUvZFY0dExuc1lzZjlaLy9hT3owbDdteTd4T05uM1UvKzhGUTNWcXNZY1VRK3REOTRRZmhoVFgvUjUrNnYvOWIKNzVkZmhmLzBWZlNiUDhXLytWUC9kNTlILy9aWjVOdXZ2RVAzUE5jV1BNVnpuaFBMbnZwbFg5dDhFTnhHMUM3RC9rREFRTVVMUVJCdwpVTDRBYzNMRlh6b1Z1ckRnL08yaTduUWlYR1VjdithTUplWTFRK084NlRIRlhGeVpkVW9URGxXL0c3Wld5ampOU1ljZTVDR0FCbXdRClFDQlJpeUppa0hxTllwOVI0Vk5MdFNxbXlVcExob1YrcC9DbFdldjV6OGQrLzVlVlYvOTkydkgxMEw5OU0vSHR2MlQ2Y2ptOGJIaGsKL3ViLzlkK0hWdS8zbnFhTm4raTg5VEp2bUtESVh1SXQxR01td2ZteFFiUlN6NzdWUXIzVlNwcXRFTDNmUUY5RWFZYVM4N25SbWJtdQoxTGdyTjNtTzZQVU0rVzc5WVdwd1dEMC9ZWjVKNnNiajh2LzJwNmwvL2lMejV5K3puLzl4NE05ZnBiLytiT2k3TDFQZmZwSDg1dlBVCiszZTd2djVtWUhYRmNQKzIreTkvU3QxYnRVK09DRDU2ei8yMzcrUGZmQlVBRFAzTHR3TWdYMzBXL3ZMVDBMZGY5bjM5V2VMYkw2TWYKdk8zNjg1ZUpQMzNTLy9ZZHovcE4yOXlrNU1QM1BKOTlwQmpNZU40VXBFbk8zcjRWNTlNQzc4R09xRy9lN0p5TEd4TmhmeTdBTmN2Lwo4RlgzdjM0MzhOKy9qMzd6VmVTdi96S3hOSkg3NjNkZC8vNjEvMzk4bnd1bXh1dFFzeTlMaG9NREl6UDN4OWpkODhYbzI0M1lucmVZCk5MYVE2akpJL0M1Q3Y0K2ZjaG9HekpyNUVkVW5uNmh2MzVZbWU3VXJjL0tQUDFhdDM1ZXQzVmQ4OUtYOC9qMUx6S01CdjUyQVF4angKU08xR3VzUENkTmpaUFRHVk55QlVhWEZXTGV2enYrai8rZi9VTEV6amh4TFh2dnozd0kwL1dWWS84ZjYvL3c4N3NCcmRSdTNiZ0k4ZApRVVc0UWYva1YyNjYzN2NmMzYvS3l2dmUwU09OYmx2UzY3aHVQc1lJYmVvY285bkhodTk2ZXZvU0gzN3MvUFNmcEhyZitLdmNwYlBNCkQzN0hHMmtoM3ptSmUvOEFmV1VUWVdBVGJ1RHhqcDVkWkxpKzdBbHNZaXV1dTVwcTd4RHdoVktjUkk3aXFhQis1R29LaUVJRDlmTmoKSGdHUUJKWUJ3WVZnNENZTkFPaDFycVNFQkFFRWQ1aUhMWXk3SDg4RGFCc2lVUURRRWRSa0FVQW5NVE93SFNWbXRnS2ZrUm9pT1o4cwoyNjN0SFE3M0p0eXBtSFV5WWwwS09SZkN6c2x1WjdiSE1kYnRuQXovQ0tEOFJKZzdsUWZRZ05jYzg1Z2pMa01CUUxBTXlLclNtNVFxCkF4d0JVaGdnZ0lCK0hnVVFUeTl0WlpwaHI1ck80ZDJJNUFIVXlGSGlWQkY1cGhxY1FtR3Y4TVVxNm1JbFpiNkNQRmRHbmkwbHpaeksKcDRnOFgweGFCQ2toTDVTRHIxTG5tL0czbXltMzZ4bkwxY3k1ZXZZOHNNNVoycDJMdFB0dDNOVUNnRnBacTQyTXBRcnE3Q0g4K0hiRQo4TTk4OHg4bUNnQUVlTG96ditMNENVeDhHenBVVEhJQnNraDFYQUFnZzRZTUFLUTNDUElBZ3UyVi96R0FkT3lIQUZLcDJYa0FzWUNCClJIS0JRTWtBMTVlclF2VUZabmNOS1FjQVZNc1liMlNzTkRGWEcxbkxEY3lsZXNaOEFVRGxsUEZpOGt3UmFmSWtZZXdFSVhNY1ZsQWwKanVIN2p1Sjc5NUNDZXltQko2bUJRMHovRVhiZ0pNOWZKUFFYaS95VlNuK3p5dG1tdFowenVpNVpMU3l6UUdHa2FVMGNwWW5QREVtcQpsN1MxODdiR09VL1ZrdWVwVVpQU3JnSUFNdWdnZ0lCK0hnV1FSQ29ReXZnQ0dkd1FubVdoVXhKOHlxU1FubU5USjVYVVNUbGxRa2FaCmtKSW1KS1FKRVdsU1FKemc1NDhseEp3WWhEQXVJbzZKQ0tOQ2ZGYUFuUkMxandsZm0xVzlkTS9aZU10V05LY3ZtYmVYTEx0TFZzT2wKTndJbGQveVY3NGRyUHdxM3ZCOThkajN3dTJYUG16UHVOM0wyVnlkdEw4eTZucG4xUHowUmFabnBLMThaYXAzdGFwN3JicGlQMVMzRQphaGZCWTNmRFFxUnhJZlRDcU8rTnBLZXozNFh2ZFRBaVpwRkhyN0NxWlNiRkw5VUFBZjJ3WU5nTUNRdUVCZzNFSklrWU9Ba0RLMkVoCnhTeVVrSTBXY2RvbG5Nc0d3Uld2OHZXTTRkVVIwOHZqNXVlbXJPZG43YzN6anZwRlYvV2llOE1PaEE5a2U2Y0hHQWhJYURkYzF0RjkKQk5WM0FwTW93ZzRXWTJCT29RYU9JL3NPSW1MN09yckJFd0NBUUFDQTlxT2pSM0dKSW53S0FLaVNsSG9Jb0NyeVNDa0pBbWdmb2plLwo4Z3MyVU1xM1VmSUNaaFVBZEFqdGFDRHFYbWNLY1Z3YW1VOG04a2tFQVJWOEEwZ3BIU05ub0xXY043eUNweE9LaG5GOTFaU3Rhc3BlCk9RWHJvQXNMNHd2NmdSNkNNSEpWVGJvckp6d1ZFOTZLQ1UvOW1PdnNzT1haUG4yN25RUEh2clRjRHBma2QzM2EweVBXdW15Z0xoT3IKSGtyOGY2emRkMXhiVjRMdy9UeVRTUzlUTXBQTVRKcHRlaS91SlltVE9KbVVTVEpKN05qMGprQ2dnbm92b0M0aENUVWtJVkFCaVE0cQo5T1p1WTV2ZVFRTFJPM2FTbVozZGZmZDVubjNQUlk2VG5abmQ5NS8zOC9sOTlMbGNJeXlEN2Z2VnVlZmVjMGhmOW9wRTh5Sk4rU0phCi9YSnUrUUZZZFJDc0tUaTNNU0svT1JyUmNDUy85aFN5K2h5MjlrT2M3UnphZklGVllodWtkTS9tS2x0VkY0dDFLUTJGNHJIOHlvbmMKc2xHeWRSTGptTVEzOThQYkIvUHMxekhhYXFTdWpsQnloWkpYVC96QXhJd3hDd0xOaFlGVnpOQnFmcWhONGwvSkJmbFZjUTlWL3BjQwpiRUJDL0lOVjNBT1ZIUEI0RUNDcFJoaFFKdzVva3dWM0tzSjZkYUY5aHVEZTh1RExwdkRyMEZnT2tGRFlOWFBFamNyd216Ym8zTloxCmErUTFTL1JWeStITFZVQS9NVGV0TWYzV21JR3E2SkdxbUZGcnpHaGw3RzF6N0hYRHlUN2xIM3VGR2RkWVJmZklsZ2xzeXpTcWR3N3AKdUZPQTdGZC9NbEJ6ZHFyMmM2OU43dUN3bUFnNkdVM0ZFK2s0UEpPYTNPek1HNXFsM2hpaHRWMWxYcjdMdXpLYTF6b0p0M2xvaGdWSwpwWnRVTzFyUXU0QnRuY3Jvbm9WMXoyWDF6ZVYxVCtUZjlLQnZMV1JmY3lmYzhpUU56T0NtWjFUZWFadDMwdUtlTEp1WjBrMU1saTFNCmxQYlB5UkZENG1ORDVTY0c5R2VIREVjbWJOR2oxZUd6bGRIM2pLRWQ4dGgyVnQ0MWFyOWJzcmFzdkxja25YRnJwdVo0czE3aHpJSnEKZmxidkdWVXV6V21tNTlSVGM4WGVhVzN0TmZGWExkU0lMbDVNdXlLNnVTU2tWUkhvbElXMEtFUGIxVUh0R3Q4VjhvRnQ2dUNPVXVqeQpNV2VadjEwVDVwSkZ0S3ZEN09wempWenlWV2ExcDdCMW1OZG9KWlFWd1F4Y3ZFbGFhQklXVmZFZkFzaG5JQitBeXJrUWdBd0NwbDVBCkUvRUpFaWFoQklmbTBISk4xZlNseWNxUnUxcnBMZlhidDNWbnB1ekhsK3puMTYzT09ldnNsTm5yTHVzZnRDNU05MjVQMmthR2FsTHAKWmRuOG11NEIwK3hhcTdMNjhyR2toamNUSEFGWnZaRkpuY24wRnI2eDhrTFIxVTl6cWhxN0cxYVhyU3RUNXBWNTg5Q29wYm10YWRYVAp0TG5VT0RkdVdKMnpMazFVejQvWWxpZHJGMGFyNXNicUYyZWI1NmZxNXNhdDdnbmI5SWpGUFZHek1OM29kcXVueHVYek01cTErWXFGCktlM2NoSFpocmh6OENOd3pKWjRablh1cUF1U1pLUVBOVFZZQU04M1BxSlk4K3ZucE1zOTArZHFpRFh4T1p5ZTJ2NSt4NUJWczdSWnAKYTB0cFlzWDJ0L0lyYmh5bmhqUzlXQXgrT2h2enhwM3QwdDRyNnN1WGRVc2V3L1JVK2RSYUEvanpBZ210ZWxTTGsrVjc3dnFCNFNxVwpwTzNhV1B2T2d2Wi8vNjFDV1ZNYmV0NzJYaW9QU2M1VktIR1Q5K1REMCt5UllmclZWbXF0SHRYWGcxbll3VThzbzI4TU1DZm1TQXQ3CitSUHJ5UEZON01KZkVjTnpGSzBTWVZDZ2JBM1pmVGNZM1gzRVJudHVkVjNHMUp4ODBsMVMwNVFwRXlUZW5jbGUvQjYrdkVtYmRCZk0KN0NDOUR6RGIzeElXbC9LdmY0Yzd5ZUJHd1JYcU51SDhCbWZ6M3dxdWVwTlUzWlNkdjlMWC96VnY3ajcrWC81UGZOOE1NL2lDTkZWUgpwcWdRRE0zU3QzZGhlNnVvLy96UDVNVmRHbzVWUjFEVWRROGJ5RHBvNnZITEdhN25NaXFmVExJOEVWOE8zYXMzRVFMUTg4bmFzR3pPCnBRSWtGcDhFQUlTZ3BoT2g5dlhqNndjQVFaZnJRNk5Ca0lGK0NxQmNEQVNnZzJuOEp5K3BucmlrZnpaZTl6OEQ2TFdreHRlU1d3N0UKMVNCSUdwdWNwS29wUXZTVXgzVklSWmJDOG5KdVV5bS9UU1d5YTRSMXBZQStBcnRLQ0FEMHlFQUFRRmFsMEN6bkdhVWNmVEZITFdiTApCWFFKbC9vSVFNQTlPQWFXeUlUdUJ1UXpFS1dRU0NnazRObDRCSU1VQXl0NklnRzZZdTZaUzJYUFhhcjRSYUxscFdUTGEwbk5iNlE0CmdHOENNNEZhV2dHRFFyTGJ3M0k2STNPNm9uSzdJL042SXVCZFlmRDJzRHhYQkxvbEd0Y2FnYW1Qb2phRUZsa2p4TlhISlk0alpPZXgKN0k3M1liY1BJN3VPSXJ1UC9nQWd2eXpIeThsMXozNWovZ2ZmL0gvMFZKemFCNkRuTDBLM1BQNTVvdUdaQk9VYmFlSlVYQjZXZ1dUUQpjNWpVZERZVHptUWhBWUNnZXl2Lzl3QUNzZWo1ZEJyOEp3Q0Mrd0FFSTJWZndKRE81Q3BEVTIzQm1ZMFJ1YzNSY0ZkTXZqTWFZUWVICmttaGtiVFN5T2dKVkdZNjBoS0gxNFFYNlNKdzJtcWcrUWxFZFp5aE9zdVduaTByZWswcmZseFgvVVNIOVJDMzlYQy85dWx6NmpibjQKb3FVNHJsYWFWc3RKcjJXblZ2T3pLOWdvQ1FJQWlNWXFBR0xMVStBajJxbVJiWnlRTm9sL2UvSFJCbDZxbXNway9UMkFpR1FJUUZnQwpBa1ZBUXVIemN0aDU2V1dZakZwc2xnMlpYay93bFZhSDk1VlNpd09sMVJML3J2UnFVcHFOZUw2RzhIRWorUjBINDJ5MzVNUVZlV0FICi8xQW5MNlJUY0tDajVFQzc5TlYyd2NHYjhzQmhiZUJnYWZSdGZXeGZhVlNYOG5DN0lxWmRGZEdwaW1rclBlN1FIM1laZ3RvTm9hM2EKb0RadFFLY3VxQU9pejRsbTJZZTFvcytyK0prcVRycWFrNmt1ekZZWFpXbUtzbFNzZkFtZFZFUWxRN2VCaHM1LzRRalE4QThBVUQ0MgpId0JvWHo4UWdITHhlVEFjdEVKb0pnNmVnYzFOd2NJVENZaHY4SWl2Q2VpdnFOaFBDdkVmeUtudkdUa25uT0pqTHZHUlZrbHNtelN5CnZUaWtReExZSWZadkZ6MzJ3aVVaNlBtNFltQWdzUEdyT09YTDhiby9KSlMvQWZTVGJENlVCSFVnd2ZoNmZQa3JsL1F2WGRRK0F0Q0wKY1lyZkpKWUNBQjFNdFFhazFRRUFoYVJiZndxZ1Avd0FvS2N1UVFCNktsNzZkSnowQndBVnY1TElpMDVqZnA2TFNVVmtweU5UazVGcAp5ZWpNVkhUMk55UTRRRnc2THVlYndyeDNkZGlvT2xxSW95aXNtUS9wNXdjQStmUUR6UXBxRXIvcDVQcmJoZUhOc29nbWVVaFRTV2hqCk1UQlFiQTN2b2dwL1hvRDV1Z2o3Y1FuMVdCWFQzMTUwd0NVTWRKVUV0WW1EV3hVaERsMW9yU21rekFxdHlVcXBDc1JVaFNEcVlyQ04KUjNGMXh3c3F6eEZ0RnpsTmNVVzFYMUVxeUJYMDdtSCt0Y0hNNWxFMHRwZnhzVXY4VWFmMDBtVVJzMXZBdUVFVkRKRXF4cW5OQStpNgpubXpibGR5NmNVUmRHNXhtelAxektmbU1VUlJWSlF5cllvZFdGZ2FVRndaWW9BNlppMEFITFNBT0VBK1V1WEQvdzZKRGtKQjRBVlhDClFLc0lGT29xRFd2WFIvU1p3NjlXaFYremhsNjFoRjQyaC9aVlJOd3doMSszaEYycmhQWmN0WVJmTlVmZU1NZmN0a1JkMloveGM5Y2EKTlZJZE0xRjdlTkoyZUxMcXlFUlY4RkJiN0EzanA3MXM3RFdVWVFUWk9vZnVtVVcwVCtSMFRLYzJUUmN3cjhzL3ZtNzRZTkI2YnRwTQpxV0xSQzdBc0JzcHM0clMyY0V5V3RBWlg5clVCd3JWUjNQWEpndHNqZU1jWVhEN0t6dTVYZjlqQi82YUxRK2tsbGZWbnVLWVJqdW1rCmxxbnNyaGxDNXlUeThpeXBkNEo4MVpNSERIUmpIRGM4b3BrWnRVNlBHQ1pIVlpNVGhyRUo2K3FZUmU5Ui9HbFVmM3F5TzNhNjhjaFUKK1lsSlMvU0UrZTJiK2pOM3FnKzBDYjY2UW5STjhRYW1aRzMzQk5jbU5GT1RpdkhwSXUreWVHNWM3Qm5YejA3bzNlN3lxUm5keUx4MgplcTU0YVViY2MxT1MzTXg3dFYzKzZ0V3k4Qlo1V0tzeXRGVUZEQlRjcXQ1UEdkUlNFdWlTK3p0TWI3WVYrM1VWQmJSeURyWkpEL1pxCkE5cVZNZldLRkVlUy9DcXoxczYzeUdsR01jc2dZaG00OUdvUjV4R0FmT2ZDSGhtb25NZlNDV2s4UGw3RXdtbXdCVVhFdE5MS0F1OXMKK2J4WFpiK25PdGNsT3J6WWVteXQ1L2hXWS81YytmS0VZMkd5d1R0YjdaMVNMZ3hyWmlmYTYxc043cm1tKytOVms0dFZCZHp5NkxqNgo5OWxESndyYVBvSlZ1OW91Zjd0Uk5UalVaTmFXalE5VnJjN1ZlZ2FjcTlPbXhjblN6Ym5hMWJFNnozRGw3S1RWNDY2Zm5LcWJtVzBHCjM4enAyZXE1OGRxNThlcUY2VnJQbEcxKzJycTYwQVFrNUptc25wOHhlZWRNM3RreXp3UkV4cVVGM2V5TWVzNWQ2bldYQU92TVQrc1cKWmd6ZU9UM1VyTkV6YVo2Zkx2Zk9XT1ltTEFzek5UTmpKcytjMmVNdTgzcWhaMjE2UkFzVHNwb214c1MwNmk5TDFOMTUrT3dLWm5XVwp2akJmQlY3SittekQrbmpOOHJ4azBWdThQRzFjbkZaNFBjM3pzL0xsZWR2TXZIVnh6clk0b0Z2eGF0Ym5UUGZkWnAyaE1vOXJ1bnF2ClptbXU4bm8zYldVdVlYS0R1bnEvWUgwRE16WklIcHRpVDIraEJsWXZqVzNrekt4aHg3ZmlSN2JndzV2WU8rdVg3bnJ5SFM1Y2YzL2gKekRabVlpVi9kaDI5K29CNHVmL0wvdEg0eFIzczZnTjgzMVZLNzFUYTNVM2t5QnBqZW9jMHVBMGYyMERQcitKRzFvbkQyM2o3OWFLNwpzK2p0ZjhsYjNpb2NYb01OZm8rYTMwbmYyY3NaV0UrYi9DdHQ2YStKeXE3Y2o2aWFxbHVpYi8rRzJkMlY3UDRGdGZ0dk9kdC9RMjc5CkcvWDZNSFZpaWY4Zi81blVOYUo0SDEzNit3ekw0M0dhbjhXWmZwblo4R1JpNlROSjVmc0Ewa1RDdUFrQVFJUUVhQVNJbGdFQVJLSmwKK1BSRHB2ODRBa1NtWnYwSUlESzBSaGlLQU4wUEdvNU4vVHNBUFIybi9YbWM3cjhEMEN1cGpYOUliWDN6bTlvY3ZOYWlvaFMxQzk4Zgp0cngrVjBTc1kwdXFPTlVHZ2F0VTZDZ1ZBUUExYWdRT3BRQzZKUDdIczJBL0FxaE1CaTBMN3dNUW4wdmVYL1dDd21CREYzd0JBUG5PCmdqMENFSzRRbjA4alIyVkNBSG9zMGZoRUhMUzhHclN5N01YU0Z5NVUvenF1L3VXa3hsZFQ3SytuT2c2a09RQ0RRbkk2WXJMYm9tSHQKTWZETzZQeldTSVF6RnVjNHlXaC9oOWQxcExueGNGZEQ5UFhhNHdQTloyNTBoT29hRG1LcUk1RWRQd1ZRWkM0RW9OOG0xVDV6d2ZTUAp4UG1mOHdIbzJRUTlkTDRpWHUwRDBHdHA0aFFjNHY4dkFCVlFjdUZrQUNEQ0dWaEphRm9WQUZCVW51TW9wdVk0dnVZa3Vmb012ZnBzCm9mVjlydldjcU9vRGNkVW5LdldmTk9yUGRhby9HMlJmVjRpK3NmRGliTHpFV201R1BUMmpucHJaU0lJMUVYSWRHTGdUbmU5Q0lWcVEKV1MzWWZHY3UwZ2tETy9Pc1dJdzBtOFRLWWJBSlJYUVVUSVdON3FERWR2Q2dhWTRkOHFPTi9FL05qSDhLSUR3QUVEa1BTVUloY1dnVQpEZzFqRnFScHlSblZERmdWSmEwR0RVcXBRYWZXWWtBKy9ZQ1NhdERKMVdCL3dmNStYSHJOdzc2cVk3M3Y0a2JWTVdKcXVVZGFaUWRhCk9LKzFNa1BhMk5ENUNwY295Q21JdUN5UHVLMzJ2NkVLdXFZTjd0TUZkYXJDMnpYZ25lZWhUazFndXliU3BRbHJWUjNvVWtXNnRHRnQKdXNBdWJYQ1grckJML3NjYVlhS2VuYU9ncFd0Wlg1dFlmN1N5UDdTeFA2aG1mMkptcHNxb2RBYlpCeUE4RWVNREVBb0hUUUNDRjhCLwpDcUNjZlFObDdwZUd5VS9Fbzg0VDBWL1E4SC9pVWM2Vk1OOHljMDg1WlVGZGNsQndkMGxRbHpTd3N6aWdRK0xYSmdJOTltS0s2SVZrCjRZdUpvbDhrU0g2ZElIODVTZjI3Wk4ycnFXVUJhVWFRZjdyeFlGckZHNm5RWU4wclNkcVhFMHVmU3hRL2x5RDVSWkwwMTBrcThKbXYKcDFVY3lxZ015S3dPeWFvTXpyU0F4NUJzYXhETWVpRFQvTHVVOGw4bGFKOU5VRDRYcjN3MnJ1VFplTm16OGVMbjQwVXZKQWhCQjVLRQp4N01wWCtmbnBpSFNzdkt6MHBIdzFJTGNOR3hXTmdZNmpSZFBobDJpd3I1aXdENHB3WjZvWlJ4cVpRZlloVUdOSXVDYjhHWjVpRjN1CjF5dzU2QlQ3dFlqOW9Vdmw5MnN1RG1vcURtcVVoRFJBSGEvaW5GTVJQNUppenVpWjRUVVMvL3JpZy9YOGcvYkNrT1pTLzJiRkFidmsKVUtzNHNGME9PYU5PRjJyUlJiTWJvaW5scDdCMWI4T3FZY1Z5MnlpcGVSeFYwa0NVTy9HMVF3em5CS0ZtaElMdG8zL1l6VHZXd25tbgprWEhVS1RyVEx2enNzamo3S285N3ZkQjBoMTdYajdGY1RoZFpjc1RsdVd3REt0dU1QVzNCK3Rzb3dUWDhrQXBPc0xrd3dBUXA1ODBxCi9tdG16dXVRZURpSExPd0R4a0kvQzlmZnlqOWs1UjJzNUIrd0NzQkxEYkVyZ25zTUliM2xZWmVONFZkTVlUOEV1QU04RkhhbEVtQUkKZkJoMXZSSTYyM1hkSEhHMVBQS1dNWHJRRWpObWk1cTBSa3hXUlU1VkFsVkVqUm9QM2FzNzNDdkt1SXJYamhPYlovSE5Fd2o3Qkx4OQpCdEV5Z2UyY3lDMFpwZis1Vlh6bXR1blA0OVZvQzdORWxXdnZnOTBhSjkrZHd0MGVSOXlZUkhTTkkxM2ptS1pSUE9zMkc3RHYzUnY2ClkxZExvN3FsVVYzeW8wN2VPVHVOMWthekRPUGFWK0NxMmF5YzIxamlzTkxsTm5obUpXT3prZ2wzOGRpc2NHeWFQelVsZGMvcEo2Wk4KOThhTXhrbHo5clQ1MkxEcHJkSEdNd00xc1JPVjBUTlZ4MGNzTVRlS0QvWXBUN1d3cTY0elorZTBxQjdPNlQ3UjE2MkZ5VjFLMUkxaQp4YWk0YjFZeFA2TmRHVmU3cDFSajh5V0Qwd3JQZk5YY2NPbTh1K1RXUFVGU0EvNDNiZnpUZGhQNG1ZYTBsNEQyM1FNVjdGSUZPWldICld1VCtMU1grK3p1RFdoVEJMcWpRRnVVZnVxUi9iQlR3ZEZ5cmlHM2hGVlp6T1RXaXdsSWxwVjdDdHduWlZRSzZWVWl2NUZOTlBMSkIKU0NrVDA4bzVnbkkrelc1aXVtemtlaE9tVkphbUVLZmN1cXljZGV1SEJ3M25lZ1VuN3BaL3VOaHdkSzNsaXhWSGk4ZTBNZERrWFNnYgpudEY1NXkydTBUTExVTG5YYlhCN0tvZnUxSlpvNnE1ZVY2MnQ2Tmc2MTU4VkRVVkRhdmxOV1hxL3JtekVzRGh2MnhvMnJFelZ6cmp0Cmt6TzFnQkd6NDkwTDA0MEwweWIzbEhGdXNuRnBxbU4xcW5sNTB1UlpNTTY0cTl3ejljdlRkUnZUbFJ1emh0WFpzdFZaODlTOGZubWgKMU9QVnVpZWg0WmtWcjNwOXZHVFdVK21kMDNqbnRBQkdBRzNlR2ZOK0Z0RENyQnFRYUg2NkVtb1dLRTBIZm1UdVdkT2lSNzA0TDE5dwppK1puWlo1cE5mZ1JnRDNMWGpuWXVlaFJMbm0wNElzdnVZMlBXblpYTDd1dHkrNnFaWTlsMldOYW1UZXZ6RmV1ZUt5cmJzdlNET0NSCllYM0J1TE5pV2ZlV1RRMEwrNitTNTdjWk0rdTR5UTNFOUE1NmNydGdaQTA1c0pZOXRKa3hzb1lHMjBQcitZTnJ1UVByc0h0YnNJSHQKN01HZHJORWQ1TDJscklVOXd2cTNkUGNhcG44cWMyZ0ZPYktGbTkzQWo2OFdEQzhqUjljTEpyWXdrOXZZcVMzc3pEWnVjQ04vYkJzOQpkUjgzL1FBN2VSODF1WU9ZMk02ZjJNNmIza0hPN0tMYzN4Yk1QVUNQcnNQdWVsUEhOMkZMZjhOLzl6Zjh6cmVvOWIzOCsvK2E4K0J2CitPMEh5Ty8vZDhMTzk5bjNIMlM0NzFQT1N5MVBKWFFISVNXSFVlSW52alErbFdsK1BySHNzWFRwNDJtMUVYbnlPRW9DZ3BxR3A2TUwKOE5ESkw5OElFTkFQaGZaanZoRWdNZzFHb3ViZ3lmdjNyUGVkQXNObmZweUhPNUFtZkNhaEZMcXo0djVNWHQrYVpjL0dWZnd5M3ZyYgp1THJmSnpTL21taC9MY254V2xMemdmaUcxeExxWDA2dC9SeFpXcVlWb3E5d3cwYVZJVmZVZnRjRW1IcEJZeG4zcXJ5d1dTMHdsVXVkCjZoS1hHbG9JN0ZFMUdvbE5KYXBTQ016NzA0QjBraUtsa0NrVFBKd0dCSzE3eWlJU2FYZ1NuVUJpNGNsc0FvaklKaERZV0JDTWhRak0Ka2o5OTBmTDh4YkxuNHNwZXVGangzRGU2bjhWVlBKYW0vbG1TNXRrNHcwdVhLbDlKc1AwbXNlcFg2VlV2d2lyOU1sc09wTnY5Y2hvRApNRFgrUmVZb1MvWEpxNDBuQit1UFRkbWkzRWEvZVZYZ2tqNXlwdlo0WDFlSW9DVzhvT2R3ZnUrUi9NNWplZTFINFYwUnNPNkQ2UzIvClRyUUMwRHk1djBERVAvYmNCY016bDZEN2VqK2VVUGF6UlAzakNmcW5FblRBUGY4cnFlTHBSTU9MbDBwZnVLaDlQZzVhRXVjWGNacmYKSjZ1L0pNSXhESGdoSFVhakk2aUZHQllUWGtoTDV6THlmdFRQZncyQWc4MUFNZWxJS2cxSnBpSUlGR2dPRUlZRXg1RXpDQ1RBb0lJTQpQUEhQZVByNzVLSnpoYkpQaE5xdmxMS3ZWWkp2dEtLNGNsNml1VERaQ2syRlNhc2w1alNDQ0xsTlJCQzhtWlJuSjRMeUhhUjhGeEVFCmI0RUNHd2duT2Q4RmhXekdvNXJ3eUVaQ2ZpTXh0eHFYcmNsSENHQkVEcHpFeVVmSWNNY2RyRmR1Q29JNlJaRk9VWVNkOTVHRlJ4UVEKaERRc2o0SUVmeTdvenJSRTZDb3dLaTRmRDl5QXkwTVI0Zm1rL0d3YUtxc1ltMjRteE5laFVxcnhVRFhZUi8wZ0lZTFBQWm0xV0JEWQpTSzdCSnRUZzRtdElYOVdRUDZpaEhhOWpoemR5Z3V5OGdCYUJmeHNmU01LL3ZSaXFUUmJZVVFKWUU5S3RDZTNSUnJhWGdjTGI5WUE3CllXMmxvZTBQQzIvVkJiWnJBenRVUjFxVUg5VEtQak1MUDdOd1A2a1dIR3VRSEdzUW5xbmhmR3BrcEpWUUMzaEVDb3RBWTVKb1ZBS0IKak1HU0N0Q1VBaVFGamFDZ3M4aUlKR3gyT2dXZVFjekxKa0Q2eVNVZ1lFUkVCaEdaaXMrL1FNRit3U1o4SW1XZU5YQlBWb3RpbTJYaApUbG1ZQzNwdFFaMktnQzU1UUE4ME56U2dReHJRSmc1c0ZUMzJtMHpoUytuQ2w5SUV2MDJSdkpJaSszMmE4clYwelJ1WjJ1Q3NDbEJRClZvVmZwdUZBaHY2MU5PMGZValN2Skt0K2xWTDhxeFRaU3lrbHI2U3FYMDNYSDh3dyttZFhCbWJid25Oc1lURHIvaHBqMWNFNU5yRHoKMVRUalMwbjZGL2J2dmYxQ2NqSG9sOGtTNk9tcDRsK25TUTZtY0U3QXlPZVJlUm1vakN3VUxCT2RuMTRBVDhka3dTQUd3UktKMlhHawo3Rzlvc0QrSjBhZk5sTkJtVnJBZHVqMTBjSk00MUM0THNjdjg3Y1YranY4SlFMRTFncE5tMWprZDVZK2x0Rk9Hb2xDck1LQkJIT1FVCitqZncvSnNGaDF5aVF5M0ZCMTFTLzJaNWNJTXF2RjRUNXJLR1ZxcmUwUm91U0kyMEttSERDTHA5T3NkNWoxSjdEKzhZUmRmZnk5YmQKSStUMHNkL3RGSjlvRmI3ajRweG80NTF3TU41eTBzOTFVRC90b1NSZlorSnZGQmIyc2JSWHNkYnIxTW9laXJxYmdXbG5mRkJMRExOUQpRcXE0WVJhT3Y1RUZ1UE9tcGVoMVk5R2Ird0E2WUdMNkdZc09tVGtITFJ5Z240TTJJZEFQdE1acXF4Ym9KN1N2d2dlZzBNdEcwRU1HCjlabkRMMXRBWUR2MFNubjROV1AwTFhQczNhcVlBVXZNcURWMnZCb0MwTGc1WXRRWVBtQUl1Nk1ONml1SjZKRitjRldjZDQram5LQTAKemFKYlp2S2J4bkxzTXptTnMzRDZDT3RjdS9UWW9PWFQ1WHIyUFduWENLTmpqSHhsaHRJN2h1Z2V6VytmSmxoR1dmeWJoYWhPeG1lZApnZzg2UldlNjVVZjdWREVkeGJFdG5DTnRvcGgyUlhBN002MkhxTzRuOCs3U1A3bkdPWFpkQ2gvU1dpWjBDOFBheVhITm1Gcy9zV0R1Cm56TlZqUnNLSmxTZnpTcVNCdFh2alphRkRwUWZHYW1OSGJORnpsYkZUaHVQM3RFZHV5dysxRUdGWDJkUFRzcUdwbFZmdHBLRFhMeTMKN2RJempleGpkdUZ4bC9Uem5tTFNYVkgxdEhoOFZ2bnR1RzdTcTVrYkwxNGVsMDRzS2ZvWE5UVURzc1Myb3NDNndpQ1hOS1JWRGdweQp5WU9ja0hVQ1hVby8rMFA5Z01BZUg0QkNXcFJRdldYSG1xV2ZWYklvcFdTTGhHZ1I0blVTbWszRTh5MU5aUlRTUUJZSnd5U2lsM0ZKCmVqNTUveXdZNmthYmNNTlR0YjFrbXgwcnUzTkRNajJtbi9PVXowNlpZVGRrTWJkMUg2dzRUNnc2UC9JMkdEMlYwKzZhQ1cvNXFsdS8KT21IR0RlbGw5OVR6bnJLSnVZYUpCZDIvVHRWLzY2bHVtUzdOYmRNY2E3VkU5TmZHOUpvaWJtbFRyOG42NWkyckM1YUZhZlBrdE0wegpWN2MwVVQzdHFWcVlybDJiYWw2ZnMzczl0WE16VnM5MDQ2S25FeGhvZlVxL1BhTlo5WlFQejljMGVwdTRudHBjdDZsaVFEdzFwVm4yCmFoZm05TUFvM25ubHlwVEM2NjFjZEpmK2tHN1JYYlk0WjFpY3ExaWNNMEV3Z2tnRUpHUlptQ3RmbUN2enpKVjd3UFkwWktZbHIyaHAKc1FnOEF2VHNQNnRpYVY2MU5LOVo4a0JmZk5sVEFUVmZEZ0xRQWEzTkcvZXJnQjQ5NWpWUDVhYlh0ckZnM1ZpbzNGeTBiQzJCVEJ1TApoclVGclhzTFBiR1dOYkthTXJxWlBiYU5HZDdBRDY0WERHMmdocmZ5UVVPYmVZTWJPVUEvOTdheVFNQkEvY3NadmVNWDdzMW5nQ2N1CjNTZk5BZnJjSjQ1c0ZVeHVGSXl2QThxZ1JqYVJvMXNvZ0o2SkxmVFVOZ3FBYVh3UFBibFhNTEdISE45RmpPM2tnOGVwWGFUbmV4ekkKL1IxbTlnRjZDdHFEbUw2ZlAvc3Rzdk5hd2R3YTg5di9pOWg0a0xQN1BXSHYzd0cyRWxmK0pXdnpmdmJXWHpFR0IwSFZwSnpjMVBVdgp5VC9sOGg1UDByMldySDB4V2ZmYnhMb3pXVVhaK0VzRnhDK1I1Qy93aGRtUHpuOEJBRkhwTUYvN0JvTHRyOW9CQVloQWdlNVovM0FFCkNKLzFkd0I2NmxMcEUvODlnRjVQYUhvOXNlR1ZsUHB6dVJxVm5FdDBNR0t2Qy95dUZFZGNrWHpVeFNzeGM5bzBmRHQwTnlDSlRTOXAKMFVnYU5NSkhBSG8wRGNnaTU1WExPRDRBUFpvSERRREVZSk1BZ0lpTWZ3S2dkRkxlb1RUSkV4ZE5UOFdwbjRpSEZxdDYrcEw2c1NUOQoweGZLbnI2b2Z5WWV3c2N6OGZ1dk9jNzIyOFNtWDUyM3ZnS3pIZUxWUmRRMEg3dHVQelpXSHpOdGpaMnpoYzFZWXVkcW82YXJ3cjBWClVjdW1VNFAyRThYTzArbVhId0hvOEE4QWVpbkpCbzNvL0pjMTNSNHRiYXQ5TGs3M2JEeVFvdWFKQk0zUGswcWZUQ3dGTCt6SmI1US8KandkdnZCVXZ4a3RmaUZjOG5hUjVQRkgxWkxMMEY1bkZYMkJSU0NxY1JjMGlVM0xJTENTTGxWTkV6K0x1VHdQNnB3RUFnZlpYQklOdQpCazJpNUFNREVTajVHQW9LdmI4bVF6b1pGYy9EWDFUVExoblpsOHhGeVZXc0ZDc3J0WnFlWGtmTGJLQmtOUkd6N1hpWUErZHp6ejU5CnlBL3A0eUR0Y3dkeWp5K0VpNGgwUGl5emhaempJT2MzazVHTkpMUU5qMVFoY0VYWkxFWXVwUkNCS3NhLzFjaDgvVEl2dEVNVTFpSUsKYXVXZnFlRWhpZ21GTEJ5TGhpWXhFVXdhZ3VVN0JVYkl4K0xSV0FJQ1I4eEhrdk55bUNpWURKOWhJaVJXSTVPc1dDaGJBU2k1R3JNZgpOUENUVklkTGdlYjlZTkpyb0h5RFE0bTFXR0M0K0ZyeUozVzBVN1hNaURwV1FGT2huNVBqdDc4d2tWOGJOSnF3djBDMVBLaFR0VytnClVuQUllOWdQOUFucGhHWTZSMERudjlRQjNlcklEdFVacCtKY3ZmUnNnK1JVay9CVW8vUjltL0RMc3NJVUpUMVBRaTNna25Fc0FvNksKeFZOd2FEd0tUVVJqeUJqd0NGMENSb0MrN1hsNE9Kd0FoeE1SV1lUOEpHTCtSU3JpQWh2ekRZL3dVV25oK3diZW1TcmgwYWJpeUJaWgphSWNDdXJ5NlN4bmFvd1lGOVNqOHUrVitIVklnTnI4V29iOUw4RmdnVGhTQUZRWVVDUDNSZ2tDME9BUXREY1BJdzdIS21JTFNhTFFtCkNxV09RS3BDRUlxQVBKbGZidkdoSE1scmVaSTM0TkkzYzZVSDh4UUJjRlZJdmk0TVVSNkpySWhCbWFBUXhtaWtPUkpoQ3NrclA1Q3QKZXpWRC9hc01NZWlsZElBZTBVdnB4YjlKZy9wdHVqUTRtM2ttbjNBZUE2RW5DNU9UaGNuTHd1Um1ZcktnUytKeHVTbUU3Q1I4Vmp3Wgo5a1ZSL2xrMTduZzFNOVFoQUFZS3NBdDk2NlNDb0h0RFE2ZkQvaDVBRDdNSlEydUtUcGlvSHl1STcwdklFU3JtUWFNd29Fb1cxc3dQCmR2RDlITUlEVGpFSUdBaTZ5VkJMeWU5NytBZGJpOTdwVkNWMjZ1blhKS1ZEV1BOQUJtQ1FiVGlyYVNqRGVpZExPRWlKNytXODF5cDYKMThsNXJ3a1luSEcwa1E0a2ZxUzlLTHlWR2VsaXZOdktPOTlaREwvRzVkNWhWZHhDMnZ2aHRodHdnaE4rcmdvWGFLU0ZXUW9EalN3LwpVeUhnemh0RzlodmxBRVBzZ3hVTWZ4UG5vS25vZ0psN3dDb0lhSkFHdTFSaFFNMWQwUERQM3dISVo2QndjSXpzTTRMOTBOSVpWOHJECmJocWo3bFVlR2FtSm5iRDZpaG12aWh5cUNPM1hCbDlWQXYxRWRvbERlNVdobDB0UFhpNU92c2tTanBHcnB3dWFKbUFOWXdrVlUzbXcKL3FLekhhcWpJMVdudlJiY01LdDlKdXZHQ09YR0ZLdGxrbEUreXFEZllTWmM0YnpiVXh6VFdSTFRLajl4eFFERWM5VEpPMmFueHpvTAp3YzZnZHVXcjdiTGdWdmJaSHNiblYwVnZ0MHVqWFNVbmIrZy9tcW9ReitsY3M3YkI4VWJIUUNWdVFQZkJwUGJZalBIa3BQWG9qUG5ZClRHM01vTzNvYUYzVVdHWHNsRG4ybmpxbVV4amVKWGl2RzFjL3l0bWRMZTRhNFY1MEZKeHBZQUFBeGJaQzU1SlBPSXRQTmZHQnVrNWYKRTZUZlVSVDNhd2ZIaXlkbU5ZNStPZk82S3ZPV1dETW9jbzdKem5mbWhybUtJMXBMUU1GT09maGI0UnZ2QVFieTZTZWdGZElQNktGKwpRQzZkdjBzZDNDNisyTUhWTmhmVm1HZ21HYjIrVUdRV3M2cExlRlhTb2dvUnMxek0xQXNvQUVDVkFycFJVS2d0UXRZYnNJTlhaWXRUCmxjdHo5UXN6Tll0ek5YT3owR2lIZnFBMDhxYjgvWlhXdDFkYlB2RFcwNzBOSzdNMTB4UG0rL1BhbTBQbVU0T2xGVVB5ZjUwM2JZemIKTnhhVWR6eDYwYkR1MDM1RHhGMWo2TTJ5MEJzVmZ2MTFoNjVxdis2Vk9OM0c1ZVdxeFdtRFo5YTJPdCs4TWxXM05XdWRuck9PemRVQwo5M2huNm1abkt6MXp4cDBaMDVKSHUrQXQ2L2JxNkhPcVAwOGJ6czNWbmZVMG5KaXR6SnRRakxxTjZ4NzFnbHNGVFFOYTBLNTRORjUzCkdYaGM4YWhXNWt0VzVtWDdqOG9WajNiRmJkalhqR0hKYlY2YUEwZ3lMM3FNMEtPN3lqc0xOa3FYdmZLVkplbnFrbUxGQ3o1TkMvYXMKenV0V1BXWDdsZTlEQjlMTTJvSm1mME8vN3RYOVVObjZnbkY5d2JUbU5tM01XN2E4VlpzTDVvMTU0L3E4WVd2UnVMdGlXZGt1ZEsvaApSbGRoUXh0WlF6dDVnN3Q1ZDdlejdteWxEdXpDN3Uxa2cyMlFUeitQdXVGTkhGbkxudHRETDl6SEFPSk03YUlIMXZOR04vSkd0eENBCk8wTTdpSUd0M09FdCtPaDIzdmhXM3RnZWZIUTNkM1EzYjJRN2IzUW5mMndiT2I1VE1MR0xBUXlhdkk4YTM4MGYyY29kMjhtYmVnQzIKNFlQcm1ZNWJ4TUVGMXZyZkNqYitrcmI1ZmNMcVg3S25OdGlldi9MYy93OXk1aS9aODl1d2I3L0hmdmUzNUFmL0Z5WHAwZnl2K0tiSAo0OHNmUzlmOU1sdDlQRHMvQjVYRHBCQ3c1SXNvOHNWSCtxRXdIdXJua1lHbzlCd0tQWWRNeXlWUW9XbEFhQ0kwRFFnQTZJLzUrd0NLCmg1WVlnMGFBNHJRL0JkREw4ZlUvQmREdkVoMXZKdGwvbDloNE1yTlVJdUNLTGFTUDI1Z0hyd3RpcjhnRGJ2SVRISVhsWmxHTHZ0aXUKRmxuMTBPbXd4bExSVHcxVW94SStBcEQraDNuUUVnRmR3SVVXdm1CQ040UEdRM2NEWXVLQWdZZy9BVkFtRmUrZktYOHl5ZlJVc3ZKbgp5U1hRU2NBRTljOVM5TCs0VUE2TkNjVWJuazAyUEpWcWVEcTVEUFJzY3NYTEdtT1Fzem5xdGoxcW9pNW1vU1p5dmlwa3hoZytXeGsyCmJUenNyajR5WTR1NmE0bnNNQiszTkJ5bE41N0tiejJjMzMwa3YvMVlQblJMNkFoWTV6NkFxZ0NBbms0MGdKNUtLUHRwVDhicm40cVgKUHgydmVESkI4VVI4eVZPSjZ1ZVR0YzhuUXRmQVA1R2dmVFpSODN5UzZybWswcWVUeW4rZVdQWlVrdWJGTk9YSGFIdytHY1VBQnFWbQpVNWk1YkRhTXc4am1NTkQvU0orSDBTQUErVzRGOUhCTmVFbytrWnFQb1JVVWtKRndZbllHUFRORmxwdGlRU1hYSWhOcmN0SnI4ak5xCkVabDF5S3g2Rkt5eEFKVFRoQUh0dStjaGZZQjdFRDd1dEpBZUR2ejhKS0FmdElPWTNFYk9iS1hBSFdSa014bGRRMGFVRnFCNGNISWgKQ3NzcHlKTVN6dGF5L0xxNDRhM0M0RmJSZ1E1aGxGMllwaVNSdURnYUEwMWtnVDhkaWs1RjRVSEVmQXdSVFNBaENBVG90bzB3QmpKRAppazJyd0NWYkVZbFZHTkRmQVFneVVGM0JmcGdmcThXbDF1RmhBRU4xeFBNTnRQZnFXZEgxeklBRzlpRjc0YUdXSXNDSVF5N1JRYWNRCnVqS3BWUnJZcGdqdVVBVjNxSU5iU2tOYXRVSHRtcUQ5RTJGQm9FNDFLTGhOSHRpckNyNnVpN3hlZHF5bjlIaTdLZ3E4V1cwdFBsVmYKL0xHUmx5SmpJN2xVTEllQzRaQ3dMQ0tPaXNOUUNXZ0NCb1FoNFJDRUFqZ1dtWXRCNUdPUXlJSnNPQzQza3dSTjgvMlNnLzFFUnZsUQpYM2pPeEQ5dWx4MXh5TURYRE8yUUIzUXBBbnFVZ2QxUXdFRFE0Z0U5SlNDL0xobGtvRlpSUUl2d3NiZWxYTkE3RXM3YjRxSjNSTnl6Cll0NjdFdjQ1aWVDUEl2a0hJaG5vbkZENnJrRHlEazkwbWlzQUhTbmtIV0h6UWNmWm9wUHM0ak5zK1Z1RkplOFVLdDltSzk1aGdWU2cKdDFqS2szUkZMRlVhUVJMN1lVVitXTWtoalBnQVdud1FLVG1RTDMwenIvak5QRmxNQWVVOUF1NDhDWjVDeWtvandOSUo4QXg4YmdZdQpFNXJPVGN4TkpXYWxFREtUS05sZk1XQWZpcEh2bDFPaW16a2hkcTd2N29pK2hlS2hoVEtnZXdKQitvR3VJVytHQWdZS2hDWkVTNElhClpJRk5vdWdhemxrZC9XMGVLWXhPL2gyajZLWEM0Z1BsWWo5TE1hQUd0SWlway8rR2cvdW1uWC9BSVFMQUNuVUpJMXRGc1E3T3ViYkMKNUI0RzlqSlJjbzhtSDBKVURtSEtCNG1FZnRZbnJlelBXN2c1ZmN6OFB2aWZYTFN6VHNheEZ1NnhGdW1KWnRtUmV1N2hKbFpzSy9PMApvK1NUdHNLTVBoVDNkcmF1UDBkOUcwUG9KbjFhQlE4eE13S05qR0J6WVhBbC8xQkY0UUVENjVDUjdmT1FuNFh2QncxUVFmb0o3U3dMCjc0WGM4MGcvMFBaUEFCVFZCd0VvdE04UWVzMFFjZHNjTldTTkhxMk9HYlBGVHRxaUp5elJZK2Jvb1lyd202V0JQYkxBZGtsb3B6UzgKVnhQV1V4TFNJdy9xbFVmM2lMKzRXa1FiSUJySFVZN0pYTVVvNGZOMnh1bG15ZWxCMC9FNWMvNGdyM0VDZG5tS1V6WElabHpueFBjSQpUM2RJd2p0S3dxN293NjRiVHZiSUk2NVV4blNxTDNTUVVycHdaOXFLUWxzbE1TMkZZVDNxd0ZaK1VBc3JvcDBUM2lHTTdDMkp1YTZLCnZhVTZOMVdhTVZOSkdLOU9INmg0YjdqcytJenRuYW5Hais0MlJjMDNuSmh1T25IWGVtckFlbnpJZkhyWWVQU3E0bkNIT0xpZHpickwKbkpvdFhKN2pEcXdvN2FNU3hXVk9UaHZ0aUxNb3pFbUpkbERQMmtYSG0xVUg3U3IvRnZsYjdmSXZyckhqN3luZnZxdzVmYU11cEUrVAowY09iSEM3dnVWa1kxaXdLdFl2RFhMSVFseXdJbXZvakMzREtBOXVVUGdrOUhQNXBWZnFDMXRCd2xCN3ExSUkzQkljN2l1SXZjNHNiCmltcGxyQnBSb1UzQ3JCYXpyTUw5Q1VCaWxrbGFhSkV3b1E5RnpQcFNacjBCMzlYRW1McFhQajlaUFRkdTljN1d6azRaTnhiSzcwd1kKVHQ4VW5aMTN2cmZxK21DMUtYbWxaV1hTdGpGZXNiQ2lGSTFaM2hyVWQwMnJWeGNzdDBmTTBydWxIOTBwQWR3SjY2bVB2ZHgyL0xydApuUnZxVTlma3FKc2EzWkIrekczWm1ER3VUMWxXNWhzWFBZMUxjdzJyYzdYcjdzWVZkNlBiWFQzcE5YbFd5N1lXbFgrZGxkeGJxcVF2CmxaMVlNa1F0MTUxWnRyKzExSFJtc2VrOXIvT2pXZTNJdkhYUHJWendsR3g0VGQ2RnNwVkYzYks3RkRLS1Y3bTJLRjFiRWtFdFN0YTgKSld0ZThLb1VxL05xQUpyOTRSd1RhTWxqQWEzTUc1Zm5kY3NMNm1XdlltVlJ1YnFvV2ZHcXdZZjc2SUdDZkFPVTR5MWRYMVN0THlvMgpsNVQ3bGV5bjNGclNiQzNwdGhiTGdIdTJ2SmJ0eGNxZEphanRSWUFoOCthQ2FXdEx0cmpCbWxoSERtNW0zZHZKN045THY3V2JjSHZuCndwMmRWRkQvZGlyQTBOM3RqUDMyTWJRSGJZL2Z6NTE1Z0JqZmdvK3N3d0IwQUc2QWVJYjNnSi9nOTdaejdtN0JCbmRnSXpzNXc1dloKd3pzWnc5dFp3OXZnUXpnRW9GM1U4QTRhYWpOMzMwQklZQ0RROUxmb3FRZUkwZTJjNFg5Sm0vMjNsSWtsdkhjZHQvNXQzTkozU2JQZgpwdy90Wm8vZHorcS9uelg3WGU3NnY4Sm4veEx2K1N0YzFjcDRLWjd6ZTVqMjV5bmFwK0lxMzBKS2MwZ0lQQ0ViVDBxaTBWRSsvZmdBClJHUGsrUHFSUVJDQVlFUmFqZzlBS0VKbUxnRUFDUDlHbXZpcEJCMDB2VHBPL3doQXo4VWJId0ZvWHorTzE1UHR2MGwySFVoMi9DSFIKR1psYVhzUVhWZXJKdVkyMG9INXU2QTJGM3pWQitMVWlVb1BBcFMxMmFzVjJEYjlaeTRNV2gvK0pnYUNMNFJYOHloSStOQTJvbUtNUgpzcUFGTWZZQlZGVDBYd0JFZUFTZ1FoeWVqVTBoRTk1SWx6MmVXQUVBOUhpaTZwbDR3NHR4MFAwRm9LdTRrdzNQSnBULy9LTHVzYVNTCnAzREtQNmlNb2MxMUIyWU1ZUXUyYUc5TjVLdzFjcllxZk5ZY01sTWU3Q2svT20rSnVtdUtjbFpGcStxanFNMFJTSHRvWG1NTThTR0EKanV3REtEeTc0ODEwQndTZ2VOMC9BZ2pvQndUY0EwMUZUMUpCdzFIN1Y3dy9GNmNEUFo1VTlyTWt6Wk9KNm1lU3lwNVBNcjZZWVA1MQpZdG52VS9Udkk0azU1QUkyRTA1akFBRGxzTmxaSEdZdXRJN0UvbHlmZjR6NzhHSjRsTzlXUUE4QlJNNURVaklMS0ZrSWNrWVdJeTFaCmxKMXNRS1Jha1NsVmVlblY2SXlhZ3N4YVRIWTlQcWVSbU50RWdqZFI4NXBwZVU2U3IvMHpYRVJFQ3dtcWxaRGIraU9BY2x2SUlIZ0wKR1FncHJRMmYzVUtBTy9DNVRrcTZuWGJKU3Y1YVQ3cWtaU1NxaUJmMDFCT05ySUJPYm1nYlA2Z05BbENvVTNSUlR5MFFrR2dzREltSgpZbEpSREFxS0NDSWlVR1FJUUZnc0xBZWJsY3hFeHN1d0NZYUNGTXVQQUFMMCtlRXNXQUVvclFhWldsdVFXbzlOYXNBbjFST1Q2NkY1CjBCbTErS3dxVkZvZC9tSXo4ME43NGRHbW9wQW1BQ0RXSVNmN2tFc0E5SFBBSVFESFVHQ2dnTllTWUtDZ2RsVnd1dzV5VHpzMEFRaXEKUXdVdDE5aXBEdXdzRHJtbUNlc3ZpN2lsajd5c2plb0doeWQxVUc4cE9JWitZQlYrb3k3TUZGSHpPVVEwbTRobGtQQlVJb3FHUjVHdwpCVVFzZ29USnBtS1NHUVdKRFBSRktpS0RtcGRFeTc5UWlQeE1TdmpRd0Q1Ykt6N2hrQjl1VlVhM2xZUzN5OFBhNWNHZGlxQk9CWFFoClVZY2FGTmhSNHQ4SjZjZVhmNmNNR3JzQ0FQcktSUGIxcFpIMHRaRjgzZ1Ixd1V6NXhzVDBkY0hJT0c5a2ZGMUIvNnFjQnZxOG5BSDYKc3dIRStyS005WldoNk91eW92TUczbGQ2cVBNNnFLKzF2QyswM0U4MWhSK3AyV2NWbkhkS2l0NldjOTZTOEU2THVLZUV2Rk04M2trTwovMTB1NVRNZVBvNkxUQ25LVFdIbnBoYkNNMWp3TEVaT09oMmV5WUtuTVdFcDlLd1VKdXdDSyt0UC9MelBWSVRqZGN5b0puYUFpd3U4CkNkd0RBQVR5MGVlUmZuNWFjSE5KY0wwNHBKNGZVeU02cXVaSGtUbXY1NHRlUUNpZm94VC9UcXdJTktuRG0rVkFQSDUyN3NGbS9xRm0KU2FSTkhORlFBcDFjYy9BalhOS1R6cEozbXpoZnR0RXlldW1VSzJ6bVRWN0tWZDc3VHVZM2RncnZKa0UzbU1hNFNjenNKcnh2SngrcApMd0xxUE5VaU8rb3FpbkNSVGpVSVlsejh5QTd1VzMyOGkxZTR1TnRGekg0eXVpTTlxcFlUYUtRRlZEQ0RUUngvWXhFd0VLQ1BmeVgzCllDVS9vRm9NWG0xWWl6YThveXlzQnhyNDhjMTNCdlR4QmVnVEF1MkVBQlJ4MVJoeHRUemlla1hrSFhQc2tDMTJ2RHBtd2hvNVVSVTUKYVk0Y00wVU1sZ1A5QkhWSkR6bDRmblplU0F0ME5WbElSM0Y0WDBuWU5YVndYMGxNSi85UGZheWNmcFo2bUlLL1RUM2hvQjEzU002TwptVTk0NnBJSHlvc0gyY2c3bkV1OTdIYzdoVWU3TmJHWGpiRzlGY2M2Tk1kZDBxTmR4VUNIRnk2elMwYXg1WlBvekN2NG1BWUNBQkI0CkZ4THRFc2E2Uk9CZjQ4RXVqbitmSU9xcS9QUVY5YWtCNDRrUjQ5RXB5N0hacXBQVHR0TVR0dE5qMVdmR2F3RFVEZzlab203b2o5d3gKSGdQZDFJZDNpQ083aFBGOStDdHo3SFV2Y1d5RzVQWklOOXdsSHEvaThuUngvVjErM21WT1ZBdmZyMWtSNDlTY2RNcE9PSGdubXdyOQpXNVRSemZxWXk5YTM3bFRGOXV0UDNTbUQzYTNJR0M0SkF5WnU1UHMzOElJY3hiNkx3dnpzVXNDZy93NUFnZTM2aUk3U2lHYWhYeE1uCnRFdDRvWkV2ME5BcWxlUktFYUdhUzdhTDJFMWlMakNRUVVBM2llaG1MdmxhczJ4OXNtNTEydVFaVTIxNG9Ra3U3bW45b3FkOGZzYTAKTnFkZG5TdFB1U044ZDl3R0FXaXI1WU8xOXN0ZTFYMnY1TllpOTdNaHpaK3VsSlNQcTZrVGhvVGI0dGhyMWFGWE5lRTN5dCs1MmZEdQoxYnJnUHV2WmF5YkpYZDN3ckdKMXFlS0J4N3c5YVZxZHJsdWF0N3RuYTVjOWRldHU2OTVVM2VaMDdkS1M3c0c2K0s4cndudUxTdFZTCjJRZnpwdmZuck8vT05iMjlZRDg3WC9mdXJPMk1wK0hJYXR1N0E4S0I2YklIOHlVcnk0b05iNFZudm5SdFNidXhvRnRmMUFDbXJDOFYKcnk4TDE1ZjUrNEVOOGZxaWFOMkhvZjFSSE9BZVgwQmRhNTdLMVFYVjZpSi9iWmtMUGRHclc1KzNBRlQ5VU1YR29uNXpXYk81b3RoYwprVzJ0Rk84bjNsNlY3Q2ZkWGxHQWRsY3NPOHZtN1NVVGVBVGJleXRXWDJ0clJkNE4wdFJXM3VCbVJ2OVc1dTBkMk4yZEhDQ2hnWjJVCmUwQS8yeWtRZ0hiVDcrNW0rcnE5bTNwN0s2Vi9NK1hlVmdZd0UxQU9rQTBJMEdkd0wrZnVUdmFkN2F5QnZaelI3K0FURCtCanU3RFIKdmF5UjNVeGdvS0hkSENDazRmdUlvVDNrNEE1cWFDZHZaQTh4OWkxeS9Ec1VhSDhEQVFKUEhOdkI5L1N6aG1kSnE5L0RGaDhncDNleQpsdjRqYzIwbmErRjdsSHNQT3dzKzgyK1pucjI4b1JsaTB3eW5aVmhFdFhOaVlNSjNzNWd3NmlVTTdTS2Vsa1NnSmozU3owOEI5Q2l3CjB3Y2dQQ1c3Z0pRTkRKU0xoLzBkZ0tBRGZJTGhId0gwZXJJVEFPamwxTlkzVXBwZmoyOE5TTFlTdWZJV0RZMVhUWW0rWFhqb3RpejgKc3ZpTlc0TFBPZ1dHQ21HclZ1VFM4cHZWbktZZkJvRjhRV2ZCbEFKckNjOGs0d0lBbFlyWUNnRlR5b2VXUkFVQVlySDM3NFZJeCtNWQpXUHkrZ2ZZdkFjUGlXSmlMUk1MdjBxUS9TeWgvUGxuN2JJTGhGNWVzdjc1a2VpYXU0bWZwaXNmUzVEK0RLWDlCcnpoUVVSZDV1ZW53ClJFM01ndkh3UW0zTXJEVjIxbnJFYlkyYU1VZk1HaU1YVEJGZWMrUjFXNURXRm81MXhXUjF4OEM3STlEdEVZajJvL21YWXhIZGh4RVEKZ0dMek9rSmhFSUIrbFZ6MVRFTHBQdzcvUEdSUVl1blR5VHBncitjU3kwQXZKQnVmVDZvQUwrekZsSXBua2t1ZlRsRTlrNnA1SWNudwp5MFQ5YnhJMUx5ZkwzOHJIWkpJUTBGMlZtVEFLSzV2SnpDaGk1TENaMkVKbS9qK055MFJ4R0VnMkE4R2dJYWkwZkJJVnZqOE5DRjVBCmdlR29lUVdVWEJnbE81a0xUMWFoMHlwd0dTWmNaZzB4cTVhVVhVZk9hU0FEK3VRN3FBZ24xTDUrQ0EvUGRyWGdBWDE4d1h3QWNrTDAKU2UrZ0puYlJVam9ZNmUyTW5CWWMzSW5OZFdEUzJ5aGZkN1BlYWl1S2RmQ2luZEszYWhpbkcxamhiVVdIdXJtQkhRQkFBdjlXVVpoVAo5S21Sa1NlaDBwZzRLaDFhQzR4RlJwRW9LQW9CZ2FTZzhTUkVBUjZXVHM2OUlNWjlvU045WFlGTk5pUGpxd3BBQ1ZaMFVqVW11UVlMClZWc0F5ckNoQVhTU0d5Z0p6ZlJMVGZTNFJscGlQVFdsbnBKZWcwdHFvSDF0THpybjRCKzFjd0NBL0pwWndFRCtMc0VodXdBNmh0cEYKZmc1eG9Fc2V0RC9OSUtSVDZ3TlFRTHNTRkFndFQ2UUo2dEdFWGxXRjNkQUVYeThONmxPR2Rxc0FnR0w2eXFLdUdvNjJLNCszeXQ5cApGbjlxS29xVFU3T0t5SEE2TVo5S3lxSVJ3R00rQVo5RndpVVVrYjZTMGYrb29MNVZqUHRFaFA1UWhudGZTMzJuaW5QQ0xvbnRVSVowCnEveDdsQkdkQ2xCNGx3cDg4UkFvRFRRbnFVdmpHd2VDNk5QN2NBUUltZ1FOQUhUUmhMbG9SbDh3bzcrcFJGMnNRbDZ5b3VKc3lQaHEKMUNVckFnUzJmU1g4VUh3dEJwUlFnd01sMXVKQnlUVkVVRUkxSWFtYWtGeE5UdGt2dVpvU1gwMitWRTI2VUlNRG5iZmh2N0VTTGxRUgp6MXRJQUZoZkcwbGZhb0ZuQ1NscWJLb0NsYXhBcGloUkdYSlVsZ1NSSWtHbEZpTlR4UEJVWVM1NHZDVE0vVm9FLzFLS09Hc2hINjJqCmh6ZzU0RHNlMEN3T2dRQWtnOTdmL3dROVBnejVncTZLcnhZRzFBTXRTY09zMG1pQkpBQWovVFZTL1J4QzhVdEM4ZSs0QWordElMeGEKRkFYb1k1ZENDNjg2NU5BQVVxTWdyRmtVNDFSR05Ta2pHa1hRT1pkbTBZZU5oVisyRm4zVXhYK3JsZnRwRTU1NUJXbStsMUl4bUNYcgpoeU82VVI4NWNWRXQ5S0IyVG5nTEo5Yk9QdHpFakdrVEJyakVRUzc1RVdmeEdYdlJ4OTNNODNkWnB6cmxJVmJXUVQzWnI0enBWMUVJClRmMEIrcW5pSEt5VEJBTDl0T2tpdThyRHU4c2hBUFZDRTMxK0NxQkgrZ20vYWc2OVpvaThaWW9acURvOFlvMFp0VWFQVlVhUFYwVlAKV0NKR0t5S0dES0czTklFOVVqOG4vODA2OW9INndzQW1Ya0FqTTdCRkV0Q3REdTVWUm5XTERuZHlZcnNFc1ZjVUYzdHBIL1dTZzl2WgpNVDNLVTJQbXNFbmI2YjZLenp2RlIzdlZzVjJLYVBCWHMwc1ozU0dQYlpNZGJaT2Q3U21OYnBkODA0VlJET2UwZXJJNjNhbTZlNG5uCm5kbEJUdkZoaHppb1JYaWdYUlRRSVFsemlTUGJwSkUzdGVFVGxWR1QxdU1UMWFjbmFrNU1XR01tTFpIVHBwaEowN0VKYzh5d01YekkKRUh5bk5IcWdQS0xmNEg5RmZzQkZPOTViYUwyTG1QVmkxemZRUzZ2MHJSbmU4bFRod3FKa2FiWmtaMUp5WTdpWWZVVjRGdnhqcXk4TQp0a3VpVzJTUmR0SEJGdjR4aHpyRUpRdnM1QjdybEozb3M4WU0xTDA2cmo1enh4alZyZkpyRmh4c0ZBQW9nNThDTUJCMHIyMW5DU2pZCjlkQkEwSmpRZm9jNmxERXUyV0dISkxKVkZkRUJYVWYyWlMxYmJxSlY2TWlWTW1LamtHNFhGdHBFVExPWVlaVXphNHBwMVNyczJGWDEKMm96Wk82bGRtRFFzVEpzV1pzMWVkOFdxMjdReXA5dGVMRk9NaWo4ZTBMK3oxdnJlVHN2cHRaYUdWZkcvTEJmWnhobkJ0eVR2dHZNVAorMVhoL2VaUThQMjhianZaYTMzclJsblVIZVhCNi9velYxVWx3L0x0ZGVOZjE0dS9YWkp2ZVFCV3FyM3VCcStuMmV1cDNWaXMzWFZYCkx5MlViU3hMLzMySi81ZDVmcmRibHJkUWZtU3AvdkJXMDltVmhuZTlEVWU5VGNjWFhPZm1tOS94R2lQV1pOU1pFcmRIdTdkWXNycWkKWEY4dVcxeFNiM2xMTjcyR3pVWDF3eEdhWmVubXNtaHpoYis1d3QxY0xkcFlZVUV0Y3pZQWNRQ1NvRUdkL1hHZGVRdlVRam5ZdWJFcwpCeTlnWTBrSkRMUzFhUHloOHUxbC9mYUtHb0xPcW54M1RieTdKdHBkRit5dWMvYmo3VzN3OXphRTI0dTYzZVd5dlJYRDduTDU3cEp4Clo5RzB0Mnk1djFLNXRhcFkzZVM3OTRnalB2ZnNBcTlrak82bWpHNm1EMjZrM3R0SXViTUpHYWgvTC8wMk5EaVVkdk4rR3JTeGszcHYKTHd0ODh2QmU3cjJ0ck1GTkdORFB2VjBZMEE4dzBQQ0RuUEh2OGlZZndDZDJZR1AzczMwQUd0eUJQbWZ3ZnQ3Zy9Yd1EwTS9nTm54dwpKM2ZrZnY3b0F3U3cwYjZRY2lmMmtGUGZJY2YvbWpYOEFIZDNBK2IrMTh6cDNiU0Y3eTdlL3orWmk5OG1MdXpsejN5UEdMcWY2TmxCCnJ1MlM1djhqYStjLzgzdnZVNy9rc2Q2RjBkSkphUmhHRGdtNjV1dnpSK2UvL2dGQTJUOEJVRFlFSUhJbUFGQU9MdnVEUE56cnFTSncKVUg4RUlPamFwWGpEUHdYUUg5SmJYa3V0ZnpPKzQwQkNmUVpMN2xMUzlHYlM2V3ZNZzdkRVlkZkFtMnhKK0ZVK3FwNWJieERXVm9oYwpTa0d6VmdRTTlBaEE5V3FCYnhBSUFLaGM4aEJBTWdGRHhLTnpPQlEybTB4Z0VmRk1nZzlBZVBaREFHR1pCZWVwbEZjeUZVOG1XWDZSCkJLMTk4ZXdsMDdNcG1zZXlTbjZPVXY1R2JBNTEybU9HWERIdWhpaXZPV0pCSDdHZ1BRSVlOR21KY0J2QzUzV1JjeFduNXh3bisxc0MKNnF0ZXBkaGZ5N09INWx5T3lPeUx6dXMrak9vNGh1dyttZHNiaStnOGdtdy9pbXlOelc4TGhiVy9rV2IvVmJMbDJVVHQwNG42ZjlxVAo0TnVWQUUwR2VqWkIvMXhLMmJPcFpVK202SDZXcEhreHJoeXc2Y2swemRNWjJtZFN0TThuYTM2WnJ2ZzFUSG9XajBxblpsTVpHUXhHCk5wbVJ3MlJtc1prNWhhei9Ga0JGMFBKYlNPaitJSXg4Q2oyZlJNdkQwNkJWdDFFMExKcUN5U2NoTTZsNXlieThsRkowaGhtVFZZbk8KcnNmREd2QTVqYmpjWml6Y2pvSGJDL0tjNkR3bjhzZUpQai9RQjlFS0dJVFBhZC9mYnFGa2R0Qy82V04vZm8zNytWWGVWNWNGYVoyMAp6RFpTcHBPUTNFYjVvcWZ3ZUJjbnVGM28zMWtDampJaHJSeS9MdTdCYnE1ZkZ6K2dYUkRVSWdMditzN1lXQmx5R3BGTm9OSXhBRUMrCkVTQUtFWWtnb1hFVU5JS01TT2JqdnpCeVBxd3AvS1NTbUdqR1hiS2c0aXJSQUVDSnRvS0hCdG9IVUdvTkFVRG5HeWY3aTFiZXA2MzgKUDdrNGYzWVduWGNVeGpzTHYzSnlQblR3VHpUend4czUwQ213SmlZSUhHdDhBRG9JM2tNNjlxZmtPcUZCOTZBV0ZjZzM2d0Q4Tnh2VQpxUWIvNllYMWFzSDc4SkFyNnNCZVJVaVBJcXEzTkxaUEY5MVRHdEdwQ2U5U2hGNVJobDB0T2RvaCtkREsvVnJGaUJmUkV2bjBiOFRVCk5DNzRnUkZTeWRnTEF2TEhPdFp4QXkxTVI0Z3NKY1NZNlVjYUJPQUlGZDR0RCtwUitQVXAvS0N2clBJVjBLdnk2OU1jN0ZYN0N1NkYKZmdtNlpWRzNET1RmTFEvdWxvVjJ5eC83c2hRRCtscVB1V0RBWEt6QVhESmhMbGtLNGlveFB1NGtWcU5Bank2TkF5VldJMzJCblQ4dApvUmFWRE4weHFTQ3RHbnBNcWNFbTF1NVhod1FsMVQ4OHN3aDlsL2NIM09Lc2hOUktZb2FKa0dyRUpab0trc3lZdEFwTWhoNmRiTUFtCjZRdFNkZWhVSFRKRmkwcldvT0tVaVBQRjhBL0xNS2R0bEFoSG9iOEx1aWRRYUdNeEFOQWg1NDhBK3FsK1FLSGdtTmNrOVc4cTltdVcKQk5jSlFzdjQvZ0xCSHlpQzE4blMzeE1FTHhNS1h5dmtoS3BFaHl1TGo5U0pEdGZ6L1Z1bC9nNWVZR05oUkxNdzJpNERqeEVPWVVScgpjWFNySnRMQmpYWFJZMXVMb2p0RXNRNUdXaTlGZkFPcnZaMWlISVJyN3FFbzE1Q1h1bENuWGRpb1prYVVuUi9xNU1TMDhhTWNSWWZ0Cm5OaG1ibkFESjZoREZ0MXZQdEVsRGJJeTM5QVREcFRSQUlBT0dBc1BXWGwrZFNML0ZtVlFtemFzeXdEMHN3OGc0LzRzSHdoQWp3ejAKVXdDRjk1c2lCaXFoK2M1anRwalJ5cWhSRXloNnpCd3lVQnA4U3huUUt3SGZuNE1OUlg3MVJRQkFCK281Zmcycy9RbFB4ZjVPVVVTYgpJS1piRU5vakR1aFRoSGZ3bzlxb2h6cDVvYTJxcUd1YXdEdjZxQjVEZEk4dXNyMHNxa01mMDYwRE1EcDhXWEc0UnhyWnhqdlJKNG0vClZpUWJ5VzkxcDlsbkV1eVQ1KzNqWDlPdlpSMXRwSWQxRkFlMjhnKzE4QVBicGVFOTJzZ2J4b2hoVytSY1hTUjQyemRqT3pwcFBUWlcKZVhyQ2RtcXFPbmJFR0hCTEVYcFhIekppQ0J2UXgvYVhoZHpVSExnbVBOcE9STjdnOXMvU2h6MlkyVVhrK2pKdWZZazh2MHB6TDNJVwpwNlJEYnVIeW92cTJXMG02d3ovZXlndHVVb1kwbHg1b1ZvYTBjeU5kbkRkc2hOZmJ1ZUV1UlpoVkF0NWVCTjFVbkJneUg3a0xFS2w4CjA4NS9vNEVIK0J2U3FnaDI3aytJOXJVUElOOC9Td2hBbmRJUVIzR29ReDdXb2dsMXFRKzB5bUxicEFsT3VlbWFyTEtlWXlrbVZYT3AKOWJJaW9CK1RDRzhURThvRU9aY2J1VXZqbGsxUHpacTdibTIrYVhHdXhqTnRXdk9VcmN3WmwxZEtyMC9MTHQwcGVXdWo0OHlXNDh5bQpYYnlrdmUwcHlSc1ErdlhMdzYvTFQxNHRDKzYzbmJqY0ZINnpOT1o2dzVsYjFvakxpbmV2bEZxbXBKc3IxUFYxM3RheWFuVmU3WFViCjFwYnJsOEZ2c1ZpN3ZtamJYTFl0TFZjc2I2czJkNHRubDJXYStkSS9McHJDbHV2ZVduUzg3Nm1NOFpvT0w5ZS91OXgyZExreHlxdksKbmk5eXpoZmQyNjY0djZMYVdwRXRMeXJYVjNYcmE4cjc4K3IxQmVQV3NnTDhGdnRucGpSYnl5VmJxOEt0dGNLdGRmcjJPbVY3bmJTMQpUdDFhNDREOW04dGEzNkRPeHBKNncxdXg2YTNaV3F6ZFhDcUhobmxXaXpkWHhkdExoa2Z0ck9oM1ZqVTdxOHFkdFpLOWRUSGd6dDRHCmQyK3pjRytMQWJxL3pRVHRybWp1cjJtLzJ5ei9ic1A0WUszaS9xcHhieGt5ME41YTllYVdibjZ2Y0hRbmYyQW5mV2duWlhUcjRzanEKRjhNTEtRUHpTYmM5Q1RlOThUZFdFMjVzSlYvZlRibTJsM0psSi9ubXR4azM5dEx1Zlpkelp3ODJlQjhBQ0RhMkI1NmJlMjg3eHdlZwplenZaQXh2cGc2dXBnOHNwZDFiVFFQM3I2WGUyTXFIOTk3UHYzcysrOXdBMjhnQTV1QXVkTWhzR0FQb1dPZklBc0NZWE5MV0xIUG8rCnVXMFZYbWl6WlhHMDluSGk0ci9uem05bTNYdndtZnYrTnd0L3lSNzVTOWJFZHhremUva2ptK2l4UGZqNExrN1dSNHBNSmIrYndjeWoKWkJEb3lRUktHcFVNLytrcE1Db2RNcER2NU5jK2dLQ2Q0SmNJMUN3Y09Rc0NFQ2tEaHZjQlNBeU82SS9IRzUrTWcwN3hQQUxRcnhKcwpBRUIvMko4QTVBTVFrTUh2VTZ4K0NWMnZYYkovVHBYV3ljbTJDc29uZld6LzI0S2dXNUtJeTFLLzYveXp2VVdjV3I2MVF1elNTSDBBCmF0UUlIaG1vVHNXdlZrSVhnbFVVYzdVaXRsTEkycjhRak1FcmdnQkVaSk44QU1JeXNRQkFJQndMVThCRWYwYW0vQ1pkOGZNRTAzTUoKMnNmalZFL2s2bDhzVWoralZjUjJ1NDcwTzQ5TU40UXZtSUs4dXVCNWJmaGNlZFIwWlpTbkN1d0pudGNIekdxanAyekgrbHY5eW11ZQp4TWgrbTliOG0vUzZRR3huV0VGbkZMd3JLcVB0U0g3N1VYU0xEMEJIVUsweGVhMGgyVzNRU3FqSmxxY1R0YzhrbDRMMjc1Z005VnlxCnp0Y3pLZnFua3FEVkpKNUpWajJkcXZoWm11em5zSkluRVpybmNhWFAwVXQvSmRTL0lqSzh5dFQ0VVVzaTJiSWpRc21YRWxJT0YwWmwKcE5CcCt5dnBzb0IrY2xsc1ZCRUw4VTlqRlNLWUxDU0RqYVN4RVdSMlBwR0Z3TEh5UWRsc1pDNExDV2NqWUVKa3ByWWd3NGFGTmVGeQpIWmdjSno3WGhZTzM0T0d0dUx3MmZGNGIxbGQrRy9ISDJnbVB5dTNFSWFHZDFOUnUxcDl1OE4rNVUvejJIZmw3dDFSL3VpNiswTWRMCmJHZWt0ZEVUV3BtZk50UGZybVdlcWVGRXVnUmhMVHp3ZnR1L2czT3dpM09vQXdKUXNGTWEwVnowallhQjRvS2ZHbzVHdzVCcEJSZ0cKb0E4U1NjUmdTWmdjR3ZxQ2t2YWhVMzZxUlh5Mm1uTFJRdHdmL3NFQSt2aW0rRURWWTBGeGR2clhycUpQT29SbnU0dFBkTXRPZGhlLwoweVYrdjF2OFNYdngreTNDNDgzQ3NFWitRRDBQSEYrZ0kwc0Q0MUF6OTFBVC8yQWpEN3poOUdzV2dhTXQ2RkNqeEw5WkR0NTJCanJrCjBIVzRyY3JRZGxWb2x5YXN1OVEzSlJrVTFxc0p2NndPNjFNRmQ1Y0Vkc29DTHlzRHJ5bERicXFqcml1UGRzbmVhaFMrWDhuL29KejcKdm9uN2xZS2R3aUtuVWdrWCtkUnpTbnFzamhwaG9QcmJPTUZOUW1pR1JwOHFxRThKam1oQlZ4UkFWOEJBZm4yQVBxcER3RDA5S2w4SApldFQ3d3o5Sy8xNW9CQWo4WGdCaGtWZlY0TUQzMk9mRnBDL2twQzhWbEsvVjVBdGE4b1V5OHNWeThxVUs4aVV6MWxlY0JSZHZ3U1ZVCjRrR0pWWVNINXc3MzU1QW4yM0NQU3FpQnZwdkoxWmhVR3dqYWsxUU5EUkVsV1luSk5wSnZXQ2pOQnBWcUpZRUFtTktxc2VrMmZJb1YKRzE5ZEFEM2RWcEJxUkNmWlNBbVYySlJLVEtvRkF6NU1OV0tBaDg1TGN6NVZvOSt0SWtVNTJBRk9mbUNUNEg4QWtOOStnUTNDZ3c3cApvZWJpb0ZwdVdDTTcxTUVMdFFyQ0Zmd29zU0JHSW9zUmE2TEUrcWhpOVdHZDlGUzE0S3lERzlVZ2pYVHdRMTNRS3ZSK3pZSkFaMUU0CitLdldKQTFvRnZ1M3M4TzY2YUVkclArWHNmZUFhaXZQNzc3bmZaSThtMDJ5Mlpaa204YzJSYUJDTCs3MjlKbWQ1dWt1WUhveHZRZzEKQkVJZ2hIcnZFazBTdllraUFaSkFuVjdjeHdiVGU4ZllNOWxKOGo0NWVmOVg4bmhuWjJmM2ZjNzVubnN1Vi9MVjlXMy96LzlYQVdhKwpiR0JmNktYRXRXTVl6aHpKZUs1Mk1ydGhORjF1emN6VDU3elpXUWh1elVnOVpBY0s3Q1NqOU9WK0JockN5QTIzVllVYVZmQTI4c3MxCjJHTXFyRThOR1lvQjBwVDd0WEVDK3FUd3dTcVBrQU5BTlFFRHRVRVdUYkJWNndtQzlzZ0RRSUIrQXAzYTREdU5RYmZyZ0lMdmFzUHUKMVlmZEExc2cyNC8vaUFCbTQzcjFWcHhvTC9OcWgydy8zaDIwNHkyVTMrZ1lKOW9wdmkwbC9yb0tSTDhRWmhiNW1SbUJGc29KUU56NgpJa1EvRTlVdUM5UUxBaDNDVUtQY3o2b0lOUXVDTFZLa1ZRVWJVQVRiS3M5WVJKZjZhQjg3MkpKNytSM3pHWjF6OFExekNmV1BZbHNmCnhvZ21VcTYzSjhOMHBZZytTc0JBQmNyR0R4aXREcjdWSEhLL09maStKbkpHRS81QUhYbS83dlNEcHBBNzlmQ3hLdVJvVmRpRUptQ3EKSnZTKzlzeGs3VG1yMHQvTU8ya2pmMmpFYUVkb2NtTjY1M1RCM0FwcGZTUHY0VjdhL0Q1NmFZNjRzTVJabldQTnoxUTIzOU5lR1pHZwpqSUFweTRPN0szN2JUL1hUYVUvcW1XZkFpb0hpcGFjRzlGVWM2eW9KYitmK3JwOEIyQ0prdE1xM24zdXNnd2J1QjRSZTZOZkY4KzkrCnprQWVYNWluUERTc1gzeXluK1ZsRXFQNnE5d2xLM2dlNVAzZFlHVytJWi9YVlZLdEtHcGdGN2NKcVdvMnNaNkhkelVKNzlwRjg5T3kKbmNXYTlUblY4b3hxYmFGdWViNTZmYVZtNDdGaWRhNStka084TmlkSW5oSmUyaDg0dTluMSttN25tNDgwdVhjcWZVWWw4REhGeVdsRgpvRkdKR3BVSE9odGc0NDBSRGhtNDBPZUhXb1dQcFp0YlpVK1hhV3ZMMWN1emRWdkw3ZXNMTGJ0TExkdXo2djNsK3EwbDljcHk3Yk50CjV0b3F2Mk5abXJCV0hiYmVHTDdTZm5GRmQzNnQ4ZXh5K3p1cnhqZVdleU5ucXo2WllkWXNNallXdWY4enh6bGFGajFiWUcxdDhUZlgKNVd2cnNzMTEvdE01MGM1YUF3UkEzOGJsUUN0cjdKMk5zcDB0NHQ0MmRtOEhEWmE3VzZWdXY1VjBaMTI4czhIYldWSHZMRGZzTERlQgpsZTFWQ2FDZjNRM2gzb1o4YjYwUzBtcTFld1VDb1AwTnlmNm02TWttODhrbS9ja1c5V2lIZkxSYmZMUkw5T2h3VTNxd0RpUS9XRmMrCjJhaCtzcUUrMnRROFdkZnVybFd1YlhObWR2QlRtemNCcGt5dUowNHYzcGg0OU5uNDNXdkRkNjQ0N241dWYvU0ZmZW1LWXpQS3ZoOXQKMjQ5MjdNZTVEaE1zV3pIRGg4bWpCNm5UaDVsald5bTNkeUg2bWRpNUNXazNaWFFqd2JrUTVaajUzUEh3czhGSFYyeVByenFYYjR4cwpKb3p2SlkwZlFobzdUSnJZUzU4NnlMejFKTXVqMjBmWnQ0OHlnUjRjcHVydlVRcVU5WmNKemt0SkEyVzFUZU1iT2V0ZjNaaCtFdk53Ci92UDdtOWRIRDI0OE9JaVpQYnIyNWRQNGhYM3M2bmJ5NEd5dXlscW1IMmRxNjI1U0tUZHdSZEZZSXVZdkJVSC9WUURDSFV2NEl3RDkKS0xyeXJ3RlF2TzdmNGpXd0dQTnZyL2E4Z2VmV0N3Z2ROYVFybGdyWVdJWHZHQWZtNU1KdERKL3hzaWhqZWF1S3Jhc1NlUURvdXd3RQpBS2hGVE5NS2FDOEF5SjBJQmdFUWhVTDhjd0FxS0lNQTZIMDg4WmNKb3IrTDFmNDBvZkxINlpYL3ltNUNXanBDVm50Q2x1cURselJCCjg5VkJjMVZoYytxSWhjYlF1ZGFnbVJia1RGM2c0NGFRUnkzaFg3WWpSNXYvclVQMWkzclZ5YzZPWXh6dEx6TXJZY25kUWFtbU1QUWcKTXI4N0tMOC9QR3NBQUZCNDd2Y0I2TWN4U2lqR0tFNzJqL0Z5b0g5S1VBRDlKRkVKS1ZuMXM1VEtmODJzK1ZWMjFTOXk1RDh2a0IxagpOQVJVOWlHY2RZRlQ5V2NmTmIxK3UvN05QdEVIamVYUkxlVGtibEtpaHBJdnpDS1Z4WmVRMGtpbHVaU3lMQ29sSFZET242T1BSMlJLCmRrbFpGb21TVTFTZVUwakp4cGZuNHR4S0U2YmtTdEt4cXZ3Q0xTNnpoWkRjaVVzMDRGSjZjZWw2WElZQm45bExBRXdEcVpma1ZrbDIKUCtHNWpQanZDSnR1UXVmMDRUTDdpcUl0bExkR21aSFRndkJiMHRPVHlyUFR5cmVHUlZmTXRCUjlXWWFPRksvQlhaZWpyMHR3WjlxWgpvVjMwd0c0SzNGQiswbFIrMGdpbTdoeWZYcDYzb2VLeXFpU2RVWmhId2VESjZBSnlmbFpaWGk0SkFCQW1ENGRPS01yNVVGNXkwU1FOCk5ndk90SkN1MUJQQjZCemJESEZQWWpzK3FZT1FyQ3RNN3NRRGZkNUwrZERFZU1YQ0M3T0xFQTRSMGk0S2N3cFBEd2t1OVFsTzlYQUQKZEN6ZmRzaTREZ1lYN3pheWQydXhsNDRLNk9ka2V3WFlDRzNYc2IwNldDZmJXTDQ2TUNoRGZoVW8zN1pYaE9nVGV3UTNTaEFtS1dwUQppaGlRZ1BmdHNYNjJsNFVISDVMQ2h4V0JMbG00VXdZQUNPa1VJaTJDb0Y1dVpBY3JySTN4dXJ6MFNoa2hvWWdRVFMxK2gwTThJeWs2Clgxc2VhSkFFR0tWZ3lvMjB5UUhOd0cwaWxGVUVKcE13dTh6ZkpvTmJvR3g4OEVOQVNMTWNDSEtCV1NUK2RnbkNLVU82NUNpbkhPcXkKWUplODlDNkgrQzZYOEI0UC83NEE4NkVJKzVHMDRGTUY1bk1WN290SzNKVnE3TFZhN0hXMWgzN3lielRrUWFySEFNVTBZUDhJUUc3dQplVjVYNE04VUR3RHpXLzFwMVlFZjNwN1lnRTVvZ0dBb3FqNFgvRkNTaHBBZ3gwYXhzMk9wdWUvTHNCSHRKV0M0UmZSUWtUcW9OT0lKClBkOVREL3BQQTREY2hwOE90bHNjV0R2VUtBUFZ4Z2hxclFodG8zNmdacnl2b2IxWFYzNjV2dXdUVFRFVS9LUWhmdHhRZktvSEErK3UKZ01LUU83aElIZE8zbTMreWk0dnNaWHNLSHNDTWJJU1JoZEpYQk92S3c3cXBFWDJNdC90b0djNEt5WGhoNjFoYSsyaThZaXdGYmMvNAp5SkFhMUZzRTdrNXdveUM3dUFGbVVhU3JNbmhBY2FLZUNkT1FmVFhrbDZ1TGY2VWkvcllXc0RNUFNoSHNVeUlIVkVDb3dVcWdBRXNWClVLQzFHaWpJdlVUWkFBWlZJUnlWU0dkVndJZzZjRndiT3QwQWVBTFFqOXZ3b3c2NVd4czBVWWwwU1ZFT0lYeVE0OTFIOCttaGVlbksKVDdTV2VyV1UrUUpPYjZPZmJLVkJCS0FYUUo1QkF3OWhGdm9idVhBejA4L0k5REVBY2QxeCs1QUNMTElnYzIxNGYyMmt1UnBwcnp6cAprSWZiT1JuRDJOcmJjYzJMV2EyUGs0RmFacEo3SHNkMTN2dTA4dGExQWxzME9HbW9QazZRVFJZeVhCMEtEbStxUHV4MmZlUzlwc0I3ClRhRVBtcURFdER1MUFSTkt4S2dzY0xJeTVJN2E5MDV6OE8yNndGRnBtSmx6ZWtCeTBzbyswMXRRMHBabUdrMmJtUkVjek5idlA1Q3QKTDFIbmRvaUxhOFVIYy9TdWVRMWhXbmJlSllUWkpXRFNFRzZTb1ByNEwvZHcvTG9aZnhSVTR2SzV2THE1c0g0QjNDTDJOckovMDE3NgpjbHM1MUUrM25RM3JFb0laQ2F4SEFNVkU2NFcrVUZrZ0FRenFsUUhKcjA4RTVTLzBDWUNRZlVJZ2VKZjJIUjJacThWM2l4bTFiR296CkQvdDRnTCs0MFBUZjk1V3JhN1ViczlXN3N3MkxDdzBMQzAxemkwMmJNMDM3WDdZdEx0ZXVyY2hYbHJUME1jR2JYMWE5OGFUL3pGd2oKY2xJWjRGS0ZEelZCTVZoanBhRlQ0b2lodXRPdUt2OHBnZitZNUQxSHBmcStjR3VOOVd5RmZyQlZzYnJCMjU5WGI2NjBySzdxVnBlYQp0NWRyOTllcnZscXAvY044WGU5NlZlSkIxWVZsemR2em5hZldPNE0zV2w5ZjZ6NDczeEd5MC9qR1F2L1pMeHVqSDlJbVZ6ai9zeUo3CnRpWlkzdVB1YndyMk50bTdxOEtqdGVvbmE4cGRBRHByL04yVm1zVmQyZUV5bEpiMWJGbTd1aVg5dzVKd2J3MkFrWEpyajd1NXhkcmEKWk8xc3NIYldtUUJsRGpaVW0wdnk1VlhsOW5yVDNtclR6cEoyZlltOWZjQjh2STBmbjh0Y3V5czhPR2hhM3VRZGJzbWVMTXFPZGlyWApsK1ZIVzFXN0czWDd1K0s5RGU3VEEvTCtEdUZ3QndBVDgyQ3o1bWhGOEhSVEJzaHBjN05xYzZ0dVo2TnhiNlh4MlVyTDRoWm5jWk44CmJ6UFR1WDlqNkRCcWVPbWE4OEVOeTkxNDQ5MlA5Qk5mMVBZbXRkLytxSC9oVTlmZVZkZjJEY0E2bzF0cHpvTTQ2OU5rNjBHMmN5dHAKNmttQ2ZTdHFZRGNlOEkxdFA4Yjg3UHJnMDJ2RCt6RWo2N0Y5RHovcG1mbEU3VXFwdEh3d3VIaGxlRDBSNk03VDVPbUQxRnQ3bVpONwpPYmNQczBlZkpsajJpU05mSmQvYnk1bzV6SnVDTERwWmMwL1I4LytkcXAybXZZVzFuQzNvdVZhaGt3N1NieDE5QmlDczBoSGI4T2p6CndhZnZEeDkrT3Z0TjBzTXQ3TDNEZ3NkZjVjOS9IYi93SHpHejMyQzEvV2xadUU5SUpWbDRZalNwTklsRWhxQUhqTFZGeEJRaU1iRzAKTkpWTVNvUCtkS2VEdVFFb0tiOHdNYmNRYXRoOEthdjRWL0hTZjNCWHN2bGZOMVQvSzdvYWl2eU5ydjJuS08wdm9wdC9GZDMrT3cvOQp4SGNEK1Yxdjk0c2UrRTFTNjgvanVsSDVXbzZxVENmSEZuV1dCSTdSVG82eGtBNWVtSlhyTTBhTGNKVVZ0VElzQ3BGUnhqTEtPTDFTClZwZUUyU0hoNnFTQ05nbXZRY1NwbE5MVlBHb3RneUtsbHdob0pDR0Z4S1lVbFZFTG9RSXN4WVFzV21FYUhlOXVBWmFmVXBhSkxjMTkKRXkzNVZZendwUnZWTDZVcmZxMlFoMy9aR0xiWmhGcHBESjZyQzVtdkQxMW9BTXVnMmZwQXdEMXVCYzlwUXVlYlFoNDJ3cWUxL2xPYQpvSWNONFV0TmtXdU54L1R0TCtkVitkOW9SV1VOaG1kYXd6UHRBSUJPNDlxRDBLWklyUDRDcHVOU1h0dXByRlpFWnNPeGZOVXY4Y0lUCmFOWExPTVV4b3V3WVdYS1NLdkdqU1ZCMFNRaERkbzdGUHNzWFJFakVnVlV5VkV0bGdLMHU5SDVyMkhLbjMxWmp3SnJtOUZ6VjIvZkUKbjAyd1loMmxOd2VMTWt4NHZLWWdWNVNXVFl2RFVCS0k1YW5GbExTaThrd1NQWWRhbGxOT3lTa3JkNHVhVzFxUlM2Ym5sVER5aU96MApRbTRHbnArSkZXZGo1TG5veXZ5OGFuUmViVUZtSndZb3F3dWIxWVBMTVJCeWV3dHorNGg1L1VVNUpzSmYxNThDRUQ2N253aW9LTjFNCmlCOHMvTVJaK3VvWUkrU1dHSDVYRVRrdURaK1NuSmtTL1g1SUVHTmdwcXRMMC9pWXBQTE1IR3IyRlZWQlpBL3hoTFhrK0dDWnI1SGgKWitCNEc3aUFnUkRkN0loV3hodGE2aWZTNGxnbU5vT0NCc3lhU2sxTDRHWWxjTkVmTk5IT21FU2hQZXl6ZXNwbmJVVng3WVFrUTNHUwpvVENoRzMxVGowM3BKVVQzRTc0d0ZVWTRSYWVHSktlYzRraXJLSHhRRkdZUmg5bWtvVllKU3M5SDl2Q2dmZ3dka0lmaFpCc0ZEREdRCjJzdU90NVg5cnBYOGNnc0ZJcUZXbWxjVDFhZUY0ZHZDZ3Z3YmJXd3cva0t4SmQxUVZnclNJRUFaZWZBQm9lK0FDRXFZTndoUHRqSk8KdHRNUmd5S1VTNElha2lKSFpBSERNckFPQmEzMmNRTDByRlBOOU5jcUtaOHdpNk5JK0NneTRUS3Y1RUlkTGJTSEF4dmtBK2hCT2lSdwpoeFFJWUEzY0xnZjBnN1NJd2N2ZmYxRGtaeEhCckI2L21CZ29jRWdaTUt4RURNdmdJNUJRUTdJQXB5VFlJWG5wUFRiZUEwRHZjakh2Cjh0RHY4ZEVmQ05FZmlnbytrV01CQ1gybXhIeFJoYmxhZzdsV1czQmRVeENsUmJ2dFFIOWtvQmUxQkw2VFRlZm1vUjhDbmIrazd3RlEKWW1NQjJBTVVuOVZRa0tERnh3SHk1V1RHVWJJK0ZoWmNhaUNHZFpVRzlVQzFvZUU2dGp2ODJWMGgrb1VkU01jQjlQTmRBQUlDNHgreQpuUkhZQmdIUXA4MzRLeTNZYTAwNVVZMXBjYTNwbWZwOHpBQ2VZQ0YrYkNWSEdPblFRTmpOUW5ReC9IcjRKOEJ1dTJoZ2ZQWHBaZmlZCjJINkFnWHBvcVBieTRDNTZXRDhyVUYvMmVuOXAvQUNoMkpJdEdzcXV2b1dXVGVZeVhEY1RiWVIzOWRoVDNaUVFpd2hnQVZTUXBwVUYKMDlDOWEwbmV0ZVNUYXZMSnVuSndaOEM3eFlGR0tPN0hnejR2Nk9kN0FBVG9CMlZ6MDg5UVRlQ29KbkJjRXp4WkJ3QWkrTFltNkU1TgowTzNxb0NuSWtlUm5FOElHdVA0V1BxQmc1SUFBWm1DNjcxR3FienZOdXgwS21RTDNIeFFLQTZUbnd2dDRxRUdodjRrQjYyZDQ5ZEM5CjlSei9mckZIQU14RDdOd3dCeWZVeUkzczVudzBRTVpPcHl0bTBycm1pWFdQbzlvV29uU3J5WldQYnlvZTU4aG5zK2xmb3BPRzBlRlcKU1lSTEhqRmFIVDZoQ1FISE5sa1hlcXN1N0xZMjZFRmppRHNoSHpXdUFMYzFvTFRncVZxZ2dEdHQ1NmNiL1NmRW9SWk9nSkVKR3lqSgpkWlIzamRObkZoVXJDK3JITTlVUFp5V0xTK0xaT1lIdVByZjBQanZkd243WHhBNDJDNUZXVlloRkZURW9DN1pJL2F4Uy94NG1FS3lICkFTVUdkdE45OVF3b09NekE5RGJ3SWZ1cVhRWWVEMTh6MTYrZkIrL2hnWWZRdDVNSEFaRGJLZ3ZPZzU5ZTRKRUhnRHpKQzM4Q1FBWjUKYUxmZ0k2TUExMHB0cjZQY05uSVdaNVZMQytMYmE2emhKZHIrb25SL1VUNi9LTjJjcjFsYjBpN1BhYmFXZENzTDFRdkw0dldOdXBZSAp0ZTh0MW51dE5JZTZha0ljOVdHM2F2M0hLRUZqbklqUlZwU3pEalZhR3pTbUN4N3RpYklyZXg1WHJhM1ZIZTVSai9ZcWRtWWJucTV5CkQ2Q1ltOGF0dWFaL1g2cDd1cWFhMmxJb05tcHhhNjNKajlTdnJOWkZMRGVmbTI4N3ZkbDVacVg1MWNmMXIrOTBuMTd2Zk9PZWhQS0EKTWI0cDJ0aVZiYTdKdGxjRWdEbjJWK2o3TzR5OWJmYlRWZUhUTmZiMlp0bjJCdTNaZXVYaUJ1UFpxblIzcmZMSmltcDlXL0wxa21CMwpSYks3V2IyNXl0N2ZraDF1MXV5dmFmZFg2bmFXYTdlWFZMdXJ5cDNsbHYzbHh0MDUxZE1GOVg5c05qN1pVRC84a3VJY3oxcGR4U3h1CmkxWjNOVSsybWc4WDFZZGJ5aWU3aW9PMXFpZmJpcDFGOWNFYUM5cTQwUFRObm1aM29YbHZRM2k0cjRTTVNRc3RoNnU2ZzNYTnpycDQKZDBOOHVGY0Z0TDh0bk5zdWNlM2R0QnhFdS9hdXVIWS9NMjU5MkR2L1VjZmR6MlQ5c2JwSG53MXNSdzBlWERIdlhuRWRKVHFPRXUwSApzYzdENjBOUHJ6bjJrZ3d6R1JybjlmNkhjYU1ITjBhT011ejcrYmFkVE1kT0lxQWx4M3FpY3lOWE5wQ2ptYnB1M1BqY2NSanYyczl5CjdhYzU5bEpHRG04NnZvcUhQR2hQYm93L1M3MzFoNFI3MjRWM2Q3SW5qbUx1cktYV21Fc3pGTHdiMHFvMzg0ZmV5QnE2bU9rNm5lRXEKVlBOVW8ybTZSMWNkYTlmdVBQdGlhajltY2pmdDlsSE85R0hTdmIyQ2gzdm9ld2VKMDd0WkE3ZEkwc3JNSXVJSFpFb1NtWkpTUkVvaApFSk5KeFRmSkpla2xKYWtrVXRKZkI2Qi9UUUFBVlBVQ2dINGNWZWtCb0o5SE5RRUErdTJOcmhjQTlPdkVqaE0zVEQ2eDdjZWlPazhRCjZyT2JHUTFxb2tSYmN0NVY0VFBPOUIzbUJ6a0ZYaE5NMzdIeUR3WVk2QjRCcVpNcHIyZDF5dG1kRW1hTEhGS3psTjRnb3FvbGpFcCsKdVl4VklxR1hTR2xrVVFXSlZrNHNwT0xTUlpUUHV2bFJPbTV1QmFFSWwxZFloa0dYNTJkVGNzL25jSCtXVlA1UEpVcWZwdmFJeWZhSQo1VWJFWEhYUWJBTUFvQmNLZXF3TmVLUUY5T09wOGhYNnVBNHdVUGhpNjZtRmxndXo5YS9jcTN4dFNoeHNyd3VXcWw2aDE3N0xxL2xRCldQV1JwTzZ5VFB1cFFuV2xXaE5kcFkxVmFhOVZWWCtzbGw2dUUzeXM0VjFSOHo5dnJmaWlqWHE5cmZ4R0J6VzJreHJYUTRzMTBHTjcKR1IvYkJlOE55MTZiVkYyNG83N3dVSHR1VVJPK3BrSnRTRjY5TFh4N2l2L2hHUE82cXlMSlFzb3dFWEw3MEFXR3ZId2ROcWMrTDB1VgpYcURJSWloeUNZcDhuS0lBcDhJUUt2UHhWZm1FYWpTaHRnQ3Z4dUMxV0Z3OURnamZoTWMxNDdFdGhJTDJRclNPbU45VmxOdFRuS2NuCjVmY1hQcGVKNkJIYVhKUUhORUQ4UWVXYUMvOWNnSWV5ak1Rc0l3R1FXWW9aSDIwbGZlU2l2ajdDT1Q4dVBEMHBqNXlTUms1THprMksKWG5keFArNm14VlFYSmZNeG1jejhxMHJzaFk1Q3VKSGtaUzZEbVpoZ051dlhEeWEzVEQ4ZEk2Q0RIdDVHUDlkSWVhV08vSmFhOUw2MgpOS2FtT0thSmt0RE0rTkFrUFcyVEIvZXd6aG5Lby9YbE4zVzRORDBoMVVCSTBlTlQ5VVh4aHRKUCswcmZOVlBEbk1KUUd6OWtrQjlxCjVvV2FCU0VEb2tDekFHSGtBdnBCZEhPL0MwQW4yOG84T3RGYTluSXorVGdBb1BhS2s4M1VFdzBVNzRZSzd4WW1rQzlrQ25KbmJmZEEKNWRtZzkyby9CNnJGYklIQ2s4R2MzTHNGQWlDb1JyTmQ2TytXbjAwQUJqSzRHYkkrSVBWTWVDODdySTF4VVUxOVcwRjVXMVYrc1pFUgozTWZ6dDR2OHJVSzRRNHh3UWdEa2I0ZVdmZzZwcncycTlPTTM0TTd6c2dnQkFJR04va055eElnU0NlaG5TT0doSCtTSVBNQWxDN1NMCmd5ekNsMzdQd1FNQkJnTExkN2hZb04vemNFQWZDTEVmaXJDWHhiaVBKRmdBUTU4cHNSNmIwSFUxeGsxQ21PaTZBamNKUVI2eDU4WWgKZ0N6UFNlaDV3SkM3b3ZiM2NlY0g5VWNBYW9TcVQ4YTN1QjFxalppRU9teWNNdjhhTHlPV21ubVZsL3R1SmZaOFMzRm9kMWxnRHgxSwplRzd6bUg4Z0FIS2pqMGNRQUlFVmJ4M2IydzFBWVB4RHRMTUMyMmhCclJXdk4rQSthU0lBdElwdnlFcnN5TW94WVlxdGVPb0FJY2FJCnZXaWtCTHBrSWVEVUdIbitlaWpIM2w5UGcyb245cko4VEJ6ZmZvaUg0TzNVZ0M1R3NKR0g3T2NFOWJJaTllWHZHSXBTQnZFVkk1aXEKOFl5R3NVVEZHRHJMa3ZmbUlEbHNDTExDbld5aWVWZVh3bXZMWDY0dVBxNHU4WUU4bDl3QXZSalpLME1aRlVFRHorbm5ld3dFWVpCNwpDVVo5QUVBb1YzWFFpRHBvSE9wdkNoUXlyUVZnRVRCZENWbFdocVdBZm56TS9KUDlISVJWRWpKY0dlU1FnMUVjaXNudlpQbDNjNkdNCk9RTWZxb2pUdzBjWjNXVVlESnpBUVREZVYvanFLN3k2S255NjNiMUIzUGJKQUxNazJGNFJaT0svMmlmT2QvQ2E3bEJ0RDdDbSt6bTYKUi9udGkwbmRDd2xOQzVubzRjd2JqcUs0U2U2MVNjbWJEdW5wOGFwVDQ5VVJrK3JRS2EyYnpPcEM3bWhENzlZRjNhc0ZmQVlmQWZUTgpoVHRFSWVPVjRBdUJZK3JnOGFZekx0WExkbnJnSUExcEpyM2hJSFpPQ2g0OWxpL2ViNWg1VkRPN3BGeFpyWHE0ckttL1h4VTdKQXExCmNVOWJwVUZteUl3Wk1GZ0pWZ0pOSXNENGZnNWxnSW1QN09mNmdVc0RHSzZiQmtqT3g4Q0U5YkhoRmluU29VRFlvUnBJU0xzNHdDWkcKR2tYdXEva25BbWZESTQ4ZHlDTVBBQUVoK29YSUFZbXZTWWtZclg5MWdDT3gwWmZucGJzN3lyc0xiUHlYZE81NDJlSmQxZHA5K2VLaQo0c2xzOWQ2OFpuVzVZWFd0YVhGRnRiTWtYMTF2RU15cEx6eXFPVEZSQTk3eXAyMUs1TFRpNUdSRndEQS96TklJZDZvREpyV0I5bzZNCkFkSFlsdncvdDFYN3M2ek5OY3JCcG5wL3FYZDd0Zmxnb1hWcnUvNW91L1pvb2RJNFZ4bTNVUlcrVlhONlNSdTJhZ0R6Mmd2clhhZFcKV3lQVzJsL1o3TG13MUJ5K29qMDlMWkRlNDYrdlN2OEFZR0pKdGJOUmM3QmY5YzJxOE90TjNzNW1CZEN6ZGZiWFc4ejlQZkxlTnYzWgpxdnhnUi9Cc1JiaS9KdGxkazI1c0s1OHRxUTdYYS9lMkcvYlhaSHVyOHQzbFNvQXZ1NHNRQTRIdGgrdFZUNWJhbnE3Vjc2K3FuaHhLCmx2YVkzYmZpdGJkaWRHdlpDMXRROXZqRDNhSzFWY2F6RGZuT2ttSi9VN1cvd3Q5ZHJUdFlnL2IyOVdiVDBYTDc0VXJyMGJwaGI2MSsKYlZXenM5cjJaS1huNlVMcjA2WHFvMDNoMWpacmRxVmtZajNsMW5ycTVIYWE3ZURtd0Y3UzZIYlN4RWE4Y3ozS3RoK3JYNGlyZHFRUApydDkwN3FjTzdrU1pkcU9NK3pkNmo2NVlkcUJFc01rbjBjNkRlUE5xYnN0UVNvODlzMjhwZW5BbGZuQSt6cm9TWjltS3NlekVEdTJuCm1lY1RxcHlaeHAxTTg5TnJ4cVBybG1lcGxxTVV5OU5ZeTlONDE5T004ZTI4OGQyMDRhUHNvY1BVcWUzOHU0ZnhkLzhqWWZhLzhheCsKVlVSV2YzRE93UGtjeTJ0NTFyUDVJeEhGSStsYS9rMWxpZFJKdG14Z2gvZWliajJOdS8wMGZlem8wenRIMk9uZGpGdGJ1ZFBiK09uOQo3Sm12czI3UEZiYlc0ZkhFYUNJcG5rUjJSLzhRVXdBREFRQXFMazc4aXdDRVQ3NllWUUlBeUozdnJmcWJtTXEvaVlJQTZFZFJOZDhECm9HTlFyNG5PWDZUcWZoWGI1eDNUNFhWZDkwdUM5b3MyWGwxRGFhdVMvSzZEQ3B0a0hwL2dCUTRKNFNNY3IxRTZmSVFaUE1JUHY4UDkKek1rdDdPYUp0ZXhHSmFOYlF0TkI5Rk5TSjZ5b1pWTlVqQklaczVUSEtxbWdFOGtWZUZJRjRXTWRLL0J4NWU5SDVCZ2FrWWpQSTVSago4YVQ4ckpLY2NCejlKSXVGTU5aSFB0S0ZyelFHcnFnRFpqV25IN1VBeWdtWjFRYlBhTUFTS09pUkdxeUh6ZFdmblc4NHZReVpmTUtYCk5lZG1sZS9jRW4va29IM1dSN3JrRkY4eUs2NzBxZEo3S203MkUxTUhLSmttZXA2UlVXQWxZY3hVakltVE8wakxkQkN6WE9oOEp3NXYKSXhVNEN6QjJMTjZPeDlxTDhvZEswc2NwY2RQVTZMdjB0eGRrYnk1VVhWclVnbCtKV0cwNHRWSjc2ckg0ekFOV3ZJMmNiQzFKc3hUbgptQXZSSml6V1dJQXo1Z0ZsRGhabTl1T3k5Wmo4Yml5bW00RHVKdVIxRitiMEZPYjFZdkw3c0huOTJId2pMdCtFenhzZ0FPVVBGaFlNCkZBSGxEN3BsS2M2MXVtVW5GUXlBandyQkZ6ektzendYMmtMNFFUM2Z3M2ZrQWFOTWMyRTJaQm5DUWU0d015RnhzT1M2bGZLNW5SWTYKSlE2ZkVJZE5pb052U1lET0RBdmU3K05jYTJHazFKUkVOWmErb3lPSEdrcGhSb3FQaVFremduR0s1eTRVVEFmVGRUQmcrWUdwWUE4ZApDcGJ0WTExcW83N1NRMyt2aDN2Sm9Rd0UwOEpPMnFtdXNxZ2VTbG9QRnFLZlhtS3lnWnpZVi9GNUwrUDFmdGFaQVg2b1F4QTR3RVgxCnM0TDZ1UUNBZ2t3Q1JDOFBwbWNqdXZoUVAzSWR5dzFBRlM4WXlNdnRhampSV0hLaW9kU3JpWEt5cnV5NEJwcmtlelhUQWR4NHQ3c0IKcUljTHhpRFBleFVjRWhoTS9XMHlwRTBKWHI5Z2ZJU3lWWXc4MzBFdWtNOEF4OXZNOWpheVlQMHNlQzhMWVdENU9rVndxekM0bngrbQo1NFlaZUFFREFyRGx4S2pFUXo5QU1JY0lacGNBMEFGTFg5dnpTajkrRmhFVVZPU0FQR3ZJVVZYQWVCVjhUT1Uzb3ZENzF2eURja2hRCkZrR0FpZmZTR3h6Q205ekN0M25FNStJV3Zjc3Joc1Fsdk12RlFhNHhQdTVERWNBZy9NZFN3cWR5NHVlVkJlNXdhUXdnSVE4R3VaWC8KcDRXVlBFSFRubFlqMzJlZGJ3VlZtZnh6SlRWaGtscXdVQUZLS0o2NklLRUJFMXVOanBabXgvRnlvb1c1bnlvSzNtd2doSGVYSVhwcAppRzRtc3AwRnhlam9vTFA4WFFBQzBBTTJlcUt4dkwvMWdybU5RTFNRRnRxYkxmU3JUZFRveHFKcmJkam96b0wwemdKc0t6cW5OLzhkClkybjRoUHowM2Vyd1lSbVVTdGN2Z0VMdWV4amdZdmlhdVZEWmdFNkdieXZVblI3Y0V5RmQzS0Fld01XY0lEM3RvcUU0ZWdCVDVNb1YKakdkcUpuS0k0OFQzaDFtb1FiRjNCODlIUzRmVmtIMXFTYityS1FZM2gxODdHOVVqUlBWS29INVZmVEpJWmlXUXh4SDJKKzR3c0xRbwpFUlpsZ0wwcWNMZzJaRXdEVlF5YmNCZlBtS29ObnE3MjBBOWdZVTloYjhEVWdVNVY4RkFWeXFJQWc3cFBGeGZXQS9sZndaM25aK0Q1CmR2TUEzNFJZVklFRFV2OWVMc0J3WDBPNVR3LzF1d0FFbGdDQUVJT0NDd1lleGk3c2ZTQjROTU9hK1pJMk1WZGtYc3Zzbmsvcm1VdXAKVzhURURSRXVPZ1N2VERlZG0yZ0tIVzZJbUtnS242Z09tYXdOdXFYMVJDYUYzRkVEb2FZVWlGRUp6TWIyTWpGZ0E5eEFweUowMU4yegpiRmdiTWFKRU9kbkJsb3JBM29Kc0YvSDJYUkhVaHZOaCs4S01adUd4ZlBLaFJISkwrT2t3TDlRaUNEZEprRU0xOEVFRndpUU5NSXRRCmcwS2tSWWl3eWdLc3lpQ0xDR0htQStMeDFqT0F3RnNBSERuQW5jQ2h5cUJoRldUK0dlUWlIQ0p3b3lNRzNjVkFEWHp3bWdDUElsUS8KRXhMWEhSZ0VBZEFMQm5wQlAwRGdiUGdNOGtJSGxLZ2UwUWNqelBhN1pWL2VaOVRPQ0YrZDFsN1IwYW9VUmEzSzdJa0oxdDRqeGVGOApEWUNHcFJVRmdJK1ZoWnJXUmZXSDk2SEhMTmhXQTg3UHVSSDU4UkUyRlAwekpBOGJrWVJNYXM0NWxBbkQ5SHV6ekkwdHl2b2E4K0JRCnVMOGhmektuZnJhbFdGdXQzZHlzMlZ5ckdWK3VZaTdWL0g1RkU3RGFGTDdhOU1wcVhkQ080Y3hLNjZYVnhzaTE1c2kxbmpPYnZXRHkKSFRrdlp6OHMzMXlwL2EvVnh0Mk5qdjlZYS8rdmRlWDJpdURycFpwbnUvSzlaZHJSRm1kL203Kzd4VGpjTEh1MnhkMWZyVHhjbGo2WgpGenpiVlc3dHlMYTJxNDRXcTU2c2F6YzMxZisrcmp0YzFoeHVxSjVzS25kWGxmc3Jta093enpudDNyWm1kN05xYmJIcVlLZDJmYVZtCmVESi83RkhPNHRlNHBTM0t2Y05VL1VUaTlDM0t2Ky9WSGF4MEhHdzBmYjByM05tczI5MlM3VzFVSHUxS2R0ZDUyeXVWZTl1VmUxdXQKejVhN0RwY2E5MWRxbjYzVy81OGQzZE0xN2VhR2VHV1BzZkVIek1wQjlwMnRKRUE4cHNQWW9hTVU2MjZjNlVtU2JTZXA2M0ZzclN2TAp1WmsxdEo1dVg0bDE3Q1gxYmtTYjlwSXRXd2xEbXpjY3l3azk5NUltOW5DM2R3czdiVGNaelNuMHlsaTIvSXRXVzZKbEk4TzBuMkRiCnoyeTlIYXNadm00N1RBUjdOaC9GT3A2bE9JNlNMVWRYQnc2VEJnOWlSNS9HakQ2TkcvczZidnpnaTd0SHFTMFAwck9hcVFsSzNtV3EKK25TRzZWVE83VE5GdG9nQ2UwaTY2M3ExNEdZOTRYeE9FeXF1T1RLbk1xT2UzWHVVZU9lL3I5M2VUUjk5OXVyZGYvL2l6aE1vR21uOApNSDVzTzg0MGxpbmdKaGFWeEJHS1lvdExVc2xsbWNWRnFZQ0Ivcm9GS0FXWGZENkw5TXQ0bVFlQS92WUcxTnZoNzYrcm5nTlFkQ01FClFERzZsMk83UEFEMHU2VE9YOFVaZnBmWTlkdVk5cC9tYWo1UkNGcHFxUjNLMG8rZFZQOWJqT05UL0JDbk9Nek9RenBZY0FjYjVoSUUKVG9rQzcwb2piNHZmRythbjl2TW9MYXhLVlVVYnY3eUpVOTVJcDZpWlpVSnVHWnRlekNUalNwaEZPVldVMHlNQ3hGM3h1ejNNM0FwQwpYbWxCTGhtZGk4OUtLMGVmcVpaR0R0YWNXV29MWHFyMW5aSDdMYXFERmhwUHpUUUJBQUxRQXdUb3h3MUQ2dERIbXNqRmhyREYrak9yCjlXY1dhMDdkNWI0MlZuNTFoSkp1SzgzdEk3NWpwRjRZazM4eHJzTFlxSG11L0l5UkFveWprT2dxd1RyU01ZNThqSjJBc3hHd05reSsKUFR2SGxaYytqTVlPNHRBV1lwYWpOSEdFOGNXMDRKMzdrb3V6aWxQenF1RDVxdE9QTlJkbW1rOURZVVoxWis4b1B4emp4enZZdVk3QwpQSHNoMmxhSXR1SXdGaHphaXNtM1lYTHRtRXdiSnNlT3k3VVI4aXg0U1BhaUhCc3gwMHJBV3ZFZUZkZ2dvYitWNTJ2ZlJSbU1XOCt4Cnhnb0ovQXI0TGFCOEI3SEFXdmlEQWdmLzV3TGtsR1VoNUE0UzBBTTR0S2tnMzR6Tk5CTnVEaFlsV1VpbnB2aW5KZ1FSNDhMUUNVblEKdERSa1duRjZYSEZ4V1ByNWdPQlRFKytkZnVhcHZnby9VN25YQU4ybmp3WHZnbXI2Z2FtZ2J6ZmRyNGNONjJhNXgwU1dYeGNIMFFrMQo2b3JvWW9mWUpIQzdITm5Oak9ncy9ieXJMTGFmZEsyMytJcUJmTlZZOFlXUjgzWS9KOUxNQisvUFlLc0FaV0lqZTltQlJsNndXUmhvCkZNSU5YQ2lwdVpzUEZSOEdvMm9IMDZldHdydVY4bHd0cFY3TnBjZTFSUy9YRnAzUWtFNW95QUNBM0JZZ2hsY2JFM3dadkd4aGVpNnMKRHpMR1ErT1VrZTBOQU1ndUFhOXhNRUNmYUNyMzFrRUpOTDVtRHBDUENXcFE2dFBIaEFDb240MHdjcEIyS0E0SkNHRVR3dTFDTUplRwp1U0Q1RDBzZ3VTUitUaWg2MmtNL1BsYVJKOFlaY29vTktaRERTa0EvaUJFbGtOKzR5bTlNQ1FBSS9CTXdOL1kzY2hGOWJGUWY1NlZMCm9xSlhSY1d2QzR2ZkVCUy95Uzk2bTB0NmgxZnlMcmNFaWcxeWh3ZDVIR1FmQ0FvL0ZCS0FQcElXZkNLSDRvUThyakVQQmdGOTZ4ZUQKUEdMZmxwWE1kVFBRRHpqQ0Vsb2h4UGxCQWZyeGZPcEpLRXRvUU1kck1URTFCVEZWK1RHcXZDK3E4dDV1eEVYb1MrREdDcjllSnJpNgovemNBOU1JSUJCZ0kwVVcvMEZyK1NWTnBWRXZoMVk2ODY3ck1MSDF1YVQrTzVpSjlQbGdXNXVTSFR5c0JCa1VPS1UvWnhKR0dzZ0E5CkE5SFBCTmNHYXAvV3lmQnVwWUdMNnFjWEFKWUs2R0lpREd4RUx5T3d1L1JjZCtGSC9VUXc3Y0RiYzVOSHFhODdSVDQ2L2drMXk3K1cKNXFzcE82WXVPcVl0ODJsbElyc0ZjRGVYSVBva1VCVStRQjRtMlE4S05hQkFnb0hmb2d5RTh0NXJROGUxa0lOcFNnTlFJM2lpSm1CQwpoUVRYMGk2RURmRGdKZ0hTS0FweVZRYzdxcENEY2pDUVE3SGg3bUFYMzI2aGo0SHIyOE5COWt1Z2NndURTZ2h4K3ZuUW8vSWRBSG9lCm51WUdJSCtqL0pxbHZQa2U3YzRNZDNBWTB6NlcwRFdiMEQ0VDF6NmYyandUSzEzSXZUSkpqSndXUlh4WkczSzNNdmhlZGNSMFRlaDAKVGRBdE5VUS9kK3FEN21nOHBpbi9JVDZnSDU4QmhxK1I1Z3R1YUNNdndBb0lRQnN5b3ZFZDVvZjFBWTRrbmRaanF1NHdwbWZFZCs3Swo3YmQxdHg1Mm1CNnFpVk5RNDQ0SWl6aGlVQlp1bFlCL0NDWU5pSDQ2eXNKQnVTQ25MeFNvWkpUQkI0VHV6bllDUDdCaUVRYzQ1Q0hECmxhRmoxUUhEeXFCUkpVQWZQeXNYYVJlQUp3YzJ5SWV5THMxOGZ5TWZ3Sjl2RDh2RFFMQnVDSUE4ampCMzdRcWhYNy9BM3lqMEtCaWMKUUJmemJCOG5RQ2M2NGVESG1jbGlKeWQrcmdvMXFuNnpoOHRSa3JvMGhFZVBsRnVMMVp0ejFZdmpnb1ZiekwyTmxwckhWWmNmeUVOYwpzb0JCNk1JRjI2VUErMDVPY0dEVEFyaFRBQ1lyL2xacGpJMDJ2TVA4ejYzYTNlM0tsWU95clEzZTBYclZzNTJhMVpuS1ArelcvT2UyCnpMQlFHZk9vRWJuVWl0aHV1TGhaOS9aSzgyc0xPakRCdmJqYWVHcFJjM2ExN2V4YUR4aGdMdHhqWGJsTm5wbXZXTitWYkszWEhpNDEKYnowVVBGbWxBdERaWGE1Y1hXVjh0VXI3OTAzMjNjZWtCNHVrZzZXU3IxWlptK3VxcjFlcS9yQWxPOXpqakg1WnNMREVQbGlYZjdXcApXTjVnN3k2MDdLK3A5N2RrMjV2aXJUWGwza3JkMFVyejBWTFQya3piMFhiTDRXYnowVzdWN256YmsrWGFiOWFhdjFtUmJtNEs3bTRSCmEwM1hwdVp6TjU2VUxHeFRWZzVJSzZ2VXc3MzY5Y1g2Sit1Nmc0V1dwMnVOMyt4b0Q1YTBUMWRiL211bDl1djE1c1ZaN2ZSWXpmS2oKcm8yWjl2VkY5ZnFHY25veFoya0g5M0F2dzdvVnBkLzQxTFlkM2J0MDNiQ2RhTjFONkZxS1ZvMmxET3pHTzdlUzdLdFIxcDBiZ0ZwRwpWZ3VHTjVOZHU1OE56aVJJYWhMcU83TW5Wd205RHhNa2hreU9DbGRVbktHc3kzRnVaUGNmZk5TekZWMTNLNlh6UWJ6OTZYWHpZWXo5CjZJWnQrNFp0UGNHeTk3bjk2Nnord3h2MmIySU0yMW5PcjFMdmYzTjk3bitLU0JibVMxR3FYMXp0UWQzc1BKdlpjeTU3UEFJOUdwWTcKOVc1eE43RTdHeXdSQ2ZZVFdZYWZKdlQvNkpQVzMzUEk2cG4wOFcrdVdQWXp4cjVLSFQyNE1ib2Y3OXlMSGRxTG5kek9HUG95VXlURgprU2twK01LRTRwSTBja2s2SlBMTmtwTGt2d1JBeWJqVXMxbmtuOGNyZm5Tait1OWpxdjh1cHVwdkFRbGRWL3dvcXVxZm90VVFBTjFvCjlRQVFvQjhnci9pdWwyTU14NUo2L3kyKzVSOVRxeStUaERvUnJhMnk3THFySXVnMjg4UTBMOEFGWlIwaVhOeEFHeTk0VUJnK3JJRGYKcnZTN3B3cStKUXU1SlQ0OUpZb2FFSlRYY2NRcVJpMlBWc1V1NTNQTGhCU1NwSmlJa1plL1plR2liZ3ZlNnFMR0N2QXBwYms1cFpoOApVa0U4SGZOSmM4VXJrNDJBTTBLV3RjRnptcUNIZFFIemJjaUZ4b0FaZGNoTXZRZUFBUDJFeldtQkloYTBwNWJxQTFmcVErZXF6dDhWCnZqOVJjV080Tk10VmdyRVY0d2NMUHpjU3o0enkzM0JLMHdib2VYWjhoaE9UWThVRDZNbXg1UlhZMFRnYkxzZEdTcmFVeDFtcGlZNnkKZEJjcHgwVk9IYVZldmNYNS9aZmk4M09WWWN1YTRMWDZ3UFg2NEtXYXNLWGFzd3ZxVjJhcjM3c2p2anBHUzNlV2dQM2t1Z2g1VGtLKwpnK0JCRThCRE9ZN0NMR2RodnFVQVk4ZEJsaVFyRm9BT29DNjBFM3lLeDF1Skh1RnNrTERXUW8veUhGaTBIVktCRFF1T0N1OFdBVUNWCm8vQ0Z3QjRLWEVTUE1MYnZNNUFIbFFxc1JUOElRTGsySWtSUmcvaDhDeFlveTRwTHR4RlM3Y1RQUnJqdmpIUFBUZkJESjBRaEU3S1EKQ1VYUXRCeDVXMzVtVW5waFdIak93ZzQyUXNud0p3YnBnQmdRM2N3VFBiUVQ3cHAyTUc0Rjl2NEFBSUFBU1VSQlZEQXFkWEtncHVEdAp2S0FPUHJ4SENON3dnVG9HMGlqd0g1UUVkbk5DdWtvdmQ1ZC9NRUI3czQveVNtLzVHMGIyNjJidU9STXZ5TUwzY3dtUUppNUVIbjBBCmdQaUFmc0JVMzc4WHZEYWYyOHRobmR4dkFZanEzVklHME1lcm1lemRTRDVXUS9pTkVuZXNxaEFBRU9RQ2cydy9EQS85UU8vYlhxaGYKbURkQUh5UGIzOHoxSHVBQ1VvRU5pazkwMEFFQVFTbEhZRUxlendLQ2JBMTlUSjllQmpSazlMUDhUQnlVbVljQUwzQ2J3TmNwOUJzUwp3NGNrS0pjazBDV0ZqVWc4OGgrVytnMUJkaUFvM0Fmc0ZyeGpYUkxJenpXbVFJMHJ3Ukl4S2dkL0F2cUJEY3NoV3JJSXZIdVpZT0NECmRkRUE1NzEwdHBKeVhrVzVKQzk3VlZyNm1xRG9UUzd4SFE3eDkydzMvZndSZ0FxQjN1Y1RnTnl1TVk5QkNQZkNMd1pJS0VxREJmSkUKQ0gyTFFaQWQ2Qy9IQS8wSjl5UzBGbndyQUVCUVk3WTRkN3ZheEdaMFFoTTJ2Z0VIUlZ2WG82L1ZZejlvSlp6dElRWDJsL3YzUWRHdgpmOWtGQnZtQW9KNnB1dWNNNU9kbUlFUmJ4YW5HMGc4YlNOSE54TmkyZ3NUMmJMUytvR0tBUkJyRWZtRWtueHJnUkl6SklxYVVrWlBWCmI0d3AzN094d3Zyb0FVYTZPMktHNWRORkF3QUVtZlc2ZVZEY1NUZk5UODlBNnVrQjNkUmdYVVZFTysyY2p2bFdML0dWQVdaSW45aW4KaWU5VHcvU3RMVCtwTGYxTkhmbEVDOE8vVzREc2xiZ1RrUVFvb3hScGxya2pieVFlUWVYRHZ5TUlnd2JrU0p0N0hCMVZ1d0ZJQXdBbwpkRW9OUlQyREsrb1V3U3c4MzM0MnZFK0E2cGNFRENyZ1JvbVBudSt4L1hqYVhjRzYrSjRLNVVGV1ZhaWpHbENPbjRFSDcrTkJFVE05CkZOOGVxbmRuQmF5Ymcrd1RBeUVBQUJuRllPeS8zRW1UdTBTOWR5VVNGN3JFRWMrZVRwZE1aUEVuc3Vpak4vT25jVytNVUlPbjVPQTEKR2pRdERycXJDcnRWRzNxN051U09OdVFlWlA0Sm5LNUdqU3Znd3lKZks4ZmJ6QVQwNDJla3d3dzByeTRxZUF3Q3JYS0FMOGNjRlJFRwphbUFmNDBOTHVYYVN6dTVPdzNOajA3akZhSlB5NnUzYVlIQUhtNlFSbHJyUXdVcHZJd3ZWQTFXVkRCeWtvZXhNcEZNSXQwa0N6S0pnCk14VG1ockJLQVBjRURpbURSeXBEUnF1Q1JpdmRVZ1lOS3hBMnZ2OEFHNUtGQzNnZk1wYmFoTkNEWk9KQ1NST0c1MDFVb0tmNld3QUMKL09jQklMaTdmbWhFUDl0dmpPL3ZZSU1uRUdhUmhSb2s3dzZyVDgvVndnYUZyK25vYkhsWnZiaXdYazJza2VTcEpCaCtlYnF0bzBpMwoyZkxSWTZYUHFDVFlyb213YUlLZENzU0lFRFltOWhuaEk4ZTQ0Tmg4blBWbko4VHNoOEtsbWRZSHc5U3ZkbGpmck5QK2U2dHFmcm1CCjFWSVhUVkJJdE5vN3MrcnN4UnJZU21QUXN1N3Q1ZFlMcStxdzFmcUx5NzBYbDlzaTF0b2oxM1FYTjNyQVlYdzRLOExjTDh2dHVxSXgKcDY1dml2WTJSUUNrdnRwa2ZiUEQyRmdqYjJ5d1Y3ZEsvK3VRdGJ0QzZYT2wzNW9qUDl0aEhhMnlGaGNsczBObGgxdmM5ZDBTcmZYRAo2WHU0N1JYaDF4dWlqVDM2MGlwOTY0QzVzbHUyc0VIWjNsYzgyZFBzcjBtZXJMUC96M3JqMGJMMnpuanQwRlNoYlF5N2NZZy8yaE1jCnJYQ2U3Z3Z1YjdMVXc2bldyZHltY1hUZFpPYllINzZZMnI5NTd4RjlhNnYyWUx2KzJWYkRmKzQyZkxXaS9NT2E1bWkrZW1kTlByL1kKMzliYmwwOHNKNVhreVhnMzFhbzBwVFNWWG5OWjc4Z1luc2sxenljTkxONllmWkkvdlpMbVhMdzVzQjdmdm5wZFBCV3QyL25JK1NUVwpzUm5kdjN6RmRwUzAvWlQ0Y0xQOHdXN1J3Z0dydGJtTXljaFFkQ1JLQjY3WmxtT2REN0VLVFR4TCtsblBaRzdibHplcmJxZlJCcEtxCnBwUDcvajIyOTJuTTRGY2ZPWFkvbUR4S3NYNTlyVzBuYS9LYjVMYVY5QytFekE5a3pPZ2FMS2FkK1lGUTlyY0pWYjlLMUFlZ3pTRTUKL2VjSzdKR3BybGR5Qm0rcVM5T3FDSWkwZmxTdS9iZlozVC9QYVA5WlNzTS9SN0VqQ1dYb1BsSzBpS3k0aFJ2L2Y5TW12b2tmWEkreApycWIyM1U5WHRGM25DZEVBZ0FqRVJCSTV2WlNjUVNxK1NTS2xrTWtwZndtQUVuQTNUMmVXL2l4TzdnR2cveDFiRFFBSTZna2ZYUTBBCjZCYzNtZ0FBL1M2Mjgxc0EwaDFQNlBLSzdZYkY5aCtMYmY3N3hKcExPYUpHTmtXbklxZllLMDVQTWJ4dThmeEdoVjdqdk9PVEhEOFgKRDJVVklrY2xzRnR5MUMzbG1URTVtT0Q1MzFjRzNKVmZHcEZGV2ZpbGFxYWNSZVd6cU9WQ0trNUJ2OUxGQ1pvU2hZMnhVMlhGK2FUYwptSkxNYkhJQm1rWDZRTWNJZjFSNStuRmR3S0lXdFZnZk9kdDA5bUZiMkh3SEFDRDRZM1h3UTIzSW83clFHVzNZckNaaXJpNXlRUnU1Cm9JNllydzFZYWtCT0NjN2FTNkpjcFhralpNQWNlWU1ZdEswd3hVNDhaNjhJN21kZU5WYmsyMHR5N0xnc0d6N2Zpc3QybHVVNVNqSWMKeGRlY2xMZUdPVzhQQzJJZExLeU5jdVVXL2ZKZDltc1BSYWZtbENHTHRTR0xHckJ6OENDY1gyd0lYcXdPZWl4NjlSNHpacVFNN0JuagpLTWdkelFmMGczWVdZUnhGZUhzUjNrYkMya2s0UnluV1VVcXdFb2gySWhEZ0dKd1Y4cWtSSEFRZ2pJUDBRbGhueVF2bERlRTlRZzhSCkNvWUlXTmR6NFp4RXJKdCtDdXdFSU1Cd0huMlBlNzcxZitGL2tINGczNW05MEdOR0FzcXhGbWJaQ3RQdGhUY2RoYmxtQ3RTR2FKd2QKTXNVUG5CQUhqMHNCQmdWT1NmenZ5RkVUb2dBN3g5OU1oYkxBekRUSVh0SURSWE9lNktJREFBTEFBZE56L1hvZytlc0ZDQjNmVzhjRQowM1dvTkZvUFZCazRzTFA4WFFQampRSDI2ZDZLa0Y1YW1Ka1Rib1lpZmxBV25yK05BK0FEc2l6MGNWQjlmR1F2RkFvQ2hnd29STEliCktxZ0dKVmxEQUVUM2JpNkhIRjVONUpNdFpLK0drbVBWK044cGNNZHJpbndheXQwMkFqYmdNRWpkTFBDeTllbGpBZlR4QWpKei9BWTUKWGhidVNVQWhKc0ZKSGVOa005VkhSNGYxc2IzME5HOERIV3F3cW9lY2QyQWQvTDk4d2ZjQit0Z0YzaTZoMTdESWUwVHM2NFlleExBVQpyUGdNUC84VDVoTDcyb1ZBa0RzTThCQVlIRWRrZ0h1QVBBQUU1T2VTd2F4UVZLaVBnWG15by94NFM2bFhPd1d1Wjc1MHVvRnpwbzU1ClFjMjRwQ3AvVlVKNmswLzhQWmZ3UGdmM3d2YnpQYjNQSy81QVVBUVpoRVM0eTJMY3h6S01PMVlhNjhZZzNMZFpZd1V2eW16LzViRG8KL0JkS2FFVy9VQnhrSHdJWWhFNXFSU2RDbjZJaGkxRUxIa0tpRmt4MEcrNFRYZUdiWFNXUit2SUFBODNmOEVjQStsNFFORGo3QUlDOAozUURrcGVOOW13N0dodnFrdGpCZmJ5Ny90TGtNTUZCY0V6YTVCWjNXZ1VudVNQNVVYL0tLa1g5dVJCbDV1ekwwVnVVN2s4b29KL2VzCmlSRmlwQ0dOTkRDSysraW9FUG0yTXdBQWVYVXl3Zlh6N3FENWQ5S1IzY3lnTGs1Z0p6dEl4MFYyMDFEZEhIaUhBTmJFQm5mRFNXM0oKQ1MzRnE1SHRvK01DOUVIMFNkdzFpS0dHS1FnVEFKM245UE9EUWd6SVVIWVZaTm9aVlllTTFicWRYNXJneVNyVXFNTGZKWVpaK1Q0bQp0cWN1dHJzN0xCdmM2RjRkRE1pNTB3TjFnVURvUlVEK0poRlVjY0dxQkw4RkRodk1CbUI2dHJ1akNNV251L3k3QUFRM0NGSDlvcUErClFiQ2E4MTRqLzZhWmxtREl1ZGFhbHF6THo5UG5KSFVYeEJ1TFBoc1duaGxYUjk1dGpaeXNBUXFhYWdtZXJnNjVWUU1CMEIxdDBDMTEKd0lRU09TVHlkM0RkVGtPQTgzUjRIODNQUVBYdW9wenNvSnlFK3Brd2ZDMVV2NzV5bno3T3E2MkZCZTAzYnlnL1QyYW1mVkRQZVhzTQpDaDd5czBvRHpRclVnTUpMRDhpVml1cmpCbG80S0JzYmJ1VUJmZ29hVUFSYXBVSERJcWlNc2tzUk5Ld0tIcXNDQW5pQkdsRWhod0VNCktaRjJFVUFmV0QvTnQ2OENyRURKbkM2cG54MDgzZ0tBakxBQnlCSUw2K05Ebld2MFVNOVV1TnY4QXk2S2gzNmdBdXBROHp5K2o1TnoKYkloK1lwQVowaTlER1dSd3U4cC9WQmxnRTMzU3lwSUxhRnBXaVp4RHJLSVNHTFRDQWhhaHVKY1RQYWNObkpJaGJmSUFKOEM0NmxDYgpIREdwaE45bWdoRUkvS3VBb1Jya1dOTjVteUphemNVVnFoN2NsczdOcTh6R0ZtMVhYUktMSDVEVTY1VnVDYVByRWgvVXZUdGJjM2FwCjl1SnE4NlZGM2VuSGJlRXI3V2YzZTg2djZsRExiV2ZXRGFlWG0wSy81R1RlWThwc1JXalo1ZmptSzByeFZYdGYvdktoYk81T3llWjkKNnU0aGYzdWplR2VWdnJCWU9qeUdyOVVrOXZiam5FT0Z4dDY4VG0yT1FaMzk1WDNhMmdGSGFidldheXd3NjBtVGZXUzdDemN4ZzV1WQp6M0UrU2pSTkpUZ21NYk96L01NTnhkY2JnaWViWmFOanhTeFJCVm1Kb2F2TEp4YVpDNC9GMzJ6TEZ4OVc5RTRWbzJzcUVtV1NOekhhCmQ4amFZanRlUEpuSDZYbC9ZSkU0dFkyZmVFeDVNS2VZblZjZTdMY2ZQcFdSTll3c2dUcVczSE0xVzVLSFF4TXdsOHRJVndFVFVJdlQKRmF6Y3Vxb2NUV2R5aXlOdTlvQjRkemRqY09YS3dFUzI3blp5N1ZSdTczYmNyY1A4bGEvSzc2MFFKcFlJQU8vc3ZmVE9Kc0pBWDBtZAptc3lWNWxSVXg1WFY1RlIzeGpnZjRrZG5jWnFPQkxyb1pnYnBacDZDbE5kU0VsTmZYRFpOS1hhVXFCZVRyRTgvdHo1TjQ5K08rVUJjCklKdElZNCtuSGsrUS9rMmM0YVg0cHAvY3FQblg2NnJmeEZYL09sYnZrellNenphZXd3MmV6ekIvWE5xYzNWNzJGdFlXbHYwbEtyLzkKNVp1Nm44ZDJRZVdHYjJoK0V0WDYwNmlPZi9oQ0ZwREpLV2dnZDh5a0dCZS9hQm1PVTdTblNPcGlpYVRZb3BLRTRwSlVBRURra25SaQpZZkpmendLTHc2V2V5aWo5NXpqNTM5Mm8vWEZzelkvaWF2NHVwdG9EUUQrNW9mbkZqWVpmeDdUOUxyYmplRnduUUovakNXRFo4OXVFCnpoTngvVDR4VFQ5SnJBdElsMHBZWlIzS2tqd1Q5ZElrMC9zMkgrQzd6eGpueERqTGU0anA3V0JmSEtTZmM3SERKd1dvMitLQTI3TFEKVzByd2lndThwUXE2Si83TXpFZHJPUVZxZHBTTys4YWc4TlNRS0hSTS9MYWhQSitCd1JYbVJOUHpvcVhGVjN2NForNVdJbGMwd1k5VQp5T1U2MUVwenhFekQ2UWUxb2JNMVFYTlF0bGZRbDVyUW1mcXcyVG9BUU9GemFrQS9ZWStyZ3g0cTRGTktsSlYrMFZoNEEzQ0Fxd2h0CncrZmFDRGxEcEhRcjZiVmVLdHhBdjJ5akEwekp0MkhTWFVYWjl1SmtCK3VxaS9uT0VPdkNDUHZTTVBmOVlVNnNpNTdtcEx6NlFIYmgKb2VyVURCUlNIZnk0QWZLdnpWYWZtVkc5OHFqeDRqM1ZHNVBzcTBPbDJYWWl3VmFJQTc4eVVlSmhsRUpuRWRFQnFjaFpRblNWRUZ3bApoVTRTMGIzRU9Zb0J3WGkrQS9SSEU4NVFFUkRZaVVmNTN3cmdsSWVvUFBKWWlWNkF6bk9IbWdVQUVNa2p0S1VZNkVYRXp3K0NFVkN1CkRmTEg1VnVKZVlORk9aYmk3TUdpTEV0UnBxVUkwNGRMTlJkLzdLUmVHR09IVEFvQmtvWk1pc0lueElocEJXcENnbkR4WVlOMEwyTzUKbDdIaVpCL2pwSjRHM3VyZVhZeVQzZTQrMzczc0V3YVdSL0JPdms4M00xQkhCNjk2TUdhaDJsZ0JuUlZ2OWJIZjdXZWQ3YWtJN0tXRApDVjdBZ0NEUUxBQXJrSDlLRHdDSUJRQUlZZURDZTl3QXBCZUFlVFZVYzlqVGc3eUREUURJcDRVS0FNaW5pWEljQUZCejZYRTE4VVFWCjBiZSt6TDhWTXZ5QVlkZXZHd3hNQU1YWXZyMXUrakZ6VGc1QzhoMWtBd0E2QVJqSUJMa21mTnRwVU5VNlFHL2RWSjhlbW04M0RkWUYKTFNFQU1yRjlMVHlmRWFIdnFNam5PL0llRVFLNVZ5QUE4aDBXQXp6eXRrUDJkU2dmYUV6dVAvb244Z1ErZ3dremRGcDA3dENsNXRJVApBTjNheXNCdnZYU3FYWFNtVlhDdWdYMnhsdmE2Z3Z5T3FPaDlJZjR5SC85N0R0WVRBL1JkZ1MwZjhFcmY1NUVBQmtIV0lBRWV5cHlYCllBRUdmYWI4WThyWWRRMFVIKzNKay85dWd0ai9KUURGdHhVa3RoVWt0K1VEUVZ0YTBWQzVBaytERWgzdWlxN293ODZTUzUxbElUMDAKUUhCL0tRMytPd0RFQTNKSEFrRU1CQmtKZGRUUTlwTFgyb2lmdHhmR2RSRmk5TGpyK29Ka1ErYTFQdXJyQnNFRmh3d0FVTWh0NWV1agpvaXNteXNWQlpvUzVBdGxmRHRPWCszYVVnd3Z2QVNDVWpnL3Y0UG0xUWJzRjFBVjFhWVg4cnhXd0hqNnlXNGhvNThMQU4xdEtUamFWCitEYlFBNXNsZm5xb0FvMm4vWUovdjlnVGRPSm5GSC9YNnZPbkFDVDJBRkR3VUUzUVNMVUhnSUltMVNIam5yUXZnYzhnMTZ1ZkJhZ2YKeXZOcVo0TWxkR0J1djYvYlVBbWRFNFJlR09oVWhicXEvRTJTNHpyV1NmQ1JuZ3RGTWtIdFlNczhBQVRJeVdQK2daaXBWK0RYeEhpNQpqZVJqSUoweVZYeWdMNzdlbHBuUWtaVnFJRnczbG56aFpMNCtxZ2dZZ3p4eGtjT2lzNU5Wb2JkMWdINUNiMm1nckxSYjZzQ0phaWdvCjI4cUZTcFJDa1VrY1FQUitCaHJjVU9IWFUzNnN0ZmhmTkRoNFkxbXdrZm9iTTlYWHJuaTlnM3l0SWVaVDFiWE15b3JUTTQydmpkV2UKN3VhZzlCVkJ3d0traGVuZlRnN3ZaUG1heEg0MkFQZ0M1S0EwYktBNjFGemxEMllQUTB5a1N3NlZjeGhTQkF3ckFmb0VqRllHQWd3YQpyMGJZUkRBajI4L0lSSmdZY0NNZFBzanhoODRWejhmT0JZSlNES3hDOERBQXlvRVl5QURSRHlSM0ZOUno4NCs3VHBlWG85cmZSa002CjZTZjZ1S0ZHK1ZrVE03U1hGcXl2OURXVnhiU1VOd3VvOVV5Y2tvZHVaeFl3T0pub0x2S2xaZDNwSVJYQXh6QzdLc0FpOFhmS1lDT3EKWUVmVjhTRmEwQWd6M0NYeXMvTERKdXFRNm5hZnRMcGsybkJqdnp5VzNINDh2dlhsWENNeTNYUTIxWVVrOXA0WmFncGJyb3hZMFo1NQozSHpteStiSXVaYlRtNTJuMTNWbkh6ZWZYV2tFNitjWDJsQVBKY0VQcWZINjNFSmFkRG92TWFINmFoNDdsbFJ5bzFhWnptZDlMT1ovCjdEQ2wvZWQyNlhoL2JtM3JqYXJXYkNVdlR5c3ZWRFpnYXh2d09nbXBSVkxZMm9hMmpCRkxXNktySzdFcVBxbExYRmFsUU1zYnMyc04KS2YyM2MzdEdNMlNhRzFwMW5ybWRycThtTktvb0RmcFNRaDM5RXdYaFdEejNGRTU1OXFZeVUxQTNhaFpVbVRIdkZvbCtmVTMydTRTbQpmNGwyd1hQMDU3RU5VWFh2WW5RMDZiM01aQm85bTl3aGJ0WndGRjJOanJ5M3FQMGhlVjBYMFgyZm9oWDVSV2c4NXBNeVNoS2hGRnRHClM2c29UUkt3TThXcUhKRXFkbXlrK05FajBvTWx2RUdMYm01TmJ4b282YjkzYy94T3dkT055cVhiUWxOcnZybWp2SVZMYWVQZzYva1kKTnIySVg0ZW0xY2NXaS9HVU1uSVpKNkhKbE5RL25GM1RsSU9ocGhmVWxDZlhrLy8xcHN5dnNQS1gxL2hKbXVLbWxUVHRYRjU4RSttZgpQemVBamVrbUlpeTUvT2VKcWg5bFZ2MG9YZlgzTVRVL1QyZytudGJpblRJWWhPNk95Sm8razJYL1RDU1BhU0FGSnc5Rlp2UUZwSGI1CkpBMy9TMExUUHlhSWZwS28vWWQ0NVk5akd2K2Y5SnAvanFrTlRSQkdGV1l3NjY3WDljZnpGRWxFVWtaaGNReXBOS21JbEZKWWxGTGkKaHA3aTR1Uy80Z0tMdzZhRlo1Qy9DMEQvTzdibUg2TlZQNzVSQXdEb2x6R05BSUNPeGVsZUFCQXNwdWRucVowL1N6SENZcHArbmRqaQpsNlppc0VzYnFraUZCdXJyWTB6WUhWN0FLQy9ZeVE1MDBaQzJDaTlieGR0OVJUZDZ5cTZabVJIVFhKK0hrc0I3Q2dCQThEdFYwT0I2ClMzUjZBa3BvdU9RVUI0MUo0Sk9Ta0JIWjFRWlNGamtybDVnVkpjSy8xY2NLZVZ6bHQxeDc2azVWNUV3dGZFNERtNFA0NXV4aldjZ2oKWWNBREplVDcvbExqNlhjQkFDanNjVzNFZkczSWpBcHhWK3h2NFo5eGNEOXdWc1RaaXpMczJEd25JY2RSbEdZclN1Z3FlNk9OaGVyagp2ei9Pd1RnSzg4MzVxVTV5aG8xNnpjdys1eFQ1akNzRHhoU1hYZnliVG1iU09QMnorOHpJMmFxSTJkcUltYnF3eDAwaGM0M0JDK3JnClpWWGdLcFFuZFhtWW0yT2prdXhGeENGczNqQ21ZSWhRN0NMamhnaEFlQmNrbkJPUGRlRUxodkRvWVR4MnVCUXpYRm93UkM0WUpxR0gKaWd0Y3hWaG5NUUFkenpjOVg4WTdjRUE0T3hhSVlDTjVoTGNXUXhvczhzampJUFA0eXpEZkNtc3YrdjhGb085aFVMWU5tMlBGQS9ySgpIU2pLTTVOeVRjVWVaVnJ5MHdjSmNSYnloeTdtMlhGZXdKUUFOY2tQbXVDR2pDbER4dVFCUTBKL0s5UFBUSU9aNk41R3hna2owN3VMCkJSbFVkRFNBUVpDQjMrMmdnUFhRZmJxNEwrdHBxSzZLazUzbFlPd0RBQVJyS1R2VFJ2bXNoL1pxRnlYVXdFQ1orU2lUT01BSTVzQkMKQ0ZuNjJQQitEcUtYQnpkd0FmMUE0NEpCNk4zRDgrbHlxNU1EUmhiZmRnWVlCMzJieXowQUJQbkM2a2plV2pLaWhZYUVTdkd4ajNleApud09RZ2VreC8zZ1BRSVlmTHh2UDI4dzhhZVVlQnpCazRrSVpPVG9HMUxTZ2srcmRYZUdoSHc4QVFTNHdDdy91RUhrTkN3QUQrUStMCkVDTmlJRGlBSGpjR2VZMTVZRWpzUFNRNjZlQjcyZmgrVG5IQW1CSUNvSEVGZkVLSkdGZkN4NkNvWngrWEdJcWtoZ3hPdEdQMXhjY2IKU0Q1TlVOd1NGTUd0SzM4cHZKTjdxcDF6dnBIeHFwcjZkbVhKdTlMQzk4UlFDdGhmRWlDZUY3b3Nob3hBSG4wc0pYd2l3MzhxSjN5bQp4RitwSWx5cktZelNGRVpyaVI0TWdnb0NOZU04MFQ4ZWZac2o5djBZb08vNHdnQUdZYjZqZ3JpT2d0aE9USFFuQmpEUTIxM2s4RDZxCnY0bmgzOGZ5T01JQWhmaERkUXVodHZEZkRRbUNVS0NkRGVYanVRVnJZOERibUlHdGpQTk41WiswbE1WMmtHSjdNTmYwMlRGNjlQVSsKMHJ2R2luTTJBV1RldUtVK04xNzVxa3Qrd2NZTUc2aEFtc3I5ZThzQk9mbTJWa0J1TlQzZjNZZVY0L2F5UWVGbTRBRGNiZW81M2pvSQp2TUNmQUlTOTJpQ0JYNGRhdEhwS1FobkVTSGNFTkJDcVR4clFMM3ZSbE9xRlBGdjgrc0F3TEVOWUZRaUhDdTVTZWtiNm9HR1Z2MHNNClpReWFlYkFlaGs5Yk9iajVBR241dDlHT3Q5S2hXZ3RkZkQ5UC9GTTMyN2VQajdETEkwZXFrVWFCdDQ3dW82UDd0bE1CYmtOVEFSMzEKZUZlWmo0NEs3bUMvZGliRVBmMENRT3ZnVTM4MUNkbEk4VzhraGJhWHZtVmlYTzRwK2J3Rm5kcGQrTXFvOHR5STh0Um9WZVNFT215NgpMbVJhSFRoZEMyVzVUMm5ENzlSRjNOT2dwbVErSTN4dk94Y3lzZlJ4SWZveFFxbHpQZ1ozaFI0ZHphZUIvSElONFZnckVVdzdrSVp5Cm1MSHNySlg1WmhmNVRSM3BnM0ZoNUtnYU9TQUNUMTJ3V1JnR0ZXbGsrblpCbFNSOXJTeVlqUTIzOHhFMlQxYVhOTUFxRDdUS3dUa0IKQUJROHFnZ2NsaUFjdk9CeGFlaWtFbnBtK2psK2d6eXZBYnEzaVFvb0NtbGkrNWc0VURxQVZRQUVYc2V3QWE3ZklCOVFGSkN2R1hySQo0UVkrMGlBQ2NwdUNvRTUrL2lhcG41MkZkUEtoM0FRekZ6NGdSSmlGNEUyQk1IS0RCMWlwalZTRm9MQ1ZnMUdJQzdoY2JJbUcvZnFHCkxuSlVCU1pTS0pNUW5HM3dINEU0ek1vSFQyeVFrd3JlVmo1T2xyK2RjZEhXNU05cWZUbEQ1NWRsOEU3Uis2YVlmRzhhQS9KTWlMU08Kd01MV00rWXUrRnJONmRtZVUvTzY4TVdXc09VR29NakZobk5MVFJlV21pOHV1eUsyTmJBSC9ITWp6TXQxeEF6WjFRenlOU3cxTjZYbQpReXdqcXJBMEFWOFVWWWFOSWVTbG9ERnhjc1pOTmoycmpKM0dxYjFaTDB5dlZSUlZ0dVBhNVduZFlvYW1Oa2VxVHVXM1pLUTNKemJLCmNmMmM0aVlsdVY1SzZPYVcxY29MUkpvTWdTWmJMc1lwYUFRSkpVZE12WmxYa1J5RVZxWTFrc01xU0QrTmx2L3YrTnBmSk5lOGRGVVcKaEpmbjltUWZTNWYvWTBMVlQxUFV2MHFwUThib0VHVDFaWFZpY0k3K05NNFNsRFo0T3FmN1RMcnVDa1dmWGwxNFBuZmdEZlRRZS9tRwpLQnd2RTUrTnh5V1dsS1FTeTVOcGxCUVNQVVhJU1JXcWJ3cHEwdXRFbUNZTmVhQ2pWS2V1YUtqTFUzZG55enNMTkdxMHZaNDAzRUt0ClUrTGF4YVJHT2FWV1RKS0lNZFhTZklreWoxU0ZWakp3REc0S3M3eUFYSkZlSXNxV1ZCYlR5Vm5NeHF6UE5keC9TelA4SkYzMXo3bXEKbjZWci9qL2EzdnM3OGZQZTk4M1paOGNsdG1QSHlVNjI3VkZCOUs2dWFmYU1lMDA4OGRqVDFYc3ZpTjU3QjRHRWFCSklxS01DUWdJMQpKQ1FRcUUvMWpIdVN2YzQ5OTY3NysvMEQ3dk9BUnBabnhrN091ZXV1OVY2c0x3alJ2dVY1ZlRxeTNVMWdHVkJNeTI4cmg3QjFycnBBCkxhcXQ1Nm1xd2Q5V08xKzQ0WHEyd3ZHYjh1SFhxbWJSdFN2NWpZbkMydGlaeG9XbU9lNDd3c21DaHQyODVnMThReml0S3ZCUzJjUXoKeFFOUDMraC90cmovdWRMK1g1Y012RmhteTYxWGxuYTJNbGdWYkc0Tmo5OHM1ZFd6UkhWc1FTMFVENG9Mb0lmWElPQTN5bmkxVW02ZAppRnZMWTljd1dUV2R6S29PQmh5R1dzYXN6S25udkZCcWZhYlU4M3paQUdBZ0FFQ3dEUDVHMzIrSzNTK1dEcjljNXYxajZjd3JwZk1uClNrUHBwVXV2VmsybTF3UVFGZk9aRmFIL3JKM0FkM1kzcXpVelZtWDNtT1Q4VFFYaGpwcTByU1hFZFppNFBtMUxqUThyMG1MU3RnRkYKZjVmcXhyeUdldEJWdEdjbDNVeTZUdmRzT1R1T25DMTd6cWFWRWplVHR3MkVQUlZtVi9yWElYNmRxSzFlVFB2SXI2TGNzZVhjY3hUYwo3U2QrUFVEK3BwLzBkUjhROVdzMzVYNC82WjZUY3JjLyswdDM0WDFuOXQrR3lOOTZjdS8zRlg1bkozOXZSUjkwa2RhN0NzTGlrblVsCkt5SnRYZU5YckxEcjFvUWRNWEZEdU9POVdlWHBLUllscW5wbno5UWVFVGV2aUQrTWFjNUZaTVJ0c000NUN6YjYvaG94MThaa3BYdWkKOC9kTm1PK0dUMy9weWZuN0FBNUF6N2VPd2gvRzh2N2h6ZjNLZWVhV3FXR2QyUnpqZE1UNUFHZ2UwZ3lmRlJNY3VYQlNva2M1S1RGKwpLdm9HKzFEcjNPTTZZcHJIbFNLWXpnZ3ZKZG9hOTdnZUQzVWRCcnpXbnF6amtIUzhZQjR3WXRNcXQyR0ZYYkltK0hCVGVuSlhtNzFuCnB1NVl3WjRDdC9pRUVSTlJZcGNWd013RDlsNEdORFVWS0o4SzdkV0NCUTVjMkZFQkNiREdzZE1xVkFDdVVOQTJobXVmQmpPbHhFekwKZ1NXUG05UGc1N1dFb0k2d29FL2wvV1ROUXpjTWpBL01hVEh6T214UUQxTi81ZzNBWm9ZSkE4bElDMWhad0VzaEpwVkFoMWsrVXpJZwp3REdwRlJDc1FjQ1FUcVo1cUdGVGtqa1ZBQ0J3Q1VVc2FqT2hSOGVJV0lZZW9NeXdMbTFKbmJHZ1FzeURoVW1HOElwZ3k3b1pXYVpQCi9GcEFtTDRveXdpckFTMWhObnVPSEQrbzdlN2pRbThuU1NoaHlrb1NFcmlMM2JYZzlub3h1eGIwZmk5NjM0YlpCU1JreFcvMVl0Zk4KWUFuSW1sYWNHR0NuRDNBUUkveTBVVjdHS0pjd0lhS004SDkxZWtwejFxdDhjMVQyM3FEb0l4Zi9MM2JPQlN2elFtOG5vSmtuNm9JRgpzQTdqOGNjL3N6R0FMdHJwbnp2b0Qxc0h3WERZVWMvb24rWUEvWXZRQTFVNVJVK3BiS2F6MU5kNXcwKy83T2Q4RkJBV2hhU0VSUVV1CnFNSE9heUJ2Sm4wLy94U0FzRjRWckFqektndkhaUjk2eGRkbStHV3pqT0pBYStrYy9YcUkvL0dDL015cU1XL0hDUUNvYU1meGV0d0sKRm1ucWtoeTNDQUJJRHZZMGNsS0o4dXVQQUFnbWVTWHo3Vk1NaFBYQk9GVHFMdlFFVG9IREJXejhmd1VnUXZRWUFBSDZpUUJlMFVHTwpTYWFoQVJMSGVPWGdVOEhrSlBBRmswY3FPSEFKRVd2dWpvc1M3a0g1MVhBbUJteUtLQVdJQTN0M3prZ0JBS0Y4Y3ZDUDROZUFoM2dJCkpnZ0RHTThZNEtER2hNaFJBYzRyS0FwSXp3ZUVIL2k1bDVZa3A3ZHRSUWxid1haZjdwNGJWcndubS9wazMzUlJiZzNsNzdqekUxYkMKcGdHeHBrUUdaZGo1Vkd1S1F3QkNKWGNRMXFlRXVYTDlUQUJBK0ZreG9NbXNKVWxlVlBmMm12R3REY01iK3oyRTFXNEFHU1E0aHN4TQpDR3F6cHFYSVdTbHhXWWRlMVdBakJ2d0dUR2VHSldCaFdBWVBBSWdZdFFJZUlrZHRwSzErMGphY3JZaWY2anRoMHFKR1pjQ3NKSzZaCjhPdDY4cm9PTUJCcVJZV082TEdyK2hRREFUd0NBdlFETUNnRlFORFFnZFBqVFhqb29qc0VJSFJFRGJnS3VhSURKdy80WUJCckZydncKSVYzV2txSmhRREZzRUxtTmpINTlwN2xQZGlQcWVPUHJVZXFhR2JBWExnUlRySUMxQWVrcXJNVnVtbkF4SVM2aHk5aFF3Wkk5bHllcgphUTVUR1VZMVR1TnE1ekV0aStqNk1McHlHY2YwNTNvblg3OC9jK2FIcVlMdkpncCttQ2o4KzNqK1A4WUwvbXNDNk9SL2VZRW8zM3J5CnZySG54M1Z2KzlvdmR0VzJtNisyaXErM2lWdEtQWjkxZHNHQ0l4Yjdxb2hYeWFmWE1XaGxIT2JuSEVheFVGdloxZGN3Wm14Mjk3SDcKSjFtemxyWXBpN3h2cU0wNTBLQ2RxSzhkTGgyMmRIcE4zQ0VyZjliQUdiRUlldm83VEs2NmdlNzZZVldIVmNIUXFGbzFtcG9PZm10MgprNm5VUmNPd3hjOWY4enhWMmZkTWhmV3BjbHNlUjFRNlZQZkhpcjVueXR4UGw3dGZMaHRIWFptaWlycXZEMTNEbDQ3aGFsYXdMVE9VCnp1WGNqdVdMUGJZckZubGV4OUw1NXJXUG02ZXVzYlgxZ21ZNnU0ekxMV2NLU2p1bFZUcGhVNisybVQ5U2IzYTJoTFRjU1l0Z3hONisKWkZHYnZTelJZbnZYSkd2WXpoMjNzMGI3ZVVNMnlaQ0RQMndUVFJwNDAycWExZFltOHJRS0hhMVNNdzE4V1pteVU2WnNrcWpycElhVwpEa2t0ZjZMaGNwZnl0V3JQSzAyOWYyaXpQbGZqL0YzdHdBdFZ4cGRxZTE2cUhrSFY5dFg2NjdFZHBsOVh1QUVBUFYvY0J3RG9oWXFSCjE2cjk2THBRZnRQR3lmcjRPMHgvN1pUd0hIc3N2ekdlMHhqQjFhK2NxSng5cVd6czJaSkJDRUFsTGdCQVQ1ZTZYaXJ2elcwUWw5QWIKYWV6aVRuNEZYVmpMNWxkd1JGVnNZVFVRUndERjVWY2Zqa0VWUWpCaThXdnAvSm9PYmswcnQ3cUZVOVBNcnI1Q2J5UFZ5bjlUNHZwMQo4ZkN6SmU2bnlseFBsdy84cHFUdmhldERMNVlNL2I1cytEOHJoMC9VRENIclI3RE40OFMyQ1NyWFhTQnl2eTV4djZsMm56WFozcmVvCk9BN3BsSlhuR0pIK1pVZUJ2NjhtN1dtSkNUMDJZVURHTmRnMUpTSWkrV3hjM0tVVE0vcWs1OVkxdVh2ZHhKdDIwcGFUdEd1bDdEcWcKSVJHendMenBMUVA0UjhLZUVsejNQaGtXZkRvaU9aVXc0NzUzRXI3dHkvN0tUZmorRUlBb1h3RzVBQUJSQUFEZGN3SUF5bjNneVA1bQpBQjZsWDd0eXY3Ymg3c0QzeGF3WmN4WWtIMGFrMVJzU0FFQzFTOXl5WlY1MVJGaTN6TW1mRXI0NUt6eXozWFArbHIwNG9yZ1NrcHdPCjYvSlcxWlNOSHNLRzRYek1XSm93bGNUMTd4NW84eDUwNTMvZFYvalZVTUUzL1huZk9ITy83Yy81WVNqL0cvZjUyNVlMMjlybUdLdGwKazkyUjRIWW1lRWVoSzlZbWovbFFqNUFRODZFZUlTSEdCaStsUjBqbzU1SG9FSUFld2FESDBlZFFFZTZUOVZOSDBWSGZvS1kxWHRNcQpwekhNcVZ6bGZ4NlZ2cFhRRk80a3M2RzNyV1N3MG04Wk1SdXFud0JRUUFXV0hyQUVBTVFoK2FSRXZ4anJsNEZsTVZuekFaY2sySkFRCjhvb0NJc3UwTk5WSERXQVFMcWdGOUlNSnFoRnpDZ0JBeVJRaUNFQkpKUk9BZmdwQXlYVU5vZzljNzJiMXlSZlJRYzBuYTkyVERuWHMKdkFuNmZ2eUtqQ2xKeG93MDFVY21ZMFdYdVdaSXVZSmdPR3hKQXdGb1RvR1lncVZrc0tCc0dxNUthZlBpekdWRjVwb1dBQkE2MXAySwpkajBDUU9EdUVRQ2xZbVRIQVFnTGI2M29uVjdzZGk5dXN3Y2RObVlFVlJsajRsZGRUR0NCSTZBVGlKYzF4aU5OaUhOR0JMOTZaMEw4Ci9wajQ0eEhoQlE5c2kveTVtL1ZGUDB6b3VkVEhmS0srY0NhYlJELzJPUHdYS0JwQW45Uk1zVlM3b0VNQVNzYS9qdFBQenhIUEVlNmsKVkRYTk9GSzVqMTdtcDVmNkdUZG1PUmNDd2pmbUpkbUFnVUpxR0FpREFQUklKdEFoL1R3T1FJQ1IwWk1LNm9Uc2pYSFJoU2wrc1o5VApFV0JXQk9qRjgvd0xJY1ViWVgxK3dwNjM3OHJmN1R1WnNPV3Rhb2hMU3ZRQzdBZWROUTFvVjRXZU5TRG51bElBZEhSWXdDTU1IQlBUCnNQQVBjbkdxWERENTdxbFBna21PWW5nRWdJQitEb0NnRm50d3ExYkNoZzBBRUNGbUpjVnNwRmd2dUthQTlSc2NYckFYNTZnQVVBVUEKSUtETUtYWEdCS1J5WE1BQVUza2lOa3JNRHY0RkhQMXBFNUtNTWVHUGhZdlRnSUdrZ0xVaEFFMHB3V2ZPQkwvZUFsemcwOGFGcnd6UQpNMGI1U1BEOE1SN1dLOGdPU0U2dXlOK01hdkoyN01CU3pONDU3R2RJMlhObDcvZm5ITGlLQUF6RnJlaE5RMlpVaVZvUTQ3dzh6TFFFCmNBTUFvR1J1dnhZZDBtS0JBbXJrbU9nRU9QNm1lZmc1Q1JveXZwd1k2enE3N3p5WkxCbERoblNBR3lpcnNPOFcwaTlQbnhRaEF6SVMKL0xJNmZNUkkzREFCcHNFdUc3Q0xSc0tLbWJ4bUlVVXNsQTByTlE2NEVQNUUxSGw3Z2R0eVVtZWc5a3NLWm8wNWE5M0VpSjYwb1NFQgpqbGxUQW1zSnZFNktnYkNyOEFkTUNnSVFPTU9oRXlpUWJOVUZHQWdDVURkbXNmc1FnR0JacGhhOEtYN0JTQWdad1htZUVaRGZHSlQzCm1oVURla0YvbDVDMTNIdjJ1MEZZWWdOUWIwNkZuWU1NQk12TmxnMEFnSEJSQTM1SGk0eHEwaUlLWE5qMmlzU05yTmdnbG0xam00T1kKeGhsTVl3aFZzNHBvWGlRT0JBcnZUNTM4WWVqY0hXL3UzOTJ3Zk9hSHNhSy9lWUVBQU9YOVl6ejc3Nk80cjVYZ1c1OGIxMXkwWFMyVgpYR01acjdlSnJyWUtHcS8wZmRwc0tXUHppZ1hzRzJ4ZU9hdWpndDFSMnREK2FVdlRGMkp6TlVDRU1TM05PY0IwRFRNQ1hjemhYbDd2CmNQdG9YNlBZVzNOOXJIakExamxrNFE3MThLZE52Q2t6MTlUZnFuUlg5M2JYT1RSdE9rMjdXdDFzbGxjM3NCbnZ5SVdmMjJndmxhcWUKdmpUNGZLMEw5cWU1YnYxQVI3dmg1cjEwWXd3czFmOWU2WHkrd3BkVk1uOVNKcnZpcVNSVVRCT3F0b210TTZURzdaUE10ZEl4NFovbApYaUp0aFVvTG4yMGR2VXdUTnpNcUdld2JBbkVOWDF6RDR0Y1l1TTBhZlF2VDAyRHJiUXZxd1NxdVdEQXlabnZsQXhNODAzU0h3OE9lCmNFbThkdjZFaFJlMHFDWjd1UU5PZ2RYQkh6VFRkZjF0dk1IR3JxNG1TWGU3UXQ4bzBkQmxtaGFKdkVHb3FtOHpOUEJuMnorVnlCRzEKUStrTnpsZWFiQy9VV1Y5b0huaSt5ZjFpdytBTDVmMXBWWTdLNlE0SzIvRHJVaWYwQUpVNm55bDNBZ0E2VWVYSE5Nem1OeThEQUxxZwpIQ2wyYVlwb1kzbU5hK1NHVlV6dHdxdFZQZ0JBenhRUC9Mb1lwaW9EUUhtMjFQRzdjbk4rczdpVVdkL0J1OVl1TEdrWFZUSkVKV0JmCnBNVGhWM0FGbFR4aEZSQmZWTTBXTndBeGhYV2RBZ2hBTFp5cUpsWkZJN1A4QW9PSmI5QThYOUgvYklYcithcmU1MnA3Zjl0by9VTmQKVDBhVEE5bm1JREtkK1NMSDYycjcrMmJicDNiYlJaZjl5ckMxZU5KVU9TTnZXSkJXcjRvYmx2bmFhYTdYd1JnZWxGUnNLSWxmYVFtMwo5S1F0UFhwTFI0eHFzVkUxYWxWMnhpZmk2RGxhSmE5cVJINW1zd3Q3MjByZXNlTjNleW43Y0R3TGJ0MklXOWVUNG5yeWpvYXdvMFRjCjFCRmpxdXk0bnZCbEwvSjdPLzRiSi9rQlFCOFhvQi95QXljQUlDcGdvUHY5NUxzT3loMUg5ajE0TitmTC9yeXZQRG5mdXNsM3pJUk4KRlV4U1dkWlNGNVI1RWNuNzYveWFpTEIrU1hCOWlYODFMTDBlRkJObWVIOWRVcjJmc09kdTI4NHZ5ZDRNS0lsTDNiZzFFM25aK1BxcQo3SEpDVXJxdmZYKzNKL2VXSS91K3MrQkJkKzQzZzBWM25LZnY5ZWQ5NjZGODZ6cDl1L3ZpbHFZdUtnSG9BMFRiNGdFQW9zY1BvWWNWCjV4OEIwQ01rZEFSQWo1TFFRd0Q2QlJMNkJRQTZZcUJIdWVkZkE2RGpESFNJUVRBbGlBc1lxRzZWVjdFcXVyaXVlRE9oTDlnMVU3WjcKaUx0bTdFNFhabE9EV1ZaZ3djSzBvTWtNd2JCRHBsK1hNYTNFejBoUCtpVkZQakZwUnBKSzk0UlY4VWxEUGVtd1NRTFFsQXdMNjhWZwozeUR3QkF6c0lxdk1tcFduKzRIWnFVNHhVQktERGdFSTZ0aEtsN0wyNFVJVE5CRVh1b2pKdFNNcG1FWUpnd2toSTFpaEFQMjg2dUdjCkdPSWlaK1RnS2dvQUtDMWlRSWIxZ0lHZ2xyV0llV1dtTHptMFlGd0krd25OU0RObVJla2hhZWFxQ3JHdXlWbzNvbU13NCtlSkFJUTYKSmtBL21KMGVBRUJBbUtRQS9XQUEvU1FzMkhWVDFxSTJiVWFhTmlKOHhVbFA3Mk1pUE56TVlSNXlsRWNlRStVQ0FMb3d4cms0eXJrMAp3cm95eExycW9RTmt1UW8wMUpHcTZ2cW51dTVocEpRY0U1WlNxaVQreDNsaFIraVRxdkE2NHA1SFdPZHg0cW1lWVI2cHhzZXE4RFBLClo2RktBNXhMYzRKMzU4VW41MFdVa0lJNEQ3cy93ZDBERzBORCtrbUdnUTdwQnlMSVEvcEpBUkNBR0NEc2hEUi9Rdml1VjNCMW1sYzEKeTYrY1paYk44VDhQeWQ5YzB1WkhlM0oybmJsQWNSdDFWWTlkMG1RdHdtWXppQ2s1Z0NlTTN3Q0x6R2Rod0N1VmdaU2lIeGdabllROApjY1JBUDNJWVRBcURBSlJ5QXFXVVlxQ2ZCeUNZS0EwQUNMOXVUWTB2SVVEYnFBZEdjSlowcUZrbFlKcFVPRE1WaXoweENwT1Q0RnY3Ck5KUndiK0dXQy9CQitwdzZ3d3YyUFQ4ZG9GS3FhdEVyQWdDVTVZUE9SdWdwbllKOXFESm1OYmhWQ3lYY2MyS1k5OW9RSFRIS1JZMEoKRVVNUWcvQkJGWFdqaTVvd1VmWnN3RktrN1BlUkQ5eEEwUDJ6MzU4SHRPUEVKN3FCT1VKZWtWSURBc3dVTzJ1R2p3MHFId0VnWUdxZwpKcVhwSG03V0xBOGJFaU1YcEpuTEtrS3NwMkRmVGQ2MHZ4YlN3VjViQzBiaW9nRXpwMDZtUzR1elFnck1xb1lRMWdNTUlxMlpDR0VqCmJza0EremNzbTBpclBlUmxXN0lFekppOUxqKzFKSGh2bG52Ukp5b05xRDcyNmQ5ZE5PV0hEZmhWTlg1ZFMxcUhDZFI0R0pqVEFnYkMKclJrQUFLVVlDUHlTMEFNVTFFTmJKd0N0R2VnSENuYkJXcm1RR2IydXhFZDF5Q1VZd3dZZkREeE9CSCtkMVdKOTZqTmo4Z2FuM0tWWApLRWFOYjMvVm4zMi9IOGJkZ21xQXlNQ2NndUZ6Y0hkSmgxN1Y0V05HUXR5WkRsbktqT2l6L3E3WjlVcE42TldLaGN5cWhSTk5FN2lhCkpXUmpNTU02bm4xN3F1anZrL24zQjA5L05aejNEMWYrRDhNRjMwMmMvTjViOU4xb3dkK0djdjd1d1gzYlI3Mm53Ymo2ejJtTXBkMWYKTktpTFdWMWx6ZndyTkU1ZGFmZkZNa3R4aDZSWVJpL2owRXM3MjBzNEhhWHRuWmRiMjY4cTdmVjlwdllSRGQzbWFYTTc2UUU5MzlYSAowQTIxVHRpYVdON0t5K1BYaHkyZDAyYitqRjR3YXhhTld0ZzJlN3ZaMXRCbmJIS3AybnVWSFFabHMwRmVVeWxnWG5CVm5KTHhuNzNzCi9tM0Z3QXVWZmYrOTFQUGlOZGNsYTlPSFhacC8vK3Zncjhzcy8xYlg5YXNTengrS3ZlOXFwVy9hNk9pNkJXeEZBbGMxUmE1WWY1czcKVlRIS1BGdS9WdEM2UVdiRVR0SW5TenVrakxZS0J2MHF3QUl4dDFJZ2FsQUttOFRtRnRsQTgxQjNoMDhySE9tVlR0ZzRZemEydzllcAo5VGRZQjlybm5NS1FVekJwWTQxWStUTzlISEE3M01QM21ObXl3WGErdThtaGJiSnEyN1hhVnJHOFU2SnZsV25hcElwNm9hRlpIR1NlCmsrdi8wREQwKzByWEg2djcvN01SL1A0OXp6VlpYMmgwUFYvai9JK0szcElSZHBGRTllc1NCL1FBbFR1ZUx1dDdzV0wwUkdXUTBCVEsKYnc0WDFtMThZZXE3WU9qUGI1bkphVndsMVlmUllOOVYrVjRzSFgybTJQWHI0cjZuaXgzUEZqdWZ1bUYvc2RTYzJ5QXVwZGZUT05jNwp1Q1UwZmhXYlZ5cmsxd241TlVBQ1FZMVFXQXZFRjlZQzVoUHdhdms4bUFERTVGVjM4cW82ZUpVdHZJb1dYdVZuZ3RZQ3BoVEo3TVp5CnV5a1NmWTYydThoc2VkMWsrc1NodStEV1hSNHpsTXhvcStmVURZdXk1bFZKMjVxb2ZVM1JHUk4zYnRCWW0wMjBuUlpHdk1Nd3p4enUKcDAwNWhheVFOUCtCbG5oWFQ0WWVJRjEyUklPS3FiUFdGUVd6d2xJclJ5Tm02VFNDUzM0TjRhQW5aODlPQnVmMXZoMmN3cWcxRFhaRApDd0NJR0Zkak4rU29YUjFpVDRlNGFjRGU2U2JjdFZEdjJuUHVPZklBN256dElIOWxwd0FHZXVDa2ZnbnBKd1ZBeEsrY09iY2QrWGZkCmxBZDIwcDQyYjFXU3V5aEhMc2pCK1l0WmsrZXVjaTVFK0JXcmt1SVZCZUNldDJkRXhDQzdmRlZ6QVRhbk1WSVdwQVZ6ZWxTd0I3VUUKdDY5RmxMWGI4dmR2S1NtM2UvSnZEUlhlRzhBLzZNbjV4bFY0dTYvb1N6ZWdIOHJkN2crM1ZMVXhFUzNHb1c5eGdUb1RISHFDdzlqaQpzaEtIWXNZNWo0aXh5UWI2V1FCNlRJK0h4aDV6QXYwa0tQWlFQNG1JL2VnWmVoeDlEZ0hvUjBnNmFxc0kxTEVNR2FoNWpkMjZ3bWxaCkVwU0h4WCtPS1YvZjBWRzN1MGk3WGJoZEk5aXpBREVCQU1GWjFFRnc1ZGNpNWd3bmZISmd0Wjd6Q2QrZmxSYjU1ZUJhaXB1RmxBTmQKUWNrcUdSZ0xTeklRWmtZQmhQSkJBWU1UMEEvQ0x3UEs4cXVBSG1KUUVuMmVCRUJnNFNQTWQ1RkM1aFQ2QU5zVnVyMFhqYkNsNFFLYwp5NEVFQU9TRlRwZlgraGlvY1RFd0R0T1h0U2ZXSHdMUU11ejNnNWhUcEhtRjZXUDh6REVCVEtiMmlUUG14Qm1Ma3F5SUNoSFZJYUlHCjVLWTVhOHNJaE56dUFrTHRtSUJTMjhjZlFlK2FnVEI3M1VCSjk0OEYwQTlteXdKTGhWWU5pSUR5eEtRb2ZSU2EzeG45TE9RZ054TXcKMlRDWE1pTE05L0IvZFhXTWVXMlVlV01VbHErWEpKc1pYaDlwQTRLUFBFbkpDUmlIS2hsbC9LaHgra1BSNEx6M2ljNGZ4OHdDN3BsawpsRTkxVmt6VFV5cWZvbFZPZFZaTjB4OVI5Y3lqMEhPa1dqKzcyZy85TkVDVkFmYjFBUGZUT2VGYmM4TGNrSndjbEJQbVlNVmRxc0ZkCkNvQ082T2M0QUNHOWFwUlhpVXlGTUwweXdyams5SVR3d3FTb2RFWmM0UU12THJ3eUwzODNwQ3BZTldZbmJObmJkc3FtRmF5K1lLVkUKTEduZzFBaXZET2RWNEgySDZKTVNIRFdWSEJHWHpJMVh3QmpabEFyeUVNVGs1SERXNUlEYzFCQ0dSd0FJNkpjQkNML1NBd0NJc05FTAowQWUvM28yUG1MSExlckRXWmszTE1rWUZtY00vQWxEV3VCdzdyVWtmbGJ3NktpUXVtZktqRG5BNG5waVdwTnAwSWtZRWdHWXlSdmtaCjR3SUlRSDRKRk5qd3loQStOWEt4aXhMdnk0bFlYeGxrWjNvWXFDRU9abGlBR1JKakp4V3c1andCczhuSWU1QitTUHV1RkFEQnlxLzkKdnR4OUI2QnZmRXovZWxENWhVZnd5U0NMTXMzSm11VVNwZ1JIQUlRS3dzUTY3RHhnUkRtc0Y1aG1JVU9pckhrcEtxVE1pVm9MdGdhSQpLMVlVREJIQ21EUUFXY1NVSkgxS2dBeklNTXNxQUVEa01DeFBJQ3pwWVZPc0pRTngyVWhhNlFLaXJOanhZU014TEQ2L3dpbGRZVFV2CnNXckRyT0lZKzRzVjdRZXI2b0kxRldWRFM0bDJrU013Y0VaYzc4V3VxSEVBZ01JNi9Lb2VDTGRpQUw4a0VQaHNtQ0RNMXdNZklPbkkKaFIxTFlYYmVocElRMHdNQUFwOGYwQTgwZDJZTmhHa1k1UVRmNGgyM2lPa3hGaWRjdUs4ZDJBMGpUSElLS21Ic2J4N0crNUtwZjJyWQppR2l6aXh6clRZdklzSE8yMzlPY0wxV1AvMGt5aGVzT25tZ2VTV3Z4NThrM3lOWnA0dnBBL245NWNyNGV5THMvZlBMN2lieS9EK1Y5Ck4xN3dyZS9rZDFORjMzdUsvdUhPL2I0ZmY5ZWF0K3hBU0tiUDhQcEtiTmNickdVdHhySkd6blVXcDdwTmMrMmE5VWF0cVpMSEtBUG8KdytGVWNEcEw2SzFYYWVJeXRiM0JyVzRmTkRKdG83UmhLMzNHSkhZTTBuWHVkcmV6aVROV1ZlTzVNV0NqbVFkRjVsNytVSS9ZNG1UMwpPRHAxL1RTUm15NXlNTFZHbGtiVkxsYlZsNHM3cjN0cWNLMzJaNjhNQWRaNXFzcjZuTXp5VkxXbFlyQ0R4REg4K3ZMZzgvV1czN0wxCi81MW0rOVhWcm8vMXd2TW1RVWIxeXA4cUY3SllZL242NmJlYzlndkRrdXcyLzlubThKbTZsZmM3ZmFWZDFtb250OExjMEtSdW9FdnEKZU1JcUtiK1dhNjZqVFRRS3ZIUnJ2M1RVS2h2b1kvZU9DbFdCRHVOa3k3aU5PZUdRbXJ6UzdqR0p6Nkx3MjBUeUVVR1BUV3pyRllvOQpUSk9sbzlmWXdYTFJPZDEwb2JSRHJtcVc2RHFGOG5xeHFrWXcwM2xLNDh6bzl2eVI3M3FwenZISEd1Y3I5WTZYYWl6UFZuVy8wQVJZCnAvZHl2L2k4VnZac3NmMjNsWTRYS3V4UGw3cGVyaHhKcTF3aHRZVHptellLNnhlL01GdmVGY3psTmExUUd0Wko5Y3VvV2doQUw1U04KUGdVRFZYMkFuSjRwc1lQdGw4cHRCYzJxQ25vcmcxWEdaRmV5T1hVaVRoV2ZBMENuRGdqbU93dHFPY0k2bHJnR2lDdXBaRXNxV1lwcQp1cnFHcHE5ck56VzA5alMyV3BvYVhDMlgrNFNmRGhpdmpPcUtweFdsSVczMWlxRnhTZGtTNGJSRk9iUTRON25BczVnSk9tQWRScUlkCjV1b21tSXoxZHVaNkt5M2VUdCtrYXhkNDdrR08zOHJXVFV2ZXZxa2gzZEdSZDNTNEpBQWhveXJrcXBJeUwzNS9pTU5STW13Y1ZxZEYKOU02Q0xuY0hXbnJVSFN0MlF3K2VnTi9VVXJhTXVIVWxZa21VRTlYaXR3Mm9mU04rcnl2M29DZnZyaTMzUzhoQWdHL0k5MjFBZ0g0QQpGWkZ2V3ltMzdObDNuRVR3MTl1TzNGc082a0ZYd2Fic3c0ajAvYkE4WjFHQVdnTW5uWW9RRnB4Y0YzMjhKcjI4cFBwd1hrV1lFT1RPCmR6YXZxOERaQ3Z0N0JTWFpjMXBZT2hRUXY3WE1MMDhZcnU0WThnODB4SHVXb2p2dTNGdDkyRy9jT1EvNmN1LzFVNzkyRTc2eW50cFgKRlFQNFMvQm8yMHptTmc4SW9NK1JqaGpvaVJqRTJvUml4dGlQNmNrdzlHT1MwQWE3YzUzMW8zNFdnSjZzeDdOL0h1WUEvVVJIQU5TNQp6RzFiWmJlc3dYN1R0Q1ZPNDRyZ3lycjB3N2lpYUZ0UDJkWVI5NHo0aEJFZGhwY2RJRVJRRHEzZk9TTUFJTlFvNTV5WDk5ZDUrZHZ6CkNvcGZSdlRMOFg0bHpxOUMrVkl4TWhqOXdBRkxmdnBReUJrNXNJZUJJUDNNd3RIdU1HSFVwMExCSW5ZWTVVaFYxQitaK2luei9zZ0QKQkwzZGk4WVVBR0dXSGdKUVNKUDBGMGpUM093MEp5TnJpQThXck15UU9tUDFSL29CNWlMTXhCampwdzF6VXdDVW1RS2dKU2t5cXNtSwo2VE5qQmtUTWxMbGxCRUpzZHoyaVJ3QW9SVDlBdUwxZTZBZDY2UDVCTDJvemZiSzBjV0hHbUJpWTN3ZzNKMnVBaytIaGdEV09QQ3dvCkdPVC9xbmdNam0wdkdlMHNnNEsxV3NWakhkZkhPNDRCelUvMFdEWDdvVXFUNVZxSGVvZytnSHNxcHBodzN1d000NWpvUUQrRm5oOTEKSEhxTzBBZW8zc2V0OXJNQS9WUUZPcXNDalBJQTU0c0EvNU01UWY2Q1BDY29nMVBjNTlTd3JNNnZCL1NEUFFaQXFjeVlGUDFBd1NaTwpDdVNFS210Q0JkQ0JPaTU4ZTBKOGNWSmNPc01zbnhWY201T0Q4N05vU1pzZDdhYkViYW1HMlljQU5LZEFlaVhFQ1JsNVJrWDBxWTdvCkp6a2VKZW4rQWZTVEZHQ3NGQUNsZkQ5WlNSMEJVRXBIRFBSekFBUkwweGZORUlEV0FQcFlBUDNnMWt5WXNBRVB3NzNLWTFnREFRaW0KQVkzS3M0WWxydzV3MDhiRjBDY1pNbVpPU3dHRFE4ZlBpQ0JyaEErVU1jUUZCeHhpV2dUb0J6a3JoYWd4SWNtYTB4RTJiSENTMTFydgpxNE5zeEFBOWE1Q0Y4dkN3WXpKU3dKZ1RzV2R2OVJHM25kUnRCMlhYU2RsekFRYWkzQndBQUVUZGc1ZE82RitKcXQrWWw1VFpXWTFHCittY3VGbVdHKzBxQWpRVmdrV1FnbUFRWDFBRElnTzdXYVhtbWo1TVZrcURtcFlCWjh5Tzl1WnY5cEZBUFpVSVBmbHZNdEJ3N0tRVW4KUStZRUh6VW54NFUxMkRVdE1hUUhZSVNiZzJCQldJQjlzVkk4UkZrMVU1YlZaNWVFVnhhNTdRdGN4Z0svYXBuL2x4WFcrYm1Pd25rNgpPU3lnUnVGT0pJZE4rT1Z1UXNRS1gyMUZqVjNScGhnSVZvZWxBR2hSQno4ZWpLS3FzQUZ0S3BnTkV3Q2pLa0pNQ3oxQTgyb1lJUE1CCit0SGpKalFaVStvVHc2SUNqL1JjMUhieXZvY1VOYWN0eUdFN2hqazU5Q1JEYzBxQjhNc3pBM0pBYi9pb2poU1ZvamNsR0ovN3hmcVIKRjBySFg5VjdQajdZSUE5N1RyVE41RStIOG5kSGdJRmI4R0NBZU4rYS9iMG4vLzVFd2ZmRGVkOU01SC9uSy9waHN1Z0g5NmtmWEFWZgp1dkNiRHFKNUJFbGJQTVVidStvdXEraS9YcTByYnVMQ3ltcUdxUGhHWDFuWlpGdWR0cUdOVnNKbGw3RTZyN2MxWCt2c3FkUjNOdytwCk8vcWRkUHNJYmJ5Yk1XTGhtZ2VhWFE1Nmo2ZFZPRnJkT1ZnbUhlbjRTMHg0UHN5LzZ1ZFh6N0RycHpsWGdyelgxd1ZudzhMUEp3WGwKYnRaVlY4ZDFEV3lIOGZLTnNSZkw3ZjlXYm4rSlBraUlPdlA5NHhXajlKZWJETTlWRHIxWWEzMVYzWk05Ty8yQzJQQmhWOGNuR2k2eQpiT2tQclVIYzROVHBoRFUzckFiR2ZlNXdIOUV3L1hySCtJZjhrZmVXUndxK3RoUWtwQi9NaXo2YkVWN3BiMmt4dGZITVRXeFgzWTJGCnpzdGJlbVhRTkQ0bysvT2U5bktZMFR6TGFKOVhmN0p1b3U1cC9yeHRGcTk0VE5QS2N3blp1OHZTeitkbGwwTUNsWjJwc3JNL25lZVYKQmhTMEhyWlVXaTlRdExOMVRjS2VScmEzbzBnMFVMaGtMd3FOcEJ2NlhxeDN2bEkxbGxFLy9sS04vZmxteC9PVnRqLzNLRDdxRnY2MgpyQThBMFBOVnZjK1dELzVIMVZoNjFUS3BlVFcvTWY1NnAvZGl0K1ZzZXlTdk9VSnVqSklhVjFDMXdmK3NubjZoYkJnQ1VHbi8wMlY5CnZ5bHpnbzJYeW52eld4Umx6R1lhdTdTVFhVSG53NUVYTkZGTnA3aVdJYStqcXhxWXVrYW1xWW5WMDhMcWFXSzcyOWlEcmF6aGRzWTQKalRaTmE1K2x0ODB6VzROTXdYSmJSMWpZRmxFeE5rUUFibWhiMExmQmpyWkQxa20wTXhNMHlEMHhHaU5HVHhVcjBhTnRyQVNISGVWegpveUpHRE9iL3loZUZ2V044djRWcEd4WmNqNmx5N21nSnV6cENISnpkR3BndnNxUkNMSXJ6SnJsMVdwcU0weVlVMHVwN2hXZVdOQVdiCnRtellIVTZGV3BXVEUzb0FRT2l3SEJFVTU2eHBTSEU5ZXRlQTN0RVQ5azNrdTcyNCs3MllCNzJrTDYzRWU3MlVlMWJxUFN2bGpvMTAKMDBLKzFadDl5MHE1MjB1OVk4dlo3eTVNcUQ2S2ljcmk0dEpOeWNkaEhuSlpTbDVSRTFhVjJBMTU3cXJrclpEOERMRDd4d1ZuNWhqTgpHNHBQRnhURUpUVnVpby8zUW9kMFFaQjNPU0w1eTA3WDZiMmV2UDJlZ25zMnlsMEw3cFkxKzhGd3pwZE82Z01Yd0svQ1c0WlB0MFN0ClczejJMcCsyejJGdmNUbmJ2SlJZT3dDR3VDbXh0M2dwSGVjaElIYjhVQ2tTT2laZVNyL2dIem9PUS8vVUxmU0lIblg4UE5UanZxS0gKb1RRZXhLTmtKMnRZTExiR3JZd0lyc1hFNTdkMEJWdHE2cmFSbE9pQzE3U1FDZ2dSbE1Jd1UwQUhPN01NOFlyRzJCZm1aQmNXbGVmOQpvaHkvbk9KVDRIeGdTVXFtTFU4cU1WNDVIaXhTazFMVWxPd1FnSkpKRVJDRFp1V0lhY1V4QmtvMWpFMWkwRThCQ0d3Y3Vzd1hvQUQ5CjRKZE51Q1VEWmlsNVJWM1FaczBxSVBRTTgySGFqWWNIbHFFc254eXNCWmt3bkpMc2RnZ3VraFBDRTBPY1F3Q2FFaVFUZ0lScHkxSkUKVElQWTFFSUEyb1QwODBRQU91NFdTbm1BVWhnRTA0QjJlakJiRnN3bWRQOWt6U3RUZGUrdmpZblNobmtaZ0g0RzJBQ0Fzb1k0cENFKwo5QUFWZXhtbEV3eFlvcFVVMkM3MmR0NlkvTkY1ODRoK0xtRzVmT3FuT2tLZmFWYUtlNnA4ektUQUJtU2d4OUVuU1QrUGVuMk9CQUNvClpwWmRPY2NBQUZRNzIxbnBaMTBQY0wrWUV4U0ZwTGxCS1hFZTV1aWttdnhpa2owUEh3R2dRL3J4SnRPQkp4VG9jUlZRMXJnY055b3EKR2hPKzY1VmNtMmFXelBLdnpVay9tbGVjRENseklpWnFGSTZXSmNCTUVSM1laOGlBQXVzVlpYdWwrVFBLYko4Q0hCQzRoKzRmbVAwegplUWhBeVZtNGlpTUF5cHJSSW1hZ2NZUHlHWTZpWUVjTTlJc0FsQnpJc055ZEJLQnVYTVNjcW1EQ2gyQ0NjSHFLZmthRVFGbWpZdVNZCkJPVVdwVGxZbWNOQ1FnQ21wQUg2em9BdUg1Z2tsRGtFblg1QWFZUHNqRkV1QUNDRVQ0enlTN01nSVVreGk2YWNuWUc4UFE5NXBmczEKRHlkOW9ETjlrQWtPWEhEQ2tCWmgxUlV4YWlWdDI3TVRrSVFvTy8zazNjUDBaL0t1RlJmdm9vWlZwSFVGSlN3Nk44Tys3R1plZFhPSwpKamt2aDVod05HbElpMTFNbG9PbDBvQmdycm9LUFNzQ0FJUU95dkIrT1hIUlFOeTBFVlo2Q0NQZ3ZPV2pSMFdvRVFGaW1JY1k1MlBtClpYQmUvWEp5d0UzU1d3c0JaVjROKzVjdndySUY0b3JteklMODBvSzRmb0hiT05kWkcyU1dMdk0vWCtMbmhkb0l3UTdVRWhzYmxwRlgKZFpTVkxvQ3dzSUpzVFFkZURiMmtCQXhFV0RNQUJvSnRFaUVBYVdITDBTU2ZwWHpGR0lCQjgzcE1WSTZQYW1BYjY3a2s3RTVwQWYyZwpoeFdJSVRGeVJFcGRNR0h2dW5EYk50S2NKaU1veHdhVnFJQU1NQkIwcW9IVGZscVNNU3RKQVJBcXdzZkhWUVU3RXhuVzhaZWI3Um5jCnJuZTNmRVYvRzg4MHVVbkxBOWwzN2ZsMyt2SnV3VDV5K1Q4TTV6MFlMUG9XbGhQbmZqK1ovNC94dk8rZFJmZWR1VkUzMHR1SFl3YncKTFV0bmVKNXJuckthZ1VzVmlpdk43RVltcjZTTmU3M1VYbnBocWZQQ0RLZEtYc2Z1dU1KaVhtL2kxclM3UzQzYUZxK3VzM2U0dGRmZApNZFhGY3ZaMWF2cHJwaTFjN1dpN1lyaUdQVmpCSDJtN3VDNmt4QVc0Qkkrd3hjbmZGT1p1U2xGYnNxeTRqQnFSNVlURnVEWGh4MU5TCnRJcjJxeHY5djIzcytmZUszdCtVOS81eDFIamxkdmUxa2VaZk4zYzlWZTU0NW5yLzd3WG10MjZPNWE0NVAzVTNuQk1La0dXejZTMEwKcEY1LzBacUNGT0dpVnlXa3VCR3gycHM3NkhqVDZUeS9iQ0hjVm1YZFZwRnVBNnd4NEc4cDN3MHJxcjE4VFc5SHE0ZVp2NnYvNkk2ZAp0OUZUdnFTOE1rOS9mNG1XbjFDaHQ0M29tRG92WVR4L2QvRHFMZk1iY1UxT1JFbmMwaEIyRk84dkM2LzdCQmY5NGpkMkRDVkJEYzFLCll5azdoRjF0c29HMlRtOWJJY05EY25lOXZlMDhHWE84Wm5JK1YrVjZ0WExzajdWOXp6WFpuNjIydmE5VC85WEJlN21pLzRVSysvTlYKUGM5V0RQK3BhanlyZHA3UXRKelhHUDFRMmZlRnhaTGZzSjdidGtwc1dpTTJMQU1BK2xQVkZBQ2dwMHZkVDVYMVBWdlI5MEtsNjVseQorKytxVFhrZDRtSkJmWXYwUnBPaXRGbGIzYW12cGp0YUdQMXR6TUYyMWhpTk8wWG56akw1OHh4ZWlIMVlSNTNzT0F6YjZNVTRIWnNzCklOWjZDMnd6RTVkd05wbjBXRE50bTA3ZlpuQmpyYXc0a3dVRE44bGE3ZzFtNXpvajFiMEdBQkE5QVc0Rm5LaW9jNVBiR21NSWxqbjYKU2ZaMGIrZkFBSzlqVVZGMFU0dS9xUU5NZzBwb2NSRUlRSmxMVWxTQWM3R25neVpvRmpDYkJTTDZwWDUrM3JJcFo5bUFYWkNCODRXNgpaYURFRFFDR29QTjFXUUVNQU55V1BtdFhqN3JaaGI5cHh0N3BSbjNaVGI1bklkMkJBc1JEdVcwaEh2U1E5M3VvTjN0emJsbkk0TUY5CjQxdWJzdktFaUxZbmJOdm1OV3h3c3BlRjJhdHFjTVloMTdXWWlKSzBxcUFzS2hIand0ZDl2T0psK1NtZkVGNG9QQnowcUJBVGtMOFgKRm4wUjE1N2EwcFAyTFBrSHJvSmJkdnc5Qy82dXRlaU9Hd0JROWozSHlZUHVDMXZLcG0waGE0L0wzdWR4OWtXQWU3ZzdmUDZlRUlpMwpLd0JVQk1UWkU0QUhqM1JFU1BESlcvd2pjUks4SitvSWtwS2NkQWhHajdQUmt6MUdqMlVPSFhMU3NVYUxQMm02K05nelUycVBDdUZmCndSR3l3UUE3dHpIR2JvenlHOWVGSDIzcHo4WlVlVnQ2YXNLVUFpQU0rRDJEVXZTc0JPV0RwVjZvWVRGbGlQMnVUM0I1VVhwNVRuUnkKVnBIcmt4Tm5GT2hKR0oxQWp5dUFaVXNZaFgyY2djMkpUR0lRc0lUQkpTdkZRRWNBbEdTZ3c2YjVFSU9PSlVHbkFBaXVnTWtScC9pZwpBYVpJTG5ZUmxtQW5vVlEzWjhTTURJWXB4b1JwZzV4TUR3ODFLc0o0cGZocFJWcElpVmlBMlFMSUtRbEFIN2drRFVFQXlwd1JaY3lLClhwc1huRmdXWlVhVkFJQXlObldaQUlDMjlTa2hkZ3pIZGZ5UnJGMGpjcThMQ0xWdlN0SlBOK3lPdUdFQ3F6WXMvcDhRbzhiRnI0NkwKMHFBTGdKY08xamdQSjNPUWhYV3pxZjJzWDkzd01nNFp5TXRNcVdTS0JaVENseWZvWnhLV3EvMnNGT0pBM0FIUWM2VEg2Q2NGUUQ5RApQejhDMEhINkFhcWI0UndCVUkyZlZ1MW5sZ1k0MStZRkp4Y2tlU0VaTVNpRFNjcHpzUHo3bHdFb1kxSUdvMFdqS3N5WU9tdGNDWFlNClpVeHdla0o0YVpweHc4OERBUFJ4UUg1cVhwR3oya1ZkdDBDcVhZWnVnS3hGRlhKV2lwc1E1VTVLaXZ6S0FzRFVEOTAvRUlBbVZTaXYKRWdiWEFBQU53MmdVQUNEd09KekdtZ1NnVFAvL1BnRGhWcnRUQUlRSnc0RXB1S0FtYzFJTVlCWUFFUGp3V2NNQ0FEMFFnSnpjRXpZRwp6cXVnQnJ0Uy9pRnd3R1VNY2dIdHBnMndJUFlPc05NR0dDa0FBa2NiMGllQlpZZFRja0xZa25kekdBQVFPSUxUUGR6WGh1Z25SdGl2CmpRc1FBVFdjckx0cVJxMGFTZkhldkUxN2R0eEpUVGpKMjY0VUFKRjJldEZSUFNLbXpGMlZaVWZFbWR0OFJKeFh1TWc3T2NQQitKakEKQWtBRk5TbWJBT1lSSndFSWxnd0V4QmtCQVhKT2dwbVdBSU1ESGJjUVlsYlVxQXc5SkVCNStBZzMrSnhNdEZlSUQ4TDh2b3c1MkdRQwpHQ3ZBVWtINVlJc0l6SndLTXRDeUFiK2tlaXNncXBrVHRvZVlWWXVOeGVzdDVURlc2VEw5alp1cW5JUUVGUlptTFlpQWNabTdacVNzCkd6RVJkUXFBQU5CZ1YrRGwrQkNBVnJUSnBrSGF3MllLL21SaVlFQ0xuZE9sQUFpNUlFY0dsT0RNeDB5b01XTXFwRWRHdFFyd2syck0KN2NIOFcwUDRlVzM2ckF3ZlZDSG1vRWNOWE1GaFJjTTBMTExMREVoeEVSMGhwc2ZFOVlnVjVlbHZodkwzQms3MnVkNldlWEpHK2tqLwp6MlRoelpHY2pYN0twaFYvczRkMDI1Vi8wNXQvWjVqeVRmZXBiNXg1WHcvay9qQ2U4MTlEbEcrc09YdFdRc0QxYW5jZnBXMk4zQkk0CnpiV1dqcFMyRG45ZUpiN1l4R3lsOFlwYnBGWEZYVmRPQnFxTEVySnlCMVBRZG9uTEthbFZ0dFlQWGRWS203eTZEc040dmRuZTZqT3gKN1NNMDdVRGRUQzlQTmRxaEhhZ1d1U3VkM1MwZW03QjFUSFE2TENCRnVaU1ltTENwUU1hVTRBS0UyMUJSMTVXUU02SkM5RHp2TjdxcApaMXRzejFVWTAwdEdubVgwWDEwb3JRd3lYNVlPUFYxaC9YMzUvSDlyVUdYT3M4NS9ZN3M2VzBzUzlHVFZUR01xRmdsMXN5Zk5xck1oCkxqRktTOS9RcE1mcG1IWE5HNU82eTczc3ozcWJ6NFJFT2JkN2Nic204cDZCdXFsRDMxSmRYaEoxdVBodis5VkZONTJmL24zUTQ1SnkKWnBrZlJ0cnpZK0tDcUI2d1ZPNnFwR0RUY09XQm5UZHErT3VVTm45Ti8wWkVUZHlXaytLeUQrYWxtWEhwQjdkNnFoWmxOQk5ib21xUwpPWnRieGx2eW1LTkk3aURGcHpyenJTb3ZQdmd5MS9tbkd2ZXJUYTduR216UDFOamZWbW91OXJQK284b05BT2k1eXU3ZlZJNEFBRUkxCitIQ05nYnpHOVlzVzB4V2JOYWMya3R1K1NHcFpKdFF2SVd2bUR3R28zUDFNaFF2ZzFFczFnMzlzSDBBd0hXL0tOSFU5Tkxhemp1RnAKWm5ucC9DazZLMEJuenpIWUN3eldDaHllUU45Z2RFWVpIYkhPOWlnRHFEUEtCSGZwMFU1R2pNNkswb0NZQ1daN1FrTGJsZ1Bjb1VWYgpXN2ZZOUIwQU40eGtDK1BVQXN3QmY0SThGS2REYlhVeWQySGFMeWZCWmV4MnR1KzJpZU1zMDZKdzB0bzU1T2FKL2JLekJ6cjhMVDFnCm1zeGRIWEZkalZ6WGswTHl0Q0RuVFZkSGk3Q0p6V3pnczl0b2NtWk9RSnNOenRONUtUNHNCMDhtYitxeGEycGlSSisrSWlOdjZLbmIKWGRqOUx1d3RNM25mVEQwd1UrLzFRZ0M2MndOWUIrb1dwSjhVQUJYc1d3aDNMZVFEL1o4VDB2WnRNZmVBeTlsaDhMYzQ1MWVsT2VzYQpjQTNCcnBuUW13WkVRZ05PUnV5NHNHaVU5L0dzR0QzQkFkZEd3cEFFT3lFSDU5R2YxMFR2YnB2em9qcnFqb1Y2eDQwL2NKRHZPZ3J2Ck8vUDJ1M08rN00rOVkzOTdVMWV6TGhYc2lyaTN1YXdEbm5SWHh0M21DUGI0d3B0Q0lNR0JnTFBINCs3emVRZUNJeVI2UlB3ZElSQnYKVy9CRUhjZWpoNUFrQUdMSCtZL29PQmdkWjZQSGs2a1BGUk0rV2NtL01xUDhSOVFXRjRPL3NqWTR0RTFtd3hhamZvdmRzc2xuUmtTZgpKblRuTjFTRmNYMU8zRVFJYTNFTDZpUUFpZEh6UWtBenVFa2RXTnF3ZzZ5ems2enJpOUxhQmNuckFWV2hUMEdhVm1DaDVTOURqY214Cnd4THdneVBHUmRBcmsyUWdPTkY5U256SVFBL3BKeW1ZVVpyQ29CUUFIYVVCb1pNbFlLbE9pYmg1STJTZ2tPNG9GUklaQUVZZ0xEZE8KR3hlK05zUUZTeFZtVEl3YkZSTkdKU2ZtWWVkR2RFQ1pPUUhZaUEyVU9jeURBT1FUcHdEb3RTVmhlbFNSR2RlbXg3UVpNVVBHbHU1eApBRHFpb3FQSFV3d0VBUWpTRHh3V2hvd1l3UnVsVFlreVlhRzArSlhreUhvNHRIV0lDOTFPQXd5a2s0NjMwMzVWN3FWWFRESWU2aWNlCm5hT1VuU05CbW5rc2JmbFFQMUxPVC9Sek9UMC9wMW8vNnlFSi9VU1ZzMUNBZThBMnVBWGI1Yk9Nc2xuRzUzN2gyd0VoTlNoQ0x5amcKUEhCZnN1WUxqZ003clA5S2xZQWxzMy9VTVBMbFZRQkFRUUlFSHBFQ1dFYVBTSEFqVWtERTU3Mjh6NmVGWlQ3aDV3SFI2VVVWSVd3awpMWm9LRnJwUnk0Q3lOWVNBQmpNdFI0OExjcno4dDJkRW4wN3h6MDFJS1FDZllVZEJMWFpjVFJoUmd5TXZiVXdPWGh3eEprTk1RQWFDCjFlL0pkR3kwNzNEMFpxcEhNMjRlVmh1bG11OFJGM3FBWUN2Q0VDejdnajBTRjh4QW1CRE1xRWN2bTdGcmdIN2cvRGIwQ25SWFlHWlYKcjQzeUFjeUN3emZUSTBBTUNsQ0R3c3crenUvdExNU1lndXczNEtaZ3dUa2lGZlB5c0FBQUFmVEpjckV6KzVqcC9aMklZUTV5Q2dKUQoyaXpzZzRueXlnbUw1dHpkUWVydUFBUWdOK3lVQURBWkdBZTRPUTBnZWxoNHRkb0Y4QXNmN1NiRnJaUzRBeWhuRzVCUU55R3F4cTFMClQ2NEtzbGM0aERBWEUrR2gxd1hZZFJGMlJZaWFaMmZPY3BCekluQitnck1DanA0SXdqa3ZBQlN5L0NLVVg0enhTVkdURXZTVWpCdzAKa3NHUERJd01Edzg3eU1seTB6T0dPak9tdWNpUUJETXZRMDd5TThiRXFBa0JkcEtIbmhJRHFNcUU3U1ZVZ0hlcGM4elBRK3ptSUswKwoxRks1VEt0ZHBEZlB0N1VHbTY2c1NpL2NzWi9jMXVNbTZvb21XODZHMVlUVkx1UkdGMzVGQjFnV3U2UUJ0N2dWUXlvSENMT2t3NmIwCkVJQXdNd0J0TmNSWkhTVUtUR0VObkFFM3F3RjdsanlzSW5vVUtMZms1VEZoN21aLzBlNEFaTHRGZUFGS3RwUVVnKzhGZmxqVXVBZzkKTGdJL1BzSW5ocG5YVVMxaEE0SVhXTlR6LysvaFQrUGFxbWxoMWFUNFhFS2JuZWlsSkN6a2VBOTV5NUs5YThzK2NHVGZkRUxkY2ViZQpkK1YvUDBqOXhnbldIdUsyQ2JEYW4wWTVXTUVFdm1INUZHdjQ2bmhyK2NpRk1rRkZJNitqU3ZaWm0rUkdrLzdLeDRPWENnQXJyRWxyClZYUnB6ZWVsamt1MDdnYURyTkhSVzY4ZmEvRDBNTDFtbHRiVDFPZWdBUUNpZWV1ZFRxYW92OUxnckFGZzFHZHRiaDdycEVRNHlEZ3YKS3lFbXIwbHpsbVhFc0J5MUxrVnZ5TUJ5UlZ4WGtTUG1kSi9xdHhiRnJ4ck5MMVlZL214Ulg5dnVJTjRaK2plQjQ2bnJ6cWRxZWw5UgpkYis3YnJxMlhIbEsxSHVpWkJ4ZE4wT3RXN3JzNHAxVlRXR2RObHhVUmxpU2d0Y2hSSlRra0tod2luTnlpbHV3SkNyWTBSSjNqSVJ0CkEyWEhtTC9mbmI5aklxOHBjemZVYjkyeC8vVjdMWGVTM1RyTU9CT1JFdUk2YXN5VUU5V2VYaERpdnJGMHJ0bWwvYkozWnhqNEdKOFkKRVdQaTJyd05VMEZFbXIzQmUvMk81VnJZd3RGVm1aMFZ6VzVGSWNkTm9JM2pGWmEzVmh6djN4a29XTzcvZzZ6cnQxWGRHVlVqVDlmcgppcFRtRzZQdGlKTEIzMWNQUGxWcmVxYk1uRlcxbk5HMFRHMmNQOXN3VWpuTStWQTdUZXIwNWJRdkZUWEVzNXMyY2MyTDZTMlRyN1Y3Ck1waHV2S2lQcXJma1drMmY5a3UvR0JGVnpIS2FseG0wU0Nkcm5jRmRZM05YaFlCNG5paEdsSFZjcVFRVUNEZGJyRjhRZTV0OUpNNE8KQjRpOXhUMFNZQ0Irbk11UGNVUlJqc3ZGR25ieW5CN3BPenZLbkYwMVpWZUwzOUpSVmxYRUZSVnFUcEMyS0tDTWRaWUtHMWl0RFkzYwpsam9qajdwb29FNUpjRk5jWEZTQjI5ZGp0N1RrUkJjYzVCZVdZeUpLOE10VDlpSDlZUGVNK0p0bXlqMHI5azQzNlVzcjJDRGU2aVllCm1PRThuSVB1N0pzOTFMdDIvTGJxcmJpNGVWY3F1Q1ZpM2VXeTcvRGxlNUxhZGRIcmMyeGlSSXVNOTZEV2REa2JCc3FhRnJtc3pCN20Kbzkwc3pKaUE2SmVqdlh5Y2wzTjJVZkh4aHBHOFpRS2licHR6ZG52eTludnpEcXg1dCsxNWR4MTV0NTJ2YjJtdkpJUWRCeUwrVFFudgpRSlFrSGc3L3BqZ2w4TWh4Y2ZmL2lUaDd3dVBpN2Y0bzdvN2dTSnh0L2hQMVNHVHR4M3lqTGNFallpVDRUeFNBMTBlVWFrSjlwS1BtCjFLbWVqZTB4Ymx1VVV4dmxYNDZyWG84WnNyZk1wSmdPc3lUQkw4SithZUFTaEo1SkJUY1VXVVA4dkZIdTUvT3k4bm5SaDB2S2dta2gKWVZJQ2JHUGNpQkkzcEFEckJRb1F5UWdQUGNySGVNRkZXSm9GQUFoWXZPRGFOU1g3S1FBZEpnTUJnZE1mckhRUWhxWmdIeGxnM2dQaAo1NHpvZ0JIV3lRYzFtR1Q3V2RRaWJPMlRFWkNmQ0NyVEoySFpEY0FPWUs3amhrVjRyeXh0Q2pwamtHTWltT293ekh2VjNYbGlrSkhtCm9hTW1lQm5UL0l5UTlNU0s5Tld3TkdOTmdWeFhJMklxZ012cFc3cU1ZNkNEM0Q0VVlyc3JQYTdQMmpLaXQwMm9yV1F5MEY1MzFnNmMKbUlIZTZVSEY5RmxCTVdaU2dJWkxvU2h0UWdIUUozMVVBTmJORThPOHRDRkIrZ0F2bzQrVDdtRDk2aGo5SEFKUUNtaCtEb0NPVjJrZAoxMUdLenk4QTBML0NRQUNBbnFpcUFGVE5iSktRWnVGMlJZQlpIbUJlQ2dqZkN3anlRcExrZU5Sa1E4SmpKV0QvRklDQUFBRGhSNlNuCkpyaC85bkp2ekFpK0NFalBocFNrRlNQc1NSTXlnWjBLVmtkQUE5QUpNUUVCNkwxcDBVV3Y4TnlZTE5jclEva1VBSk14WXlyOHNBcmMKcG84ZlJzRXl4MkhCUFBSRi9UTUFBaHVIQ25VblI0TkJZUmE3OFF0d0pDZG1wVHNKUU9ZakFBTHZtTnFSQUtzQkFHVjVoTWdCd1dzMgp4Z21QR0h4QndyUVc0NVVEQU1vYWhYay9tVU13M25rY2dNQWpqd0pReUpRQ0lQeUNNYzNGQWdBRTQxOVRNdGdwYTFHUFcwbjJERnd6CndjbnFVVXN5SGJ1WHRBbGJoaENqV3RLbStzeVdLamNtSVc2SWNURXhha09BWGhPZ2w3aklJQlBoNTJRRmhKaWdFcndJM0M4aDZCcEYKek1rZ0tQZ2s2QmtKMGd0OXNJUUFIRG9ERzBnT0FQcGhadmJUMGoyMHpCa2VKaVRGQktTSUNXN0dtUEFJZ0dCNlRVQU56bmJTdk9UTQpEUDNxUEx0eGdWRzMzRkc3ektoWjVKUXQ4NjVzOEs2dVNONzcybkg2eTk0M1ptanZqRFlYTFVvQThlUXZHSWtyRUgwQUFCMHgwQkVBCkhYbUF3RzhMQUFqclUrSjltbFR0R0N5RDk2dUpYaDErVUk1MENsR0RNR0tZbCtqTDJYVEFES2VnR2pVblIvaUU0T29EYnJNbWhVancKYWNlRXdNaElBcEFXQUJCMlhZTU55Z3QzYlVYL2grZXpMMjAxeStxU2VmbVp1SVljNnlaRnpjU1lHVEFRZGNkSzNiZERCanB3VUE4Ywp4UDFlOGwwYlhHejJETmk0Rm42U0pRVmh6RUl4ZTA2cE5kZmNaYTMyVDl2WUpUeGFrNGh6cFZGYzNHQzhmcUgvOGtsL0hYVk5kS21mCjI4bTgxdUM4eGxHVTljcWE1S090dXFIbUtUM1g2UkNvUEIwT0I4dHJaV3JjdFlwUlp2TjRqV0t3cWQ4bG5PbG1ESmg0YnkwSzh0ZEUKNUtpRXVpNG5SdVRJRFJsaVF3ejJKZzVvbFUrS3FBaXJDdUt5QWVucVF5clZiL2UxZmJUSWZ2dnYva3ozNk8rYUJuOVROZkFDMDFnVQpVRnljdXZKZTBJSTNqeVBsSGhLdi84OTJiaDV0RHNXWklIdkFBcXpBYmFqUTZ3cjhzamh2VGxRWUVPUXNpc2d4UmM1K042QWZFa0NjCkxVUGVkbGQyVEFkQXB5Q2hQL00vKzRyakdxbUhUUi9odmg1WElnOE1wSWc2ZjFINVR0anc1Zyt1dis3MnRBendQNTNta21PeU15dWEKM0xDV3VxYWdSR1RBTEg1bnBidHF1RU0wM2xScms1emx1akxhSjdOVVZ1S2s2dVNPNGFPdi9SU3Y5M2VkemovVmo3eGNPM0JLNEx3Mgp5SDYxMnYxdnJZNy94cmU4VEhlamFoY1JiY0VjZXZnc0szVGRyZnBFN2ovUDhiNGpIUHRBT3ZtdXlmMUJ0KzBUYTlmRmZ0MlZVVVBwCmpLRnVRZE1jbHJlc2FkdlhsWjB4TVRQT1pzWHA3QmlEdmM3aFJIaEhuWVVmMFZIU3lTSDNiSElPb3kzSEVPZm5sRUtmUXoyTTZSd0IKa0dDVEs0NXhBUUNOT0hqOUErSkxVVlgyZ1lxMHA4VnQ2OGhoSldGVmpRNktNaFlFNURIR0YvTEd0cmE2T2s1THVWMVVzTmFUNDVjVApadmpFdUpwd3U0dXdhd0R3UWRneTR5SXEyR292cWdhRUNnQ0lzRy9DSDVpSXQzdndkM29JdDdwSnQzdElON3VKdTdBaWlRS2RROTFBCk9WdktUN1lsdEFPcDZLNkk4eVdQZTQ4dlB4QjM3aWsrV1JYbXJxdXdteWIwS3V6TEJidHpSWTNrS2VscmZUUndqU0xQcWpHVEl0d1UKLytTSyt2eTZucnpWRFVUWk5tZnY5dVErQktCY1lOTHM5YnkzclNyZkU3TnVwWWhISXJnbEVkMFNIQUhRY1NVWlNQekxlb1NIamdQUQpJd3owUkIySG9hTjhJNWh5dEMwODB1TXc5QXRJOUVzOGxCQWNNVkJkVEhBMXJqeTNxYy9iTmdFQXdpNUxBUURCS1FVQkNkYXZnQTNoCnh1VElZVUgyRU9zdmZuSFp2T1Q5SlZXQlQwU2FsbUVuNUpnaE9kNGpSUTBJc29aNDZHSHUveElBWmZqVnNMbHVNdDhETzYyQjNlT20KMVlTQUlRVkE4QW9QUjVtcVVDRTR4Z3NBVUtaUG1qVWhndTFVUmdVWUZ5ZmJ6cUVPQ2dIM1lMeFN3RUNZQ1RGWW1GN3RwNTF3MDFNQQpsRGtqeUZ5UXBhL0tUNnpKTXlOS0FFQ1pVV1hHbGlaRlA0OERFRXdNU2hpUUNTTTYwWVhjTkFBR1F1K2FBUlVsaDJPWVVLdEtYRUJNCjlncUlJNEtzWVVINkJCeGJsdkZUQURyUngzNENBQjE1ZFA2M0FlZ1JCdnBmQmFDNldmWVRWVDNIckEwdzZ3TE0ramtXdUFYYmxYT00KaW5uR3RZRHdrM25oNlpDSXZDRERoV0FPUjlKVDl3UVBFS0NmNHdDRUdKWWdoMFJ3Zk1td0JEY3NvWTZ4M3h4alhaNFdYSnFWdnpHbgpKQ2Y3elJCQ1JwaGxsdXhsREhPNHZPSWNyL0FEci9qS3VQajh1REp2UW9HZmhoWDE2RkVsYmhnbUZhVW5BMkhnOWVHTXQwbGxxZ2YwCkV3RW9OWDRCTWxEUWZEaUtLM2tYT242U0RBVGpYMHRtT1BBOGJNYXRtV0RqdmlVNE1qZkxDNXY2cENmRG1ZZ2hJUUNnekg0dUFLRFUKUVltWlVHYU5pbzhCRUF5QlpicFlpSDRXd3NsSWQ5SUFBSUYxR2dCUU9uVER5TkVUTW55d0syZG5BQUFRYmw2ZjBjL0tHT1FDUW9mNQp5QUUxWVVHUFh6Yml3N0N0SHpiU2xhcEVBekJFV0RjRE9DQnNhTUNpZGVxV09XZEhsK29kZ29xSmtXczhUSmlIVzRibDdnaGZNcGQ1CkFmWldCMEtGMUZuemN1U3NGQUFRYWxvTVRnOTR5azBxOExOYWdFRXcrTlhYbWU1c0J3Q1VOY09IdzhKOElzUW9HM3haNURnNFViblEKQStTVG8yYVZoSUFrZTQ3LzBRenJ4anlyYm9sUnU5UmVHNkpYem5NK1hlU2ZYQmU4dVNrNStaVzE4RHZyMlNqM3pmbjJzMHRpOG9xVwpFTllDQUNJc3ExTUFsR0tnVkJKMENvQ2c1emFnaEZFMjhNVm5ZTTRnZGtWSmpNSnBheWlmaWdTT29uN3hDVHNYTzY0dTJIWmx4K3pnClp3RW5QTUFtWkVDV0FxRE1LVDdDSzBDT0NwRERmT2pYblJJQ0FNTEZOSEFjdDE5V3VObHo2cXUrai85cnNDVGU5ZG1hcmlpdUowYU0KUUlUMUxzQkFsSVFGTUJBYytMeG55NzNWUnptd3d0WGxscG00cDhmR1pMaFZLV2xWUnR3U0VCZFVoV1BjejBmclNtekZOK1RWdFpMVwpSbTVaSGIrazFsaDh5WG5sbmFGeTZoTDMvSktzVEYvUllydktFbDN2MXROTlExemhHTDBrSVA1c1RjWWJwNDkwYzRlY25TMVRsUTN6CnpHdisraXZCMXBxZ1hEck9iL1BLM2xnUjUyNUlpWnN5WWt5Qmo4bXhNUWxsVlhoMmprdUtzQWxoQVdGVkNYWXJZVU9RRSs0dThHbmUKV2VqSW4rQy84L1h3bWRqa0N5emJ2OTF3dnNDeEZzNnByMDBYNTk1VVVuWmg5NEhDVVA4N1FVMmhkWnpjTzRuM0dMTmpldXF1Q2IvWApSWWhyc3lOcUtnRFRCU0VxTENaRTFlQW95dDQyVWhMNjdMaWV1cW1qeExUZ051Zit3THRmMldVQm1iZVh5L1dLM2xwUjVLenFLTHVPClV5djYxKy8zNWY5UDk2VTFQYU5mOVBtRXNHQlJjaXBxS055Mm5ybmxMTnpweTQ5WlAxcVh0UzZ3U3N6Y1Uvd2V2SEg4emRETTZZUUYKQVBxNWI0Wk9iOCtjc0RsZTRPblJkTnNabWViNmJHZStld1MxTUlLUERaNmNkTDBoYzcxajd2dk02YjNpR0cyY1lWZjN1Y3VIQmkvNQo3QmZDdHFzYmhwcUlzalBDWTI4dzJRa1daNHN1U0xUSlk4M01CS3pHU2hWbk1UYzdtWnNNMWlZN21UdkNmcUk0VzRkS3ZnamM0RzV6CmdJN25xZncwWitWbjlRZ0FpUTRCaURObTV3MjV4RzFCQmZXV0VyK3Z4bTFyeUdFRkFCclVrZ1ExeHlkTU1ONHh0bFIxVkZkeG1qOGYKVjU3YWRGQm41WGdmbjdpbElkNHh3WGtMMjJiaWRqZjBMa1NVNkRVRklhNGo3Wmwrd2tBSDhDN2dIcGhoSGROU2Ryb0F4VkkzTldlMwpGRGYyWmR5N011bDlzZUNCa0g5ZnFMZ2pGTjFWRkc4S0N4ZDUrTEFDWERUd3ExcHdXdUZqUnZLaTRSVVBDeXhMMmZONi9MUWM3NWNYClJBeDU2enBTd3B3Q0lNcGVUL1pCYjg1TmErN3Qzcnc3MWpjVHlzOTNwQzIzSklJN1lvQStBSUNFdDZYaXUxS3dmYVRqRENROGtQeXkKQlB2aTQrTHZpWTcwQ0F6OWkwcUJFWHRIZEZ6SGVlaGZZYU5IOEFoZ0VMemRFZ0tsR0toaFUxQWNWN3diMTUzY01sRTNnWUVLTHJBUwpURUFNQUFnZlVFRUFHcFdBU3hCcGtQbnVKSzhrcEhoN1FRTXNFOHFzRWpNdVF3K0lzUU5pcEpzTFRHTFVFQWMxd2tzQkVISktrcG1jCmFKRnN4d3huQnFRRWs0cDhxdFJZVTBnL2ZwanZBUllhL0pRR0xEVG9TUlYrVnA4Y0thMkgrWjB3K0tXQUJ1R2NJak1nUjN1RlFJaHgKUG5pWEhEdnJwSzZqME1MTW1aQ0NxeXNBSUxBMnBibVlyem83WG5OMUFnQ0NocTVQZ0ZoU3BLOHIwOWFWaUhYVkVRQTlrWDRnQU1YMQpBSUJRY1dOV1RJK0k2c0FHYXNjRUhzRnNtYklpR3RTOG1ESXRLcHdRNVF6ek1jQWM5WXFPQUFocVNKQTJDQUhvaEozNUV3QTZIdEw2Ci94K0FIZzF5cFR3OWRVbktlVndBZ09ybVdQVVBCYmJCSTFYenpPSWc5N09nNE0yUU1DOGt3UWNWc08rVEh3YkNmZzZBRUJNd1JKVTEKSWswQkVCRGFJOElPaWJHajNNSmg1b1ZKNFJjQnhibUFtcnBnSkszMm9CZDF1Q1FBSmZ0c0twR1QwaHl2K01NSjZiVXg2WnRlZFpGWApEU3hMbUIweW9nSkNlZFdaQUVHbXdCc3BBQUNCTndMdmk1bUc5QU1yOC8wR3FNY0FpUEF3Q3BhNm14S2N6VGx2SkN5YTRWQ0ZzQmtHCm9lQUlUeTB5cUFEUWtBeGs4aktIK1ZuRG9ndzNkT1VoWER3Q09EcW5sS2h4YVpKK0lBQWhobmtRZ0FiWUFJQXkrNWlaRG5xYW95UEQKdzBKNmhXQjVCZ0NFbnBIQk1ScHpZUGx4QXdiQ0JMVHA0R2tlSG5wQ0FnZ0FQNnZHQmJWdy9zTXliT3NIUGdOaHZSdTJZd2IwRXpGaQoxN1M0RFMxMXV5dm5qb1Y2eDVMM3dKcDd2d2UvbzBaR0JLaFZIamJNUTgrSkFRQmwrVVdZb0JJSGM0QmczU01jY1Rjcnpab1JnMU1PCkJVTkZNRWNiZkd6aXJBNFlKWThDMEpRZ2M0Z0p1ekkrQkNEa2pCenJsMUZtaFlXenJJOFh1RGRDN05wUVozMm9yVEZFcXc0eS9oSmkKNWk4eGM5YlltTGljdUtzc1hPdDRNOWowNXFLQXNpalBYSkttQUFpL3BJSXV2ZU4rb0NXWVNBZ3o2R2Zoc0Z0WUdaRVVha1VHcnRSSgpsNXNLTzZiSWNQQXpCc1RVaGU2QzdUN0NxZ25BWENyK2xYUStnMjhraEFBMHdjMGE0U0k4WEdEV3BIdTUrRlUxTUtCeENWMmVYM0Z5Cm8vdnN2dld0LzJ2bzA1MnVOOER2dHFZbWhQV0VOUVBFb0EwVE9kWU5HSWl5M1F1VXZXM1BPN0NEMVFYUUQzbGZROXBXWWlKQzdBby8KYTUyV3RzSEszZForc0cxNUs2eDllOFAwV2NMKzV5bFpBNk9zUW5lamVLRDRVbDlab1o5ZXRLTzlNTlJjYmJsNnNiZnlrazljdkN3OQpIK1dkM0ZJV0w0aGxnKzJUSm81bHFLM2RXK25zWndtZGpXZVdXa2xiMHBNSndabUlnaEtUWWhOQU1zaEFtekp5REFZM1A1amo0aGJZCnVKQ0NzTktGQ2t2UmEzenlPblMzbkZ3VDRueXluSmo4ZzcvTi9GYmY4K3VHSHFScjZQVjFUVW1nR256Q25Oc2k4Rks1ZTViY1RVVkIKMUhCNmE1Z1k2OG5mTVJmY3MrYzhjRkR1OW1idmdXdTNqaEJSWWphVXFDVWhjUjAyM0FNQ0RBU1VTc1V0V0xlL2NjdFdFdGVySnlTYQpRZG1WT1ZYK3ByRm94NWE5cEMzYXQ3ejlkOC9Kcnl5WEE0cjJmc243Y3hMeWcrNXpkMTNudnZhY3VqVllkTWY5enBmRytvaW96TWw5CjIrMDRzK0w0NE83Z2UzOTNGWDNYKzliL09mYmUvNWg1OTZ2eHQyNzJ2K3UyZkRDaHVIaXo4OXhlWCtGWDNXODhrRjdaa3RRSGxBMkwKSE5xQ2pEN0xaUzRYdDRSVmxiZnQ3ejJ3bmYwZnprdjNURFVIQ3NZV2g1dWcwWFk2Mm5ZZzhmRFgyemlKRmxhaWpaM29aQ2NZcVhBVgpnQ0g2RmgxQXlSTjFpRHNQTVNoMTk1OEMwQ012d281ekRqZVNJVEJ1bk1QYjVBaVRJVEMzbXdzQWFLUlBxUEhLQy9kbHVBTVZibHNGCkFBaXpvVUl2UzdCK0RtYVNVZUJvdThTcXZTRnUrM0NoNi9SV0g4a254VTV6OFhFVi9wWVJ2Nk1ueFkyRUxUTTFZY1J0cUFFRDRUZTEKcE4wdVFEd0FnNEJTa1M5SVBBa2pOaXpIcnluQlJ2YU9LV2REOXZHMm91VzJYSHBmS25zZ0ZuNGxFbjhsa3Q4VGl1K0pXdy9FN3kyego4NVpGMUlnT3M2ckJyZXN4QUhTaVBiRHZzRTlCQ2VvSnMycENVRXZkNkNKRzlTa0FJdTFBQUtJZWRPZmR0T1FmV0FwdVd2NjZLYXpjCkU3SHVpTVczaGNJRE1ROEEwQjI1Nk00VDBPZGZCS0NmSTZGSFlPam45SE5QZmlTeWxoSWJabWMvUWF3ZC9pL1EwbzlJdEMwQ1NqRlEKUzF4VW5wRDlKYUYrUFdISWplcUJaUUlCYUU0QWJEQjhRSUh4U3BFallnQkFXRmZubVdIMjFaRDZqUVZkWVZCRERjRGthR1FmRjl2UApSL1Z6MHQwc3BJZDlISUN5Sm1HOU1FeUwvaW45SEFFUUhPemxWMk9uVmNEbXgza0J4RWpCMm9HYlNmYUREbWhoL3NBY05HNHpmV0tFCkh5WjM0aWFGcUNsQjJpUVhPY29wc0RQZlVMVVdkWFdBMVJNT3d4NFhnMVhwTlR2dFZYdmJhMzIwSXdES1dsWWlZcHFNcUJxV3dXK28KTTJLSEFQUW8vU1QwUUpreEhYVC9iQm9RNnhvZ0RBQ2dyYTcvbDdYMzRHN3J1aFoxOHlQdVBUbXhKSklnQWFJWGdtQW4xU1ZMZGh4MwpKM0VjTys1V284U0d2ckVCN0kzZTJYdnZBRHRCTkRhQUFMdFlSRFhic2gwbjU1YWY4ZWJDbGlDWWtuTXkzbnRqZkFNRFJDZktYdCthCmE2NDVhWEVITSs3SUNSc1lVeHJoS0ZZeWpCZUJDNks2ejBwcVdIenFRUCtPQUwyMFVPR0wzdk1peDR6blplcnpDd0U2dnRvMUl3WFMKMWVlcDhjeExnV3R6MHB0ek1waS9YdlBMdnBxWHdyRDNxVi94b1YvNW1oOHI4ZU84ZVQzcUhqV1QvUENTRlFpUENWRDJxQ2xkZ0xMNwpVUVNGM29jeitsRFNqS0JQK3VxNDVzMVo0K2tacytpWkFER1Q5VjF5WjZ6WnFKZVdVVFJPWEJ6VmZ6QnVQRFBwS0pxdzhjZXR6RkVMCmN4U01HS1ZhbytVd0h5bzFoSjVsekFCUCtxSUFQWGVnWjdyRENUUUMxRUpZcWk4cGM4YkJXVUJSS0ZiRVJhM1hvT2ppRFBJYlVCK1UKcGpPRTB3WndGTWZyVm5GSGphakRpeGRGRjNOR3ROUnRxSjFmS1AyNVM1YmRLY3RzcXozWlZwWFpLME10V24zNHFTa3RKVUR3RFJZbQptNjJpT0dlWEhCbkpPQUVDeEpvMlU2dGdLQk1vdVJiR1hmYndWa0NBM0RDVHkxMjJjV0t1L0oxVzRmMVc4YU9PNGg5N2k1OTBjZmRjCk9URjl6aExHV05hQWpNS2toRGFGd3ltU1NDUkFxRHNNNVJrNTR6b2tRQU5ZWnArS1Bxemx3czhNeEs2N0xxT3JPbk9nTm1kS3cvUVQKdEhIMU13RlNVUUlFTDVnenBjK2ZVbFJNMVp5SjFIMndJUHZhTDdzUnJMMGVycm9XcXY1YnVQYTlpUFQzYzJwMlNNT0pLSzk0di9sZwo1TXVMQzNKUmlCRE42YmdoRXlWQXFFTnEwRVFKRUR0aVp3ZVRPeW5tazMzNDRBM3hFU2puZWt6UFdEU3dWcXk1WVN1OEQxbTkrS2wyCkpXZmFVYkRXeFY5dFlJWlFOQXZ1aGY0dnY0a3hROUltdERrVGF2cVlPbnRBbWQwblA5bFZtem1xWkMraVJRUjZ6QXdDVkxMYVZMclYKV1BKZnZSVW9JY09VdTJEZ2h1MjhTTExHNDZxYkgvWHdZdldnUWZ4RUk1Z1FDSkJvcDU2emFlTnNtWmp4WkZBdGlyTVRSdWFSVGZMUAozb3AvemtpZWpKWDg3OEhYZnU2K0dOTGZVWC8xVjl1SEgvVi8rR25yeDJmNmI0SUF2UjdBUHV6OVFqeGRVN0ppWjk0MThIYzBWWk1HClQ0ZmMxSFBEMnlCekRsV1IvVisxOTJvMGJUY3ZUdHhncjJLTVhYVkIzSmlmSUxtYkJ1NDZLWXFSL0ppZUhkY0s0bGp4aWxxMHBHTDYKRGZBdnM1Wmd0Q041VVN1S0JvVU03S2ladGFTNC9IOTl6SVgrN081dTBWSkhlUXg3ei9mWjFXaEh4V0pQOWtoemZzd2hTV2dsNnliSgpSa2ZlamtPMDZjcmJieFRjYXdJazkxcUtEbG9rZDJHRXErZkh6UEN3QUQrR0FvcDVteDdSaHBzZmQrUW5Hb3RSWE1keUptSDkvYUt6ClpOM0RXN2VlOXFrS2ZIcitkc05yUHd4WGZOdFp1TzM4Y01uemg1Z243MUhUcFFmdEpZZXR4YnV0Wis1M3ZicG4veXlvK25oQ2UzVjMKOE9LRDl2T1BXOC8vbzdQaUgxMW4vMC8vK2YvVmYrVi85WjU5VXY5QnZPL1NablBSZ1JZRzc0cE53OXVKMnV0ck5hcTRTcjFSaTYycQo2aUoxWDY3ZGZ1K2c4ZkxQUFFYZmRaZjgxUFduQS9mWDJ5WlVTQ1locTlwVzNyeXJyZGttMUJ0Njlib01BeXRDQ2JONGNrRkVMZDJVClNqZHJYd3pZUE9XWEFwVFNvQmRWS1YxMzBxRWlTZWs3bFpSclNuVk1xWWtxZGFzZ1FOaElxMnFvWGRQZXA3MlNJSGg3QnRhV0ViNXkKT1ZFVE0weXdKaFU1UGltM3QrWlY0dnE3VHZuWldIUEplZ2VNVmJrK0pRZ1E4NjZEalNwSG8vcFZvRFc4TlRzN1p1WEc3ZnhObHhDbApxNk9lNUp4ZGoyaXZVYkxUeUY5Q1NVV2NzQ0Z2M1FVM3pvK1JmOW94cW80TXhvYzY0cEZPOTFDbmY2ZzFQTkRvRHRYYVI1YS9KWFRuCklucmhvcGtSUWVYUlFhMlljUS9hbXhsQTlzT2R0ZkpDVHBnSnNCSnVRYUplc1A0MEFnU2FsYi9iVUxUYldMeGIvOWttZm1jWHgvWXgKN1YwVlVweDlnK2FBMUlJRzNkVWRRN01MZHFKOVVYUitUWGYrOVcxZXZQYlpiZEN6cEtCeXJsSGE5UXVMYTFTKzBZdFpSNVFZS2JkMQpLWDR0ZWlUYjBnRWdRTFhybXFvTjdkZnIrZzgyVEJjVGRwaGQ4RlpzN0NEQm1sTm56NkxlRjh4eFBYMElwZmd3dXV2eWUyVnZ6MWxMCkZ6eUZBYmR3eHBiVHE2RzF5bGtkeXB3T09VeUpVYTJUWndLRW1uekRqTlJMSkFVSWJZeW5DaVFtOTUyZ2ZTSEptdEhXM01tbjlzTVkKUXJFRHhnZ0JmK1pPd2hIU3lwNDEwNmNKbUFSbWV0Vm9oODBNd1pqVVprMXFmdXRWWkl3bzhyc1VGZTdhd2hZcGIxTFBBUlViMVozbwpySHVsdWVwRTY1MVhPcW96QnFSWlk2cXNhVHduWXM2TzIyaHhHNXlDQTJYRnpSbWIxaGZ0Snp0aEIyZ3hlMDRjYlMzTVhEVFJsaTI1CmEwK2pRYmtyRm5xQUFQZmlEYWlLK3JEU1FVM2VzRHA3c0RhNVhSb0pVRVpLZ0xxVkp6clNsc0ErOThuK3Z3alF2MkU4aUxTTlhVK04KSjMyZDY5cXM4cGozQU5mbkZRQVlEM2pQclhrNXhRMi8vSnNGK2RjQitWY0xzazhEeW5jWHNMTityZEN2aDZHRk1ZcytNRXFBa0gvOApVb0JRYkdZRXJYOWxEZWhvZlNpSkdMNFo5RjYwbDRyVkp5OFpVVjZjTXBUTVdwQUFoZXRoNEFmdEFBR0N6emk1MTkzSUd5Zkx4NGszCkpzeWxjMjdKaklzN2JzOGRzVERIYmJsSjA4cVpRQUxFOEtLRk5oQ2c3REhVcC8zcEszbEJnRkNZeDErZkMrZVRDVUJVWWhCdm9aRXoKWHcrM0JBZG56VHU0WVZUK09EZTVURU9mTTZEeXpVTTRTRU5XUHhLZ3JGNE1Qa0p3T1A2RWxUYUtaNCtoSkZ6Z3FTVDFxUkM5S1B1SAoxaUhOYXEzTmFIMHVRSm1UV3ZqcTU0NlM4SnI1OFE3QmVoYzhJNjFMQVdNLzAwdFNBb1EyYmFGT01XZ0JDMTRHWjlIRldVUkJiT2F5CmpiRms1YTdWRisxM1M1NzBpTC9yeW4vY0NRTmI3cVk5ZDkzTTIzWUk3N281Q3hhVXhET0ZBYm56SkJJRlZDekhsdFJUVklXQ01ZSm0KS3VqbDlTbmhkd3VjNnE3TDZxbk5IS3lqQkNoclZFbERBcVFDZjJlTXF1bGViZTRFeVp2VUZrOUlMMHpjS3ZaZmUyUDJ6c2NMeWs4aQp5bzlDMVY4RWJvTURYVnVVdnhzeEZrWkljVkIxZGZTTDk0Yy92VHhYTFE3aGdrVTlKMmdFQndJQk91NUFRU3NWeUFHUFFjMXV2WG9HCjJqYXB6VjB5TXBjdDZBWXpsc3dlTmExUG03L1VKdDdvZ1hjQWhZNEN5UkprODBicWppQkFkSjhhUkEzbVZUbTljdmhIWUU3RFhqUXkKVjR6TW1FVXdaeXhZOUFoalR2NWh2WERWaEY1RzBNRkxDaEIvMGNsZGNsSWFSRG1RYUxOSnVOWEEzM1J5TjZ5TU9KbTVyQWFuekR0dwpGLzh3VlBaL2Vvci9idzlxa3ZwOTcra0h6dGVXWlcvM2ZIblRWZlZ4dzEvLzJQUCtwMjBmWHVxOFZwU3dYVW5ZZmo5ZlZ4VFFuRjUwCjVNZjA4S1ByYnNmZEhWVU5IZGVuR2pEVFNOMVhVOSs4dnFWL2Q3YjZ6TXpOMTJleHorYmtWMWIxWlp1a2NOZkEzaVlGYTRSNFdjZGYKMGZCakduRU1LMHFvZUlzNEk2eGtoS1hNQlEwbnBHTXY2ZEE4UGs2d1Y3VDVqenJLOTBaSzEvczRNY081U1BXNzNrL0xWaHdYdG9hNQpjeDM1YTI3SmhsYThydWF0R3NVSnAzRERLdHEwZ2NSd0V4YkpYbjNwVVh2UnZWYnhRVlBCWFRkY3hVOVlCZXNPY0NBUUxFSE1tWmVBCjRkYWR0MnFXZ0JXdGUxZ3hOeWZxRkFhMXZPRnIrVFA2MHlGYjJmYzlsLzQrZk9GK2wvaHhhOG1EMWtzSGJhY1BYR1c3bnRLZHhySjEKMStrZzlzZVE1cDJZK2V4M25SZWZURnorKy9pci8zdjQzRCs2TC94WDcvbWYreTcrTkZSMDBIcGhzNkZrcjVHOVRwUWxMSjl1V1JWYgplaENSNmtSZDFiNnFjdHYyOGE3anlsRnJ5Wk9oNGgrYkx4KzZQOWszVk82UTBrMDF2bEdIYjlRb3QrVFNiYlY4QjlOc0t0U0o1QmFoCk9JNVkxNkN3elpaU3ZpMC83ajJwZGF0bjYxL0hTUk9hWTNMelVzRFZxQnZJNCtoUEVDQThLVUM5UGRxaEZ2VmdtNnF2Ry84OGlBdnYKRXV4dGt3aEVmQVdjbTJST0sybFRNdFpBYmJuNzlxVmVIV3B2SEcxaGptR2NTUXcrQXZhdWc1ZXdDNklPVkVFMDdnQlFaNHgxSnlEWQpRQTRFUnNMZGRrdnVOdVd2T1Ztek9HTkNKUXdaSlhHWEtPR1V4STJmN0pyMVI2VHBBUTcybzN0b01Od25qQTl4L2FGR2YyVDhhZ1c3Ck1LM0lXekR4WW8yOHVJZTdiS0l2V29ScnFQRkY3cFFCaGs5QkpEa05pSHRFc1FaUnZGNjQwWmkzM1NqZXFTL2M4WlFpUTNYQit5L2YKMStGN21PYXVHdHNuc0VPalpwL1E3V25CZ1Y2cVFkcGQvVXZCZDNRVXg2L2FJMUs4cURzdmNreUFVaHIwcnpPTjBwWG9LV2tDZEV5RApqZ21RZEZNTEFsUzdvYnVld0QvZU1GeE5XR0NHSUZoMXNZTjZ6cHdLQkNoM2ltQ09vMG9paUc2Wm9GdjY2b1N4Y0tGQnNsRFBuN0ZuCjk2cG9MWFdzZG5sMnV4UUVLRDBDaENaK2FPNUhVdnR0QWFyeUNIUEtsRVl5L09NMTVRNFQyVDBZakp0d0JtUUl4anZXSktvM1RaL1EKZ2V1Y0dKRm5lalU1VTNvUW1neWYrcmRqOGxkRzVlQWlKVjJxZ2lHY05XOEFBWUlwK29tMm1wUE5WYWRhN3B4b3I4b2NsSUVBWlV6agoyWXRtVlA0blljdEoyT2xyTmtxQXNqY2NsUHFnTTBuN29WR1NGRVZraFkybkFnVGNrUmwxME5jY09URVlLRTNaOCtCejJ0d0JsYWhYClhUU0FpK0hmN0t0QkFvUjJUR09VQUozc3gwNzJxazUwS1o0S1VOSisvdjhSb0Y4M25tY2IybWVVUUhxWUo5MTFyczJoTUErNERnQ1cKODV5QTdPYUM3SFpBVG5FcklMOGVRbHdMU3I4T0tUNE1hQzR2YU1RQlBUTkFvcEZwNWw4SlVOWXdDdjlRQWdRT0FSOW5kcmM2czE5UAo3MVVKQm1TRlhyeGcxaXIwbzFxQ01GRFJBaWFXMzRvK1l5K0M3VFZJSnNqenMxWnhzRUUwNTJHT1cra2o1bHl2blRucG9IcUJvVjRaClBsUVhFUVdCUmsyb01BTVZpMHFtQVNWWFRGOGlRR2paYTg3Tm52TlE5a05Ea1NvQ3BKc1RjbEs3alJnQnRMY1FsVWhPQ2hDcXJUbUEKbmVwU1puU3I0SXZJSGpPbUJJaktPMHVtU0t0UlJuTzNQQlBzcDcwdXM2VUd2bkFaUFZJUUlOcTRKaVZBTksrSkcydmpKenBwUGtOMgp0eExzQjM0SktBZG9pcXFoYm1iT1c5a0w5bVFvQ01aK0N6TmlZaXlhd05aWnF4N3hUbGYrOTEyaWg2M2MvWHBVblgzTEtUeHNMbmpVCm5mK2drelZ2WXM2UjJaTlkxaVJhRGt1dUpDWnJxNk0xU2hNbFFLanFUMDh5UURXZ0J1MDQwVmtEQXBRMUpLVlA0N256K294aE9RaFEKeHBDU0VxRGNwQUFKSmpWbEU5V3YrcTVmbnZ6MHF1L0dhM1BLU3hIOHRhRGl3M25wWnd2eXY0YlF0bHRSU01lZnF5MzEvdlgxc2I5YwptcnpCbTYwN3RhZ0VBVW81RUNWQTZFelloc0pDendVSXBrRm9iUTdlUThZU3lWcEJLMlZveWpLb1kzc3RCV3RkckdnVHZBUHNpQlV0CnBmbE5LRG80WjRSZmUvYWtEZ25RQ015cnBDQkF0TjY2SEs4S3BzZ2dRSnlvRlo0TGxWcUpPbGlySnZhaVFlQzM4a1AxOEtUY2tBMDAKaUJ1MlUrMCtZQUFRcmpWdzRrNzJtb09Uc0hHMzdLQ1N2RjJuK0g1cnhjOURrbi82eXY3UlZmSkRvK2o3RnRIRDV0S0UvbzJabWsrOQowZy9IRkgvci8rS0RyamMvNi8zcjc4ZXFKUWxueWFhN2VCa3ZDY2dLbzhhMy9Lcm1qdXJoNWpwN2QyVkRiNjFqMkNLZFVyNFZ2Rld5CmIzakhYM3RwL2s3Tk1EYllVaXNkbGIyOXBDdmJKTmgzU2Y0NlViQ295dy9qNG1WY3Nxb1RyaWg1eTFyMlNoMTNxWlkzVC9KbXRleWcKRXBWVENwTmMxR1hXVXJIUmtML2hZQzVwUGdncC9qTHhLWHROVlhMWW5MZHU1NjZhYVpFNmJnSVRiK2tsMnc3eHBsbXlhUld0RXR3UQpKbHdoeFJzTzhhNWJ0T2VSSENDS0Rwc2t1dzI4cUlVVk1RaFg3Skk0U3ZETWoxa3JWcDBseTY2OHhmclNlVmZ4TEVFUEtRcERocUlGCm9taTM4WTIvajU5N01zQTlhaTdmYnp0MzBKRzNhU2lKTzBxaW5zSkY2K21nNGUyOTVpdVAyOC8rMEg3NXYyYk8vVGdDdG5UMW4wTVgKbi9UQWdGcHgySFgyL21EZXVyRmt6MW02cXZ0b1V5MkxTN1ZyVXZrV2RuMVg5OTZCNmEzNzdSZS9iU3IrZnJqb1NmdkZJOTBYbTFwMQovSTR5RHE1VHExNnZ3amFxMWVzeTlib0NXNi9ETnU1Z3laUVJhcmxLdllrQlNkSEJYZ3prUE9OcG1abjBLbnd2ZXM5TEJRaWtKNFU2Cm9RYW8yOENmMkpwS0cxUHBvNnJlSGgwSVVHKzdzcnRicmZaaUJUc0VkeHR0ck10ZE1ZcENCdWFzaWpZdDUvVFhTdHJyaXFjc2hXdXQKNG9nbmQwakpuOEpGeWErY1lNMG1XcmFMVmwxb2k4T2FIUnhJa0hnbVFKdHUwUmFLQStWdGV0aEJnalpTeDU1UTUwY3MrVEZIWHR3cAozakI5ZHRka3VLYzFQc1R3UjRUK3Z0bHdEOG1ROW9qUTdPcXVoZVVYUjJ1Rk00UXcxc1NQT3ZoTGVzNlNLUStrZHNuQm1UTng1ODJDClJXZGUxQTN1bFI5dHlGK3JGNjgzaXJmcUM3YnJpN2ZjRmV2T3N3bG56VjJUYWw5UGJYZkhEa25zd0F3Q1JPN2hPdENnWjFBeVJLRzcKUzd5VWxQRWN2MnFmcEVnM29YL0JpekducHc3MHduNjA1SlkwbkRvOWhuTG5GeEdnZEFGS3JZSWRpd0RCYVdWQzg4VUcrY2FhcVhUTgpKWXA1MFA1S3Y1SStqNEl1N0hFZFl4akxHVlRCVVlqVktTc2Iwb25uR3ZQbTYzblR0cHdlRmIyMWp0TW16MjZ0bzNVaEFVb2xRWVA5CmdJWXlKNDFvOWYrWkFQM1Nma3h3TFh2Q3lCb25jL3JVcHpxa3RCNGxlMFRQR2lPWVhtTXlhZEtZNDhWT0RrcGZHYWpMSEZYQ2dSVEcKRnpUVEhsR2ZHbFl5QmxYNVF6ckpKQ3BhVFRXRmZBWHNwNmtxczZYcVpGdFYxaEE0a3pwelJnc2VrN1ZtQlFHaW8rSlZqcXlFaFJJZwppcFQ5d0cxUXBjUlZhK2FpNllSZjk4b3NUZ3NaR1N1MjdCVjBJV1BlbURtano1alFady9qckY1TTBLc1dEU2c1L1hVNWd5Z2JtaEtnCmpFR2NFcUNUM2NyZlBGT2ZYd2dRQ00ydkNkQ0xrWjVmVTU4WDdZZFNuNmY4MG42b01FK1M1OTV6YzBFQjNBb29nWnRCSkQxM2dvcXEKa0JLNEhWSldocFUzd29vYkVlbjFzT3FUb09hMWdGWVMwTEZEUnBTMlBQdDBDU3hkZ01CK1hpcEF0RzQxRXFCZVBYeEZtTDAxL0ZHbAphTWJNOTd2WTh3Nk8zMDRMb2VVYnpxU0ZQVzREQVFJLzRFOGFTdjBXUWJpSk0rK21qMXRvd3laS2dLaHVHUFJ4RTVVaGo0SkFveWEwCisreGZDdERUOEErWUVGdytnNEM3dk5LbnpSelJNYWFUYWNoQktrc1haYytjSEZmU2gzQmF2eG8renF3KzFTdnRzdXgrSEpYMUhOVGwKak9OMEx4SWd0QWQ3Q0VNNzRRZXdZd0owc3ZrMkNGRE9LRXJYVFFsUTFyaVJ2ZHJDajNlZ0VwRTlLdmlXcHdUb2FjTzhPZlF5V0FGdwpJRHNNLzZ4RjFPWXdLMmpJQm50WWErSWZOWEQzM2R5N0h2NStJM2hQNlpPQmdzZDlySjFHVkxObmxrQUNOS0VBbTRIeG51VzNNZWVjCjZRTEVCQ3Z2VldaMEptY2tJL2p2MnF0QWdHakRNc2FNRnU1eWFraVcwLzhMQVdKTjZJVVRXTG12Nm9ydnF6OTdQN2s2ZHExd1JpbU8KR001SGpIOEtrUitGRGE5SHRPZG0xYmtMS3ViczdTdURmL2xrNU9PcnM3YzQwMVhzcVZwMndFQUpVTXFCNEJUc0p5bEFLSmFUTGtCZwprRGtSUFhzVjdScGp6MWc0NHliaHJGc1M2OHdJT1pnaE13Z1F1bnNBSHNvR25nZjJnemExZVZYWnd6S2tQcjFJZ3hnVE1NeGJ3WGhRClhkMlFVYlRvWW00M0NCZk43RVdqY05xQytzLzd6WndGQ3ljSWptc0R1RXN3bVVNQ3hGNS91aTFjc091UjNHOHQvM0dnNGgralJUOE8KNS8xenF1aEJlOFhqeHJ5ZjJ6THZ1V2tSdkdnQmZ5UG11QnhXZlQ1NTQ4T2VONzhZLyt5ZGlGYTA1ZWJHN2ZRbGRlN0tyWE5MT05rago5VFhjNkd1dFVvM2VmaWV1dnJEVldEbXYrWDNnZHRGZHd4dUJ1cy9IcS92cVZRTXR0NVI5TjJ0SGxlK0h0WVZiaEdCVEwxclI4WmR3CjFwcU91VW5teDFCSWdMa2taUWVsZVROT3lheWR2NkRKaGUvL2dwTUxNNFNJdFd5Um9QbGx3bVh6dFpEeG83RS9sMndSa2tpN0pPSXUKaWhwWi9wcUM1ZjdUdTUzaXVFcTBRWlpzVzBwV0RZSjVCWHRPemc3amduV0w1S0JCZk9nU0gzcUtqcG9MOXhyeTFsM2ltRU84aXNaRgptTnFXZ0FrdG1WaHJGdDVPVStsYVMrbWlzeWpxS0lURC9RcHhPdTY1L08zQTZYdmQ1ZXRONVFlZEpSdE4rUWVPd3JCRkVuQ2NYbTk5Ci9XN1A1UitHaTM3cWUrM3ZmZWYrMlhydTcxMVhmaDY5K0dpZ2VMT2hJRzQvZDlnZ1dUZUlkeHJLRTY1TE0xamRSaDBadTRXdDF0eGEKTjM2MDVUcDMySG42MFdqaEQwMGwzdzIrZXQvOTRZNUt1bW5Gb3dwTlFnZGFJOTFTMVcxZ2lyaE92YVpUclNtVWlScnBobHk2S1pWdgoxQ3EzNjlSYk12V1dDbHZIVlhIOEJlLzVWd0wwTHh6bzE5UUhXOGNBZURSMFBxSFd4Tlc2TlRVUlU0TUE5YmVvdXR0bEhUMUsyNkM2CmVGc24yREdEU3NKWHNRQzAxWTlselNqNXZYV2lYcmtvWUplc05QRVg3UFErbVhBS3p3TUIyckFLb2xaaHhJcThKR3BOT1JESzh0bHcKQTNBRzdZcVBPK0JIZmJMM05tOVNVN1JreTErMWd3QUpONUVBbVNnQmVtelUzN2VhRG8ybUJ6cnRmU094YjFJa1RHOU9ZM3dmampMbgpJcWFDVllNNGFoT3RXTVhMRG1IRXpnMVlSWXVnUGk3aGtxMXdwVUVTYTh4UG9LU3h3cTM2MGszM21YWG5oYmk5YnRlRTdSdDBCenI4CmdNQ1B6S3BETTFpSStWQ3ZQeURUU2NtUWZvOThLU25qT1g3NU13SDZ0eDNvcVdrZGl6eWxiVU43Q1M5eG9KZlpUN29BSVpMaG41UUEKM1U2b3Y5a2czbHd6bHNkY2VXdjFTUUZTb0tXUFNTM2E3ajZpb1FRb3Q3MHV2d2NUelRVSzVodTRVMVkwdXJYSlFJQm9MYlZablRMVQo3MmhFdzRUamNGS0FtTlBJWTFDcGwxOFJJTGlLNVRPQThZRDZuR2lwb1hVcFFJQTRvd1NxS3owQmJtVElIbGVmR0tqNVhWOU54b2lDClBxSExtdFF5UjNIMktKNDFwTXpzbHd0R2RYbXphTThzektncEFjcHNxczU2UVlBeVk1Yk11UFdsQXZSMDVTdHVBL3ZKaWxsb3k1YU0KSVBtZjB4Z0FneEY5MFlJQ1NNdHdhRFdlbk5UOXpxZlBHQ2R5ZWpYTUxxV2dUeTRjbE1PSUNRTmlTb0NvVmJBVFBjcmZISzl6U05WdQpUdU9MU2NVdlNJdjNwRnZPbDlPb1BBK3Ewek9UM0t3K3EzZ0dTbDZtdURhdm9ManVWNmE0c2FDaXVCbFFBN2RDcW1OVWh0WEE3YVQwCnBITW5yQUlxUTVwYlFleGFHUDlqQkN0ZlVJZ0N1R0RCekoxQXZXMXAwOG5DM3NsQ2lLZ0QvQ2hLM2NvZVNqS29wNlVKRUpEWnFjenEKVWlFWjZzZmhRK1hNMmprTExzYUNBeVd2ekpyb00wZ0ZhRDREYll4Z1RkcnlBbzNDaFNiT2pKdXlLMnEzRnlWYnZ3WnExSnBtUDcvWQovVDd2UVpzSlo1eXNhVHM0VmxZdi9ydG1LWDNjZ05aV0YxQVo1YWU5dENiSmpDRTFTbi91VjRNRHdSY3hzd3RWR1VlaGxGRlUwb3BxCmQ1b3NBcFQ4c05INkY5eEdCZ0tVMFZ4TkNkREpqdXJzRVhYV0dKWTFxVUdMU3VORTFyQ09GMndRUmR1emZJYWNNUko5eTMwR3lvSFEKajJFYU9UdHJ6c3FkczdIOFZrYklRbytnY29JNXN5Unowc0NiTkl2Q3plTDdIZHpIclhrUCt2TytIZUw5MUNYNnRsV3c3SUJyazMzNApURlNuUFZUQWNONEtVT1YyVUVmaTVGNEFFQ0FxUVJ0K0RGbnRWU2Q2N21TT1NabnoydHhKTlcyZ2p0RXZ6eDJzbzQ4WTZHTks3b1NPCk1WVnplZUtyYzVPMzNoNysvQzN2VjJkOWxaSVpoV2hLZmM1UHZoVjFuQXVUb25rVlFKdXJabzlYWGVuOTRrK0RmMzUxNXJiUXI4MzEKMTdGbWNkNkNRUmkwdzhqTkN6aVJ1MFJNakRDQmRwZ0h6U2hlTlcxRVJnZ1NPYUxLSHBReTUvU0NaUnQ3eWNZSUdKblRKR2ZHeUE4NgpXUUViMVpXTXl2NkJIeHRjQmNjZHhnU2VEVzQ2cWdCankrNnBZNDVoOEZ6Y1pUTk11M2tyTmhvODFLcW5mS2VISDNaeC9EWlVBbnVhCjRNNWF1UE5XbVB0U0dzU05XSG5MYU5RWHh0RE9HdGEyaS9ld05lK24zb0ovRGhiOVBGRDRZMS9lNDRhQzc1cUxIelh4TjB5c1pRMW4KRVdPRlZmd1Y3WHRoK2FkelZXLzNmdkx1M0VkRkczajVJaUVPR3JPalZheVl1bnEwMHRqL3pZeFQ1ZXcxdjdaS0ZPOFlpdlliL3hLcAplaitrZW0yMjVzL2pYMkxkMTdxYTFjMU5DbTMzOWZxR0trTVhkaTVLQ3U1WlN1SVc1aUpaR0pTL00vdE5YcFFVUmduT3NqWTNyR1lHCk1RNklTMGdyQ09Ed2drVkJveWhDNW9ZMWVRSDFSeXZHeXFqcWc4ay9YUWs0c3BjSXpvcWhlRmJIRDZpTE40bDNvOHBiSzdMekcrYWkKZGFONDA4eUw2amp6Y3M1a25YQWV5MSt5Vk93Mmx0NXZ6VHRzRU95NkpGc3VFQlRCaXBHN2FpeU1PQUhKb3IxdzFWVVk4eFN1d1ZVdQpjZFJlRkhlWGJUYWV1ZHR4ZHEremFOMVR2dFY0NmFDbE9HWXFpMWhoZ0FkRE9uZlFmdW5ibmt2ZjlWNytjUUM0K0tUbjlaOEhMejNzCnVuRFlkdjZndFdUVFhiamhGbSs0OHBjYkw0VGw3L28vcTF5cmxpZndPeHZFSDdidCtROTdpby9haTc3dEtuclljT1hROGVlNHRtWmQKcTloUVNiZGt5bzFmb0ZpWFVtQWI4aFRKeU5CVFh2Q2U1d0wwVXREcVdQSUc2WWsrYU5mWW1wcENGY2NBZFVMemxHYzNodHVBRlZFQwpoSmJBZXRXRHphcmhSczFRRys0WjBYNGNJNHZ1T2ZPMlBid1ZNemRzNFBzSjNxU1dQaUNIWDVab3lsZ2FxUy8yV2RnRGFzRXNxallwCldiT0J5T2FGTElVUk4zd1ZSYXV1dktnYnZBUW9pTG9STVdmUlJqTnZScy9vcnVIMHljUXpwR1RaSmxsekFoVnh5OWM3TnRPQnlYcWsKTXo3VWtVZDY0cDVPLzREUTNGZHA3MmwwZThiUEk3cnlJV1hodEtVazJpQ0ltUEtYN0pKbEI1QWZzZVNGVEpLd3VYRFJBc3Bic3RwVQp0TlpZdk41WXN0bFF2bDUvUHVHNnV1WitNKzVHbTc4T2RmZzl2ZmFJU0FGLzZ1Nmh2V0NBOWxDZkRxalNTOUgveWxYSXE1NlJ2ck5NCnYwZWswTjNWcDNFOHBFVHhhMG5aYUVWc2wxRHQ2SUdrNnhBVXFrMFNVRzRRRklwMVBZVjA0eWwxK2NramtnQUFnQUJKUkVGVTZ6cWcKTnFHbHFGeFhWOFh3eWhYeTQ2ajUxYmhWRWpNTFEwYmhETUdieG5uVE9zNGt6aHJYb0MzdVBjcmNUaVdyUXltZWNJcW1IYnhKSzhnSwpwMWZEYXBIbU5GWGxkTlJsRDZrWW94cVdWd2V6eXR3SmtqVmxSQWZBU1pTV0RxUzhCKzJIblVSdUJFZHN0dGZBN3NmcHpYVzBobXA2CnA0STFyRVBab2loekNLZFA2MmhqaW96ZU8xazkxUmw5ZFdqL2lnK0hVUWJHR25paUxGUUxFYU5QRUhEOFovbFE4V0dZOFo1cXFYeWwKNWRhSkxyUUVoaWJrc3hwR3lFQmZObWRITFVoMDF1MVpDUnNLL0NUczlBMG5BSCtpeE9lWVBXZlZsck5rNGZrdDhQai9PU3pObk5MQQplSVFTcUNPRzdFVWo2bWcyUmViNFVBUUlSa0FRTlhvSFN2M09RRTNnc1dRU05BNENsRFdJWi9iaEdkM1liMzVOZEw2Y2xoL2pxeGtGCjhHSTQ1OXFzQ25qcGVoWmEwdnFsOGFSMGg0cnJBSlZCRmNYdEVGaU9PdlZuNnBKblBKY2VvQ3FpcHJpenFMa1R4bTZHTlIrRjFaZUQKNm9KUXNqLzhyQ1ZuRm5WbFFzVU1mS2hBK0s4SkVFcnY2RmFEK3FTQVMrakRlclRtTmU5Z0xUalJxUDlNZ0hLOFNJQ1lFMWFodjU0MwpWOCtlZHYyL0ZxRG5EcFFVSUhUaHJCdGVKSHdxdjJ1VG4yaVdnWXVnWmRkNTFFaUxhbGFWazZ3ZFRna1FXZ0xyVmFVTFVFNmFBQ1h6Cm81OExVRVo3SFFnUWNLS3A4a1I3RlNWQW1STVlmSEhodnBsRFdtNmdQbStsTFh2Q0NFOEszMmtLcWxrTVRBV1NHWEJtOW93RkpZTUgKTFRsaFUvWUNTWnZTZ1M1d2ZLZ2lOaXZoNUJ6VWk0OTZKQS82dUE4YmVidDIxanhZRlBwUlVRSUVuOFV4QVVKcU5hYW5EMmxRYTdvTwphV1piYldiem5hejJtcE85VlZuak1oQWd4b1FxcTcrV0VpRDB3WTBwT1Q0dGM2YnU2dVEzSUVEdmpIeng1dmpYWjhjcXhSTXlybGRaCk5JVmZDSktGczJybXBKVGpyY21ZcXVSNHExOGYrUHJENGI5Y21yb0ZBc1FPeXBuek9EZGdGSVFkZ3BDYkYzSnhndzVXMEpDem9FMFgKSURnUXBBU0lQYWZuTDFsUndsTlNnTUJhQkNnTWhnU0lFMEFDbEZ6alExZmxKZ1VJWGlHMUJFYnJycVVQS3puekJFb1dYakdLVmgzMAplUjB2NGlpSXQ2STNZZFlNRDhXYkFhTXljMmRSOEQ4bFFOd2xPMy9GS1ZxMUNSSk9sR2Y2YlZmSlB3Y0xmdWpKZTlRbWZ0Z21lZFFvClBIQndFNGJjcFBwd3dtcUdYOFlPcWE3NlpaOHNxOStickh4MzVxOTVZYW5FcjBhWmNLRWJWeGZVcHA3YjZvSHJoaDdsVnpQbUMydkcKTXh1V2t0Mm1ENVlxYi9sazBzRzZxcUd2OVYzZjlIbGs3UTFTemVBTmw3dlNYaS8vY2xoOWJ0MVFzdWVVSk94RnkrcTNmSitMVnZYaQptQUU1MEtLR0ZWWnpRemcvaVBNWE5IeDRNd09FSUtUUDlXUENXZlU3UzRiUGwxWHZlVDhxblNWWmZpMUtQQWMzRFVyZldOZjliVlg3CmFWeDNZZE5WdW1rWGJWbEU2eWJSc3A0L3ErSk1LZmx6bXZ4bFUrR09wK0NvR1J3b2Y4ZGRzTzdJajFuelloYWtQc3RPb0dERm1Sd3AKYllXcmp1S1lxMktqOGV6ZHRvcXQxcEpFSTFoUnlacnI5SVlMQktoaTFWbSs2anl6MVhUcGZpY0kwTVZ2ZTE1OTB2L3FENzJYdnUwNgpzOTlZdkdZL3U5VndZYmU1SkdZWHIxaEZLeGI0WEs0R3BSOU5mMW01S3IrMlNYNjBZM3AxMTFGKzFGMytvT3YwdmVaekcrWS9icHV1CmIraVVHemkyb2NZMmZwR2tuSjdUazd3V0FVYVN6b3VLUTNFc296bEZhanZZTVZJUFNEMkxaaE9qd0xmVW1oME0yMWFydDFUNGxrYS8KaVJzMmNISk4zZHVyQVFFYWJNUUcyalNlWWZ5TG1QSDBrYWR3cnlrdjdoQXNtWVFCZzJCYW56c2dZL1JJZVdONDBieWRQNHpsRE5Sdwo1eldTZFhQZWhwa1hNL0NXakNJWVlGWXMvRlVyNkRqY0VSQW5uT2hNd2dZYXlwL1JzdnZyK0VPeS9CbGQvcUk1ZjlVbWlWbkwxZ3hmCjdsZ05oeWJUQTUzaGtkNzAwR0IrWURBOE51b2VvSTFndWtQemw4dGsrWWhDUEdVb2lycmgvUmZFM01JMWwyZ05ITXVadDJvRHRRVzcKS2s1NFN0YmN4UWwzMGFhcmVNdFp0dVU0dittNHVtNy8vYnJqYVZ6bmwvR2VsOForS0loOThyOGxYVzZPQjRTZUI0cGVZai9hWGQzeApGYlJuSnZSaWtqVzFPK3lYMmMwNlFMYWhCUlJiSklWOGs2Q1FiZWhsdjdTZmx3clFKMUh6bFRWclVjeVNGemJtelJHQ2FTMS9TZ2QyCkN3S0VpaHoySVB0aHRTdnl4aTNpS1NSQTdDRWRwMXZGYks2ak4xZlRPK3B5aGhTNUkwaUFtRDdrUUdpK09vVUVLRDM3SjJVL1ZIQW8KZDBUSDZGSm1OOWJrTk5YbXdrTU5vUXJMbEFEbFR1bmdBRWpycThycXFzcm9yYzN4Smp0T2VsRUZFMHFBTWdkVU9lTTZtQktqSE9waApMYTNycVFDZDdLN09HcEtuQkloQkNWRGNSZ1Y3VU5RbmpsYkVjdFlkYVBFcm1mY0Q5b1BXdkh5NlU4UEtWNFpsYVBzWWpFZEJBeTFNClVnS0U2bGw3VVMwWTFJT3NXd211Um05WFVnVitVUkwwWUVxQXNGTmQ2dDhjMzRUMXk2ems5UFJraWw4TjVLVG42NlNSdm95VnJqdDMKZ2dvS2Fra0xxQTZyZ0JjdnFZbW9VOVF1WWtEZGtvWkN1b3pYTHV1a1M3cWFzT2Fyc09hRENINDJyTXNMa0REVU1lWU15UTFIcURjNwpTc1FaUjIxUTBnVW9xMStiMVl1QjdqeTNuMDRZakJVWkhRcTRuQUVxTUdORmZUSFJIdmhrVmpWYTVqUmtqZXBCVTNpekxzNjBpd1hTCjQwUHB6OHhrKzFWbXNnVUhWZnp3UlY0VUlBcXdIN2dRN0ljOTVjd2EwUDNQcHRyL2FLZzUxYXJJR2RFekpreU1XWFBPUE9ySGlmYmgKZTNXb2lja2dCbktUTTZqSjZWTm5kU3VPQ1JDMUJTd2xRS2l5Y3lkYS96clZWSFdxNGM0cjlUZC8xM3FiTnF3Q0FjcndxYlBIVUVZUgphaDgyN3hZdHR0Qjl4bHo0NytCYlRvV1VrbVVoS0FkS3RhRmdCSXowQlVQV3JBNzhLWHRNeXh6WGd6TmxMK2laY0dTODIxbDR0MVcwClkrR3Q2bGtUV2txQXFDQVF2SUdvalZkU2dKaXpxTzBvK2ptQll5VUZDQlVvYXEzSmJMaVQyVlo5cXErYTVwV3o1N1IwbnhJRWlONG4KQXdGaWpwbm9veksrRHhmTXkxNmYrZWJzeE0xM1JyNTZjL1NiTThPVndqRXBlMHdoOEtuenAxUmNuNVEyWHNzYnJhWk4zK0ZQMUw0eApkTzNQUXgrZTkxNFR6dU9pUlN3M29PWEFESGpSaVVwY1J0ejhzQXQxWVF6b2p3a1FIQTRZbzJvUUlGUkhLeWxBdVF1RzNDbUNNMFZTCkFvUTZrUVhzYkQrNkMzdldDRFlEQWtUM2FYSkdGVGxETXJDZkxGRE1QaWxyV3N1TkdIT1hEWUpsQzhPUFZnQ0ZZVGZNZ2VCQUF3L0YKblVZUGlFSkJTUWZpQnN6d1luaUxOdDZ5QXdRb2Y5TWoyVzhxZk54WjhrTXZxSTl3SC9tQmFOZkdXTUZwZmxuT25KUWJVUElES3ZhYwpqTGVnTEJ5NzgwWlUrMlpJOGY3RUovekpTdjZNTEc5QkoxbTRlWHRDMmRwZWM5dFg5WjRmTDkrd1Yyelp6MGV0SlJ1dWR5TTN5ZTZxCmdWYTVyZWVtb2ZPYmZrOU5kME9OWnVSV2ZXdDFpMGZoZEVvL21sT1hIZGpMZGoxbE1lMWJJNThKbDdXU05ZTWtiaEt1NkRsaGpCdkMKZUFFTmQxNHRudFhEcU1sZHdObFRTdUVFZGlsc2VEK2tlbS9rVS9Ha01zK0hGY0JrZExxcVBIem42eGgyZllYOC9icWxJdEZVdnRNawoyWGJrN3pnTHRrQkQ5VXlmVERDcDRrNHF4YXZta3FPV29rZHQrZnYxQlZ1dW9vUURCbFJ4TWp3QTlwUFVJSHZSa3Ewb1lpMVpzcGNsClBPZDJXb3RYM2ZrUlcwblVWUloxbHNXc3B4TzJzL0g2ODV0TnI5N3J1UEtvNStMamJ1RHlkM0RhZVdHM01UOE12b1dkampvdXJMa0wKZ3FSb1hpOWVJSVdyaG5lQzBpKzgxNzZPNE85czJzNXNtOG8zYmVkM084b09XaThtN0svUFNXOHNvUlVvemJvYVZWaGVVejhQdlNRMAoyRHIrMzZMWjBGRGdtM2c2dWgzMVM5SGZWUkY3YWdweUh3TU1CeHJBZUlpcTZWQ1k3bWxUbUk5MHB2dDZ3SGhFV0k1SSs1SEJzVzl3CjNDWDYrclhEclpyQkprMVBPOVl3b0xtNVpMaDg2QzQvYkNuYTlPUXRXOFJCUS80Y3dSMVdNcnBydVAzSy9IRzlxRS9LN3FzUkwyQkYKNjJnbm9EQUszcS9QaTVoRVMyYTRmWDdVSWs2U0YwVjFKdm5MQkZnVWR3cmpEa2xGbzBySm5MWncwVlFjdFpYRm5XY1Q1TFVEbStHaApCZXpIOEMxcGZXU3lQVEFiSHh2SlJ5YmpBeU41MzNGanpYVGVweXFjMXBXdE9FcWpwcUtvOCtuSEIzOHUyY29qNXJPTDFuTkx0aXRSCjI1VTErNVdFN2VxRzliVjE4NXNKOC92cjVyL0VMY1o5TTJBNnNCeUR1anlGWWM5RVlkb3ovenNZNzVvb1VuY0V5THZHRk1TK0lWMkoKMGxLSURJQjJsendHdHExUG9kN1N2UUNoMnRRbmVScjFrVy9yS2FoRUgycTFDNUN0azlJRVFWRVgxMVBVcnVudXJPUFZhOW83cThSbgpVZE1mNHVhS3FMa3diSmJNay9CN3pKdlJDU2QxM0hHY05ZUXhlMVRzRGlXblRTRWNNb2duN2FKSkM3c2ZaN1hMV1UxMXpKYWEzUFk2CnhxQ0NQWXA2MElJRHNYMTY5aVRCaG1NeUhBQ1RWZEFva210YnFIVThJcG45azlWY1MydW9aclJJMlQwWUVxQmhMV3RNRDVORzVoVE8KR2xlaVhPUE8yMWs5MWJReFZUS2RRSXZTTFFaUjkvV01QZ1Z0Q0VPRHdxaUJNYURKN3F3REFUclZlak9qNnc0SUVLalNjd0ZhTWFOdAo4TW1sTG1RL2EyaFRHSUNXdlZhdDlHVnJkc2lZT2FjNzBTOURqTWl6SmpXb3djQUNtUlVpc2lQSnp2WVRTSUJRTHV3QUJnSkVhNWRsCnRkYWQ2a1lsN21oREdsUkVaa2o3VElDVXYwbVpEY1gxT2RWVG5pZmxLRzRndjNuS3NVQk9hdlhxOW9JeVJhVmZrWUs2NUU1QUJWUUYKMVNsZWFqOHAzVW1KRGlnT2hXd0pJVi9XS2xaMGdISlZENmlpaEdLVlZNZEl4WksyWmtuN2RaUjhhNGtzQ21yNVlRTnpqc3lkUld1WgpWR0p5c2d5MGtUNWlvRGJBMHdaMDZRS0UxcjhvKzJtWEE2aXl6Z0RPOEtLdUNHalVmeVpBMmVNa2JRU0dmQ04zTXVrNmFUeDNvRi9DCm5IUlFnUDJrQkNqbFFIQUc3UXViZG9KTE1ZWk5KOXNVLzhOMTU3ZjFOVmtkYXRUZXk1ZmMwajluUnN5WWFPUGFsQUNodlk3OVdFcUEKa1BlTUpRczVQQk9nN0tRQXdRMm8rTXJKeGpzblBKVy9kVjM3YmZPdHJBRkYxb2c2MDZ1bWo2R3FmVm45R3ZnMytVRVBmZHdBYms0MQpXSVZ2TmlWVnFYMEI5Q2xEN2p6cXp3WERPVzBLeXhoWDBVWXh4cWcyZHhSbE9qUERaSDdVVTU1d25kczBGaS9xZVY0OWU1emdvUHBtClNJRGdQVXdYSUxTL2JCTDFwbUhBUysxUlB2VXpUeVVJVUhMMkFFTzdsakd1eXV5ckF3RmlETlF5eHd5TVVTa01xK0tBOUErejE4NTUKYjRBQXZUSDB6ZG5CU3VHSWpPM0ZPRDQxWjBLUjY1Vm1lMlhjd2RzNUU3ZjU0OVZ2RGlJQk9qUDZGWDlhTFF5cE9CRTlURzI1UzNiVQo1QVFFYU5ITmo5aDRJUU1yYUFBQlFrSXpBOU1kQXlWQW9ESzUwN2hnMGNwWlJBSUVQMlk0UVBCUnN4c2tRTndGTzJmQmdzUmwxZ1FTCkE3YVg2OVhRUnhYMEFXbDJaMDFtNisyTWppcDQvWndReVZveUlBMmExN05uU1lIZnloaER4eHJPQkJ4MGNKaDFnUU54Wm96Y2VTTm4Kd1pRVUlBc29GMmZOSnR6MkZEeG9Bd0hLZjlpU2Q3OUpjdFJRY0wrUnRheGhCT1M1ZmhsNGoyQk9LWnhYY2Fha3ZCazVaN0NxY0JFNwpGMUo5NlB0Q1BGckptYXpOVzhBdkJPN29mREpYUjgyZlp1dEtWclRjUFVmeHBxTjAyVkN5YW41LzRXdHo1dzFmdDhMYWZVM1Q5VVZYClIzVkhaN1ZpNkJ0TCt5MTNZNDNIZFBOV3o4MUxjYnhrejNrMnBuOTMvQ3RoQ0N1SWtvVUprM2lWRkN4cUJTRU5QNkRtejZzTEp6WGMKV1NWblRzVWJWd3JIMVdVQjRzcTg4cjNCcjhWZXFXUlVKZkZwUkRPVjcwV3JhNk9LenlKRTZiSTlmN21wWXF1MWNNTmV1RzB2MkhHSwpWa3k4R2JWa1dzMGZrNG44MnFJZFQ5bWpkcFFKdE9NcFhuY1dMSnZGVWJ0b3laSy9aQzJBMFhIVlZiYmtrTXdaODZmSjRxaWpZczFUCkVMSGtCNHh3WVVYTVVSNjFub2tqQWJxNDNYVGxxUFBLdys1TDl6dGZmZFI1K1dISHVmMm04b2hST0tuSW44TE9vdVJvazJRU3k1L0UKd2MvRVFjV0hZZVduM3NvL0xlaFByOW56TnN3RkNYTkZvcUZneS9hSG1PRXYzcHVLWURXNUljZTM1ZmlXV3IrcDFlMW9LUFM3T0VEYwoxVktRZXpvS3c3NCtIZk05SWdVSVNncmJRK0tsT0I0YktKemZHZ0hYZDZhbmZFOVF1SitRNmNCVnppZG0xdzhXT0hWL2IybjR6dHJ3CjBGUi9qK3dkSm9mYThQNVd2S2REMDlTSDFRYjBmOWgxbmQ1dkx0dnk1QytiOGdPR0FqOHBHbE96TzJ2NFhYWDVmZXJDZG1sK1YxM1oKREY2eGJDaGFKZ29XOVpJUVdSS3lGQUVSUzhtU0RTMUxyZGlMVnEyRks1YUNWWXQ0MFNLYzBZbEdWZmxlckhDZVJMZFpzWmV0MnE3RQpEVGYyYk1SRE0vRklUendrcmZjdHRpTUxxQS94d0VMZU14RjdscXFvOGUwSjlVV3YrcXFmdUxxQXZ4K3hmTGhzLzNqVjlmbGF3L1gxCnBqdWJyWFU3bmNxN1BjcTlkc1ZCaC9Ld1hYR3ZWWG12RlR0czFoMDJHdzVhSFBjOEw4Vis2S2F3SGJqU3NlNDcveDBzZXc0Szg3NEYKZU5HUXlBTXpzVzhDOUh0R0lPVTkrQTZSam1aYi95TFlsdTQ1MitCR0pBaFFFZ08xOHFYYU1MN1VmaERQN09lWUFGVW5kTlZydXFxbwovcXNvK1g3TWZHblZBdTVZNmpjVnpKR1NXVUk4UlFpOE92NFF6dXZGdU8wS2JxdEMwS09UZUcxaXJ4bVVoZDBzWlRmVnNGdHFtZTAxCnpFRWxad1FEVytLTzYwQ0RPQk53dUNiWVBoSTBpRE5wUk1BWk9JRERKZU1Fd0JyV29sb3FEWGRvRFZYTU5obXJXOFVjUUkwbU9HZ2EKck9GTTRnSWZ4aDJRTWp2djBMcXJhY01LaGcvRmxpZ0J5dXBEbFlmUWJ0OVIxSGVCM3F1bXRkVmt0RlJtdE4zSzdLNkNHMmQ3c2F4cApqQkVrMGZhYUpWUUdHaHdJVHVsUkt3VnQxVXhiaHF0UUFnYm96cWtKOWUrNmEwNzAxcDBhbG1mNXNPeFpYZlk4UVFzaXNxZlJsaFJLCmdOQnVPSGl1ZGxsR2M4MnBqcnJNWGdVTW5TZy9CS0Y5S2tDMzV0VVVsWDdzbDZoUzNGNVFwN2dWZURtVTRxUkl5VkIxVUoyaUpvUUIKdFdFTlVCZENTTU00SUl0b1V5aVc5QlRLWlVLMVFnTHFWUU1GRmpVQ21wZ0p3TmZNMnJnRjBNVE5STnlxaTZKcnBYSHJ4NnVtOHlFZAp6UG00ZmhKR0hUU3Q5NkdhbFpRQVpZOGlBVXFQQUdWMEkvdEJKTzBucTAyZTJTcUQ4OVJDR0RnUWZTWlpJU2E1YXBNelJtWU42MUEvCnVYSDBnQXl2OVVVTmVxbjlvQVd5WkNWb2dEV0xWcnRTb1BEUGxKTXhhczdzMVB5bnAvby9YSGRPTmttektRRWFSeWs0VlBrY09KTTkKcHMxRXNVUTFMZGs0SFR5YUVpQ1FGVXFBNEJTQjZrQWs1YmMzVFlEcWI3L2l2dlVmem0vK28rRkdKaXJBQ2dLa1pJeGpTSUQ2VlBCRQo3Q2tyUEE2akQ4V1c2TThjQ0sxU29TdzVsQThFQXNTY003TDl4dHhaWFpaUGxUbXF6QjVSMDBkaEJrREFZTStheGZtenhQa1YwL3RiCjVvdGhyWEJNenhuVmM3d2svSkNRV015aXRIVFdISElnVkZ0b3hvSm1HT01rYytpNUFKMTAzOHBzcVVMU0F6WXpqeDR6cTZjMnQxZEIKNzY4QngrS015d3FuOGFLZzdPMlpyODk1cjcwOS9PWHZCNzgrTTNBcmIwVEduY0RaVXhqWUQzMnNsajRxNVhaZHp4bTd5Um1xZktNZgpMWUZWREgvQjljclpNelVvY3dYMWh3ZW5jYkVqeVRoUTBJSytKTWtJRUFnTkcxN2hsQkZFSjNjTVF3STBxZUZITENCTXJBVmo3b1FlCmZJWG50NkUrckdBL2ZodGF1cG96Z2I2QXhEQjlPTnlGUGl6UDZhM043cWcrMVhqelJOUE43R0VaSjBDd0lpVFNvSG1DT2FYancxZHgKUkFQSEdyWVhaM3JWTVBHQ0l3NUtCcG96OFB3bWJzQUlUd2ZLbFp1dzhYYmRSZDkybFR6cEV0N3ppSS9jaFE4YUJOc1dibGpKRGNoRgpBYlZnVmk2WWtvbG1GQnh2SFd1c1JqeXI0NGJWaGZOMWYvRitWVGhjbVR0U3ladFN2T2EvclEzS2FvZHJ6czNKQ3dONFhzeFVzR29TCkxlSVhWblRYdzFYNnFjcWVaVDArVmFYMlZYYUZORjBMYW8ydjBqcFJVeitGVzhaa0JtLzFsMUZOK1QzYjVhaitYZDgzZVFGbHdhS3UKS0dvQURSSXY2MFFSclNDSUNmeXFvZ2tWYjFyR24xVUp4a0NBTkFWKy9ma3A2ZnVETjRwSHBhSWhPYzhyTForK2ZUT3V2TE9xZUhNQgpGL3R0Z2xBOWlFdkprcTQwUVJac1dBcmk5dndnVVRDdHpQZXErRDVGWHBnczIyOHF2ZDlhc3RkWXZPR0NzVFovMVNaYU11Y3ZtZ3NYCnJSVXJydktJTTM5U0w1a2l6aVRxWVZRdURwcUwvTWJpQmVQcEpTdE1na3RYRFdkaXp2TWI5WmQzV3k3dE5WODZhTGw2cngzT1ZNU3QKSmJONDhZem05SUx4Yk5CY01xTXJtc0FLeHJIOEVXWHhkTTBuSy9nZloyb3Z6ZWtMSS9iOG1MMG9ZU3RPdU1zM2lNOTJyYmZucTR5cgp0WTRqakhpb01UNDIyaDVZN1kvMEZJN0hJQ3VFODF1U3d2MmRnY0x6dlRHZCtoK2YwL0NUS1VYOUQrYVgwdkNqNWFWNGZpQW82bjhrCjAzRi9iM1Q5WUVwaThUeXhOSUFESlFXb2U0Z1liTmYxdHVzN3V6UnRQWmhtU3Z2QnV2M3NYdU81N2ZyaVpVdGh5RkFTTUJXTWEvaWQKMWFMV21vSU9hV0dic3JCWGZXYmVkRFpxQTVVc1hiR1dSR3huRnQybHk0NnlGU2VBN0RQcUJFcGlDTW1DVVRLaExSaFdsWHExWi8zbQpDOHV1VjZQMVY2TU5IOFNNTmJ0V3c1RlpkNThrSDFnY1J3N1hQWWZ0dnMxd3Y5NXl6d0dtWXRscndqYWFsVnVkdXIxZXczNjM2YURECmV0QnBQK3h3SG5aNjlqc2JEenFiRDdwYUQ3dnJEenNiN25YVkgzVjU3clY3RHRvYURsb2E5MXVhRHBycjc3ZDRqcHBmeEgydkNYQWQKTmg3RGVWRC9yM0hzZTlMNU5URXlIZGlNKzFiQXNHY0J5THRtZ05nMTZYZU02ZWkyRFJUNHRpbUZac3VZQXBXTTJpQUIxVHFoV2pjQQp5Z1FKcEZhK25pOStyZXNBMlRxWkNnS2xCQWlvUmhxa0J3RzZGaVgvR2pPK0FlTmR4RndSTUpmNWpTWHp4c0laSXQrbkU0M2d3ajVNCjBLSGl0eW1FblhqUm1Ga3lidVoycWNCK2VJMDEzSllhYmtjZFowakJIOUVJeDdTOE1YQWduTzhqZUJNazEwZHdKMkY2ajVxbmNuMEcKT0lCenh3aDBKQi9WczNyVmFQdFlRMVZPVXcwSUVMTkx5ZXJIMkVOYTdxZ1c3aTcwYVF2UXQwTEo2NnFtOTlUQTBRK0ZoZEJrVWdNQwpST3RYWlhiSmFGMHdXOE56K3pWMEdMWmFxek9hYm1TMjNxTDExbVNQeUZIT1VGS0E2QkZqenFLUnZtd0djbEFLZ1lVNmo5YTJJb2FjCnNJbStnRm9QblJpUm94TFN2ZEpUUTJnTGZmYTBsdUZIQ3hFMHZ3NDErZmFoRFdob0orOHdUdTlYWjNiSVRvRUF0ZFdpamdqOUtzcUIKc2djMVR3WG9UZ0JQVVJYVS9oclZJUjFGVlZEelVtcUMrRXVSaG5VcFpCRTlJRjhrQU5XS01ZVjYxVVNCUmMwcE5ERUxnSzlaS2ZScgpOZ29pYmdmSWhPTVpMdU9HaTB6QVZSWk53bEVaYzc2OWFLeFkwUEg5TUxRUUtBS1JKa0MwRVpMcUFrYmxBRkVSSUVxQVVPQUgxS2RWClJtdEZHcFRWcVVSOVJvZFJ5L1NjNU1wb1NvQlFFN0VSQXlnTGtEdG1ZWTViV1Y1YmlsOFRJTXArMGdVbzlTZG9FNjFYZjZKQjlsdjcKN2Q4NXEwNDFTclBhbFBEVUx3b1FiVkI5cWsrSmlqVy9JRUJVQ1VSMC9wa0FVVm5TR2RUK3IvcmJKMXczLzZmOXEvOVpmejJqRHhYWAp5UmhYZ0FBeEJwSmhKTFNhUzhCZDRLdEo3My9xUUVpQVJsQ2EyOVBLeU5NRVNubVowek9tTk5uanlxeFJPUWdRQ0Q2OEV1YXdndTFWCnNjY1VyMFdJTDdmTnI4K3IrWU1hN29nZS9YaVNRU0N3bjl5a0JvRUFjV2FUKzZvbWtRREJySUxlcTZLMUpTTkFyc3FzMWxwS2dPQ0QKeS9XcWFiMTFJRUE1L1hVZ1FEQ0pQN3VnTHczVnZqWHp4WG5mZFJDZzE0ZStQRHQwSzIrb2x1TlRzeVpWT2FOVjlLSGJqTDdiaFlNMQpndWxhN21EbGF6MWYvSEhnVCtWRG40TUFjU2FyaFhOS0VYd3JRdVprQlVJWGY5R2RFaUJ1eU1JTldEbmdaOU1tSkRUajhMbkxHUk1ZCkdBbHYyWUgyaUUzbzJUNDlmeDRKRUEvWkQwcGU1czZhZUVrQlFuWGt4akRHb0F6OTh0dXFNdXB2L0s3K1dsWi9MV2RleDRtUTNEREoKOWV2aEJ2eHhQV2NRNDR5Z3d3M0xoNEVHc1gxYXpwU2VNd3MzUUl1MmdyQkZ1R1JqYlRpNE82NkNvOWFDdzBiZXVqRnYyMXF3WStORgo4ZndsWEJSVTV2a1Z2SWxhbnJjMmJ4cThRY1lhcVM1YnRyT0Q4dnlKTzM4Wi9hSnc0R2J1d0EyUWp6ZUMxZVo3aGkrQ3FEcG8rVFJlCkZ0RGxCM0hob3Z5amhGNjdwc2JqdFUxUDdJcW9YTDBzNjM1bzZ6bXlHRUl5enpiUmViL0I5YTJ6ZTVkMEhOamVldXg4YlUzN2x2Y3IKU1ZDZEgxSkxJdHFDRlFJY0tIOUpseGZVQ0JmVTRra2wzMWVYUDZYZ2UxVzhTWTFrVG50MnJPcUQ0UnZGQTNXOHdWcU90L3JjZENVYwpxZjhXVnBiUFllSkpDei9vTEEyUlorZnJmcC9RbDhlTnhadW93WHVlcjZaZ0F1TU4xNEVERmExYXp4eTBsQisybE83VUZ5VWNCYXNXCnlaS3BhTWxjRURLVmhxMGxDMVlRb0lvRjI3bDFUeUZjNGpjVno1QUZFL2laa1BsODFGcThxRCt6YkR1NzZqaWZjRjNZOUZ6YWJyaTYKMjN4cDNWa2MwSjZlMTU4TEdDNHUyc0dCaXFlMVpUTzZ3bkZNMUZkM2RrYngyYWJwcmFDaWRGWXZDZGlLSTViU0ZhTWtabjU3RzFOKwo1MWFzU0sxYlNzLzNwUFVuMHZrUHUrZEhlOE9QQk5ENEUwblI5SGNEeGJFL2oxMytFbjQwL1FxV0J0Q2dOT3FmbUJCcElwV081NG5KCi9hUFo4NU1sSlVDTmo4d2dRTzJEK3I1MmJWZUh2cjBINyt4U1djZDFuOFljRi9jYUx0OXRxb2paU3Bjc0ZTRlRzUS9QNzZvcmFLa3EKYnE0V2R5Z2xnK3JUUWN2Wk5RZnl4V1ZMVWNCVUZyU1hMMXFBaWlYcjZSWEx1VlhiK2FnZHVCQ3puWi9XWFJ6RHJnNHIzL1JwUHdqWgpQb28zZkw3ZTh0VjZhKzFPcyttdzJmMmczdmJJNVhyVTFISy9yZVdveGZPNHNmN2JucVpIYlcwUFd0cnV0emNjOVRYY0cybzlIR3pmCjYybzhhZ2VhajFvUmh5MHRoODBVRGZmYVVuZ09tOXdIalhBSzFOOXJCcWp6NlNSZHArRmxIRGVlRjBrWG9GOExIUm4zN0JTR3V6YUEKM0xWU3BHVG9HUHJ0NStpMlRDbFNKb1J0bWdEMWhsRzliZ0pVRzBZS0pTalJ1a0dSSUo5aG9KREhTUXJaR2dIVUpnajRXVld2NlNyWAo5Si9GaUE5V1RLOHRXczZGYkdjQ2xncS9xV1RXVURSSkZvenBKWU5hY2JkRzNLYkthMWNYRHhrTFJnejhUaFhZajdDeFZ0aFdKK2lVCjhRZVZ3bEZNTkFhVFZZVEFxeE5Na0tCQkFwOFI0SHNOaURHU04wckFrWnd6ckdOM0tYTmJwWXpHR21aekhRaFFicWVDM1FlL1hCMEkKRU54WFBBSEhHYUpzVkNQcXFtSDExc0FFa2ptS3d4d1BCQ2g3U0pVOW9NN3FsR1czU3ptOVdHNlBPcWREUm11cXpHcTZrZFYyTTZldgpHaVVQSkFXSUhpQVlJWlRLZ3h4b3lRUXl4Rmcwd1JuNE16dGlvQVVKc0IvR0hKSHR4VElIWlJrOVVzU0FOQXVtNHBNNHV0eXZvODFyCjBZWmNTb0RRMklRRWlQWnNFTXlHMTlDcmhCZVRUVzJKNzFlZjZwYi9walpvb0tnTEdYOUJtRXhIR2pGUXlNSXY1L2tORm8wVThpVVQKb0g0R3Rtd0dOQ3NXQ3UycW5VSVhkUUQ2bUpQaTJKOEFzZVlDREd2dUZNYTRKNFVsVVcvYzhKQ2I0RUFPN1pwVEhtLzRiTlg1MmdLWgpGeUFGY3lSM09sbmVJQ2xBcUF4MFVvQVFRMFJLZ0tnbE1GcTdBdXducXdVSkVLSmRRZXRXNXd4b2FUNTk5Z1JhQnFMN3lHelVhQUlKCkVFQUpVTG9Ed1NsQXBUeS94SUYrS1VEVWVhbzZJbTNFZUxKTjlZcXI5aFhiN1JQT3Fvd0dLYTBWQ1JENEZtclBPWWM2a2FFRnVLUUEKbmV4VnBBc1FpdDhrQllnaUpVRGdNWlFBb2Z6aU5BSDZINTVySUVBMEVLQlJHV05VemVoUFNsSXZrcXFjSGhXalE1N1RwMFlrSFFqbApBNDNwbitaRVQ2UHVwTXdaYlk1WGtUMHFwUTNMVUgxeGxPU1BzWVlVbkJFVmE2RDJEMkh0clhYeTZuZ3RyeC9uVXo4YlZGUWFCWUVZCjA4YVVBS0hLOTBrQllnN2h1YjBxK0dGa05sVm51RytEQU5GNlllcWc0YzBqQzBIblVjOGFLWE5VWHpTSFhWa3lWMFJxMzVuKzdOTFUKcmJkQWdFYStPRGQ4TTIvZ0R0ZXJaRTdJYzBadnN3WnVzVHB2bEE5TDgrZmtncUhiVjdvK2U3L3ZnNHFCejJCdzVVL1ZsUG8xSlVGQwpFallMd2c2d0g4R1NSeEMyOFFOR1R0akVDMXQ1UWFRMUtERjVHaFZ4WjR3b3dNTkFnSVFyVHRBajVpUkJDUkRMYjAzYWo1V3lIN2d4Clo0S0FsNXFMM2trcEhXWS9yVlVabnV1L2RYNlYyVjNGbnRPeXd3UXZSSExuZEhCRTRBMWpuSDQxWjFERkhsV3h2VWlBT0Q0dGQxTFAKbTlIRC80dHlpc09XdkdXcklPRVViN2dLTjV5RjY3YVN1S1VzWWFsSW1NcmpKQUFpSXB5VDhYdzEvTEdhL0NrVk9KQm9TbDBVTnZMbgphc3NtcWo0YSsxd3llQlBNRDlUa3RjVmE1dy9XdjRaMWtsazlEUG5GUVZ5eW9DeFprZVA3Wm4wY1UwY3JtLzl1azBmbHNsVlo4NC9XCjFpY1c3WXJDZktSdCtkSHQvb2VqODBkVDUzZXU2NDg5cjIzaTcwNThXYmFrRXk4b2hYNTV3YUt1T0dhVUxPdnpncGpJcitaT0swUmoKdFVVVEN1NmtrajJyS1pyR3pnL2UrT1BZTmZHQVREeFN3NStzTEorNGNYMlorTU9VUWpDaHpKc2toU0ZqK2F6MGJmL3RXL2NkdjkrMApsSzNieW1MbS9KbmF2QW1WYUZncUhLb0RoYXJZOUp5K2g0SkFKZHVlc2xWTDBhS2hlTWtzQ1JpS2crYlNnSzFvMW5oNXRhVnMxU2FaCkowcm5EY1VUV2xDWmMySFRoUlZMU1ZpWHpDQ3hvRUU2N3J5Y2NGOU51TTR2bVFxbmxHZm5pZk5CNC9sRlcxbkFVREtuTDVuUkZZeXAKQzBkVTVYNzhyMXUyMS8yeTRobU5aTUZjSE5CWGhMVWx5NGJxZmR6NWM0TXlXbVBjVVRiOWJISCtiR3I4cHhVRXBla244Ny9KTWJOcAorTUZJVWYvRUFMemdQYW1idmN4K25wZ2FmN0lDTDBhR0duNjAxZi9kRHJoL3ROYi9ZR3Y4M3RiMDJOSndaR2dmSWdZNnlPNXVzclZmCjI5T3BjZy9qMzZ6WXI5eHR2THJYZEM3dVBMTnFQUnUyVkV4cVMzdmxwOXVrWjF2cXlycWtGWU95VjRQa0czSHI2d256bFNYajVRWHkKRHlIYnU0dmtCMHZHdjZ4WS9yYm0rSExkZlcyai91Wlc0KzJ0SnNWdU03N1ZUR3cwRzdaYURmdnR4cU11Mi8wZTkxR3Y2Mml3L1g1ZgorOFAyaHNjdFRkOTJkeDMxZEJ4Mk5UL3VhRHJxYlQzcWFEOXNhYjNYMm5qVTNYRFVneUk5ZDF2cUQxdFRwRWQwWEFmTjdzTVdDcEFiCiswR0QvVjZqN2FneFBkSURmcE9LOURqMjYxL0V2Z2RDODk5ZzNYZW5ZMG5Edk9kS1lianJTRUh1MmxPa3kxQTZ4STVOdjIwOWhtN0wKa242NWJ1c3AyazJMZHNNRzRPdFdRSk93cEZDdWd4SVpqemtRVUxkbUFBRUM3c1MwMzhUSWoxYk1iMFNzbHlLMkMwSGJ1UVZ3SUhQNQpqS25FWnlnZUpncDdOSVVkbUtSVlhUeGdLQndpaFIwcVVWTmRYbE5OWHB0VTFLMFFEYW55UmpYaU1Sd2NDTWp6NmtVVGhOQkhVZ2k4CkJDQWMwL05IdEx4aG5EdWs0WGJJMkcxMXJOWmFCS2hNdHdLT1p2d2hPTTVyNEw0RkU5b0xzNmJ6WHIya3A0NEhrOWhoT1FnUXh3c1QKUHp4bkdFWVRET1NEMWxMTDZWU2lOT3JXdXF6R1c1bU4xMmx0TituOU5Xajd5QVJxSEptN2dBUW9PMFRtaEEzSWZrS0czTEFSeFlUQwo2TUxzQlQxOUhvWWhIV29kM3k5RmJRTjZwSEFtWjFSRm4wRGRHSFBtdE9CQTZQdzRUZ2tRZlVqTlFDc2hTbkNnek9ZN3RBNXBUZzhLClI4RXdDZ0pFNjFkbjlDaCtJdzJiQUZuRS9LK1JMMW9vMUl0bUNsWEVsSTV5eVVxaFdyWUI2aFU3QmI1aU8rWTZUMWx4NmxkZEZFVFUKVFVIR1BLa3p4ekNzMVFQR2VNTXhiSWttNDNvOXNlblJKMXp3c05wRTg2MjF4dmNXVENCQVFqOEJReFFxYlBOY2dGQWFVRXFBcUYxZwpsQUJsZHloUkJLaFpTcU1jQ0FTb1MwWHZ3N084T2txQVVLZmNwQUNoSGhxRGVsQWYrb2lKY2lCS2ZkSUZLT1ZBTHhXZ2RQdko5bGxQCjl1RC8yU0E5NGFnNVliOERnQURSTzdDY0lSMDhYYzZrZ1RGclJsdkFKZzIwVVR4clFIV2lCeVZ6SVR2NUZRRktsa0ovS2tCWm5jOEYKNktUNzFsTUI2Z0Y5VVowY3JxTUVDRzRESW55cVI1SGRyUVFCeWdZajZWVTlqUU1sZzBDb0w4U1lIclZ3bjlIblRtcHl4bVMwb2Rycwpad0tVTTZ6aERpdDVJRUQ5VlcrSE5KVnIyaXREbGFKQkhYOUlSd2tRWnpLNXdYSWE3UWhMQ1JCS3Iwc1RvS3ptbWt6UG5YUUJBZ3ZKCjZaVXpleFNNUVJscmpDZ0w2TjZNMmM1RWF0NmIvdnpLek8yM1I3NzYvZGpuNTBkdWlQb3JPZU15NXFTVU1YWWJwRWZRZVlQZitDVjMKdEpMVGQrTnE5K2QvSFBqVDZjSFBlVjQ1MjN2N2paamoxYWl6Zk5tWkYzWnl3MmdKakIreThoWU1LUUZDb1oxWkMyZ04yNmZOSFZYbQplRlZnSktKVkYxeUxFcGFwQ05CVCs3RlFBc1NiU2dyUUdNWVlVVEhUQk9nL0hGOW1kTjNoekdvNUlZSVQwTU1aMERqQmlJWTNnSEVHCmxPQ0x6REZWU29DNDB6cnVIQUVDbEJjeGd3Q0pvL2FTZFU5WjNIbHh3L1BPWWZ1YnUvVlg0dWEzZHQzbnQ2MkZpMWhCUUpVM0l4ZU0KMTRwODhyeHByTkN2Rjh3cVJETlZGNmRyUC9GOVVUQjBRenh5cDJoRzgrcGlIUWpOK3o0WmZDNmlhWlFEWHJpZ3VCSlR0RDJHcVFKTwpMRjhmL05HcWpTa1ZhL0tHZjVpYS8ySFdiR0tHNzdVdGYzZTIvR0R3L0ZQWDlhTlQvY0J6OWE3dVQ1TmZuMWtoOC8wSy9reWRaRkZUCnNtWXFXaVpFQWJYUXIyVE9LdkpHYWtwOUNzNlVrajJQbFV3cUx2VisvY2V4cjduOThwSVJxV1Nxc3NEM3pjZEI4dHlJbkRVcUUwM28KQkFIZDZhbmJueS9WV2Y2cis4TTlSMW5DV3JGaEs0Mmc5Uy9KdUZJeUtJWFQwbFZiK1VGejhVRlQwVzc5NmFpdEtFd1doZ3lnTzJYSgpSWm1TQmV2bHRiYkNpTEZnamlpYk14VDc4Rkl2ZmlGa09oTXhGQ3hnNXlMbTg0dVdTMUhINVpqejFaajkxVlhidVFCUk1DNnRtTk5WCkxCQm5RdWJ5b0xGMGdTeWF3aVdqcW5PelJ2RWM5djZhOFlLM3N0Q25sQ3dZQy8yYU15SE5wVldML1lHeDg1OE44cFhiNUs2eTdiOWMKemYrd3R2NXNibmxDb0Rmbjc4N21ueHpIYVAzWlJVSGRJSFd6MXAvZFFNdmY0WEpYODA5d2liUHBSd2ZpQldGNmh2V2xOS0RnMDB1bwovOEhxK2NubS9zSG0vTjdpL3Q1Uy82MnQ0YUdsL3A2eGM5d3kxR1BxN2pXMzl1bDcycFVOQTVvYlMvYXJJRUIzRzgrdk84NUdiZkF1Cm5aM1dueDNDTHZXb1h1MVF2aitNZmVERFBsdXhYdCtydjNYWWRHdTM4ZlpHaytwdWoyR3Z4YkxmWmovczhCeDJOUjEydFJ4MHRlMTMKdGQzdDlCdzJ0UjIwZE8rM2RoMjB0dTQzTmUwM2R1dzFkZTAydGV3TmQ5L3RhZHREY1pxbSsxMGQrejN0ZTExTkR6dGI5bnM3RDdzNgpEbHVhRHB2Yzl6dGM5OUhhVnVOK0UyZ1FQR3pqUVdmOVlTZGM0anBDT0kvYVBRY3RqWWV0VGZmYUFPUkc5MXJkOTl0Y0Q5cW8xYTRYCmw3cVFJU1d4N2Rlbll6bHcvaHJtZmNkTDJIT25NTjExcFVpWEhwQ1lOTUJwTE9ueEhncGl5M1lNL2FZVkFBZDZSdEo3TmkzNGhobWsKUjcvaHBOQ3RPeWkwQ1R0QUNkQ0xEZ1FDVkJjblVETFFtdTVHbFB4NDFmVFdvdlhWaVAxaXlBNE9kTlp2cVpnMVYweVl5a1lNSlgzYQo0aTY4c0EwckJRRWFJRVNkeXJ4bXFiaTVGZ1FvdjFlUk42ek9IOVhrajJ2QmdmTEdkU0F4WWg4QnB5a0JFbzBUZ2xFZENCREtLQnJVCjhEdmszRFlwdXdVSkVMdER4dTFSd3RFTVhUNmlFWHUxeFJPNnkzT1d5ejZ5c0VmSzc1ZWlOWUZSbk90TFZxWWV3WElITlVpQW1xbzUKYlhKR2h5S25wVGFyNFdaV3cvWHM5bHZIQlNoSTBvSUVhdVlWTXRDREpET003T2VwQVBsUncxZkdKTnFsbTlVdlBkVlprOUZWU3h1UQpnUS9sK0RTMENRMXRSc1B3NjVFQWVUR1UzcG9VSUhBdmVyK2EzcXNDQWNwdXI4MUdheWEvRkNCbHlKbENGWGFsNFVpaGpqalR3UlpkCkw0SXZ1bE5vbHp3cGlLVkdjcm5wUlV6THpSVG1sUmJMYXFzMTJrWmhpVDNIdXRhZXdoWHRTT0dPZGFhd3g3cGRpVDdBSHUreXJIZVIKRzUzS2FOT3RrTFhjYnhYUG83d1QrclFseDJ0aWpwbFk0MmI2S0pFN2dwcTMwd2NNT2Ywa28xK2YwNnZON3RKa2RhZ3pPaFNuMm1RWgpMVkp3b0t6bTJnd1lrbHZyc2p2a29CMDV2ditIdDd0dWIrdk1GMzQvNytFOGUrK1phWnZFTWNneU04VmhhR2lLS1hlS2FSc3l5aGF6CmxoZ3MyV0ptdG1SbUNEVHR0QTJaS1UzM3M4LzU0N3lNODd2WHNoVkZrdFBPbm4yZTYvcGV2bVJGc1ozV3RqNjZhUW1KRWFDOGlBQS8KWW9lSFpzY0NFdmc0cUxSeG9FSzAzMzUzWVJCYUU1MDJCVmFZVkJZTnFTQlNVbGs4cENJUHE4bEpGVHBIUENBOVlHSC9WVWQ1UlV2NQpzNmI5TDMxdHJ4bTY0VlBESjBKcmtKT1NBclFLVzRhMllvVUZhR2U3alFIbHV6aEZYajY2aUllSFJ3S05lZm1GYmtHUlJ3aDNRb1VlCkhtZ0daSFBBU24zTjFJbk9nTloydktKcS96Zlo5Zi9vdTVYbll1VDVtUWVDVkJCTXZwK0ZqdUdCVDJmcHpiZWgwS1pCQnhPa0ROODMKZ0J2MG5SUkZwZ1o2azBjd2NrSUEzMzhGUVNaME9NQ0EyM24rYm5LUUM5QXVEZldlam5mZFdKUmNDaklyM0d6MG9nRUtvN081U2hNWQptaTBDVzR4STBQd1hQZ0lFQUlJZmpFSWd1YVgzb0tIN05YMzdBVU5Ib1JNZG9vTVdieVVGaHowOUpmQjZ3c2VwOHZlZW0yQi9jVjkrCmFvRitKZGw5YXZ6R2g4bHI3MFkrdXhqNXJpbHdxekpLS1kxVGlzTnQ1ZjcyY2tkYmtiNnJOTkRUN0wzK3Z1MnJUOTJBcEsvckk5ZE8KaExxWkQ3QjNmNWFWem1DMXN3TjFFOXFxYVhYRnBMSnFXRmsySWFxYWtWZk9vcFU5NUJFWldwV2N3TkRYNEdQV2pNdHJibXRMWjFUdwpaWU9rUzVQU2ttRloyWkFNQUlTbVZ2RTk4OFVSUHZ5b2svenN3a0JQZ1FzWTEzWkFmZXN2eXVzSHpGM0FPQUFRZVVKWVBpSXE5TkpKCk5tcTVpMVhxb3BPOU5IS0lYaElXa2hNOFVvelJPQzR1SDhKSTA3THF1OHJHT1ZIdEhYSGpIVkhyRE91N24zV0daeUhQdHMrMzdiWnQKV1Mxckx2Mkt2ZStKVmZxemdYZGZSMXRVZDgwcTJxWmw3OC95cmt5eFA1aGd2elBNT0J2dU9CcHBPekhXZTJxZSsrMkM4RXlvcXo1RQpyVTd5NE5tOWRianQ2aTlNNWYvYkozN0FaOXp1dHYyWG52TjlEL051cC9XL05KYi9yUlQ4UkZHdUNNeS9LbXkvS1V4UDVicG5HdEdXCjV0djdnc3NqbE9PTHdzWnBWdTA0clg2YTA3d29QSElIYTVnWGdvRktoaG0xU1VaRGxGRVpZcFJHbU5YUjNyT2hXeDhFcjlaN09zdWMKTitIZCtnU2pQdEJiNys2dTlYUTNoR25OQ2VHcFpMdmtpVWkzS2J1NklXKzl4ei94ZzdMbWUzSERzTEE2UUsvejlvS0JHa2NGSjMvdQpQN2xrUFA1WWYrSys1dGlpdkdWTUFJSTVQaTQrczZCdW5wTWR2YWNCeWpST0FJQkV4eEw4Y3pQeUl3dXlrL1B5czZQWXNRblo2V254CmlUbEo2MjNOdVR1S0t3djhTeU9zNWpDM2RVTFVQQzVvblpVZFgxQTJEdk5iRW9JR0grTllpTnMwaVRYR21LMVJWa09VVXpPTTFVeGcKUjZjNW56MVJXcDcyUWJKZnVQSUhQTWQvRGxoLzFjSmIyek9kODFkanp1elA5S2xzdnc2a1pVaGxmYXBQNWZoMUlHZkdYL3YyU1EwWgpucW9nL1E0YTZZSFFrbWRpckFqb3N5M1RiOG4wRzdLQmRTbGFCalNJRFVTRWhwREFHQlpxWTBMSnNJZzlLMkhlVTNiL3JPbjVTVVAvCnFZL3pENjNnUngyOGFKVC9xRmYrcURjOHNoQVpIMXNoMHhNYmtlR0pOVDM5WTB0Mkx6eGduOUpIZXZZYjlYbGhCQ2lMT0xzalBYZ3AKN3FUS0dNaDVQcUx6cU85M2t6M1U1RXo2UUoxSy9FQ0IvU0xQbVFpNGsxVWFkRUE1c3JRUWVnajNjSDZVRWZOZjBPNk0yQTlTMW4wSgp4UDVCVHNUN1hrbkV2YWZnM2xOQm5MdEtDSzBNZ2R2ZnF4amZxeWgzbFIyTGl1dno4dTltcFZkbVpPOU9TOStlbEw0eEpyNllGSitOCkNrLzR1VWM5ckdOMjVuRW4rN2lUMitwZ04xanA5VlptZzVNRE5tcU9DQnFqZ3FhWXNHbFExREFvcmsrSTYvRGdub2FZQUJVVjFVZUUKTlJGQlpaQmJFZUJWMjJoVlZpcWFQb08zTmxxMWkxbm41VFQ0MGVCUVE0eDNmSkI5YnBqMStnZ2JYdnlVdUNod0p6bklMQW14eWlKbwppQWk5NnJQVFNDWUt5ZENkYityT00zUWVCQURwMnc3Yk92RTlMZ3pTSUt0NFJJQWFFNUhITWZJazJwdENoQzdzaFZjMGdUWTJvUlBYCkFxeERMdXBCZTNlZUV3Y1FQQi9GdWZsSmZ2Nnc0UEFRdnpnbUtJcndDc05jZE14amtJTk9CUEF5Q3p3TXRMckRDUy95R1lDaEl2L3UKS3BHRGJ1YWZXRk45N0dsdGRweVpGK0xPNmpMaXpmV25KNXdiZ0lBN0dZbm5qVVNTQlZONjBua0xKRnV3eWhkdGtPSzJQVDNsSFVkRwpmWGVja1BhdUs2TytleTdkZlEra3Z1ZFMzbmRJNzlzNWQ0M2QwK3BUaytyNk1YVFdIT2loSUM0RC9aQmpjclM1L2FVQXd2VkRQV2lnCkhOQjNIelQxN0FJb0trQUg5OFV4ZE5CT1lPL3lZUUZKdW9IUU5lRnhBeEVNSWdCVW5BVWdvRTlSUWdFR0F2MlFCdEhwUkVVZTdGVVQKSFFEMDE3N3V2L1IxL0ZYYlRuemV3MEVlMm9XZVJOZTNSNmNRRFlyelEzejRINGFHcHF3SVFLQ2NBaHhBUlQ0QkFBajBBL2ZrNDVmMQp3R01TSGJTZ0l4QUJRSDlWdHYwdjZiVi8xOXhFRjRmM01RQkErZUFZSHhPdDdRZVNHeWw1RmdvWUdRSEl5U0FBaEZiUjR3QkNaMHdECmdJWkZwRGdQL2EwOUFNSHR3LzZlNGdCYVN3UUFPaDdydWpxTFhRd3hLenhNdE40RlgvS3l1OFVBMy9VTmtuZytCUllSb24wRUxtYSsKalhiWVFnRUFIZEsvQUtCOE53SlFhVWhjRStPZUdlZDllRnQ4YXBiKzNpanR3blRIbGRqVnQ1SnRaK0pkYUExUWxGbWE1SlRGV1dWKworQmxEQXpCbGNVWjE0Tm9GNitjZlJtOGNqWDlYSGI5NWNad25mYUw4N0JkRjNheW9jVTdYT0tXcm5sYVdqY3NyaHVXbG80Skt3TWVNCmlwZ0ZLeDJSbGd3S0N0R0FGcU5xVkFvQUtwdFJGU2V4c3FTNGNrUldEby9IOTBlZ0krU2phQ2RYK1pDa2NraGFtUkFCZ0FxZGxBUGEKV3dkVnV3Q3FHTVhJVThMU2NUVEpWZWlpRmxwNnloMk1VaWNOQUZRU29KVUVCY1dEM09JNHMyRU1xeGdSbGN4SXF4ZWxweGJGYjMwdgpmdThmMHZkdjgzc2ZhZzA3RHV1bXhiNXRNZjFxY2o1MU9IZGNqbC9kOW1jZTIyOSsrMytHYlA4WmdldzdmdnVHeDducXRTMjV0RDhaClpULzJpMzh4aUI0WnNaOEdia3lJUHg0VnZ6TW12akloK21TQ3dYNGdOdjAySVA2UnoxNmdtcmY3K1hmcC9IdFV5MU8xOVZlTjVDZUcKWXBsdmVhWjAvTjlxMDI5eTQvK2pWZjdYd0swSDJKdGo3V2RteFZEekNMdHhoSFY2VVg3cWpxSmxWdFEwSzY0ZDRUVEc2YTFSUmt1TQpVeE5sMXdVcDUzdzNQdkpkUFdydnJEUjhXKzNxYkFyU21semRMWFpLazZ1bnlVZXJDVk0vbkdVWm5tcXR6M1E5bTMzbjdvcE8vYUJ1CnZTZXZuZUJYeCtqMW9aNmFFS1Z4Z25mcVlmL3BGZVB4cGY1ajk1V3RBS0FKNFpFeFFldTQ4T1M4c25FU2E1cVhuWnlHTzdIV0VXRnIKbEhONkhHdWRsWnlZazUwZEVwNGNrWnhCeTMxRXg2WVZyODlKMzV0a3Z4R25IZkd6VGs0SVQwMWhwK2VrcDJZbFI0ZjV4d2U1RFk3TwpKbHRIMHpDN0pVWnJEZmEyUk9rdFk2TG1NYzRiczB6NnBnNHM0bnltVi80aWtQL0VjLzFtZ0hmZC8ybEVOMzR6NWV4RjlEd3ZIVDFFCmxwMEIxSy85T1RNLzFmMXVwaDF0V3Yyb0xaUmxzOSs4b2JPc0QwRFc3NDIydXdiM0hhUHZlNHYzUjV2OWdkMjA1RFJzZXRYcnpyNTEKcDNiTjJiL2lHRmgyR0orZ1FSM3JFMmU2ZnZZRFVEcDZCdExLNWs1MnVpZW1uQkZUV3RsbExlWFpMUjA5TDR6MFpMSG1ENWJ0bm16OQpRSC9RUFpEd0o2a1FMZmZKcVo5ZEFLRlJueGNCOUh3eEVBNGcxbjBaRWVkN0JmdWVuSWgxVjBIRXZDTm4zNUhCRGNaZEJlMnVvdWVPCnN2TzI4dGFpOHNhOC9QcTg2dHFjOHR0cDVUZFRxcXVUNmk5SDFYOVB5ajhabEw4YkVrTnZoN0RMUHNFNU4rZTBrM1hHeFQ3ajVSOFAKODQ1SCtkRFJxS0ExSm1pSjhWdWlRaUJSWTVTM1d4elpDTjdXUmhHREFFRGdIdEJQdVkxYTRhUlhlbG5WZms1TmtGY2RFYlVrUmFlRwplQmRIZUpmaFJ6WEtxUERSS2tPQ3NpQUg2U2ZLcndqelNyeHNBRkNSc2J0d29KTTAwRldvNjhqWHRSZm8yNHRzWGNVK0dqbkNLSTZ6ClNNTjhDQXhFR2hXU3hrVlEwY1J1aGVOQ3FHZ01RMnN3NEFrb3dBQUFIWEpRQUVENTNsMEFGU2I0WUNBQUVGcDhIZVVUQUVMWCtnaXcKaTN3c0hFQTB3a0NGSGphODhBWURFUnVsLzhTZDZvZDQwd01aOFdmMHFRU3pobFNpV1dOMjJKeEpNbWRPUmVDR1NENW5neFR6OXB3cApGeHlRYXRFSnFXKzdJTTFpWm4yMzNaRDJqaWNqM1YwdjFIL0hvNy9uRzdqckJRemhCbklKN3BvWmM3cUwwMzFISmhUbFkzSjA4RXdDCjZRY3Fpa2dKQUJYNkpXQ2dkQUNoa1JWOEN1eWdvZmZRUVBkckExMEhqQUFDR3JvcVFsU0FWZ0duQWVpd2l3Ti9IWDBFUHpJUWZFeFUKbW9GU0crT2ZHd2dmK0lHM2hmZ0ZVd245NUVja2hXN0JRVE1EQVVqYkNRQjZSZGR4eU54YjZHQ2l5U3djUU1RWmpBaEFBUjVhc0l3RApxTURCTG5KeGdUdGdvRUw4YXZad0E5eVQ1MkJCNEI1MDVSYzNHMEtITEp0N1h1M3IvTFA4NXY4bCtlN2ZWTGZReVVBZVpsNlFCbnpKCjk3RFFMa0U5K3ZlQ2dRQWl3SkY4QngwQWxJOG0ydGp3blZTSUE2Z29LUUNVNER1a0dJVitSbEdBQ1RmUUlGQ1FTdmF4U1g0Mk9VUnIKREhWOE9NNC9GMktXdXhsd0p3UTJJdU9yNGNnSlVmSHV5VGNJUU1BSWRJQ0VGeTI3THJSVG9ZTUQ3VkNCb3dkZG1oRUhVSUdudDh4RgpoZit3NURDbk1kaDFhWlIrY3FUelNxTHIzWm11VHhMWDNvNWZQeC90YVBaMTF3VjdHNktNNWdqdGlMZTNSdDlXb2IzZUVxYzNCNjYvCmJ2djh2ZEIzcDJMWFRpVTZ2MWhRR0ZiNk94NXB6c3hMVytkVVRUT2EyaWtsdXJMVk1FWWU1bFZNU0FCQWFFeG9YRkVPQUlyejRWOUgKOHRETGg3Q2FoYjd5V1dWaFhGQWFGMVdQeUlFNzVBQy9PSWhPZVNmRkJmRGdta2xWOVppc1lnZ2pCWG9MSE4wSCsyNGVWTFc5cXJ4NQowTlJWUGlJaVR3Z0FRT1hEd254SHoyRjlaNG1WU3JiM2t0MVVzcDhLTkNURjJLVUpkdDJJc0dwTVhENG5iWndUdmZlalNySnBWdjVxCms2N3IrN2ZOam1kMjY2WUI5RFB3bThHK1pYUnNtMUJiRnVlMkhjOEpCVFlkL2pWSFpOMlYzUEFPYnZxaVc3N0lVMy9ncVMrNkhmVnQKaER4UEUvYWR1SFU3YkY1MWU5YWRnUTI3YThOcVdkS0hmbk1iSDZrTkQxWHVMUVBVLzR0RXN5eTEvcXExLzlabjJKWWJucWsxdjJsNwpIdkEvR0wxeFlsSndmbEhlaEJZeTAwL2VWWnk0cjZtZnc1cnZLbHJHZVEweDZwRW83ZGdRcnk3Q3J2RjJudlhmZWovNDNRbHpaMFhmCjFXcGJXNk8zcDhiU1htdHVyM04wMS91b2RkSE83aDlrMW0ydGFVTXQyVEM4LzRQeXpELzZUdHlSSDVrVE5RNHhHOE05TmI2TytpSEcKNlo4MHJ5OFpUai9VSGYrNUR3eDBaRTRDQm1vWkU1eWFremRQaVZ0bXBLZW1aSzBUNG1OSlFhdVBmalRHUGpvSnVKR2ZUUXJPREdJWApoZ1JuUjRFN3NyOU5peitaWUwyZlpKd0xjVStQOEM3TVNNNkJnY2FGcDRmNTV3YTVqZWEyQnQyMVk2UGNVMGw2aTdldEpkTFRPc3crCmxxQmNYV1QzNy9UYmQvU2UvN1JvSGtwa1AvTGR2NWtoMXpNVFpIOW16Rm42U005K296Njc5TUV6UHRYbnpMWmx6Smw5MjVUZTgvczMKN1pCancwSGtXbmNST2RaQncyN25pc3V6NG5ZdnUreExvQnk3ZWNtT0Z1aXN1QzNMTGtDUDlSR2F6TExoWll6MFpJem9wSFBuNWVtZQo1Szd2Q1ZyV2s2T3NNWjdka1o2c0JUMUU2ZWhSUE5LbHlwYk55MzJUWFlaNGlDUy9xSWoycGM5UGlsVENmOGhUN2FNZjVKNVVMNG9uClBSbnpleWtSN2U3enFIZGtVTzl0S1JIYzdya3I2N2tqcDl4V2RDOHFPeGNVRUdWZTBUMG43NXBWZE0yb3VtYlVuZE9hOWdsTjI3aTYKYmJ6dnhyam0rcGo2MnhIVlYwUHlMNU95ejVNSzZOMmtCSHA3U1BKV1V2em1rUFJ2U2NubGhQaENBanVWRko5TVlDY0dSY2NUb21PRApJckJSTTJBb3pHbXdNZXJzNkxydTFaQ0hWUlBnMW9VRmRURlJRMVIwTEluQks1RExZNkkzSnNRbjQ5eGFQN3orNUZhR2VWWDR6QnE4CkxRL3dTcHlNWW5OUGtiNnJURWNwMVhZV2F6dUs5WjJsdHQ1U1A2TTB5aUVQc291SCtPUmhBUW9BaEZjMEprUVhrUndURWJlTDBPWHUKaFdpSGlvK082QU8vVVYyOUFDQjRzVm9VNDZMVGFIRURFUUFxaXZBQVFDaDRDdk1qQUJVNTZZVU9HcnplQmdEQkMyOHdFRm9sNG1YLwppVGRsSU9KUEc5TVRUbHVJUkRQVzlLUXp0b3hrczNaSVB1ZklTREh2aEpSekxpTFZ2RHM5NVlLTFNMWG9odFMzUFVUYWhlZnBGcjJwCnRIZDhxWFIzL2FrR2J2djBkN3dRU0lnd2tQU09qVGR2ZkhkYWQzSk1EazlPSlNNS1VsSmVFbGVnRWFDd0pDZUE4dXdjZEE0UUFNalEKbTZmdlBkamZkVURYQ1N4QWMwTUJEcnJFZWd3L0dUa3NPT3hId3o5b0FNYUw1WHV4ZEFPUnduSW90U1k2NDNBZ29BOEtkMDlCVkVxSwpvcE9wMFdKcUR3OUE4NXErNXhWZDF5c2FmQVRJUUNtd000QTdhUEVOMm4rT244VThLRVk3OXh6NEFtMHpQZC9LTExDeER0dVkrWFlXCllLalFpYjUrdEhQTndVSnJtVDBjdEtIZGhSWi9JUUFaZS82cWJ2OFAyYTMvSmI3K3Y1UTNEMWlwYUI0MHlNaUg3d3kwQ1l2NmFuL24KYTlxT2d3T2RoMHhkaDYxVU1CRENzZ2QvUUlnRDMxNkZnendRQ2VnYmNkdEhKd0FFYncvNzZXaTltNGRaN0dXUlFyUUtYL3VsUWZhSgpBS3NNVGZTQWdaakZBVlp4aUYwYzVhS2pFWWZ3SFU4akNqU0xsSkNRb3lJRUlEdTF3TlpMc2xFUDliZERoZlllZUh3SlB0ZFc1T210CmNGS0xncUtLQ090U2duYmpKL25ObnlXM1pwblg3OURhSjI3UkZpbk0rMExLUFVuSFBWbjdYYXo3cnBoMlcwYVpsSFNPeXRvWDVCMkwKR0hXSzFURk11VFpKWmZ5b1ZEMHdPMVlNb2lYREo5K3JUczNLbXFaazlkT0txbkVKV3FZenhLMll3R3BtVk5WVENFQVZ3MUp5akZjVQpvSlBjdldVSlBnQ29jbFpWR0VXTXF4b1VvM1BEM095eUlLOWlFS3NhbGRkT3FXc21GV1ZKVVdHWURhWXBzSFVkVk44NHBHdzdvTHdGCi95WEJQU1ZqZ3JJeFljV1E4TEN0Ry81MXhVWktpYlduMk5WYjRxUENMd1YwaEdPQ1U1M2tWMDlJcXhma3B4ZkVIVXRHNTZiTi84emoKM25iNGRweitweTdnRGpESS9yK2QvdDhjVU9CWFoyREhFZGh4QmJlY0lXalQ3ZnZONDMzcThtKzdnMXZ1NElZckFQZHN1ajJicnRoYQpJTFlSVEd5SEJyZjhpZTNBNEZZUWdqdmp6eUxScDZIa2YwV0RXNTRJT09sWGYveTNvSC9EN3RteWc0cUN6eHpnSWRkVGsvMDNxM3ExCm4vRzk2Sk1GMlZjL2FOK1pGcDRkWXI2eElMbTBJRDQ2eGp3eHlUczJ5bTRNZDdaR3VvOG5XUFVoYWtPZysyS2M4bEd5czhWd282enYKeXpwM1IxT1FWbTYrVVc2Nlh1UHRhWWl5WGgvdDdWc3p1WFlNcHZXK2dTM2IzMzlRdHQ2VHRjeUtqczloeDRlNXJVRnFrN2U3TmNHNgorSVAyclNYTDVZZW0wNDhHVHY2aVBYcEgxandsQWdDZFhWU2RuSldkbkZXY0dCTWZIeGNmaS9OYUhUMnRQdXFKQ2V6Y2pQemNJUDlzClFueHhTSEIrVEhSbVN2NjNLZUZIbzlRcnNaNnpmdWFacE9EQ3BPemtzQUE2UHlxRlgvSE41czRqL1IxSGsrd1RjV2E5KzlhUmFPL3gKRWRiRllRYnpGN243cWRHeXJ2UCtadFU5a3N0L0VIaWVXU0RuRHRBejB6ZXBBRXlwSEU4TmFSbnRPNGFNYk50NjY0NHBaL0QvZlo4YwpxVnhiemxTZWRmZGVYdmVhQi9LdStpREhpc3U2NGpTdk9DRExxdE95N0xBK3R0a2VXaDJQN1pEOWtjM3l5R3ArYUVtMTcwalBFMU9xCi9zZkdWTnA5Nm50a3lGbjJXQTVSeHBLZG5MalpML2xEN2ZPeTZQTUhBYlNmZUZLSmYxWkN1ZldUQnFCMC9RalJNRStHZTZSN0lmcHcKZjVCeVg5UVA4M3Z4WHNnOWpIc1MrbDBwMUhOWFFrUzVJNmJja1VMZHR5VlExNTI5Ymt1N0Z5RjV6NEtjTWk5cld4RGRtaGZlbWhmZApuTU51elVsdnprcHV6RWl2VDBzNkp1V29DVVg3cEtKdFFuNXpRa24wN2FRS0lvYUx2cHBVZnptaCtueEMrZG00OHYxSjFaVnh4YnRqCjhyZEhwRzhNU1pHS1lzTFhJL3pUVHRZSkovTzRpOW5xWnJiNFdFY0NuSllRdHlYQ2F3a0xUc1pFNTVQQ3QwYXhkOFlsOEpQWTdHUFYKZVZrMUlVNWRoRmNieFFlUWdyeEtGNlBFM0Z1czc2N1E5WlJydThCQVpFTlhxYk8zTE1RcUhlU1VEdlB3UzNud3lrYjRFUHhhUmp0SQo4RXBIQmZCdThRaHVJL3hDSDBVK1JvR3pGOHAzVTlIU2dpQ0xoRCsvZ0lFZzBBOENFSzRmWWdxTUdBRUNBQkdSY0FDaHlRY2ZCd3owCkorR1VPVDBSaUFjUG0zYWtKNTV4RXNtbWRwTlB1M0ttbUhHbnA1bnpadFEzNzRNSUJxa1hQRVNhUlMrUmJ2NTUvUXUrNTkzMnB4cTQKRTBpbHYrT0hETGVSaE1CQWZYYzk4anRPOGFMbDA5bUIxOGNVZGFPeTBqRUZPYWtnNHdBcXlnSlFnVWVRNytRQmdBQVRoMHdJUUljRwplZzdxY0JEMGQ2R0RMLzNzL0JDUDJBbUZqdHZ4N1Y0OXZzQWpnb0JCUmJpQmlnSlNVaENOQTZVYmlCemZCUkNlckRnaEw0cExpNkppCm9zS1E2TENmWCtnRXg5RFJxaU5kNXl1YU5qRFFBWDBQNENiZnowVUxrUEdEbU5HcDVIRXgzSFBRUmtOZmtxbVhDSHlHTDk4QnNxQ3QKKy9CUEtIQXdTVzVPc1ljTC81dlJjUXNBQzNNUGlPb3ZpbHYvSWI3eGI1SWIvNFlEQ0cwRkRPd0M2TENWZGtEWERaLzZOVjM3SVgxWApucWtIR2NpQnJtcCsyTWNzd0gwTjMxNEFJSFJ1VUlBQkFJSnZRUWdBaEdPSVJuTFR3RUJvdGJLN3N6VkliL0xReVE0cUFLakV4eXdOCnNBRTBhRllyemk4ZEVwV05vYXVVQUlES2tsSjBXS0tQblcvcnpUTjNGMXE2RCtyYWdBaEZWZ281eUVaWGloZ1VrTHpVU2hldDFNdHMKR3FSL044VVJyQ2pseTByUlhUYnZQbHN3VCtsL3dMT3NxUzFyQnVQcWdHRlpiVnhTQTNIc2owMitGWmRwMld6Wk1OdFc5SW83Zk5uMwptSDNkNGx1MnVSNGI5Q3ZXN29mNnN6UGloZ2xKdzVTaWRsSldOaTRvRytGVlRXRFYwL0xxYVdYVnVLSjhDQ3VMOGNsQitNL1lXeExuCm9tc1Z6V2tRNEx5TTBnQzMwTXNzOGJJckk4SzZZWG50T09KMXhiQVlmdndPKzZsZ0d2amlEeXB2SGxhMkhWVGNPbXlrVkF5aC9WL2wKNDZMS1lWR0JqWktuUSt1VHlCWktpYXVYN08ydENIQkt3b3pLUVU1VmdsYzNJMnU4clhqM25reU90czlZQXB1dXdMb3p1T0VPYlh0OQoyNzdncjBISXYrUHg3M2dEMjk3d2ppKzY0NDl0STlhQWI0STd2c2hPTUxvZGpHNEY0cHNBblhCaU81SjRHZ3R1QmtLYm51QzZQYnhtCmphdzc0UEd4blVqczZXQmtJeGpkREVGd1kzQW5HdHNPRGo0TngzZENpYTE0Y2p1ZTNJbkM3UmowYXpqME5Palo5RGczL083dHNHbkYKclg1b1VTL2JWY3RPNFFNVDd5Zjl6ZnY5WDg5SnJzNUtQcDhVdnhQanZCMW1mUmFuZnhucnZHUnVQNmIvN3F5WGNqYlEyMks2MGF5Lwpkc1RSZnRSSGVTTjZVLzlFNzkweTI3ZE41cWVlTCs3TGo5emxuN2lOVnUyY0dCY2NpN0JhQXJRalNlNlplOXFMajYxbmZ6YWMrYm52CjdFL2FVM2NVclZQQ0kyTzhDNHZxczdQeTA1T1MwNlBpMDJPUzAxSGVDV3RQcTZQN3pCaDJma3AyTnN3K0hSZWRIK0s5UGlFNk42ZDQKYzA3OHlTVDl2VVRQK1FqNzdKRGsvTGp5MktEdzFMRGswcmo2OVpqNGlKRnl6RUE1UGlROEVlTTAreWpIQjlrbmgzbFhaakhwbXNXeApwamV2OVh1ZTJmb2ZxMlQzaFk1dGsvdFhxMzNMaU1yU0ROSHVzQnllYzhlY3lyVmpjMjViTXdMT2VqWnNPZk51dUhLV0JoMjNkOE9UCnlyZnU4SzA3dldzT3lMUGloTnpMRHNqN0NMN1ZiYlluVnZPUzFiSnNzNjdZSGN0MjV4TWJXb244eEc1OVlpZG11SXhMTnNPU3piaHMKL3lQUXlXWk5kdXBIK3B4bEUrZVBRMmMvOU1nZTlEMHZTelk1ZmJOZk9kR1RYdnBJVHpaM25nLzgvQ2dqeWtVZkZFRWZpUE1pZllpbAp6WXo3VXZyM0VnZ2Y3NUZBOE5JT2d0ZDFlTktVZXpwM2szWXVTcm9XSkozejRtNjhHN2NGMXhmNTF4WUVxSGtoSHZiZG5PakdGSFo5ClVvUW5Kcm8yZ1gwN0xyNHhLWWR1VGltZ0c1Tks2TnFrNHRvRXFFanp6WlFHVlBUMWhPckxDWUNSK3ZNeDVXZWppazhHNVIvSFpSL0UKcE8vR3hHL0h4Ry9Hc0wvRnNjdUQyUG1FNUc5SnlWdkQyUHVqa2cvSFpXOE9pYzZGZVNkRHZOWWc5MGlZZHlUS0J5UTFCYmoxTGthVgptVkpwNkt6VzkxYnB1OHY3TzB2TlhXV3Vudkl3czN5SVd6N0toMStEVUdXU1Y1N2tvY3Q2RE9PTkNpcEdCSEFEYkZTYTVKY084dEJ3CmtZOVo1S0xDeTJONGdpankwWXBEVExnVGZsZVRCL0ZpUEhpNlFhKzZBeXlTbndrUEpubm82Qm5LU1NVNTBhNmFZamNUVFZuNHVQRHkKdTlERC9wTncwcEpLTkdWTkpabHlwQ2VkZGhMdEJ5RGxpNmxtM0VUcVdVOU9BMlVBS0dXZ2RBQzl3S0EwQUwzQW9FVy8valppRUFCbwo0STVmZThlanVPMlVMdHEvblRPOE1hNW9ISkdValNwS2hwUXBBQUZRY2dJbzM4ck1NOUZBUDRkMGxBUGFqbGNCQk5xT1BEMGx6OHZLCkQzS0ozZUFGUVFRZ05QSGtZQmU0aEtnOUF3R0EwZzJVZmpnUWNZbU00cmlVUENpRFNERUpLU0tHQ29MQ1BCL3ZvS1VuejlKN3lFZ0IKQUwzYTEvNXFYeWNnak9UZ0ZQcWVBd2hka3lXR1RpSi8xZHdEWDlKaEEzcDdhS0FiWkVOMDJFek5zOUx5N1F6Z1ZKR0xYZVJHRjhQTApkOUNKOVQzd2dEL0wyd0JBL3k2OStlL0tkZ0FRZkhCOEpvc0ZXaXF3TWcvMlUxNVJ0Yi9XMTU0MzBIWEkxSlZub1JBQVFqT3NRSUVvCmw1d1FnSUdJNFIrZ0QzeExFUVlpUm9QSWJqcDhWeDMyMHd1OTFCb1ByZHBKSTltN1V3QXFDWEVBRUFTQUtrWWxhQmxOVWxxZUVGY00KWWtDS0FqczEzOVFKZ1E4UUVRZ0FKVVhvdUdRUHRkcEZid3l5TGszeHNCL2tpbVc1NlpFQ3NxNXJIVStVcHRVK3g0YlZ2bTZISEd0Rwp5TFBoY0N3NzNhdm90bjNEQkEwODB1Z2VxSnpySnJqVDg5RHNXbmNKbHEwWFpqQUFVTk9rcW5GQ1hqVWhxaGpoVjQ5ak5aT3lta2tGCk1abFZIdWVWaDludzJja3hUdTJzc241ZVhSNFh3STlRc1F0UnJ5b3NyQjJVMUF4TEtvZkZaUWxoU1p4ZkVtRURtTkFwcUZiS1llV3QKQW1YbllVVkh2b0ZTbGNRcXhvU1Y0NkxhRVhHUm96ZGYxMDRhNkNLYnVrc2NQV1JQVDFXQVZSNWtWTWNSZ0dwbjVTMTNwRmQvVXR0MgpYTzV0TjFMT2xqZThIUWp1QlB6YndkQldFTEFDTjZBQS9pNjZaeXNFNG9FQ0cvN3dkZ2dDOFlRM3cxQm9BM0FUOWowTmhKNEZBanV1CjZETjM1S2tuOU5UdjNmUjd0c0pBbjloV0dENGdCRGZDNndFSVlXZzlIbHVOd3R2a1pueHdQUnBiRHc5dVJxRUVQb0FFQVpVQVJtZ0EKNmJjWWZCbStuWVIzTytKN0duRnZSaXpMRWR0eTFMTVdjajl4dXBZanVnZnV2aVdmNHBGTGVNZkluZFhScHRTVUtSVzhxUFZzdWtKYgpUdSsydzdMajdQaEo5YzV0d1R1TDRqT3pndE1qbk9NQnloRmZkMk9jZm54QmV2R3grY0lUOC9sN3FrdmZhNGpOWEVkSHVKZm1GZWNtCkpDY1N2TmZIWmVjbjVPY2ovTE9XM3BPV3J2T2o0b3ZqMGxNKytzbW80SHlDZTJGY2RINU8rZlljOXVrRTljT2huc3R4N3Q5R0pHOVAKS2M4bHNjdmppbmNtMVpjaTJBbFR6MmxUNzhVcCtjVWh3ZWtBOVV5VWRUWXArT3kyV3IzamNXNVo0TnZHODlSdVhOSXA3b3R0NjBhNApCM0lCWC9BYjJYbTIwT0JaZHQ0dFZ5clBwak1WMERabjZiaEpMeDFBa0h2TlJlUmRzMEtlVll0ejFRcG9obXpMS1A4anUrK3hIUXhrCmZXd3hQemFibmxpTThQYVJpYmloZjd3TEhjUWFmQ29xSFQyNlI0WlV6NGR3SHVyVFM4ZU42dUZBS3VXRC9weGxVeVliTkgrOEYranoKTHdCb3YvRWVOT1R6a3lLOS9mV0Q5bmJ0N3ZENlVaNHF3ejA0ZlNSNHUvcmh2RERxSXliY2s2R2YzdHZpL1FFa2hUcHVTem9XeEIyTApXTWU4aUtodFhuaHJUckRickxCdFRnUnZJVERRWHVKcnM2anZaaVRRdFFuSjlVbnBiaE95VkRmR0ZkZkg1TkMxY2ZuMUNkV05TVFdvCjZMdHg1YlV4emJkamF1anFtUHJyVWRWWFk2Z3Z4bFVmVDZnL0hsZDhPaTcvKzVqMHMzSFpKMk95OTRjbDd3M0wza2hLM3RpYlZyc1EKdzg0R2VDZGR6Qk4yV3F1TjBXS2hOVm9vRGZhZWVpKzlJY3FxVDNKclJ6am9ITVZCZm0yY0I5VU1JZ3lob2ZFa3YyWklVSVV1YzRiRAphSkJmSHVXV0JaZ2xIclNTa3V5bmwrQW5zSlJGT09pWGRwd0hEQ3FMOE9BWkI1MDI0bVdnNXlBUGVub3FjZElnK0FWT0J2MTRXUEFpCk5tV2dQMkVUTmlMeHBEMDl5UVJLT3VuSUtBV2diQVBsSEFkU3pucFNxZWE4cVRSekxxaHYzcDJ6OUltdzlPbXcvdHUrckhBTTRRd0MKQVBYZDlpcHV1NlVMenJaNTQ1VngxWkVSR2J5c0x4MVdsU1pVNUtoeWQ1WXFKTnNQUUhuOVBYbDkzUWMxN2ErcGJxR2orUWE2RDNtWQorWDVPVVZpSXJwTVY1QmQ0OGVFZkd5dmZLU0FNVk9SQkFDTDVKY1VCS1pTYUMwczNVRHFBeURGMFFUaDBlWWVBTU0vRGZjV0FEZ0JFCkFPcnZBSGk5cHUwNlpLUVdPOUVxTFZKWWlDN0NRbHlaSllybHVaaXY2THVJYTlIQld6UkFCUWJxNzNwdG9Bc05DT0VBQXYyUVBBaEEKeElLdkFpZSt3MHZmaXdQbzFsK2s3UWhBSmlxK3k1MVZGR0NUUGR4aUd4disxUUFnTUI4QUNHMFhSQ3VCZW9rWlZnQlFjWXhYa3VRRApnUEtEYU5xTEFCREt6eVRHZ1VxOXpHSVBQYy9QTEFpd3k1ek1NbXN2QXBDYld1S2psK0o3QWNoaFZuR2NVem9rcUJqRktrZVY1VU1TCkFGQmxRbHdlNGdQTUN5M2RSWlp1ME05aGJSc1lBcjUzQVVESUZoNWFqWnRSNjZaZG11RDNQelRvTm5UK1piMTMwKzdldExuV0xMWU4KaTJQVDdWanhPTmVjcm5XN2M5M2kzSEJiVjcyT05UTzhubmF0MmoyYkh0ZW14NzNoOW0xN1hQQTg5TVRsWGZWSWw2Mlg1ckRHYVhuVApXRi9UaUx4NlVsdzFLcWdlRndHQWFxZVVCSUFxWXJ5S0NBdU1BaThzcXFaa2pYUHFtcVFJZm9ySURpcjhTeXZqV0hVQ0E5ekFWd2d3CmdnZFhScm1WWVU2cGwwNkcvMjZxdG1KVmQ3Nmk0N0MrR3oxc1RGdzFKcW9mazVhNUdZVURuU1VEM1NWR0JLQlNkMCtWajFrWll0YkUKT2ZBVFhqK3ZiTGt0N25qWTUxKzNXTGJzamcyN2Q5TUpYN1libnBKMzBKUldHSjRMdDd5UWJ4TnkrN2M4RURnSkFsVUVudnE4TzM3UAp0cy83YXlEd0RGQVNnZ0xiL3ZDdklYaHdZTWNEUlg4TEFhY2l6NkxnS2lpeUV5UnVSSjlHQUUvd05yb05lQXBHdDZPeG5WaGtLd0tFCmltK0dvdXVCNEpZbnVPa0xiZm54a0wyUWZqYjlzZVZBZk5VYlcvZEUxdnlSNVhCMEpSWmZDVVdYM1VPcjRmQktJTFFWRHF5SHd1dmgKeEVZc3VoWU5yVWRkMi83QXMxQnN3eDlkYzN1ZWVvM2JMdVVUaStpSm1iNXNvUDFEMnpHTlhac1FmanJCZjI5Qi9ORlBmZS8vUS8zKwovZjRQZjlSZnVhZTlNQ2s1bWVTK05hZThPQ0UrRmVkZW1sQmNHcE5mQ0hBdldLaG5MTjF2ak12K05pay82MmVlRHd2L05zaDdZd3k3ClBDTi9mMWIwK1JqbDc0UGQ3OFE0YjhVWkg0d0wvcFpndlQzQ3V6TEVlenZFdkd6dGZOUFU4Y1lJKzkxQnhodnVqc3RleXRzSjNsZHoKY3VIRGZ1T0sxcmxwYzI4N2JHdG0zUzhhKzdyRnRXV0hkeUg0UDVJei83b25aNEVOTDVSOXYyL05uYk9VYkxKeXBJTHY2bFRnSHNpKwpZckd2V0MwckZzaThZak10VzYxTFp2dVNCYkkrTnBrZkc4M0xadE15T21uUThBVHBCd0hvMFM1MHNrZHhYb0RPM29FNis2VjhxRTB2CjB5V3AwczdVZWJIbjI4Ny9VRmtmV2ZxTEJzcW1EMUUyY1hLMnIzditJZDh0QjMyZUF5aWRQamtCdEtjZjVCNGk5aDU5R1Bjd1ZOYlkKRDU0TW4vbmFiWGZ5YTFFTWRTNUtpSkIrRnJIMjNaa3ZZZHVNOE5hMGdBaHV0ODFndDZaRk42ZUVYMDBMdjVrUjdUWXQvcGJRejZ6MApXN2dOVFVtL201WkIxeWIzbXBCOE95NytaZ3oxN2JqazZvVHM2M0VwOU1VSTl1V29HUHBxVFBMTm1EVFZWMVBLcnljVVgrR1BnYjVDCnlUOGZsMzArcHZ6N21PS1RVZmxIWS9JUFJ1UWZKS1h2eGJBckVlRmJJZXlOZ1BDeW4zc3B3THNZNFoxUDhNNG1lYWVHZU1lSHNHTkoKMFpHa3NDVWhRRWQ4SlhhclMvSnJFN3ZqUTBoRmNYNWxrRjNwWjZMRlExQ1FDUzlXUVVYb2x6WmVaWmhYSG9UZnhzeFNGM0pQbVlzTwpWVGgzRFlRd3RBY2dQTzZmeE9PT1ZKSUpaeXJaaEQyVmZOS1JLalVVOUh4TWFNWUZaZE5udHpsWFJzcDVOMFFBS0p0QjZvWG5hUlk5CnFkTFhBNlVEU0hzN21ENGdwTG5qbFMrNkFFQ1VSY3NIRTZwam85THFDV1haaUxvc3FTNkpxVElBVk9RVHBRQlVrQWFnQStvMkFrREEKaTROdUJnQUluWW1NQXlqZncwYkRQelpXb1VOQUdLalFMU0o1WHdBUVlhRGl5QXNuUkpOaUV0QlBTUndCQ0JXUkVBRDZ5OEN0UStidQpQRlBQb2Y1T05QTFUxd2xlSVRuUXBlWUFRT2k4bkNFWlJJcUlEdG5wZjlhMUEzMEtqTDBJUUxwT0FrQlF2ckgzb0xrWEFJVG12N3djCll2NExYL2RPeTdOUUR4dW9mMUcwLzFuU0JnRDZOMFhiYThaZS9LaERkREVYQUJEWnpqazgwUHNhd0VpOUM2QThjemZhRCsvY0ExQ2MKQXdBaXgva0ZPSUIyQnhVOWRIUUREQlJnbHZ2WkFHMEFVRkZFVU94a2xWaDdBRURGYUtLSFJnaWRBQkI4a1BJUkVUN05KQ2tieEtvRwp4WlVSUG54SGttdzl4YlllMEU4MmdHcmRqT1lRLy93WWYrQ0JwVzlkNzEreTJsWWQ1bVdYYXpNQTR2SEE2K1psWjJEVkVWZ3p1VmYxCjhQTGFDYzg2bSs3Z21zZi8yT05mQ1FWV284R1ZjR2c5REU3eXJ3Uzh5MTdwRTh2bGVYSExuS1o1cEs4eEthK1pFRmVQOFFGQWRWUHkKdWtsbHpiaThla2lNbXdab2lQYVhWVXhJR21aVjlTT1NjZzhUZm41cWdqeUVua0ZoZVZJRVZTV0Z0UWtoT2t3c3dDckhBVlNvYWljcgpFWUFLQmhDQXFzY2wxZU5ZSTdqS3l5SVp1Z2tBbGRseEFMbnBWV0ZXZFl4ZE95d0VBRFhQaTNvZjY0TExCc3VPemI1cDlXMDVQRHRPCjJ6T2I1YW5Gc1dVSmJ0dDkyKzdkZHB5UUYzOVdkdS9Zb2h2TzZMWTdzR0gzck5yUVNxQ25YbVNqVFhkb3hUdjROQnphOEtHUnBDMVAKL05kZ2FOMGRXVVBEUzFEb3FSOGU1dDN3aEo2Q1p1Q3YrQUsvb2cvdWZlcUZmTnMrZUFCYVRMM3VESzhIMEtEUmVqaTZGaHJjaU1UWApJdEdWVUhJOU9yZ1JpRzU1OFhWSW50aFdOTG9SRDIrR0k5dSsrTElMbEFQQWdpZjEwSW83c1JhTUxmc0FVb0VOUHhnb3VSNGFYdmJCCi96aDRaR0xaRzF6M2V6WWN3VFZYZE5rWjJmUTdOcjJLTlR1MjZXQTlNWHozMEhIdGtmT0xmNWplbkphZEcrSmZXZEM4TTYyNE1DUkEKK2htUm52ZXlMNXVvNTh6ZDcwd3EzNTFSWHdweC94WVNYWW54UHh5WGZYeGI5KzA5VGU4ZFVlOGkxcmFvYTdzdG8vN1MzM1pmMmZHagp1dXQ3VGU5ZERXMWVTWnVXdC8ra1lmMnNZOTFSMHUvcTJJOGM5SWRHL3M5Sy9Zb2FNRTBNMWRpV3pkNHRGL0hmSE40RkJlWnUzWjhxCnNPWkxLNURLditwUGxWcXRuTm1xTTJmdWRUdmtXZ1AwMndqMEVFTSt0bVViWkZtMmdYdk1LdzRUbm1IVjBiZGkxSzliMEVITWdCNTAKM0k1UnYyVFVQdEhEYmYwamZYb0dkSXBQNWdCUHF2MnM4enZqTVZsSkgycjI2ZmxaTytsbHV1ZjNBSlE5dXJQZkdFOTI2Vk5kdWZXVAppWjdkOE5tdVRQcEEvQjllbVBsSzZTY2JRTHY2d1FGRUdDZ05RTVNTWnpIVXM0amhTU2dMWXFMT2VSUXgvTk1PMytFTG9oc0xmTlNpCkJMcStJTDQyanhHVFg5L09BbjBFNEo1dlp6RndEM0RubXluc20wbkp0VW5wOVNuWjF6TmlQQ24welRRa3V6b2xoUUJKVjZjazBGZlQKcUsrblpWOU9TMU45TlNYOWVsS0NHaGRmSGNXZ3IwZmdob1FBRTBUYzg5VXdkblZFOXVXSTlQTVIyV2VqY3VpTEVjVVgrQkxzTDRiVQpueWRWZngrVS9YMVE4c21ROUtNUnlaVmg3SzBoL3JsUitka1IyZWtSNmNraE1TRWhvdm9rdnk2eE95WUVFcXFOQzZyRFhQaDlXeFpnClF1VkJGZ0FJWG9JaUdNWDU4S3NiZmtWWCtUbndnck1VOUdPbmxqdG9GWFphcFFNQkNFZ0U5Nk14b1QwRGxmZzUrd0tJR0FIS0hnZmEKYndRbzUvd1hNUVdXS24wV1REMEw5SEVUOWMxN2lMUUxYdTJjSjlVTEUyR0xPUnE0N2RQZERXanY0QURhblFMenFXKzc1SXNPMXJ6cApxMG5ObVZGWnpaaXNmRXhaUHF3cVFVdHc1S1NJbEJTU0ZBV0JMQmdBcU5BdEtIVHk4dTBjMEE5QTRaQ09ja2pkZVZEVmNVRFpEbThQCnFqc1AyMmxvMTF4WVdCREdyNUh1NStjNWtZRUtyWnhDTzdmSXdTdHk3WjNCNHhQQnh5UUhKUkI4Q3FnNGpNNGZJaXFLaXNGQWhYaWsKR0FhZ1FUdnhuTXdEUnJUbEhnUURyTUZIZ0RvT202a2tGN3Nnd0N1T1ltaTdlRklLWDNsSlNKeG5aZnlIdWcwTlNnMTBIelpTb0VONgovQnFpQSszNXB1N0RGZ2F3ck1qQktYSnhTVzc0cXJpRlRueEx2Sm1LWnJqazdYL0YydjRxYVFjSnZUWkFRVE5mQVI1OEFZVWVUb0dECmVkQkFlVlhUZGxEVG5xL3R5dE8zRlppN0NteVVBZ2QrTWZZd0c3OXlKem91SFMxcXhpZTI0QnVJK0I0Q1RSZUdHQkFweUNnS29DbXcKUWpjNkRpZmYzbFhxcHBaNjZRanArQ3dZT2NZRDFsU095TkNtOFNGNTVhQzBPaXF0REdGbFBnN1pRU1ZadS9LMW5RWGFUcktsdDlUSAp3U2ZJaEdDT09qZTdNY1Q3ZEZ6ZTk3UFY4OUR1VzNJN2x6M2VWVTlnMVozK3BFSkVQTmtFMTBJNTh5NEZQTXMyeFpMcDNYbDE0MVJmCnc1U3NaVXBXT3k2dEhoWFhURWdiWnBSb1dUUndlVWhjTlNoQ3AzdTVHZkFEVmpzbHI1MVZOa3dwNE1jTVFBWS9iMVV4SGxRZEZkVEUKaExWeEVieXRqb2dxUTRKcUY1TTAwRkhTMTFHaTdzeFgzQ28yVW1xandzWXhSY093dUdGVVhoMFRGaG03U1gzdE5jYnVTa3RYbVp0Uwo2UWRPMFJwaTNLb1JyR1pHZG5KTzNQTklZOW5VR1hmTXBxY1djSTk1eTJUYnNoSzd2UnhieURwRVFCOGllR0lHOGFSUHRSQWpRMFRFClFCSEJuZlQyeG5JeUMyLyt6d1RreWxsNE01aXpkRUNrNTFseHUvRGRUTFlsaC82aFdmUFRnT3g3RFhaYndiMmpZaTdLZStCVjdBanYKeXlUcjZ3bmgxNU9pRDVQczk4THNEMk9jVDRlNE4rYkYvQ2NHN2FiRnVHR3lyQm1zcTlaVXRqVmJLbUxkRE9SZGRZSFYwa1p1L0Ruego0YXZMc3dQTTVXeS9rUnNBRmhxd0JNM2t5Z0c0ZWJIMHI1OFk2ZGtkNzFrMnBVcGRSd0l5TEp0QVBFUURUd3lwdEU4RytoNzNaNWR4CmdIS0dlMTdnRG41Q1lNbzl1d013K0cyNE01c3lMNDlnVGZvOWtnY2FLUHVlMzB1ZFNneW0yV3MvQSsyTG5yMFRDMTlTdG5oUzdrbVAKZDErYUhmc2VLclhTR1MxMkptYSs4Q1hQRU8yT0JLTGVGaFAxM3BiMW9EWE9xSzRGZkxuUElqN3R0U0J1bjhlZ3RnWHMxcndJdXJFZwp1ajR2dkQ2SEVWMmJGZUh6WEZpcWI2ZEZ1K005ZTZNKzBEZVR6N3M2SVVtVjhXNnFyeWJFcWI0Y3gxTGhRejQ1K216c2VYOGZsYVQ2CmRFU2M2cE5oN0hrajBvOUhrWWZlSHhhL055Sitad1I3YTBRRW5VbWlUZ3lLanNZRkxURzBQNzgrektrTnMrdDk3RG8vdXpZSXQ3blYKVVh4a0tNNnZHa1E4cWc2eUszeU1NaGNWWG1xVzIzb3FiRDJWOXQ1cUI2UEt5YWgwTVNvOFRIaG1LZld6NEpWMmFaRDVmeFJBNlFZQwpBS1VNbEFJUU10QStBTkl0ZUtCc0E2VURDQTBJSVFCNUFFQ2NlZk0zazMzZ3l2b3hPWnAyd1FGVUhKTWpsT0FBS2c2SWkzMFlPajVuCmZ3QWRVSFVBZ0VnK1hncEErUUhCN2hvZ0N6SVFBU0FTS01vdElIa1JnTkNIeGNzeUVBSVFZYUIwQUIweTk2SnRYeVlxQU9pZ3J2T0EKcmpQZlFnTUFGUWI1R1FBQzR2eTc2bFlLUU9nOFRYM1hnZjRPQWtERXZqQUFVTEdMbHdJUWZKMW9lVkIvejZ1eVhRRDlWZGIyYW45MwprUk9kSlYyRVg1cXVjQTlBQjlSdGg5SDRVMXVCcVRNRklMU2FETDlxVlhsMEYwRHdGczJ0ZXRrZ0ZlUm9ZaUkyZ0E5SWV1bWdCS0FQCld1ZnI3RW5OZ3BIRG5KSTRId2VRaERCUVZVSldHWk5XaGJGeVA3Y0VYek5VcUVQblE1UllxV1YrYmxWU1Vwa1F3YmRwbzRmVEhPSi8KUHFIc2YyQW5BT1JhUVZ0ZEFpdmUvUUMwWDU1bG4zdkZxbHcyWDFuUU5NMW9HcWZsQUtENk1Xbk5HRlkzSVFNQVFUVmphSEZQN1NCVwpHZVlSQUVJalEzT3F4bWtsTWNsVkVXTFh4UGg0U0Q5MWd4aThKUUFFankvUmR3S0FTalZkUlVxMDNya3l5SzBEL1F5TG0wYWw4RENTCmlWTFMxL1ljUUQ1cXJaK0tOcEFQWTQzenlyTUxNc3BqN2NCNm4yR2p6N1k5NE5qVzI3Y0dISnQ2NTdiVnRlTUFBTG5nQmxGcWxRa3cKYU11RlptZjJBSVJJbEFhZzFHUlplcGtER0h0bFUrYmxvUG5uQytRc216NUUvbFd2ZjkySHl3T3RYbkp0K2h5Ylh2dUd4N2ZtOTY3NAo0ZHZBK3NSbGVPd3lyd1FNSzM3MUwzYlpRNC8wZ1V2OGkwWHl3TmlIWDJUS3NxUjNMQTA0Vm0xRXpqVjdlaW45RUFCS04xRE9zcGNuCkU2VkRKMmN2NkdjMWt6N1o0aUhDNTdaUU9mVkRBQ2pkUGFreTlOUC9XRStVamg3TkkxMnFuUFJKamZxa0QvYnN3aVZySkdiWFExbkUKZVRsaXNoK1pYZmJmeWxWdUFMMmNQdGtBMm84Ny83cCt1TjlMb0g4V1FLQ2ZuQUFpOUpNT0lPZ2xBTUwxOHdLQXZwbVU0T1VHVUhaZgpqNHVoblBwQmpVbHlsbE0vR1FCS045Q253MUl3RUFRRyttQkVBZ1o2ZHhReDZPMFI2VnZEa2plR3BCZVQ0dGNUb2pPRHd0TngwY200CjhHaUloeFpaaDNsb2wzNlUxeERqMWNWNTlZUDh1aEM3UHNpcWc5ZXVYbnFOaTFycjZLMjE5MEIxVG5pWFhnMTVHRlUrZHBXZlV4SGcKbEFkZkhBSEtNdER6cEpNdUl0bVVPejM1dElmb0pZdWdjeG9vdzBQRTFqQW9IVUNaQmtwZkU3M1hybjRXOFhBRDRRQnlDUmVzMTZmNwpMNDRyNFZWNDlaaXFjbGhaT2loSDgxQVJHYUNFSEpSa0FPaXdtUTRBT3F6RkFhUm9oOEJBQ0VCV0dpaUJoQU9vTUlJVitCR0FDdTNzCmZETUxERlJrMngwRUl1RUFnZzhJQmlLQ2o0L0dtWEFHb1NKaXRQUUhOeERJcGhnQTVPWG0yeG53OGZOTXZRQ2dRaE0xYjZBN1QwOHAKdERHSzNXZ0tEQjVHSGtRcm9OSEtvU0FHQVBxejhoWThCbDhHUkNrdzloeldkeC9VZGVRTmRCU2FLR2hXenM0bU9ia0FJR1FnSjN4aApITGdUUGpJQTZEVjV4eXZpZGdnQTlKcTJDOUNEOU9QbmtiMDh3RmErc1JmTjk2bmE4alFkK1FNSVFFVldCS0FpTjQwVVJCZHRBQUNWClJYZ2tQNXI4U2pFSUlkckhMUE94b0FvdkM3eFM3bVpVT09sbGRtcXByWmZrNmk3eDlwWUY2R2lqWTVSVE9zZ3JIOEtxUnFYSVFEaUEKcXVMU3FxZ1lIUkhoWVpBZDFLTCt6bUpkWjVtVlZvNEFoS0VMMDNoWkFLQ1dFT2ZyYVpYK2tkMzF5T3BkOXJwV0F1N1ZvSC9aNzF2eApwVXBua0dmZG16UFhpdGV4WWxJc0dUNVkxQnlaNld1ZWxyZE9TUUJBOWVQaXhrbHAwd3hTRHJ3TFpLbFBpS3RDdkRvUHN5TEFxcDlXCk5NeXFtcWVVOE1JQ1hsVlVCdG0xY1FGVUZ4UFZ4ekVJYnRTR2hEWEJYUUNWYWpvcU5OMWtWUWRKMjRHKy9pRngwN0FFQUFTUExERlQKU3JYdDlVWkt0Ylc3d2tXcDhkSHFBN1RHR0xkdVJOUThxM3g5WHQ3NVNLdGVHOUN0S1l5Ykd0dVd4ZzV2Ti9yc20vMjJUWU5sdzJqZgpOS010OGNUYVczeUR0SHZUNWttdFVNa3lVR3FJSXZWVVRieWJUUitpTEsvOGo1ZEpuNWNES0x3WkpQNFVHTFQ3ZjNETkF3V1czRkJ3CjJlTmY5a0hCMVlCL0plQjY1UGFBY1RlQ3psV3ZmZG5wV0hWNFZ1MitWWHRvZlYrZ0VQUkpCOUJ1Njg2Y1pYK0VsNWZoSGtTZkZSdHEKSC9la3hKT2ViZGxzV1htaDFLaVBjZGtJR1pZTUdhV0dmRkwwMFQwYWdOTFJzMHVmaDFvbzV6eFh6cFU5QkVxeTZmUC9FNEN5LzhvKwo1ZEJQTm9CZXJwOXNBS1Y4ODAvcEp3TkFCSDB5QUVUb0p3TkFoSDV5QW9qUUQ1USsvSU1BTkxlcm41dHpRandNdWpFclFzMklyMDlqClJCa0FJbWJCMGdHVUxaNE0rcVFES0ZNLzQ5Z1hvK0tjNWRSUFRnTVJEQUlBRWFXR2dqN0ErMlJFQm4wMExQMXdTUExla1BUZHBPU2QKaFBoTnRMQmErSG9jZFRZdU9CWGpuNHp6ajhWNVJ3ZDV4eUljVklpTkNqQ1ArUml0SHRvUk43WFpTNE9hZkl3R0h4TWZQZUxXK1BsUQpKb0IrMTBBWkFFb1pLQU5BR2VOQU9TV1UwMEFaQVBwZEErRnJnSUp3Z3pBUUFFaXo2RkV1dUNTTDlvNVp3MXVUcXBaeGVjMm9DbDMwCklLSEFGOSs4QUtCaUhFQUZ0dHdBT3FqcXlMTlFpejFjY2toWUZNWWdkTjBKSjYvUXppMHdNUXZOTERRSXRHY2crRkJvRUNoVkdvTncKQ1dFQW9MMHc5QUc5M01NMmVvR2RrUUxRWVh5SEZ3QUlVQUlBSXVNQWd0REtvU0NXWjZhbkFBVDZJUUIwcUwvenNMNnp5TndEK2lHRwpmMHJjZkRJWUNBQmtaeGZhV0lBYitFY2RrSGU4Sm00L0lPbDRSWW9BVkdSSEFDTDVlQ1UrZURBSFB2V2h2ZzRBMEdFMUFsQ1JzWk5rCnBSVGFFWUNLQTN0WHJRcWpBeGdJQUVFbFBucFpBSzFFSy9QdFZ1NmxsN3RweE1CanFZMVM1dWtwODlNcVFzeUtDQXN0VWh2a1Z3d0oKSzlFaWFLeHlXRnlWbEJBQXFnd0l5ejFzdER5dHY2dWt2NnZjUXF2MHNhc1RHTG93allmUjVHYkI5L0YzTXlyRFk3djlnZG0xNUxTdAorSjByQWUrU3o3V0twa2lJaUhOUWlESmU2S2V5cmJyUXh2amxnUThYVk1kbk5LMlQ4cU9Ua3NZeFdjT1l1R2tDWFcrOFpWclZNQ3B0ClFBQUMwL0FiUGF3cUFOQ2t2SEZXMVRLcFJBdDlmRXgwdUVVTTlJUE9pVytNWVUweHJDRWlyQTBJYW4wOGVIbFJwdThxVTdkWGFqcmgKYmJHMm84ck5SQmNtSE1hYVI2UU5nMkowaUtxdW84RkFxYlYwVmJsNmF0M1V4Z0M5ZVpEYk5Jd2RtVmFjbTVIZmZOZ3ZYdGNMVmdaRQp5MXJWbXNhNHJiTS83YmR2NjlDQTBGUDg3RHQwL0owWlNoa0ljbTNaaVlXNjZYTmh4TmhQQm9EU0daUmROb24rcDJHVVNaK1hBeWkwCmhncXNnVzY5dnJYZGtJVHdoZTB1SkJzVXJoYXZkOVhqZTJ6MUxkc2g3d3JLczJ5RHQ3NVZ0RXM4dTVlQkJsOXprMTAyYUhLTzZHU1gKYloyYzZMR3VXaktzUTJSYU1XV1VRUi85RTMxNi9ZOEhVdWtlOVVQYWh6b293ejJwTXNTamVOQ1gzblBmL0xJSGw3U1pyOVFmb2JJRQo4OGNkODkvN1czdmwwRThHZ0g1WFB4a0F5b2JPUzhTVDdaNXMvYVFBbE5KUE9vQ3k5Zk1TQUhYTVlSQUJJTUpBS1FEdDZtZFdsTkpQCkJvQ1FmbDRFVURaNmN1b0h5blRQbUlqbzh4RXNaL3VoWno4RGZUWXMvU3pOUUVRZ0lZSkhud3hKUGhvU2Y1akVQa3lLMzA5ZzBMc0oKMFR0SjBkc0o0UnVEZ3I4bEJKY1MvSXVEYUVuMWhUZ1hia0NYNHJ5TE1lN0ZDT2RDbUgwK3hEb2JacHlPTUUrRldNZURyTllBcDhYUApiZllLR3J6OFAyRmpUa2c4N3NvcU40YjJZNUJpRXFXYzhtUzBINE15M24zT29GbVVkczZYMFg0QTBpMEdvUDZGZ0I0SGtHNXhGMERLClJWdlBuUEhkS2MzUk1VWDltTEoyV0ZXZWtKVkVFWUJLUWdoQVpMKzRCQWNROEFVQVZHQ2k1K3NSZ1BKVUNFQUg1RzJFZ1E0WmU0cGMKN09LQUNBa21qRllPQVlBQVBRVUdCZ0NvQ0o4SVN5MEdRZ1p5QzlESFRHRm9iMUpzOTYvakcrQ0xJeUlBRUxncTMwYkhyNDVMSlFDRQp0bmZ0QWFnWVhVa1VLNGtqQUNHM0JVUVpBQ28wOWVZYktIa0RYZm1HTHBLbEYvUkRjbkxKT0lCS25UeXluVU95c2tobUp2cVlPSUFPCmlqc0FRSy9LMmcvMDRRRHljc2xlWHFtUFgrTG1GcGxwZVpxT1E4cTJBblZIUVg4YnlZQUFSTEwxb0wzZkFWWnBsRmNXUTljRUJ2MFUKZStqNHdBOGR4Rk1SWkFCeFNnSzBVait0TEVBdng2dncwU284MUhKM2I3bW5wOUpIclE0eXFpT3N5aWk3Y3BCYlBTeW9IaFZYalFpcgpoMFJvZ1hBTXF3cGoxUUZoaFp1TjF1cnJLZVg5M1ZWV2FyV2ZVNHVtbHRDWVNvdWJkVExNdWphbkhIaHNNZjR5WUY2eUdsWmQ1bVdYClk5bTUzOW9PNjdvMVorWTFxM2xGcDFqdS8yUlJmWEttNzlpVS9OaUVCSERjTklxMWpFdUJJRkRUcUJpTjJReUs2a0pjc0ZlMW45VTQKSVcrY1ZoNmRVdFdIZVRWZVptMlFRMXdvcHpFcUF2MDBSMFJOUVVHOWoxL241amE0bWRXbTdrcE5lN1dtcTByZFdhWnRyM2JTVGc3TApqd3hoelVPU2xrR3N4azZ2MHJVM0dycnFyZDNWcnU0Nko3WEpSMnVLc0pxR2hDZW1sT2VubFYvOW9PMzhXZlhSb3ZyemVWbm5EM0xaCm1zNzRWRy9lMWxxMit0Q1plODlQQjk0ZENuSnM0UWJDSjhWU2VUYWRxYUVnNGtiNkhtekNSamtML0xQaHU1eXl5eVlVVWZZamR4Ky8KbnJ2QW1pZlY4enMzdks1dHIyUFRhVnUzMnhBdjdHaHVhd1Z0K3ZPdFdMekxadStLemJkcTkrQTBnVCt5QVlPeTlPUEJINURwbnRTWQpEYjdjT0x0czJmeXViM0pheDdwcVNtVlpNYVl5THh1eU15M3BUU3NHeUxpc3oyaGdxVCs5L2ljNkl1MlRnZFJ5bi9UeEh0VWpiVWJLCmgzMTR1ZW1URGlDQ09MdFkyUWRBV1M3NUozbzVmY1MvZ0cvVTJmZnYvV2ttZlREd3pjL0svUUNVVForOXhjNi9BNkJzOU9Ta0QvZDcKV1hxY2UxSWkxbDBKbEE0ZzJqMHhhazgvTHl3QVFndWZFWUJTK3RsZCtKd0MwQ3pTRDdIWG5RQlFTai9wQUxvMlJlZ25CNEIrVnp5NwpBejlqR0ZGcWJpdGpwQ2ViUGhrQXlyWk9Sc1FVMk1kRG9sU3BlYkdQaDdHUGhnVWZEQW1KM2srS2lLNGtSVGlHc0ErR01PTGRkeFBDCmQ1TEN0eE9DVk84TW90Nk84NGt1eDltWFlxd0xVYzdyWWM3WkVQOTBnSGZDenovdUUrd0NhQjhEb1NRVDd2U2treDRpMlpRM1BRSkEKT1F5VWF6UUlOZTBsVXMvNGlEU3pmb2dBVUxhQmRQUCs5RUE4UklSK0J1WlJZQ0Fna1diUnExcndxQlpzMURuVGg5UGFFK1BLaGxFQQprTElxSVMrSmlVdkRDRUFsZ2VjQUlqbjUrSWdPQWxBK0RxQThlZnNoV1JzWUNBQ1VwMGUyS1BZTGNjRklpMzBZUEpoazVTQUFHWmtBCm9IUUR3WWRDYzJHNGdZZ0JJVFRJNU1QZ2N3R2h5RUVNUGdnRStpa0pJZ0NCZFlxY3JId0xyZEJNQTRVQVZ2S052YUFUQUJBNXNBdWcKNHJpWUFOQmhNLzB2aWx2NS9kMEZBNVFpUXc4Skhtbm9LUmpvTGpKMmwxaXBLUUNWdVJDQVNtd2Nzb2xaYkdRVUdYclJQMHJlZVVpQwplazNXZmtqVFJiSXkwTENXbDFmbTVaZTV1TVVtMnVHK3pueFZlNkdtczFEWFZteEU1L1doelZrdVdtbUFYUlpCQUtvSThNaHVab21IClVSVkFReVBWUVdZTjRBYWhod1pWQk9tVmZscVZuMWJoN2ExMDkxUzRLRlh1N2xwZmIxMkFVUmRtMVVUWnRYRmUvWkN3WVV4Y055S3MKSFJZQ2NlcGk0cnF3dU1ZdnJQWndxcHlzS2dPbFN0OWRZNlhWK2JuMUNWRjlYRmpuWVI3MWNFNUYyRmRuWmNvSC9YMC9xZnBYQmpTcgpSdDJLQVo0d2pLdUc5RXhyeHIzME9kT3ZtdzNMYXZsUzM2ZTNWV2RuTktjbUZTY25wYTNqaXBZeGNldUU5QmhTanFKbFZJSUdiQkpZClE1Qjd4TU91OWJHYXh1VXQwNnBqazZyR3FLRE95NEw3UVQvb0NvSXhyQ1dLSFFtSm1nT0NSamNQWFY4UUhteW4xL2RUR3Zvb2RacnUKcXI2T1dodjFWRkp5ZEVqY09peHVUVW9hbkl6YS9zNFdRM2VUbFZMbm9oejFzWS80R2MwUnhwR2s4T3lVK3Z5NDh0MXA2VHRqak5ORApramZHc085dXkwVExXdjEydjM1VFBiQ0JSb1BNV3diTDluTURFVU5CZXhKNlBpQ0Vwc1kySENrR3BldG4xMEJacTFpSU1uM3p1MlZSCjVyOVpHblJlYU84QkJJWjhLeTd2c3RPejVDQVc2NkMzYTg3QXVpdXc2dkN2Mk9HdGV4M3RqWEt2V0QycnlFUE9UYWR6eTJYYmRHVU8KMkJEelVMaVpjcGJhYVpWWkZuMklzdWV0aUxMSGVJalMwWk5CSDhTZHJGTGlNU3dOcEpkVFAxRE90VDc0VkZkTy9mdzNBWlJkTmszKwpSeUwwODhjQlJPZ25IVUF2SC90SjIrMlZXeisvSzU2c0laOGMrc2tHRVAwdXJwODBBS1hyNTQ4QWlEQVFjZGdQWXRDTWlPakd0UERHCkZKWTYvekFGb0YzOTdBT2diUHFrNndmS251UWlvUFBac0NobiswRW4reDZpajRaRVJPa1NndDRiRmo1dkNMdUNjd2Y2S0lGQkJJT0kKZG5rMEtJVGVpd3V1REw3UVczSE9tekgybTFIdUd4SHU1VER2Y2xod0tTU0VuZ1BvRHhvb0JhQU1BNlVBbEdtZ2ZXYkVVZ0JLR1NnRApRQmtHeWdCUXlrQzZoUkRjM2dYUUFwb0xBd0NwRnp4OWN6Ym1uUG5qNmI2VFkvS21FV1hka0xKNlVGNFd6UVFRMmYxU0FNbmJEdlpUCml1eHNBRkJ4UUl5MmQzbEZhTTdMekMzUzR3QXlvVUVnQ0sySjNqTlFzV3ZYUU9RMEFKRnhBQlVGUlZCeFVBQUFLdkh5Q09zVVdPbEkKSkZaR2diRVhBRVJ5c05EdTlJQ2dOSUtQQU1YRWFPQXFJTW96MGRJQlZHeWl3dHRDUFlWa29wVGFhR2oxRHc0ZzBFK3BuVnRxWVNNQQpHZWlBbXlKZGI3NjhLMS9TbFNmdE9paHRQNmp1TExMUVNXNU9DUTZnY2hlWGJLWVg5SFVWcUR0SW1xNmkvbmF5b2F2RTJvTmZ0WXBlCkh1U2dDOXJGQkRWK2ZvV2JYZVZqQXdJYXc1ekdNQnRxQ05MUkZiOER2WTBCYWxPUWhnN3pEZEJhL0ZSVWdORWFZclZHT1VkaW5LWTQKcjJtUTN6d3NhaDJUTkk4S20wWkVqUW1zS1NwcENra2FmS0k2TjdmT3dhNHpVMnVNUFkxMlptT0EyNVFVSTRYNDJDZDluQk1SN3BmVApFdXhuamZRZm1ISlpKVnRWS1ZjVWhqVmwzMXBmUnRwMUxUU3dyc3VaZGswL3NLeVVMYW4rZmx2eCtremZtU25sNlVrWnlBYStwS09UCnNwT3pxaFBUcWlOalVzREtrWVNvS2N3LzZ1UFdCemhISmhTdDArcVRVNXFXcUxEQmoxWmtOOGRGMEpHWStHaE1jandpUGhvUUhuSHoKbXh5Y1ppK3oxYzF1TnRLYWRMM04vZFE2WFhlampYWjZVSHg4VkhKc1dISnlXTjdpNVRRYUtLMm1uaFk3cGRIZGU4TFBQUlppSDQyeApqdzhKejArcXo0N0lMNDZKWGs5UTN4bVhYTDJqNGp6V2FUYTBoaTJOYWFzUEdEU3diVVNYdmR6VUE0TWc2eVprSWlJa2hEQzBZVTBGCkJrcVZvay9HdS84cWpMSXBnNWU5Zkpnbys1RzdaZE1IYi9lODQ4M014L3VXM01GVkh6cnBZTVVWWEVNQmdQeHJEaVNlTlRTdTQxMXoKdUpZQkh6Yjdoc082OGNJMGFHcEJORjdtSU0xZTZZLzUvY2VuaitpOHBKZTRoMmcvNk9pWGRla05MR21KZE12OVJOb2xYWHA5VDdTcApOSS83SVBVakRmU3ZqQUJsVDRGbGwwMlRmNzJVZnY0Z2dGTDZTUUhvNVpOZkwyNTN6NkdmYkFCbHUrZEYvZXdDS0owKzJRQUMvZXdICklFSS9CSUFvYWZwSkFhaHJUejhJUURPNytza0cwTjdwejdzQWVxNmZYQUI2T1gxeUFpZzEwcE5ObjV3QVNyZE9SZ1IwUGh6ZUxTVWgKSW5BUFB2eURCbnZRZUU4Qyt3QXZuVDRmSkVUUGl3dUp3RURwWFlueFU3MGI1Yit6MS84NUFHVVlDTTJPNVJvRTJnOUFPUTBFYWVlRAp1dmxnL3h3eUVBRWc3UUlDa0hiT3hwbzFmanJWZDNwTTNqaXNhTWdDVUZsQWtnSVFtdEpLQXhEb0p3V2dBN3J1UWh1TDdCVVFBQ0lqCkFQRUpBSkVNT0lCTXJFSjhRVFF4RG9RR2dYQURFUUJDZzB4N0FDckdJNEdsZ29LeUFBSVFXS2ZZelFFR0ZkdVlaQnV6MElUbXdvcWQKYlBpamRBQ1JJeElRR0FEb3ovS2I2UUFpR1hzSkFKWFo2UmtBS2pHenlFWUdTVThyc1RDS0IyaUZTa3FCdEJzTWRFRFNka0RWQVo4SQpBQVRNSWdCVVlrSUFLdFIwRnZkMUYvZTNseGk3U3kzUEFWUVpRUUNxRHdocXZOdzZQN2NsTEVDWGdJbHdqMFRZelNIbUVTL2xxTC8zClpJaCtOc2ErT01oN0l5bDhjMGowOWhEMmVrSndOb0YyTUo1TUNvOG5CYTFEb3FNajR1TWdqREdzWlFSclNZckJFQzFoY1hOQVRJeWcKTkZub0RTWnFzeE0rSnI5bFdBb1BhUEd6VC9tNUFLRFBKekhlanpMc1I3NTBSU1phbFVwV1JMcDFzV3BWQWFuWGxCbjFyMmx5cGxrYgo2RitXQVlBK3U2TThQNnNGQUoyWmtoK2ZVaCtia0IyZmxKK2FVNE9Cam83TGpvMUtqdytKNFI5NDNNY0RpclZPS28vT2FFNU45eDJOClljMUJkT0dibGtHc05ZNGRpMHVQeDZRbm9wSmpRVkdyUjlEaTREYTY2UUNnbzJaR2EzL3ZNVDJ0V2QvYjdHQ2NUVWhPajhsT2pNck8KakNpUEIvaEhqTDNITGRTanp0NW1YKzlSRitONGtIVWl3VHMxZ3AwZjE3dytMSDk3VnZuV3JPaUxLUzc5WjVVYXhMWXMwejNHQnRhVQpBOXY2dm0yTFlWTm4zTlNCZ1lnc0cwWWkyNFlwVmJxQmlQRUoxN285SFVNWjc2YVhUUjhpLzM1bEVlZS9Welo5aUR5YmVIc25JS2NXCktidVg0VlA3M0dzZWRJV0hOYnRyM1dGZnR6azI3UFkxQUJBNmxqQzQ3dlVzMjhCQThFZldOUnR4VmpoUitsUnA5bWpOeXdHVVBaYXoKMzRnTzBYNzZ5VDNQdFpUcEhrU2ZKLzJvWFBwSkIxQ0dnYklCUkJqb2R3R1UwMEF2VEhYaDgxUFBCNFIrVmtQRWJiZ3pteVo3UUhtTwptUFN5Sjd5eW9mT3ZBQ2liUGk4Wi9oR2hvMzF5OU0vclI1Sk5INGlONitkZkIxRDdQQVlBNnN3QzBNMFp3WDRBK21aS2lQY0NnSzVPCmlQY0RVRFo5b0M5SFJUbjE4d2NCbEkyZWRQb1FmVENLdlQrU2cwSFBvVE1vK25BUTNtSWZ4MUVmSnNXRWhJamVIeFFSZlJCSEVZOGsKN244UFlVaUkzNDlnOUg1TUFMMFg1UlA5U1RMaXlVZzY2b1ZrNDU2TTVCUGVuQ2ttZlhqZWpKUlRQcnlzVlVGcFl6L1o0MEE1MTBkRApHUmpLOE5EdWFCQkJJdnhQSmZOT3pvemw1cmoyN1JGcDg3Q29la3hXT2FvcWlVcWgwckNrSkNRdUNXS2xmaEhaelVmWG5iQUJZaGhGCmVscUJycWRBMVpXdjZNaVR0Ukc5cXU2QVB5WDVCSVVCTkF0VzRoT2l0VFY2V2w0L3RYQ0FEZ2FDQ2d3MGRJaWlsWEhJemlTNTBTNzAKWWcrL3lNdUh2NFh5Q3lGaTJUV1NrQjh0dmthRFEvaUNvVUlucTlDeEM2QmlLNE5rb1pQdHJGSVByeVFzSkVkRkFLQ3lRV2w1VkZibQpFOE9uZTFYYUJsSXAwbEdLQjNwTGpOUmlReTlKMzBNMjlWVFlHUlVPZHFXVGczSXdLMjJNTWpPMXpOaGRvdThzNm04bkRYUVVhenVLCmxHMzUwcHNGc2x2RmZUMWxlclNOQyszaENyQ3IvTHh5QjZOWWgvWXVsYXU3cXZTZFZjYXVha3RQbFlOYTdhVlZCNW0xTVc1ZEFqU2cKYVBFS3pnVllIeVk0VjhjNTMwNndyazl6MFNrVTQ4eTJLVTduTEw5bkVXUGNrN0h1SzlnL0tGSG9zQzlKejExWjJ4M0oxWG54cDlQWQpsWEgrbTZPOEM2UGlTeVBpQzBPaUN3bmhoVGovZklSN1BzU0JYbmZSTG5nWWwvM3N0OElBY3lIUjJ4SEJWMG5halNrdTdhNlVCNyt6CkhpZ2tEK1d5SjFMRkU1bHlSVUdrV2xWQzZqVVZrV1pWazNOd1NMT21VNjdvK0k4MWxPL2xWMmV4VDZmRUgwN0ozcCtTWDU2VlhaNlIKWDVxV1haaVV2VDR1T3pNc1BaV1VuRXlJei9xRlo4TFk2OFBLQzVQYWMyUHFrekh4cWFEd2ZFaDhNU2E4SEJNUlhZcnlMNGQ1bDBKYwo2TEtIL3BhYjhaNkwrYkdiL2FtWCs3R2Y5MEdJZnlYQ2YzZEVBcjAzSkg0L0NUK1dvay9pb3IvSEJKL0ZCSi9IaFovSCtWOG0rRmVICjBXVjZPdWFWdmZmNjZEOXFaYjlnOGdkaTFXT1paa21oVzFVUHJQZnBON1NHTlBwa1pGczM1Z3dkamIyWGE4T2F5clBoeUZuMnZpZWkKeklHZnZUSTl0RmZtQU0vdmxiM2loeWg5WjFiNmpxMGNxM1oyNTdZYys3UTc1NVdkWTltYW5YMGxkOVpWdEU0NXUyejZ2TVE2aURzcgpBMFRHNVg3SXNLVExqdmdqb2d6M3BFcWY5bnBoQ2l6TlBla0F5bGo3bkxZSU9qVVg5a0xabHhmZHZjam9peXBLSHlMNnB5TDhsTjIrClY3SFk3Ni9rR3VaQi9hUktoZjFEbVo3b1IwVjJPWWQvSU43OTUyV3M3OGs1MVpYaG5sU2dIK1lkY1hhMDJ6THFvcFNvZDBGQzFET1AKRmtFRGdJaUlxMzFCb0ordU9WSG5yQkFNMUlrREtIWG9jNnFiVThLYlU5aU4vNis2Tys5dTRyd1hPTjVYY20vdjZhbkJ0cndRVENBaApvZGw3YjNMcHlXMGFRcHVGSkcyU1pvRUFYbVZaKzJMdHk0eEd5K3d6a2dHYmhNVUxtdzB4eHJ0Mm02WnY1LzRlUGRKNFBETnlnSk9rCjZUbmZveU9QUmtKLzJSK2U1NWw1YnJweGY3L3RSTjF5ZjNiVEJYMTZ3L25wRFRkcXpvdjdaTmFEYjJDSSsyUWExYnpKb1JzQy9VQ1kKUWZwYVljalFQWGg5ajJhU0MvcnpWVmR6amJOMmFBZWdvNlFXanhvOTZnQTZKeTY3OXU3azFFNi84c3dJbXJ5eklqUStLK0Q4YzZKaApnUnVTWVRvSjZjYUU5c1JReTJ2RWpNYUVESWVGOFBIeGU0Smpuamw3aTN4bkpuaHMybnR3THRBN0V3SkpZQUIxWHZTYUpqeW1uTHVqCkRpQXdUVnZhdkk4YWFVc00valpTdjVPdi93d0cwSCtFdjI3TGpyYkx5REhBSm1RbWVnd0ExSllZM2srYU95aExCMlZ1VDQ3c1Q1bjMKQVY4NHl6NXVGTnJQVzlxRnNYYkoyaUhib003NjlWWlFwNUprUjhvUmJlZzBiclNESFRVeG94M1pFYWlUczNUTDlwNUpWOWVVeTNUWgpaWnJ5ZEYvMGRJbjJObkxnMStOZi9UWitIZ0RVbmh6cVNJKzAxdzNVbVJucFljZE1uTDJMZDNRTHpsN0Jmb0MzOTNLMkhzYlNUWSthCnlNRnVjckFyM3Q4Vk90c1orTG96ZExZbk5uQ0FISDM2Z3V2UWhCTWVqK1JkVC9QV3A2aWhROFRnMGVUSU15bnpzMW5MVWRaeVZMQSsKSjltZm4zQzlNT1Y1NFZ2ZlM1ZWNiM3pqZkgvT2ZXN0piOTBJMlFzaGF5RmlMVVZ0NndISFpzZ052NFpLVVY5NTUzOTFvVUkwQ1A5ZgpMTWM5NVlTam5MUVVpYUVDTWJpWjZGOE9Rd01Qd29OTDRZSDdvYUhGMEhDOS9xVkc2S1hseVBCcXpMeWVHTjBneGxZaTl2VzRyMFRDClI4SHYzekQ4S3E5RzRyVllaS3RSZERzT3hSNG1jTVIySS9JaG9ZN2FqaWYvUWNZZVV2NEs2UzVUamtyR1VXVnNOYzVhSXNhS0NmTjYKYkdnbDJuOC9jdlplK014QzhQUjg2TXVidnM5dit6Njk2LzkwTWZpM2UvNlAwWXBDNytuYi9xSEZ5TWhpMUx3VXNTekhyS3NKeDJvYwpaMTJQT2VGN3JpV0NxMFJvalF4c0pyM0ZwS3VVZEJkUjhOeGZvSUlGTWxLazRzVlVvcGlLMURLUldpcGNwU0sxWkhRN0dYdElKcjZuCmlIOG1sUzlQZlo5TS9aTlNVb1o4TkxIZlp3MVRyMVBCTjkvRDZhOXZ3dWtYQytQMHhQbUJkR004ZTZkR1R4N2QzN0tSb1g0VUFCbXMKM2RHNnA1R2VPSzNDTzBqbzZmTmtBREtnRDE3Vzh3Z0FValBJaUQ2eGVscjYvRElCdFBlckJ1bm8wMWpObzZOUHd6YzYrdURSblVmWApqMnMxQU9ucDB4ejErV0VENmVtajBjK1lrWDdNaXg1STBZOEdRSXArZmlvQU5RMVVCMUJEUEhzQVNOK0gweTdvNXdHUWhqNkcrc0VqClBYcnV2RDNsMVBUTzVFNi9jczl3a0hvaXJOVjBHSjRDYXkwaFFaTjZVc3g0ZHN4UVFydXZEbE5TVDQzdHNUd0lINEVUUXZjRTd3STcKUEo4NmRUUDI2clQvbVZsLzMzUzQ5eHUvYVhJWGdEb2xad2VIOXNQYWx4bkZBR3FMbkc4TG5nVUEvV1ljQWVnL0FVQnBjN3ZvYUo5dwpkMXhBYjBFQUlvYjJ4d2JhNDRPbStCRFVrUmpvckl2RXhGZzZPVE5rNGtlN0JIQ010U2RuNjgzYklWUE9DblhsYlJBY3hNRUpIWktsClV4anQ0c3hkeklpSkh1N01Eblh6bzcyeXJlY1NNbER2bEJ0MXlkTXJPMHpVVUZ2b05CcjdvWVpOYVhOMzF0S1ZOVU1BbllPQUhzRUYKSFJUZGZaS25UM0FlNGgxOW5QMGdhM3VhSERtY0dENFNIMzRtTnZCTXBQL1plUC9SNU5DeHRQa0Z5WEZNc1AxT3RMNGsyVjhWcmE5eApvMit3bGpjRit4dUM1YmhrL1VQZSt1WUYreDh2T2QrNjdEeHh4WFB5R3JvdCt1Y0xhRVFIelVZVkF0NWkwRk1NdTByaDhXTElYd29ICnloRW9qRWJhR3lVS2NWVGpFbHgwcHpWOFI3WGdaaFFLYjBRam03SG9SaXkyRVl0dnhva04rRjJjQ0Jmam9VSU1Yb1ZIZUI2cmtQRnEKTWxxaFl0WEdydFNKTWttVXlHU0ZvdEFOL2lrbGFpdWxsS3FsY2VuNkxraEtUSTFrYWhTOVJhV3FGSHdDV1UwbnF0bDRoYzZVaVhTSgpoRklGTWwxTVFabFNObHVtcytVTVZVYmJSc0lYaUpTVDhWSXlXVXJSbFN4WnBPQUpWYUV5bFZTMm1zNVdVMHd0RFNXckJGVWhzaFdTCkxhUGdTYXFLSmpMUzVXUUdSVUJ3a0trazJDb0JOZjR1YnBQMUVwbnRXSG9yQ2pIL1pQVFIzOVBzOTR4aCttVzVEZlRzN2djdjU4YlgKUnVuVGp3bjlRT3A3Nmp4Q2F2UWc5MndMT0kxN0lIenJRcFY0TkNNNld2bzhGb0FhK21rTklQMEY2czIwOU5FRGFOZTZacFYrOWdZUQpyb1YrL3MwQTlJT243V1NvSHgyQWRnWjRqUFNqQUVpakh6MkFzSDQwQU5vOTh4WFVHRWpESUQxOTlQcXBBMmhjeWJ6b1V6TFVqeHBBCnUvWHpvd0tvYnFBbWdOeVBCU0NzbjNvZXBWUFgzVW9mWFBlK2Y4Mmo2YjJyTFFIMGw2dGV2SzVaM2NsdjNYdWpSNk1mUFlEMCt0RUMKeURYREtibG5lU1hQTEt1a3YxZFFxNHZrMVpmSzQxcGk2QllQUGM3ZGczYnVISzFKZlNOcENCOE0zK1VDQzR4OWdmN3NkdUwxR2YvUgphZi9oNjhHK2J3TGRVLzZ1eWZHdUM5NnV2S2NyNSs0U0VZREFOTzJaa2ZiVWNEc3gwQlk1MnhZODgxdi9WNzhaL3hMNnIrQlgrNUtECjdZSzFJK2N3VGJoTXNxT1RIbTFMOU8rTG45OGZPOThlNysrTTliZkh6M2VRQTUzcFlWUFdEQWFxTTJqTXhGdTdCRnUzNUlCNlpLY0oKclRpMmQrVWNVRTh6WUUxWHp0a2wydEdabkxXYkdldGl4N3BGKzhFSno0R0xucWVtZkgxWEF0Q2h5LzYrbkxzYkhCWSsyMDBOOTZSRwpEbVpHRDlHb3ZxejVNRHQ2VkxROUx6cVB5WTRYWmVkTE9kZkxzdXNWMmZHeVpJZGVaeXl2TTZOL1lDeHZNcU4vNUVmZmxpd244dFlUCkYyMG5wM3p2VExwUFRybmV1K3I5K0pydmI5ZTlYOHo0enQwSWZMM2dPNytBTGtBWVhQUVBMd2JNUzBITGN0aStHcld2eE56cnNmSDEKNlBoYUVFSURQT1ZFcUpJTUY0aG9nWWdWU1NCQ29reVI1UlNFOWx3c1VoQlJTS0tLUktLUWFKS0lodUxGYktLQUlqWWJrUnNacGVSbQpGa2NWYUJMRVUwcEI2WEk2VXdhdjBFZ25KVFpkemVJeU5Wb2RYV1hWTVRVT3gxVm9IRnZPS2srWVVnWStxaGtIMFdXUnFVaVFzTW55ClJZNHRzdGtDRGNFVCtKSGZZTEkxVVltdThsQzJBdS9paEJvdlZubXB3dWVyQWlSWEJiUTFlbzNudHlSK1cyQzNlSWplaGxpY1VCTWgKY1F2K3J1OGE1T0FlY254OU9Zc20vUzVST0QxOUdnRFNFV2Z2OVBUQjZjZUVjRnIzTk5PZitiZzEvdDNkN2xGcU5ZMmw4NUQyQksxNApWTGpCKzZnM3l4aW1KdzRPWDZhK1I3b3IySGVtdC9UYzBkZENQLzgyQU5Kc0hLWS9RWnVoZm5ZRFNEMjlaYWdmMUo3dTBlaEhEU0ROCnVoOEEwQjRHK2tINldPNTdjWWI2K2RjRDZJWmJCU0Jrb0VjQmtFby9QeE9BOU9JeDFJOEdRSHI2R0FESU9aTlJjczFtVlRGSzdqbFcKcVRXTUdLVlcyMmpvTjlNdzJGampEb2NMenZQcU1JRFVHVEpJK1RHeXdBYm5HZmRDOXZSdDR2OW0vY2V1KzQ1Y0F3Q2hIUmg2TG5uUgpwTktFQytNRHBOTEJXZ0JBSFJRQzBQN3cyWDNCTTIyQjAyQWdWT0EwSEVTZ2tSMm12Qk0wWThxT2duN2F5UDU5Wkg4NzBkK1I2Szl2CmNqblFtUjJxRCtUWXV0bkdiRlNQNk9xUjNiMDVEM1R3Z2xlcHJ4NG9CMEVuNysyVjNHandobmM5eFRsN09VZWY1RGs4NFQ4ODZUOXkKT1hqa1N2and0NkVqVS83RE9mZWhqT1ZBYk9DWjlDQjBMRHZ5RWpmNkNtK0JmaTlaaitlZGY3cGdlL3VpL2VTazQ5MXYzS2UrOVg1OApGZlczcTc3UHJubi9mdFg3NVRYUG1ldmVjM08rL3B2K2dUdisvdm5BeU4zNDhFSnM4QzZhMEJsYml0cVh3cTdvd2dJZ0FBQUpPMGxFClFWUUhFZTl5eExrVWRDK0hQU3NSMzBvNHNCcUJ3bXVSeUhvMHVFckVObEpFS1ozWUJOYWt5QkpOVmxpaXhDWExQRlZDSll0Y3FvQksKRjNrb1dSTGhwZnFyTEpRcDQyaXFMTzFVRXBYU1JWU21KR1hMOHU0eUVGMWhtQ3JMVlhpdUxFQnNpV2NxMnRpcUFER1ZuZGlxcU1SdApYV0NxZWFZcWM3VWN2eVdqblRGcXNvQWNJOWZMUTVscUxsMlJVMlVKNG9xaVVNM0J5V3hWaHZpdFBQcXhLTkpiRXppMkJ1VWdEaVZ4ClpZbXZ5RUpaRmlzNUhKd1A0YmN6TlpIZGttam9vVXcvbExML2tJVHRpZDNsY0VBaWRjQWpuUHdRYllLbVQwK2labHJpL05LZ28wNy8KZlRSZis5RmxvNE9PZHRseU0yTUE2UVo0bEJzU2FtWFRyREdscFVrTm5WM1cyU1p3bXN1NzlCNUtWdU5RcTh2ZFcvVmpBYWhWZXZycwozVThPSUZYNjhaNVc5TkVEQ0VOSFNTK2VSNlhQZlQvT3NqaXVUdU9la2UrOE9FUDlLQURTNmVleEFmVDVMU2NLSkhUREJYMDI1L3hzCnpnMHBFdnBremdVMUFlVCtwQjUrL3RkcEYvVFJEQXBqQ1BmeGRaZlM0d0lJUDJwNjkwcHJBTlVYTmF2RHVORWYwYWVuandHQWJETnAKSmZ0c1JzbUlSQ2ozRE1velN4dW1acEFHUTNvSkdYcElBWkJHUXVFN2pmUVMwbU1JQ2k1a0EvTVpBTkRYZDhpM1pnTXZYUGNldWU0Lwo5RzNnd05SNDc2U3Y1NktuT3c4NmNYYUw5bTdPMnNXT2RXYk1BQ0EwbVJVOTN4SDh1ajF3QmdJSndXTlhZckNIdFFKOUFFeTlzck9ICkhvUFQ5cEhuMm9sejdZbXpwc1M1THVKc2Q2b2YzY1NQR1Q3STJ2bzRPNXFCRXB4UFMrN0RzdWRJem50a3d2ZnNCUS8wM0lUbitRdGUKOUZqdnViejdhTTcxbk9SOFhuVCtEdUlkei9QMlk1THJwUW5mcTVQanIxME92UHF0LytYTHZ0ZW1mSzlmOHZ4dnpubWN0LzFSdHI2VgpHenQ1d2Y3ZWxQdlVaYzlIMzNnL3VSYjRZanJjd00ydHdNaWRzT1ZPeUxvUXNkK05RcmI3VWNkaTFQbGQxTE1ZOFMzRnhoL0V2TXN4Cjcybzg4Q0RoWDA2TXJ5Ykcxd24vV2p5NEZnMnRSc01yRUIxZFlXSnJkSHlkU2F6U3hGb1dTcTdUaWJWVWNvT2hObGw0SkRhNVpGRkkKRmlSeUU5UWlRNm1DQktVM3BkU0dpRXVXOHNtU0RGRkZHZnNHY0pNcENVeUJ3ZEhGblpnU202cnNLbDNsb0V5TlowbzB2SXFydXdmagpSc0lTTWdwWlJCMjRCS0pyRnpPVmlYUTVUMWR5RUh3Q1hSWWhoS29LWHgrTWtlbzE1Skdwc2ZVQkd4NmVxSitMVlJFU0tvSlE0Y1F5CkoxVjRxY3BDYkkzanRuaCtXNER3L2FueGM3aytHZ1JKTlE0U3Q5QkYydlZybE5BZTRQeERrZHNXMU1rUDBXWm4wcmFzU1UrZnZRR2sKR1RpQmZ4ZW5PYTZrUjhtVHBhZk00eVp1TTJMelBqMTY5L3pvQU5vOS9MTnJrOUZkRzQ1cTNhTU04T3lDam1HN1dMUGJQYTBBaFBXagpCcERlT29iOTBnQ2tTY3NkZlliNlVRRkk3eDVEL2JUaWpxRitOQURTbzBkTkgwTUE3UXo1N0hZUE5QcWREekl2K3BWR3ZodFgrcGNDCkNCbW9BYUJaNXlNQ1NLMmZlaDZsajY2NWxVNWQ4MzV3MWFQcC9Tc3RBZlRlVmUrN1Z6eWEvbEsvOHN2UVFFK3NIeTJBck5OSkpkc00KcGFUR0VPU1l5K0swSHBxam0yWFVlVzVrY2VyUm9GMFN1c1ZvOHQ5bTFla1lwQzIwd0VQSzgvQmRBZGM0WGdlUVp5RjlkcDU0ZTliLwo0clR2eUhYZm9hditweTc3RDZnQTFDTTVlbmdibW52S21ydlRJOTNrb0NsMnZpdHl6aFErMnhuNkdoNTd3dWQ2aU1FRG5QVUE2Q2Z2CjdNdTVudUp0Sm5Md0FORVBIWXlmTzB6MFAwc05IYzBPUDhlWWozR1dGMW56Qy96b2k0TGxaY242V3Q3eCs0dXUvNzdrL3A5SkQ3NVcKNlBnbCt4OG1IZENibHhxaGdic3A1NThuWFFDYWR5ZGRxTXVlRDY3NVA1b09mRHdYK3ZCRzROU2MvNjl6NDEvTUJjL2RDQTVNQjg3UApCYUhCRzJIem5kallmTncybjNBdGtON0ZwR2VKaE1hWENQOERNdkNBREQwZ29NZ0R3QTBSWENYRHkyUVVla0RGbGxPUmxWUjROUlZmCnBjQTA4ZlYwZkRPRFMrQVpxQlVodVNxbTFtVnFVMHh1Q00yNFpHT3VxcUVmMEF4VFJveFFobnd5emVoQ3ZaSU1aWXNTTGxNUW9mVG0KRG9BZ3RsaG5UWm1EOEJCUnVzVGdtaU5HYkJvK0g4VmtpdkFxSE9HeUZaNnVva0Vnd3pCcmNIZ3lDd2Z2d205SDc2Mkt5aEFSRW93cQpNSTFZWVNBMGE3YkZJOU5VT1FqamhrUExVeVI1UzVScUFxcE9IN25HeVhYWlFQdzJweEFFSDVHMytKMXFEQ1JWYWJHUzNmM25mT2VOCmVHTUhTQm43ZWRJTTlMTkhlb2c4YWN4alpYRFBaWHpqd1JiYzBSOXB0SjAxVE9lZVJvWTdqTlkzR2RVdVhzYnBXZFBBVFhORXh6QTkKZEZxbHB0S09maXF4eDlMUEx4WkFXdVhza2FGK21nRFN1OGRRUDNvQUtkQXgxSThDb0wzUlkwZ2Z0WDcwQU1MNlVRQ2twbzhDSUwxKwpNSUNNOVBPakE4aTVBNkM2Z2ZZR2tFNC9Qd2VBR3RlMDZ4ajBaUHJSQXNneVRVQmpNNlNtSm9OU21wd3pLTmRzMmpBTmd5RDlwRmlqCm16UzBONE4yR3doK1pQVU1VbU5vRjREdVpmd0xLZmZkZFA4OGVXSXU4TkxNK0pHWjhiN3JnWU4xQVBWZThQVG1YTDJ5ODREWUFGQTMKUGRxVE1mZFN3NzN4Z1o3SWVhZzdpam9RN1Q5SUR2ZHhOa1Nmdk92cENjOGh5ZGxORFQ5SERUK2ZHbmt4Wlg0bGJmazlQZllHN3pndQp1NC9uUFc5ZnNwMll0Sis4N1B6ekZiVEIyNm5aNEljM3d4L2Rpdno5cGgvNi9GYmd5enVocjI2SFR0OEpRMmZ1aE0vZkNRN2NEZzdQCmg4M3prWkU3WWNoOE56cDJuN0IrRjdNL0lHekxjZXVEbUgwcDRsdUtCaGVqNFhzUjMzM2dEakcrU0FhWHFQQjlNcnhJUk82VGlTWEsKdDB6NUgxQ0I1VlJvT1IxZXBrQTVZQjNFblRVcXNwWk9yR2FJRlpwWVlZbGxubGdWRXVzU3RjSWsxMWlRVFdKVGlHL3dpWFV4dVM0bAoxK1hVV2lhelFRTTRJS3FRVFc1bWlNSk9hTlZPa1UwV09XcVRwVGF5MUZvS3pzR2xOaHVsTnpJUXMwR2pOdGw2UEVSdmloQWFPbXBHCndtTkp4TUZMVEVHQzJLSU1qL2prN0lhQS9GU1c2WXBFMXhHVEtuTlVtWUdZSW1lWUdrQnFDZkZWQnEvK0VXcG9hUTVkWWJKbEdoNzUKY2g3aVNqbTJKS3BHakVTK2xCT0tPYm1ZeDBtRm5GaktpNVdKYkgzK3F6bHhKck5iRW9lMldaV2xhaDRTYTZycUUySHBtZ1NuMFZzNQovaUZLZkpnWDBXTk9xZ0drWkZ4dUt3L0p0UnlFK2FLWkJkdGpwQWVQR09sVFkwajlhVUtOTlF5UHV6eDZPdmY4aEFCU1E2ZlZjVDE5CmNQclZQTTAxUFZyNjFQV1QwZFBueVFDa0owNnlma0c3L21BckFDSDlWSXpYK2lRcVAvbGw4SzNTNDJidnRMNXBwajhUcDNWUFBiVEUKUjRjZVEvZnNyWjlXT1ZlMFYzc1o2a2RQbjcwQnBPZ0gwdE1IR3I2SDFnRHBBZFMvNERFRUVLRG5Kd0NRWXdkQXM4NVdBTks1Qi9YUgpOZWZQQmlDTmdmVG8yY005ZjVwRWR5UlJPbkZwcC84SDNrTDFVRTkrMXQ0QUFBQUFTVVZPUks1Q1lJST0' } ]; x.__toStr = {}.toString; null == ArrayBuffer.prototype.slice && (ArrayBuffer.prototype.slice = gw.sliceImpl); var Vw = new Uint32Array(256); N.__alpha16 = Vw; for (var kj = 0; 256 > kj; ) { var qk = kj++; N.__alpha16[qk] = Math.ceil(257.00392156862745 * qk); } Vw = new Uint8Array(511); N.__clamp = Vw; for (kj = 0; 255 > kj; ) (qk = kj++), (N.__clamp[qk] = qk); for (kj = 255; 511 > kj; ) (qk = kj++), (N.__clamp[qk] = 255); $g.available = !1; $g.enabled = !1; Xa.level = 0; 'undefined' == typeof console && (console = {}); null == console.log && (console.log = function () {}); C.hitTestCanvas = Xg.get_supported() ? window.document.createElement('canvas') : null; C.hitTestContext = Xg.get_supported() ? C.hitTestCanvas.getContext('2d') : null; ue.maxTouchPoints = 2; ue.supportedGestures = null; ue.supportsGestureEvents = !1; ue.inputMode = 2; za.reloadListeners = []; gb.stopped = !0; gb.adBlock = !1; yb.__meta__ = { statics: { toNullVector: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; La.__meta__ = { fields: { __cairo: { SuppressWarnings: ['checkstyle:Dynamic'] }, addEventListener: { SuppressWarnings: ['checkstyle:Dynamic'] }, removeEventListener: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; La.__broadcastEvents = new qa(); La.__instanceCount = 0; La.__tempStack = new ud( function () { return yb.toObjectVector(null); }, function (a) { a.set_length(0); } ); ya.logicalWidth = 0; ya.logicalHeight = 0; ya.windowWidth = 0; ya.windowHeight = 0; ya.leftInset = 0; ya.topInset = 0; ya.rightInset = 0; ya.bottomInset = 0; T.Element = 0; T.PCData = 1; T.CData = 2; T.Comment = 3; T.DocType = 4; T.ProcessingInstruction = 5; T.Document = 6; P.pool = []; P.pooli = 0; Tb.VERTEX = 0; Tb.FACE = 1; z.b2_nullFeature = 255; z.s_incidentEdge = z.makeClipPointVector(); z.s_clipPoints1 = z.makeClipPointVector(); z.s_clipPoints2 = z.makeClipPointVector(); z.s_edgeAO = []; z.s_edgeBO = []; z.s_localTangent = new P(); z.s_localNormal = new P(); z.s_planePoint = new P(); z.s_normal = new P(); z.s_tangent = new P(); z.s_tangent2 = new P(); z.s_v11 = new P(); z.s_v12 = new P(); z.b2CollidePolyTempVec = new P(); xe.s_simplex = new ra(); xe.s_saveA = []; xe.s_saveB = []; rj.currentID = 0; lh.e_circles = 1; lh.e_faceA = 2; lh.e_faceB = 4; hf.e_points = 1; hf.e_faceA = 2; hf.e_faceB = 4; Jb.b2_toiCalls = 0; Jb.b2_toiIters = 0; Jb.b2_toiMaxIters = 0; Jb.b2_toiRootIters = 0; Jb.b2_toiMaxRootIters = 0; Jb.s_cache = (function (a) { a = new xk(); a.useCache = !0; return a; })(this); Jb.s_distanceInput = new Jh(); Jb.s_xfA = new Xe(); Jb.s_xfB = new Xe(); Jb.s_fcn = new hf(); Jb.s_distanceOutput = new We(); Wb.initialized = !1; Wb.distanceInput = new Jh(); Wb.proxyA = new Ng(); Wb.proxyB = new Ng(); Wb.simplexCache = new xk(); Wb.distanceOutput = new We(); Wb.e_unknownShape = -1; Wb.e_circleShape = 0; Wb.e_polygonShape = 1; Wb.e_edgeShape = 2; Wb.e_shapeTypeCount = 3; Wb.e_hitCollide = 1; Wb.e_missCollide = 0; Wb.e_startsInsideCollide = -1; Db.s_mat = new yc(); da.VERSION = '2.1alpha'; da.USHRT_MAX = 65535; da.b2_pi = Math.PI; da.b2_maxManifoldPoints = 2; da.b2_aabbExtension = 0.1; da.b2_aabbMultiplier = 2; da.b2_linearSlop = 0.005; da.b2_polygonRadius = 2 * da.b2_linearSlop; da.b2_angularSlop = 0.011111111111111112 * da.b2_pi; da.b2_toiSlop = 8 * da.b2_linearSlop; da.b2_maxTOIContactsPerIsland = 32; da.b2_maxTOIJointsPerIsland = 32; da.b2_velocityThreshold = 1; da.b2_maxLinearCorrection = 0.2; da.b2_maxAngularCorrection = 0.044444444444444446 * da.b2_pi; da.b2_maxTranslation = 2; da.b2_maxTranslationSquared = da.b2_maxTranslation * da.b2_maxTranslation; da.b2_maxRotation = 0.5 * da.b2_pi; da.b2_maxRotationSquared = da.b2_maxRotation * da.b2_maxRotation; da.b2_contactBaumgarte = 0.2; da.b2_timeToSleep = 0.5; da.b2_linearSleepTolerance = 0.01; da.b2_angularSleepTolerance = 0.011111111111111112 * da.b2_pi; S.b2Vec2_zero = new P(0, 0); S.b2Mat22_identity = yc.fromVV(new P(1, 0), new P(0, 1)); S.b2Transform_identity = new Xe(S.b2Vec2_zero, S.b2Mat22_identity); va.s_xf1 = new Xe(); va.e_islandFlag = 1; va.e_awakeFlag = 2; va.e_allowSleepFlag = 4; va.e_bulletFlag = 8; va.e_fixedRotationFlag = 16; va.e_activeFlag = 32; va.e_ignoreGravityFlag = 128; va.e_alwaysActiveFlag = 256; va.e_pausedFlag = 512; va.b2_staticBody = 0; va.b2_kinematicBody = 1; va.b2_dynamicBody = 2; uj.b2_defaultFilter = new uj(); Og.KEY_LOCK = 0; Og.b2_defaultListener = new Og(); zk.s_evalCP = new ce(); He.e_shapeBit = 1; He.e_jointBit = 2; He.e_aabbBit = 4; He.e_pairBit = 8; He.e_centerOfMassBit = 16; He.e_controllerBit = 32; Hf.tempAABB1 = new ka(); Hf.tempAABB2 = new ka(); Lh.s_impulse = new Dn(); ec.s_timestep2 = new wj(); ec.s_xf = new Xe(); ec.s_backupA = new mh(); ec.s_backupB = new mh(); ec.s_timestep = new wj(); ec.s_queue = []; ec.s_jointColor = new yk(0.5, 0.8, 0.8); ec.m_warmStarting = !0; ec.m_continuousPhysics = !1; ec.e_newFixture = 1; ec.e_locked = 2; ab.e_sensorFlag = 1; ab.e_continuousFlag = 2; ab.e_islandFlag = 4; ab.e_toiFlag = 8; ab.e_touchingFlag = 16; ab.e_enabledFlag = 32; ab.e_filterFlag = 64; ab.s_input = new Cn(); xj.circlePointA = new P(); xj.circlePointB = new P(); Ie.staticFix = da.b2_maxManifoldPoints; Ie.s_worldManifold = new sj(); Ie.s_psm = new xj(); Qa.m_xf = new Xe(); Qa.q = new P(); Qa.p = new P(); Qa.e = new P(); Qa.temp1 = new P(); Qa.temp2 = new P(); Qa.m_centroidB = new P(); Qa.mat = new yc(); L.m_xf = new Xe(); L.temp = new P(); L.m_centroidB = new P(); L.m_lowerLimit = new P(); L.m_upperLimit = new P(); L.m_polygonB = new Hn(); L.edgeAxis = new Ek(); L.polygonAxis = new Ek(); L.perp = new P(); L.n = new P(); L.rf = new In(); L.mat = new yc(); L.temp1 = new P(); L.temp2 = new P(); L.ie = [new qh(), new qh()]; L.clipPoints1 = [new qh(), new qh()]; L.clipPoints2 = [new qh(), new qh()]; L.edge0 = new P(); L.edge1 = new P(); L.edge2 = new P(); L.m_normal = new P(); L.m_normal0 = new P(); L.m_normal1 = new P(); L.m_normal2 = new P(); Ub.e_unknownJoint = 0; Ub.e_revoluteJoint = 1; Ub.e_prismaticJoint = 2; Ub.e_distanceJoint = 3; Ub.e_pulleyJoint = 4; Ub.e_mouseJoint = 5; Ub.e_gearJoint = 6; Ub.e_lineJoint = 7; Ub.e_weldJoint = 8; Ub.e_frictionJoint = 9; Ub.e_inactiveLimit = 0; Ub.e_atLowerLimit = 1; Ub.e_atUpperLimit = 2; Ub.e_equalLimits = 3; Xc.CENTER = 'center'; wg.b2_minPulleyLength = 2; bg.tImpulse = new P(); Rg.FPS_ONLY = !1; Rg.GRAPH_WIDTH = 70; Rg.XPOS = 69; Rg.GRAPH_HEIGHT = 50; Rg.TEXT_HEIGHT = 50; xg.bg = 51; xg.fps = 16776960; xg.ms = 65280; xg.mem = 65535; xg.memmax = 16711792; xg.bgCSS = '#000033'; xg.msCSS = '#00ff00'; xg.fpsCSS = '#ffff00'; xg.memCSS = '#00ffff'; xg.memmaxCSS = '#ff0070'; yg.androidAdmobAppID = ''; yg.whirlID = ''; yg.whirlID1 = ''; yg.iosAdmobAppID = ''; yg.ioswhirlID = ''; yg.ioswhirlID1 = ''; yg.cpmstarID = ''; yg.newgroundsID = ''; yg.newgroundsKey = ''; yg.androidPublicKey = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnt4A5BLBCVzy1JVgQwY7BkEGImhFPA2yFKOSX/cam9byQusmPQBzkLnXnLqQfRTroNNGNZ7kh3FR5zEvSbZeyygwxcuHZZTFafUjuF9v7Fpxhw1Q3by7s7Ro8DEmj93f5Bwc5bcuf6Fc9wjzAd4yMX6N6MZfvieVyGvOxZtDz5gjrT8P6NweAw68C9Nzmo7l0p+wqgjMIMR3+09AvAkhvXsW87Hfpdz5VVMqiNqrVQILJ+RgQ+yTlgjYnLZTIQk4Qx6kwpU8s6aFLBeE5q6sPc/TqjFxRo7nzb3K6PFBXK6cMmoT+KfgwtwO9sns16Wb+/MxZUOtlfjLkxBUyiCQHwIDAQAB'; aa.defines = (function (a) { a = new qa(); a.h.web = '1'; a.h.verbose = '1'; a.h.utf16 = '1'; a.h.use_tilemap = '1'; a.h.unifill = '0.4.1'; a.h.tweenxcore = '1.0.4'; a.h['true'] = '1'; a.h.tools = '7.9.1'; a.h['target.utf16'] = 'true'; a.h['target.unicode'] = 'true'; a.h['target.name'] = 'js'; a.h.stencyl = '4.1.0'; a.h['source-header'] = 'Generated by Haxe 4.2.1+bf9ff69'; a.h.polygonal_ds = '2.1.1'; a.h['polygonal-ds'] = '2.1.1'; a.h.openfl_html5 = '1'; a.h.openfl_enable_handle_error = '1'; a.h['openfl-html5'] = '1'; a.h['openfl-enable-handle-error'] = '1'; a.h.openfl = '9.1.0'; a.h.no_traces = '1'; a.h.no_compilation = '1'; a.h['no-compilation'] = '1'; a.h.mbs = '0.2.1'; a.h.lime_webgl = '1'; a.h.lime_html5 = '1'; a.h.lime_howlerjs = '1'; a.h.lime_dom = '1'; a.h.lime_canvas = '1'; a.h['lime-webgl'] = '1'; a.h['lime-html5'] = '1'; a.h['lime-howlerjs'] = '1'; a.h['lime-dom'] = '1'; a.h['lime-canvas'] = '1'; a.h.lime = '7.9.1'; a.h.js_es5 = '1'; a.h.js_es = '5'; a.h['js-es5'] = '1'; a.h.js = '1'; a.h.html5 = '1'; a.h.hscript = '2.4.0'; a.h.howlerjs = '1'; a.h.haxe_ver = '4.201'; a.h.haxe4 = '1'; a.h.haxe3 = '1'; a.h.haxe = '4.2.1'; a.h.debug_console = '0.0.0'; a.h['debug-console'] = '0.0.0'; a.h.debug = '1'; a.h.dce = 'std'; a.h.cloner = '1.0.0'; a.h.canvas = '1'; a.h.box2d = '0.0.0'; a.h.actuate_manual_update = '1'; a.h.actuate_manual_time = '1'; return a; })(this); fd.TYPE_ADS = 1; fd.TYPE_PURCHASES = 2; fd.TYPE_GAMECENTER = 3; fd.TYPE_KEYBOARD = 4; k.__meta__ = { fields: { getLayer: { deprecated: ['Use getLayerById or getLayerByName'] } } }; k.DOODAD = ''; k.INTERNAL_SHIFT = 'iSHIFT'; k.INTERNAL_CTRL = 'iCTRL'; k.INTERNAL_COMMAND = 'iCOMMAND'; k.NO_PHYSICS = !1; k.DEBUG_DRAW = !1; k.IMG_BASE = ''; k.SCALE = 1; k.checkedWideScreen = !1; k.isStandardIOS = !1; k.isExtendedIOS = !1; k.isIPhone6 = !1; k.isIPhone6Plus = !1; k.isIPhoneX = !1; k.isIPhoneXMax = !1; k.isIPhoneXR = !1; k.isTabletIOS = !1; k.landscape = !1; k.limitCameraToScene = !0; k.paused = !1; k.started = !1; k.inFocus = !0; k.events = new fd(); k.ITERATIONS = 3; k.physicsScale = 10; k.preservePadding = !1; k.paddingLeft = 0; k.paddingRight = 0; k.paddingTop = 0; k.paddingBottom = 0; k.STEP_SIZE = 10; k.MS_PER_SEC = 1e3; k.elapsedTime = 0; k.timeScale = 1; k.totalElapsedTime = 0; k.debug = !1; D.mouseX = 0; D.mouseY = 0; D.mouseWheelDelta = 0; D.multipleGamepadsEnabled = !1; D._enabled = !1; D._joySensitivity = 0.12; D._joyState = new Za(); D._key = []; D._controlsToReset = []; D._controlMap = new qa(); D._keyInput = new Rn(new Za(), function (a) { return a.keys; }); D._joyInput = new Qn(new qa(), function (a) { return a.buttons; }); pe.DEVICE = 0; pe.TYPE = 1; pe.UP = 0; pe.DOWN = 1; pe.LEFT = 2; pe.RIGHT = 3; pe.AXIS = 0; pe.HAT = 1; pe.BUTTON = 2; pe.BALL = 3; pe.cacheFromID = new qa(); Na.ANY = -1; Na.LEFT = 37; Na.UP = 38; Na.RIGHT = 39; Na.DOWN = 40; Na.ENTER = 13; Na.CONTROL = 17; Na.COMMAND = 15; Na.SPACE = 32; Na.SHIFT = 16; Na.BACKSPACE = 8; Na.CAPS_LOCK = 20; Na.DELETE = 46; Na.END = 35; Na.ESCAPE = 27; Na.HOME = 36; Na.INSERT = 45; Na.TAB = 9; Na.PAGE_DOWN = 34; Na.PAGE_UP = 33; Na.LEFT_SQUARE_BRACKET = 219; Na.RIGHT_SQUARE_BRACKET = 221; Na.A = 97; Na.B = 98; Na.C = 99; Na.D = 100; Na.E = 101; Na.F = 102; Na.G = 103; Na.H = 104; Na.I = 105; Na.J = 106; Na.K = 107; Na.L = 108; Na.M = 109; Na.N = 110; Na.O = 111; Na.P = 112; Na.Q = 113; Na.R = 114; Na.S = 115; Na.T = 116; Na.U = 117; Na.V = 118; Na.W = 119; Na.X = 120; Na.Y = 121; Na.Z = 122; Na.F1 = 112; Na.F2 = 113; Na.F3 = 114; Na.F4 = 115; Na.F5 = 116; Na.F6 = 117; Na.F7 = 118; Na.F8 = 119; Na.F9 = 120; Na.F10 = 121; Na.F11 = 122; Na.F12 = 123; Na.F13 = 124; Na.F14 = 125; Na.F15 = 126; Na.DIGIT_0 = 48; Na.DIGIT_1 = 49; Na.DIGIT_2 = 50; Na.DIGIT_3 = 51; Na.DIGIT_4 = 52; Na.DIGIT_5 = 53; Na.DIGIT_6 = 54; Na.DIGIT_7 = 55; Na.DIGIT_8 = 56; Na.DIGIT_9 = 57; Na.NUMPAD_0 = 96; Na.NUMPAD_1 = 97; Na.NUMPAD_2 = 98; Na.NUMPAD_3 = 99; Na.NUMPAD_4 = 100; Na.NUMPAD_5 = 101; Na.NUMPAD_6 = 102; Na.NUMPAD_7 = 103; Na.NUMPAD_8 = 104; Na.NUMPAD_9 = 105; Na.NUMPAD_ADD = 107; Na.NUMPAD_DECIMAL = 110; Na.NUMPAD_DIVIDE = 111; Na.NUMPAD_ENTER = 108; Na.NUMPAD_MULTIPLY = 106; Na.NUMPAD_SUBTRACT = 109; Na.keyboardNameMap = (function (a) { a = new qa(); a.h.NUMBER_0 = 48; a.h.NUMBER_1 = 49; a.h.NUMBER_2 = 50; a.h.NUMBER_3 = 51; a.h.NUMBER_4 = 52; a.h.NUMBER_5 = 53; a.h.NUMBER_6 = 54; a.h.NUMBER_7 = 55; a.h.NUMBER_8 = 56; a.h.NUMBER_9 = 57; a.h.A = 65; a.h.B = 66; a.h.C = 67; a.h.D = 68; a.h.E = 69; a.h.F = 70; a.h.G = 71; a.h.H = 72; a.h.I = 73; a.h.J = 74; a.h.K = 75; a.h.L = 76; a.h.M = 77; a.h.N = 78; a.h.O = 79; a.h.P = 80; a.h.Q = 81; a.h.R = 82; a.h.S = 83; a.h.T = 84; a.h.U = 85; a.h.V = 86; a.h.W = 87; a.h.X = 88; a.h.Y = 89; a.h.Z = 90; a.h.NUMPAD_0 = 96; a.h.NUMPAD_1 = 97; a.h.NUMPAD_2 = 98; a.h.NUMPAD_3 = 99; a.h.NUMPAD_4 = 100; a.h.NUMPAD_5 = 101; a.h.NUMPAD_6 = 102; a.h.NUMPAD_7 = 103; a.h.NUMPAD_8 = 104; a.h.NUMPAD_9 = 105; a.h.NUMPAD_MULTIPLY = 106; a.h.NUMPAD_ADD = 107; a.h.NUMPAD_ENTER = 108; a.h.NUMPAD_SUBTRACT = 109; a.h.NUMPAD_DECIMAL = 110; a.h.NUMPAD_DIVIDE = 111; a.h.F1 = 112; a.h.F2 = 113; a.h.F3 = 114; a.h.F4 = 115; a.h.F5 = 116; a.h.F6 = 117; a.h.F7 = 118; a.h.F8 = 119; a.h.F9 = 120; a.h.F10 = 121; a.h.F11 = 122; a.h.F12 = 123; a.h.F13 = 124; a.h.F14 = 125; a.h.F15 = 126; a.h.BACKSPACE = 8; a.h.TAB = 9; a.h.ALTERNATE = 18; a.h.ENTER = 13; a.h.COMMAND = 15; a.h.SHIFT = 16; a.h.CONTROL = 17; a.h.BREAK = 19; a.h.CAPS_LOCK = 20; a.h.NUMPAD = 21; a.h.ESCAPE = 27; a.h.SPACE = 32; a.h.PAGE_UP = 33; a.h.PAGE_DOWN = 34; a.h.END = 35; a.h.HOME = 36; a.h.LEFT = 37; a.h.RIGHT = 39; a.h.UP = 38; a.h.DOWN = 40; a.h.INSERT = 45; a.h.DELETE = 46; a.h.NUMLOCK = 144; a.h.SEMICOLON = 186; a.h.EQUAL = 187; a.h.COMMA = 188; a.h.MINUS = 189; a.h.PERIOD = 190; a.h.SLASH = 191; a.h.BACKQUOTE = 192; a.h.LEFTBRACKET = 219; a.h.BACKSLASH = 220; a.h.RIGHTBRACKET = 221; a.h.QUOTE = 222; return a; })(this); na.__pool = new ud( function () { return new na(); }, function (a) { a.setTo(0, 0); } ); fa.__pool = new ud( function () { return new fa(); }, function (a) { a.setTo(0, 0, 0, 0); } ); d.FRONT = 0; d.MIDDLE = 1; d.BACK = 2; d.CHANNELS = 32; d.mpx = 0; d.mpy = 0; d.mrx = 0; d.mry = 0; d.dummyVec = new P(); d.imageApiAutoscale = !0; d.dummyRect = new fa(0, 0, 1, 1); d.dummyPoint = new na(0, 0); d.BASE_64_ENCODINGS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; d.BASE_64_PADDING = '='; th.fieldMaps = new qa(); Uc.AD_USER_OPEN = 100; Uc.AD_USER_CLOSE = 101; Uc.AD_LOADED = 102; Uc.AD_FAILED = 103; Uc.AD_CLICKED = 104; Uc.FULL_AD_USER_OPEN = 105; Uc.FULL_AD_USER_CLOSE = 106; Uc.FULL_AD_LOADED = 107; Uc.FULL_AD_FAILED = 108; Uc.FULL_AD_CLICKED = 109; Uc.PURCHASE_READY = 200; Uc.PURCHASE_SUCCESS = 201; Uc.PURCHASE_FAIL = 202; Uc.PURCHASE_RESTORE = 203; Uc.PURCHASE_CANCEL = 204; Uc.PURCHASE_PRODUCTS_VERIFIED = 205; Uc.PURCHASE_PRODUCT_VALIDATED = 206; Uc.GAME_CENTER_READY = 300; Uc.GAME_CENTER_SCORE = 301; Uc.GAME_CENTER_ACHIEVEMENT = 302; Uc.GAME_CENTER_ACHIEVEMENT_RESET = 303; Uc.GAME_CENTER_READY_FAIL = 304; Uc.GAME_CENTER_SCORE_FAIL = 305; Uc.GAME_CENTER_ACHIEVEMENT_FAIL = 306; Uc.GAME_CENTER_ACHIEVEMENT_RESET_FAIL = 307; Uc.KEYBOARD_EVENT = 400; Uc.KEYBOARD_DONE = 401; Uc.KEYBOARD_SHOW = 402; Uc.KEYBOARD_HIDE = 403; bb.TOUCH_POINT = 1; bb.GESTURE = 2; bb.GESTURE_CAPTURE = 3; bb.PAN_X = 1; bb.PAN_Y = 2; bb.PAN_XY = 3; bb.READY = 0; bb.BEGIN = 1; bb.TWO_FINGER_MOVE = 2; bb.MOVE = 4; bb.R2D = 180 / Math.PI; bb.SWIPE_SCROLL_TIME = 2; bb.SWIPE_SAMPLE_TIME = 0.2; bb.VELOCITY_RATIO = 0.25; bb.touchEvents = 'touchBegin touchEnd touchMove touchOver touchOut touchRollOver touchRollOut touchTap'.split( ' ' ); bb.mouseEvents = 'mouseDown mouseUp mouseMove mouseOver mouseOut rollOver rollOut click'.split(' '); bb.geTouchEvents = ['touchBegin', 'touchEnd', 'touchMove', 'touchOut']; bb.geMouseEvents = ['mouseDown', 'mouseUp', 'mouseMove', 'mouseOut']; bb.initialized = !1; bb.moveToleSqr = 1; bb.MAP = 'mouseDown rox_touch_begin mouseUp rox_touch_end mouseMove rox_touch_move mouseOver rox_touch_over mouseOut rox_touch_out rollOver rox_touch_roll_over rollOut rox_touch_roll_in click rox_touch_tap touchBegin rox_touch_begin touchEnd rox_touch_end touchMove rox_touch_move touchOver rox_touch_over touchOut rox_touch_out touchRollOver rox_touch_roll_over touchRollOut rox_touch_roll_in touchTap rox_touch_tap'.split( ' ' ); bb.typeMap = (function (a) { a = new qa(); for (var b = 0, c = bb.MAP.length >> 1; b < c; ) { var d = b++; a.h[bb.MAP[d << 1]] = bb.MAP[(d << 1) + 1]; } return a; })(this); oa.ACTIVATE = 'activate'; oa.ADDED = 'added'; oa.ADDED_TO_STAGE = 'addedToStage'; oa.CANCEL = 'cancel'; oa.CHANGE = 'change'; oa.CLEAR = 'clear'; oa.CLOSE = 'close'; oa.COMPLETE = 'complete'; oa.CONNECT = 'connect'; oa.CONTEXT3D_CREATE = 'context3DCreate'; oa.COPY = 'copy'; oa.CUT = 'cut'; oa.DEACTIVATE = 'deactivate'; oa.ENTER_FRAME = 'enterFrame'; oa.EXIT_FRAME = 'exitFrame'; oa.FRAME_CONSTRUCTED = 'frameConstructed'; oa.FRAME_LABEL = 'frameLabel'; oa.FULLSCREEN = 'fullScreen'; oa.ID3 = 'id3'; oa.INIT = 'init'; oa.MOUSE_LEAVE = 'mouseLeave'; oa.OPEN = 'open'; oa.PASTE = 'paste'; oa.REMOVED = 'removed'; oa.REMOVED_FROM_STAGE = 'removedFromStage'; oa.RENDER = 'render'; oa.RESIZE = 'resize'; oa.SCROLL = 'scroll'; oa.SELECT = 'select'; oa.SELECT_ALL = 'selectAll'; oa.SOUND_COMPLETE = 'soundComplete'; oa.TAB_CHILDREN_CHANGE = 'tabChildrenChange'; oa.TAB_ENABLED_CHANGE = 'tabEnabledChange'; oa.TAB_INDEX_CHANGE = 'tabIndexChange'; oa.TEXTURE_READY = 'textureReady'; oa.UNLOAD = 'unload'; Yc.TOUCH_BEGIN = 'rox_touch_begin'; Yc.TOUCH_END = 'rox_touch_end'; Yc.TOUCH_MOVE = 'rox_touch_move'; Yc.TOUCH_OVER = 'rox_touch_over'; Yc.TOUCH_OUT = 'rox_touch_out'; Yc.TOUCH_ROLL_OVER = 'rox_touch_roll_over'; Yc.TOUCH_ROLL_OUT = 'rox_touch_roll_in'; Yc.TOUCH_TAP = 'rox_touch_tap'; Yc.GESTURE_TAP = 'rox_gesture_tap'; Yc.GESTURE_LONG_PRESS = 'rox_gesture_long_press'; Yc.GESTURE_PAN = 'rox_gesture_pan'; Yc.GESTURE_SWIPE = 'rox_gesture_swipe'; Yc.GESTURE_BEGIN = 'rox_gesture_begin'; Yc.GESTURE_PINCH = 'rox_gesture_pinch'; Yc.GESTURE_ROTATION = 'rox_gesture_rotation'; Yc.GESTURE_END = 'rox_gesture_end'; fl.stringBlendMap = (function (a) { a = new qa(); a.h.add = 0; a.h.alpha = 1; a.h.darken = 2; a.h.difference = 3; a.h.erase = 4; a.h.hardlight = 5; a.h.invert = 6; a.h.lighten = 8; a.h.multiply = 9; a.h.normal = 10; a.h.overlay = 11; a.h.screen = 12; a.h.subtract = 14; return a; })(this); W.drawnStringCache = new qa(); W.drawnStringCacheKeys = []; gd.MAX_TEXTURE_CAP = 4096; Gd._1X = new Gd(1); Gd._1_5X = new Gd(1.5); Gd._2X = new Gd(2); Gd._3X = new Gd(3); Gd._4X = new Gd(4); zj.NO_SCALING = 0; zj.FULLSCREEN = 1; zj.STRETCH_TO_FIT = 2; zj.SCALE_TO_FIT_LETTERBOX = 3; zj.SCALE_TO_FIT_FILL = 4; zj.SCALE_TO_FIT_FULLSCREEN = 5; kf._storedFonts = new qa(); kf.ZERO_POINT = new na(); uh.fontData = " 36000000000000000000!26101010001000\"46101010100000000000000000#66010100111110010100111110010100000000$56001000111011000001101110000100%66100100000100001000010000010010000000&66011000100000011010100100011010000000'26101000000000(36010100100100010000)36100010010010100000*46000010100100101000000000+46000001001110010000000000,36000000000000010100-46000000001110000000000000.26000000001000/66000010000100001000010000100000000000056011001001010010100100110000000156011000010000100001000010000000256111000001001100100001111000000356111000001001100000101110000000456100101001010010011100001000000556111101000011100000101110000000656011001000011100100100110000000756111000001000010001100001000000856011001001001100100100110000000956011001001010010011100001000000:26001000100000;26001000101000<46001001001000010000100000=46000011100000111000000000>46100001000010010010000000?56111000001001100000000100000000@66011100100010101110101010011100000000A56011001001010010111101001000000B56111001001011100100101110000000C56011001001010000100100110000000D56111001001010010100101110000000E56111101000011000100001111000000F56111101000010000110001000000000G56011001000010110100100111000000H56100101001011110100101001000000I26101010101000J56000100001000010100100110000000K56100101001010010111001001000000L46100010001000100011100000M66100010100010110110101010100010000000N56100101001011010101101001000000O56011001001010010100100110000000P56111001001010010111001000000000Q56011001001010010100100110000010R56111001001010010111001001000000S56011101000001100000101110000000T46111001000100010001000000U56100101001010010100100110000000V56100101001010010101000100000000W66100010100010101010110110100010000000X56100101001001100100101001000000Y56100101001010010011100001001100Z56111100001001100100001111000000[36110100100100110000}46110001000010010011000000]36110010010010110000^46010010100000000000000000_46000000000000000011110000'26101000000000a56000000111010010100100111000000b56100001110010010100101110000000c46000001101000100001100000d56000100111010010100100111000000e56000000110010110110000110000000f46011010001000110010000000g5700000011001001010010011100001001100h56100001110010010100101001000000i26100010101000j37010000010010010010100k56100001001010010111001001000000l26101010101000m66000000111100101010101010101010000000n56000001110010010100101001000000o56000000110010010100100110000000p5700000111001001010010111001000010000q5700000011101001010010011100001000010r46000010101100100010000000s56000000111011000001101110000000t46100011001000100001100000u56000001001010010100100111000000v56000001001010010101000100000000w66000000101010101010101010011110000000x56000001001010010011001001000000y5700000100101001010010011100001001100z56000001111000100010001111000000{46011001001000010001100000|26101010101000}46110001000010010011000000~56010101010000000000000000000000\\46111010101010101011100000"; Wn.LEFT = 1; Wn.RIGHT = 2; Wn.CENTER = 3; qd.CONTEXT_LOST = 'glcontextlost'; qd.CONTEXT_RESTORED = 'glcontextrestored'; qd.vertexShader = '\n#ifdef GL_ES\n\tprecision mediump float;\n#endif\n\nattribute vec4 aVertex;\n\nattribute vec2 aTexCoord;\nvarying vec2 vTexCoord;\n\nvoid main() {\n\tvTexCoord = aTexCoord;\n\tgl_Position = vec4(aVertex.x, aVertex.y, 0.0, 1.0);\n}'; ub.IN = 'in'; ub.OUT = 'out'; ub.THROUGH = 'through'; Pe.SLIDE_UP = 'up'; Pe.SLIDE_DOWN = 'down'; Pe.SLIDE_LEFT = 'left'; Pe.SLIDE_RIGHT = 'right'; G.BOOLEAN = new tf('boolean', 1); G.INTEGER = new tf('integer', 4); G.FLOAT = new tf('float', 4); G.STRING = new tf('string', 4); G.LIST = new tf('list', 4); G.DYNAMIC = new tf('dynamic', 8); G.NULL = new tf('null', 0); Th.basicTypes = (function (a) { a = []; a.push(G.BOOLEAN); a.push(G.INTEGER); a.push(G.FLOAT); a.push(G.STRING); a.push(G.LIST); a.push(G.DYNAMIC); a.push(G.NULL); vc.initializeType(); Oc.initializeType(); $c.initializeType(); a.push(vc.MBS_HEADER); a.push(Oc.MBS_TYPE_INFO); a.push($c.MBS_FIELD_INFO); return a; })(this); tb.GROUP_OFFSET = 1e6; tb.manifold = new sj(); Fa.INHERIT_ID = -1e3; Fa.REGION_ID = -2; Fa.PLAYER_ID = 0; Fa.TERRAIN_ID = 1; Fa.DOODAD_ID = 2; Fa.ACTOR_ID = 3; Ha.fixedCenter = 0; Ha.showWherePressed = 1; Ha.viewOffsetX = 0; Ha.viewOffsetY = 0; Ha.initialized = !1; Mn.NORMAL_PHYSICS = 0; Mn.SIMPLE_PHYSICS = 1; Mn.MINIMAL_PHYSICS = 2; pd.UNSET_ID = -1; il.MAX_VERTICES = 200; Xb.muted = !1; Xb.masterVolume = 1; Pg.UNSET_ID = -1; se.allAnimations = []; uc.recycledCollisions = []; uc.collisionResponses = new Za(); Od.freedCollisionPoints = []; Kf.WHITE = -1; Kf.TRANSPARENT = -2; Cf.infoArray = []; Je.NO_AUTOTILE_DATA = 0; Je.CORNER_TL = 1; Je.CORNER_TR = 2; Je.CORNER_BR = 4; Je.CORNER_BL = 8; Je.SIDE_L = 16; Je.SIDE_T = 32; Je.SIDE_R = 64; Je.SIDE_B = 128; Nc.dummyRect = new fa(); me.TILESET_CACHE_MULTIPLIER = 1e6; me.cacheSource = new Za(); me.autotileFlagPointMap = (function (a) { a = new Za(); var b = Je.CORNER_TL, c = new na(-1, -1); a.h[b] = c; b = Je.CORNER_TR; c = new na(1, -1); a.h[b] = c; b = Je.CORNER_BL; c = new na(-1, 1); a.h[b] = c; b = Je.CORNER_BR; c = new na(1, 1); a.h[b] = c; b = Je.SIDE_T; c = new na(0, -1); a.h[b] = c; b = Je.SIDE_B; c = new na(0, 1); a.h[b] = c; b = Je.SIDE_L; c = new na(-1, 0); a.h[b] = c; b = Je.SIDE_R; c = new na(1, 0); a.h[b] = c; return a; })(this); sf.temp = new fa(); Pc.BLACK = -16777216; Pc.WHITE = -1; Pc.RED = -65536; Pc.GREEN = -16711936; Pc.BLUE = -16776961; Pc.CYAN = -16711681; Pc.MAGENTA = -65281; Pc.YELLOW = -256; $a.LUMA_R = 0.212671; $a.LUMA_G = 0.71516; $a.LUMA_B = 0.072169; $a.LUMA_R2 = 0.3086; $a.LUMA_G2 = 0.6094; $a.LUMA_B2 = 0.082; $a.INV3 = 0.3333333333333333; Id.BLACK = 0; Id.WHITE = 16777215; Id.RED = 16711680; Id.GREEN = 65280; Id.BLUE = 255; Id.CYAN = 65535; Id.MAGENTA = 16711935; Id.YELLOW = 16776960; lf.__meta__ = { fields: { clone: { SuppressWarnings: ['checkstyle:FieldDocComment'] } } }; Wh.__identity = new Wh(); Ia.__meta__ = { fields: { equals: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, to3DString: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, toMozString: { SuppressWarnings: ['checkstyle:FieldDocComment'] } } }; Ia.__identity = new Ia(); Ia.__pool = new ud( function () { return new Ia(); }, function (a) { a.identity(); } ); Ia.__matrix3 = new Wh(); Kc.__pool = new ud( function () { return new Kc(); }, function (a) { a.__identity(); } ); X.INTEGER_MAX = 1e8; X.NUMBER_MAX_VALUE = 1.79769313486231e308; X.blackColor = -16777216; X.rate = 1; X.camera = new na(); X.cloner = new Ln(); X._bitmap = new qa(); X._seed = 0; X._volume = 1; X._pan = 0; X._soundTransform = new lf(); X.DEG = 57.29577951308402; X.RAD = 0.01745329251994278; X.point = new na(); X.point2 = new na(); X.zero = new na(); X.rect = new fa(); X.matrix = new Ia(); X.sprite = new Ca(); X.collision = new uc(); J.linear = new Il(); J.sineIn = new Vl(); J.sineOut = new Xl(); J.sineInOut = new Wl(); J.sineOutIn = new Yl(); J.quadIn = new Jl(); J.quadOut = new Ll(); J.quadInOut = new Kl(); J.quadOutIn = new Ml(); J.cubicIn = new wl(); J.cubicOut = new yl(); J.cubicInOut = new xl(); J.cubicOutIn = new zl(); J.quartIn = new Nl(); J.quartOut = new Pl(); J.quartInOut = new Ol(); J.quartOutIn = new Ql(); J.quintIn = new Rl(); J.quintOut = new Tl(); J.quintInOut = new Sl(); J.quintOutIn = new Ul(); J.expoIn = new El(); J.expoOut = new Gl(); J.expoInOut = new Fl(); J.expoOutIn = new Hl(); J.circIn = new sl(); J.circOut = new ul(); J.circInOut = new tl(); J.circOutIn = new vl(); J.bounceIn = new ol(); J.bounceOut = new ql(); J.bounceInOut = new pl(); J.bounceOutIn = new rl(); J.backIn = new kl(); J.backOut = new ml(); J.backInOut = new ll(); J.backOutIn = new nl(); J.elasticIn = new Al(); J.elasticOut = new Cl(); J.elasticInOut = new Bl(); J.elasticOutIn = new Dl(); J.warpOut = new am(); J.warpIn = new Zl(); J.warpInOut = new $l(); J.warpOutIn = new bm(); Xh.PI = 3.141592653589793; Xh.PI_H = 1.5707963267948966; Xh.LN_2 = 0.6931471805599453; Xh.LN_2_10 = 6.931471805599453; Xh.overshoot = 1.70158; Xh.amplitude = 1; Xh.period = 3e-4; vb.activeObjects = []; vb.finishedObjects = []; Be.USE_CACHE = !1; Be.USE_ENUM_INDEX = !1; Be.BASE64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:'; Ke.DEFAULT_RESOLVER = new dm(); Ke.BASE64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:'; zh.CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; zh.BYTES = hb.ofString(zh.CHARS); Zd.i64tmp = new cb(0, 0); Zd.helper = new DataView(new ArrayBuffer(8)); kh.escapes = (function (a) { a = new qa(); a.h.lt = '<'; a.h.gt = '>'; a.h.amp = '&'; a.h.quot = '"'; a.h.apos = "'"; return a; })(this); Ce.LEN_EXTRA_BITS_TBL = [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, -1, -1 ]; Ce.LEN_BASE_VAL_TBL = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ]; Ce.DIST_EXTRA_BITS_TBL = [ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, -1, -1 ]; Ce.DIST_BASE_VAL_TBL = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ]; Ce.CODE_LENGTHS_POS = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; Ua.OPTION_REVOKE_URL = 1; Ua.activeRequests = 0; Ua.requestLimit = 17; Ua.requestQueue = new K(); pb.dummyCharacter = '\u007f'; pb.windowID = 0; Qf.DICTIONARY = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); Qf.EXTENDED_DICTIONARY = (function (a) { a = []; for (var b = 0, c = Qf.DICTIONARY; b < c.length; ) { var d = c[b]; ++b; for (var f = 0, g = Qf.DICTIONARY; f < g.length; ) { var k = g[f]; ++f; a.push(d + k); } } return a; })(this); af.MUL_TABLE = [ 1, 171, 205, 293, 57, 373, 79, 137, 241, 27, 391, 357, 41, 19, 283, 265, 497, 469, 443, 421, 25, 191, 365, 349, 335, 161, 155, 149, 9, 278, 269, 261, 505, 245, 475, 231, 449, 437, 213, 415, 405, 395, 193, 377, 369, 361, 353, 345, 169, 331, 325, 319, 313, 307, 301, 37, 145, 285, 281, 69, 271, 267, 263, 259, 509, 501, 493, 243, 479, 118, 465, 459, 113, 446, 55, 435, 429, 423, 209, 413, 51, 403, 199, 393, 97, 3, 379, 375, 371, 367, 363, 359, 355, 351, 347, 43, 85, 337, 333, 165, 327, 323, 5, 317, 157, 311, 77, 305, 303, 75, 297, 294, 73, 289, 287, 71, 141, 279, 277, 275, 68, 135, 67, 133, 33, 262, 260, 129, 511, 507, 503, 499, 495, 491, 61, 121, 481, 477, 237, 235, 467, 232, 115, 457, 227, 451, 7, 445, 221, 439, 218, 433, 215, 427, 425, 211, 419, 417, 207, 411, 409, 203, 202, 401, 399, 396, 197, 49, 389, 387, 385, 383, 95, 189, 47, 187, 93, 185, 23, 183, 91, 181, 45, 179, 89, 177, 11, 175, 87, 173, 345, 343, 341, 339, 337, 21, 167, 83, 331, 329, 327, 163, 81, 323, 321, 319, 159, 79, 315, 313, 39, 155, 309, 307, 153, 305, 303, 151, 75, 299, 149, 37, 295, 147, 73, 291, 145, 289, 287, 143, 285, 71, 141, 281, 35, 279, 139, 69, 275, 137, 273, 17, 271, 135, 269, 267, 133, 265, 33, 263, 131, 261, 130, 259, 129, 257, 1 ]; af.SHG_TABLE = [ 0, 9, 10, 11, 9, 12, 10, 11, 12, 9, 13, 13, 10, 9, 13, 13, 14, 14, 14, 14, 10, 13, 14, 14, 14, 13, 13, 13, 9, 14, 14, 14, 15, 14, 15, 14, 15, 15, 14, 15, 15, 15, 14, 15, 15, 15, 15, 15, 14, 15, 15, 15, 15, 15, 15, 12, 14, 15, 15, 13, 15, 15, 15, 15, 16, 16, 16, 15, 16, 14, 16, 16, 14, 16, 13, 16, 16, 16, 15, 16, 13, 16, 15, 16, 14, 9, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13, 14, 16, 16, 15, 16, 16, 10, 16, 15, 16, 14, 16, 16, 14, 16, 16, 14, 16, 16, 14, 15, 16, 16, 16, 14, 15, 14, 15, 13, 16, 16, 15, 17, 17, 17, 17, 17, 17, 14, 15, 17, 17, 16, 16, 17, 16, 15, 17, 16, 17, 11, 17, 16, 17, 16, 17, 16, 17, 17, 16, 17, 17, 16, 17, 17, 16, 16, 17, 17, 17, 16, 14, 17, 17, 17, 17, 15, 16, 14, 16, 15, 16, 13, 16, 15, 16, 14, 16, 15, 16, 12, 16, 15, 16, 17, 17, 17, 17, 17, 13, 16, 15, 17, 17, 17, 16, 15, 17, 17, 17, 16, 15, 17, 17, 14, 16, 17, 17, 16, 17, 17, 16, 15, 17, 16, 14, 17, 16, 15, 17, 16, 17, 17, 16, 17, 15, 16, 17, 14, 17, 16, 15, 17, 16, 17, 13, 17, 16, 17, 17, 16, 17, 14, 17, 16, 17, 16, 17, 16, 17, 9 ]; Sf.minCodePoint = 0; Sf.maxCodePoint = 1114111; Sf.minHighSurrogate = 55296; Sf.maxHighSurrogate = 56319; Sf.minLowSurrogate = 56320; Sf.maxLowSurrogate = 57343; t.DEPTH_BUFFER_BIT = 256; t.STENCIL_BUFFER_BIT = 1024; t.COLOR_BUFFER_BIT = 16384; t.POINTS = 0; t.LINES = 1; t.LINE_LOOP = 2; t.LINE_STRIP = 3; t.TRIANGLES = 4; t.TRIANGLE_STRIP = 5; t.TRIANGLE_FAN = 6; t.ZERO = 0; t.ONE = 1; t.SRC_COLOR = 768; t.ONE_MINUS_SRC_COLOR = 769; t.SRC_ALPHA = 770; t.ONE_MINUS_SRC_ALPHA = 771; t.DST_ALPHA = 772; t.ONE_MINUS_DST_ALPHA = 773; t.DST_COLOR = 774; t.ONE_MINUS_DST_COLOR = 775; t.SRC_ALPHA_SATURATE = 776; t.FUNC_ADD = 32774; t.BLEND_EQUATION = 32777; t.BLEND_EQUATION_RGB = 32777; t.BLEND_EQUATION_ALPHA = 34877; t.FUNC_SUBTRACT = 32778; t.FUNC_REVERSE_SUBTRACT = 32779; t.BLEND_DST_RGB = 32968; t.BLEND_SRC_RGB = 32969; t.BLEND_DST_ALPHA = 32970; t.BLEND_SRC_ALPHA = 32971; t.CONSTANT_COLOR = 32769; t.ONE_MINUS_CONSTANT_COLOR = 32770; t.CONSTANT_ALPHA = 32771; t.ONE_MINUS_CONSTANT_ALPHA = 32772; t.BLEND_COLOR = 32773; t.ARRAY_BUFFER = 34962; t.ELEMENT_ARRAY_BUFFER = 34963; t.ARRAY_BUFFER_BINDING = 34964; t.ELEMENT_ARRAY_BUFFER_BINDING = 34965; t.STREAM_DRAW = 35040; t.STATIC_DRAW = 35044; t.DYNAMIC_DRAW = 35048; t.BUFFER_SIZE = 34660; t.BUFFER_USAGE = 34661; t.CURRENT_VERTEX_ATTRIB = 34342; t.FRONT = 1028; t.BACK = 1029; t.FRONT_AND_BACK = 1032; t.CULL_FACE = 2884; t.BLEND = 3042; t.DITHER = 3024; t.STENCIL_TEST = 2960; t.DEPTH_TEST = 2929; t.SCISSOR_TEST = 3089; t.POLYGON_OFFSET_FILL = 32823; t.SAMPLE_ALPHA_TO_COVERAGE = 32926; t.SAMPLE_COVERAGE = 32928; t.NO_ERROR = 0; t.INVALID_ENUM = 1280; t.INVALID_VALUE = 1281; t.INVALID_OPERATION = 1282; t.OUT_OF_MEMORY = 1285; t.CW = 2304; t.CCW = 2305; t.LINE_WIDTH = 2849; t.ALIASED_POINT_SIZE_RANGE = 33901; t.ALIASED_LINE_WIDTH_RANGE = 33902; t.CULL_FACE_MODE = 2885; t.FRONT_FACE = 2886; t.DEPTH_RANGE = 2928; t.DEPTH_WRITEMASK = 2930; t.DEPTH_CLEAR_VALUE = 2931; t.DEPTH_FUNC = 2932; t.STENCIL_CLEAR_VALUE = 2961; t.STENCIL_FUNC = 2962; t.STENCIL_FAIL = 2964; t.STENCIL_PASS_DEPTH_FAIL = 2965; t.STENCIL_PASS_DEPTH_PASS = 2966; t.STENCIL_REF = 2967; t.STENCIL_VALUE_MASK = 2963; t.STENCIL_WRITEMASK = 2968; t.STENCIL_BACK_FUNC = 34816; t.STENCIL_BACK_FAIL = 34817; t.STENCIL_BACK_PASS_DEPTH_FAIL = 34818; t.STENCIL_BACK_PASS_DEPTH_PASS = 34819; t.STENCIL_BACK_REF = 36003; t.STENCIL_BACK_VALUE_MASK = 36004; t.STENCIL_BACK_WRITEMASK = 36005; t.VIEWPORT = 2978; t.SCISSOR_BOX = 3088; t.COLOR_CLEAR_VALUE = 3106; t.COLOR_WRITEMASK = 3107; t.UNPACK_ALIGNMENT = 3317; t.PACK_ALIGNMENT = 3333; t.MAX_TEXTURE_SIZE = 3379; t.MAX_VIEWPORT_DIMS = 3386; t.SUBPIXEL_BITS = 3408; t.RED_BITS = 3410; t.GREEN_BITS = 3411; t.BLUE_BITS = 3412; t.ALPHA_BITS = 3413; t.DEPTH_BITS = 3414; t.STENCIL_BITS = 3415; t.POLYGON_OFFSET_UNITS = 10752; t.POLYGON_OFFSET_FACTOR = 32824; t.TEXTURE_BINDING_2D = 32873; t.SAMPLE_BUFFERS = 32936; t.SAMPLES = 32937; t.SAMPLE_COVERAGE_VALUE = 32938; t.SAMPLE_COVERAGE_INVERT = 32939; t.NUM_COMPRESSED_TEXTURE_FORMATS = 34466; t.COMPRESSED_TEXTURE_FORMATS = 34467; t.DONT_CARE = 4352; t.FASTEST = 4353; t.NICEST = 4354; t.GENERATE_MIPMAP_HINT = 33170; t.BYTE = 5120; t.UNSIGNED_BYTE = 5121; t.SHORT = 5122; t.UNSIGNED_SHORT = 5123; t.INT = 5124; t.UNSIGNED_INT = 5125; t.FLOAT = 5126; t.DEPTH_COMPONENT = 6402; t.ALPHA = 6406; t.RGB = 6407; t.RGBA = 6408; t.LUMINANCE = 6409; t.LUMINANCE_ALPHA = 6410; t.UNSIGNED_SHORT_4_4_4_4 = 32819; t.UNSIGNED_SHORT_5_5_5_1 = 32820; t.UNSIGNED_SHORT_5_6_5 = 33635; t.FRAGMENT_SHADER = 35632; t.VERTEX_SHADER = 35633; t.MAX_VERTEX_ATTRIBS = 34921; t.MAX_VERTEX_UNIFORM_VECTORS = 36347; t.MAX_VARYING_VECTORS = 36348; t.MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661; t.MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660; t.MAX_TEXTURE_IMAGE_UNITS = 34930; t.MAX_FRAGMENT_UNIFORM_VECTORS = 36349; t.SHADER_TYPE = 35663; t.DELETE_STATUS = 35712; t.LINK_STATUS = 35714; t.VALIDATE_STATUS = 35715; t.ATTACHED_SHADERS = 35717; t.ACTIVE_UNIFORMS = 35718; t.ACTIVE_ATTRIBUTES = 35721; t.SHADING_LANGUAGE_VERSION = 35724; t.CURRENT_PROGRAM = 35725; t.NEVER = 512; t.LESS = 513; t.EQUAL = 514; t.LEQUAL = 515; t.GREATER = 516; t.NOTEQUAL = 517; t.GEQUAL = 518; t.ALWAYS = 519; t.KEEP = 7680; t.REPLACE = 7681; t.INCR = 7682; t.DECR = 7683; t.INVERT = 5386; t.INCR_WRAP = 34055; t.DECR_WRAP = 34056; t.VENDOR = 7936; t.RENDERER = 7937; t.VERSION = 7938; t.EXTENSIONS = 7939; t.NEAREST = 9728; t.LINEAR = 9729; t.NEAREST_MIPMAP_NEAREST = 9984; t.LINEAR_MIPMAP_NEAREST = 9985; t.NEAREST_MIPMAP_LINEAR = 9986; t.LINEAR_MIPMAP_LINEAR = 9987; t.TEXTURE_MAG_FILTER = 10240; t.TEXTURE_MIN_FILTER = 10241; t.TEXTURE_WRAP_S = 10242; t.TEXTURE_WRAP_T = 10243; t.TEXTURE_2D = 3553; t.TEXTURE = 5890; t.TEXTURE_CUBE_MAP = 34067; t.TEXTURE_BINDING_CUBE_MAP = 34068; t.TEXTURE_CUBE_MAP_POSITIVE_X = 34069; t.TEXTURE_CUBE_MAP_NEGATIVE_X = 34070; t.TEXTURE_CUBE_MAP_POSITIVE_Y = 34071; t.TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072; t.TEXTURE_CUBE_MAP_POSITIVE_Z = 34073; t.TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074; t.MAX_CUBE_MAP_TEXTURE_SIZE = 34076; t.TEXTURE0 = 33984; t.TEXTURE1 = 33985; t.TEXTURE2 = 33986; t.TEXTURE3 = 33987; t.TEXTURE4 = 33988; t.TEXTURE5 = 33989; t.TEXTURE6 = 33990; t.TEXTURE7 = 33991; t.TEXTURE8 = 33992; t.TEXTURE9 = 33993; t.TEXTURE10 = 33994; t.TEXTURE11 = 33995; t.TEXTURE12 = 33996; t.TEXTURE13 = 33997; t.TEXTURE14 = 33998; t.TEXTURE15 = 33999; t.TEXTURE16 = 34e3; t.TEXTURE17 = 34001; t.TEXTURE18 = 34002; t.TEXTURE19 = 34003; t.TEXTURE20 = 34004; t.TEXTURE21 = 34005; t.TEXTURE22 = 34006; t.TEXTURE23 = 34007; t.TEXTURE24 = 34008; t.TEXTURE25 = 34009; t.TEXTURE26 = 34010; t.TEXTURE27 = 34011; t.TEXTURE28 = 34012; t.TEXTURE29 = 34013; t.TEXTURE30 = 34014; t.TEXTURE31 = 34015; t.ACTIVE_TEXTURE = 34016; t.REPEAT = 10497; t.CLAMP_TO_EDGE = 33071; t.MIRRORED_REPEAT = 33648; t.FLOAT_VEC2 = 35664; t.FLOAT_VEC3 = 35665; t.FLOAT_VEC4 = 35666; t.INT_VEC2 = 35667; t.INT_VEC3 = 35668; t.INT_VEC4 = 35669; t.BOOL = 35670; t.BOOL_VEC2 = 35671; t.BOOL_VEC3 = 35672; t.BOOL_VEC4 = 35673; t.FLOAT_MAT2 = 35674; t.FLOAT_MAT3 = 35675; t.FLOAT_MAT4 = 35676; t.SAMPLER_2D = 35678; t.SAMPLER_CUBE = 35680; t.VERTEX_ATTRIB_ARRAY_ENABLED = 34338; t.VERTEX_ATTRIB_ARRAY_SIZE = 34339; t.VERTEX_ATTRIB_ARRAY_STRIDE = 34340; t.VERTEX_ATTRIB_ARRAY_TYPE = 34341; t.VERTEX_ATTRIB_ARRAY_NORMALIZED = 34922; t.VERTEX_ATTRIB_ARRAY_POINTER = 34373; t.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 34975; t.IMPLEMENTATION_COLOR_READ_TYPE = 35738; t.IMPLEMENTATION_COLOR_READ_FORMAT = 35739; t.VERTEX_PROGRAM_POINT_SIZE = 34370; t.POINT_SPRITE = 34913; t.COMPILE_STATUS = 35713; t.LOW_FLOAT = 36336; t.MEDIUM_FLOAT = 36337; t.HIGH_FLOAT = 36338; t.LOW_INT = 36339; t.MEDIUM_INT = 36340; t.HIGH_INT = 36341; t.FRAMEBUFFER = 36160; t.RENDERBUFFER = 36161; t.RGBA4 = 32854; t.RGB5_A1 = 32855; t.RGB565 = 36194; t.DEPTH_COMPONENT16 = 33189; t.STENCIL_INDEX = 6401; t.STENCIL_INDEX8 = 36168; t.DEPTH_STENCIL = 34041; t.RENDERBUFFER_WIDTH = 36162; t.RENDERBUFFER_HEIGHT = 36163; t.RENDERBUFFER_INTERNAL_FORMAT = 36164; t.RENDERBUFFER_RED_SIZE = 36176; t.RENDERBUFFER_GREEN_SIZE = 36177; t.RENDERBUFFER_BLUE_SIZE = 36178; t.RENDERBUFFER_ALPHA_SIZE = 36179; t.RENDERBUFFER_DEPTH_SIZE = 36180; t.RENDERBUFFER_STENCIL_SIZE = 36181; t.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 36048; t.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 36049; t.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 36050; t.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 36051; t.COLOR_ATTACHMENT0 = 36064; t.DEPTH_ATTACHMENT = 36096; t.STENCIL_ATTACHMENT = 36128; t.DEPTH_STENCIL_ATTACHMENT = 33306; t.NONE = 0; t.FRAMEBUFFER_COMPLETE = 36053; t.FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054; t.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055; t.FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 36057; t.FRAMEBUFFER_UNSUPPORTED = 36061; t.FRAMEBUFFER_BINDING = 36006; t.RENDERBUFFER_BINDING = 36007; t.MAX_RENDERBUFFER_SIZE = 34024; t.INVALID_FRAMEBUFFER_OPERATION = 1286; t.UNPACK_FLIP_Y_WEBGL = 37440; t.UNPACK_PREMULTIPLY_ALPHA_WEBGL = 37441; t.CONTEXT_LOST_WEBGL = 37442; t.UNPACK_COLORSPACE_CONVERSION_WEBGL = 37443; t.BROWSER_DEFAULT_WEBGL = 37444; t.READ_BUFFER = 3074; t.UNPACK_ROW_LENGTH = 3314; t.UNPACK_SKIP_ROWS = 3315; t.UNPACK_SKIP_PIXELS = 3316; t.PACK_ROW_LENGTH = 3330; t.PACK_SKIP_ROWS = 3331; t.PACK_SKIP_PIXELS = 3332; t.TEXTURE_BINDING_3D = 32874; t.UNPACK_SKIP_IMAGES = 32877; t.UNPACK_IMAGE_HEIGHT = 32878; t.MAX_3D_TEXTURE_SIZE = 32883; t.MAX_ELEMENTS_VERTICES = 33e3; t.MAX_ELEMENTS_INDICES = 33001; t.MAX_TEXTURE_LOD_BIAS = 34045; t.MAX_FRAGMENT_UNIFORM_COMPONENTS = 35657; t.MAX_VERTEX_UNIFORM_COMPONENTS = 35658; t.MAX_ARRAY_TEXTURE_LAYERS = 35071; t.MIN_PROGRAM_TEXEL_OFFSET = 35076; t.MAX_PROGRAM_TEXEL_OFFSET = 35077; t.MAX_VARYING_COMPONENTS = 35659; t.FRAGMENT_SHADER_DERIVATIVE_HINT = 35723; t.RASTERIZER_DISCARD = 35977; t.VERTEX_ARRAY_BINDING = 34229; t.MAX_VERTEX_OUTPUT_COMPONENTS = 37154; t.MAX_FRAGMENT_INPUT_COMPONENTS = 37157; t.MAX_SERVER_WAIT_TIMEOUT = 37137; t.MAX_ELEMENT_INDEX = 36203; t.RED = 6403; t.RGB8 = 32849; t.RGBA8 = 32856; t.RGB10_A2 = 32857; t.TEXTURE_3D = 32879; t.TEXTURE_WRAP_R = 32882; t.TEXTURE_MIN_LOD = 33082; t.TEXTURE_MAX_LOD = 33083; t.TEXTURE_BASE_LEVEL = 33084; t.TEXTURE_MAX_LEVEL = 33085; t.TEXTURE_COMPARE_MODE = 34892; t.TEXTURE_COMPARE_FUNC = 34893; t.SRGB = 35904; t.SRGB8 = 35905; t.SRGB8_ALPHA8 = 35907; t.COMPARE_REF_TO_TEXTURE = 34894; t.RGBA32F = 34836; t.RGB32F = 34837; t.RGBA16F = 34842; t.RGB16F = 34843; t.TEXTURE_2D_ARRAY = 35866; t.TEXTURE_BINDING_2D_ARRAY = 35869; t.R11F_G11F_B10F = 35898; t.RGB9_E5 = 35901; t.RGBA32UI = 36208; t.RGB32UI = 36209; t.RGBA16UI = 36214; t.RGB16UI = 36215; t.RGBA8UI = 36220; t.RGB8UI = 36221; t.RGBA32I = 36226; t.RGB32I = 36227; t.RGBA16I = 36232; t.RGB16I = 36233; t.RGBA8I = 36238; t.RGB8I = 36239; t.RED_INTEGER = 36244; t.RGB_INTEGER = 36248; t.RGBA_INTEGER = 36249; t.R8 = 33321; t.RG8 = 33323; t.R16F = 33325; t.R32F = 33326; t.RG16F = 33327; t.RG32F = 33328; t.R8I = 33329; t.R8UI = 33330; t.R16I = 33331; t.R16UI = 33332; t.R32I = 33333; t.R32UI = 33334; t.RG8I = 33335; t.RG8UI = 33336; t.RG16I = 33337; t.RG16UI = 33338; t.RG32I = 33339; t.RG32UI = 33340; t.R8_SNORM = 36756; t.RG8_SNORM = 36757; t.RGB8_SNORM = 36758; t.RGBA8_SNORM = 36759; t.RGB10_A2UI = 36975; t.TEXTURE_IMMUTABLE_FORMAT = 37167; t.TEXTURE_IMMUTABLE_LEVELS = 33503; t.UNSIGNED_INT_2_10_10_10_REV = 33640; t.UNSIGNED_INT_10F_11F_11F_REV = 35899; t.UNSIGNED_INT_5_9_9_9_REV = 35902; t.FLOAT_32_UNSIGNED_INT_24_8_REV = 36269; t.UNSIGNED_INT_24_8 = 34042; t.HALF_FLOAT = 5131; t.RG = 33319; t.RG_INTEGER = 33320; t.INT_2_10_10_10_REV = 36255; t.CURRENT_QUERY = 34917; t.QUERY_RESULT = 34918; t.QUERY_RESULT_AVAILABLE = 34919; t.ANY_SAMPLES_PASSED = 35887; t.ANY_SAMPLES_PASSED_CONSERVATIVE = 36202; t.MAX_DRAW_BUFFERS = 34852; t.DRAW_BUFFER0 = 34853; t.DRAW_BUFFER1 = 34854; t.DRAW_BUFFER2 = 34855; t.DRAW_BUFFER3 = 34856; t.DRAW_BUFFER4 = 34857; t.DRAW_BUFFER5 = 34858; t.DRAW_BUFFER6 = 34859; t.DRAW_BUFFER7 = 34860; t.DRAW_BUFFER8 = 34861; t.DRAW_BUFFER9 = 34862; t.DRAW_BUFFER10 = 34863; t.DRAW_BUFFER11 = 34864; t.DRAW_BUFFER12 = 34865; t.DRAW_BUFFER13 = 34866; t.DRAW_BUFFER14 = 34867; t.DRAW_BUFFER15 = 34868; t.MAX_COLOR_ATTACHMENTS = 36063; t.COLOR_ATTACHMENT1 = 36065; t.COLOR_ATTACHMENT2 = 36066; t.COLOR_ATTACHMENT3 = 36067; t.COLOR_ATTACHMENT4 = 36068; t.COLOR_ATTACHMENT5 = 36069; t.COLOR_ATTACHMENT6 = 36070; t.COLOR_ATTACHMENT7 = 36071; t.COLOR_ATTACHMENT8 = 36072; t.COLOR_ATTACHMENT9 = 36073; t.COLOR_ATTACHMENT10 = 36074; t.COLOR_ATTACHMENT11 = 36075; t.COLOR_ATTACHMENT12 = 36076; t.COLOR_ATTACHMENT13 = 36077; t.COLOR_ATTACHMENT14 = 36078; t.COLOR_ATTACHMENT15 = 36079; t.SAMPLER_3D = 35679; t.SAMPLER_2D_SHADOW = 35682; t.SAMPLER_2D_ARRAY = 36289; t.SAMPLER_2D_ARRAY_SHADOW = 36292; t.SAMPLER_CUBE_SHADOW = 36293; t.INT_SAMPLER_2D = 36298; t.INT_SAMPLER_3D = 36299; t.INT_SAMPLER_CUBE = 36300; t.INT_SAMPLER_2D_ARRAY = 36303; t.UNSIGNED_INT_SAMPLER_2D = 36306; t.UNSIGNED_INT_SAMPLER_3D = 36307; t.UNSIGNED_INT_SAMPLER_CUBE = 36308; t.UNSIGNED_INT_SAMPLER_2D_ARRAY = 36311; t.MAX_SAMPLES = 36183; t.SAMPLER_BINDING = 35097; t.PIXEL_PACK_BUFFER = 35051; t.PIXEL_UNPACK_BUFFER = 35052; t.PIXEL_PACK_BUFFER_BINDING = 35053; t.PIXEL_UNPACK_BUFFER_BINDING = 35055; t.COPY_READ_BUFFER = 36662; t.COPY_WRITE_BUFFER = 36663; t.COPY_READ_BUFFER_BINDING = 36662; t.COPY_WRITE_BUFFER_BINDING = 36663; t.FLOAT_MAT2x3 = 35685; t.FLOAT_MAT2x4 = 35686; t.FLOAT_MAT3x2 = 35687; t.FLOAT_MAT3x4 = 35688; t.FLOAT_MAT4x2 = 35689; t.FLOAT_MAT4x3 = 35690; t.UNSIGNED_INT_VEC2 = 36294; t.UNSIGNED_INT_VEC3 = 36295; t.UNSIGNED_INT_VEC4 = 36296; t.UNSIGNED_NORMALIZED = 35863; t.SIGNED_NORMALIZED = 36764; t.VERTEX_ATTRIB_ARRAY_INTEGER = 35069; t.VERTEX_ATTRIB_ARRAY_DIVISOR = 35070; t.TRANSFORM_FEEDBACK_BUFFER_MODE = 35967; t.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 35968; t.TRANSFORM_FEEDBACK_VARYINGS = 35971; t.TRANSFORM_FEEDBACK_BUFFER_START = 35972; t.TRANSFORM_FEEDBACK_BUFFER_SIZE = 35973; t.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 35976; t.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 35978; t.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 35979; t.INTERLEAVED_ATTRIBS = 35980; t.SEPARATE_ATTRIBS = 35981; t.TRANSFORM_FEEDBACK_BUFFER = 35982; t.TRANSFORM_FEEDBACK_BUFFER_BINDING = 35983; t.TRANSFORM_FEEDBACK = 36386; t.TRANSFORM_FEEDBACK_PAUSED = 36387; t.TRANSFORM_FEEDBACK_ACTIVE = 36388; t.TRANSFORM_FEEDBACK_BINDING = 36389; t.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 33296; t.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 33297; t.FRAMEBUFFER_ATTACHMENT_RED_SIZE = 33298; t.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 33299; t.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 33300; t.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 33301; t.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 33302; t.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 33303; t.FRAMEBUFFER_DEFAULT = 33304; t.DEPTH24_STENCIL8 = 35056; t.DRAW_FRAMEBUFFER_BINDING = 36006; t.READ_FRAMEBUFFER = 36008; t.DRAW_FRAMEBUFFER = 36009; t.READ_FRAMEBUFFER_BINDING = 36010; t.RENDERBUFFER_SAMPLES = 36011; t.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 36052; t.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 36182; t.UNIFORM_BUFFER = 35345; t.UNIFORM_BUFFER_BINDING = 35368; t.UNIFORM_BUFFER_START = 35369; t.UNIFORM_BUFFER_SIZE = 35370; t.MAX_VERTEX_UNIFORM_BLOCKS = 35371; t.MAX_FRAGMENT_UNIFORM_BLOCKS = 35373; t.MAX_COMBINED_UNIFORM_BLOCKS = 35374; t.MAX_UNIFORM_BUFFER_BINDINGS = 35375; t.MAX_UNIFORM_BLOCK_SIZE = 35376; t.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 35377; t.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 35379; t.UNIFORM_BUFFER_OFFSET_ALIGNMENT = 35380; t.ACTIVE_UNIFORM_BLOCKS = 35382; t.UNIFORM_TYPE = 35383; t.UNIFORM_SIZE = 35384; t.UNIFORM_BLOCK_INDEX = 35386; t.UNIFORM_OFFSET = 35387; t.UNIFORM_ARRAY_STRIDE = 35388; t.UNIFORM_MATRIX_STRIDE = 35389; t.UNIFORM_IS_ROW_MAJOR = 35390; t.UNIFORM_BLOCK_BINDING = 35391; t.UNIFORM_BLOCK_DATA_SIZE = 35392; t.UNIFORM_BLOCK_ACTIVE_UNIFORMS = 35394; t.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 35395; t.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 35396; t.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 35398; t.OBJECT_TYPE = 37138; t.SYNC_CONDITION = 37139; t.SYNC_STATUS = 37140; t.SYNC_FLAGS = 37141; t.SYNC_FENCE = 37142; t.SYNC_GPU_COMMANDS_COMPLETE = 37143; t.UNSIGNALED = 37144; t.SIGNALED = 37145; t.ALREADY_SIGNALED = 37146; t.TIMEOUT_EXPIRED = 37147; t.CONDITION_SATISFIED = 37148; t.WAIT_FAILED = 37149; t.SYNC_FLUSH_COMMANDS_BIT = 1; t.COLOR = 6144; t.DEPTH = 6145; t.STENCIL = 6146; t.MIN = 32775; t.MAX = 32776; t.DEPTH_COMPONENT24 = 33190; t.STREAM_READ = 35041; t.STREAM_COPY = 35042; t.STATIC_READ = 35045; t.STATIC_COPY = 35046; t.DYNAMIC_READ = 35049; t.DYNAMIC_COPY = 35050; t.DEPTH_COMPONENT32F = 36012; t.DEPTH32F_STENCIL8 = 36013; t.INVALID_INDEX = -1; t.TIMEOUT_IGNORED = -1; t.MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 37447; Kd.__identity = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]; ta.__identity = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]; xc.audioSources = []; xc.sourcesToRemove = []; Uj.ID = 0; F.NONE = 0; F.FALSE = 0; F.TRUE = 1; F.SOURCE_RELATIVE = 514; F.CONE_INNER_ANGLE = 4097; F.CONE_OUTER_ANGLE = 4098; F.PITCH = 4099; F.POSITION = 4100; F.DIRECTION = 4101; F.VELOCITY = 4102; F.LOOPING = 4103; F.BUFFER = 4105; F.GAIN = 4106; F.MIN_GAIN = 4109; F.MAX_GAIN = 4110; F.ORIENTATION = 4111; F.SOURCE_STATE = 4112; F.INITIAL = 4113; F.PLAYING = 4114; F.PAUSED = 4115; F.STOPPED = 4116; F.BUFFERS_QUEUED = 4117; F.BUFFERS_PROCESSED = 4118; F.REFERENCE_DISTANCE = 4128; F.ROLLOFF_FACTOR = 4129; F.CONE_OUTER_GAIN = 4130; F.MAX_DISTANCE = 4131; F.SEC_OFFSET = 4132; F.SAMPLE_OFFSET = 4133; F.BYTE_OFFSET = 4134; F.SOURCE_TYPE = 4135; F.STATIC = 4136; F.STREAMING = 4137; F.UNDETERMINED = 4144; F.FORMAT_MONO8 = 4352; F.FORMAT_MONO16 = 4353; F.FORMAT_STEREO8 = 4354; F.FORMAT_STEREO16 = 4355; F.FREQUENCY = 8193; F.BITS = 8194; F.CHANNELS = 8195; F.SIZE = 8196; F.NO_ERROR = 0; F.INVALID_NAME = 40961; F.INVALID_ENUM = 40962; F.INVALID_VALUE = 40963; F.INVALID_OPERATION = 40964; F.OUT_OF_MEMORY = 40965; F.VENDOR = 45057; F.VERSION = 45058; F.RENDERER = 45059; F.EXTENSIONS = 45060; F.DOPPLER_FACTOR = 49152; F.SPEED_OF_SOUND = 49155; F.DOPPLER_VELOCITY = 49153; F.DISTANCE_MODEL = 53248; F.INVERSE_DISTANCE = 53249; F.INVERSE_DISTANCE_CLAMPED = 53250; F.LINEAR_DISTANCE = 53251; F.LINEAR_DISTANCE_CLAMPED = 53252; F.EXPONENT_DISTANCE = 53253; F.EXPONENT_DISTANCE_CLAMPED = 53254; F.METERS_PER_UNIT = 131076; F.DIRECT_FILTER = 131077; F.AUXILIARY_SEND_FILTER = 131078; F.AIR_ABSORPTION_FACTOR = 131079; F.ROOM_ROLLOFF_FACTOR = 131080; F.CONE_OUTER_GAINHF = 131081; F.DIRECT_FILTER_GAINHF_AUTO = 131082; F.AUXILIARY_SEND_FILTER_GAIN_AUTO = 131083; F.AUXILIARY_SEND_FILTER_GAINHF_AUTO = 131084; F.REVERB_DENSITY = 1; F.REVERB_DIFFUSION = 2; F.REVERB_GAIN = 3; F.REVERB_GAINHF = 4; F.REVERB_DECAY_TIME = 5; F.REVERB_DECAY_HFRATIO = 6; F.REVERB_REFLECTIONS_GAIN = 7; F.REVERB_REFLECTIONS_DELAY = 8; F.REVERB_LATE_REVERB_GAIN = 9; F.REVERB_LATE_REVERB_DELAY = 10; F.REVERB_AIR_ABSORPTION_GAINHF = 11; F.REVERB_ROOM_ROLLOFF_FACTOR = 12; F.REVERB_DECAY_HFLIMIT = 13; F.EAXREVERB_DENSITY = 1; F.EAXREVERB_DIFFUSION = 2; F.EAXREVERB_GAIN = 3; F.EAXREVERB_GAINHF = 4; F.EAXREVERB_GAINLF = 5; F.EAXREVERB_DECAY_TIME = 6; F.EAXREVERB_DECAY_HFRATIO = 7; F.EAXREVERB_DECAY_LFRATIO = 8; F.EAXREVERB_REFLECTIONS_GAIN = 9; F.EAXREVERB_REFLECTIONS_DELAY = 10; F.EAXREVERB_REFLECTIONS_PAN = 11; F.EAXREVERB_LATE_REVERB_GAIN = 12; F.EAXREVERB_LATE_REVERB_DELAY = 13; F.EAXREVERB_LATE_REVERB_PAN = 14; F.EAXREVERB_ECHO_TIME = 15; F.EAXREVERB_ECHO_DEPTH = 16; F.EAXREVERB_MODULATION_TIME = 17; F.EAXREVERB_MODULATION_DEPTH = 18; F.EAXREVERB_AIR_ABSORPTION_GAINHF = 19; F.EAXREVERB_HFREFERENCE = 20; F.EAXREVERB_LFREFERENCE = 21; F.EAXREVERB_ROOM_ROLLOFF_FACTOR = 22; F.EAXREVERB_DECAY_HFLIMIT = 23; F.CHORUS_WAVEFORM = 1; F.CHORUS_PHASE = 2; F.CHORUS_RATE = 3; F.CHORUS_DEPTH = 4; F.CHORUS_FEEDBACK = 5; F.CHORUS_DELAY = 6; F.DISTORTION_EDGE = 1; F.DISTORTION_GAIN = 2; F.DISTORTION_LOWPASS_CUTOFF = 3; F.DISTORTION_EQCENTER = 4; F.DISTORTION_EQBANDWIDTH = 5; F.ECHO_DELAY = 1; F.ECHO_LRDELAY = 2; F.ECHO_DAMPING = 3; F.ECHO_FEEDBACK = 4; F.ECHO_SPREAD = 5; F.FLANGER_WAVEFORM = 1; F.FLANGER_PHASE = 2; F.FLANGER_RATE = 3; F.FLANGER_DEPTH = 4; F.FLANGER_FEEDBACK = 5; F.FLANGER_DELAY = 6; F.FREQUENCY_SHIFTER_FREQUENCY = 1; F.FREQUENCY_SHIFTER_LEFT_DIRECTION = 2; F.FREQUENCY_SHIFTER_RIGHT_DIRECTION = 3; F.VOCAL_MORPHER_PHONEMEA = 1; F.VOCAL_MORPHER_PHONEMEA_COARSE_TUNING = 2; F.VOCAL_MORPHER_PHONEMEB = 3; F.VOCAL_MORPHER_PHONEMEB_COARSE_TUNING = 4; F.VOCAL_MORPHER_WAVEFORM = 5; F.VOCAL_MORPHER_RATE = 6; F.PITCH_SHIFTER_COARSE_TUNE = 1; F.PITCH_SHIFTER_FINE_TUNE = 2; F.RING_MODULATOR_FREQUENCY = 1; F.RING_MODULATOR_HIGHPASS_CUTOFF = 2; F.RING_MODULATOR_WAVEFORM = 3; F.AUTOWAH_ATTACK_TIME = 1; F.AUTOWAH_RELEASE_TIME = 2; F.AUTOWAH_RESONANCE = 3; F.AUTOWAH_PEAK_GAIN = 4; F.COMPRESSOR_ONOFF = 1; F.EQUALIZER_LOW_GAIN = 1; F.EQUALIZER_LOW_CUTOFF = 2; F.EQUALIZER_MID1_GAIN = 3; F.EQUALIZER_MID1_CENTER = 4; F.EQUALIZER_MID1_WIDTH = 5; F.EQUALIZER_MID2_GAIN = 6; F.EQUALIZER_MID2_CENTER = 7; F.EQUALIZER_MID2_WIDTH = 8; F.EQUALIZER_HIGH_GAIN = 9; F.EQUALIZER_HIGH_CUTOFF = 10; F.EFFECT_FIRST_PARAMETER = 0; F.EFFECT_LAST_PARAMETER = 32768; F.EFFECT_TYPE = 32769; F.EFFECT_NULL = 0; F.EFFECT_EAXREVERB = 32768; F.EFFECT_REVERB = 1; F.EFFECT_CHORUS = 2; F.EFFECT_DISTORTION = 3; F.EFFECT_ECHO = 4; F.EFFECT_FLANGER = 5; F.EFFECT_FREQUENCY_SHIFTER = 6; F.EFFECT_VOCAL_MORPHER = 7; F.EFFECT_PITCH_SHIFTER = 8; F.EFFECT_RING_MODULATOR = 9; F.FFECT_AUTOWAH = 10; F.EFFECT_COMPRESSOR = 11; F.EFFECT_EQUALIZER = 12; F.EFFECTSLOT_EFFECT = 1; F.EFFECTSLOT_GAIN = 2; F.EFFECTSLOT_AUXILIARY_SEND_AUTO = 3; F.LOWPASS_GAIN = 1; F.LOWPASS_GAINHF = 2; F.HIGHPASS_GAIN = 1; F.HIGHPASS_GAINLF = 2; F.BANDPASS_GAIN = 1; F.BANDPASS_GAINLF = 2; F.BANDPASS_GAINHF = 3; F.FILTER_FIRST_PARAMETER = 0; F.FILTER_LAST_PARAMETER = 32768; F.FILTER_TYPE = 32769; F.FILTER_NULL = 0; F.FILTER_LOWPASS = 1; F.FILTER_HIGHPASS = 2; F.FILTER_BANDPASS = 3; Gb.FALSE = 0; Gb.TRUE = 1; Gb.FREQUENCY = 4103; Gb.REFRESH = 4104; Gb.SYNC = 4105; Gb.MONO_SOURCES = 4112; Gb.STEREO_SOURCES = 4113; Gb.NO_ERROR = 0; Gb.INVALID_DEVICE = 40961; Gb.INVALID_CONTEXT = 40962; Gb.INVALID_ENUM = 40963; Gb.INVALID_VALUE = 40964; Gb.OUT_OF_MEMORY = 40965; Gb.ATTRIBUTES_SIZE = 4098; Gb.ALL_ATTRIBUTES = 4099; Gb.DEFAULT_DEVICE_SPECIFIER = 4100; Gb.DEVICE_SPECIFIER = 4101; Gb.EXTENSIONS = 4102; Gb.ENUMERATE_ALL_EXT = 1; Gb.DEFAULT_ALL_DEVICES_SPECIFIER = 4114; Gb.ALL_DEVICES_SPECIFIER = 4115; je.onUpdate = new Ld(); we.alreadyCreated = new qa(); we.initialized = !1; Pf.sensorByID = new Za(); Pf.sensors = []; Wa.__directories = new Za(); Jd.devices = new Za(); Jd.onConnect = new Mo(); zc.devices = new Za(); zc.onConnect = new No(); eg.CENTER = 0; eg.DOWN = 4; eg.LEFT = 8; eg.RIGHT = 2; eg.UP = 1; eg.DOWN_LEFT = 12; eg.DOWN_RIGHT = 6; eg.UP_LEFT = 9; eg.UP_RIGHT = 3; Bb.NONE = 0; Bb.LEFT_SHIFT = 1; Bb.RIGHT_SHIFT = 2; Bb.LEFT_CTRL = 64; Bb.RIGHT_CTRL = 128; Bb.LEFT_ALT = 256; Bb.RIGHT_ALT = 512; Bb.LEFT_META = 1024; Bb.RIGHT_META = 2048; Bb.NUM_LOCK = 4096; Bb.CAPS_LOCK = 8192; Bb.MODE = 16384; Bb.CTRL = 192; Bb.SHIFT = 3; Bb.ALT = 768; Bb.META = 3072; nd.onCancel = new Ni(); nd.onEnd = new Ni(); nd.onMove = new Ni(); nd.onStart = new Ni(); wa.cache = new Uo(); wa.onChange = new Ld(); wa.bundlePaths = new qa(); wa.libraries = new qa(); wa.libraryPaths = new qa(); Yg.BYTES_PER_ELEMENT = 4; Xa.throwErrors = !0; Sw.VERSION = 2; Ma.__lastTimerID = 0; Ma.__sentWarnings = new qa(); Ma.__timers = new Za(); ah.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Df.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, fields: { toJSON: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; Ff.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, fields: { toJSON: { SuppressWarnings: ['checkstyle:Dynamic'] }, _: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; Gf.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, fields: { toJSON: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; Ef.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, fields: { toJSON: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; rf.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, fields: { concat: { SuppressWarnings: ['checkstyle:Dynamic'] }, toJSON: { SuppressWarnings: ['checkstyle:Dynamic'] }, _: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; lj.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; ja.__meta__ = { fields: { image: { SuppressWarnings: ['checkstyle:Dynamic'] }, __framebufferContext: { SuppressWarnings: ['checkstyle:Dynamic'] }, __indexBufferContext: { SuppressWarnings: ['checkstyle:Dynamic'] }, __surface: { SuppressWarnings: ['checkstyle:Dynamic'] }, __textureContext: { SuppressWarnings: ['checkstyle:Dynamic'] }, __vertexBufferContext: { SuppressWarnings: ['checkstyle:Dynamic'] }, compare: { SuppressWarnings: ['checkstyle:Dynamic'] }, getSurface: { SuppressWarnings: ['checkstyle:Dynamic'] }, __fromImage: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; ja.VERTEX_BUFFER_STRIDE = 14; ja.__tempVector = new Xd(); Te.__meta__ = { fields: { __context: { SuppressWarnings: ['checkstyle:Dynamic'] }, __type: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; Dm.__meta__ = { fields: { cairo: { SuppressWarnings: ['checkstyle:Dynamic'] }, __matrix3: { SuppressWarnings: ['checkstyle:Dynamic'] }, applyMatrix: { SuppressWarnings: ['checkstyle:Dynamic'] }, __setBlendModeCairo: { SuppressWarnings: ['checkstyle:Dynamic'] }, _: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; Cg.__meta__ = { fields: { context: { SuppressWarnings: ['checkstyle:Dynamic'] }, applySmoothing: { SuppressWarnings: ['checkstyle:Dynamic'] }, setTransform: { SuppressWarnings: ['checkstyle:Dynamic'] }, __setBlendModeContext: { SuppressWarnings: ['checkstyle:Dynamic'] }, _: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; Bw.NONE = 0; Bw.ROUND = 1; Bw.SQUARE = 2; Hm.__meta__ = { fields: { __element: { SuppressWarnings: ['checkstyle:Dynamic'] }, _: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; Qi.__meta__ = { fields: { element: { SuppressWarnings: ['checkstyle:Dynamic'] }, applyStyle: { SuppressWarnings: ['checkstyle:Dynamic'] }, clearStyle: { SuppressWarnings: ['checkstyle:Dynamic'] }, _: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; df.__meta__ = { fields: { glProgram: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; Ve.__meta__ = { fields: { overrideBlendMode: { SuppressWarnings: ['checkstyle:FieldDocComment'] } } }; Si.SIN45 = 0.7071067811865476; Si.TAN22 = 0.41421356237309503; Ew.BEVEL = 0; Ew.MITER = 1; Ew.ROUND = 2; Gj.__meta__ = { fields: { BitmapData_onError: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; fg.__meta__ = { statics: { create: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }, fields: { parameters: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; fg.__rootURL = Xg.get_supported() ? window.document.URL : ''; Hb.__meta__ = { fields: { gl: { SuppressWarnings: ['checkstyle:Dynamic'] }, __gl: { SuppressWarnings: ['checkstyle:Dynamic'] }, __matrix: { SuppressWarnings: ['checkstyle:Dynamic'] }, __projection: { SuppressWarnings: ['checkstyle:Dynamic'] }, __projectionFlipped: { SuppressWarnings: ['checkstyle:Dynamic'] }, getMatrix: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; Hb.__alphaValue = [1]; Hb.__colorMultipliersValue = [0, 0, 0, 0]; Hb.__colorOffsetsValue = [0, 0, 0, 0]; Hb.__defaultColorMultipliersValue = [1, 1, 1, 1]; Hb.__emptyColorValue = [0, 0, 0, 0]; Hb.__emptyAlphaValue = [1]; Hb.__hasColorTransformValue = [!1]; Hb.__scissorRectangle = new fa(); Hb.__textureSizeValue = [0, 0]; ap.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, fields: { onComplete: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; Xm.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Km.__meta__ = { fields: { index: { SuppressWarnings: ['checkstyle:Dynamic'] }, name: { SuppressWarnings: ['checkstyle:FieldDocComment'] } } }; Ri.__meta__ = { fields: { index: { SuppressWarnings: ['checkstyle:Dynamic'] }, name: { SuppressWarnings: ['checkstyle:FieldDocComment'] } } }; Vi.__meta__ = { fields: { __broadcastEvent: { SuppressWarnings: ['checkstyle:Dynamic'] }, __dispatchEvent: { SuppressWarnings: [['checkstyle:Dynamic', 'checkstyle:LeftCurly']] }, __dispatchStack: { SuppressWarnings: [['checkstyle:Dynamic', 'checkstyle:LeftCurly']] }, __dispatchTarget: { SuppressWarnings: ['checkstyle:Dynamic'] }, __handleError: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; ig.__meta__ = { fields: { data: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; Ym.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Zj.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, fields: { _: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; Yi.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Zm.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; $m.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; an.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; bn.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; cn.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; gi.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, statics: { renderTileContainer: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; Pi.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Dh.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; De.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, fields: { o: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; De.empty = new De(); C.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, statics: { windingRule: { SuppressWarnings: ['checkstyle:Dynamic'] }, createBitmapFill: { SuppressWarnings: ['checkstyle:Dynamic'] }, createGradientPattern: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; C.SIN45 = 0.7071067811865476; C.TAN22 = 0.41421356237309503; C.fillCommands = new De(); C.strokeCommands = new De(); Jw.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; V.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Vf.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, statics: { renderTileContainer: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; bi.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; vf.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Fh.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Fh.MAX_INDEX_BUFFER_LENGTH = 65535; Fh.MAX_QUADS_PER_INDEX_BUFFER = 10922; Fh.MAX_QUAD_INDEX_BUFFER_LENGTH = 65532; ch.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Qc.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Qc.blankBitmapData = new ja(1, 1, !1, 0); Qc.tempColorTransform = new Kc(1, 1, 1, 1, 0, 0, 0, 0); ci.opaqueBitmapData = new ja(1, 1, !1, 0); $f.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; dh.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; ea.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; wf.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; wf.__textureSizeValue = [0, 0]; Rc.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Wf.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; pf.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; cc.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; cc.__regexColor = new Ja('color=("#([^"]+)"|\'#([^\']+)\')', 'i'); cc.__regexFace = new Ja('face=("([^"]+)"|\'([^\']+)\')', 'i'); cc.__regexFont = new Ja(']+)>', 'gi'); cc.__regexCloseFont = new Ja('', 'gi'); cc.__regexSize = new Ja('size=("([^"]+)"|\'([^\']+)\')', 'i'); Dg.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; bh.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Xf.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, fields: { obj: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; Gh.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; hi.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; hi.alphaColorTransform = new Kc(); hi.bitmap = new Mc(); hi.destPoint = new na(); hi.sourceRect = new fa(); ai.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, statics: { P: { SuppressWarnings: ['checkstyle:ConstantName'] } } }; ai.P = [ 151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69, 142, 8, 99, 37, 240, 21, 10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26, 197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87, 174, 20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231, 83, 111, 229, 122, 60, 211, 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143, 54, 65, 25, 63, 161, 1, 216, 80, 73, 209, 76, 132, 187, 208, 89, 18, 169, 200, 196, 135, 130, 116, 188, 159, 86, 164, 100, 109, 198, 173, 186, 3, 64, 52, 217, 226, 250, 124, 123, 5, 202, 38, 147, 118, 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17, 182, 189, 28, 42, 223, 183, 170, 213, 119, 248, 152, 2, 44, 154, 163, 70, 221, 153, 101, 155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, 110, 79, 113, 224, 232, 178, 185, 112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, 191, 179, 162, 241, 81, 51, 145, 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176, 115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29, 24, 72, 243, 141, 128, 195, 78, 66, 215, 61, 156, 180, 151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69, 142, 8, 99, 37, 240, 21, 10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26, 197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87, 174, 20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231, 83, 111, 229, 122, 60, 211, 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143, 54, 65, 25, 63, 161, 1, 216, 80, 73, 209, 76, 132, 187, 208, 89, 18, 169, 200, 196, 135, 130, 116, 188, 159, 86, 164, 100, 109, 198, 173, 186, 3, 64, 52, 217, 226, 250, 124, 123, 5, 202, 38, 147, 118, 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17, 182, 189, 28, 42, 223, 183, 170, 213, 119, 248, 152, 2, 44, 154, 163, 70, 221, 153, 101, 155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, 110, 79, 113, 224, 232, 178, 185, 112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, 191, 179, 162, 241, 81, 51, 145, 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176, 115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29, 24, 72, 243, 141, 128, 195, 78, 66, 215, 61, 156, 180 ]; Ug.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Mm.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, fields: { overrideIntValues: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; $b.supportsVideoTexture = !0; $b.__glDepthStencil = -1; $b.__glMaxTextureMaxAnisotropy = -1; $b.__glMaxViewportDims = -1; $b.__glMemoryCurrentAvailable = -1; $b.__glMemoryTotalAvailable = -1; $b.__glTextureMaxAnisotropy = -1; Kw.DYNAMIC_DRAW = 0; Kw.STATIC_DRAW = 1; Lw.FRAGMENT = 0; Lw.VERTEX = 1; dk.BGR_PACKED = 0; dk.BGRA = 1; dk.BGRA_PACKED = 2; dk.COMPRESSED = 3; dk.COMPRESSED_ALPHA = 4; dk.RGBA_HALF_FLOAT = 5; fn.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; ek.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Ee.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Ee.limitedProfile = !0; $i.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; gn.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; aj.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; ji.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; fk.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; bk.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; dc.__meta__ = { fields: { __textureContext: { SuppressWarnings: ['checkstyle:Dynamic'] }, __getGLFramebuffer: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; ii.__lowMemoryMode = !1; dd.DEFAULT_TO_STRING = 'Error'; gh.ACTIVITY = 'activity'; ef.LINK = 'link'; ef.TEXT_INPUT = 'textInput'; Ue.ERROR = 'error'; nj.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; mj.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Zf.FOCUS_IN = 'focusIn'; Zf.FOCUS_OUT = 'focusOut'; Zf.KEY_FOCUS_CHANGE = 'keyFocusChange'; Zf.MOUSE_FOCUS_CHANGE = 'mouseFocusChange'; eh.FULL_SCREEN = 'fullScreen'; eh.FULL_SCREEN_INTERACTIVE_ACCEPTED = 'fullScreenInteractiveAccepted'; Gg.DEVICE_ADDED = 'deviceAdded'; Gg.DEVICE_REMOVED = 'deviceRemoved'; Gg.DEVICE_UNUSABLE = 'deviceUnusable'; ki.HTTP_RESPONSE_STATUS = 'httpResponseStatus'; ki.HTTP_STATUS = 'httpStatus'; qg.IO_ERROR = 'ioError'; ei.KEY_DOWN = 'keyDown'; ei.KEY_UP = 'keyUp'; Lb.CLICK = 'click'; Lb.DOUBLE_CLICK = 'doubleClick'; Lb.MIDDLE_CLICK = 'middleClick'; Lb.MIDDLE_MOUSE_DOWN = 'middleMouseDown'; Lb.MIDDLE_MOUSE_UP = 'middleMouseUp'; Lb.MOUSE_DOWN = 'mouseDown'; Lb.MOUSE_MOVE = 'mouseMove'; Lb.MOUSE_OUT = 'mouseOut'; Lb.MOUSE_OVER = 'mouseOver'; Lb.MOUSE_UP = 'mouseUp'; Lb.MOUSE_WHEEL = 'mouseWheel'; Lb.RELEASE_OUTSIDE = 'releaseOutside'; Lb.RIGHT_CLICK = 'rightClick'; Lb.RIGHT_MOUSE_DOWN = 'rightMouseDown'; Lb.RIGHT_MOUSE_UP = 'rightMouseUp'; Lb.ROLL_OUT = 'rollOut'; Lb.ROLL_OVER = 'rollOver'; li.NET_STATUS = 'netStatus'; Eg.PROGRESS = 'progress'; Eg.SOCKET_DATA = 'socketData'; ug.CLEAR_DOM = 'clearDOM'; ug.RENDER_CAIRO = 'renderCairo'; ug.RENDER_CANVAS = 'renderCanvas'; ug.RENDER_DOM = 'renderDOM'; ug.RENDER_OPENGL = 'renderOpenGL'; cj.SECURITY_ERROR = 'securityError'; Vd.__meta__ = { fields: { delta: { SuppressWarnings: ['checkstyle:FieldDocComment'] } } }; Vd.TOUCH_BEGIN = 'touchBegin'; Vd.TOUCH_END = 'touchEnd'; Vd.TOUCH_MOVE = 'touchMove'; Vd.TOUCH_OUT = 'touchOut'; Vd.TOUCH_OVER = 'touchOver'; Vd.TOUCH_ROLL_OUT = 'touchRollOut'; Vd.TOUCH_ROLL_OVER = 'touchRollOver'; Vd.TOUCH_TAP = 'touchTap'; Wi.UNCAUGHT_ERROR = 'uncaughtError'; gk.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; hg.__colorMatrixShader = new gk(); be.__meta__ = { statics: { create2D: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, createABCD: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, createOrtho: { SuppressWarnings: ['checkstyle:FieldDocComment'] } } }; sd.MAX_ACTIVE_CHANNELS = 32; sd.__soundChannels = []; sd.__soundTransform = new lf(); jn.VERTEX_BUFFER_STRIDE = 5; hk.__meta__ = { statics: { CONNECT_SUCCESS: { SuppressWarnings: ['checkstyle:FieldDocComment'] } } }; hk.CONNECT_SUCCESS = 'NetConnection.Connect.Success'; kn.__meta__ = { fields: { audioCodec: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, decodedFrames: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, speed: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, requestVideoStatus: { SuppressWarnings: ['checkstyle:FieldDocComment'] } } }; ld.defaultObjectEncoding = 10; Hh.followRedirects = !0; Hh.idleTimeout = 0; Hh.manageCookies = !1; Ti.currentDomain = new Ti(null); wc.avHardwareDisable = !0; wc.hasAccessibility = !1; wc.hasAudio = !0; wc.hasAudioEncoder = !1; wc.hasEmbeddedVideo = !1; wc.hasIME = !1; wc.hasMP3 = !1; wc.hasPrinting = !0; wc.hasScreenBroadcast = !1; wc.hasScreenPlayback = !1; wc.hasStreamingAudio = !1; wc.hasStreamingVideo = !1; wc.hasTLS = !0; wc.hasVideoEncoder = !0; wc.isDebugger = !0; wc.isEmbeddedInAcrobat = !1; wc.localFileReadDisable = !0; wc.maxLevelIDC = 0; wc.playerType = 'PlugIn'; wc.screenColor = 'color'; wc.serverString = ''; wc.supports32BitProcesses = !1; wc.supports64BitProcesses = !1; wc.touchscreenType = 0; wc.__standardDensities = [120, 160, 240, 320, 480, 640, 800, 960]; ik.__meta__ = { obj: { SuppressWarnings: ['checkstyle:UnnecessaryConstructor'] } }; ik.currentDomain = new ik(); cg.useCodePage = !1; Sc.__fontByName = new qa(); Sc.__registeredFonts = []; Ze.__missingFontWarning = new qa(); Qg.__meta__ = { fields: { clone: { SuppressWarnings: ['checkstyle:FieldDocComment'] } } }; jk.CENTER = 0; jk.END = 1; jk.JUSTIFY = 2; jk.LEFT = 3; jk.RIGHT = 4; jk.START = 5; kp.__meta__ = { obj: { SuppressWarnings: [['checkstyle:FieldDocComment', 'checkstyle:Dynamic']] } }; xb.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; xb.__regexAlign = new Ja('align\\s?=\\s?("([^"]+)"|\'([^\']+)\')', 'i'); xb.__regexBreakTag = new Ja('', 'gi'); xb.__regexBlockIndent = new Ja('blockindent\\s?=\\s?("([^"]+)"|\'([^\']+)\')', 'i'); xb.__regexColor = new Ja('color\\s?=\\s?("#([^"]+)"|\'#([^\']+)\')', 'i'); xb.__regexEntities = [ new Ja('"', 'g'), new Ja(''', 'g'), new Ja('&', 'g'), new Ja('<', 'g'), new Ja('>', 'g'), new Ja(' ', 'g') ]; xb.__regexFace = new Ja('face\\s?=\\s?("([^"]+)"|\'([^\']+)\')', 'i'); xb.__regexHTMLTag = new Ja('<.*?>', 'g'); xb.__regexHref = new Ja('href\\s?=\\s?("([^"]+)"|\'([^\']+)\')', 'i'); xb.__regexIndent = new Ja(' indent\\s?=\\s?("([^"]+)"|\'([^\']+)\')', 'i'); xb.__regexLeading = new Ja('leading\\s?=\\s?("([^"]+)"|\'([^\']+)\')', 'i'); xb.__regexLeftMargin = new Ja('leftmargin\\s?=\\s?("([^"]+)"|\'([^\']+)\')', 'i'); xb.__regexRightMargin = new Ja('rightmargin\\s?=\\s?("([^"]+)"|\'([^\']+)\')', 'i'); xb.__regexSize = new Ja('size\\s?=\\s?("([^"]+)"|\'([^\']+)\')', 'i'); xb.__regexTabStops = new Ja('tabstops\\s?=\\s?("([^"]+)"|\'([^\']+)\')', 'i'); Sb.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, fields: { __cairoFont: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; Sb.GUTTER = 2; Sb.UTF8_TAB = 9; Sb.UTF8_ENDLINE = 10; Sb.UTF8_SPACE = 32; Sb.UTF8_HYPHEN = 45; Sb.__defaultFonts = new qa(); Td.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, fields: { glyphs: { SuppressWarnings: ['checkstyle:Dynamic'] }, __handle: { SuppressWarnings: ['checkstyle:Dynamic'] }, __hbBuffer: { SuppressWarnings: ['checkstyle:Dynamic'] }, __hbFont: { SuppressWarnings: ['checkstyle:Dynamic'] }, get_glyphs: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; Td.FT_LOAD_DEFAULT = 0; Td.FT_LOAD_NO_SCALE = 1; Td.FT_LOAD_NO_HINTING = 2; Td.FT_LOAD_RENDER = 4; Td.FT_LOAD_NO_BITMAP = 8; Td.FT_LOAD_VERTICAL_LAYOUT = 16; Td.FT_LOAD_FORCE_AUTOHINT = 32; Td.FT_LOAD_CROP_BITMAP = 64; Td.FT_LOAD_PEDANTIC = 128; Td.FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH = 256; Td.FT_LOAD_NO_RECURSE = 512; Td.FT_LOAD_IGNORE_TRANSFORM = 1024; Td.FT_LOAD_MONOCHROME = 2048; Td.FT_LOAD_LINEAR_DESIGN = 4096; Td.FT_LOAD_NO_AUTOHINT = 8192; Td.FT_LOAD_COLOR = 16384; Td.FT_LOAD_COMPUTE_METRICS = 32768; Td.FT_LOAD_BITMAP_METRICS_ONLY = 65536; Td.FT_LOAD_TARGET_NORMAL = 0; Td.FT_LOAD_TARGET_LIGHT = 0; ln.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Zb.__meta__ = { fields: { addEventListener: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; Zb.isSupported = !0; Zb.numDevices = 0; Zb.__deviceList = []; Zb.__instances = []; Zb.__devices = new Jc(); mn.MAX_BUFFER_SIZE = 32e3; Ga.__meta__ = { statics: { BREAK: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, NUMLOCK: { SuppressWarnings: ['checkstyle:FieldDocComment'] } } }; Ga.NUMBER_0 = 48; Ga.NUMBER_1 = 49; Ga.NUMBER_2 = 50; Ga.NUMBER_3 = 51; Ga.NUMBER_4 = 52; Ga.NUMBER_5 = 53; Ga.NUMBER_6 = 54; Ga.NUMBER_7 = 55; Ga.NUMBER_8 = 56; Ga.NUMBER_9 = 57; Ga.A = 65; Ga.B = 66; Ga.C = 67; Ga.D = 68; Ga.E = 69; Ga.F = 70; Ga.G = 71; Ga.H = 72; Ga.I = 73; Ga.J = 74; Ga.K = 75; Ga.L = 76; Ga.M = 77; Ga.N = 78; Ga.O = 79; Ga.P = 80; Ga.Q = 81; Ga.R = 82; Ga.S = 83; Ga.T = 84; Ga.U = 85; Ga.V = 86; Ga.W = 87; Ga.X = 88; Ga.Y = 89; Ga.Z = 90; Ga.NUMPAD_0 = 96; Ga.NUMPAD_1 = 97; Ga.NUMPAD_2 = 98; Ga.NUMPAD_3 = 99; Ga.NUMPAD_4 = 100; Ga.NUMPAD_5 = 101; Ga.NUMPAD_6 = 102; Ga.NUMPAD_7 = 103; Ga.NUMPAD_8 = 104; Ga.NUMPAD_9 = 105; Ga.NUMPAD_MULTIPLY = 106; Ga.NUMPAD_ADD = 107; Ga.NUMPAD_ENTER = 108; Ga.NUMPAD_SUBTRACT = 109; Ga.NUMPAD_DECIMAL = 110; Ga.NUMPAD_DIVIDE = 111; Ga.F1 = 112; Ga.F2 = 113; Ga.F3 = 114; Ga.F4 = 115; Ga.F5 = 116; Ga.F6 = 117; Ga.F7 = 118; Ga.F8 = 119; Ga.F9 = 120; Ga.F10 = 121; Ga.F11 = 122; Ga.F12 = 123; Ga.F13 = 124; Ga.F14 = 125; Ga.F15 = 126; Ga.BACKSPACE = 8; Ga.TAB = 9; Ga.ALTERNATE = 18; Ga.ENTER = 13; Ga.COMMAND = 15; Ga.SHIFT = 16; Ga.CONTROL = 17; Ga.BREAK = 19; Ga.CAPS_LOCK = 20; Ga.NUMPAD = 21; Ga.ESCAPE = 27; Ga.SPACE = 32; Ga.PAGE_UP = 33; Ga.PAGE_DOWN = 34; Ga.END = 35; Ga.HOME = 36; Ga.LEFT = 37; Ga.RIGHT = 39; Ga.UP = 38; Ga.DOWN = 40; Ga.INSERT = 45; Ga.DELETE = 46; Ga.NUMLOCK = 144; Ga.SEMICOLON = 186; Ga.EQUAL = 187; Ga.COMMA = 188; Ga.MINUS = 189; Ga.PERIOD = 190; Ga.SLASH = 191; Ga.BACKQUOTE = 192; Ga.LEFTBRACKET = 219; Ga.BACKSLASH = 220; Ga.RIGHTBRACKET = 221; Ga.QUOTE = 222; qe.supportsCursor = !0; qe.supportsNativeCursor = !0; qe.__cursor = 'auto'; xf.ARROW = 'arrow'; xf.AUTO = 'auto'; xf.BUTTON = 'button'; xf.HAND = 'hand'; xf.IBEAM = 'ibeam'; xf.__CROSSHAIR = 'crosshair'; xf.__CUSTOM = 'custom'; xf.__MOVE = 'move'; xf.__RESIZE_NESW = 'resize_nesw'; xf.__RESIZE_NS = 'resize_ns'; xf.__RESIZE_NWSE = 'resize_nwse'; xf.__RESIZE_WE = 'resize_we'; xf.__WAIT = 'wait'; xf.__WAIT_ARROW = 'waitarrow'; Y.__meta__ = { obj: { SuppressWarnings: [['checkstyle:ConstantName', 'checkstyle:FieldDocComment']] } }; Y.OPMAP = new qa(); Y.REGMAP = new qa(); Y.SAMPLEMAP = new qa(); Y.MAX_NESTING = 4; Y.MAX_OPCODES = 4096; Y.FRAGMENT = 'fragment'; Y.VERTEX = 'vertex'; Y.SAMPLER_TYPE_SHIFT = 8; Y.SAMPLER_DIM_SHIFT = 12; Y.SAMPLER_SPECIAL_SHIFT = 16; Y.SAMPLER_REPEAT_SHIFT = 20; Y.SAMPLER_MIPMAP_SHIFT = 24; Y.SAMPLER_FILTER_SHIFT = 28; Y.REG_WRITE = 1; Y.REG_READ = 2; Y.REG_FRAG = 32; Y.REG_VERT = 64; Y.OP_SCALAR = 1; Y.OP_SPECIAL_TEX = 8; Y.OP_SPECIAL_MATRIX = 16; Y.OP_FRAG_ONLY = 32; Y.OP_VERT_ONLY = 64; Y.OP_NO_DEST = 128; Y.OP_VERSION2 = 256; Y.OP_INCNEST = 512; Y.OP_DECNEST = 1024; Y.MOV = 'mov'; Y.ADD = 'add'; Y.SUB = 'sub'; Y.MUL = 'mul'; Y.DIV = 'div'; Y.RCP = 'rcp'; Y.MIN = 'min'; Y.MAX = 'max'; Y.FRC = 'frc'; Y.SQT = 'sqt'; Y.RSQ = 'rsq'; Y.POW = 'pow'; Y.LOG = 'log'; Y.EXP = 'exp'; Y.NRM = 'nrm'; Y.SIN = 'sin'; Y.COS = 'cos'; Y.CRS = 'crs'; Y.DP3 = 'dp3'; Y.DP4 = 'dp4'; Y.ABS = 'abs'; Y.NEG = 'neg'; Y.SAT = 'sat'; Y.M33 = 'm33'; Y.M44 = 'm44'; Y.M34 = 'm34'; Y.DDX = 'ddx'; Y.DDY = 'ddy'; Y.IFE = 'ife'; Y.INE = 'ine'; Y.IFG = 'ifg'; Y.IFL = 'ifl'; Y.IEG = 'ieg'; Y.IEL = 'iel'; Y.ELS = 'els'; Y.EIF = 'eif'; Y.TED = 'ted'; Y.KIL = 'kil'; Y.TEX = 'tex'; Y.SGE = 'sge'; Y.SLT = 'slt'; Y.SGN = 'sgn'; Y.SEQ = 'seq'; Y.SNE = 'sne'; Y.VA = 'va'; Y.VC = 'vc'; Y.VT = 'vt'; Y.VO = 'vo'; Y.VI = 'vi'; Y.FC = 'fc'; Y.FT = 'ft'; Y.FS = 'fs'; Y.FO = 'fo'; Y.FD = 'fd'; Y.IID = 'iid'; Y.D2 = '2d'; Y.D3 = '3d'; Y.CUBE = 'cube'; Y.MIPNEAREST = 'mipnearest'; Y.MIPLINEAR = 'miplinear'; Y.MIPNONE = 'mipnone'; Y.NOMIP = 'nomip'; Y.NEAREST = 'nearest'; Y.LINEAR = 'linear'; Y.ANISOTROPIC2X = 'anisotropic2x'; Y.ANISOTROPIC4X = 'anisotropic4x'; Y.ANISOTROPIC8X = 'anisotropic8x'; Y.ANISOTROPIC16X = 'anisotropic16x'; Y.CENTROID = 'centroid'; Y.SINGLE = 'single'; Y.IGNORESAMPLER = 'ignoresampler'; Y.REPEAT = 'repeat'; Y.WRAP = 'wrap'; Y.CLAMP = 'clamp'; Y.REPEAT_U_CLAMP_V = 'repeat_u_clamp_v'; Y.CLAMP_U_REPEAT_V = 'clamp_u_repeat_v'; Y.RGBA = 'rgba'; Y.COMPRESSED = 'compressed'; Y.COMPRESSEDALPHA = 'compressedalpha'; Y.DXT1 = 'dxt1'; Y.DXT5 = 'dxt5'; Y.VIDEO = 'video'; Y.initialized = !1; ac.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; qf.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Zc.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Da.cache = new on(); Da.dispatcher = new db(); zb.__bytePointer = new Uf(null, 0); pc.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; pc.defaultObjectEncoding = 10; hj.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; fj.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; gj.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Tw.BIG_ENDIAN = 0; Tw.LITTLE_ENDIAN = 1; rn.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; sn.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] } }; Dc.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, statics: { notImplemented: { SuppressWarnings: ['checkstyle:NullableParameter'] } } }; Dc.__sentWarnings = new qa(); fi.__meta__ = { obj: { SuppressWarnings: ['checkstyle:FieldDocComment'] }, fields: { touch: { SuppressWarnings: ['checkstyle:Dynamic'] } } }; fi.__pool = new ud( function () { return new fi(); }, function (a) { a.reset(); } ); Jg.VAL_ABSENT = -2147483648; Jg.EMPTY_SLOT = -1; Jg.NULL_POINTER = -1; tg.KEY_ABSENT = -2147483648; tg.VAL_ABSENT = -2147483648; tg.EMPTY_SLOT = -1; tg.NULL_POINTER = -1; fb.DEFAULT_PRECISION = 6; fb.DEFAULT_NUM_EXP_DIGITS = 2; fb._initialized = !1; fb.PAD_0 = 0; fb.PAD_SPACE = 20; Hg.FIXED = 0; Hg.MILD = -1; Hg.NORMAL = -2; Hg.DOUBLE = -3; Ib.PI = 3.141592653589793; Ib.PI_H = 1.5707963267948966; Ib.LN_2 = 0.6931471805599453; Ib.LN_2_10 = 6.931471805599453; Ib.overshoot = 1.70158; Ib.amplitude = 1; Ib.period = 3e-4; za.main(); })( 'undefined' != typeof y ? y : 'undefined' != typeof window ? window : 'undefined' != typeof self ? self : this, 'undefined' != typeof window ? window : 'undefined' != typeof O ? O : 'undefined' != typeof self ? self : this ); }; ba.lime.embed = function (R) { var O = {}, Q = ba.lime.$scripts[R]; if (!Q) throw Error('Cannot find project name "' + R + '"'); Q(O, y); for (var ha in O) ba[ha] = ba[ha] || O[ha]; (Q = O.lime || window.lime) && Q.embed && this != Q.embed && Q.embed.apply(Q, arguments); return O; }; 'function' == typeof define && define.amd && (define([], function () { return ba.lime; }), (define.__amd = define.amd), (define.amd = null)); })( 'undefined' != typeof exports ? exports : 'function' == typeof define && define.amd ? {} : 'undefined' != typeof window ? window : 'undefined' != typeof self ? self : this, 'undefined' != typeof window ? window : 'undefined' != typeof global ? global : 'undefined' != typeof self ? self : this ); !(function () { var ba = function () { this.init(); }; ba.prototype = { init: function () { var h = this || y; return ( (h._counter = 1e3), (h._html5AudioPool = []), (h.html5PoolSize = 10), (h._codecs = {}), (h._howls = []), (h._muted = !1), (h._volume = 1), (h._canPlayEvent = 'canplaythrough'), (h._navigator = 'undefined' != typeof window && window.navigator ? window.navigator : null), (h.masterGain = null), (h.noAudio = !1), (h.usingWebAudio = !0), (h.autoSuspend = !0), (h.ctx = null), (h.autoUnlock = !0), h._setup(), h ); }, volume: function (q) { var r = this || y; if (((q = parseFloat(q)), r.ctx || h(), void 0 !== q && 0 <= q && 1 >= q)) { if (((r._volume = q), r._muted)) return r; r.usingWebAudio && r.masterGain.gain.setValueAtTime(q, y.ctx.currentTime); for (var w = 0; w < r._howls.length; w++) if (!r._howls[w]._webAudio) for (var za = r._howls[w]._getSoundIds(), Ja = 0; Ja < za.length; Ja++) { var A = r._howls[w]._soundById(za[Ja]); A && A._node && (A._node.volume = A._volume * q); } return r; } return r._volume; }, mute: function (q) { var r = this || y; r.ctx || h(); r._muted = q; r.usingWebAudio && r.masterGain.gain.setValueAtTime(q ? 0 : r._volume, y.ctx.currentTime); for (var w = 0; w < r._howls.length; w++) if (!r._howls[w]._webAudio) for (var za = r._howls[w]._getSoundIds(), Ja = 0; Ja < za.length; Ja++) { var A = r._howls[w]._soundById(za[Ja]); A && A._node && (A._node.muted = !!q || A._muted); } return r; }, unload: function () { for (var q = this || y, r = q._howls.length - 1; 0 <= r; r--) q._howls[r].unload(); return ( q.usingWebAudio && q.ctx && void 0 !== q.ctx.close && (q.ctx.close(), (q.ctx = null), h()), q ); }, codecs: function (h) { return (this || y)._codecs[h.replace(/^x-/, '')]; }, _setup: function () { var h = this || y; if ( ((h.state = h.ctx ? h.ctx.state || 'suspended' : 'suspended'), h._autoSuspend(), !h.usingWebAudio) ) if ('undefined' != typeof Audio) try { var q = new Audio(); void 0 === q.oncanplaythrough && (h._canPlayEvent = 'canplay'); } catch (I) { h.noAudio = !0; } else h.noAudio = !0; try { (q = new Audio()), q.muted && (h.noAudio = !0); } catch (I) {} return h.noAudio || h._setupCodecs(), h; }, _setupCodecs: function () { var h = this || y, q = null; try { q = 'undefined' != typeof Audio ? new Audio() : null; } catch (Ja) { return h; } if (!q || 'function' != typeof q.canPlayType) return h; var r = q.canPlayType('audio/mpeg;').replace(/^no$/, ''), za = h._navigator && h._navigator.userAgent.match(/OPR\/([0-6].)/g); za = za && 33 > parseInt(za[0].split('/')[1], 10); return ( (h._codecs = { mp3: !(za || (!r && !q.canPlayType('audio/mp3;').replace(/^no$/, ''))), mpeg: !!r, opus: !!q.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/, ''), ogg: !!q.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ''), oga: !!q.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ''), wav: !!q.canPlayType('audio/wav; codecs="1"').replace(/^no$/, ''), aac: !!q.canPlayType('audio/aac;').replace(/^no$/, ''), caf: !!q.canPlayType('audio/x-caf;').replace(/^no$/, ''), m4a: !!( q.canPlayType('audio/x-m4a;') || q.canPlayType('audio/m4a;') || q.canPlayType('audio/aac;') ).replace(/^no$/, ''), mp4: !!( q.canPlayType('audio/x-mp4;') || q.canPlayType('audio/mp4;') || q.canPlayType('audio/aac;') ).replace(/^no$/, ''), weba: !!q.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, ''), webm: !!q.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, ''), dolby: !!q.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/, ''), flac: !!(q.canPlayType('audio/x-flac;') || q.canPlayType('audio/flac;')).replace( /^no$/, '' ) }), h ); }, _unlockAudio: function () { var h = this || y, q = /iPhone|iPad|iPod|Android|BlackBerry|BB10|Silk|Mobi|Chrome|Safari/i.test( h._navigator && h._navigator.userAgent ); if (!h._audioUnlocked && h.ctx && q) { h._audioUnlocked = !1; h.autoUnlock = !1; h._mobileUnloaded || 44100 === h.ctx.sampleRate || ((h._mobileUnloaded = !0), h.unload()); h._scratchBuffer = h.ctx.createBuffer(1, 1, 22050); var r = function (q) { for (q = 0; q < h.html5PoolSize; q++) { var w = new Audio(); w._unlocked = !0; h._releaseHtml5Audio(w); } for (q = 0; q < h._howls.length; q++) if (!h._howls[q]._webAudio) { w = h._howls[q]._getSoundIds(); for (var E = 0; E < w.length; E++) { var I = h._howls[q]._soundById(w[E]); I && I._node && !I._node._unlocked && ((I._node._unlocked = !0), I._node.load()); } } h._autoResume(); var y = h.ctx.createBufferSource(); y.buffer = h._scratchBuffer; y.connect(h.ctx.destination); void 0 === y.start ? y.noteOn(0) : y.start(0); 'function' == typeof h.ctx.resume && h.ctx.resume(); y.onended = function () { y.disconnect(0); h._audioUnlocked = !0; document.removeEventListener('touchstart', r, !0); document.removeEventListener('touchend', r, !0); document.removeEventListener('click', r, !0); for (var q = 0; q < h._howls.length; q++) h._howls[q]._emit('unlock'); }; }; return ( document.addEventListener('touchstart', r, !0), document.addEventListener('touchend', r, !0), document.addEventListener('click', r, !0), h ); } }, _obtainHtml5Audio: function () { var h = this || y; if (h._html5AudioPool.length) return h._html5AudioPool.pop(); h = new Audio().play(); return ( h && 'undefined' != typeof Promise && (h instanceof Promise || 'function' == typeof h.then) && h.catch(function () { console.warn('HTML5 Audio pool exhausted, returning potentially locked audio object.'); }), new Audio() ); }, _releaseHtml5Audio: function (h) { var q = this || y; return h._unlocked && q._html5AudioPool.push(h), q; }, _autoSuspend: function () { var h = this; if (h.autoSuspend && h.ctx && void 0 !== h.ctx.suspend && y.usingWebAudio) { for (var q = 0; q < h._howls.length; q++) if (h._howls[q]._webAudio) for (var r = 0; r < h._howls[q]._sounds.length; r++) if (!h._howls[q]._sounds[r]._paused) return h; return ( h._suspendTimer && clearTimeout(h._suspendTimer), (h._suspendTimer = setTimeout(function () { h.autoSuspend && ((h._suspendTimer = null), (h.state = 'suspending'), h.ctx.suspend().then(function () { h.state = 'suspended'; h._resumeAfterSuspend && (delete h._resumeAfterSuspend, h._autoResume()); })); }, 3e4)), h ); } }, _autoResume: function () { var h = this; if (h.ctx && void 0 !== h.ctx.resume && y.usingWebAudio) return ( 'running' === h.state && h._suspendTimer ? (clearTimeout(h._suspendTimer), (h._suspendTimer = null)) : 'suspended' === h.state ? (h.ctx.resume().then(function () { h.state = 'running'; for (var q = 0; q < h._howls.length; q++) h._howls[q]._emit('resume'); }), h._suspendTimer && (clearTimeout(h._suspendTimer), (h._suspendTimer = null))) : 'suspending' === h.state && (h._resumeAfterSuspend = !0), h ); } }; var y = new ba(), R = function (h) { if (!h.src || 0 === h.src.length) return void console.error('An array of source files must be passed with any new Howl.'); this.init(h); }; R.prototype = { init: function (q) { var r = this; return ( y.ctx || h(), (r._autoplay = q.autoplay || !1), (r._format = 'string' != typeof q.format ? q.format : [q.format]), (r._html5 = q.html5 || !1), (r._muted = q.mute || !1), (r._loop = q.loop || !1), (r._pool = q.pool || 5), (r._preload = 'boolean' != typeof q.preload || q.preload), (r._rate = q.rate || 1), (r._sprite = q.sprite || {}), (r._src = 'string' != typeof q.src ? q.src : [q.src]), (r._volume = void 0 !== q.volume ? q.volume : 1), (r._xhrWithCredentials = q.xhrWithCredentials || !1), (r._duration = 0), (r._state = 'unloaded'), (r._sounds = []), (r._endTimers = {}), (r._queue = []), (r._playLock = !1), (r._onend = q.onend ? [{ fn: q.onend }] : []), (r._onfade = q.onfade ? [{ fn: q.onfade }] : []), (r._onload = q.onload ? [{ fn: q.onload }] : []), (r._onloaderror = q.onloaderror ? [{ fn: q.onloaderror }] : []), (r._onplayerror = q.onplayerror ? [{ fn: q.onplayerror }] : []), (r._onpause = q.onpause ? [{ fn: q.onpause }] : []), (r._onplay = q.onplay ? [{ fn: q.onplay }] : []), (r._onstop = q.onstop ? [{ fn: q.onstop }] : []), (r._onmute = q.onmute ? [{ fn: q.onmute }] : []), (r._onvolume = q.onvolume ? [{ fn: q.onvolume }] : []), (r._onrate = q.onrate ? [{ fn: q.onrate }] : []), (r._onseek = q.onseek ? [{ fn: q.onseek }] : []), (r._onunlock = q.onunlock ? [{ fn: q.onunlock }] : []), (r._onresume = []), (r._webAudio = y.usingWebAudio && !r._html5), void 0 !== y.ctx && y.ctx && y.autoUnlock && y._unlockAudio(), y._howls.push(r), r._autoplay && r._queue.push({ event: 'play', action: function () { r.play(); } }), r._preload && r.load(), r ); }, load: function () { var h = null; if (y.noAudio) return void this._emit('loaderror', null, 'No audio support.'); 'string' == typeof this._src && (this._src = [this._src]); for (var q = 0; q < this._src.length; q++) { var r; if (this._format && this._format[q]) var za = this._format[q]; else { if ('string' != typeof (r = this._src[q])) { this._emit('loaderror', null, 'Non-string found in selected audio sources - ignoring.'); continue; } (za = /^data:audio\/([^;,]+);/i.exec(r)) || (za = /\.([^.]+)$/.exec(r.split('?', 1)[0])); za && (za = za[1].toLowerCase()); } if ( (za || console.warn( 'No file extension was found. Consider using the "format" property or specify an extension.' ), za && y.codecs(za)) ) { h = this._src[q]; break; } } return h ? ((this._src = h), (this._state = 'loading'), 'https:' === window.location.protocol && 'http:' === h.slice(0, 5) && ((this._html5 = !0), (this._webAudio = !1)), new O(this), this._webAudio && ha(this), this) : void this._emit('loaderror', null, 'No codec support for selected audio sources.'); }, play: function (h, q) { var r = this, w = null; if ('number' == typeof h) (w = h), (h = null); else { if ('string' == typeof h && 'loaded' === r._state && !r._sprite[h]) return null; if (void 0 === h && ((h = '__default'), !r._playLock)) { for (var E = 0, A = 0; A < r._sounds.length; A++) r._sounds[A]._paused && !r._sounds[A]._ended && (E++, (w = r._sounds[A]._id)); 1 === E ? (h = null) : (w = null); } } var Q = w ? r._soundById(w) : r._inactiveSound(); if (!Q) return null; if ((w && !h && (h = Q._sprite || '__default'), 'loaded' !== r._state)) { Q._sprite = h; Q._ended = !1; var R = Q._id; return ( r._queue.push({ event: 'play', action: function () { r.play(R); } }), R ); } if (w && !Q._paused) return q || r._loadQueue('play'), Q._id; r._webAudio && y._autoResume(); var O = Math.max(0, 0 < Q._seek ? Q._seek : r._sprite[h][0] / 1e3), Z = Math.max(0, (r._sprite[h][0] + r._sprite[h][1]) / 1e3 - O), ba = (1e3 * Z) / Math.abs(Q._rate), B = r._sprite[h][0] / 1e3, ha = (r._sprite[h][0] + r._sprite[h][1]) / 1e3, Ka = !(!Q._loop && !r._sprite[h][2]); Q._sprite = h; Q._ended = !1; var Sa = function () { Q._paused = !1; Q._seek = O; Q._start = B; Q._stop = ha; Q._loop = Ka; }; if (O >= ha) return void r._ended(Q); var U = Q._node; if (r._webAudio) (w = function () { r._playLock = !1; Sa(); r._refreshBuffer(Q); U.gain.setValueAtTime(Q._muted || r._muted ? 0 : Q._volume, y.ctx.currentTime); Q._playStart = y.ctx.currentTime; void 0 === U.bufferSource.start ? Q._loop ? U.bufferSource.noteGrainOn(0, O, 86400) : U.bufferSource.noteGrainOn(0, O, Z) : Q._loop ? U.bufferSource.start(0, O, 86400) : U.bufferSource.start(0, O, Z); ba !== 1 / 0 && (r._endTimers[Q._id] = setTimeout(r._ended.bind(r, Q), ba)); q || setTimeout(function () { r._emit('play', Q._id); r._loadQueue(); }, 0); }), 'running' === y.state ? w() : ((r._playLock = !0), r.once('resume', w), r._clearTimer(Q._id)); else { var sb = function () { U.currentTime = O; U.muted = Q._muted || r._muted || y._muted || U.muted; U.volume = Q._volume * y.volume(); U.playbackRate = Q._rate; try { var w = U.play(); if ( (w && 'undefined' != typeof Promise && (w instanceof Promise || 'function' == typeof w.then) ? ((r._playLock = !0), Sa(), w .then(function () { r._playLock = !1; U._unlocked = !0; q || (r._emit('play', Q._id), r._loadQueue()); }) .catch(function () { r._playLock = !1; r._emit( 'playerror', Q._id, 'Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.' ); Q._ended = !0; Q._paused = !0; })) : q || ((r._playLock = !1), Sa(), r._emit('play', Q._id), r._loadQueue()), (U.playbackRate = Q._rate), U.paused) ) return void r._emit( 'playerror', Q._id, 'Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.' ); '__default' !== h || Q._loop ? (r._endTimers[Q._id] = setTimeout(r._ended.bind(r, Q), ba)) : ((r._endTimers[Q._id] = function () { r._ended(Q); U.removeEventListener('ended', r._endTimers[Q._id], !1); }), U.addEventListener('ended', r._endTimers[Q._id], !1)); } catch (ne) { r._emit('playerror', Q._id, ne); } }; w = (window && window.ejecta) || (!U.readyState && y._navigator.isCocoonJS); if (3 <= U.readyState || w) sb(); else { r._playLock = !0; var ma = function () { sb(); U.removeEventListener(y._canPlayEvent, ma, !1); }; U.addEventListener(y._canPlayEvent, ma, !1); r._clearTimer(Q._id); } } return Q._id; }, pause: function (h, q) { var r = this; if ('loaded' !== r._state || r._playLock) return ( r._queue.push({ event: 'pause', action: function () { r.pause(h); } }), r ); for (var w = r._getSoundIds(h), E = 0; E < w.length; E++) { r._clearTimer(w[E]); var A = r._soundById(w[E]); if ( A && !A._paused && ((A._seek = r.seek(w[E])), (A._rateSeek = 0), (A._paused = !0), r._stopFade(w[E]), A._node) ) if (r._webAudio) { if (!A._node.bufferSource) continue; void 0 === A._node.bufferSource.stop ? A._node.bufferSource.noteOff(0) : A._node.bufferSource.stop(0); r._cleanBuffer(A._node); } else (isNaN(A._node.duration) && A._node.duration !== 1 / 0) || A._node.pause(); q || r._emit('pause', A ? A._id : null); } return r; }, stop: function (h, q) { var r = this; if ('loaded' !== r._state || r._playLock) return ( r._queue.push({ event: 'stop', action: function () { r.stop(h); } }), r ); for (var w = r._getSoundIds(h), E = 0; E < w.length; E++) { r._clearTimer(w[E]); var A = r._soundById(w[E]); A && ((A._seek = A._start || 0), (A._rateSeek = 0), (A._paused = !0), (A._ended = !0), r._stopFade(w[E]), A._node && (r._webAudio ? A._node.bufferSource && (void 0 === A._node.bufferSource.stop ? A._node.bufferSource.noteOff(0) : A._node.bufferSource.stop(0), r._cleanBuffer(A._node)) : (isNaN(A._node.duration) && A._node.duration !== 1 / 0) || ((A._node.currentTime = A._start || 0), A._node.pause())), q || r._emit('stop', A._id)); } return r; }, mute: function (h, q) { var r = this; if ('loaded' !== r._state || r._playLock) return ( r._queue.push({ event: 'mute', action: function () { r.mute(h, q); } }), r ); if (void 0 === q) { if ('boolean' != typeof h) return r._muted; r._muted = h; } for (var w = r._getSoundIds(q), E = 0; E < w.length; E++) { var A = r._soundById(w[E]); A && ((A._muted = h), A._interval && r._stopFade(A._id), r._webAudio && A._node ? A._node.gain.setValueAtTime(h ? 0 : A._volume, y.ctx.currentTime) : A._node && (A._node.muted = !!y._muted || h), r._emit('mute', A._id)); } return r; }, volume: function () { var h, q, r = this, Q = arguments; if (0 === Q.length) return r._volume; 1 === Q.length || (2 === Q.length && void 0 === Q[1]) ? 0 <= r._getSoundIds().indexOf(Q[0]) ? (q = parseInt(Q[0], 10)) : (h = parseFloat(Q[0])) : 2 <= Q.length && ((h = parseFloat(Q[0])), (q = parseInt(Q[1], 10))); var Ja; if (!(void 0 !== h && 0 <= h && 1 >= h)) return (Ja = q ? r._soundById(q) : r._sounds[0]), Ja ? Ja._volume : 0; if ('loaded' !== r._state || r._playLock) return ( r._queue.push({ event: 'volume', action: function () { r.volume.apply(r, Q); } }), r ); void 0 === q && (r._volume = h); q = r._getSoundIds(q); for (var A = 0; A < q.length; A++) (Ja = r._soundById(q[A])) && ((Ja._volume = h), Q[2] || r._stopFade(q[A]), r._webAudio && Ja._node && !Ja._muted ? Ja._node.gain.setValueAtTime(h, y.ctx.currentTime) : Ja._node && !Ja._muted && (Ja._node.volume = h * y.volume()), r._emit('volume', Ja._id)); return r; }, fade: function (h, q, r, Q) { var w = this; if ('loaded' !== w._state || w._playLock) return ( w._queue.push({ event: 'fade', action: function () { w.fade(h, q, r, Q); } }), w ); h = parseFloat(h); q = parseFloat(q); r = parseFloat(r); w.volume(h, Q); for (var E = w._getSoundIds(Q), I = 0; I < E.length; I++) { var za = w._soundById(E[I]); if (za) { if ((Q || w._stopFade(E[I]), w._webAudio && !za._muted)) { var O = y.ctx.currentTime, Z = O + r / 1e3; za._volume = h; za._node.gain.setValueAtTime(h, O); za._node.gain.linearRampToValueAtTime(q, Z); } w._startFadeInterval(za, h, q, r, E[I], void 0 === Q); } } return w; }, _startFadeInterval: function (h, q, r, y, Q, A) { var w = this, E = q, I = r - q; Q = Math.abs(I / 0.01); Q = Math.max(4, 0 < Q ? y / Q : y); var Z = Date.now(); h._fadeTo = r; h._interval = setInterval(function () { var Q = (Date.now() - Z) / y; Z = Date.now(); E += I * Q; E = Math.max(0, E); E = Math.min(1, E); E = Math.round(100 * E) / 100; w._webAudio ? (h._volume = E) : w.volume(E, h._id, !0); A && (w._volume = E); ((r < q && E <= r) || (r > q && E >= r)) && (clearInterval(h._interval), (h._interval = null), (h._fadeTo = null), w.volume(r, h._id), w._emit('fade', h._id)); }, Q); }, _stopFade: function (h) { var q = this._soundById(h); return ( q && q._interval && (this._webAudio && q._node.gain.cancelScheduledValues(y.ctx.currentTime), clearInterval(q._interval), (q._interval = null), this.volume(q._fadeTo, h), (q._fadeTo = null), this._emit('fade', h)), this ); }, loop: function () { var h, q, r, y = arguments; if (0 === y.length) return this._loop; if (1 === y.length) { if ('boolean' != typeof y[0]) return !!(r = this._soundById(parseInt(y[0], 10))) && r._loop; this._loop = h = y[0]; } else 2 === y.length && ((h = y[0]), (q = parseInt(y[1], 10))); q = this._getSoundIds(q); for (y = 0; y < q.length; y++) (r = this._soundById(q[y])) && ((r._loop = h), this._webAudio && r._node && r._node.bufferSource && ((r._node.bufferSource.loop = h), h && ((r._node.bufferSource.loopStart = r._start || 0), (r._node.bufferSource.loopEnd = r._stop)))); return this; }, rate: function () { var h, q, r = this, Q = arguments; 0 === Q.length ? (q = r._sounds[0]._id) : 1 === Q.length ? 0 <= r._getSoundIds().indexOf(Q[0]) ? (q = parseInt(Q[0], 10)) : (h = parseFloat(Q[0])) : 2 === Q.length && ((h = parseFloat(Q[0])), (q = parseInt(Q[1], 10))); var O; if ('number' != typeof h) return (O = r._soundById(q)), O ? O._rate : r._rate; if ('loaded' !== r._state || r._playLock) return ( r._queue.push({ event: 'rate', action: function () { r.rate.apply(r, Q); } }), r ); void 0 === q && (r._rate = h); q = r._getSoundIds(q); for (var A = 0; A < q.length; A++) if ((O = r._soundById(q[A]))) { r.playing(q[A]) && ((O._rateSeek = r.seek(q[A])), (O._playStart = r._webAudio ? y.ctx.currentTime : O._playStart)); O._rate = h; r._webAudio && O._node && O._node.bufferSource ? O._node.bufferSource.playbackRate.setValueAtTime(h, y.ctx.currentTime) : O._node && (O._node.playbackRate = h); var R = r.seek(q[A]); R = (1e3 * ((r._sprite[O._sprite][0] + r._sprite[O._sprite][1]) / 1e3 - R)) / Math.abs(O._rate); (!r._endTimers[q[A]] && O._paused) || (r._clearTimer(q[A]), (r._endTimers[q[A]] = setTimeout(r._ended.bind(r, O), R))); r._emit('rate', O._id); } return r; }, seek: function () { var h, q, r = this, Q = arguments; 0 === Q.length ? (q = r._sounds[0]._id) : 1 === Q.length ? 0 <= r._getSoundIds().indexOf(Q[0]) ? (q = parseInt(Q[0], 10)) : r._sounds.length && ((q = r._sounds[0]._id), (h = parseFloat(Q[0]))) : 2 === Q.length && ((h = parseFloat(Q[0])), (q = parseInt(Q[1], 10))); if (void 0 === q) return r; if ('loaded' !== r._state || r._playLock) return ( r._queue.push({ event: 'seek', action: function () { r.seek.apply(r, Q); } }), r ); var O = r._soundById(q); if (O) { if (!('number' == typeof h && 0 <= h)) return r._webAudio ? ((h = r.playing(q) ? y.ctx.currentTime - O._playStart : 0), O._seek + ((O._rateSeek ? O._rateSeek - O._seek : 0) + h * Math.abs(O._rate))) : O._node.currentTime; var A = r.playing(q); A && r.pause(q, !0); O._seek = h; O._ended = !1; r._clearTimer(q); r._webAudio || !O._node || isNaN(O._node.duration) || (O._node.currentTime = h); var R = function () { r._emit('seek', q); A && r.play(q, !0); }; if (A && !r._webAudio) { var ba = function () { r._playLock ? setTimeout(ba, 0) : R(); }; setTimeout(ba, 0); } else R(); } return r; }, playing: function (h) { if ('number' == typeof h) return (h = this._soundById(h)), !!h && !h._paused; for (h = 0; h < this._sounds.length; h++) if (!this._sounds[h]._paused) return !0; return !1; }, duration: function (h) { var q = this._duration; h = this._soundById(h); return h && (q = this._sprite[h._sprite][1] / 1e3), q; }, state: function () { return this._state; }, unload: function () { for (var h = this._sounds, q = 0; q < h.length; q++) (h[q]._paused || this.stop(h[q]._id), this._webAudio) || (/MSIE |Trident\//.test(y._navigator && y._navigator.userAgent) || (h[q]._node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA'), h[q]._node.removeEventListener('error', h[q]._errorFn, !1), h[q]._node.removeEventListener(y._canPlayEvent, h[q]._loadFn, !1), y._releaseHtml5Audio(h[q]._node)), delete h[q]._node, this._clearTimer(h[q]._id); q = y._howls.indexOf(this); 0 <= q && y._howls.splice(q, 1); h = !0; for (q = 0; q < y._howls.length; q++) if (y._howls[q]._src === this._src || 0 <= this._src.indexOf(y._howls[q]._src)) { h = !1; break; } return ( Q && h && delete Q[this._src], (y.noAudio = !1), (this._state = 'unloaded'), (this._sounds = []), null ); }, on: function (h, q, r, y) { h = this['_on' + h]; return ( 'function' == typeof q && h.push(y ? { id: r, fn: q, once: y } : { id: r, fn: q }), this ); }, off: function (h, q, r) { var w = this['_on' + h]; if (('number' == typeof q && ((r = q), (q = null)), q || r)) for (h = 0; h < w.length; h++) { var E = r === w[h].id; if ((q === w[h].fn && E) || (!q && E)) { w.splice(h, 1); break; } } else if (h) this['_on' + h] = []; else for (q = Object.keys(this), h = 0; h < q.length; h++) 0 === q[h].indexOf('_on') && Array.isArray(this[q[h]]) && (this[q[h]] = []); return this; }, once: function (h, q, r) { return this.on(h, q, r, 1), this; }, _emit: function (h, q, r) { for (var w = this['_on' + h], E = w.length - 1; 0 <= E; E--) (w[E].id && w[E].id !== q && 'load' !== h) || (setTimeout( function (h) { h.call(this, q, r); }.bind(this, w[E].fn), 0 ), w[E].once && this.off(h, w[E].fn, w[E].id)); return this._loadQueue(h), this; }, _loadQueue: function (h) { if (0 < this._queue.length) { var q = this._queue[0]; q.event === h && (this._queue.shift(), this._loadQueue()); h || q.action(); } return this; }, _ended: function (h) { var q = h._sprite; if ( !this._webAudio && h._node && !h._node.paused && !h._node.ended && h._node.currentTime < h._stop ) return setTimeout(this._ended.bind(this, h), 100), this; q = !(!h._loop && !this._sprite[q][2]); if ( (this._emit('end', h._id), !this._webAudio && q && this.stop(h._id, !0).play(h._id), this._webAudio && q) ) { this._emit('play', h._id); h._seek = h._start || 0; h._rateSeek = 0; h._playStart = y.ctx.currentTime; var r = (1e3 * (h._stop - h._start)) / Math.abs(h._rate); this._endTimers[h._id] = setTimeout(this._ended.bind(this, h), r); } return ( this._webAudio && !q && ((h._paused = !0), (h._ended = !0), (h._seek = h._start || 0), (h._rateSeek = 0), this._clearTimer(h._id), this._cleanBuffer(h._node), y._autoSuspend()), this._webAudio || q || this.stop(h._id, !0), this ); }, _clearTimer: function (h) { if (this._endTimers[h]) { if ('function' != typeof this._endTimers[h]) clearTimeout(this._endTimers[h]); else { var q = this._soundById(h); q && q._node && q._node.removeEventListener('ended', this._endTimers[h], !1); } delete this._endTimers[h]; } return this; }, _soundById: function (h) { for (var q = 0; q < this._sounds.length; q++) if (h === this._sounds[q]._id) return this._sounds[q]; return null; }, _inactiveSound: function () { this._drain(); for (var h = 0; h < this._sounds.length; h++) if (this._sounds[h]._ended) return this._sounds[h].reset(); return new O(this); }, _drain: function () { var h = this._pool, q = 0, r; if (!(this._sounds.length < h)) { for (r = 0; r < this._sounds.length; r++) this._sounds[r]._ended && q++; for (r = this._sounds.length - 1; 0 <= r && !(q <= h); r--) this._sounds[r]._ended && (this._webAudio && this._sounds[r]._node && this._sounds[r]._node.disconnect(0), this._sounds.splice(r, 1), q--); } }, _getSoundIds: function (h) { if (void 0 === h) { h = []; for (var q = 0; q < this._sounds.length; q++) h.push(this._sounds[q]._id); return h; } return [h]; }, _refreshBuffer: function (h) { return ( (h._node.bufferSource = y.ctx.createBufferSource()), (h._node.bufferSource.buffer = Q[this._src]), h._panner ? h._node.bufferSource.connect(h._panner) : h._node.bufferSource.connect(h._node), (h._node.bufferSource.loop = h._loop), h._loop && ((h._node.bufferSource.loopStart = h._start || 0), (h._node.bufferSource.loopEnd = h._stop || 0)), h._node.bufferSource.playbackRate.setValueAtTime(h._rate, y.ctx.currentTime), this ); }, _cleanBuffer: function (h) { var q = y._navigator && 0 <= y._navigator.vendor.indexOf('Apple'); if ( y._scratchBuffer && h.bufferSource && ((h.bufferSource.onended = null), h.bufferSource.disconnect(0), q) ) try { h.bufferSource.buffer = y._scratchBuffer; } catch (I) {} return (h.bufferSource = null), this; } }; var O = function (h) { this._parent = h; this.init(); }; O.prototype = { init: function () { var h = this._parent; return ( (this._muted = h._muted), (this._loop = h._loop), (this._volume = h._volume), (this._rate = h._rate), (this._seek = 0), (this._paused = !0), (this._ended = !0), (this._sprite = '__default'), (this._id = ++y._counter), h._sounds.push(this), this.create(), this ); }, create: function () { var h = this._parent, q = y._muted || this._muted || this._parent._muted ? 0 : this._volume; return ( h._webAudio ? ((this._node = void 0 === y.ctx.createGain ? y.ctx.createGainNode() : y.ctx.createGain()), this._node.gain.setValueAtTime(q, y.ctx.currentTime), (this._node.paused = !0), this._node.connect(y.masterGain)) : ((this._node = y._obtainHtml5Audio()), (this._errorFn = this._errorListener.bind(this)), this._node.addEventListener('error', this._errorFn, !1), (this._loadFn = this._loadListener.bind(this)), this._node.addEventListener(y._canPlayEvent, this._loadFn, !1), (this._node.src = h._src), (this._node.preload = 'auto'), (this._node.volume = q * y.volume()), this._node.load()), this ); }, reset: function () { var h = this._parent; return ( (this._muted = h._muted), (this._loop = h._loop), (this._volume = h._volume), (this._rate = h._rate), (this._seek = 0), (this._rateSeek = 0), (this._paused = !0), (this._ended = !0), (this._sprite = '__default'), (this._id = ++y._counter), this ); }, _errorListener: function () { this._parent._emit('loaderror', this._id, this._node.error ? this._node.error.code : 0); this._node.removeEventListener('error', this._errorFn, !1); }, _loadListener: function () { var h = this._parent; h._duration = Math.ceil(10 * this._node.duration) / 10; 0 === Object.keys(h._sprite).length && (h._sprite = { __default: [0, 1e3 * h._duration] }); 'loaded' !== h._state && ((h._state = 'loaded'), h._emit('load'), h._loadQueue()); this._node.removeEventListener(y._canPlayEvent, this._loadFn, !1); } }; var Q = {}, ha = function (h) { var w = h._src; if (Q[w]) return (h._duration = Q[w].duration), void q(h); if (/^data:[^;]+;base64,/.test(w)) { for (var y = atob(w.split(',')[1]), O = new Uint8Array(y.length), R = 0; R < y.length; ++R) O[R] = y.charCodeAt(R); Ka(O.buffer, h); } else { var A = new XMLHttpRequest(); A.open('GET', w, !0); A.withCredentials = h._xhrWithCredentials; A.responseType = 'arraybuffer'; A.onload = function () { var q = (A.status + '')[0]; if ('0' !== q && '2' !== q && '3' !== q) return void h._emit( 'loaderror', null, 'Failed loading audio file with status: ' + A.status + '.' ); Ka(A.response, h); }; A.onerror = function () { h._webAudio && ((h._html5 = !0), (h._webAudio = !1), (h._sounds = []), delete Q[w], h.load()); }; r(A); } }, r = function (h) { try { h.send(); } catch (E) { h.onerror(); } }, Ka = function (h, r) { var w = function () { r._emit('loaderror', null, 'Decoding audio data failed.'); }, E = function (h) { h && 0 < r._sounds.length ? ((Q[r._src] = h), q(r, h)) : w(); }; 'undefined' != typeof Promise && 1 === y.ctx.decodeAudioData.length ? y.ctx.decodeAudioData(h).then(E).catch(w) : y.ctx.decodeAudioData(h, E, w); }, q = function (h, q) { q && !h._duration && (h._duration = q.duration); 0 === Object.keys(h._sprite).length && (h._sprite = { __default: [0, 1e3 * h._duration] }); 'loaded' !== h._state && ((h._state = 'loaded'), h._emit('load'), h._loadQueue()); }, h = function () { if (y.usingWebAudio) { try { 'undefined' != typeof AudioContext ? (y.ctx = new AudioContext()) : 'undefined' != typeof webkitAudioContext ? (y.ctx = new webkitAudioContext()) : (y.usingWebAudio = !1); } catch (I) { y.usingWebAudio = !1; } y.ctx || (y.usingWebAudio = !1); var h = /iP(hone|od|ad)/.test(y._navigator && y._navigator.platform), q = y._navigator && y._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/); q = q ? parseInt(q[1], 10) : null; h && q && 9 > q && ((h = /safari/.test(y._navigator && y._navigator.userAgent.toLowerCase())), ((y._navigator && y._navigator.standalone && !h) || (y._navigator && !y._navigator.standalone && !h)) && (y.usingWebAudio = !1)); y.usingWebAudio && ((y.masterGain = void 0 === y.ctx.createGain ? y.ctx.createGainNode() : y.ctx.createGain()), y.masterGain.gain.setValueAtTime(y._muted ? 0 : 1, y.ctx.currentTime), y.masterGain.connect(y.ctx.destination)); y._setup(); } }; 'function' == typeof define && define.amd && define([], function () { return { Howler: y, Howl: R }; }); 'undefined' != typeof exports && ((exports.Howler = y), (exports.Howl = R)); 'undefined' != typeof window ? ((window.HowlerGlobal = ba), (window.Howler = y), (window.Howl = R), (window.Sound = O)) : 'undefined' != typeof global && ((global.HowlerGlobal = ba), (global.Howler = y), (global.Howl = R), (global.Sound = O)); })(); !(function () { HowlerGlobal.prototype._pos = [0, 0, 0]; HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0]; HowlerGlobal.prototype.stereo = function (y) { if (!this.ctx || !this.ctx.listener) return this; for (var R = this._howls.length - 1; 0 <= R; R--) this._howls[R].stereo(y); return this; }; HowlerGlobal.prototype.pos = function (y, R, O) { return this.ctx && this.ctx.listener ? ((R = 'number' != typeof R ? this._pos[1] : R), (O = 'number' != typeof O ? this._pos[2] : O), 'number' != typeof y ? this._pos : ((this._pos = [y, R, O]), void 0 !== this.ctx.listener.positionX ? (this.ctx.listener.positionX.setTargetAtTime( this._pos[0], Howler.ctx.currentTime, 0.1 ), this.ctx.listener.positionY.setTargetAtTime( this._pos[1], Howler.ctx.currentTime, 0.1 ), this.ctx.listener.positionZ.setTargetAtTime( this._pos[2], Howler.ctx.currentTime, 0.1 )) : this.ctx.listener.setPosition(this._pos[0], this._pos[1], this._pos[2]), this)) : this; }; HowlerGlobal.prototype.orientation = function (y, R, O, Q, ba, r) { if (!this.ctx || !this.ctx.listener) return this; var ha = this._orientation; return ( (R = 'number' != typeof R ? ha[1] : R), (O = 'number' != typeof O ? ha[2] : O), (Q = 'number' != typeof Q ? ha[3] : Q), (ba = 'number' != typeof ba ? ha[4] : ba), (r = 'number' != typeof r ? ha[5] : r), 'number' != typeof y ? ha : ((this._orientation = [y, R, O, Q, ba, r]), void 0 !== this.ctx.listener.forwardX ? (this.ctx.listener.forwardX.setTargetAtTime(y, Howler.ctx.currentTime, 0.1), this.ctx.listener.forwardY.setTargetAtTime(R, Howler.ctx.currentTime, 0.1), this.ctx.listener.forwardZ.setTargetAtTime(O, Howler.ctx.currentTime, 0.1), this.ctx.listener.upX.setTargetAtTime(y, Howler.ctx.currentTime, 0.1), this.ctx.listener.upY.setTargetAtTime(R, Howler.ctx.currentTime, 0.1), this.ctx.listener.upZ.setTargetAtTime(O, Howler.ctx.currentTime, 0.1)) : this.ctx.listener.setOrientation(y, R, O, Q, ba, r), this) ); }; Howl.prototype.init = (function (y) { return function (R) { return ( (this._orientation = R.orientation || [1, 0, 0]), (this._stereo = R.stereo || null), (this._pos = R.pos || null), (this._pannerAttr = { coneInnerAngle: void 0 !== R.coneInnerAngle ? R.coneInnerAngle : 360, coneOuterAngle: void 0 !== R.coneOuterAngle ? R.coneOuterAngle : 360, coneOuterGain: void 0 !== R.coneOuterGain ? R.coneOuterGain : 0, distanceModel: void 0 !== R.distanceModel ? R.distanceModel : 'inverse', maxDistance: void 0 !== R.maxDistance ? R.maxDistance : 1e4, panningModel: void 0 !== R.panningModel ? R.panningModel : 'HRTF', refDistance: void 0 !== R.refDistance ? R.refDistance : 1, rolloffFactor: void 0 !== R.rolloffFactor ? R.rolloffFactor : 1 }), (this._onstereo = R.onstereo ? [{ fn: R.onstereo }] : []), (this._onpos = R.onpos ? [{ fn: R.onpos }] : []), (this._onorientation = R.onorientation ? [{ fn: R.onorientation }] : []), y.call(this, R) ); }; })(Howl.prototype.init); Howl.prototype.stereo = function (y, R) { var O = this; if (!O._webAudio) return O; if ('loaded' !== O._state) return ( O._queue.push({ event: 'stereo', action: function () { O.stereo(y, R); } }), O ); var Q = void 0 === Howler.ctx.createStereoPanner ? 'spatial' : 'stereo'; if (void 0 === R) { if ('number' != typeof y) return O._stereo; O._stereo = y; O._pos = [y, 0, 0]; } for (var ha = O._getSoundIds(R), r = 0; r < ha.length; r++) { var Ka = O._soundById(ha[r]); if (Ka) { if ('number' != typeof y) return Ka._stereo; Ka._stereo = y; Ka._pos = [y, 0, 0]; Ka._node && ((Ka._pannerAttr.panningModel = 'equalpower'), (Ka._panner && Ka._panner.pan) || ba(Ka, Q), 'spatial' === Q ? void 0 !== Ka._panner.positionX ? (Ka._panner.positionX.setValueAtTime(y, Howler.ctx.currentTime), Ka._panner.positionY.setValueAtTime(0, Howler.ctx.currentTime), Ka._panner.positionZ.setValueAtTime(0, Howler.ctx.currentTime)) : Ka._panner.setPosition(y, 0, 0) : Ka._panner.pan.setValueAtTime(y, Howler.ctx.currentTime)); O._emit('stereo', Ka._id); } } return O; }; Howl.prototype.pos = function (y, R, O, Q) { var ha = this; if (!ha._webAudio) return ha; if ('loaded' !== ha._state) return ( ha._queue.push({ event: 'pos', action: function () { ha.pos(y, R, O, Q); } }), ha ); if (((R = 'number' != typeof R ? 0 : R), (O = 'number' != typeof O ? -0.5 : O), void 0 === Q)) { if ('number' != typeof y) return ha._pos; ha._pos = [y, R, O]; } for (var r = ha._getSoundIds(Q), Ka = 0; Ka < r.length; Ka++) { var q = ha._soundById(r[Ka]); if (q) { if ('number' != typeof y) return q._pos; q._pos = [y, R, O]; q._node && ((q._panner && !q._panner.pan) || ba(q, 'spatial'), void 0 !== q._panner.positionX ? (q._panner.positionX.setValueAtTime(y, Howler.ctx.currentTime), q._panner.positionY.setValueAtTime(R, Howler.ctx.currentTime), q._panner.positionZ.setValueAtTime(O, Howler.ctx.currentTime)) : q._panner.setPosition(y, R, O)); ha._emit('pos', q._id); } } return ha; }; Howl.prototype.orientation = function (y, R, O, Q) { var ha = this; if (!ha._webAudio) return ha; if ('loaded' !== ha._state) return ( ha._queue.push({ event: 'orientation', action: function () { ha.orientation(y, R, O, Q); } }), ha ); if ( ((R = 'number' != typeof R ? ha._orientation[1] : R), (O = 'number' != typeof O ? ha._orientation[2] : O), void 0 === Q) ) { if ('number' != typeof y) return ha._orientation; ha._orientation = [y, R, O]; } for (var r = ha._getSoundIds(Q), Ka = 0; Ka < r.length; Ka++) { var q = ha._soundById(r[Ka]); if (q) { if ('number' != typeof y) return q._orientation; q._orientation = [y, R, O]; q._node && (q._panner || (q._pos || (q._pos = ha._pos || [0, 0, -0.5]), ba(q, 'spatial')), void 0 !== q._panner.orientationX ? (q._panner.orientationX.setValueAtTime(y, Howler.ctx.currentTime), q._panner.orientationY.setValueAtTime(R, Howler.ctx.currentTime), q._panner.orientationZ.setValueAtTime(O, Howler.ctx.currentTime)) : q._panner.setOrientation(y, R, O)); ha._emit('orientation', q._id); } } return ha; }; Howl.prototype.pannerAttr = function () { var y, R, O = arguments; if (!this._webAudio) return this; if (0 === O.length) return this._pannerAttr; if (1 === O.length) { if ('object' != typeof O[0]) return (R = this._soundById(parseInt(O[0], 10))), R ? R._pannerAttr : this._pannerAttr; var Q = O[0]; void 0 === y && (Q.pannerAttr || (Q.pannerAttr = { coneInnerAngle: Q.coneInnerAngle, coneOuterAngle: Q.coneOuterAngle, coneOuterGain: Q.coneOuterGain, distanceModel: Q.distanceModel, maxDistance: Q.maxDistance, refDistance: Q.refDistance, rolloffFactor: Q.rolloffFactor, panningModel: Q.panningModel }), (this._pannerAttr = { coneInnerAngle: void 0 !== Q.pannerAttr.coneInnerAngle ? Q.pannerAttr.coneInnerAngle : this._coneInnerAngle, coneOuterAngle: void 0 !== Q.pannerAttr.coneOuterAngle ? Q.pannerAttr.coneOuterAngle : this._coneOuterAngle, coneOuterGain: void 0 !== Q.pannerAttr.coneOuterGain ? Q.pannerAttr.coneOuterGain : this._coneOuterGain, distanceModel: void 0 !== Q.pannerAttr.distanceModel ? Q.pannerAttr.distanceModel : this._distanceModel, maxDistance: void 0 !== Q.pannerAttr.maxDistance ? Q.pannerAttr.maxDistance : this._maxDistance, refDistance: void 0 !== Q.pannerAttr.refDistance ? Q.pannerAttr.refDistance : this._refDistance, rolloffFactor: void 0 !== Q.pannerAttr.rolloffFactor ? Q.pannerAttr.rolloffFactor : this._rolloffFactor, panningModel: void 0 !== Q.pannerAttr.panningModel ? Q.pannerAttr.panningModel : this._panningModel })); } else 2 === O.length && ((Q = O[0]), (y = parseInt(O[1], 10))); y = this._getSoundIds(y); for (O = 0; O < y.length; O++) if ((R = this._soundById(y[O]))) { var ha = R._pannerAttr; ha = { coneInnerAngle: void 0 !== Q.coneInnerAngle ? Q.coneInnerAngle : ha.coneInnerAngle, coneOuterAngle: void 0 !== Q.coneOuterAngle ? Q.coneOuterAngle : ha.coneOuterAngle, coneOuterGain: void 0 !== Q.coneOuterGain ? Q.coneOuterGain : ha.coneOuterGain, distanceModel: void 0 !== Q.distanceModel ? Q.distanceModel : ha.distanceModel, maxDistance: void 0 !== Q.maxDistance ? Q.maxDistance : ha.maxDistance, refDistance: void 0 !== Q.refDistance ? Q.refDistance : ha.refDistance, rolloffFactor: void 0 !== Q.rolloffFactor ? Q.rolloffFactor : ha.rolloffFactor, panningModel: void 0 !== Q.panningModel ? Q.panningModel : ha.panningModel }; var r = R._panner; r ? ((r.coneInnerAngle = ha.coneInnerAngle), (r.coneOuterAngle = ha.coneOuterAngle), (r.coneOuterGain = ha.coneOuterGain), (r.distanceModel = ha.distanceModel), (r.maxDistance = ha.maxDistance), (r.refDistance = ha.refDistance), (r.rolloffFactor = ha.rolloffFactor), (r.panningModel = ha.panningModel)) : (R._pos || (R._pos = this._pos || [0, 0, -0.5]), ba(R, 'spatial')); } return this; }; Sound.prototype.init = (function (y) { return function () { var R = this._parent; this._orientation = R._orientation; this._stereo = R._stereo; this._pos = R._pos; this._pannerAttr = R._pannerAttr; y.call(this); this._stereo ? R.stereo(this._stereo) : this._pos && R.pos(this._pos[0], this._pos[1], this._pos[2], this._id); }; })(Sound.prototype.init); Sound.prototype.reset = (function (y) { return function () { var R = this._parent; return ( (this._orientation = R._orientation), (this._stereo = R._stereo), (this._pos = R._pos), (this._pannerAttr = R._pannerAttr), this._stereo ? R.stereo(this._stereo) : this._pos ? R.pos(this._pos[0], this._pos[1], this._pos[2], this._id) : this._panner && (this._panner.disconnect(0), (this._panner = void 0), R._refreshBuffer(this)), y.call(this) ); }; })(Sound.prototype.reset); var ba = function (y, R) { 'spatial' === (R || 'spatial') ? ((y._panner = Howler.ctx.createPanner()), (y._panner.coneInnerAngle = y._pannerAttr.coneInnerAngle), (y._panner.coneOuterAngle = y._pannerAttr.coneOuterAngle), (y._panner.coneOuterGain = y._pannerAttr.coneOuterGain), (y._panner.distanceModel = y._pannerAttr.distanceModel), (y._panner.maxDistance = y._pannerAttr.maxDistance), (y._panner.refDistance = y._pannerAttr.refDistance), (y._panner.rolloffFactor = y._pannerAttr.rolloffFactor), (y._panner.panningModel = y._pannerAttr.panningModel), void 0 !== y._panner.positionX ? (y._panner.positionX.setValueAtTime(y._pos[0], Howler.ctx.currentTime), y._panner.positionY.setValueAtTime(y._pos[1], Howler.ctx.currentTime), y._panner.positionZ.setValueAtTime(y._pos[2], Howler.ctx.currentTime)) : y._panner.setPosition(y._pos[0], y._pos[1], y._pos[2]), void 0 !== y._panner.orientationX ? (y._panner.orientationX.setValueAtTime(y._orientation[0], Howler.ctx.currentTime), y._panner.orientationY.setValueAtTime(y._orientation[1], Howler.ctx.currentTime), y._panner.orientationZ.setValueAtTime(y._orientation[2], Howler.ctx.currentTime)) : y._panner.setOrientation(y._orientation[0], y._orientation[1], y._orientation[2])) : ((y._panner = Howler.ctx.createStereoPanner()), y._panner.pan.setValueAtTime(y._stereo, Howler.ctx.currentTime)); y._panner.connect(y._node); y._paused || y._parent.pause(y._id, !0).play(y._id, !0); }; })(); !(function (ba) { 'object' == typeof exports && 'undefined' != typeof module ? (module.exports = ba()) : 'function' == typeof define && define.amd ? define([], ba) : (('undefined' != typeof window ? window : 'undefined' != typeof global ? global : 'undefined' != typeof self ? self : this ).pako = ba()); })(function () { return (function Q(y, R, O) { function ha(q, h) { if (!R[q]) { if (!y[q]) { var w = 'function' == typeof require && require; if (!h && w) return w(q, !0); if (r) return r(q, !0); h = Error("Cannot find module '" + q + "'"); throw ((h.code = 'MODULE_NOT_FOUND'), h); } h = R[q] = { exports: {} }; y[q][0].call( h.exports, function (h) { var r = y[q][1][h]; return ha(r ? r : h); }, h, h.exports, Q, y, R, O ); } return R[q].exports; } for (var r = 'function' == typeof require && require, Ka = 0; Ka < O.length; Ka++) ha(O[Ka]); return ha; })( { 1: [ function (y, R, O) { function Q(y) { if (!(this instanceof Q)) return new Q(y); y = this.options = Ka.assign( { level: za, method: A, chunkSize: 16384, windowBits: 15, memLevel: 8, strategy: Ja, to: '' }, y || {} ); y.raw && 0 < y.windowBits ? (y.windowBits = -y.windowBits) : y.gzip && 0 < y.windowBits && 16 > y.windowBits && (y.windowBits += 16); this.err = 0; this.msg = ''; this.ended = !1; this.chunks = []; this.strm = new w(); this.strm.avail_out = 0; var O = r.deflateInit2( this.strm, y.level, y.method, y.windowBits, y.memLevel, y.strategy ); if (O !== I) throw Error(h[O]); if ((y.header && r.deflateSetHeader(this.strm, y.header), y.dictionary)) { var R; if ( ((R = 'string' == typeof y.dictionary ? q.string2buf(y.dictionary) : '[object ArrayBuffer]' === E.call(y.dictionary) ? new Uint8Array(y.dictionary) : y.dictionary), (O = r.deflateSetDictionary(this.strm, R)), O !== I) ) throw Error(h[O]); this._dict_set = !0; } } function ha(h, q) { q = new Q(q); if ((q.push(h, !0), q.err)) throw q.msg; return q.result; } var r = y('./zlib/deflate'), Ka = y('./utils/common'), q = y('./utils/strings'), h = y('./zlib/messages'), w = y('./zlib/zstream'), E = Object.prototype.toString, I = 0, za = -1, Ja = 0, A = 8; Q.prototype.push = function (h, w) { var y, A = this.strm, Q = this.options.chunkSize; if (this.ended) return !1; w = w === ~~w ? w : !0 === w ? 4 : 0; 'string' == typeof h ? (A.input = q.string2buf(h)) : '[object ArrayBuffer]' === E.call(h) ? (A.input = new Uint8Array(h)) : (A.input = h); A.next_in = 0; A.avail_in = A.input.length; do { if ( (0 === A.avail_out && ((A.output = new Ka.Buf8(Q)), (A.next_out = 0), (A.avail_out = Q)), (y = r.deflate(A, w)), 1 !== y && y !== I) ) return this.onEnd(y), (this.ended = !0), !1; (0 !== A.avail_out && (0 !== A.avail_in || (4 !== w && 2 !== w))) || ('string' === this.options.to ? this.onData(q.buf2binstring(Ka.shrinkBuf(A.output, A.next_out))) : this.onData(Ka.shrinkBuf(A.output, A.next_out))); } while ((0 < A.avail_in || 0 === A.avail_out) && 1 !== y); return 4 === w ? ((y = r.deflateEnd(this.strm)), this.onEnd(y), (this.ended = !0), y === I) : 2 !== w || (this.onEnd(I), (A.avail_out = 0), !0); }; Q.prototype.onData = function (h) { this.chunks.push(h); }; Q.prototype.onEnd = function (h) { h === I && ('string' === this.options.to ? (this.result = this.chunks.join('')) : (this.result = Ka.flattenChunks(this.chunks))); this.chunks = []; this.err = h; this.msg = this.strm.msg; }; O.Deflate = Q; O.deflate = ha; O.deflateRaw = function (h, q) { return (q = q || {}), (q.raw = !0), ha(h, q); }; O.gzip = function (h, q) { return (q = q || {}), (q.gzip = !0), ha(h, q); }; }, { './utils/common': 3, './utils/strings': 4, './zlib/deflate': 8, './zlib/messages': 13, './zlib/zstream': 15 } ], 2: [ function (y, R, O) { function Q(q) { if (!(this instanceof Q)) return new Q(q); var A = (this.options = Ka.assign( { chunkSize: 16384, windowBits: 0, to: '' }, q || {} )); A.raw && 0 <= A.windowBits && 16 > A.windowBits && ((A.windowBits = -A.windowBits), 0 === A.windowBits && (A.windowBits = -15)); !(0 <= A.windowBits && 16 > A.windowBits) || (q && q.windowBits) || (A.windowBits += 32); 15 < A.windowBits && 48 > A.windowBits && 0 === (15 & A.windowBits) && (A.windowBits |= 15); this.err = 0; this.msg = ''; this.ended = !1; this.chunks = []; this.strm = new E(); this.strm.avail_out = 0; q = r.inflateInit2(this.strm, A.windowBits); if (q !== h.Z_OK) throw Error(w[q]); this.header = new I(); r.inflateGetHeader(this.strm, this.header); } function ha(h, q) { q = new Q(q); if ((q.push(h, !0), q.err)) throw q.msg; return q.result; } var r = y('./zlib/inflate'), Ka = y('./utils/common'), q = y('./utils/strings'), h = y('./zlib/constants'), w = y('./zlib/messages'), E = y('./zlib/zstream'), I = y('./zlib/gzheader'), za = Object.prototype.toString; Q.prototype.push = function (w, y) { var A, E, I, Q, O, B = this.strm, R = this.options.chunkSize, ha = this.options.dictionary, Sa = !1; if (this.ended) return !1; y = y === ~~y ? y : !0 === y ? h.Z_FINISH : h.Z_NO_FLUSH; 'string' == typeof w ? (B.input = q.binstring2buf(w)) : '[object ArrayBuffer]' === za.call(w) ? (B.input = new Uint8Array(w)) : (B.input = w); B.next_in = 0; B.avail_in = B.input.length; do { if ( (0 === B.avail_out && ((B.output = new Ka.Buf8(R)), (B.next_out = 0), (B.avail_out = R)), (A = r.inflate(B, h.Z_NO_FLUSH)), A === h.Z_NEED_DICT && ha && ((O = 'string' == typeof ha ? q.string2buf(ha) : '[object ArrayBuffer]' === za.call(ha) ? new Uint8Array(ha) : ha), (A = r.inflateSetDictionary(this.strm, O))), A === h.Z_BUF_ERROR && !0 === Sa && ((A = h.Z_OK), (Sa = !1)), A !== h.Z_STREAM_END && A !== h.Z_OK) ) return this.onEnd(A), (this.ended = !0), !1; B.next_out && ((0 !== B.avail_out && A !== h.Z_STREAM_END && (0 !== B.avail_in || (y !== h.Z_FINISH && y !== h.Z_SYNC_FLUSH))) || ('string' === this.options.to ? ((E = q.utf8border(B.output, B.next_out)), (I = B.next_out - E), (Q = q.buf2string(B.output, E)), (B.next_out = I), (B.avail_out = R - I), I && Ka.arraySet(B.output, B.output, E, I, 0), this.onData(Q)) : this.onData(Ka.shrinkBuf(B.output, B.next_out)))); 0 === B.avail_in && 0 === B.avail_out && (Sa = !0); } while ((0 < B.avail_in || 0 === B.avail_out) && A !== h.Z_STREAM_END); return ( A === h.Z_STREAM_END && (y = h.Z_FINISH), y === h.Z_FINISH ? ((A = r.inflateEnd(this.strm)), this.onEnd(A), (this.ended = !0), A === h.Z_OK) : y !== h.Z_SYNC_FLUSH || (this.onEnd(h.Z_OK), (B.avail_out = 0), !0) ); }; Q.prototype.onData = function (h) { this.chunks.push(h); }; Q.prototype.onEnd = function (q) { q === h.Z_OK && ('string' === this.options.to ? (this.result = this.chunks.join('')) : (this.result = Ka.flattenChunks(this.chunks))); this.chunks = []; this.err = q; this.msg = this.strm.msg; }; O.Inflate = Q; O.inflate = ha; O.inflateRaw = function (h, q) { return (q = q || {}), (q.raw = !0), ha(h, q); }; O.ungzip = ha; }, { './utils/common': 3, './utils/strings': 4, './zlib/constants': 6, './zlib/gzheader': 9, './zlib/inflate': 11, './zlib/messages': 13, './zlib/zstream': 15 } ], 3: [ function (y, R, O) { y = 'undefined' != typeof Uint8Array && 'undefined' != typeof Uint16Array && 'undefined' != typeof Int32Array; O.assign = function (r) { for (var y = Array.prototype.slice.call(arguments, 1); y.length; ) { var q = y.shift(); if (q) { if ('object' != typeof q) throw new TypeError(q + 'must be non-object'); for (var h in q) q.hasOwnProperty(h) && (r[h] = q[h]); } } return r; }; O.shrinkBuf = function (r, y) { return r.length === y ? r : r.subarray ? r.subarray(0, y) : ((r.length = y), r); }; var Q = { arraySet: function (r, y, q, h, w) { if (y.subarray && r.subarray) return void r.set(y.subarray(q, q + h), w); for (var E = 0; E < h; E++) r[w + E] = y[q + E]; }, flattenChunks: function (r) { var y, q; var h = (q = 0); for (y = r.length; h < y; h++) q += r[h].length; var w = new Uint8Array(q); h = q = 0; for (y = r.length; h < y; h++) { var E = r[h]; w.set(E, q); q += E.length; } return w; } }, ha = { arraySet: function (r, y, q, h, w) { for (var E = 0; E < h; E++) r[w + E] = y[q + E]; }, flattenChunks: function (r) { return [].concat.apply([], r); } }; O.setTyped = function (r) { r ? ((O.Buf8 = Uint8Array), (O.Buf16 = Uint16Array), (O.Buf32 = Int32Array), O.assign(O, Q)) : ((O.Buf8 = Array), (O.Buf16 = Array), (O.Buf32 = Array), O.assign(O, ha)); }; O.setTyped(y); }, {} ], 4: [ function (y, R, O) { function Q(h, q) { if (65537 > q && ((h.subarray && Ka) || (!h.subarray && r))) return String.fromCharCode.apply(null, ha.shrinkBuf(h, q)); for (var w = '', y = 0; y < q; y++) w += String.fromCharCode(h[y]); return w; } var ha = y('./common'), r = !0, Ka = !0; try { String.fromCharCode.apply(null, [0]); } catch (h) { r = !1; } try { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (h) { Ka = !1; } var q = new ha.Buf8(256); for (y = 0; 256 > y; y++) q[y] = 252 <= y ? 6 : 248 <= y ? 5 : 240 <= y ? 4 : 224 <= y ? 3 : 192 <= y ? 2 : 1; q[254] = q[254] = 1; O.string2buf = function (h) { var q, r, y, Q = h.length, O = 0; for (r = 0; r < Q; r++) { var A = h.charCodeAt(r); 55296 === (64512 & A) && r + 1 < Q && ((q = h.charCodeAt(r + 1)), 56320 === (64512 & q) && ((A = 65536 + ((A - 55296) << 10) + (q - 56320)), r++)); O += 128 > A ? 1 : 2048 > A ? 2 : 65536 > A ? 3 : 4; } var R = new ha.Buf8(O); for (r = y = 0; y < O; r++) (A = h.charCodeAt(r)), 55296 === (64512 & A) && r + 1 < Q && ((q = h.charCodeAt(r + 1)), 56320 === (64512 & q) && ((A = 65536 + ((A - 55296) << 10) + (q - 56320)), r++)), 128 > A ? (R[y++] = A) : 2048 > A ? ((R[y++] = 192 | (A >>> 6)), (R[y++] = 128 | (63 & A))) : 65536 > A ? ((R[y++] = 224 | (A >>> 12)), (R[y++] = 128 | ((A >>> 6) & 63)), (R[y++] = 128 | (63 & A))) : ((R[y++] = 240 | (A >>> 18)), (R[y++] = 128 | ((A >>> 12) & 63)), (R[y++] = 128 | ((A >>> 6) & 63)), (R[y++] = 128 | (63 & A))); return R; }; O.buf2binstring = function (h) { return Q(h, h.length); }; O.binstring2buf = function (h) { for (var q = new ha.Buf8(h.length), r = 0, y = q.length; r < y; r++) q[r] = h.charCodeAt(r); return q; }; O.buf2string = function (h, r) { var w, y, O, R = r || h.length, A = Array(2 * R); for (r = w = 0; r < R; ) if (((y = h[r++]), 128 > y)) A[w++] = y; else if (((O = q[y]), 4 < O)) (A[w++] = 65533), (r += O - 1); else { for (y &= 2 === O ? 31 : 3 === O ? 15 : 7; 1 < O && r < R; ) (y = (y << 6) | (63 & h[r++])), O--; 1 < O ? (A[w++] = 65533) : 65536 > y ? (A[w++] = y) : ((y -= 65536), (A[w++] = 55296 | ((y >> 10) & 1023)), (A[w++] = 56320 | (1023 & y))); } return Q(A, w); }; O.utf8border = function (h, r) { var w; r = r || h.length; r > h.length && (r = h.length); for (w = r - 1; 0 <= w && 128 === (192 & h[w]); ) w--; return 0 > w ? r : 0 === w ? r : w + q[h[w]] > r ? w : r; }; }, { './common': 3 } ], 5: [ function (y, R, O) { R.exports = function (y, O, r, R) { var q = (65535 & y) | 0; y = ((y >>> 16) & 65535) | 0; for (var h; 0 !== r; ) { h = 2e3 < r ? 2e3 : r; r -= h; do (q = (q + O[R++]) | 0), (y = (y + q) | 0); while (--h); q %= 65521; y %= 65521; } return q | (y << 16) | 0; }; }, {} ], 6: [ function (y, R, O) { R.exports = { Z_NO_FLUSH: 0, Z_PARTIAL_FLUSH: 1, Z_SYNC_FLUSH: 2, Z_FULL_FLUSH: 3, Z_FINISH: 4, Z_BLOCK: 5, Z_TREES: 6, Z_OK: 0, Z_STREAM_END: 1, Z_NEED_DICT: 2, Z_ERRNO: -1, Z_STREAM_ERROR: -2, Z_DATA_ERROR: -3, Z_BUF_ERROR: -5, Z_NO_COMPRESSION: 0, Z_BEST_SPEED: 1, Z_BEST_COMPRESSION: 9, Z_DEFAULT_COMPRESSION: -1, Z_FILTERED: 1, Z_HUFFMAN_ONLY: 2, Z_RLE: 3, Z_FIXED: 4, Z_DEFAULT_STRATEGY: 0, Z_BINARY: 0, Z_TEXT: 1, Z_UNKNOWN: 2, Z_DEFLATED: 8 }; }, {} ], 7: [ function (y, R, O) { var Q = (function () { for (var y, r = [], Q = 0; 256 > Q; Q++) { y = Q; for (var q = 0; 8 > q; q++) y = 1 & y ? 3988292384 ^ (y >>> 1) : y >>> 1; r[Q] = y; } return r; })(); R.exports = function (y, r, O, q) { O = q + O; for (y ^= -1; q < O; q++) y = (y >>> 8) ^ Q[255 & (y ^ r[q])]; return y ^ -1; }; }, {} ], 8: [ function (y, R, O) { function Q(h, q) { return (h.msg = Fd[q]), q; } function ha(h) { for (var q = h.length; 0 <= --q; ) h[q] = 0; } function r(h) { var q = h.state, r = q.pending; r > h.avail_out && (r = h.avail_out); 0 !== r && (Z.arraySet(h.output, q.pending_buf, q.pending_out, r, h.next_out), (h.next_out += r), (q.pending_out += r), (h.total_out += r), (h.avail_out -= r), (q.pending -= r), 0 === q.pending && (q.pending_out = 0)); } function Ka(h, q) { Pd._tr_flush_block( h, 0 <= h.block_start ? h.block_start : -1, h.strstart - h.block_start, q ); h.block_start = h.strstart; r(h.strm); } function q(h, q) { h.pending_buf[h.pending++] = q; } function h(h, q) { h.pending_buf[h.pending++] = (q >>> 8) & 255; h.pending_buf[h.pending++] = 255 & q; } function w(h, q) { var r, w, z = h.max_chain_length, y = h.strstart, A = h.prev_length, B = h.nice_match, E = h.strstart > h.w_size - ya ? h.strstart - (h.w_size - ya) : 0, I = h.window, K = h.w_mask, P = h.prev, Q = h.strstart + Ca, U = I[y + A - 1], O = I[y + A]; h.prev_length >= h.good_match && (z >>= 2); B > h.lookahead && (B = h.lookahead); do if ( ((r = q), I[r + A] === O && I[r + A - 1] === U && I[r] === I[y] && I[++r] === I[y + 1]) ) { y += 2; for ( r++; I[++y] === I[++r] && I[++y] === I[++r] && I[++y] === I[++r] && I[++y] === I[++r] && I[++y] === I[++r] && I[++y] === I[++r] && I[++y] === I[++r] && I[++y] === I[++r] && y < Q; ); if (((w = Ca - (Q - y)), (y = Q - Ca), w > A)) { if (((h.match_start = q), (A = w), w >= B)) break; U = I[y + A - 1]; O = I[y + A]; } } while ((q = P[q & K]) > E && 0 !== --z); return A <= h.lookahead ? A : h.lookahead; } function E(h) { var q, r, w = h.w_size; do { if (((r = h.window_size - h.lookahead - h.strstart), h.strstart >= w + (w - ya))) { Z.arraySet(h.window, h.window, w, w, 0); h.match_start -= w; h.strstart -= w; h.block_start -= w; var z = (q = h.hash_size); do { var y = h.head[--z]; h.head[z] = y >= w ? y - w : 0; } while (--q); z = q = w; do (y = h.prev[--z]), (h.prev[z] = y >= w ? y - w : 0); while (--q); r += w; } if (0 === h.strm.avail_in) break; z = h.strm; y = h.window; var A = h.strstart + h.lookahead, E = z.avail_in; if ( ((q = (E > r && (E = r), 0 === E ? 0 : ((z.avail_in -= E), Z.arraySet(y, z.input, z.next_in, E, A), 1 === z.state.wrap ? (z.adler = B(z.adler, y, E, A)) : 2 === z.state.wrap && (z.adler = gb(z.adler, y, E, A)), (z.next_in += E), (z.total_in += E), E))), (h.lookahead += q), h.lookahead + h.insert >= Ya) ) for ( r = h.strstart - h.insert, h.ins_h = h.window[r], h.ins_h = ((h.ins_h << h.hash_shift) ^ h.window[r + 1]) & h.hash_mask; h.insert && ((h.ins_h = ((h.ins_h << h.hash_shift) ^ h.window[r + Ya - 1]) & h.hash_mask), (h.prev[r & h.w_mask] = h.head[h.ins_h]), (h.head[h.ins_h] = r), r++, h.insert--, !(h.lookahead + h.insert < Ya)); ); } while (h.lookahead < ya && 0 !== h.strm.avail_in); } function I(h, q) { for (var r, z; ; ) { if (h.lookahead < ya) { if ((E(h), h.lookahead < ya && q === Sa)) return ka; if (0 === h.lookahead) break; } if ( ((r = 0), h.lookahead >= Ya && ((h.ins_h = ((h.ins_h << h.hash_shift) ^ h.window[h.strstart + Ya - 1]) & h.hash_mask), (r = h.prev[h.strstart & h.w_mask] = h.head[h.ins_h]), (h.head[h.ins_h] = h.strstart)), 0 !== r && h.strstart - r <= h.w_size - ya && (h.match_length = w(h, r)), h.match_length >= Ya) ) if ( ((z = Pd._tr_tally(h, h.strstart - h.match_start, h.match_length - Ya)), (h.lookahead -= h.match_length), h.match_length <= h.max_lazy_match && h.lookahead >= Ya) ) { h.match_length--; do h.strstart++, (h.ins_h = ((h.ins_h << h.hash_shift) ^ h.window[h.strstart + Ya - 1]) & h.hash_mask), (r = h.prev[h.strstart & h.w_mask] = h.head[h.ins_h]), (h.head[h.ins_h] = h.strstart); while (0 !== --h.match_length); h.strstart++; } else (h.strstart += h.match_length), (h.match_length = 0), (h.ins_h = h.window[h.strstart]), (h.ins_h = ((h.ins_h << h.hash_shift) ^ h.window[h.strstart + 1]) & h.hash_mask); else (z = Pd._tr_tally(h, 0, h.window[h.strstart])), h.lookahead--, h.strstart++; if (z && (Ka(h, !1), 0 === h.strm.avail_out)) return ka; } return ( (h.insert = h.strstart < Ya - 1 ? h.strstart : Ya - 1), q === U ? (Ka(h, !0), 0 === h.strm.avail_out ? mc : Tb) : h.last_lit && (Ka(h, !1), 0 === h.strm.avail_out) ? ka : P ); } function za(h, q) { for (var r, z, y; ; ) { if (h.lookahead < ya) { if ((E(h), h.lookahead < ya && q === Sa)) return ka; if (0 === h.lookahead) break; } if ( ((r = 0), h.lookahead >= Ya && ((h.ins_h = ((h.ins_h << h.hash_shift) ^ h.window[h.strstart + Ya - 1]) & h.hash_mask), (r = h.prev[h.strstart & h.w_mask] = h.head[h.ins_h]), (h.head[h.ins_h] = h.strstart)), (h.prev_length = h.match_length), (h.prev_match = h.match_start), (h.match_length = Ya - 1), 0 !== r && h.prev_length < h.max_lazy_match && h.strstart - r <= h.w_size - ya && ((h.match_length = w(h, r)), 5 >= h.match_length && (h.strategy === ne || (h.match_length === Ya && 4096 < h.strstart - h.match_start)) && (h.match_length = Ya - 1)), h.prev_length >= Ya && h.match_length <= h.prev_length) ) { y = h.strstart + h.lookahead - Ya; z = Pd._tr_tally(h, h.strstart - 1 - h.prev_match, h.prev_length - Ya); h.lookahead -= h.prev_length - 1; h.prev_length -= 2; do ++h.strstart <= y && ((h.ins_h = ((h.ins_h << h.hash_shift) ^ h.window[h.strstart + Ya - 1]) & h.hash_mask), (r = h.prev[h.strstart & h.w_mask] = h.head[h.ins_h]), (h.head[h.ins_h] = h.strstart)); while (0 !== --h.prev_length); if ( ((h.match_available = 0), (h.match_length = Ya - 1), h.strstart++, z && (Ka(h, !1), 0 === h.strm.avail_out)) ) return ka; } else if (h.match_available) { if ( ((z = Pd._tr_tally(h, 0, h.window[h.strstart - 1])), z && Ka(h, !1), h.strstart++, h.lookahead--, 0 === h.strm.avail_out) ) return ka; } else (h.match_available = 1), h.strstart++, h.lookahead--; } return ( h.match_available && (Pd._tr_tally(h, 0, h.window[h.strstart - 1]), (h.match_available = 0)), (h.insert = h.strstart < Ya - 1 ? h.strstart : Ya - 1), q === U ? (Ka(h, !0), 0 === h.strm.avail_out ? mc : Tb) : h.last_lit && (Ka(h, !1), 0 === h.strm.avail_out) ? ka : P ); } function Ja(h, q, r, w, y) { this.good_length = h; this.max_lazy = q; this.nice_length = r; this.max_chain = w; this.func = y; } function A() { this.strm = null; this.status = 0; this.pending_buf = null; this.wrap = this.pending = this.pending_out = this.pending_buf_size = 0; this.gzhead = null; this.gzindex = 0; this.method = yb; this.last_flush = -1; this.w_mask = this.w_bits = this.w_size = 0; this.window = null; this.window_size = 0; this.head = this.prev = null; this.nice_match = this.good_match = this.strategy = this.level = this.max_lazy_match = this.max_chain_length = this.prev_length = this.lookahead = this.match_start = this.strstart = this.match_available = this.prev_match = this.match_length = this.block_start = this.hash_shift = this.hash_mask = this.hash_bits = this.hash_size = this.ins_h = 0; this.dyn_ltree = new Z.Buf16(2 * La); this.dyn_dtree = new Z.Buf16(2 * (2 * Jc + 1)); this.bl_tree = new Z.Buf16(2 * (2 * K + 1)); ha(this.dyn_ltree); ha(this.dyn_dtree); ha(this.bl_tree); this.bl_desc = this.d_desc = this.l_desc = null; this.bl_count = new Z.Buf16(lb + 1); this.heap = new Z.Buf16(2 * ed + 1); ha(this.heap); this.heap_max = this.heap_len = 0; this.depth = new Z.Buf16(2 * ed + 1); ha(this.depth); this.bi_valid = this.bi_buf = this.insert = this.matches = this.static_len = this.opt_len = this.d_buf = this.last_lit = this.lit_bufsize = this.l_buf = 0; } function td(h) { var q; return h && h.state ? ((h.total_in = h.total_out = 0), (h.data_type = oe), (q = h.state), (q.pending = 0), (q.pending_out = 0), 0 > q.wrap && (q.wrap = -q.wrap), (q.status = q.wrap ? ua : T), (h.adler = 2 === q.wrap ? 0 : 1), (q.last_flush = Sa), Pd._tr_init(q), sb) : Q(h, ma); } function Tc(h) { var q = td(h); q === sb && ((h = h.state), (h.window_size = 2 * h.w_size), ha(h.head), (h.max_lazy_match = oc[h.level].max_lazy), (h.good_match = oc[h.level].good_length), (h.nice_match = oc[h.level].nice_length), (h.max_chain_length = oc[h.level].max_chain), (h.strstart = 0), (h.block_start = 0), (h.lookahead = 0), (h.insert = 0), (h.match_length = h.prev_length = Ya - 1), (h.match_available = 0), (h.ins_h = 0)); return q; } function Ne(h, q, r, w, y, B) { if (!h) return ma; var z = 1; if ( (q === Ba && (q = 6), 0 > w ? ((z = 0), (w = -w)) : 15 < w && ((z = 2), (w -= 16)), 1 > y || y > ud || r !== yb || 8 > w || 15 < w || 0 > q || 9 < q || 0 > B || B > db) ) return Q(h, ma); 8 === w && (w = 9); var H = new A(); return ( (h.state = H), (H.strm = h), (H.wrap = z), (H.gzhead = null), (H.w_bits = w), (H.w_size = 1 << H.w_bits), (H.w_mask = H.w_size - 1), (H.hash_bits = y + 7), (H.hash_size = 1 << H.hash_bits), (H.hash_mask = H.hash_size - 1), (H.hash_shift = ~~((H.hash_bits + Ya - 1) / Ya)), (H.window = new Z.Buf8(2 * H.w_size)), (H.head = new Z.Buf16(H.hash_size)), (H.prev = new Z.Buf16(H.w_size)), (H.lit_bufsize = 1 << (y + 6)), (H.pending_buf_size = 4 * H.lit_bufsize), (H.pending_buf = new Z.Buf8(H.pending_buf_size)), (H.d_buf = 1 * H.lit_bufsize), (H.l_buf = 3 * H.lit_bufsize), (H.level = q), (H.strategy = B), (H.method = r), Tc(h) ); } var Z = y('../utils/common'), Pd = y('./trees'), B = y('./adler32'), gb = y('./crc32'), Fd = y('./messages'), Sa = 0, U = 4, sb = 0, ma = -2, Ba = -1, ne = 1, db = 4, oe = 2, yb = 8, ud = 9, ed = 286, Jc = 30, K = 19, La = 2 * ed + 1, lb = 15, Ya = 3, Ca = 258, ya = Ca + Ya + 1, ua = 42, T = 113, ka = 1, P = 2, mc = 3, Tb = 4; var oc = [ new Ja(0, 0, 0, 0, function (h, q) { var r = 65535; for (r > h.pending_buf_size - 5 && (r = h.pending_buf_size - 5); ; ) { if (1 >= h.lookahead) { if ((E(h), 0 === h.lookahead && q === Sa)) return ka; if (0 === h.lookahead) break; } h.strstart += h.lookahead; h.lookahead = 0; var w = h.block_start + r; if ( ((0 === h.strstart || h.strstart >= w) && ((h.lookahead = h.strstart - w), (h.strstart = w), Ka(h, !1), 0 === h.strm.avail_out)) || (h.strstart - h.block_start >= h.w_size - ya && (Ka(h, !1), 0 === h.strm.avail_out)) ) return ka; } return ( (h.insert = 0), q === U ? (Ka(h, !0), 0 === h.strm.avail_out ? mc : Tb) : (h.strstart > h.block_start && Ka(h, !1), ka) ); }), new Ja(4, 4, 8, 4, I), new Ja(4, 5, 16, 8, I), new Ja(4, 6, 32, 32, I), new Ja(4, 4, 16, 16, za), new Ja(8, 16, 32, 32, za), new Ja(8, 16, 128, 128, za), new Ja(8, 32, 128, 256, za), new Ja(32, 128, 258, 1024, za), new Ja(32, 258, 258, 4096, za) ]; O.deflateInit = function (h, q) { return Ne(h, q, yb, 15, 8, 0); }; O.deflateInit2 = Ne; O.deflateReset = Tc; O.deflateResetKeep = td; O.deflateSetHeader = function (h, q) { return h && h.state ? (2 !== h.state.wrap ? ma : ((h.state.gzhead = q), sb)) : ma; }; O.deflate = function (w, y) { var z, H; if (!w || !w.state || 5 < y || 0 > y) return w ? Q(w, ma) : ma; if ( ((H = w.state), !w.output || (!w.input && 0 !== w.avail_in) || (666 === H.status && y !== U)) ) return Q(w, 0 === w.avail_out ? -5 : ma); if (((H.strm = w), (z = H.last_flush), (H.last_flush = y), H.status === ua)) if (2 === H.wrap) (w.adler = 0), q(H, 31), q(H, 139), q(H, 8), H.gzhead ? (q( H, (H.gzhead.text ? 1 : 0) + (H.gzhead.hcrc ? 2 : 0) + (H.gzhead.extra ? 4 : 0) + (H.gzhead.name ? 8 : 0) + (H.gzhead.comment ? 16 : 0) ), q(H, 255 & H.gzhead.time), q(H, (H.gzhead.time >> 8) & 255), q(H, (H.gzhead.time >> 16) & 255), q(H, (H.gzhead.time >> 24) & 255), q(H, 9 === H.level ? 2 : 2 <= H.strategy || 2 > H.level ? 4 : 0), q(H, 255 & H.gzhead.os), H.gzhead.extra && H.gzhead.extra.length && (q(H, 255 & H.gzhead.extra.length), q(H, (H.gzhead.extra.length >> 8) & 255)), H.gzhead.hcrc && (w.adler = gb(w.adler, H.pending_buf, H.pending, 0)), (H.gzindex = 0), (H.status = 69)) : (q(H, 0), q(H, 0), q(H, 0), q(H, 0), q(H, 0), q(H, 9 === H.level ? 2 : 2 <= H.strategy || 2 > H.level ? 4 : 0), q(H, 3), (H.status = T)); else { var A = (yb + ((H.w_bits - 8) << 4)) << 8; A |= (2 <= H.strategy || 2 > H.level ? 0 : 6 > H.level ? 1 : 6 === H.level ? 2 : 3) << 6; 0 !== H.strstart && (A |= 32); H.status = T; h(H, A + (31 - (A % 31))); 0 !== H.strstart && (h(H, w.adler >>> 16), h(H, 65535 & w.adler)); w.adler = 1; } if (69 === H.status) if (H.gzhead.extra) { for ( A = H.pending; H.gzindex < (65535 & H.gzhead.extra.length) && (H.pending !== H.pending_buf_size || (H.gzhead.hcrc && H.pending > A && (w.adler = gb(w.adler, H.pending_buf, H.pending - A, A)), r(w), (A = H.pending), H.pending !== H.pending_buf_size)); ) q(H, 255 & H.gzhead.extra[H.gzindex]), H.gzindex++; H.gzhead.hcrc && H.pending > A && (w.adler = gb(w.adler, H.pending_buf, H.pending - A, A)); H.gzindex === H.gzhead.extra.length && ((H.gzindex = 0), (H.status = 73)); } else H.status = 73; if (73 === H.status) if (H.gzhead.name) { A = H.pending; do { if ( H.pending === H.pending_buf_size && (H.gzhead.hcrc && H.pending > A && (w.adler = gb(w.adler, H.pending_buf, H.pending - A, A)), r(w), (A = H.pending), H.pending === H.pending_buf_size) ) { var B = 1; break; } B = H.gzindex < H.gzhead.name.length ? 255 & H.gzhead.name.charCodeAt(H.gzindex++) : 0; q(H, B); } while (0 !== B); H.gzhead.hcrc && H.pending > A && (w.adler = gb(w.adler, H.pending_buf, H.pending - A, A)); 0 === B && ((H.gzindex = 0), (H.status = 91)); } else H.status = 91; if (91 === H.status) if (H.gzhead.comment) { A = H.pending; do { if ( H.pending === H.pending_buf_size && (H.gzhead.hcrc && H.pending > A && (w.adler = gb(w.adler, H.pending_buf, H.pending - A, A)), r(w), (A = H.pending), H.pending === H.pending_buf_size) ) { B = 1; break; } B = H.gzindex < H.gzhead.comment.length ? 255 & H.gzhead.comment.charCodeAt(H.gzindex++) : 0; q(H, B); } while (0 !== B); H.gzhead.hcrc && H.pending > A && (w.adler = gb(w.adler, H.pending_buf, H.pending - A, A)); 0 === B && (H.status = 103); } else H.status = 103; if ( (103 === H.status && (H.gzhead.hcrc ? (H.pending + 2 > H.pending_buf_size && r(w), H.pending + 2 <= H.pending_buf_size && (q(H, 255 & w.adler), q(H, (w.adler >> 8) & 255), (w.adler = 0), (H.status = T))) : (H.status = T)), 0 !== H.pending) ) { if ((r(w), 0 === w.avail_out)) return (H.last_flush = -1), sb; } else if ( 0 === w.avail_in && (y << 1) - (4 < y ? 9 : 0) <= (z << 1) - (4 < z ? 9 : 0) && y !== U ) return Q(w, -5); if (666 === H.status && 0 !== w.avail_in) return Q(w, -5); if (0 !== w.avail_in || 0 !== H.lookahead || (y !== Sa && 666 !== H.status)) { if (2 === H.strategy) a: { for (var I; ; ) { if (0 === H.lookahead && (E(H), 0 === H.lookahead)) { if (y === Sa) { var K = ka; break a; } break; } if ( ((H.match_length = 0), (I = Pd._tr_tally(H, 0, H.window[H.strstart])), H.lookahead--, H.strstart++, I && (Ka(H, !1), 0 === H.strm.avail_out)) ) { K = ka; break a; } } K = ((H.insert = 0), y === U ? (Ka(H, !0), 0 === H.strm.avail_out ? mc : Tb) : H.last_lit && (Ka(H, !1), 0 === H.strm.avail_out) ? ka : P); } else if (3 === H.strategy) a: { var O, R; for (I = H.window; ; ) { if (H.lookahead <= Ca) { if ((E(H), H.lookahead <= Ca && y === Sa)) { K = ka; break a; } if (0 === H.lookahead) break; } if ( ((H.match_length = 0), H.lookahead >= Ya && 0 < H.strstart && ((R = H.strstart - 1), (O = I[R]), O === I[++R] && O === I[++R] && O === I[++R])) ) { for ( z = H.strstart + Ca; O === I[++R] && O === I[++R] && O === I[++R] && O === I[++R] && O === I[++R] && O === I[++R] && O === I[++R] && O === I[++R] && R < z; ); H.match_length = Ca - (z - R); H.match_length > H.lookahead && (H.match_length = H.lookahead); } if ( (H.match_length >= Ya ? ((K = Pd._tr_tally(H, 1, H.match_length - Ya)), (H.lookahead -= H.match_length), (H.strstart += H.match_length), (H.match_length = 0)) : ((K = Pd._tr_tally(H, 0, H.window[H.strstart])), H.lookahead--, H.strstart++), K && (Ka(H, !1), 0 === H.strm.avail_out)) ) { K = ka; break a; } } K = ((H.insert = 0), y === U ? (Ka(H, !0), 0 === H.strm.avail_out ? mc : Tb) : H.last_lit && (Ka(H, !1), 0 === H.strm.avail_out) ? ka : P); } else K = oc[H.level].func(H, y); if (((K !== mc && K !== Tb) || (H.status = 666), K === ka || K === mc)) return 0 === w.avail_out && (H.last_flush = -1), sb; if ( K === P && (1 === y ? Pd._tr_align(H) : 5 !== y && (Pd._tr_stored_block(H, 0, 0, !1), 3 === y && (ha(H.head), 0 === H.lookahead && ((H.strstart = 0), (H.block_start = 0), (H.insert = 0)))), r(w), 0 === w.avail_out) ) return (H.last_flush = -1), sb; } return y !== U ? sb : 0 >= H.wrap ? 1 : (2 === H.wrap ? (q(H, 255 & w.adler), q(H, (w.adler >> 8) & 255), q(H, (w.adler >> 16) & 255), q(H, (w.adler >> 24) & 255), q(H, 255 & w.total_in), q(H, (w.total_in >> 8) & 255), q(H, (w.total_in >> 16) & 255), q(H, (w.total_in >> 24) & 255)) : (h(H, w.adler >>> 16), h(H, 65535 & w.adler)), r(w), 0 < H.wrap && (H.wrap = -H.wrap), 0 !== H.pending ? sb : 1); }; O.deflateEnd = function (h) { var q; return h && h.state ? ((q = h.state.status), q !== ua && 69 !== q && 73 !== q && 91 !== q && 103 !== q && q !== T && 666 !== q ? Q(h, ma) : ((h.state = null), q === T ? Q(h, -3) : sb)) : ma; }; O.deflateSetDictionary = function (h, q) { var r, w, y; var z = q.length; if ( !h || !h.state || ((r = h.state), (w = r.wrap), 2 === w || (1 === w && r.status !== ua) || r.lookahead) ) return ma; 1 === w && (h.adler = B(h.adler, q, z, 0)); r.wrap = 0; z >= r.w_size && (0 === w && (ha(r.head), (r.strstart = 0), (r.block_start = 0), (r.insert = 0)), (y = new Z.Buf8(r.w_size)), Z.arraySet(y, q, z - r.w_size, r.w_size, 0), (q = y), (z = r.w_size)); y = h.avail_in; var A = h.next_in; var I = h.input; h.avail_in = z; h.next_in = 0; h.input = q; for (E(r); r.lookahead >= Ya; ) { q = r.strstart; z = r.lookahead - (Ya - 1); do (r.ins_h = ((r.ins_h << r.hash_shift) ^ r.window[q + Ya - 1]) & r.hash_mask), (r.prev[q & r.w_mask] = r.head[r.ins_h]), (r.head[r.ins_h] = q), q++; while (--z); r.strstart = q; r.lookahead = Ya - 1; E(r); } return ( (r.strstart += r.lookahead), (r.block_start = r.strstart), (r.insert = r.lookahead), (r.lookahead = 0), (r.match_length = r.prev_length = Ya - 1), (r.match_available = 0), (h.next_in = A), (h.input = I), (h.avail_in = y), (r.wrap = w), sb ); }; O.deflateInfo = 'pako deflate (from Nodeca project)'; }, { '../utils/common': 3, './adler32': 5, './crc32': 7, './messages': 13, './trees': 14 } ], 9: [ function (y, R, O) { R.exports = function () { this.os = this.xflags = this.time = this.text = 0; this.extra = null; this.extra_len = 0; this.comment = this.name = ''; this.hcrc = 0; this.done = !1; }; }, {} ], 10: [ function (y, R, O) { R.exports = function (y, O) { var r, Q, q; var h = y.state; var w = y.next_in; var E = y.input; var I = w + (y.avail_in - 5); var R = y.next_out; var ha = y.output; O = R - (O - y.avail_out); var A = R + (y.avail_out - 257); var td = h.dmax; var Tc = h.wsize; var Ne = h.whave; var Z = h.wnext; var Pd = h.window; var B = h.hold; var gb = h.bits; var Fd = h.lencode; var Sa = h.distcode; var U = (1 << h.lenbits) - 1; var sb = (1 << h.distbits) - 1; a: do { 15 > gb && ((B += E[w++] << gb), (gb += 8), (B += E[w++] << gb), (gb += 8)); var ma = Fd[B & U]; b: for (;;) { if (((r = ma >>> 24), (B >>>= r), (gb -= r), (r = (ma >>> 16) & 255), 0 === r)) ha[R++] = 65535 & ma; else { if (!(16 & r)) { if (0 === (64 & r)) { ma = Fd[(65535 & ma) + (B & ((1 << r) - 1))]; continue b; } if (32 & r) { h.mode = 12; break a; } y.msg = 'invalid literal/length code'; h.mode = 30; break a; } var Ba = 65535 & ma; (r &= 15) && (gb < r && ((B += E[w++] << gb), (gb += 8)), (Ba += B & ((1 << r) - 1)), (B >>>= r), (gb -= r)); 15 > gb && ((B += E[w++] << gb), (gb += 8), (B += E[w++] << gb), (gb += 8)); ma = Sa[B & sb]; c: for (;;) { if ( ((r = ma >>> 24), (B >>>= r), (gb -= r), (r = (ma >>> 16) & 255), !(16 & r)) ) { if (0 === (64 & r)) { ma = Sa[(65535 & ma) + (B & ((1 << r) - 1))]; continue c; } y.msg = 'invalid distance code'; h.mode = 30; break a; } if ( ((Q = 65535 & ma), (r &= 15), gb < r && ((B += E[w++] << gb), (gb += 8), gb < r && ((B += E[w++] << gb), (gb += 8))), (Q += B & ((1 << r) - 1)), Q > td) ) { y.msg = 'invalid distance too far back'; h.mode = 30; break a; } if (((B >>>= r), (gb -= r), (r = R - O), Q > r)) { if (((r = Q - r), r > Ne && h.sane)) { y.msg = 'invalid distance too far back'; h.mode = 30; break a; } if (((ma = 0), (q = Pd), 0 === Z)) { if (((ma += Tc - r), r < Ba)) { Ba -= r; do ha[R++] = Pd[ma++]; while (--r); ma = R - Q; q = ha; } } else if (Z < r) { if (((ma += Tc + Z - r), (r -= Z), r < Ba)) { Ba -= r; do ha[R++] = Pd[ma++]; while (--r); if (((ma = 0), Z < Ba)) { r = Z; Ba -= r; do ha[R++] = Pd[ma++]; while (--r); ma = R - Q; q = ha; } } } else if (((ma += Z - r), r < Ba)) { Ba -= r; do ha[R++] = Pd[ma++]; while (--r); ma = R - Q; q = ha; } for (; 2 < Ba; ) (ha[R++] = q[ma++]), (ha[R++] = q[ma++]), (ha[R++] = q[ma++]), (Ba -= 3); Ba && ((ha[R++] = q[ma++]), 1 < Ba && (ha[R++] = q[ma++])); } else { ma = R - Q; do (ha[R++] = ha[ma++]), (ha[R++] = ha[ma++]), (ha[R++] = ha[ma++]), (Ba -= 3); while (2 < Ba); Ba && ((ha[R++] = ha[ma++]), 1 < Ba && (ha[R++] = ha[ma++])); } break; } } break; } } while (w < I && R < A); Ba = gb >> 3; w -= Ba; gb -= Ba << 3; y.next_in = w; y.next_out = R; y.avail_in = w < I ? 5 + (I - w) : 5 - (w - I); y.avail_out = R < A ? 257 + (A - R) : 257 - (R - A); h.hold = B & ((1 << gb) - 1); h.bits = gb; }; }, {} ], 11: [ function (y, R, O) { function Q(h) { return ( ((h >>> 24) & 255) + ((h >>> 8) & 65280) + ((65280 & h) << 8) + ((255 & h) << 24) ); } function ha() { this.mode = 0; this.last = !1; this.wrap = 0; this.havedict = !1; this.total = this.check = this.dmax = this.flags = 0; this.head = null; this.wnext = this.whave = this.wsize = this.wbits = 0; this.window = null; this.extra = this.offset = this.length = this.bits = this.hold = 0; this.distcode = this.lencode = null; this.have = this.ndist = this.nlen = this.ncode = this.distbits = this.lenbits = 0; this.next = null; this.lens = new za.Buf16(320); this.work = new za.Buf16(288); this.distdyn = this.lendyn = null; this.was = this.back = this.sane = 0; } function r(h) { var q; return h && h.state ? ((q = h.state), (h.total_in = h.total_out = q.total = 0), (h.msg = ''), q.wrap && (h.adler = 1 & q.wrap), (q.mode = Pd), (q.last = 0), (q.havedict = 0), (q.dmax = 32768), (q.head = null), (q.hold = 0), (q.bits = 0), (q.lencode = q.lendyn = new za.Buf32(B)), (q.distcode = q.distdyn = new za.Buf32(gb)), (q.sane = 1), (q.back = -1), Ne) : Z; } function Ka(h) { var q; return h && h.state ? ((q = h.state), (q.wsize = 0), (q.whave = 0), (q.wnext = 0), r(h)) : Z; } function q(h, q) { var r, w; return h && h.state ? ((w = h.state), 0 > q ? ((r = 0), (q = -q)) : ((r = (q >> 4) + 1), 48 > q && (q &= 15)), q && (8 > q || 15 < q) ? Z : (null !== w.window && w.wbits !== q && (w.window = null), (w.wrap = r), (w.wbits = q), Ka(h))) : Z; } function h(h, r) { var w, y; return h ? ((y = new ha()), (h.state = y), (y.window = null), (w = q(h, r)), w !== Ne && (h.state = null), w) : Z; } function w(h, q, r, w) { var y; h = h.state; return ( null === h.window && ((h.wsize = 1 << h.wbits), (h.wnext = 0), (h.whave = 0), (h.window = new za.Buf8(h.wsize))), w >= h.wsize ? (za.arraySet(h.window, q, r - h.wsize, h.wsize, 0), (h.wnext = 0), (h.whave = h.wsize)) : ((y = h.wsize - h.wnext), y > w && (y = w), za.arraySet(h.window, q, r - w, y, h.wnext), (w -= y), w ? (za.arraySet(h.window, q, r - w, w, 0), (h.wnext = w), (h.whave = h.wsize)) : ((h.wnext += y), h.wnext === h.wsize && (h.wnext = 0), h.whave < h.wsize && (h.whave += y))), 0 ); } var E, I, za = y('../utils/common'), Ja = y('./adler32'), A = y('./crc32'), td = y('./inffast'), Tc = y('./inftrees'), Ne = 0, Z = -2, Pd = 1, B = 852, gb = 592, Fd = !0; O.inflateReset = Ka; O.inflateReset2 = q; O.inflateResetKeep = r; O.inflateInit = function (q) { return h(q, 15); }; O.inflateInit2 = h; O.inflate = function (h, q) { var r, y, B, O, R, U, ha, Sa = 0, Ka = new za.Buf8(4), gb = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; if (!h || !h.state || !h.output || (!h.input && 0 !== h.avail_in)) return Z; var K = h.state; 12 === K.mode && (K.mode = 13); var La = h.next_out; var lb = h.output; var Ya = h.avail_out; var Ca = h.next_in; var ya = h.input; var ua = h.avail_in; var T = K.hold; var ka = K.bits; var P = ua; var mc = Ya; var Tb = Ne; a: for (;;) switch (K.mode) { case Pd: if (0 === K.wrap) { K.mode = 13; break; } for (; 16 > ka; ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } if (2 & K.wrap && 35615 === T) { K.check = 0; Ka[0] = 255 & T; Ka[1] = (T >>> 8) & 255; K.check = A(K.check, Ka, 2, 0); ka = T = 0; K.mode = 2; break; } if ( ((K.flags = 0), K.head && (K.head.done = !1), !(1 & K.wrap) || (((255 & T) << 8) + (T >> 8)) % 31) ) { h.msg = 'incorrect header check'; K.mode = 30; break; } if (8 !== (15 & T)) { h.msg = 'unknown compression method'; K.mode = 30; break; } if (((T >>>= 4), (ka -= 4), (U = (15 & T) + 8), 0 === K.wbits)) K.wbits = U; else if (U > K.wbits) { h.msg = 'invalid window size'; K.mode = 30; break; } K.dmax = 1 << U; h.adler = K.check = 1; K.mode = 512 & T ? 10 : 12; ka = T = 0; break; case 2: for (; 16 > ka; ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } if (((K.flags = T), 8 !== (255 & K.flags))) { h.msg = 'unknown compression method'; K.mode = 30; break; } if (57344 & K.flags) { h.msg = 'unknown header flags set'; K.mode = 30; break; } K.head && (K.head.text = (T >> 8) & 1); 512 & K.flags && ((Ka[0] = 255 & T), (Ka[1] = (T >>> 8) & 255), (K.check = A(K.check, Ka, 2, 0))); ka = T = 0; K.mode = 3; case 3: for (; 32 > ka; ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } K.head && (K.head.time = T); 512 & K.flags && ((Ka[0] = 255 & T), (Ka[1] = (T >>> 8) & 255), (Ka[2] = (T >>> 16) & 255), (Ka[3] = (T >>> 24) & 255), (K.check = A(K.check, Ka, 4, 0))); ka = T = 0; K.mode = 4; case 4: for (; 16 > ka; ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } K.head && ((K.head.xflags = 255 & T), (K.head.os = T >> 8)); 512 & K.flags && ((Ka[0] = 255 & T), (Ka[1] = (T >>> 8) & 255), (K.check = A(K.check, Ka, 2, 0))); ka = T = 0; K.mode = 5; case 5: if (1024 & K.flags) { for (; 16 > ka; ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } K.length = T; K.head && (K.head.extra_len = T); 512 & K.flags && ((Ka[0] = 255 & T), (Ka[1] = (T >>> 8) & 255), (K.check = A(K.check, Ka, 2, 0))); ka = T = 0; } else K.head && (K.head.extra = null); K.mode = 6; case 6: if ( 1024 & K.flags && ((r = K.length), r > ua && (r = ua), r && (K.head && ((U = K.head.extra_len - K.length), K.head.extra || (K.head.extra = Array(K.head.extra_len)), za.arraySet(K.head.extra, ya, Ca, r, U)), 512 & K.flags && (K.check = A(K.check, ya, r, Ca)), (ua -= r), (Ca += r), (K.length -= r)), K.length) ) break a; K.length = 0; K.mode = 7; case 7: if (2048 & K.flags) { if (0 === ua) break a; r = 0; do (U = ya[Ca + r++]), K.head && U && 65536 > K.length && (K.head.name += String.fromCharCode(U)); while (U && r < ua); if ( (512 & K.flags && (K.check = A(K.check, ya, r, Ca)), (ua -= r), (Ca += r), U) ) break a; } else K.head && (K.head.name = null); K.length = 0; K.mode = 8; case 8: if (4096 & K.flags) { if (0 === ua) break a; r = 0; do (U = ya[Ca + r++]), K.head && U && 65536 > K.length && (K.head.comment += String.fromCharCode(U)); while (U && r < ua); if ( (512 & K.flags && (K.check = A(K.check, ya, r, Ca)), (ua -= r), (Ca += r), U) ) break a; } else K.head && (K.head.comment = null); K.mode = 9; case 9: if (512 & K.flags) { for (; 16 > ka; ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } if (T !== (65535 & K.check)) { h.msg = 'header crc mismatch'; K.mode = 30; break; } ka = T = 0; } K.head && ((K.head.hcrc = (K.flags >> 9) & 1), (K.head.done = !0)); h.adler = K.check = 0; K.mode = 12; break; case 10: for (; 32 > ka; ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } h.adler = K.check = Q(T); ka = T = 0; K.mode = 11; case 11: if (0 === K.havedict) return ( (h.next_out = La), (h.avail_out = Ya), (h.next_in = Ca), (h.avail_in = ua), (K.hold = T), (K.bits = ka), 2 ); h.adler = K.check = 1; K.mode = 12; case 12: if (5 === q || 6 === q) break a; case 13: if (K.last) { T >>>= 7 & ka; ka -= 7 & ka; K.mode = 27; break; } for (; 3 > ka; ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } switch (((K.last = 1 & T), (T >>>= 1), --ka, 3 & T)) { case 0: K.mode = 14; break; case 1: var oc = K; if (Fd) { E = new za.Buf32(512); I = new za.Buf32(32); for (B = 0; 144 > B; ) oc.lens[B++] = 8; for (; 256 > B; ) oc.lens[B++] = 9; for (; 280 > B; ) oc.lens[B++] = 7; for (; 288 > B; ) oc.lens[B++] = 8; Tc(1, oc.lens, 0, 288, E, 0, oc.work, { bits: 9 }); for (B = 0; 32 > B; ) oc.lens[B++] = 5; Tc(2, oc.lens, 0, 32, I, 0, oc.work, { bits: 5 }); Fd = !1; } oc.lencode = E; oc.lenbits = 9; oc.distcode = I; oc.distbits = 5; if (((K.mode = 20), 6 === q)) { T >>>= 2; ka -= 2; break a; } break; case 2: K.mode = 17; break; case 3: (h.msg = 'invalid block type'), (K.mode = 30); } T >>>= 2; ka -= 2; break; case 14: T >>>= 7 & ka; for (ka -= 7 & ka; 32 > ka; ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } if ((65535 & T) !== ((T >>> 16) ^ 65535)) { h.msg = 'invalid stored block lengths'; K.mode = 30; break; } if (((K.length = 65535 & T), (T = 0), (ka = 0), (K.mode = 15), 6 === q)) break a; case 15: K.mode = 16; case 16: if ((r = K.length)) { if ((r > ua && (r = ua), r > Ya && (r = Ya), 0 === r)) break a; za.arraySet(lb, ya, Ca, r, La); ua -= r; Ca += r; Ya -= r; La += r; K.length -= r; break; } K.mode = 12; break; case 17: for (; 14 > ka; ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } if ( ((K.nlen = (31 & T) + 257), (T >>>= 5), (ka -= 5), (K.ndist = (31 & T) + 1), (T >>>= 5), (ka -= 5), (K.ncode = (15 & T) + 4), (T >>>= 4), (ka -= 4), 286 < K.nlen || 30 < K.ndist) ) { h.msg = 'too many length or distance symbols'; K.mode = 30; break; } K.have = 0; K.mode = 18; case 18: for (; K.have < K.ncode; ) { for (; 3 > ka; ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } K.lens[gb[K.have++]] = 7 & T; T >>>= 3; ka -= 3; } for (; 19 > K.have; ) K.lens[gb[K.have++]] = 0; if ( ((K.lencode = K.lendyn), (K.lenbits = 7), (ha = { bits: K.lenbits }), (Tb = Tc(0, K.lens, 0, 19, K.lencode, 0, K.work, ha)), (K.lenbits = ha.bits), Tb) ) { h.msg = 'invalid code lengths set'; K.mode = 30; break; } K.have = 0; K.mode = 19; case 19: for (; K.have < K.nlen + K.ndist; ) { for ( ; (Sa = K.lencode[T & ((1 << K.lenbits) - 1)]), (O = Sa >>> 24), (oc = 65535 & Sa), !(O <= ka); ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } if (16 > oc) (T >>>= O), (ka -= O), (K.lens[K.have++] = oc); else { if (16 === oc) { for (B = O + 2; ka < B; ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } if (((T >>>= O), (ka -= O), 0 === K.have)) { h.msg = 'invalid bit length repeat'; K.mode = 30; break; } U = K.lens[K.have - 1]; r = 3 + (3 & T); T >>>= 2; ka -= 2; } else if (17 === oc) { for (B = O + 3; ka < B; ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } T >>>= O; ka -= O; U = 0; r = 3 + (7 & T); T >>>= 3; ka -= 3; } else { for (B = O + 7; ka < B; ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } T >>>= O; ka -= O; U = 0; r = 11 + (127 & T); T >>>= 7; ka -= 7; } if (K.have + r > K.nlen + K.ndist) { h.msg = 'invalid bit length repeat'; K.mode = 30; break; } for (; r--; ) K.lens[K.have++] = U; } } if (30 === K.mode) break; if (0 === K.lens[256]) { h.msg = 'invalid code -- missing end-of-block'; K.mode = 30; break; } if ( ((K.lenbits = 9), (ha = { bits: K.lenbits }), (Tb = Tc(1, K.lens, 0, K.nlen, K.lencode, 0, K.work, ha)), (K.lenbits = ha.bits), Tb) ) { h.msg = 'invalid literal/lengths set'; K.mode = 30; break; } if ( ((K.distbits = 6), (K.distcode = K.distdyn), (ha = { bits: K.distbits }), (Tb = Tc(2, K.lens, K.nlen, K.ndist, K.distcode, 0, K.work, ha)), (K.distbits = ha.bits), Tb) ) { h.msg = 'invalid distances set'; K.mode = 30; break; } if (((K.mode = 20), 6 === q)) break a; case 20: K.mode = 21; case 21: if (6 <= ua && 258 <= Ya) { h.next_out = La; h.avail_out = Ya; h.next_in = Ca; h.avail_in = ua; K.hold = T; K.bits = ka; td(h, mc); La = h.next_out; lb = h.output; Ya = h.avail_out; Ca = h.next_in; ya = h.input; ua = h.avail_in; T = K.hold; ka = K.bits; 12 === K.mode && (K.back = -1); break; } for ( K.back = 0; (Sa = K.lencode[T & ((1 << K.lenbits) - 1)]), (O = Sa >>> 24), (B = (Sa >>> 16) & 255), (oc = 65535 & Sa), !(O <= ka); ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } if (B && 0 === (240 & B)) { var z = O; var ce = B; for ( R = oc; (Sa = K.lencode[R + ((T & ((1 << (z + ce)) - 1)) >> z)]), (O = Sa >>> 24), (B = (Sa >>> 16) & 255), (oc = 65535 & Sa), !(z + O <= ka); ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } T >>>= z; ka -= z; K.back += z; } if (((T >>>= O), (ka -= O), (K.back += O), (K.length = oc), 0 === B)) { K.mode = 26; break; } if (32 & B) { K.back = -1; K.mode = 12; break; } if (64 & B) { h.msg = 'invalid literal/length code'; K.mode = 30; break; } K.extra = 15 & B; K.mode = 22; case 22: if (K.extra) { for (B = K.extra; ka < B; ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } K.length += T & ((1 << K.extra) - 1); T >>>= K.extra; ka -= K.extra; K.back += K.extra; } K.was = K.length; K.mode = 23; case 23: for ( ; (Sa = K.distcode[T & ((1 << K.distbits) - 1)]), (O = Sa >>> 24), (B = (Sa >>> 16) & 255), (oc = 65535 & Sa), !(O <= ka); ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } if (0 === (240 & B)) { z = O; ce = B; for ( R = oc; (Sa = K.distcode[R + ((T & ((1 << (z + ce)) - 1)) >> z)]), (O = Sa >>> 24), (B = (Sa >>> 16) & 255), (oc = 65535 & Sa), !(z + O <= ka); ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } T >>>= z; ka -= z; K.back += z; } if (((T >>>= O), (ka -= O), (K.back += O), 64 & B)) { h.msg = 'invalid distance code'; K.mode = 30; break; } K.offset = oc; K.extra = 15 & B; K.mode = 24; case 24: if (K.extra) { for (B = K.extra; ka < B; ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } K.offset += T & ((1 << K.extra) - 1); T >>>= K.extra; ka -= K.extra; K.back += K.extra; } if (K.offset > K.dmax) { h.msg = 'invalid distance too far back'; K.mode = 30; break; } K.mode = 25; case 25: if (0 === Ya) break a; if (((r = mc - Ya), K.offset > r)) { if (((r = K.offset - r), r > K.whave && K.sane)) { h.msg = 'invalid distance too far back'; K.mode = 30; break; } r > K.wnext ? ((r -= K.wnext), (y = K.wsize - r)) : (y = K.wnext - r); r > K.length && (r = K.length); B = K.window; } else (B = lb), (y = La - K.offset), (r = K.length); r > Ya && (r = Ya); Ya -= r; K.length -= r; do lb[La++] = B[y++]; while (--r); 0 === K.length && (K.mode = 21); break; case 26: if (0 === Ya) break a; lb[La++] = K.length; Ya--; K.mode = 21; break; case 27: if (K.wrap) { for (; 32 > ka; ) { if (0 === ua) break a; ua--; T |= ya[Ca++] << ka; ka += 8; } if ( ((mc -= Ya), (h.total_out += mc), (K.total += mc), mc && (h.adler = K.check = K.flags ? A(K.check, lb, mc, La - mc) : Ja(K.check, lb, mc, La - mc)), (mc = Ya), (K.flags ? T : Q(T)) !== K.check) ) { h.msg = 'incorrect data check'; K.mode = 30; break; } ka = T = 0; } K.mode = 28; case 28: if (K.wrap && K.flags) { for (; 32 > ka; ) { if (0 === ua) break a; ua--; T += ya[Ca++] << ka; ka += 8; } if (T !== (4294967295 & K.total)) { h.msg = 'incorrect length check'; K.mode = 30; break; } ka = T = 0; } K.mode = 29; case 29: Tb = 1; break a; case 30: Tb = -3; break a; case 31: return -4; default: return Z; } return ( (h.next_out = La), (h.avail_out = Ya), (h.next_in = Ca), (h.avail_in = ua), (K.hold = T), (K.bits = ka), (K.wsize || (mc !== h.avail_out && 30 > K.mode && (27 > K.mode || 4 !== q))) && w(h, h.output, h.next_out, mc - h.avail_out) ? ((K.mode = 31), -4) : ((P -= h.avail_in), (mc -= h.avail_out), (h.total_in += P), (h.total_out += mc), (K.total += mc), K.wrap && mc && (h.adler = K.check = K.flags ? A(K.check, lb, mc, h.next_out - mc) : Ja(K.check, lb, mc, h.next_out - mc)), (h.data_type = K.bits + (K.last ? 64 : 0) + (12 === K.mode ? 128 : 0) + (20 === K.mode || 15 === K.mode ? 256 : 0)), ((0 === P && 0 === mc) || 4 === q) && Tb === Ne && (Tb = -5), Tb) ); }; O.inflateEnd = function (h) { if (!h || !h.state) return Z; var q = h.state; return q.window && (q.window = null), (h.state = null), Ne; }; O.inflateGetHeader = function (h, q) { var r; return h && h.state ? ((r = h.state), 0 === (2 & r.wrap) ? Z : ((r.head = q), (q.done = !1), Ne)) : Z; }; O.inflateSetDictionary = function (h, q) { var r, y, A = q.length; return h && h.state ? ((r = h.state), 0 !== r.wrap && 11 !== r.mode ? Z : 11 === r.mode && ((y = 1), (y = Ja(y, q, A, 0)), y !== r.check) ? -3 : w(h, q, A, A) ? ((r.mode = 31), -4) : ((r.havedict = 1), Ne)) : Z; }; O.inflateInfo = 'pako inflate (from Nodeca project)'; }, { '../utils/common': 3, './adler32': 5, './crc32': 7, './inffast': 10, './inftrees': 12 } ], 12: [ function (y, R, O) { var Q = y('../utils/common'), ha = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 ], r = [ 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78 ], Ka = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0 ], q = [ 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64 ]; R.exports = function (h, w, y, I, O, R, A, td) { var E, za, Z, Ja, B, gb, Fd = td.bits, Sa, U, sb, ma, Ba, ne = 0, db, oe = null, yb = 0, ud = new Q.Buf16(16); var ed = new Q.Buf16(16); var Jc = null, K = 0; for (Sa = 0; 15 >= Sa; Sa++) ud[Sa] = 0; for (U = 0; U < I; U++) ud[w[y + U]]++; var La = Fd; for (sb = 15; 1 <= sb && 0 === ud[sb]; sb--); if ((La > sb && (La = sb), 0 === sb)) return (O[R++] = 20971520), (O[R++] = 20971520), (td.bits = 1), 0; for (Fd = 1; Fd < sb && 0 === ud[Fd]; Fd++); La < Fd && (La = Fd); for (Sa = E = 1; 15 >= Sa; Sa++) if (((E <<= 1), (E -= ud[Sa]), 0 > E)) return -1; if (0 < E && (0 === h || 1 !== sb)) return -1; ed[1] = 0; for (Sa = 1; 15 > Sa; Sa++) ed[Sa + 1] = ed[Sa] + ud[Sa]; for (U = 0; U < I; U++) 0 !== w[y + U] && (A[ed[w[y + U]]++] = U); if ( (0 === h ? ((oe = Jc = A), (Ja = 19)) : 1 === h ? ((oe = ha), (yb -= 257), (Jc = r), (K -= 257), (Ja = 256)) : ((oe = Ka), (Jc = q), (Ja = -1)), (db = 0), (U = 0), (Sa = Fd), (ed = R), (ma = La), (Ba = 0), (Z = -1), (ne = 1 << La), (I = ne - 1), (1 === h && 852 < ne) || (2 === h && 592 < ne)) ) return 1; for (var lb = 0; ; ) { lb++; var Ya = Sa - Ba; A[U] < Ja ? ((B = 0), (gb = A[U])) : A[U] > Ja ? ((B = Jc[K + A[U]]), (gb = oe[yb + A[U]])) : ((B = 96), (gb = 0)); E = 1 << (Sa - Ba); Fd = za = 1 << ma; do (za -= E), (O[ed + (db >> Ba) + za] = (Ya << 24) | (B << 16) | gb | 0); while (0 !== za); for (E = 1 << (Sa - 1); db & E; ) E >>= 1; if ((0 !== E ? ((db &= E - 1), (db += E)) : (db = 0), U++, 0 === --ud[Sa])) { if (Sa === sb) break; Sa = w[y + A[U]]; } if (Sa > La && (db & I) !== Z) { 0 === Ba && (Ba = La); ed += Fd; ma = Sa - Ba; for (E = 1 << ma; ma + Ba < sb && ((E -= ud[ma + Ba]), !(0 >= E)); ) ma++, (E <<= 1); if (((ne += 1 << ma), (1 === h && 852 < ne) || (2 === h && 592 < ne))) return 1; Z = db & I; O[Z] = (La << 24) | (ma << 16) | (ed - R) | 0; } } return 0 !== db && (O[ed + db] = ((Sa - Ba) << 24) | 4194304), (td.bits = La), 0; }; }, { '../utils/common': 3 } ], 13: [ function (y, R, O) { R.exports = { 2: 'need dictionary', 1: 'stream end', 0: '', '-1': 'file error', '-2': 'stream error', '-3': 'data error', '-4': 'insufficient memory', '-5': 'buffer error', '-6': 'incompatible version' }; }, {} ], 14: [ function (y, R, O) { function Q(h) { for (var q = h.length; 0 <= --q; ) h[q] = 0; } function ha(h, q, r, w, y) { this.static_tree = h; this.extra_bits = q; this.extra_base = r; this.elems = w; this.max_length = y; this.has_stree = h && h.length; } function r(h, q) { this.dyn_tree = h; this.max_code = 0; this.stat_desc = q; } function Ka(h, q) { h.pending_buf[h.pending++] = 255 & q; h.pending_buf[h.pending++] = (q >>> 8) & 255; } function q(h, q, r) { h.bi_valid > yb - r ? ((h.bi_buf |= (q << h.bi_valid) & 65535), Ka(h, h.bi_buf), (h.bi_buf = q >> (yb - h.bi_valid)), (h.bi_valid += r - yb)) : ((h.bi_buf |= (q << h.bi_valid) & 65535), (h.bi_valid += r)); } function h(h, r, w) { q(h, w[2 * r], w[2 * r + 1]); } function w(h, q) { var r = 0; do (r |= 1 & h), (h >>>= 1), (r <<= 1); while (0 < --q); return r >>> 1; } function E(h, q, r) { var y, z = Array(oe + 1), A = 0; for (y = 1; y <= oe; y++) z[y] = A = (A + r[y - 1]) << 1; for (r = 0; r <= q; r++) (y = h[2 * r + 1]), 0 !== y && (h[2 * r] = w(z[y]++, y)); } function I(h) { var q; for (q = 0; q < ma; q++) h.dyn_ltree[2 * q] = 0; for (q = 0; q < Ba; q++) h.dyn_dtree[2 * q] = 0; for (q = 0; q < ne; q++) h.bl_tree[2 * q] = 0; h.dyn_ltree[2 * ud] = 1; h.opt_len = h.static_len = 0; h.last_lit = h.matches = 0; } function za(h) { 8 < h.bi_valid ? Ka(h, h.bi_buf) : 0 < h.bi_valid && (h.pending_buf[h.pending++] = h.bi_buf); h.bi_buf = 0; h.bi_valid = 0; } function Ja(h, q, r, w) { var y = 2 * q, z = 2 * r; return h[y] < h[z] || (h[y] === h[z] && w[q] <= w[r]); } function A(h, q, r) { for ( var w = h.heap[r], y = r << 1; y <= h.heap_len && (y < h.heap_len && Ja(q, h.heap[y + 1], h.heap[y], h.depth) && y++, !Ja(q, w, h.heap[y], h.depth)); ) (h.heap[r] = h.heap[y]), (r = y), (y <<= 1); h.heap[r] = w; } function td(r, w, y) { var z, A, B = 0; if (0 !== r.last_lit) { do { var H = (r.pending_buf[r.d_buf + 2 * B] << 8) | r.pending_buf[r.d_buf + 2 * B + 1]; var E = r.pending_buf[r.l_buf + B]; B++; 0 === H ? h(r, E, w) : ((z = ka[E]), h(r, z + sb + 1, w), (A = La[z]), 0 !== A && ((E -= P[z]), q(r, E, A)), H--, (z = 256 > H ? T[H] : T[256 + (H >>> 7)]), h(r, z, y), (A = lb[z]), 0 !== A && ((H -= mc[z]), q(r, H, A))); } while (B < r.last_lit); } h(r, ud, w); } function Tc(h, q) { var r, w = q.dyn_tree; var y = q.stat_desc.static_tree; var z = q.stat_desc.has_stree, B = q.stat_desc.elems, H = -1; h.heap_len = 0; h.heap_max = db; for (r = 0; r < B; r++) 0 !== w[2 * r] ? ((h.heap[++h.heap_len] = H = r), (h.depth[r] = 0)) : (w[2 * r + 1] = 0); for (; 2 > h.heap_len; ) { var I = (h.heap[++h.heap_len] = 2 > H ? ++H : 0); w[2 * I] = 1; h.depth[I] = 0; h.opt_len--; z && (h.static_len -= y[2 * I + 1]); } q.max_code = H; for (r = h.heap_len >> 1; 1 <= r; r--) A(h, w, r); I = B; do (r = h.heap[1]), (h.heap[1] = h.heap[h.heap_len--]), A(h, w, 1), (y = h.heap[1]), (h.heap[--h.heap_max] = r), (h.heap[--h.heap_max] = y), (w[2 * I] = w[2 * r] + w[2 * y]), (h.depth[I] = (h.depth[r] >= h.depth[y] ? h.depth[r] : h.depth[y]) + 1), (w[2 * r + 1] = w[2 * y + 1] = I), (h.heap[1] = I++), A(h, w, 1); while (2 <= h.heap_len); h.heap[--h.heap_max] = h.heap[1]; var K, O; r = q.dyn_tree; I = q.max_code; B = q.stat_desc.static_tree; var P = q.stat_desc.has_stree, Q = q.stat_desc.extra_bits, R = q.stat_desc.extra_base, T = q.stat_desc.max_length, U = 0; for (z = 0; z <= oe; z++) h.bl_count[z] = 0; r[2 * h.heap[h.heap_max] + 1] = 0; for (q = h.heap_max + 1; q < db; q++) (y = h.heap[q]), (z = r[2 * r[2 * y + 1] + 1] + 1), z > T && ((z = T), U++), (r[2 * y + 1] = z), y > I || (h.bl_count[z]++, (K = 0), y >= R && (K = Q[y - R]), (O = r[2 * y]), (h.opt_len += O * (z + K)), P && (h.static_len += O * (B[2 * y + 1] + K))); if (0 !== U) { do { for (z = T - 1; 0 === h.bl_count[z]; ) z--; h.bl_count[z]--; h.bl_count[z + 1] += 2; h.bl_count[T]--; U -= 2; } while (0 < U); for (z = T; 0 !== z; z--) for (y = h.bl_count[z]; 0 !== y; ) (K = h.heap[--q]), K > I || (r[2 * K + 1] !== z && ((h.opt_len += (z - r[2 * K + 1]) * r[2 * K]), (r[2 * K + 1] = z)), y--); } E(w, H, h.bl_count); } function Ne(h, q, r) { var w, y = -1, z = q[1], A = 0, B = 7, H = 4; 0 === z && ((B = 138), (H = 3)); q[2 * (r + 1) + 1] = 65535; for (w = 0; w <= r; w++) { var E = z; z = q[2 * (w + 1) + 1]; (++A < B && E === z) || (A < H ? (h.bl_tree[2 * E] += A) : 0 !== E ? (E !== y && h.bl_tree[2 * E]++, h.bl_tree[2 * ed]++) : 10 >= A ? h.bl_tree[2 * Jc]++ : h.bl_tree[2 * K]++, (A = 0), (y = E), 0 === z ? ((B = 138), (H = 3)) : E === z ? ((B = 6), (H = 3)) : ((B = 7), (H = 4))); } } function Z(r, w, y) { var z, A, B = -1, H = w[1], E = 0, I = 7, O = 4; 0 === H && ((I = 138), (O = 3)); for (z = 0; z <= y; z++) if (((A = H), (H = w[2 * (z + 1) + 1]), !(++E < I && A === H))) { if (E < O) { do h(r, A, r.bl_tree); while (0 !== --E); } else 0 !== A ? (A !== B && (h(r, A, r.bl_tree), E--), h(r, ed, r.bl_tree), q(r, E - 3, 2)) : 10 >= E ? (h(r, Jc, r.bl_tree), q(r, E - 3, 3)) : (h(r, K, r.bl_tree), q(r, E - 11, 7)); E = 0; B = A; 0 === H ? ((I = 138), (O = 3)) : A === H ? ((I = 6), (O = 3)) : ((I = 7), (O = 4)); } } function Pd(h) { var q, r = 4093624447; for (q = 0; 31 >= q; q++, r >>>= 1) if (1 & r && 0 !== h.dyn_ltree[2 * q]) return Fd; if (0 !== h.dyn_ltree[18] || 0 !== h.dyn_ltree[20] || 0 !== h.dyn_ltree[26]) return Sa; for (q = 32; q < sb; q++) if (0 !== h.dyn_ltree[2 * q]) return Sa; return Fd; } function B(h, r, w, y) { q(h, (U << 1) + (y ? 1 : 0), 3); za(h); Ka(h, w); Ka(h, ~w); gb.arraySet(h.pending_buf, h.window, r, w, h.pending); h.pending += w; } var gb = y('../utils/common'), Fd = 0, Sa = 1, U = 0, sb = 256, ma = sb + 1 + 29, Ba = 30, ne = 19, db = 2 * ma + 1, oe = 15, yb = 16, ud = 256, ed = 16, Jc = 17, K = 18, La = [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0 ], lb = [ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 ], Ya = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7], Ca = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], ya = Array(2 * (ma + 2)); Q(ya); var ua = Array(2 * Ba); Q(ua); var T = Array(512); Q(T); var ka = Array(256); Q(ka); var P = Array(29); Q(P); var mc = Array(Ba); Q(mc); var Tb, oc, z, ce = !1; O._tr_init = function (h) { if (!ce) { var q, y, A, B = Array(oe + 1); for (A = y = 0; 28 > A; A++) for (P[A] = y, q = 0; q < 1 << La[A]; q++) ka[y++] = A; ka[y - 1] = A; for (A = y = 0; 16 > A; A++) for (mc[A] = y, q = 0; q < 1 << lb[A]; q++) T[y++] = A; for (y >>= 7; A < Ba; A++) for (mc[A] = y << 7, q = 0; q < 1 << (lb[A] - 7); q++) T[256 + y++] = A; for (q = 0; q <= oe; q++) B[q] = 0; for (q = 0; 143 >= q; ) (ya[2 * q + 1] = 8), q++, B[8]++; for (; 255 >= q; ) (ya[2 * q + 1] = 9), q++, B[9]++; for (; 279 >= q; ) (ya[2 * q + 1] = 7), q++, B[7]++; for (; 287 >= q; ) (ya[2 * q + 1] = 8), q++, B[8]++; E(ya, ma + 1, B); for (q = 0; q < Ba; q++) (ua[2 * q + 1] = 5), (ua[2 * q] = w(q, 5)); Tb = new ha(ya, La, sb + 1, ma, oe); oc = new ha(ua, lb, 0, Ba, oe); z = new ha([], Ya, 0, ne, 7); ce = !0; } h.l_desc = new r(h.dyn_ltree, Tb); h.d_desc = new r(h.dyn_dtree, oc); h.bl_desc = new r(h.bl_tree, z); h.bi_buf = 0; h.bi_valid = 0; I(h); }; O._tr_stored_block = B; O._tr_flush_block = function (h, r, w, y) { var z = 0; if (0 < h.level) { 2 === h.strm.data_type && (h.strm.data_type = Pd(h)); Tc(h, h.l_desc); Tc(h, h.d_desc); Ne(h, h.dyn_ltree, h.l_desc.max_code); Ne(h, h.dyn_dtree, h.d_desc.max_code); Tc(h, h.bl_desc); for (z = ne - 1; 3 <= z && 0 === h.bl_tree[2 * Ca[z] + 1]; z--); z = ((h.opt_len += 3 * (z + 1) + 14), z); var A = (h.opt_len + 3 + 7) >>> 3; var E = (h.static_len + 3 + 7) >>> 3; E <= A && (A = E); } else A = E = w + 5; if (w + 4 <= A && -1 !== r) B(h, r, w, y); else if (4 === h.strategy || E === A) q(h, 2 + (y ? 1 : 0), 3), td(h, ya, ua); else { q(h, 4 + (y ? 1 : 0), 3); r = h.l_desc.max_code + 1; w = h.d_desc.max_code + 1; z += 1; q(h, r - 257, 5); q(h, w - 1, 5); q(h, z - 4, 4); for (A = 0; A < z; A++) q(h, h.bl_tree[2 * Ca[A] + 1], 3); Z(h, h.dyn_ltree, r - 1); Z(h, h.dyn_dtree, w - 1); td(h, h.dyn_ltree, h.dyn_dtree); } I(h); y && za(h); }; O._tr_tally = function (h, q, r) { return ( (h.pending_buf[h.d_buf + 2 * h.last_lit] = (q >>> 8) & 255), (h.pending_buf[h.d_buf + 2 * h.last_lit + 1] = 255 & q), (h.pending_buf[h.l_buf + h.last_lit] = 255 & r), h.last_lit++, 0 === q ? h.dyn_ltree[2 * r]++ : (h.matches++, q--, h.dyn_ltree[2 * (ka[r] + sb + 1)]++, h.dyn_dtree[2 * (256 > q ? T[q] : T[256 + (q >>> 7)])]++), h.last_lit === h.lit_bufsize - 1 ); }; O._tr_align = function (r) { q(r, 2, 3); h(r, ud, ya); 16 === r.bi_valid ? (Ka(r, r.bi_buf), (r.bi_buf = 0), (r.bi_valid = 0)) : 8 <= r.bi_valid && ((r.pending_buf[r.pending++] = 255 & r.bi_buf), (r.bi_buf >>= 8), (r.bi_valid -= 8)); }; }, { '../utils/common': 3 } ], 15: [ function (y, R, O) { R.exports = function () { this.input = null; this.total_in = this.avail_in = this.next_in = 0; this.output = null; this.total_out = this.avail_out = this.next_out = 0; this.msg = ''; this.state = null; this.data_type = 2; this.adler = 0; }; }, {} ], '/': [ function (y, R, O) { O = y('./lib/utils/common').assign; var Q = y('./lib/deflate'), ha = y('./lib/inflate'); y = y('./lib/zlib/constants'); var r = {}; O(r, Q, ha, y); R.exports = r; }, { './lib/deflate': 1, './lib/inflate': 2, './lib/utils/common': 3, './lib/zlib/constants': 6 } ] }, {}, [] )('/'); }); var saveAs = saveAs || (function (ba) { if ( !( 'undefined' === typeof ba || ('undefined' !== typeof navigator && /MSIE [1-9]\./.test(navigator.userAgent)) ) ) { var y = ba.document.createElementNS('http://www.w3.org/1999/xhtml', 'a'), R = 'download' in y, O = /constructor/i.test(ba.HTMLElement) || ba.safari, Q = /CriOS\/[\d]+/.test(navigator.userAgent), ha = function (h) { (ba.setImmediate || ba.setTimeout)(function () { throw h; }, 0); }, r = function (h) { setTimeout(function () { 'string' === typeof h ? (ba.URL || ba.webkitURL || ba).revokeObjectURL(h) : h.remove(); }, 4e4); }, Ka = function (h) { return /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test( h.type ) ? new Blob([String.fromCharCode(65279), h], { type: h.type }) : h; }, q = function (h, q, I) { I || (h = Ka(h)); var w = this, E = 'application/octet-stream' === h.type, A = function () { var h = ['writestart', 'progress', 'write', 'writeend']; h = [].concat(h); for (var q = h.length; q--; ) { var r = w['on' + h[q]]; if ('function' === typeof r) try { r.call(w, w); } catch (Pd) { ha(Pd); } } }; w.readyState = w.INIT; if (R) { var td = (ba.URL || ba.webkitURL || ba).createObjectURL(h); setTimeout(function () { y.href = td; y.download = q; var h = new MouseEvent('click'); y.dispatchEvent(h); A(); r(td); w.readyState = w.DONE; }); } else (function () { if ((Q || (E && O)) && ba.FileReader) { var q = new FileReader(); q.onloadend = function () { var h = Q ? q.result : q.result.replace(/^data:[^;]*;/, 'data:attachment/file;'); ba.open(h, '_blank') || (ba.location.href = h); w.readyState = w.DONE; A(); }; q.readAsDataURL(h); w.readyState = w.INIT; } else td || (td = (ba.URL || ba.webkitURL || ba).createObjectURL(h)), E ? (ba.location.href = td) : ba.open(td, '_blank') || (ba.location.href = td), (w.readyState = w.DONE), A(), r(td); })(); }, h = q.prototype; if ('undefined' !== typeof navigator && navigator.msSaveOrOpenBlob) return function (h, q, r) { q = q || h.name || 'download'; r || (h = Ka(h)); return navigator.msSaveOrOpenBlob(h, q); }; h.abort = function () {}; h.readyState = h.INIT = 0; h.WRITING = 1; h.DONE = 2; h.error = h.onwritestart = h.onprogress = h.onwrite = h.onabort = h.onerror = h.onwriteend = null; return function (h, r, y) { return new q(h, r || h.name || 'download', y); }; } })( ('undefined' !== typeof self && self) || ('undefined' !== typeof window && window) || this.content ); 'undefined' !== typeof module && module.exports ? (module.exports.saveAs = saveAs) : 'undefined' !== typeof define && null !== define && null !== define.amd && define('FileSaver.js', function () { return saveAs; }); 'function' == typeof define && define.__amd && ((define.amd = define.__amd), delete define.__amd); //# sourceMappingURL=Dadish%20POKI.js.map